From 1c21de734f02257b93e95416481e397033b302ce Mon Sep 17 00:00:00 2001 From: Bishwajeet Kumar Rajak Date: Fri, 12 Jun 2026 22:20:15 +0530 Subject: [PATCH] updated config --- .venv/bin/Activate.ps1 | 241 - .venv/bin/activate | 66 - .venv/bin/activate.csh | 25 - .venv/bin/activate.fish | 64 - .venv/bin/idna | 8 - .venv/bin/normalizer | 8 - .venv/bin/pip | 8 - .venv/bin/pip3 | 8 - .venv/bin/pip3.9 | 8 - .venv/bin/python | 1 - .venv/bin/python3 | 1 - .venv/bin/python3.9 | 1 - ...4821__mypyc.cpython-39-x86_64-linux-gnu.so | Bin 410832 -> 0 bytes .../typing_extensions.cpython-39.pyc | Bin 117004 -> 0 bytes ...ffi_backend.cpython-39-x86_64-linux-gnu.so | Bin 339784 -> 0 bytes .../site-packages/_distutils_hack/__init__.py | 132 - .../__pycache__/__init__.cpython-39.pyc | Bin 5099 -> 0 bytes .../__pycache__/override.cpython-39.pyc | Bin 249 -> 0 bytes .../site-packages/_distutils_hack/override.py | 1 - .../certifi-2026.5.20.dist-info/INSTALLER | 1 - .../certifi-2026.5.20.dist-info/METADATA | 78 - .../certifi-2026.5.20.dist-info/RECORD | 14 - .../certifi-2026.5.20.dist-info/WHEEL | 5 - .../licenses/LICENSE | 20 - .../certifi-2026.5.20.dist-info/top_level.txt | 1 - .../site-packages/certifi/__init__.py | 4 - .../site-packages/certifi/__main__.py | 12 - .../__pycache__/__init__.cpython-39.pyc | Bin 303 -> 0 bytes .../__pycache__/__main__.cpython-39.pyc | Bin 439 -> 0 bytes .../certifi/__pycache__/core.cpython-39.pyc | Bin 1412 -> 0 bytes .../site-packages/certifi/cacert.pem | 3892 ---- .../python3.9/site-packages/certifi/core.py | 83 - .../python3.9/site-packages/certifi/py.typed | 0 .../cffi-2.0.0.dist-info/INSTALLER | 1 - .../cffi-2.0.0.dist-info/METADATA | 68 - .../site-packages/cffi-2.0.0.dist-info/RECORD | 49 - .../site-packages/cffi-2.0.0.dist-info/WHEEL | 6 - .../cffi-2.0.0.dist-info/entry_points.txt | 2 - .../cffi-2.0.0.dist-info/licenses/AUTHORS | 8 - .../cffi-2.0.0.dist-info/licenses/LICENSE | 23 - .../cffi-2.0.0.dist-info/top_level.txt | 2 - .../python3.9/site-packages/cffi/__init__.py | 14 - .../cffi/__pycache__/__init__.cpython-39.pyc | Bin 529 -> 0 bytes .../__pycache__/_imp_emulation.cpython-39.pyc | Bin 2552 -> 0 bytes .../_shimmed_dist_utils.cpython-39.pyc | Bin 1742 -> 0 bytes .../cffi/__pycache__/api.cpython-39.pyc | Bin 34399 -> 0 bytes .../__pycache__/backend_ctypes.cpython-39.pyc | Bin 39970 -> 0 bytes .../__pycache__/cffi_opcode.cpython-39.pyc | Bin 4780 -> 0 bytes .../__pycache__/commontypes.cpython-39.pyc | Bin 2011 -> 0 bytes .../cffi/__pycache__/cparser.cpython-39.pyc | Bin 24062 -> 0 bytes .../cffi/__pycache__/error.cpython-39.pyc | Bin 1531 -> 0 bytes .../__pycache__/ffiplatform.cpython-39.pyc | Bin 3319 -> 0 bytes .../cffi/__pycache__/lock.cpython-39.pyc | Bin 428 -> 0 bytes .../cffi/__pycache__/model.cpython-39.pyc | Bin 19790 -> 0 bytes .../cffi/__pycache__/pkgconfig.cpython-39.pyc | Bin 5166 -> 0 bytes .../__pycache__/recompiler.cpython-39.pyc | Bin 47349 -> 0 bytes .../__pycache__/setuptools_ext.cpython-39.pyc | Bin 7534 -> 0 bytes .../__pycache__/vengine_cpy.cpython-39.pyc | Bin 35973 -> 0 bytes .../__pycache__/vengine_gen.cpython-39.pyc | Bin 21283 -> 0 bytes .../cffi/__pycache__/verifier.cpython-39.pyc | Bin 9304 -> 0 bytes .../site-packages/cffi/_cffi_errors.h | 149 - .../site-packages/cffi/_cffi_include.h | 389 - .../python3.9/site-packages/cffi/_embedding.h | 550 - .../site-packages/cffi/_imp_emulation.py | 83 - .../site-packages/cffi/_shimmed_dist_utils.py | 45 - .venv/lib/python3.9/site-packages/cffi/api.py | 967 - .../site-packages/cffi/backend_ctypes.py | 1121 - .../site-packages/cffi/cffi_opcode.py | 187 - .../site-packages/cffi/commontypes.py | 82 - .../python3.9/site-packages/cffi/cparser.py | 1015 - .../lib/python3.9/site-packages/cffi/error.py | 31 - .../site-packages/cffi/ffiplatform.py | 113 - .../lib/python3.9/site-packages/cffi/lock.py | 30 - .../lib/python3.9/site-packages/cffi/model.py | 618 - .../site-packages/cffi/parse_c_type.h | 181 - .../python3.9/site-packages/cffi/pkgconfig.py | 121 - .../site-packages/cffi/recompiler.py | 1598 -- .../site-packages/cffi/setuptools_ext.py | 229 - .../site-packages/cffi/vengine_cpy.py | 1087 - .../site-packages/cffi/vengine_gen.py | 679 - .../python3.9/site-packages/cffi/verifier.py | 306 - .../INSTALLER | 1 - .../METADATA | 808 - .../charset_normalizer-3.4.7.dist-info/RECORD | 36 - .../charset_normalizer-3.4.7.dist-info/WHEEL | 7 - .../entry_points.txt | 2 - .../licenses/LICENSE | 21 - .../top_level.txt | 2 - .../charset_normalizer/__init__.py | 48 - .../charset_normalizer/__main__.py | 6 - .../__pycache__/__init__.cpython-39.pyc | Bin 1647 -> 0 bytes .../__pycache__/__main__.cpython-39.pyc | Bin 330 -> 0 bytes .../__pycache__/api.cpython-39.pyc | Bin 14729 -> 0 bytes .../__pycache__/cd.cpython-39.pyc | Bin 10577 -> 0 bytes .../__pycache__/constant.cpython-39.pyc | Bin 29022 -> 0 bytes .../__pycache__/legacy.cpython-39.pyc | Bin 2268 -> 0 bytes .../__pycache__/md.cpython-39.pyc | Bin 18582 -> 0 bytes .../__pycache__/models.cpython-39.pyc | Bin 12030 -> 0 bytes .../__pycache__/utils.cpython-39.pyc | Bin 9986 -> 0 bytes .../__pycache__/version.cpython-39.pyc | Bin 338 -> 0 bytes .../site-packages/charset_normalizer/api.py | 988 - .../cd.cpython-39-x86_64-linux-gnu.so | Bin 15912 -> 0 bytes .../site-packages/charset_normalizer/cd.py | 454 - .../charset_normalizer/cli/__init__.py | 8 - .../charset_normalizer/cli/__main__.py | 362 - .../cli/__pycache__/__init__.cpython-39.pyc | Bin 339 -> 0 bytes .../cli/__pycache__/__main__.cpython-39.pyc | Bin 8718 -> 0 bytes .../charset_normalizer/constant.py | 2050 -- .../charset_normalizer/legacy.py | 79 - .../md.cpython-39-x86_64-linux-gnu.so | Bin 15912 -> 0 bytes .../site-packages/charset_normalizer/md.py | 936 - .../charset_normalizer/models.py | 369 - .../site-packages/charset_normalizer/py.typed | 0 .../site-packages/charset_normalizer/utils.py | 422 - .../charset_normalizer/version.py | 8 - .../cryptography-48.0.1.dist-info/INSTALLER | 1 - .../cryptography-48.0.1.dist-info/METADATA | 110 - .../cryptography-48.0.1.dist-info/RECORD | 195 - .../cryptography-48.0.1.dist-info/WHEEL | 5 - .../licenses/LICENSE | 3 - .../licenses/LICENSE.APACHE | 202 - .../licenses/LICENSE.BSD | 27 - .../sboms/cryptography-rust.cyclonedx.json | 1362 -- .../sboms/sbom.json | 43 - .../site-packages/cryptography/__about__.py | 17 - .../site-packages/cryptography/__init__.py | 13 - .../__pycache__/__about__.cpython-39.pyc | Bin 438 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 365 -> 0 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 2049 -> 0 bytes .../__pycache__/fernet.cpython-39.pyc | Bin 6836 -> 0 bytes .../__pycache__/utils.cpython-39.pyc | Bin 4713 -> 0 bytes .../site-packages/cryptography/exceptions.py | 52 - .../site-packages/cryptography/fernet.py | 224 - .../cryptography/hazmat/__init__.py | 13 - .../__pycache__/__init__.cpython-39.pyc | Bin 252 -> 0 bytes .../hazmat/__pycache__/_oid.cpython-39.pyc | Bin 12360 -> 0 bytes .../site-packages/cryptography/hazmat/_oid.py | 356 - .../cryptography/hazmat/asn1/__init__.py | 43 - .../asn1/__pycache__/__init__.cpython-39.pyc | Bin 590 -> 0 bytes .../asn1/__pycache__/asn1.cpython-39.pyc | Bin 8348 -> 0 bytes .../cryptography/hazmat/asn1/asn1.py | 419 - .../cryptography/hazmat/backends/__init__.py | 13 - .../__pycache__/__init__.cpython-39.pyc | Bin 502 -> 0 bytes .../hazmat/backends/openssl/__init__.py | 9 - .../__pycache__/__init__.cpython-39.pyc | Bin 365 -> 0 bytes .../__pycache__/backend.cpython-39.pyc | Bin 9369 -> 0 bytes .../hazmat/backends/openssl/backend.py | 312 - .../cryptography/hazmat/bindings/__init__.py | 3 - .../__pycache__/__init__.cpython-39.pyc | Bin 213 -> 0 bytes .../hazmat/bindings/_rust.abi3.so | Bin 13808528 -> 0 bytes .../hazmat/bindings/_rust/__init__.pyi | 67 - .../hazmat/bindings/_rust/_openssl.pyi | 8 - .../hazmat/bindings/_rust/asn1.pyi | 7 - .../bindings/_rust/declarative_asn1.pyi | 127 - .../hazmat/bindings/_rust/exceptions.pyi | 17 - .../hazmat/bindings/_rust/ocsp.pyi | 117 - .../bindings/_rust/openssl/__init__.pyi | 80 - .../hazmat/bindings/_rust/openssl/aead.pyi | 189 - .../hazmat/bindings/_rust/openssl/ciphers.pyi | 38 - .../hazmat/bindings/_rust/openssl/cmac.pyi | 18 - .../hazmat/bindings/_rust/openssl/dh.pyi | 51 - .../hazmat/bindings/_rust/openssl/dsa.pyi | 41 - .../hazmat/bindings/_rust/openssl/ec.pyi | 52 - .../hazmat/bindings/_rust/openssl/ed25519.pyi | 13 - .../hazmat/bindings/_rust/openssl/ed448.pyi | 13 - .../hazmat/bindings/_rust/openssl/hashes.pyi | 30 - .../hazmat/bindings/_rust/openssl/hmac.pyi | 22 - .../hazmat/bindings/_rust/openssl/hpke.pyi | 108 - .../hazmat/bindings/_rust/openssl/kdf.pyi | 205 - .../hazmat/bindings/_rust/openssl/keys.pyi | 34 - .../hazmat/bindings/_rust/openssl/mldsa.pyi | 23 - .../hazmat/bindings/_rust/openssl/mlkem.pyi | 18 - .../bindings/_rust/openssl/poly1305.pyi | 15 - .../hazmat/bindings/_rust/openssl/rsa.pyi | 55 - .../hazmat/bindings/_rust/openssl/x25519.pyi | 13 - .../hazmat/bindings/_rust/openssl/x448.pyi | 13 - .../hazmat/bindings/_rust/pkcs12.pyi | 52 - .../hazmat/bindings/_rust/pkcs7.pyi | 50 - .../hazmat/bindings/_rust/test_support.pyi | 23 - .../hazmat/bindings/_rust/x509.pyi | 312 - .../hazmat/bindings/openssl/__init__.py | 3 - .../__pycache__/__init__.cpython-39.pyc | Bin 221 -> 0 bytes .../__pycache__/_conditional.cpython-39.pyc | Bin 5282 -> 0 bytes .../__pycache__/binding.cpython-39.pyc | Bin 3714 -> 0 bytes .../hazmat/bindings/openssl/_conditional.py | 199 - .../hazmat/bindings/openssl/binding.py | 122 - .../cryptography/hazmat/decrepit/__init__.py | 5 - .../__pycache__/__init__.cpython-39.pyc | Bin 259 -> 0 bytes .../hazmat/decrepit/ciphers/__init__.py | 5 - .../__pycache__/__init__.cpython-39.pyc | Bin 267 -> 0 bytes .../__pycache__/algorithms.cpython-39.pyc | Bin 4855 -> 0 bytes .../ciphers/__pycache__/modes.cpython-39.pyc | Bin 1833 -> 0 bytes .../hazmat/decrepit/ciphers/algorithms.py | 142 - .../hazmat/decrepit/ciphers/modes.py | 53 - .../hazmat/primitives/__init__.py | 3 - .../__pycache__/__init__.cpython-39.pyc | Bin 215 -> 0 bytes .../__pycache__/_asymmetric.cpython-39.pyc | Bin 727 -> 0 bytes .../_cipheralgorithm.cpython-39.pyc | Bin 1997 -> 0 bytes .../__pycache__/_modes.cpython-39.pyc | Bin 4019 -> 0 bytes .../__pycache__/_serialization.cpython-39.pyc | Bin 4087 -> 0 bytes .../__pycache__/cmac.cpython-39.pyc | Bin 381 -> 0 bytes .../__pycache__/constant_time.cpython-39.pyc | Bin 541 -> 0 bytes .../__pycache__/hashes.cpython-39.pyc | Bin 7031 -> 0 bytes .../__pycache__/hmac.cpython-39.pyc | Bin 479 -> 0 bytes .../__pycache__/hpke.cpython-39.pyc | Bin 607 -> 0 bytes .../__pycache__/keywrap.cpython-39.pyc | Bin 4761 -> 0 bytes .../__pycache__/padding.cpython-39.pyc | Bin 2627 -> 0 bytes .../__pycache__/poly1305.cpython-39.pyc | Bin 393 -> 0 bytes .../hazmat/primitives/_asymmetric.py | 19 - .../hazmat/primitives/_cipheralgorithm.py | 60 - .../cryptography/hazmat/primitives/_modes.py | 105 - .../hazmat/primitives/_serialization.py | 136 - .../hazmat/primitives/asymmetric/__init__.py | 3 - .../__pycache__/__init__.cpython-39.pyc | Bin 226 -> 0 bytes .../asymmetric/__pycache__/dh.cpython-39.pyc | Bin 5078 -> 0 bytes .../asymmetric/__pycache__/dsa.cpython-39.pyc | Bin 5652 -> 0 bytes .../asymmetric/__pycache__/ec.cpython-39.pyc | Bin 11259 -> 0 bytes .../__pycache__/ed25519.cpython-39.pyc | Bin 4194 -> 0 bytes .../__pycache__/ed448.cpython-39.pyc | Bin 4667 -> 0 bytes .../__pycache__/mldsa.cpython-39.pyc | Bin 11317 -> 0 bytes .../__pycache__/mlkem.cpython-39.pyc | Bin 8046 -> 0 bytes .../__pycache__/padding.cpython-39.pyc | Bin 3740 -> 0 bytes .../asymmetric/__pycache__/rsa.cpython-39.pyc | Bin 8339 -> 0 bytes .../__pycache__/types.cpython-39.pyc | Bin 2072 -> 0 bytes .../__pycache__/utils.cpython-39.pyc | Bin 1227 -> 0 bytes .../__pycache__/x25519.cpython-39.pyc | Bin 4512 -> 0 bytes .../__pycache__/x448.cpython-39.pyc | Bin 4510 -> 0 bytes .../hazmat/primitives/asymmetric/dh.py | 159 - .../hazmat/primitives/asymmetric/dsa.py | 179 - .../hazmat/primitives/asymmetric/ec.py | 369 - .../hazmat/primitives/asymmetric/ed25519.py | 116 - .../hazmat/primitives/asymmetric/ed448.py | 143 - .../hazmat/primitives/asymmetric/mldsa.py | 441 - .../hazmat/primitives/asymmetric/mlkem.py | 278 - .../hazmat/primitives/asymmetric/padding.py | 111 - .../hazmat/primitives/asymmetric/rsa.py | 295 - .../hazmat/primitives/asymmetric/types.py | 123 - .../hazmat/primitives/asymmetric/utils.py | 28 - .../hazmat/primitives/asymmetric/x25519.py | 134 - .../hazmat/primitives/asymmetric/x448.py | 137 - .../hazmat/primitives/ciphers/__init__.py | 27 - .../__pycache__/__init__.cpython-39.pyc | Bin 633 -> 0 bytes .../ciphers/__pycache__/aead.cpython-39.pyc | Bin 524 -> 0 bytes .../__pycache__/algorithms.cpython-39.pyc | Bin 3826 -> 0 bytes .../ciphers/__pycache__/base.cpython-39.pyc | Bin 5156 -> 0 bytes .../ciphers/__pycache__/modes.cpython-39.pyc | Bin 5576 -> 0 bytes .../hazmat/primitives/ciphers/aead.py | 23 - .../hazmat/primitives/ciphers/algorithms.py | 138 - .../hazmat/primitives/ciphers/base.py | 146 - .../hazmat/primitives/ciphers/modes.py | 192 - .../cryptography/hazmat/primitives/cmac.py | 10 - .../hazmat/primitives/constant_time.py | 14 - .../cryptography/hazmat/primitives/hashes.py | 246 - .../cryptography/hazmat/primitives/hmac.py | 13 - .../cryptography/hazmat/primitives/hpke.py | 27 - .../hazmat/primitives/kdf/__init__.py | 32 - .../kdf/__pycache__/__init__.cpython-39.pyc | Bin 1511 -> 0 bytes .../kdf/__pycache__/argon2.cpython-39.pyc | Bin 568 -> 0 bytes .../kdf/__pycache__/concatkdf.cpython-39.pyc | Bin 544 -> 0 bytes .../kdf/__pycache__/hkdf.cpython-39.pyc | Bin 527 -> 0 bytes .../kdf/__pycache__/kbkdf.cpython-39.pyc | Bin 968 -> 0 bytes .../kdf/__pycache__/pbkdf2.cpython-39.pyc | Bin 494 -> 0 bytes .../kdf/__pycache__/scrypt.cpython-39.pyc | Bin 543 -> 0 bytes .../kdf/__pycache__/x963kdf.cpython-39.pyc | Bin 492 -> 0 bytes .../hazmat/primitives/kdf/argon2.py | 17 - .../hazmat/primitives/kdf/concatkdf.py | 16 - .../hazmat/primitives/kdf/hkdf.py | 16 - .../hazmat/primitives/kdf/kbkdf.py | 26 - .../hazmat/primitives/kdf/pbkdf2.py | 13 - .../hazmat/primitives/kdf/scrypt.py | 19 - .../hazmat/primitives/kdf/x963kdf.py | 13 - .../cryptography/hazmat/primitives/keywrap.py | 180 - .../cryptography/hazmat/primitives/padding.py | 69 - .../hazmat/primitives/poly1305.py | 11 - .../primitives/serialization/__init__.py | 65 - .../__pycache__/__init__.cpython-39.pyc | Bin 1345 -> 0 bytes .../__pycache__/base.cpython-39.pyc | Bin 545 -> 0 bytes .../__pycache__/pkcs12.cpython-39.pyc | Bin 4512 -> 0 bytes .../__pycache__/pkcs7.cpython-39.pyc | Bin 10677 -> 0 bytes .../__pycache__/ssh.cpython-39.pyc | Bin 38980 -> 0 bytes .../hazmat/primitives/serialization/base.py | 14 - .../hazmat/primitives/serialization/pkcs12.py | 176 - .../hazmat/primitives/serialization/pkcs7.py | 412 - .../hazmat/primitives/serialization/ssh.py | 1621 -- .../hazmat/primitives/twofactor/__init__.py | 9 - .../__pycache__/__init__.cpython-39.pyc | Bin 443 -> 0 bytes .../twofactor/__pycache__/hotp.cpython-39.pyc | Bin 3395 -> 0 bytes .../twofactor/__pycache__/totp.cpython-39.pyc | Bin 1924 -> 0 bytes .../hazmat/primitives/twofactor/hotp.py | 101 - .../hazmat/primitives/twofactor/totp.py | 56 - .../site-packages/cryptography/py.typed | 0 .../site-packages/cryptography/utils.py | 135 - .../cryptography/x509/__init__.py | 271 - .../x509/__pycache__/__init__.cpython-39.pyc | Bin 6491 -> 0 bytes .../x509/__pycache__/base.cpython-39.pyc | Bin 19310 -> 0 bytes .../certificate_transparency.cpython-39.pyc | Bin 1238 -> 0 bytes .../__pycache__/extensions.cpython-39.pyc | Bin 81056 -> 0 bytes .../__pycache__/general_name.cpython-39.pyc | Bin 9825 -> 0 bytes .../x509/__pycache__/name.cpython-39.pyc | Bin 15941 -> 0 bytes .../x509/__pycache__/ocsp.cpython-39.pyc | Bin 9565 -> 0 bytes .../x509/__pycache__/oid.cpython-39.pyc | Bin 748 -> 0 bytes .../__pycache__/verification.cpython-39.pyc | Bin 728 -> 0 bytes .../site-packages/cryptography/x509/base.py | 773 - .../x509/certificate_transparency.py | 35 - .../cryptography/x509/extensions.py | 2533 --- .../cryptography/x509/general_name.py | 281 - .../site-packages/cryptography/x509/name.py | 482 - .../site-packages/cryptography/x509/ocsp.py | 379 - .../site-packages/cryptography/x509/oid.py | 37 - .../cryptography/x509/verification.py | 34 - .../site-packages/distutils-precedence.pth | 1 - .../idna-3.18.dist-info/INSTALLER | 1 - .../idna-3.18.dist-info/METADATA | 155 - .../site-packages/idna-3.18.dist-info/RECORD | 28 - .../site-packages/idna-3.18.dist-info/WHEEL | 4 - .../idna-3.18.dist-info/entry_points.txt | 3 - .../idna-3.18.dist-info/licenses/LICENSE.md | 31 - .../python3.9/site-packages/idna/__init__.py | 45 - .../python3.9/site-packages/idna/__main__.py | 6 - .../idna/__pycache__/__init__.cpython-39.pyc | Bin 851 -> 0 bytes .../idna/__pycache__/__main__.cpython-39.pyc | Bin 289 -> 0 bytes .../idna/__pycache__/cli.cpython-39.pyc | Bin 4347 -> 0 bytes .../idna/__pycache__/codec.cpython-39.pyc | Bin 4805 -> 0 bytes .../idna/__pycache__/compat.cpython-39.pyc | Bin 1788 -> 0 bytes .../idna/__pycache__/core.cpython-39.pyc | Bin 20687 -> 0 bytes .../idna/__pycache__/idnadata.cpython-39.pyc | Bin 22000 -> 0 bytes .../idna/__pycache__/intranges.cpython-39.pyc | Bin 1954 -> 0 bytes .../__pycache__/package_data.cpython-39.pyc | Bin 211 -> 0 bytes .../idna/__pycache__/uts46data.cpython-39.pyc | Bin 96264 -> 0 bytes .venv/lib/python3.9/site-packages/idna/cli.py | 128 - .../lib/python3.9/site-packages/idna/codec.py | 159 - .../python3.9/site-packages/idna/compat.py | 41 - .../lib/python3.9/site-packages/idna/core.py | 648 - .../python3.9/site-packages/idna/idnadata.py | 1897 -- .../python3.9/site-packages/idna/intranges.py | 55 - .../site-packages/idna/package_data.py | 1 - .../lib/python3.9/site-packages/idna/py.typed | 0 .../python3.9/site-packages/idna/uts46data.py | 16896 ---------------- .../oracledb-4.0.1.dist-info/INSTALLER | 1 - .../oracledb-4.0.1.dist-info/METADATA | 194 - .../oracledb-4.0.1.dist-info/RECORD | 88 - .../oracledb-4.0.1.dist-info/REQUESTED | 0 .../oracledb-4.0.1.dist-info/WHEEL | 7 - .../licenses/LICENSE.txt | 229 - .../licenses/NOTICE.txt | 1 - .../licenses/THIRD_PARTY_LICENSES.txt | 1459 -- .../oracledb-4.0.1.dist-info/top_level.txt | 1 - .../site-packages/oracledb/__init__.py | 1288 -- .../__pycache__/__init__.cpython-39.pyc | Bin 10101 -> 0 bytes .../oracledb/__pycache__/aq.cpython-39.pyc | Bin 25184 -> 0 bytes .../__pycache__/arrow_array.cpython-39.pyc | Bin 2978 -> 0 bytes .../oracledb/__pycache__/base.cpython-39.pyc | Bin 867 -> 0 bytes .../__pycache__/builtin_hooks.cpython-39.pyc | Bin 2336 -> 0 bytes .../__pycache__/connect_params.cpython-39.pyc | Bin 53511 -> 0 bytes .../__pycache__/connection.cpython-39.pyc | Bin 123677 -> 0 bytes .../__pycache__/constants.cpython-39.pyc | Bin 1221 -> 0 bytes .../__pycache__/constructors.cpython-39.pyc | Bin 2600 -> 0 bytes .../__pycache__/cursor.cpython-39.pyc | Bin 53800 -> 0 bytes .../__pycache__/dataframe.cpython-39.pyc | Bin 3989 -> 0 bytes .../__pycache__/dbobject.cpython-39.pyc | Bin 13613 -> 0 bytes .../__pycache__/defaults.cpython-39.pyc | Bin 12111 -> 0 bytes .../__pycache__/driver_mode.cpython-39.pyc | Bin 3485 -> 0 bytes .../oracledb/__pycache__/dsn.cpython-39.pyc | Bin 1632 -> 0 bytes .../end_user_security_context.cpython-39.pyc | Bin 2348 -> 0 bytes .../oracledb/__pycache__/enums.cpython-39.pyc | Bin 2071 -> 0 bytes .../__pycache__/errors.cpython-39.pyc | Bin 26760 -> 0 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 3770 -> 0 bytes .../__pycache__/fetch_info.cpython-39.pyc | Bin 10413 -> 0 bytes .../__pycache__/future.cpython-39.pyc | Bin 748 -> 0 bytes .../oracledb/__pycache__/lob.cpython-39.pyc | Bin 9388 -> 0 bytes .../__pycache__/pipeline.cpython-39.pyc | Bin 16945 -> 0 bytes .../oracledb/__pycache__/pool.cpython-39.pyc | Bin 64598 -> 0 bytes .../__pycache__/pool_params.cpython-39.pyc | Bin 41044 -> 0 bytes .../__pycache__/secret_values.cpython-39.pyc | Bin 4623 -> 0 bytes .../oracledb/__pycache__/soda.cpython-39.pyc | Bin 31452 -> 0 bytes .../__pycache__/sparse_vector.cpython-39.pyc | Bin 3017 -> 0 bytes .../__pycache__/subscr.cpython-39.pyc | Bin 13724 -> 0 bytes .../oracledb/__pycache__/utils.cpython-39.pyc | Bin 18758 -> 0 bytes .../oracledb/__pycache__/var.cpython-39.pyc | Bin 6477 -> 0 bytes .../__pycache__/version.cpython-39.pyc | Bin 213 -> 0 bytes .../python3.9/site-packages/oracledb/aq.py | 668 - .../site-packages/oracledb/arrow_array.py | 112 - .../arrow_impl.cpython-39-x86_64-linux-gnu.so | Bin 272536 -> 0 bytes .../python3.9/site-packages/oracledb/base.py | 48 - .../base_impl.cpython-39-x86_64-linux-gnu.so | Bin 2266936 -> 0 bytes .../site-packages/oracledb/builtin_hooks.py | 102 - .../site-packages/oracledb/connect_params.py | 1293 -- .../site-packages/oracledb/connection.py | 3406 ---- .../site-packages/oracledb/constants.py | 96 - .../site-packages/oracledb/constructors.py | 100 - .../site-packages/oracledb/cursor.py | 1388 -- .../site-packages/oracledb/dataframe.py | 122 - .../site-packages/oracledb/dbobject.py | 392 - .../site-packages/oracledb/defaults.py | 329 - .../site-packages/oracledb/driver_mode.py | 140 - .../python3.9/site-packages/oracledb/dsn.py | 81 - .../oracledb/end_user_security_context.py | 92 - .../python3.9/site-packages/oracledb/enums.py | 76 - .../site-packages/oracledb/errors.py | 1058 - .../site-packages/oracledb/exceptions.py | 125 - .../site-packages/oracledb/fetch_info.py | 310 - .../site-packages/oracledb/future.py | 46 - .../python3.9/site-packages/oracledb/lob.py | 318 - .../site-packages/oracledb/pipeline.py | 491 - .../azure_config_provider.cpython-39.pyc | Bin 5596 -> 0 bytes .../__pycache__/azure_tokens.cpython-39.pyc | Bin 3501 -> 0 bytes .../end_user_sec_provider.cpython-39.pyc | Bin 3537 -> 0 bytes .../oci_config_provider.cpython-39.pyc | Bin 5323 -> 0 bytes .../__pycache__/oci_tokens.cpython-39.pyc | Bin 7600 -> 0 bytes .../oracledb/plugins/azure_config_provider.py | 274 - .../oracledb/plugins/azure_tokens.py | 162 - .../oracledb/plugins/end_user_sec_provider.py | 136 - .../oracledb/plugins/oci_config_provider.py | 253 - .../oracledb/plugins/oci_tokens.py | 292 - .../python3.9/site-packages/oracledb/pool.py | 1723 -- .../site-packages/oracledb/pool_params.py | 1033 - .../python3.9/site-packages/oracledb/py.typed | 0 .../site-packages/oracledb/secret_values.py | 170 - .../python3.9/site-packages/oracledb/soda.py | 746 - .../site-packages/oracledb/sparse_vector.py | 123 - .../site-packages/oracledb/subscr.py | 382 - .../thick_impl.cpython-39-x86_64-linux-gnu.so | Bin 1319616 -> 0 bytes .../thin_impl.cpython-39-x86_64-linux-gnu.so | Bin 3230920 -> 0 bytes .../python3.9/site-packages/oracledb/utils.py | 448 - .../python3.9/site-packages/oracledb/var.py | 186 - .../site-packages/oracledb/version.py | 33 - .../pip-21.3.1.dist-info/INSTALLER | 1 - .../pip-21.3.1.dist-info/LICENSE.txt | 20 - .../pip-21.3.1.dist-info/METADATA | 93 - .../site-packages/pip-21.3.1.dist-info/RECORD | 812 - .../pip-21.3.1.dist-info/REQUESTED | 0 .../site-packages/pip-21.3.1.dist-info/WHEEL | 5 - .../pip-21.3.1.dist-info/entry_points.txt | 5 - .../pip-21.3.1.dist-info/top_level.txt | 1 - .../python3.9/site-packages/pip/__init__.py | 13 - .../python3.9/site-packages/pip/__main__.py | 31 - .../pip/__pycache__/__init__.cpython-39.pyc | Bin 642 -> 0 bytes .../pip/__pycache__/__main__.cpython-39.pyc | Bin 598 -> 0 bytes .../site-packages/pip/_internal/__init__.py | 19 - .../__pycache__/__init__.cpython-39.pyc | Bin 779 -> 0 bytes .../__pycache__/build_env.cpython-39.pyc | Bin 9479 -> 0 bytes .../__pycache__/cache.cpython-39.pyc | Bin 8320 -> 0 bytes .../__pycache__/configuration.cpython-39.pyc | Bin 11136 -> 0 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 16382 -> 0 bytes .../_internal/__pycache__/main.cpython-39.pyc | Bin 628 -> 0 bytes .../__pycache__/pyproject.cpython-39.pyc | Bin 3702 -> 0 bytes .../self_outdated_check.cpython-39.pyc | Bin 4515 -> 0 bytes .../__pycache__/wheel_builder.cpython-39.pyc | Bin 9129 -> 0 bytes .../site-packages/pip/_internal/build_env.py | 293 - .../site-packages/pip/_internal/cache.py | 264 - .../pip/_internal/cli/__init__.py | 4 - .../cli/__pycache__/__init__.cpython-39.pyc | Bin 283 -> 0 bytes .../__pycache__/autocompletion.cpython-39.pyc | Bin 5140 -> 0 bytes .../__pycache__/base_command.cpython-39.pyc | Bin 6146 -> 0 bytes .../cli/__pycache__/cmdoptions.cpython-39.pyc | Bin 22576 -> 0 bytes .../command_context.cpython-39.pyc | Bin 1298 -> 0 bytes .../cli/__pycache__/main.cpython-39.pyc | Bin 1373 -> 0 bytes .../__pycache__/main_parser.cpython-39.pyc | Bin 2170 -> 0 bytes .../cli/__pycache__/parser.cpython-39.pyc | Bin 9954 -> 0 bytes .../__pycache__/progress_bars.cpython-39.pyc | Bin 7630 -> 0 bytes .../__pycache__/req_command.cpython-39.pyc | Bin 12365 -> 0 bytes .../cli/__pycache__/spinners.cpython-39.pyc | Bin 4953 -> 0 bytes .../__pycache__/status_codes.cpython-39.pyc | Bin 362 -> 0 bytes .../pip/_internal/cli/autocompletion.py | 163 - .../pip/_internal/cli/base_command.py | 214 - .../pip/_internal/cli/cmdoptions.py | 1010 - .../pip/_internal/cli/command_context.py | 27 - .../site-packages/pip/_internal/cli/main.py | 70 - .../pip/_internal/cli/main_parser.py | 87 - .../site-packages/pip/_internal/cli/parser.py | 292 - .../pip/_internal/cli/progress_bars.py | 250 - .../pip/_internal/cli/req_command.py | 469 - .../pip/_internal/cli/spinners.py | 157 - .../pip/_internal/cli/status_codes.py | 6 - .../pip/_internal/commands/__init__.py | 127 - .../__pycache__/__init__.cpython-39.pyc | Bin 3060 -> 0 bytes .../commands/__pycache__/cache.cpython-39.pyc | Bin 6187 -> 0 bytes .../commands/__pycache__/check.cpython-39.pyc | Bin 1576 -> 0 bytes .../__pycache__/completion.cpython-39.pyc | Bin 3149 -> 0 bytes .../__pycache__/configuration.cpython-39.pyc | Bin 8330 -> 0 bytes .../commands/__pycache__/debug.cpython-39.pyc | Bin 6665 -> 0 bytes .../__pycache__/download.cpython-39.pyc | Bin 3971 -> 0 bytes .../__pycache__/freeze.cpython-39.pyc | Bin 2646 -> 0 bytes .../commands/__pycache__/hash.cpython-39.pyc | Bin 2142 -> 0 bytes .../commands/__pycache__/help.cpython-39.pyc | Bin 1314 -> 0 bytes .../commands/__pycache__/index.cpython-39.pyc | Bin 4530 -> 0 bytes .../__pycache__/install.cpython-39.pyc | Bin 17694 -> 0 bytes .../commands/__pycache__/list.cpython-39.pyc | Bin 10158 -> 0 bytes .../__pycache__/search.cpython-39.pyc | Bin 5332 -> 0 bytes .../commands/__pycache__/show.cpython-39.pyc | Bin 8477 -> 0 bytes .../__pycache__/uninstall.cpython-39.pyc | Bin 3110 -> 0 bytes .../commands/__pycache__/wheel.cpython-39.pyc | Bin 4838 -> 0 bytes .../pip/_internal/commands/cache.py | 223 - .../pip/_internal/commands/check.py | 53 - .../pip/_internal/commands/completion.py | 96 - .../pip/_internal/commands/configuration.py | 266 - .../pip/_internal/commands/debug.py | 202 - .../pip/_internal/commands/download.py | 139 - .../pip/_internal/commands/freeze.py | 97 - .../pip/_internal/commands/hash.py | 59 - .../pip/_internal/commands/help.py | 41 - .../pip/_internal/commands/index.py | 138 - .../pip/_internal/commands/install.py | 770 - .../pip/_internal/commands/list.py | 361 - .../pip/_internal/commands/search.py | 174 - .../pip/_internal/commands/show.py | 235 - .../pip/_internal/commands/uninstall.py | 105 - .../pip/_internal/commands/wheel.py | 177 - .../pip/_internal/configuration.py | 367 - .../pip/_internal/distributions/__init__.py | 21 - .../__pycache__/__init__.cpython-39.pyc | Bin 806 -> 0 bytes .../__pycache__/base.cpython-39.pyc | Bin 1881 -> 0 bytes .../__pycache__/installed.cpython-39.pyc | Bin 1328 -> 0 bytes .../__pycache__/sdist.cpython-39.pyc | Bin 4654 -> 0 bytes .../__pycache__/wheel.cpython-39.pyc | Bin 1606 -> 0 bytes .../pip/_internal/distributions/base.py | 36 - .../pip/_internal/distributions/installed.py | 22 - .../pip/_internal/distributions/sdist.py | 129 - .../pip/_internal/distributions/wheel.py | 31 - .../site-packages/pip/_internal/exceptions.py | 402 - .../pip/_internal/index/__init__.py | 2 - .../index/__pycache__/__init__.cpython-39.pyc | Bin 237 -> 0 bytes .../__pycache__/collector.cpython-39.pyc | Bin 15891 -> 0 bytes .../__pycache__/package_finder.cpython-39.pyc | Bin 28106 -> 0 bytes .../index/__pycache__/sources.cpython-39.pyc | Bin 7202 -> 0 bytes .../pip/_internal/index/collector.py | 536 - .../pip/_internal/index/package_finder.py | 993 - .../pip/_internal/index/sources.py | 224 - .../pip/_internal/locations/__init__.py | 446 - .../__pycache__/__init__.cpython-39.pyc | Bin 10617 -> 0 bytes .../__pycache__/_distutils.cpython-39.pyc | Bin 4676 -> 0 bytes .../__pycache__/_sysconfig.cpython-39.pyc | Bin 6267 -> 0 bytes .../locations/__pycache__/base.cpython-39.pyc | Bin 1545 -> 0 bytes .../pip/_internal/locations/_distutils.py | 169 - .../pip/_internal/locations/_sysconfig.py | 219 - .../pip/_internal/locations/base.py | 52 - .../site-packages/pip/_internal/main.py | 12 - .../pip/_internal/metadata/__init__.py | 51 - .../__pycache__/__init__.cpython-39.pyc | Bin 1932 -> 0 bytes .../metadata/__pycache__/base.cpython-39.pyc | Bin 13011 -> 0 bytes .../__pycache__/pkg_resources.cpython-39.pyc | Bin 6119 -> 0 bytes .../pip/_internal/metadata/base.py | 330 - .../pip/_internal/metadata/pkg_resources.py | 146 - .../pip/_internal/models/__init__.py | 2 - .../__pycache__/__init__.cpython-39.pyc | Bin 271 -> 0 bytes .../__pycache__/candidate.cpython-39.pyc | Bin 1454 -> 0 bytes .../__pycache__/direct_url.cpython-39.pyc | Bin 7244 -> 0 bytes .../__pycache__/format_control.cpython-39.pyc | Bin 2725 -> 0 bytes .../models/__pycache__/index.cpython-39.pyc | Bin 1241 -> 0 bytes .../models/__pycache__/link.cpython-39.pyc | Bin 10265 -> 0 bytes .../models/__pycache__/scheme.cpython-39.pyc | Bin 1017 -> 0 bytes .../__pycache__/search_scope.cpython-39.pyc | Bin 3486 -> 0 bytes .../selection_prefs.cpython-39.pyc | Bin 1673 -> 0 bytes .../__pycache__/target_python.cpython-39.pyc | Bin 3419 -> 0 bytes .../models/__pycache__/wheel.cpython-39.pyc | Bin 4343 -> 0 bytes .../pip/_internal/models/candidate.py | 34 - .../pip/_internal/models/direct_url.py | 220 - .../pip/_internal/models/format_control.py | 80 - .../pip/_internal/models/index.py | 28 - .../pip/_internal/models/link.py | 288 - .../pip/_internal/models/scheme.py | 31 - .../pip/_internal/models/search_scope.py | 129 - .../pip/_internal/models/selection_prefs.py | 51 - .../pip/_internal/models/target_python.py | 110 - .../pip/_internal/models/wheel.py | 89 - .../pip/_internal/network/__init__.py | 2 - .../__pycache__/__init__.cpython-39.pyc | Bin 259 -> 0 bytes .../network/__pycache__/auth.cpython-39.pyc | Bin 7491 -> 0 bytes .../network/__pycache__/cache.cpython-39.pyc | Bin 2901 -> 0 bytes .../__pycache__/download.cpython-39.pyc | Bin 5490 -> 0 bytes .../__pycache__/lazy_wheel.cpython-39.pyc | Bin 8391 -> 0 bytes .../__pycache__/session.cpython-39.pyc | Bin 10761 -> 0 bytes .../network/__pycache__/utils.cpython-39.pyc | Bin 1437 -> 0 bytes .../network/__pycache__/xmlrpc.cpython-39.pyc | Bin 2058 -> 0 bytes .../pip/_internal/network/auth.py | 323 - .../pip/_internal/network/cache.py | 69 - .../pip/_internal/network/download.py | 184 - .../pip/_internal/network/lazy_wheel.py | 210 - .../pip/_internal/network/session.py | 454 - .../pip/_internal/network/utils.py | 96 - .../pip/_internal/network/xmlrpc.py | 60 - .../pip/_internal/operations/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 207 -> 0 bytes .../__pycache__/check.cpython-39.pyc | Bin 4011 -> 0 bytes .../__pycache__/freeze.cpython-39.pyc | Bin 6153 -> 0 bytes .../__pycache__/prepare.cpython-39.pyc | Bin 14663 -> 0 bytes .../_internal/operations/build/__init__.py | 0 .../build/__pycache__/__init__.cpython-39.pyc | Bin 213 -> 0 bytes .../build/__pycache__/metadata.cpython-39.pyc | Bin 1197 -> 0 bytes .../metadata_editable.cpython-39.pyc | Bin 1235 -> 0 bytes .../metadata_legacy.cpython-39.pyc | Bin 2165 -> 0 bytes .../build/__pycache__/wheel.cpython-39.pyc | Bin 1208 -> 0 bytes .../__pycache__/wheel_editable.cpython-39.pyc | Bin 1424 -> 0 bytes .../__pycache__/wheel_legacy.cpython-39.pyc | Bin 2724 -> 0 bytes .../_internal/operations/build/metadata.py | 30 - .../operations/build/metadata_editable.py | 34 - .../operations/build/metadata_legacy.py | 67 - .../pip/_internal/operations/build/wheel.py | 37 - .../operations/build/wheel_editable.py | 46 - .../operations/build/wheel_legacy.py | 105 - .../pip/_internal/operations/check.py | 149 - .../pip/_internal/operations/freeze.py | 254 - .../_internal/operations/install/__init__.py | 2 - .../__pycache__/__init__.cpython-39.pyc | Bin 271 -> 0 bytes .../editable_legacy.cpython-39.pyc | Bin 1449 -> 0 bytes .../install/__pycache__/legacy.cpython-39.pyc | Bin 3509 -> 0 bytes .../install/__pycache__/wheel.cpython-39.pyc | Bin 20973 -> 0 bytes .../operations/install/editable_legacy.py | 46 - .../_internal/operations/install/legacy.py | 125 - .../pip/_internal/operations/install/wheel.py | 738 - .../pip/_internal/operations/prepare.py | 632 - .../site-packages/pip/_internal/pyproject.py | 183 - .../pip/_internal/req/__init__.py | 94 - .../req/__pycache__/__init__.cpython-39.pyc | Bin 2566 -> 0 bytes .../__pycache__/constructors.cpython-39.pyc | Bin 11324 -> 0 bytes .../req/__pycache__/req_file.cpython-39.pyc | Bin 13384 -> 0 bytes .../__pycache__/req_install.cpython-39.pyc | Bin 22763 -> 0 bytes .../req/__pycache__/req_set.cpython-39.pyc | Bin 5904 -> 0 bytes .../__pycache__/req_tracker.cpython-39.pyc | Bin 4264 -> 0 bytes .../__pycache__/req_uninstall.cpython-39.pyc | Bin 18796 -> 0 bytes .../pip/_internal/req/constructors.py | 466 - .../pip/_internal/req/req_file.py | 536 - .../pip/_internal/req/req_install.py | 891 - .../pip/_internal/req/req_set.py | 189 - .../pip/_internal/req/req_tracker.py | 124 - .../pip/_internal/req/req_uninstall.py | 633 - .../pip/_internal/resolution/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 207 -> 0 bytes .../__pycache__/base.cpython-39.pyc | Bin 1064 -> 0 bytes .../pip/_internal/resolution/base.py | 20 - .../_internal/resolution/legacy/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 214 -> 0 bytes .../__pycache__/resolver.cpython-39.pyc | Bin 12223 -> 0 bytes .../_internal/resolution/legacy/resolver.py | 467 - .../resolution/resolvelib/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 218 -> 0 bytes .../__pycache__/base.cpython-39.pyc | Bin 6615 -> 0 bytes .../__pycache__/candidates.cpython-39.pyc | Bin 18515 -> 0 bytes .../__pycache__/factory.cpython-39.pyc | Bin 18377 -> 0 bytes .../found_candidates.cpython-39.pyc | Bin 4849 -> 0 bytes .../__pycache__/provider.cpython-39.pyc | Bin 7120 -> 0 bytes .../__pycache__/reporter.cpython-39.pyc | Bin 3279 -> 0 bytes .../__pycache__/requirements.cpython-39.pyc | Bin 7588 -> 0 bytes .../__pycache__/resolver.cpython-39.pyc | Bin 7304 -> 0 bytes .../_internal/resolution/resolvelib/base.py | 141 - .../resolution/resolvelib/candidates.py | 540 - .../resolution/resolvelib/factory.py | 701 - .../resolution/resolvelib/found_candidates.py | 155 - .../resolution/resolvelib/provider.py | 215 - .../resolution/resolvelib/reporter.py | 68 - .../resolution/resolvelib/requirements.py | 166 - .../resolution/resolvelib/resolver.py | 251 - .../pip/_internal/self_outdated_check.py | 182 - .../pip/_internal/utils/__init__.py | 0 .../utils/__pycache__/__init__.cpython-39.pyc | Bin 202 -> 0 bytes .../utils/__pycache__/_log.cpython-39.pyc | Bin 1527 -> 0 bytes .../utils/__pycache__/appdirs.cpython-39.pyc | Bin 1633 -> 0 bytes .../utils/__pycache__/compat.cpython-39.pyc | Bin 1521 -> 0 bytes .../compatibility_tags.cpython-39.pyc | Bin 4073 -> 0 bytes .../utils/__pycache__/datetime.cpython-39.pyc | Bin 521 -> 0 bytes .../__pycache__/deprecation.cpython-39.pyc | Bin 3259 -> 0 bytes .../direct_url_helpers.cpython-39.pyc | Bin 2092 -> 0 bytes .../__pycache__/distutils_args.cpython-39.pyc | Bin 1107 -> 0 bytes .../utils/__pycache__/egg_link.cpython-39.pyc | Bin 2148 -> 0 bytes .../utils/__pycache__/encoding.cpython-39.pyc | Bin 1311 -> 0 bytes .../__pycache__/entrypoints.cpython-39.pyc | Bin 1342 -> 0 bytes .../__pycache__/filesystem.cpython-39.pyc | Bin 5148 -> 0 bytes .../__pycache__/filetypes.cpython-39.pyc | Bin 952 -> 0 bytes .../utils/__pycache__/glibc.cpython-39.pyc | Bin 1683 -> 0 bytes .../utils/__pycache__/hashes.cpython-39.pyc | Bin 5197 -> 0 bytes .../inject_securetransport.cpython-39.pyc | Bin 991 -> 0 bytes .../utils/__pycache__/logging.cpython-39.pyc | Bin 9297 -> 0 bytes .../utils/__pycache__/misc.cpython-39.pyc | Bin 20944 -> 0 bytes .../utils/__pycache__/models.cpython-39.pyc | Bin 2070 -> 0 bytes .../__pycache__/packaging.cpython-39.pyc | Bin 2646 -> 0 bytes .../utils/__pycache__/parallel.cpython-39.pyc | Bin 3217 -> 0 bytes .../__pycache__/pkg_resources.cpython-39.pyc | Bin 1879 -> 0 bytes .../setuptools_build.cpython-39.pyc | Bin 3441 -> 0 bytes .../__pycache__/subprocess.cpython-39.pyc | Bin 6254 -> 0 bytes .../utils/__pycache__/temp_dir.cpython-39.pyc | Bin 7269 -> 0 bytes .../__pycache__/unpacking.cpython-39.pyc | Bin 8483 -> 0 bytes .../utils/__pycache__/urls.cpython-39.pyc | Bin 1606 -> 0 bytes .../__pycache__/virtualenv.cpython-39.pyc | Bin 3296 -> 0 bytes .../utils/__pycache__/wheel.cpython-39.pyc | Bin 6285 -> 0 bytes .../site-packages/pip/_internal/utils/_log.py | 38 - .../pip/_internal/utils/appdirs.py | 52 - .../pip/_internal/utils/compat.py | 63 - .../pip/_internal/utils/compatibility_tags.py | 165 - .../pip/_internal/utils/datetime.py | 11 - .../pip/_internal/utils/deprecation.py | 120 - .../pip/_internal/utils/direct_url_helpers.py | 87 - .../pip/_internal/utils/distutils_args.py | 42 - .../pip/_internal/utils/egg_link.py | 75 - .../pip/_internal/utils/encoding.py | 36 - .../pip/_internal/utils/entrypoints.py | 28 - .../pip/_internal/utils/filesystem.py | 182 - .../pip/_internal/utils/filetypes.py | 27 - .../pip/_internal/utils/glibc.py | 88 - .../pip/_internal/utils/hashes.py | 144 - .../_internal/utils/inject_securetransport.py | 35 - .../pip/_internal/utils/logging.py | 358 - .../site-packages/pip/_internal/utils/misc.py | 689 - .../pip/_internal/utils/models.py | 39 - .../pip/_internal/utils/packaging.py | 84 - .../pip/_internal/utils/parallel.py | 103 - .../pip/_internal/utils/pkg_resources.py | 33 - .../pip/_internal/utils/setuptools_build.py | 167 - .../pip/_internal/utils/subprocess.py | 289 - .../pip/_internal/utils/temp_dir.py | 246 - .../pip/_internal/utils/unpacking.py | 351 - .../site-packages/pip/_internal/utils/urls.py | 62 - .../pip/_internal/utils/virtualenv.py | 104 - .../pip/_internal/utils/wheel.py | 182 - .../pip/_internal/vcs/__init__.py | 15 - .../vcs/__pycache__/__init__.cpython-39.pyc | Bin 525 -> 0 bytes .../vcs/__pycache__/bazaar.cpython-39.pyc | Bin 3235 -> 0 bytes .../vcs/__pycache__/git.cpython-39.pyc | Bin 12359 -> 0 bytes .../vcs/__pycache__/mercurial.cpython-39.pyc | Bin 4878 -> 0 bytes .../vcs/__pycache__/subversion.cpython-39.pyc | Bin 8397 -> 0 bytes .../__pycache__/versioncontrol.cpython-39.pyc | Bin 20897 -> 0 bytes .../site-packages/pip/_internal/vcs/bazaar.py | 93 - .../site-packages/pip/_internal/vcs/git.py | 513 - .../pip/_internal/vcs/mercurial.py | 153 - .../pip/_internal/vcs/subversion.py | 318 - .../pip/_internal/vcs/versioncontrol.py | 693 - .../pip/_internal/wheel_builder.py | 375 - .../site-packages/pip/_vendor/__init__.py | 111 - .../__pycache__/__init__.cpython-39.pyc | Bin 2915 -> 0 bytes .../_vendor/__pycache__/distro.cpython-39.pyc | Bin 38377 -> 0 bytes .../__pycache__/pyparsing.cpython-39.pyc | Bin 240446 -> 0 bytes .../_vendor/__pycache__/six.cpython-39.pyc | Bin 27519 -> 0 bytes .../pip/_vendor/cachecontrol/__init__.py | 11 - .../__pycache__/__init__.cpython-39.pyc | Bin 560 -> 0 bytes .../__pycache__/_cmd.cpython-39.pyc | Bin 1581 -> 0 bytes .../__pycache__/adapter.cpython-39.pyc | Bin 3086 -> 0 bytes .../__pycache__/cache.cpython-39.pyc | Bin 1833 -> 0 bytes .../__pycache__/compat.cpython-39.pyc | Bin 757 -> 0 bytes .../__pycache__/controller.cpython-39.pyc | Bin 7774 -> 0 bytes .../__pycache__/filewrapper.cpython-39.pyc | Bin 2182 -> 0 bytes .../__pycache__/heuristics.cpython-39.pyc | Bin 4714 -> 0 bytes .../__pycache__/serialize.cpython-39.pyc | Bin 4233 -> 0 bytes .../__pycache__/wrapper.cpython-39.pyc | Bin 684 -> 0 bytes .../pip/_vendor/cachecontrol/_cmd.py | 57 - .../pip/_vendor/cachecontrol/adapter.py | 133 - .../pip/_vendor/cachecontrol/cache.py | 39 - .../_vendor/cachecontrol/caches/__init__.py | 2 - .../__pycache__/__init__.cpython-39.pyc | Bin 304 -> 0 bytes .../__pycache__/file_cache.cpython-39.pyc | Bin 3320 -> 0 bytes .../__pycache__/redis_cache.cpython-39.pyc | Bin 1576 -> 0 bytes .../_vendor/cachecontrol/caches/file_cache.py | 146 - .../cachecontrol/caches/redis_cache.py | 33 - .../pip/_vendor/cachecontrol/compat.py | 29 - .../pip/_vendor/cachecontrol/controller.py | 376 - .../pip/_vendor/cachecontrol/filewrapper.py | 80 - .../pip/_vendor/cachecontrol/heuristics.py | 135 - .../pip/_vendor/cachecontrol/serialize.py | 188 - .../pip/_vendor/cachecontrol/wrapper.py | 29 - .../pip/_vendor/certifi/__init__.py | 3 - .../pip/_vendor/certifi/__main__.py | 12 - .../__pycache__/__init__.cpython-39.pyc | Bin 286 -> 0 bytes .../__pycache__/__main__.cpython-39.pyc | Bin 463 -> 0 bytes .../certifi/__pycache__/core.cpython-39.pyc | Bin 1533 -> 0 bytes .../site-packages/pip/_vendor/certifi/core.py | 75 - .../pip/_vendor/chardet/__init__.py | 83 - .../__pycache__/__init__.cpython-39.pyc | Bin 1910 -> 0 bytes .../__pycache__/big5freq.cpython-39.pyc | Bin 27189 -> 0 bytes .../__pycache__/big5prober.cpython-39.pyc | Bin 1144 -> 0 bytes .../chardistribution.cpython-39.pyc | Bin 6230 -> 0 bytes .../charsetgroupprober.cpython-39.pyc | Bin 2271 -> 0 bytes .../__pycache__/charsetprober.cpython-39.pyc | Bin 3493 -> 0 bytes .../codingstatemachine.cpython-39.pyc | Bin 2920 -> 0 bytes .../chardet/__pycache__/compat.cpython-39.pyc | Bin 409 -> 0 bytes .../__pycache__/cp949prober.cpython-39.pyc | Bin 1151 -> 0 bytes .../chardet/__pycache__/enums.cpython-39.pyc | Bin 2658 -> 0 bytes .../__pycache__/escprober.cpython-39.pyc | Bin 2643 -> 0 bytes .../chardet/__pycache__/escsm.cpython-39.pyc | Bin 7092 -> 0 bytes .../__pycache__/eucjpprober.cpython-39.pyc | Bin 2457 -> 0 bytes .../__pycache__/euckrfreq.cpython-39.pyc | Bin 12073 -> 0 bytes .../__pycache__/euckrprober.cpython-39.pyc | Bin 1152 -> 0 bytes .../__pycache__/euctwfreq.cpython-39.pyc | Bin 27193 -> 0 bytes .../__pycache__/euctwprober.cpython-39.pyc | Bin 1152 -> 0 bytes .../__pycache__/gb2312freq.cpython-39.pyc | Bin 19117 -> 0 bytes .../__pycache__/gb2312prober.cpython-39.pyc | Bin 1160 -> 0 bytes .../__pycache__/hebrewprober.cpython-39.pyc | Bin 3029 -> 0 bytes .../__pycache__/jisfreq.cpython-39.pyc | Bin 22145 -> 0 bytes .../chardet/__pycache__/jpcntx.cpython-39.pyc | Bin 37618 -> 0 bytes .../langbulgarianmodel.cpython-39.pyc | Bin 21820 -> 0 bytes .../__pycache__/langgreekmodel.cpython-39.pyc | Bin 20496 -> 0 bytes .../langhebrewmodel.cpython-39.pyc | Bin 20564 -> 0 bytes .../langhungarianmodel.cpython-39.pyc | Bin 21765 -> 0 bytes .../langrussianmodel.cpython-39.pyc | Bin 26368 -> 0 bytes .../__pycache__/langthaimodel.cpython-39.pyc | Bin 20740 -> 0 bytes .../langturkishmodel.cpython-39.pyc | Bin 20580 -> 0 bytes .../__pycache__/latin1prober.cpython-39.pyc | Bin 2965 -> 0 bytes .../mbcharsetprober.cpython-39.pyc | Bin 2272 -> 0 bytes .../mbcsgroupprober.cpython-39.pyc | Bin 1141 -> 0 bytes .../chardet/__pycache__/mbcssm.cpython-39.pyc | Bin 15728 -> 0 bytes .../sbcharsetprober.cpython-39.pyc | Bin 3125 -> 0 bytes .../sbcsgroupprober.cpython-39.pyc | Bin 1710 -> 0 bytes .../__pycache__/sjisprober.cpython-39.pyc | Bin 2493 -> 0 bytes .../universaldetector.cpython-39.pyc | Bin 5841 -> 0 bytes .../__pycache__/utf8prober.cpython-39.pyc | Bin 2002 -> 0 bytes .../__pycache__/version.cpython-39.pyc | Bin 449 -> 0 bytes .../pip/_vendor/chardet/big5freq.py | 386 - .../pip/_vendor/chardet/big5prober.py | 47 - .../pip/_vendor/chardet/chardistribution.py | 233 - .../pip/_vendor/chardet/charsetgroupprober.py | 107 - .../pip/_vendor/chardet/charsetprober.py | 145 - .../pip/_vendor/chardet/cli/__init__.py | 1 - .../cli/__pycache__/__init__.cpython-39.pyc | Bin 206 -> 0 bytes .../cli/__pycache__/chardetect.cpython-39.pyc | Bin 2700 -> 0 bytes .../pip/_vendor/chardet/cli/chardetect.py | 84 - .../pip/_vendor/chardet/codingstatemachine.py | 88 - .../pip/_vendor/chardet/compat.py | 36 - .../pip/_vendor/chardet/cp949prober.py | 49 - .../pip/_vendor/chardet/enums.py | 76 - .../pip/_vendor/chardet/escprober.py | 101 - .../pip/_vendor/chardet/escsm.py | 246 - .../pip/_vendor/chardet/eucjpprober.py | 92 - .../pip/_vendor/chardet/euckrfreq.py | 195 - .../pip/_vendor/chardet/euckrprober.py | 47 - .../pip/_vendor/chardet/euctwfreq.py | 387 - .../pip/_vendor/chardet/euctwprober.py | 46 - .../pip/_vendor/chardet/gb2312freq.py | 283 - .../pip/_vendor/chardet/gb2312prober.py | 46 - .../pip/_vendor/chardet/hebrewprober.py | 292 - .../pip/_vendor/chardet/jisfreq.py | 325 - .../pip/_vendor/chardet/jpcntx.py | 233 - .../pip/_vendor/chardet/langbulgarianmodel.py | 4649 ----- .../pip/_vendor/chardet/langgreekmodel.py | 4397 ---- .../pip/_vendor/chardet/langhebrewmodel.py | 4382 ---- .../pip/_vendor/chardet/langhungarianmodel.py | 4649 ----- .../pip/_vendor/chardet/langrussianmodel.py | 5717 ------ .../pip/_vendor/chardet/langthaimodel.py | 4382 ---- .../pip/_vendor/chardet/langturkishmodel.py | 4382 ---- .../pip/_vendor/chardet/latin1prober.py | 145 - .../pip/_vendor/chardet/mbcharsetprober.py | 91 - .../pip/_vendor/chardet/mbcsgroupprober.py | 54 - .../pip/_vendor/chardet/mbcssm.py | 572 - .../pip/_vendor/chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 211 -> 0 bytes .../__pycache__/languages.cpython-39.pyc | Bin 7942 -> 0 bytes .../pip/_vendor/chardet/metadata/languages.py | 309 - .../pip/_vendor/chardet/sbcharsetprober.py | 145 - .../pip/_vendor/chardet/sbcsgroupprober.py | 83 - .../pip/_vendor/chardet/sjisprober.py | 92 - .../pip/_vendor/chardet/universaldetector.py | 286 - .../pip/_vendor/chardet/utf8prober.py | 82 - .../pip/_vendor/chardet/version.py | 9 - .../pip/_vendor/colorama/__init__.py | 6 - .../__pycache__/__init__.cpython-39.pyc | Bin 454 -> 0 bytes .../colorama/__pycache__/ansi.cpython-39.pyc | Bin 3239 -> 0 bytes .../__pycache__/ansitowin32.cpython-39.pyc | Bin 7705 -> 0 bytes .../__pycache__/initialise.cpython-39.pyc | Bin 1721 -> 0 bytes .../colorama/__pycache__/win32.cpython-39.pyc | Bin 3953 -> 0 bytes .../__pycache__/winterm.cpython-39.pyc | Bin 4675 -> 0 bytes .../pip/_vendor/colorama/ansi.py | 102 - .../pip/_vendor/colorama/ansitowin32.py | 258 - .../pip/_vendor/colorama/initialise.py | 80 - .../pip/_vendor/colorama/win32.py | 152 - .../pip/_vendor/colorama/winterm.py | 169 - .../pip/_vendor/distlib/__init__.py | 23 - .../__pycache__/__init__.cpython-39.pyc | Bin 1067 -> 0 bytes .../distlib/__pycache__/compat.cpython-39.pyc | Bin 31832 -> 0 bytes .../__pycache__/database.cpython-39.pyc | Bin 42491 -> 0 bytes .../distlib/__pycache__/index.cpython-39.pyc | Bin 17300 -> 0 bytes .../__pycache__/locators.cpython-39.pyc | Bin 38264 -> 0 bytes .../__pycache__/manifest.cpython-39.pyc | Bin 10203 -> 0 bytes .../__pycache__/markers.cpython-39.pyc | Bin 4985 -> 0 bytes .../__pycache__/metadata.cpython-39.pyc | Bin 26598 -> 0 bytes .../__pycache__/resources.cpython-39.pyc | Bin 11021 -> 0 bytes .../__pycache__/scripts.cpython-39.pyc | Bin 11253 -> 0 bytes .../distlib/__pycache__/util.cpython-39.pyc | Bin 52616 -> 0 bytes .../__pycache__/version.cpython-39.pyc | Bin 20366 -> 0 bytes .../distlib/__pycache__/wheel.cpython-39.pyc | Bin 27179 -> 0 bytes .../pip/_vendor/distlib/_backport/__init__.py | 6 - .../__pycache__/__init__.cpython-39.pyc | Bin 494 -> 0 bytes .../_backport/__pycache__/misc.cpython-39.pyc | Bin 1114 -> 0 bytes .../__pycache__/shutil.cpython-39.pyc | Bin 21688 -> 0 bytes .../__pycache__/sysconfig.cpython-39.pyc | Bin 15978 -> 0 bytes .../__pycache__/tarfile.cpython-39.pyc | Bin 62742 -> 0 bytes .../pip/_vendor/distlib/_backport/misc.py | 41 - .../pip/_vendor/distlib/_backport/shutil.py | 764 - .../_vendor/distlib/_backport/sysconfig.cfg | 84 - .../_vendor/distlib/_backport/sysconfig.py | 786 - .../pip/_vendor/distlib/_backport/tarfile.py | 2607 --- .../pip/_vendor/distlib/compat.py | 1122 - .../pip/_vendor/distlib/database.py | 1339 -- .../pip/_vendor/distlib/index.py | 509 - .../pip/_vendor/distlib/locators.py | 1300 -- .../pip/_vendor/distlib/manifest.py | 393 - .../pip/_vendor/distlib/markers.py | 147 - .../pip/_vendor/distlib/metadata.py | 1058 - .../pip/_vendor/distlib/resources.py | 358 - .../pip/_vendor/distlib/scripts.py | 429 - .../site-packages/pip/_vendor/distlib/util.py | 1969 -- .../pip/_vendor/distlib/version.py | 739 - .../pip/_vendor/distlib/wheel.py | 1053 - .../site-packages/pip/_vendor/distro.py | 1386 -- .../pip/_vendor/html5lib/__init__.py | 35 - .../__pycache__/__init__.cpython-39.pyc | Bin 1313 -> 0 bytes .../__pycache__/_ihatexml.cpython-39.pyc | Bin 13782 -> 0 bytes .../__pycache__/_inputstream.cpython-39.pyc | Bin 21641 -> 0 bytes .../__pycache__/_tokenizer.cpython-39.pyc | Bin 39736 -> 0 bytes .../__pycache__/_utils.cpython-39.pyc | Bin 4813 -> 0 bytes .../__pycache__/constants.cpython-39.pyc | Bin 66351 -> 0 bytes .../__pycache__/html5parser.cpython-39.pyc | Bin 91022 -> 0 bytes .../__pycache__/serializer.cpython-39.pyc | Bin 10824 -> 0 bytes .../pip/_vendor/html5lib/_ihatexml.py | 289 - .../pip/_vendor/html5lib/_inputstream.py | 918 - .../pip/_vendor/html5lib/_tokenizer.py | 1735 -- .../pip/_vendor/html5lib/_trie/__init__.py | 5 - .../_trie/__pycache__/__init__.cpython-39.pyc | Bin 363 -> 0 bytes .../_trie/__pycache__/_base.cpython-39.pyc | Bin 1607 -> 0 bytes .../_trie/__pycache__/py.cpython-39.pyc | Bin 2268 -> 0 bytes .../pip/_vendor/html5lib/_trie/_base.py | 40 - .../pip/_vendor/html5lib/_trie/py.py | 67 - .../pip/_vendor/html5lib/_utils.py | 159 - .../pip/_vendor/html5lib/constants.py | 2946 --- .../pip/_vendor/html5lib/filters/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 211 -> 0 bytes .../alphabeticalattributes.cpython-39.pyc | Bin 1333 -> 0 bytes .../filters/__pycache__/base.cpython-39.pyc | Bin 881 -> 0 bytes .../inject_meta_charset.cpython-39.pyc | Bin 1887 -> 0 bytes .../filters/__pycache__/lint.cpython-39.pyc | Bin 2629 -> 0 bytes .../__pycache__/optionaltags.cpython-39.pyc | Bin 2774 -> 0 bytes .../__pycache__/sanitizer.cpython-39.pyc | Bin 16897 -> 0 bytes .../__pycache__/whitespace.cpython-39.pyc | Bin 1379 -> 0 bytes .../filters/alphabeticalattributes.py | 29 - .../pip/_vendor/html5lib/filters/base.py | 12 - .../html5lib/filters/inject_meta_charset.py | 73 - .../pip/_vendor/html5lib/filters/lint.py | 93 - .../_vendor/html5lib/filters/optionaltags.py | 207 - .../pip/_vendor/html5lib/filters/sanitizer.py | 916 - .../_vendor/html5lib/filters/whitespace.py | 38 - .../pip/_vendor/html5lib/html5parser.py | 2795 --- .../pip/_vendor/html5lib/serializer.py | 409 - .../_vendor/html5lib/treeadapters/__init__.py | 30 - .../__pycache__/__init__.cpython-39.pyc | Bin 948 -> 0 bytes .../__pycache__/genshi.cpython-39.pyc | Bin 1556 -> 0 bytes .../__pycache__/sax.cpython-39.pyc | Bin 1475 -> 0 bytes .../_vendor/html5lib/treeadapters/genshi.py | 54 - .../pip/_vendor/html5lib/treeadapters/sax.py | 50 - .../_vendor/html5lib/treebuilders/__init__.py | 88 - .../__pycache__/__init__.cpython-39.pyc | Bin 3343 -> 0 bytes .../__pycache__/base.cpython-39.pyc | Bin 11327 -> 0 bytes .../__pycache__/dom.cpython-39.pyc | Bin 9464 -> 0 bytes .../__pycache__/etree.cpython-39.pyc | Bin 11832 -> 0 bytes .../__pycache__/etree_lxml.cpython-39.pyc | Bin 13015 -> 0 bytes .../pip/_vendor/html5lib/treebuilders/base.py | 417 - .../pip/_vendor/html5lib/treebuilders/dom.py | 239 - .../_vendor/html5lib/treebuilders/etree.py | 343 - .../html5lib/treebuilders/etree_lxml.py | 392 - .../_vendor/html5lib/treewalkers/__init__.py | 154 - .../__pycache__/__init__.cpython-39.pyc | Bin 4009 -> 0 bytes .../__pycache__/base.cpython-39.pyc | Bin 7008 -> 0 bytes .../__pycache__/dom.cpython-39.pyc | Bin 1743 -> 0 bytes .../__pycache__/etree.cpython-39.pyc | Bin 3505 -> 0 bytes .../__pycache__/etree_lxml.cpython-39.pyc | Bin 6642 -> 0 bytes .../__pycache__/genshi.cpython-39.pyc | Bin 1899 -> 0 bytes .../pip/_vendor/html5lib/treewalkers/base.py | 252 - .../pip/_vendor/html5lib/treewalkers/dom.py | 43 - .../pip/_vendor/html5lib/treewalkers/etree.py | 131 - .../html5lib/treewalkers/etree_lxml.py | 215 - .../_vendor/html5lib/treewalkers/genshi.py | 69 - .../pip/_vendor/idna/__init__.py | 44 - .../idna/__pycache__/__init__.cpython-39.pyc | Bin 858 -> 0 bytes .../idna/__pycache__/codec.cpython-39.pyc | Bin 2889 -> 0 bytes .../idna/__pycache__/compat.cpython-39.pyc | Bin 695 -> 0 bytes .../idna/__pycache__/core.cpython-39.pyc | Bin 9056 -> 0 bytes .../idna/__pycache__/idnadata.cpython-39.pyc | Bin 39714 -> 0 bytes .../idna/__pycache__/intranges.cpython-39.pyc | Bin 1871 -> 0 bytes .../__pycache__/package_data.cpython-39.pyc | Bin 222 -> 0 bytes .../idna/__pycache__/uts46data.cpython-39.pyc | Bin 146182 -> 0 bytes .../site-packages/pip/_vendor/idna/codec.py | 117 - .../site-packages/pip/_vendor/idna/compat.py | 16 - .../site-packages/pip/_vendor/idna/core.py | 409 - .../pip/_vendor/idna/idnadata.py | 3996 ---- .../pip/_vendor/idna/intranges.py | 58 - .../pip/_vendor/idna/package_data.py | 2 - .../pip/_vendor/idna/uts46data.py | 8438 -------- .../pip/_vendor/msgpack/__init__.py | 54 - .../__pycache__/__init__.cpython-39.pyc | Bin 1425 -> 0 bytes .../__pycache__/_version.cpython-39.pyc | Bin 229 -> 0 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 1863 -> 0 bytes .../msgpack/__pycache__/ext.cpython-39.pyc | Bin 6291 -> 0 bytes .../__pycache__/fallback.cpython-39.pyc | Bin 26737 -> 0 bytes .../pip/_vendor/msgpack/_version.py | 1 - .../pip/_vendor/msgpack/exceptions.py | 48 - .../site-packages/pip/_vendor/msgpack/ext.py | 193 - .../pip/_vendor/msgpack/fallback.py | 1087 - .../pip/_vendor/packaging/__about__.py | 26 - .../pip/_vendor/packaging/__init__.py | 25 - .../__pycache__/__about__.cpython-39.pyc | Bin 601 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 457 -> 0 bytes .../__pycache__/_manylinux.cpython-39.pyc | Bin 7305 -> 0 bytes .../__pycache__/_musllinux.cpython-39.pyc | Bin 4620 -> 0 bytes .../__pycache__/_structures.cpython-39.pyc | Bin 3093 -> 0 bytes .../__pycache__/markers.cpython-39.pyc | Bin 9464 -> 0 bytes .../__pycache__/requirements.cpython-39.pyc | Bin 3985 -> 0 bytes .../__pycache__/specifiers.cpython-39.pyc | Bin 22221 -> 0 bytes .../packaging/__pycache__/tags.cpython-39.pyc | Bin 12300 -> 0 bytes .../__pycache__/utils.cpython-39.pyc | Bin 3622 -> 0 bytes .../__pycache__/version.cpython-39.pyc | Bin 13022 -> 0 bytes .../pip/_vendor/packaging/_manylinux.py | 301 - .../pip/_vendor/packaging/_musllinux.py | 136 - .../pip/_vendor/packaging/_structures.py | 67 - .../pip/_vendor/packaging/markers.py | 304 - .../pip/_vendor/packaging/requirements.py | 146 - .../pip/_vendor/packaging/specifiers.py | 828 - .../pip/_vendor/packaging/tags.py | 484 - .../pip/_vendor/packaging/utils.py | 136 - .../pip/_vendor/packaging/version.py | 499 - .../pip/_vendor/pep517/__init__.py | 6 - .../__pycache__/__init__.cpython-39.pyc | Bin 324 -> 0 bytes .../pep517/__pycache__/build.cpython-39.pyc | Bin 3572 -> 0 bytes .../pep517/__pycache__/check.cpython-39.pyc | Bin 5119 -> 0 bytes .../__pycache__/colorlog.cpython-39.pyc | Bin 2949 -> 0 bytes .../pep517/__pycache__/compat.cpython-39.pyc | Bin 1540 -> 0 bytes .../__pycache__/dirtools.cpython-39.pyc | Bin 1358 -> 0 bytes .../__pycache__/envbuild.cpython-39.pyc | Bin 4518 -> 0 bytes .../pep517/__pycache__/meta.cpython-39.pyc | Bin 2931 -> 0 bytes .../__pycache__/wrappers.cpython-39.pyc | Bin 12504 -> 0 bytes .../site-packages/pip/_vendor/pep517/build.py | 127 - .../site-packages/pip/_vendor/pep517/check.py | 207 - .../pip/_vendor/pep517/colorlog.py | 115 - .../pip/_vendor/pep517/compat.py | 51 - .../pip/_vendor/pep517/dirtools.py | 44 - .../pip/_vendor/pep517/envbuild.py | 171 - .../pip/_vendor/pep517/in_process/__init__.py | 17 - .../__pycache__/__init__.cpython-39.pyc | Bin 926 -> 0 bytes .../__pycache__/_in_process.cpython-39.pyc | Bin 10280 -> 0 bytes .../_vendor/pep517/in_process/_in_process.py | 363 - .../site-packages/pip/_vendor/pep517/meta.py | 92 - .../pip/_vendor/pep517/wrappers.py | 375 - .../pip/_vendor/pkg_resources/__init__.py | 3296 --- .../__pycache__/__init__.cpython-39.pyc | Bin 100347 -> 0 bytes .../__pycache__/py31compat.cpython-39.pyc | Bin 661 -> 0 bytes .../pip/_vendor/pkg_resources/py31compat.py | 23 - .../pip/_vendor/platformdirs/__init__.py | 329 - .../pip/_vendor/platformdirs/__main__.py | 44 - .../__pycache__/__init__.cpython-39.pyc | Bin 11085 -> 0 bytes .../__pycache__/__main__.cpython-39.pyc | Bin 1181 -> 0 bytes .../__pycache__/android.cpython-39.pyc | Bin 4336 -> 0 bytes .../__pycache__/api.cpython-39.pyc | Bin 5313 -> 0 bytes .../__pycache__/macos.cpython-39.pyc | Bin 3271 -> 0 bytes .../__pycache__/unix.cpython-39.pyc | Bin 7050 -> 0 bytes .../__pycache__/version.cpython-39.pyc | Bin 306 -> 0 bytes .../__pycache__/windows.cpython-39.pyc | Bin 6419 -> 0 bytes .../pip/_vendor/platformdirs/android.py | 117 - .../pip/_vendor/platformdirs/api.py | 155 - .../pip/_vendor/platformdirs/macos.py | 62 - .../pip/_vendor/platformdirs/unix.py | 180 - .../pip/_vendor/platformdirs/version.py | 4 - .../pip/_vendor/platformdirs/windows.py | 180 - .../pip/_vendor/progress/__init__.py | 189 - .../__pycache__/__init__.cpython-39.pyc | Bin 5693 -> 0 bytes .../progress/__pycache__/bar.cpython-39.pyc | Bin 2738 -> 0 bytes .../__pycache__/colors.cpython-39.pyc | Bin 1511 -> 0 bytes .../__pycache__/counter.cpython-39.pyc | Bin 1636 -> 0 bytes .../__pycache__/spinner.cpython-39.pyc | Bin 1462 -> 0 bytes .../site-packages/pip/_vendor/progress/bar.py | 93 - .../pip/_vendor/progress/colors.py | 79 - .../pip/_vendor/progress/counter.py | 47 - .../pip/_vendor/progress/spinner.py | 45 - .../site-packages/pip/_vendor/pyparsing.py | 7107 ------- .../pip/_vendor/requests/__init__.py | 154 - .../__pycache__/__init__.cpython-39.pyc | Bin 4013 -> 0 bytes .../__pycache__/__version__.cpython-39.pyc | Bin 566 -> 0 bytes .../_internal_utils.cpython-39.pyc | Bin 1313 -> 0 bytes .../__pycache__/adapters.cpython-39.pyc | Bin 17920 -> 0 bytes .../requests/__pycache__/api.cpython-39.pyc | Bin 6730 -> 0 bytes .../requests/__pycache__/auth.cpython-39.pyc | Bin 8342 -> 0 bytes .../requests/__pycache__/certs.cpython-39.pyc | Bin 644 -> 0 bytes .../__pycache__/compat.cpython-39.pyc | Bin 1623 -> 0 bytes .../__pycache__/cookies.cpython-39.pyc | Bin 18833 -> 0 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 5416 -> 0 bytes .../requests/__pycache__/help.cpython-39.pyc | Bin 2904 -> 0 bytes .../requests/__pycache__/hooks.cpython-39.pyc | Bin 1001 -> 0 bytes .../__pycache__/models.cpython-39.pyc | Bin 24481 -> 0 bytes .../__pycache__/packages.cpython-39.pyc | Bin 513 -> 0 bytes .../__pycache__/sessions.cpython-39.pyc | Bin 19868 -> 0 bytes .../__pycache__/status_codes.cpython-39.pyc | Bin 4250 -> 0 bytes .../__pycache__/structures.cpython-39.pyc | Bin 4471 -> 0 bytes .../requests/__pycache__/utils.cpython-39.pyc | Bin 23335 -> 0 bytes .../pip/_vendor/requests/__version__.py | 14 - .../pip/_vendor/requests/_internal_utils.py | 42 - .../pip/_vendor/requests/adapters.py | 588 - .../site-packages/pip/_vendor/requests/api.py | 159 - .../pip/_vendor/requests/auth.py | 305 - .../pip/_vendor/requests/certs.py | 18 - .../pip/_vendor/requests/compat.py | 76 - .../pip/_vendor/requests/cookies.py | 549 - .../pip/_vendor/requests/exceptions.py | 127 - .../pip/_vendor/requests/help.py | 132 - .../pip/_vendor/requests/hooks.py | 34 - .../pip/_vendor/requests/models.py | 966 - .../pip/_vendor/requests/packages.py | 16 - .../pip/_vendor/requests/sessions.py | 781 - .../pip/_vendor/requests/status_codes.py | 123 - .../pip/_vendor/requests/structures.py | 105 - .../pip/_vendor/requests/utils.py | 1013 - .../pip/_vendor/resolvelib/__init__.py | 26 - .../__pycache__/__init__.cpython-39.pyc | Bin 617 -> 0 bytes .../__pycache__/providers.cpython-39.pyc | Bin 6716 -> 0 bytes .../__pycache__/reporters.cpython-39.pyc | Bin 2313 -> 0 bytes .../__pycache__/resolvers.cpython-39.pyc | Bin 15270 -> 0 bytes .../__pycache__/structs.cpython-39.pyc | Bin 7290 -> 0 bytes .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 212 -> 0 bytes .../collections_abc.cpython-39.pyc | Bin 386 -> 0 bytes .../resolvelib/compat/collections_abc.py | 6 - .../pip/_vendor/resolvelib/providers.py | 133 - .../pip/_vendor/resolvelib/reporters.py | 37 - .../pip/_vendor/resolvelib/resolvers.py | 483 - .../pip/_vendor/resolvelib/structs.py | 165 - .../site-packages/pip/_vendor/six.py | 998 - .../pip/_vendor/tenacity/__init__.py | 517 - .../__pycache__/__init__.cpython-39.pyc | Bin 16290 -> 0 bytes .../__pycache__/_asyncio.cpython-39.pyc | Bin 2605 -> 0 bytes .../__pycache__/_utils.cpython-39.pyc | Bin 1242 -> 0 bytes .../tenacity/__pycache__/after.cpython-39.pyc | Bin 1221 -> 0 bytes .../__pycache__/before.cpython-39.pyc | Bin 1109 -> 0 bytes .../__pycache__/before_sleep.cpython-39.pyc | Bin 1401 -> 0 bytes .../tenacity/__pycache__/nap.cpython-39.pyc | Bin 1203 -> 0 bytes .../tenacity/__pycache__/retry.cpython-39.pyc | Bin 8791 -> 0 bytes .../tenacity/__pycache__/stop.cpython-39.pyc | Bin 4255 -> 0 bytes .../__pycache__/tornadoweb.cpython-39.pyc | Bin 1755 -> 0 bytes .../tenacity/__pycache__/wait.cpython-39.pyc | Bin 7967 -> 0 bytes .../pip/_vendor/tenacity/_asyncio.py | 92 - .../pip/_vendor/tenacity/_utils.py | 68 - .../pip/_vendor/tenacity/after.py | 46 - .../pip/_vendor/tenacity/before.py | 41 - .../pip/_vendor/tenacity/before_sleep.py | 58 - .../site-packages/pip/_vendor/tenacity/nap.py | 43 - .../pip/_vendor/tenacity/retry.py | 213 - .../pip/_vendor/tenacity/stop.py | 96 - .../pip/_vendor/tenacity/tornadoweb.py | 59 - .../pip/_vendor/tenacity/wait.py | 191 - .../pip/_vendor/tomli/__init__.py | 6 - .../tomli/__pycache__/__init__.cpython-39.pyc | Bin 390 -> 0 bytes .../tomli/__pycache__/_parser.cpython-39.pyc | Bin 16365 -> 0 bytes .../tomli/__pycache__/_re.cpython-39.pyc | Bin 2440 -> 0 bytes .../pip/_vendor/tomli/_parser.py | 703 - .../site-packages/pip/_vendor/tomli/_re.py | 83 - .../pip/_vendor/urllib3/__init__.py | 85 - .../__pycache__/__init__.cpython-39.pyc | Bin 2200 -> 0 bytes .../__pycache__/_collections.cpython-39.pyc | Bin 10795 -> 0 bytes .../__pycache__/_version.cpython-39.pyc | Bin 224 -> 0 bytes .../__pycache__/connection.cpython-39.pyc | Bin 13693 -> 0 bytes .../__pycache__/connectionpool.cpython-39.pyc | Bin 24720 -> 0 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 11657 -> 0 bytes .../urllib3/__pycache__/fields.cpython-39.pyc | Bin 8172 -> 0 bytes .../__pycache__/filepost.cpython-39.pyc | Bin 2773 -> 0 bytes .../__pycache__/poolmanager.cpython-39.pyc | Bin 15315 -> 0 bytes .../__pycache__/request.cpython-39.pyc | Bin 5636 -> 0 bytes .../__pycache__/response.cpython-39.pyc | Bin 20847 -> 0 bytes .../pip/_vendor/urllib3/_collections.py | 337 - .../pip/_vendor/urllib3/_version.py | 2 - .../pip/_vendor/urllib3/connection.py | 569 - .../pip/_vendor/urllib3/connectionpool.py | 1078 - .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 210 -> 0 bytes .../_appengine_environ.cpython-39.pyc | Bin 1430 -> 0 bytes .../__pycache__/appengine.cpython-39.pyc | Bin 8283 -> 0 bytes .../__pycache__/ntlmpool.cpython-39.pyc | Bin 3637 -> 0 bytes .../__pycache__/pyopenssl.cpython-39.pyc | Bin 15614 -> 0 bytes .../securetransport.cpython-39.pyc | Bin 21936 -> 0 bytes .../contrib/__pycache__/socks.cpython-39.pyc | Bin 5646 -> 0 bytes .../urllib3/contrib/_appengine_environ.py | 36 - .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 227 -> 0 bytes .../__pycache__/bindings.cpython-39.pyc | Bin 10734 -> 0 bytes .../__pycache__/low_level.cpython-39.pyc | Bin 9187 -> 0 bytes .../contrib/_securetransport/bindings.py | 519 - .../contrib/_securetransport/low_level.py | 397 - .../pip/_vendor/urllib3/contrib/appengine.py | 314 - .../pip/_vendor/urllib3/contrib/ntlmpool.py | 130 - .../pip/_vendor/urllib3/contrib/pyopenssl.py | 511 - .../urllib3/contrib/securetransport.py | 922 - .../pip/_vendor/urllib3/contrib/socks.py | 216 - .../pip/_vendor/urllib3/exceptions.py | 323 - .../pip/_vendor/urllib3/fields.py | 274 - .../pip/_vendor/urllib3/filepost.py | 98 - .../pip/_vendor/urllib3/packages/__init__.py | 5 - .../__pycache__/__init__.cpython-39.pyc | Bin 324 -> 0 bytes .../packages/__pycache__/six.cpython-39.pyc | Bin 27594 -> 0 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 221 -> 0 bytes .../__pycache__/makefile.cpython-39.pyc | Bin 1319 -> 0 bytes .../urllib3/packages/backports/makefile.py | 51 - .../pip/_vendor/urllib3/packages/six.py | 1077 - .../packages/ssl_match_hostname/__init__.py | 24 - .../__pycache__/__init__.cpython-39.pyc | Bin 583 -> 0 bytes .../_implementation.cpython-39.pyc | Bin 3314 -> 0 bytes .../ssl_match_hostname/_implementation.py | 160 - .../pip/_vendor/urllib3/poolmanager.py | 552 - .../pip/_vendor/urllib3/request.py | 170 - .../pip/_vendor/urllib3/response.py | 821 - .../pip/_vendor/urllib3/util/__init__.py | 49 - .../util/__pycache__/__init__.cpython-39.pyc | Bin 1120 -> 0 bytes .../__pycache__/connection.cpython-39.pyc | Bin 3472 -> 0 bytes .../util/__pycache__/proxy.cpython-39.pyc | Bin 1356 -> 0 bytes .../util/__pycache__/queue.cpython-39.pyc | Bin 1075 -> 0 bytes .../util/__pycache__/request.cpython-39.pyc | Bin 3463 -> 0 bytes .../util/__pycache__/response.cpython-39.pyc | Bin 2360 -> 0 bytes .../util/__pycache__/retry.cpython-39.pyc | Bin 15884 -> 0 bytes .../util/__pycache__/ssl_.cpython-39.pyc | Bin 11344 -> 0 bytes .../__pycache__/ssltransport.cpython-39.pyc | Bin 7525 -> 0 bytes .../util/__pycache__/timeout.cpython-39.pyc | Bin 8958 -> 0 bytes .../util/__pycache__/url.cpython-39.pyc | Bin 10683 -> 0 bytes .../util/__pycache__/wait.cpython-39.pyc | Bin 3143 -> 0 bytes .../pip/_vendor/urllib3/util/connection.py | 150 - .../pip/_vendor/urllib3/util/proxy.py | 57 - .../pip/_vendor/urllib3/util/queue.py | 22 - .../pip/_vendor/urllib3/util/request.py | 143 - .../pip/_vendor/urllib3/util/response.py | 107 - .../pip/_vendor/urllib3/util/retry.py | 604 - .../pip/_vendor/urllib3/util/ssl_.py | 495 - .../pip/_vendor/urllib3/util/ssltransport.py | 221 - .../pip/_vendor/urllib3/util/timeout.py | 268 - .../pip/_vendor/urllib3/util/url.py | 432 - .../pip/_vendor/urllib3/util/wait.py | 153 - .../site-packages/pip/_vendor/vendor.txt | 22 - .../pip/_vendor/webencodings/__init__.py | 342 - .../__pycache__/__init__.cpython-39.pyc | Bin 9734 -> 0 bytes .../__pycache__/labels.cpython-39.pyc | Bin 3848 -> 0 bytes .../__pycache__/mklabels.cpython-39.pyc | Bin 1918 -> 0 bytes .../__pycache__/tests.cpython-39.pyc | Bin 5082 -> 0 bytes .../__pycache__/x_user_defined.cpython-39.pyc | Bin 2678 -> 0 bytes .../pip/_vendor/webencodings/labels.py | 231 - .../pip/_vendor/webencodings/mklabels.py | 59 - .../pip/_vendor/webencodings/tests.py | 153 - .../_vendor/webencodings/x_user_defined.py | 325 - .../lib/python3.9/site-packages/pip/py.typed | 4 - .../site-packages/pkg_resources/__init__.py | 3303 --- .../__pycache__/__init__.cpython-39.pyc | Bin 101044 -> 0 bytes .../pkg_resources/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 204 -> 0 bytes .../__pycache__/appdirs.cpython-39.pyc | Bin 20521 -> 0 bytes .../__pycache__/pyparsing.cpython-39.pyc | Bin 201357 -> 0 bytes .../pkg_resources/_vendor/appdirs.py | 607 - .../_vendor/packaging/__about__.py | 26 - .../_vendor/packaging/__init__.py | 25 - .../__pycache__/__about__.cpython-39.pyc | Bin 611 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 467 -> 0 bytes .../__pycache__/_manylinux.cpython-39.pyc | Bin 7315 -> 0 bytes .../__pycache__/_musllinux.cpython-39.pyc | Bin 4630 -> 0 bytes .../__pycache__/_structures.cpython-39.pyc | Bin 3103 -> 0 bytes .../__pycache__/markers.cpython-39.pyc | Bin 9483 -> 0 bytes .../__pycache__/requirements.cpython-39.pyc | Bin 4004 -> 0 bytes .../__pycache__/specifiers.cpython-39.pyc | Bin 22231 -> 0 bytes .../packaging/__pycache__/tags.cpython-39.pyc | Bin 12299 -> 0 bytes .../__pycache__/utils.cpython-39.pyc | Bin 3632 -> 0 bytes .../__pycache__/version.cpython-39.pyc | Bin 13173 -> 0 bytes .../_vendor/packaging/_manylinux.py | 301 - .../_vendor/packaging/_musllinux.py | 136 - .../_vendor/packaging/_structures.py | 67 - .../_vendor/packaging/markers.py | 304 - .../_vendor/packaging/requirements.py | 146 - .../_vendor/packaging/specifiers.py | 828 - .../pkg_resources/_vendor/packaging/tags.py | 484 - .../pkg_resources/_vendor/packaging/utils.py | 136 - .../_vendor/packaging/version.py | 504 - .../pkg_resources/_vendor/pyparsing.py | 5742 ------ .../pkg_resources/extern/__init__.py | 73 - .../__pycache__/__init__.cpython-39.pyc | Bin 2893 -> 0 bytes .../__pycache__/setup.cpython-39.pyc | Bin 332 -> 0 bytes .../data/my-test-package-source/setup.py | 6 - .../pycparser-2.23.dist-info/INSTALLER | 1 - .../pycparser-2.23.dist-info/LICENSE | 27 - .../pycparser-2.23.dist-info/METADATA | 28 - .../pycparser-2.23.dist-info/RECORD | 41 - .../pycparser-2.23.dist-info/WHEEL | 5 - .../pycparser-2.23.dist-info/top_level.txt | 1 - .../site-packages/pycparser/__init__.py | 93 - .../__pycache__/__init__.cpython-39.pyc | Bin 2626 -> 0 bytes .../__pycache__/_ast_gen.cpython-39.pyc | Bin 10179 -> 0 bytes .../__pycache__/_build_tables.cpython-39.pyc | Bin 598 -> 0 bytes .../__pycache__/ast_transforms.cpython-39.pyc | Bin 3757 -> 0 bytes .../__pycache__/c_ast.cpython-39.pyc | Bin 36588 -> 0 bytes .../__pycache__/c_generator.cpython-39.pyc | Bin 17789 -> 0 bytes .../__pycache__/c_lexer.cpython-39.pyc | Bin 13669 -> 0 bytes .../__pycache__/c_parser.cpython-39.pyc | Bin 66632 -> 0 bytes .../__pycache__/lextab.cpython-39.pyc | Bin 6809 -> 0 bytes .../__pycache__/plyparser.cpython-39.pyc | Bin 4696 -> 0 bytes .../__pycache__/yacctab.cpython-39.pyc | Bin 181432 -> 0 bytes .../site-packages/pycparser/_ast_gen.py | 336 - .../site-packages/pycparser/_build_tables.py | 40 - .../site-packages/pycparser/_c_ast.cfg | 195 - .../site-packages/pycparser/ast_transforms.py | 164 - .../site-packages/pycparser/c_ast.py | 1125 - .../site-packages/pycparser/c_generator.py | 502 - .../site-packages/pycparser/c_lexer.py | 569 - .../site-packages/pycparser/c_parser.py | 1973 -- .../site-packages/pycparser/lextab.py | 10 - .../site-packages/pycparser/ply/__init__.py | 5 - .../ply/__pycache__/__init__.cpython-39.pyc | Bin 245 -> 0 bytes .../ply/__pycache__/cpp.cpython-39.pyc | Bin 16062 -> 0 bytes .../ply/__pycache__/ctokens.cpython-39.pyc | Bin 2098 -> 0 bytes .../ply/__pycache__/lex.cpython-39.pyc | Bin 21451 -> 0 bytes .../ply/__pycache__/yacc.cpython-39.pyc | Bin 52994 -> 0 bytes .../ply/__pycache__/ygen.cpython-39.pyc | Bin 1808 -> 0 bytes .../site-packages/pycparser/ply/cpp.py | 905 - .../site-packages/pycparser/ply/ctokens.py | 133 - .../site-packages/pycparser/ply/lex.py | 1099 - .../site-packages/pycparser/ply/yacc.py | 3494 ---- .../site-packages/pycparser/ply/ygen.py | 74 - .../site-packages/pycparser/plyparser.py | 133 - .../site-packages/pycparser/yacctab.py | 374 - .../requests-2.32.5.dist-info/INSTALLER | 1 - .../requests-2.32.5.dist-info/METADATA | 133 - .../requests-2.32.5.dist-info/RECORD | 43 - .../requests-2.32.5.dist-info/REQUESTED | 0 .../requests-2.32.5.dist-info/WHEEL | 5 - .../licenses/LICENSE | 175 - .../requests-2.32.5.dist-info/top_level.txt | 1 - .../site-packages/requests/__init__.py | 184 - .../__pycache__/__init__.cpython-39.pyc | Bin 3915 -> 0 bytes .../__pycache__/__version__.cpython-39.pyc | Bin 549 -> 0 bytes .../_internal_utils.cpython-39.pyc | Bin 1624 -> 0 bytes .../__pycache__/adapters.cpython-39.pyc | Bin 21681 -> 0 bytes .../requests/__pycache__/api.cpython-39.pyc | Bin 6790 -> 0 bytes .../requests/__pycache__/auth.cpython-39.pyc | Bin 8355 -> 0 bytes .../requests/__pycache__/certs.cpython-39.pyc | Bin 620 -> 0 bytes .../__pycache__/compat.cpython-39.pyc | Bin 1949 -> 0 bytes .../__pycache__/cookies.cpython-39.pyc | Bin 18847 -> 0 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 6618 -> 0 bytes .../requests/__pycache__/help.cpython-39.pyc | Bin 2832 -> 0 bytes .../requests/__pycache__/hooks.cpython-39.pyc | Bin 989 -> 0 bytes .../__pycache__/models.cpython-39.pyc | Bin 24358 -> 0 bytes .../__pycache__/packages.cpython-39.pyc | Bin 616 -> 0 bytes .../__pycache__/sessions.cpython-39.pyc | Bin 19788 -> 0 bytes .../__pycache__/status_codes.cpython-39.pyc | Bin 4305 -> 0 bytes .../__pycache__/structures.cpython-39.pyc | Bin 4446 -> 0 bytes .../requests/__pycache__/utils.cpython-39.pyc | Bin 24417 -> 0 bytes .../site-packages/requests/__version__.py | 14 - .../site-packages/requests/_internal_utils.py | 50 - .../site-packages/requests/adapters.py | 696 - .../python3.9/site-packages/requests/api.py | 157 - .../python3.9/site-packages/requests/auth.py | 314 - .../python3.9/site-packages/requests/certs.py | 17 - .../site-packages/requests/compat.py | 106 - .../site-packages/requests/cookies.py | 561 - .../site-packages/requests/exceptions.py | 151 - .../python3.9/site-packages/requests/help.py | 134 - .../python3.9/site-packages/requests/hooks.py | 33 - .../site-packages/requests/models.py | 1039 - .../site-packages/requests/packages.py | 23 - .../site-packages/requests/sessions.py | 831 - .../site-packages/requests/status_codes.py | 128 - .../site-packages/requests/structures.py | 99 - .../python3.9/site-packages/requests/utils.py | 1086 - .../setuptools-59.6.0.dist-info/INSTALLER | 1 - .../setuptools-59.6.0.dist-info/LICENSE | 19 - .../setuptools-59.6.0.dist-info/METADATA | 117 - .../setuptools-59.6.0.dist-info/RECORD | 290 - .../setuptools-59.6.0.dist-info/REQUESTED | 0 .../setuptools-59.6.0.dist-info/WHEEL | 5 - .../entry_points.txt | 56 - .../setuptools-59.6.0.dist-info/top_level.txt | 4 - .../site-packages/setuptools/__init__.py | 242 - .../__pycache__/__init__.cpython-39.pyc | Bin 8553 -> 0 bytes .../_deprecation_warning.cpython-39.pyc | Bin 563 -> 0 bytes .../__pycache__/_imp.cpython-39.pyc | Bin 2098 -> 0 bytes .../__pycache__/archive_util.cpython-39.pyc | Bin 5827 -> 0 bytes .../__pycache__/build_meta.cpython-39.pyc | Bin 9422 -> 0 bytes .../__pycache__/config.cpython-39.pyc | Bin 20866 -> 0 bytes .../__pycache__/dep_util.cpython-39.pyc | Bin 870 -> 0 bytes .../__pycache__/depends.cpython-39.pyc | Bin 5288 -> 0 bytes .../__pycache__/dist.cpython-39.pyc | Bin 36561 -> 0 bytes .../__pycache__/errors.cpython-39.pyc | Bin 1515 -> 0 bytes .../__pycache__/extension.cpython-39.pyc | Bin 1957 -> 0 bytes .../__pycache__/glob.cpython-39.pyc | Bin 3707 -> 0 bytes .../__pycache__/installer.cpython-39.pyc | Bin 3012 -> 0 bytes .../__pycache__/launch.cpython-39.pyc | Bin 914 -> 0 bytes .../__pycache__/monkey.cpython-39.pyc | Bin 4626 -> 0 bytes .../__pycache__/msvc.cpython-39.pyc | Bin 42852 -> 0 bytes .../__pycache__/namespaces.cpython-39.pyc | Bin 3613 -> 0 bytes .../__pycache__/package_index.cpython-39.pyc | Bin 34010 -> 0 bytes .../__pycache__/py34compat.cpython-39.pyc | Bin 493 -> 0 bytes .../__pycache__/sandbox.cpython-39.pyc | Bin 15769 -> 0 bytes .../__pycache__/unicode_utils.cpython-39.pyc | Bin 1127 -> 0 bytes .../__pycache__/version.cpython-39.pyc | Bin 337 -> 0 bytes .../__pycache__/wheel.cpython-39.pyc | Bin 7293 -> 0 bytes .../windows_support.cpython-39.pyc | Bin 1036 -> 0 bytes .../setuptools/_deprecation_warning.py | 7 - .../setuptools/_distutils/__init__.py | 24 - .../__pycache__/__init__.cpython-39.pyc | Bin 571 -> 0 bytes .../__pycache__/_msvccompiler.cpython-39.pyc | Bin 13826 -> 0 bytes .../__pycache__/archive_util.cpython-39.pyc | Bin 6658 -> 0 bytes .../__pycache__/bcppcompiler.cpython-39.pyc | Bin 6569 -> 0 bytes .../__pycache__/ccompiler.cpython-39.pyc | Bin 33475 -> 0 bytes .../_distutils/__pycache__/cmd.cpython-39.pyc | Bin 13997 -> 0 bytes .../__pycache__/config.cpython-39.pyc | Bin 3600 -> 0 bytes .../__pycache__/core.cpython-39.pyc | Bin 7153 -> 0 bytes .../cygwinccompiler.cpython-39.pyc | Bin 9064 -> 0 bytes .../__pycache__/debug.cpython-39.pyc | Bin 267 -> 0 bytes .../__pycache__/dep_util.cpython-39.pyc | Bin 2787 -> 0 bytes .../__pycache__/dir_util.cpython-39.pyc | Bin 5888 -> 0 bytes .../__pycache__/dist.cpython-39.pyc | Bin 34458 -> 0 bytes .../__pycache__/errors.cpython-39.pyc | Bin 5323 -> 0 bytes .../__pycache__/extension.cpython-39.pyc | Bin 6988 -> 0 bytes .../__pycache__/fancy_getopt.cpython-39.pyc | Bin 10696 -> 0 bytes .../__pycache__/file_util.cpython-39.pyc | Bin 6054 -> 0 bytes .../__pycache__/filelist.cpython-39.pyc | Bin 10846 -> 0 bytes .../_distutils/__pycache__/log.cpython-39.pyc | Bin 2386 -> 0 bytes .../__pycache__/msvc9compiler.cpython-39.pyc | Bin 17583 -> 0 bytes .../__pycache__/msvccompiler.cpython-39.pyc | Bin 14778 -> 0 bytes .../__pycache__/py35compat.cpython-39.pyc | Bin 643 -> 0 bytes .../__pycache__/py38compat.cpython-39.pyc | Bin 438 -> 0 bytes .../__pycache__/spawn.cpython-39.pyc | Bin 2914 -> 0 bytes .../__pycache__/sysconfig.cpython-39.pyc | Bin 12918 -> 0 bytes .../__pycache__/text_file.cpython-39.pyc | Bin 8512 -> 0 bytes .../__pycache__/unixccompiler.cpython-39.pyc | Bin 6860 -> 0 bytes .../__pycache__/util.cpython-39.pyc | Bin 14772 -> 0 bytes .../__pycache__/version.cpython-39.pyc | Bin 7864 -> 0 bytes .../versionpredicate.cpython-39.pyc | Bin 5331 -> 0 bytes .../setuptools/_distutils/_msvccompiler.py | 561 - .../setuptools/_distutils/archive_util.py | 256 - .../setuptools/_distutils/bcppcompiler.py | 393 - .../setuptools/_distutils/ccompiler.py | 1123 - .../setuptools/_distutils/cmd.py | 403 - .../setuptools/_distutils/command/__init__.py | 31 - .../__pycache__/__init__.cpython-39.pyc | Bin 546 -> 0 bytes .../command/__pycache__/bdist.cpython-39.pyc | Bin 3676 -> 0 bytes .../__pycache__/bdist_dumb.cpython-39.pyc | Bin 3659 -> 0 bytes .../__pycache__/bdist_msi.cpython-39.pyc | Bin 19841 -> 0 bytes .../__pycache__/bdist_rpm.cpython-39.pyc | Bin 12296 -> 0 bytes .../__pycache__/bdist_wininst.cpython-39.pyc | Bin 8616 -> 0 bytes .../command/__pycache__/build.cpython-39.pyc | Bin 3948 -> 0 bytes .../__pycache__/build_clib.cpython-39.pyc | Bin 4871 -> 0 bytes .../__pycache__/build_ext.cpython-39.pyc | Bin 16236 -> 0 bytes .../__pycache__/build_py.cpython-39.pyc | Bin 9866 -> 0 bytes .../__pycache__/build_scripts.cpython-39.pyc | Bin 4031 -> 0 bytes .../command/__pycache__/check.cpython-39.pyc | Bin 4980 -> 0 bytes .../command/__pycache__/clean.cpython-39.pyc | Bin 2153 -> 0 bytes .../command/__pycache__/config.cpython-39.pyc | Bin 10283 -> 0 bytes .../__pycache__/install.cpython-39.pyc | Bin 15301 -> 0 bytes .../__pycache__/install_data.cpython-39.pyc | Bin 2356 -> 0 bytes .../install_egg_info.cpython-39.pyc | Bin 3315 -> 0 bytes .../install_headers.cpython-39.pyc | Bin 1781 -> 0 bytes .../__pycache__/install_lib.cpython-39.pyc | Bin 5153 -> 0 bytes .../install_scripts.cpython-39.pyc | Bin 2204 -> 0 bytes .../__pycache__/py37compat.cpython-39.pyc | Bin 1047 -> 0 bytes .../__pycache__/register.cpython-39.pyc | Bin 8524 -> 0 bytes .../command/__pycache__/sdist.cpython-39.pyc | Bin 14551 -> 0 bytes .../command/__pycache__/upload.cpython-39.pyc | Bin 5274 -> 0 bytes .../setuptools/_distutils/command/bdist.py | 143 - .../_distutils/command/bdist_dumb.py | 123 - .../_distutils/command/bdist_msi.py | 749 - .../_distutils/command/bdist_rpm.py | 579 - .../_distutils/command/bdist_wininst.py | 377 - .../setuptools/_distutils/command/build.py | 157 - .../_distutils/command/build_clib.py | 209 - .../_distutils/command/build_ext.py | 755 - .../setuptools/_distutils/command/build_py.py | 392 - .../_distutils/command/build_scripts.py | 152 - .../setuptools/_distutils/command/check.py | 148 - .../setuptools/_distutils/command/clean.py | 76 - .../setuptools/_distutils/command/config.py | 344 - .../setuptools/_distutils/command/install.py | 721 - .../_distutils/command/install_data.py | 79 - .../_distutils/command/install_egg_info.py | 84 - .../_distutils/command/install_headers.py | 47 - .../_distutils/command/install_lib.py | 217 - .../_distutils/command/install_scripts.py | 60 - .../_distutils/command/py37compat.py | 30 - .../setuptools/_distutils/command/register.py | 304 - .../setuptools/_distutils/command/sdist.py | 494 - .../setuptools/_distutils/command/upload.py | 214 - .../setuptools/_distutils/config.py | 130 - .../setuptools/_distutils/core.py | 249 - .../setuptools/_distutils/cygwinccompiler.py | 425 - .../setuptools/_distutils/debug.py | 5 - .../setuptools/_distutils/dep_util.py | 92 - .../setuptools/_distutils/dir_util.py | 210 - .../setuptools/_distutils/dist.py | 1257 -- .../setuptools/_distutils/errors.py | 97 - .../setuptools/_distutils/extension.py | 240 - .../setuptools/_distutils/fancy_getopt.py | 457 - .../setuptools/_distutils/file_util.py | 238 - .../setuptools/_distutils/filelist.py | 355 - .../setuptools/_distutils/log.py | 77 - .../setuptools/_distutils/msvc9compiler.py | 788 - .../setuptools/_distutils/msvccompiler.py | 643 - .../setuptools/_distutils/py35compat.py | 19 - .../setuptools/_distutils/py38compat.py | 7 - .../setuptools/_distutils/spawn.py | 106 - .../setuptools/_distutils/sysconfig.py | 601 - .../setuptools/_distutils/text_file.py | 286 - .../setuptools/_distutils/unixccompiler.py | 325 - .../setuptools/_distutils/util.py | 548 - .../setuptools/_distutils/version.py | 363 - .../setuptools/_distutils/versionpredicate.py | 169 - .../site-packages/setuptools/_imp.py | 82 - .../setuptools/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 201 -> 0 bytes .../__pycache__/ordered_set.cpython-39.pyc | Bin 16395 -> 0 bytes .../__pycache__/pyparsing.cpython-39.pyc | Bin 201354 -> 0 bytes .../_vendor/more_itertools/__init__.py | 4 - .../__pycache__/__init__.cpython-39.pyc | Bin 282 -> 0 bytes .../__pycache__/more.cpython-39.pyc | Bin 110027 -> 0 bytes .../__pycache__/recipes.cpython-39.pyc | Bin 17947 -> 0 bytes .../setuptools/_vendor/more_itertools/more.py | 3825 ---- .../_vendor/more_itertools/recipes.py | 620 - .../setuptools/_vendor/ordered_set.py | 488 - .../setuptools/_vendor/packaging/__about__.py | 26 - .../setuptools/_vendor/packaging/__init__.py | 25 - .../__pycache__/__about__.cpython-39.pyc | Bin 608 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 464 -> 0 bytes .../__pycache__/_manylinux.cpython-39.pyc | Bin 7312 -> 0 bytes .../__pycache__/_musllinux.cpython-39.pyc | Bin 4627 -> 0 bytes .../__pycache__/_structures.cpython-39.pyc | Bin 3100 -> 0 bytes .../__pycache__/markers.cpython-39.pyc | Bin 9477 -> 0 bytes .../__pycache__/requirements.cpython-39.pyc | Bin 3998 -> 0 bytes .../__pycache__/specifiers.cpython-39.pyc | Bin 22228 -> 0 bytes .../packaging/__pycache__/tags.cpython-39.pyc | Bin 12296 -> 0 bytes .../__pycache__/utils.cpython-39.pyc | Bin 3629 -> 0 bytes .../__pycache__/version.cpython-39.pyc | Bin 13170 -> 0 bytes .../_vendor/packaging/_manylinux.py | 301 - .../_vendor/packaging/_musllinux.py | 136 - .../_vendor/packaging/_structures.py | 67 - .../setuptools/_vendor/packaging/markers.py | 304 - .../_vendor/packaging/requirements.py | 146 - .../_vendor/packaging/specifiers.py | 828 - .../setuptools/_vendor/packaging/tags.py | 484 - .../setuptools/_vendor/packaging/utils.py | 136 - .../setuptools/_vendor/packaging/version.py | 504 - .../setuptools/_vendor/pyparsing.py | 5742 ------ .../site-packages/setuptools/archive_util.py | 205 - .../site-packages/setuptools/build_meta.py | 290 - .../setuptools/command/__init__.py | 8 - .../__pycache__/__init__.cpython-39.pyc | Bin 390 -> 0 bytes .../command/__pycache__/alias.cpython-39.pyc | Bin 2384 -> 0 bytes .../__pycache__/bdist_egg.cpython-39.pyc | Bin 13050 -> 0 bytes .../__pycache__/bdist_rpm.cpython-39.pyc | Bin 1597 -> 0 bytes .../__pycache__/build_clib.cpython-39.pyc | Bin 2481 -> 0 bytes .../__pycache__/build_ext.cpython-39.pyc | Bin 9840 -> 0 bytes .../__pycache__/build_py.cpython-39.pyc | Bin 8227 -> 0 bytes .../__pycache__/develop.cpython-39.pyc | Bin 6150 -> 0 bytes .../__pycache__/dist_info.cpython-39.pyc | Bin 1408 -> 0 bytes .../__pycache__/easy_install.cpython-39.pyc | Bin 63756 -> 0 bytes .../__pycache__/egg_info.cpython-39.pyc | Bin 22712 -> 0 bytes .../__pycache__/install.cpython-39.pyc | Bin 4198 -> 0 bytes .../install_egg_info.cpython-39.pyc | Bin 2440 -> 0 bytes .../__pycache__/install_lib.cpython-39.pyc | Bin 4147 -> 0 bytes .../install_scripts.cpython-39.pyc | Bin 2435 -> 0 bytes .../__pycache__/py36compat.cpython-39.pyc | Bin 4602 -> 0 bytes .../__pycache__/register.cpython-39.pyc | Bin 858 -> 0 bytes .../command/__pycache__/rotate.cpython-39.pyc | Bin 2517 -> 0 bytes .../__pycache__/saveopts.cpython-39.pyc | Bin 936 -> 0 bytes .../command/__pycache__/sdist.cpython-39.pyc | Bin 6905 -> 0 bytes .../command/__pycache__/setopt.cpython-39.pyc | Bin 4687 -> 0 bytes .../command/__pycache__/test.cpython-39.pyc | Bin 8042 -> 0 bytes .../command/__pycache__/upload.cpython-39.pyc | Bin 831 -> 0 bytes .../__pycache__/upload_docs.cpython-39.pyc | Bin 6174 -> 0 bytes .../site-packages/setuptools/command/alias.py | 78 - .../setuptools/command/bdist_egg.py | 456 - .../setuptools/command/bdist_rpm.py | 40 - .../setuptools/command/build_clib.py | 101 - .../setuptools/command/build_ext.py | 328 - .../setuptools/command/build_py.py | 242 - .../setuptools/command/develop.py | 193 - .../setuptools/command/dist_info.py | 36 - .../setuptools/command/easy_install.py | 2299 --- .../setuptools/command/egg_info.py | 755 - .../setuptools/command/install.py | 132 - .../setuptools/command/install_egg_info.py | 62 - .../setuptools/command/install_lib.py | 122 - .../setuptools/command/install_scripts.py | 69 - .../setuptools/command/launcher manifest.xml | 15 - .../setuptools/command/py36compat.py | 134 - .../setuptools/command/register.py | 18 - .../setuptools/command/rotate.py | 64 - .../setuptools/command/saveopts.py | 22 - .../site-packages/setuptools/command/sdist.py | 196 - .../setuptools/command/setopt.py | 149 - .../site-packages/setuptools/command/test.py | 252 - .../setuptools/command/upload.py | 17 - .../setuptools/command/upload_docs.py | 202 - .../site-packages/setuptools/config.py | 751 - .../site-packages/setuptools/dep_util.py | 25 - .../site-packages/setuptools/depends.py | 176 - .../site-packages/setuptools/dist.py | 1156 -- .../site-packages/setuptools/errors.py | 40 - .../site-packages/setuptools/extension.py | 55 - .../setuptools/extern/__init__.py | 73 - .../__pycache__/__init__.cpython-39.pyc | Bin 2932 -> 0 bytes .../site-packages/setuptools/glob.py | 167 - .../site-packages/setuptools/installer.py | 104 - .../site-packages/setuptools/launch.py | 36 - .../site-packages/setuptools/monkey.py | 177 - .../site-packages/setuptools/msvc.py | 1805 -- .../site-packages/setuptools/namespaces.py | 107 - .../site-packages/setuptools/package_index.py | 1155 -- .../site-packages/setuptools/py34compat.py | 13 - .../site-packages/setuptools/sandbox.py | 530 - .../setuptools/script (dev).tmpl | 6 - .../site-packages/setuptools/script.tmpl | 3 - .../site-packages/setuptools/unicode_utils.py | 42 - .../site-packages/setuptools/version.py | 6 - .../site-packages/setuptools/wheel.py | 213 - .../setuptools/windows_support.py | 29 - .../INSTALLER | 1 - .../METADATA | 72 - .../typing_extensions-4.15.0.dist-info/RECORD | 7 - .../typing_extensions-4.15.0.dist-info/WHEEL | 4 - .../licenses/LICENSE | 279 - .../site-packages/typing_extensions.py | 4317 ---- .../urllib3-2.6.3.dist-info/INSTALLER | 1 - .../urllib3-2.6.3.dist-info/METADATA | 164 - .../urllib3-2.6.3.dist-info/RECORD | 79 - .../urllib3-2.6.3.dist-info/WHEEL | 4 - .../licenses/LICENSE.txt | 21 - .../site-packages/urllib3/__init__.py | 211 - .../__pycache__/__init__.cpython-39.pyc | Bin 6011 -> 0 bytes .../_base_connection.cpython-39.pyc | Bin 5467 -> 0 bytes .../__pycache__/_collections.cpython-39.pyc | Bin 15964 -> 0 bytes .../_request_methods.cpython-39.pyc | Bin 8948 -> 0 bytes .../__pycache__/_version.cpython-39.pyc | Bin 673 -> 0 bytes .../__pycache__/connection.cpython-39.pyc | Bin 24989 -> 0 bytes .../__pycache__/connectionpool.cpython-39.pyc | Bin 28579 -> 0 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 14154 -> 0 bytes .../urllib3/__pycache__/fields.cpython-39.pyc | Bin 9643 -> 0 bytes .../__pycache__/filepost.cpython-39.pyc | Bin 2328 -> 0 bytes .../__pycache__/poolmanager.cpython-39.pyc | Bin 17927 -> 0 bytes .../__pycache__/response.cpython-39.pyc | Bin 36723 -> 0 bytes .../site-packages/urllib3/_base_connection.py | 165 - .../site-packages/urllib3/_collections.py | 487 - .../site-packages/urllib3/_request_methods.py | 278 - .../site-packages/urllib3/_version.py | 34 - .../site-packages/urllib3/connection.py | 1099 - .../site-packages/urllib3/connectionpool.py | 1178 -- .../site-packages/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 198 -> 0 bytes .../__pycache__/pyopenssl.cpython-39.pyc | Bin 17681 -> 0 bytes .../contrib/__pycache__/socks.cpython-39.pyc | Bin 6124 -> 0 bytes .../urllib3/contrib/emscripten/__init__.py | 17 - .../__pycache__/__init__.cpython-39.pyc | Bin 766 -> 0 bytes .../__pycache__/connection.cpython-39.pyc | Bin 7420 -> 0 bytes .../__pycache__/fetch.cpython-39.pyc | Bin 18927 -> 0 bytes .../__pycache__/request.cpython-39.pyc | Bin 1225 -> 0 bytes .../__pycache__/response.cpython-39.pyc | Bin 7976 -> 0 bytes .../urllib3/contrib/emscripten/connection.py | 260 - .../emscripten/emscripten_fetch_worker.js | 110 - .../urllib3/contrib/emscripten/fetch.py | 726 - .../urllib3/contrib/emscripten/request.py | 22 - .../urllib3/contrib/emscripten/response.py | 277 - .../urllib3/contrib/pyopenssl.py | 564 - .../site-packages/urllib3/contrib/socks.py | 228 - .../site-packages/urllib3/exceptions.py | 335 - .../python3.9/site-packages/urllib3/fields.py | 341 - .../site-packages/urllib3/filepost.py | 89 - .../site-packages/urllib3/http2/__init__.py | 53 - .../http2/__pycache__/__init__.cpython-39.pyc | Bin 1433 -> 0 bytes .../__pycache__/connection.cpython-39.pyc | Bin 10577 -> 0 bytes .../http2/__pycache__/probe.cpython-39.pyc | Bin 2513 -> 0 bytes .../site-packages/urllib3/http2/connection.py | 356 - .../site-packages/urllib3/http2/probe.py | 87 - .../site-packages/urllib3/poolmanager.py | 651 - .../python3.9/site-packages/urllib3/py.typed | 2 - .../site-packages/urllib3/response.py | 1480 -- .../site-packages/urllib3/util/__init__.py | 42 - .../util/__pycache__/__init__.cpython-39.pyc | Bin 978 -> 0 bytes .../__pycache__/connection.cpython-39.pyc | Bin 3433 -> 0 bytes .../util/__pycache__/proxy.cpython-39.pyc | Bin 1074 -> 0 bytes .../util/__pycache__/request.cpython-39.pyc | Bin 6365 -> 0 bytes .../util/__pycache__/response.cpython-39.pyc | Bin 2324 -> 0 bytes .../util/__pycache__/retry.cpython-39.pyc | Bin 15750 -> 0 bytes .../util/__pycache__/ssl_.cpython-39.pyc | Bin 12484 -> 0 bytes .../ssl_match_hostname.cpython-39.pyc | Bin 3670 -> 0 bytes .../__pycache__/ssltransport.cpython-39.pyc | Bin 9172 -> 0 bytes .../util/__pycache__/timeout.cpython-39.pyc | Bin 9540 -> 0 bytes .../util/__pycache__/url.cpython-39.pyc | Bin 11057 -> 0 bytes .../util/__pycache__/util.cpython-39.pyc | Bin 1263 -> 0 bytes .../util/__pycache__/wait.cpython-39.pyc | Bin 2404 -> 0 bytes .../site-packages/urllib3/util/connection.py | 137 - .../site-packages/urllib3/util/proxy.py | 43 - .../site-packages/urllib3/util/request.py | 263 - .../site-packages/urllib3/util/response.py | 101 - .../site-packages/urllib3/util/retry.py | 549 - .../site-packages/urllib3/util/ssl_.py | 527 - .../urllib3/util/ssl_match_hostname.py | 159 - .../urllib3/util/ssltransport.py | 271 - .../site-packages/urllib3/util/timeout.py | 275 - .../site-packages/urllib3/util/url.py | 469 - .../site-packages/urllib3/util/util.py | 42 - .../site-packages/urllib3/util/wait.py | 124 - .venv/lib64 | 1 - .venv/pyvenv.cfg | 3 - __pycache__/config.cpython-314.pyc | Bin 2584 -> 0 bytes __pycache__/config.cpython-39.pyc | Bin 1704 -> 0 bytes __pycache__/logging_config.cpython-314.pyc | Bin 1532 -> 0 bytes __pycache__/logging_config.cpython-39.pyc | Bin 921 -> 0 bytes api/__pycache__/api_client.cpython-39.pyc | Bin 1126 -> 0 bytes db/__pycache__/db.cpython-39.pyc | Bin 2421 -> 0 bytes .../oracle_connector.cpython-314.pyc | Bin 1460 -> 0 bytes .../oracle_connector.cpython-39.pyc | Bin 950 -> 0 bytes .../__pycache__/bank_mapping.cpython-39.pyc | Bin 775 -> 0 bytes .../outward_log_model.cpython-39.pyc | Bin 1052 -> 0 bytes .../__pycache__/processor.cpython-39.pyc | Bin 2989 -> 0 bytes .../__pycache__/repository.cpython-39.pyc | Bin 2212 -> 0 bytes .../__pycache__/scheduler.cpython-39.pyc | Bin 1035 -> 0 bytes 1704 files changed, 320880 deletions(-) delete mode 100644 .venv/bin/Activate.ps1 delete mode 100644 .venv/bin/activate delete mode 100644 .venv/bin/activate.csh delete mode 100644 .venv/bin/activate.fish delete mode 100755 .venv/bin/idna delete mode 100755 .venv/bin/normalizer delete mode 100755 .venv/bin/pip delete mode 100755 .venv/bin/pip3 delete mode 100755 .venv/bin/pip3.9 delete mode 120000 .venv/bin/python delete mode 120000 .venv/bin/python3 delete mode 120000 .venv/bin/python3.9 delete mode 100755 .venv/lib/python3.9/site-packages/81d243bd2c585b0f4821__mypyc.cpython-39-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.9/site-packages/__pycache__/typing_extensions.cpython-39.pyc delete mode 100755 .venv/lib/python3.9/site-packages/_cffi_backend.cpython-39-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.9/site-packages/_distutils_hack/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/_distutils_hack/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/_distutils_hack/__pycache__/override.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/_distutils_hack/override.py delete mode 100644 .venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.9/site-packages/certifi/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/certifi/__main__.py delete mode 100644 .venv/lib/python3.9/site-packages/certifi/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/certifi/__pycache__/__main__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/certifi/__pycache__/core.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/certifi/cacert.pem delete mode 100644 .venv/lib/python3.9/site-packages/certifi/core.py delete mode 100644 .venv/lib/python3.9/site-packages/certifi/py.typed delete mode 100644 .venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS delete mode 100644 .venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/_imp_emulation.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/_shimmed_dist_utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/api.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/backend_ctypes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/cffi_opcode.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/commontypes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/cparser.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/error.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/ffiplatform.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/lock.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/model.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/pkgconfig.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/recompiler.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/setuptools_ext.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/vengine_cpy.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/vengine_gen.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/__pycache__/verifier.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cffi/_cffi_errors.h delete mode 100644 .venv/lib/python3.9/site-packages/cffi/_cffi_include.h delete mode 100644 .venv/lib/python3.9/site-packages/cffi/_embedding.h delete mode 100644 .venv/lib/python3.9/site-packages/cffi/_imp_emulation.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/_shimmed_dist_utils.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/api.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/backend_ctypes.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/cffi_opcode.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/commontypes.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/cparser.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/error.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/ffiplatform.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/lock.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/model.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/parse_c_type.h delete mode 100644 .venv/lib/python3.9/site-packages/cffi/pkgconfig.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/recompiler.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/setuptools_ext.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/vengine_cpy.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/vengine_gen.py delete mode 100644 .venv/lib/python3.9/site-packages/cffi/verifier.py delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__main__.py delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/__main__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/api.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/cd.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/constant.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/legacy.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/md.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/models.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/api.py delete mode 100755 .venv/lib/python3.9/site-packages/charset_normalizer/cd.cpython-39-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/cd.py delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/cli/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/cli/__main__.py delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/constant.py delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/legacy.py delete mode 100755 .venv/lib/python3.9/site-packages/charset_normalizer/md.cpython-39-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/md.py delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/models.py delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/py.typed delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/utils.py delete mode 100644 .venv/lib/python3.9/site-packages/charset_normalizer/version.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE.APACHE delete mode 100644 .venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE.BSD delete mode 100644 .venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/sboms/cryptography-rust.cyclonedx.json delete mode 100644 .venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/sboms/sbom.json delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/__about__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/__pycache__/__about__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/__pycache__/exceptions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/__pycache__/fernet.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/__pycache__/utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/exceptions.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/fernet.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/__pycache__/_oid.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/_oid.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/__pycache__/asn1.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/asn1.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/backends/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/backends/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/__pycache__/backend.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/backend.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/__pycache__/__init__.cpython-39.pyc delete mode 100755 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust.abi3.so delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hpke.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/mldsa.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/mlkem.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__pycache__/_conditional.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__pycache__/binding.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/binding.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__pycache__/algorithms.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__pycache__/modes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/modes.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/_asymmetric.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/_cipheralgorithm.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/_modes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/_serialization.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/cmac.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/constant_time.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/hashes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/hmac.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/hpke.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/keywrap.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/padding.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/poly1305.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_asymmetric.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_modes.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_serialization.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/dh.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/dsa.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/ec.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/ed25519.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/ed448.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/mldsa.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/mlkem.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/padding.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/rsa.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/types.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/x25519.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/x448.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/mldsa.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/mlkem.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/types.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__pycache__/aead.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__pycache__/algorithms.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__pycache__/modes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/aead.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/base.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/modes.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/cmac.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/constant_time.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hashes.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hmac.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hpke.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/argon2.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/concatkdf.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/hkdf.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/kbkdf.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/pbkdf2.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/scrypt.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/x963kdf.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/argon2.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/keywrap.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/padding.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/poly1305.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/pkcs12.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/pkcs7.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/ssh.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/base.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/ssh.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__pycache__/hotp.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__pycache__/totp.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/totp.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/py.typed delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/utils.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/certificate_transparency.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/extensions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/general_name.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/name.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/ocsp.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/oid.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/verification.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/base.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/certificate_transparency.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/extensions.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/general_name.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/name.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/ocsp.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/oid.py delete mode 100644 .venv/lib/python3.9/site-packages/cryptography/x509/verification.py delete mode 100644 .venv/lib/python3.9/site-packages/distutils-precedence.pth delete mode 100644 .venv/lib/python3.9/site-packages/idna-3.18.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/idna-3.18.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/idna-3.18.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/idna-3.18.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/idna-3.18.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.9/site-packages/idna-3.18.dist-info/licenses/LICENSE.md delete mode 100644 .venv/lib/python3.9/site-packages/idna/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/idna/__main__.py delete mode 100644 .venv/lib/python3.9/site-packages/idna/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/idna/__pycache__/__main__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/idna/__pycache__/cli.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/idna/__pycache__/codec.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/idna/__pycache__/compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/idna/__pycache__/core.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/idna/__pycache__/idnadata.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/idna/__pycache__/intranges.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/idna/__pycache__/package_data.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/idna/__pycache__/uts46data.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/idna/cli.py delete mode 100644 .venv/lib/python3.9/site-packages/idna/codec.py delete mode 100644 .venv/lib/python3.9/site-packages/idna/compat.py delete mode 100644 .venv/lib/python3.9/site-packages/idna/core.py delete mode 100644 .venv/lib/python3.9/site-packages/idna/idnadata.py delete mode 100644 .venv/lib/python3.9/site-packages/idna/intranges.py delete mode 100644 .venv/lib/python3.9/site-packages/idna/package_data.py delete mode 100644 .venv/lib/python3.9/site-packages/idna/py.typed delete mode 100644 .venv/lib/python3.9/site-packages/idna/uts46data.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/LICENSE.txt delete mode 100644 .venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/NOTICE.txt delete mode 100644 .venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/THIRD_PARTY_LICENSES.txt delete mode 100644 .venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/aq.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/arrow_array.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/builtin_hooks.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/connect_params.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/connection.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/constants.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/constructors.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/cursor.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/dataframe.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/dbobject.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/defaults.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/driver_mode.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/dsn.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/end_user_security_context.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/enums.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/errors.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/exceptions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/fetch_info.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/future.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/lob.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/pipeline.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/pool.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/pool_params.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/secret_values.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/soda.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/sparse_vector.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/subscr.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/var.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/__pycache__/version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/aq.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/arrow_array.py delete mode 100755 .venv/lib/python3.9/site-packages/oracledb/arrow_impl.cpython-39-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/base.py delete mode 100755 .venv/lib/python3.9/site-packages/oracledb/base_impl.cpython-39-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/builtin_hooks.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/connect_params.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/connection.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/constants.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/constructors.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/cursor.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/dataframe.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/dbobject.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/defaults.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/driver_mode.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/dsn.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/end_user_security_context.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/enums.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/errors.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/exceptions.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/fetch_info.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/future.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/lob.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/pipeline.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/azure_config_provider.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/azure_tokens.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/end_user_sec_provider.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/oci_config_provider.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/oci_tokens.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/plugins/azure_config_provider.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/plugins/azure_tokens.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/plugins/end_user_sec_provider.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/plugins/oci_config_provider.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/plugins/oci_tokens.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/pool.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/pool_params.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/py.typed delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/secret_values.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/soda.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/sparse_vector.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/subscr.py delete mode 100755 .venv/lib/python3.9/site-packages/oracledb/thick_impl.cpython-39-x86_64-linux-gnu.so delete mode 100755 .venv/lib/python3.9/site-packages/oracledb/thin_impl.cpython-39-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/utils.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/var.py delete mode 100644 .venv/lib/python3.9/site-packages/oracledb/version.py delete mode 100644 .venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/LICENSE.txt delete mode 100644 .venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.9/site-packages/pip/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/__main__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/__pycache__/__main__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/__pycache__/build_env.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/__pycache__/cache.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/__pycache__/configuration.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/__pycache__/exceptions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/__pycache__/main.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/__pycache__/pyproject.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/build_env.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cache.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/parser.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/base_command.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/cmdoptions.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/command_context.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/main.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/parser.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/req_command.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/cli/status_codes.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/cache.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/check.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/completion.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/debug.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/download.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/hash.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/help.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/index.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/install.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/list.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/search.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/show.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/cache.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/check.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/completion.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/configuration.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/debug.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/download.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/freeze.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/hash.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/help.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/index.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/install.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/list.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/search.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/show.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/commands/wheel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/configuration.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/distributions/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/distributions/base.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/distributions/installed.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/distributions/wheel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/exceptions.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/index/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/collector.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/sources.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/index/collector.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/index/package_finder.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/index/sources.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/locations/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/locations/_distutils.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/locations/_sysconfig.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/locations/base.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/main.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/metadata/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/metadata/base.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/candidate.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/format_control.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/index.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/link.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/scheme.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/target_python.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/wheel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/candidate.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/direct_url.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/index.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/link.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/scheme.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/search_scope.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/selection_prefs.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/target_python.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/models/wheel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/auth.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/cache.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/download.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/session.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/auth.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/cache.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/download.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/lazy_wheel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/session.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/utils.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/check.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_editable.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_editable.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_legacy.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/check.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/freeze.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/install/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/install/editable_legacy.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/install/legacy.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/install/wheel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/pyproject.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/constructors.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_file.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_install.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_set.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/constructors.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/req_file.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/req_install.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/req_set.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/req_tracker.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/base.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/provider.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/reporter.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/requirements.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/_log.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/logging.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/misc.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/models.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/parallel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/pkg_resources.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/urls.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/_log.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/appdirs.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/compat.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/compatibility_tags.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/datetime.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/deprecation.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/distutils_args.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/egg_link.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/encoding.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/entrypoints.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/filesystem.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/filetypes.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/glibc.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/hashes.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/inject_securetransport.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/logging.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/misc.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/models.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/packaging.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/parallel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/pkg_resources.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/setuptools_build.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/subprocess.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/temp_dir.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/unpacking.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/urls.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/virtualenv.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/utils/wheel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/git.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/bazaar.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/git.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/mercurial.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/subversion.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/vcs/versioncontrol.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_internal/wheel_builder.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/distro.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/pyparsing.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/six.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/_cmd.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/adapter.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/cache.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/compat.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/controller.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/filewrapper.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/heuristics.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/wrapper.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/certifi/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/certifi/__main__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/certifi/core.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5freq.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5prober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/chardistribution.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetgroupprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/chardetect.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/codingstatemachine.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/compat.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/cp949prober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/enums.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/escsm.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/eucjpprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrfreq.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwfreq.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312freq.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312prober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/hebrewprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/jisfreq.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/jpcntx.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/langbulgarianmodel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/langgreekmodel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhebrewmodel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhungarianmodel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/langrussianmodel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/langthaimodel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/langturkishmodel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/latin1prober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcharsetprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcsgroupprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcssm.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/languages.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcharsetprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcsgroupprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/sjisprober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/universaldetector.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/utf8prober.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/chardet/version.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansi.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansitowin32.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/initialise.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/win32.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/colorama/winterm.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/misc.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/tarfile.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/misc.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/shutil.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/tarfile.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/compat.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/database.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/index.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/locators.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/manifest.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/markers.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/metadata.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/resources.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/scripts.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/util.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/version.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distlib/wheel.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/distro.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_ihatexml.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_inputstream.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_tokenizer.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/_base.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/py.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_utils.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/constants.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/lint.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/base.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/lint.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/optionaltags.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/sanitizer.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/whitespace.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/html5parser.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/serializer.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/sax.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/base.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/dom.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/base.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/dom.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/core.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/codec.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/compat.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/core.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/idnadata.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/intranges.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/package_data.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/idna/uts46data.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__pycache__/_version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/msgpack/_version.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/msgpack/exceptions.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/msgpack/ext.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/msgpack/fallback.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__about__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/_manylinux.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/_musllinux.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/_structures.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/markers.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/requirements.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/specifiers.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/tags.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/utils.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/packaging/version.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/build.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/check.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/colorlog.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/compat.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/dirtools.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/envbuild.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/meta.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pep517/wrappers.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/py31compat.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__main__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/android.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/api.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/macos.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/unix.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/version.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/windows.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/progress/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/progress/__pycache__/bar.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/progress/__pycache__/colors.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/progress/__pycache__/counter.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/progress/__pycache__/spinner.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/progress/bar.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/progress/colors.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/progress/counter.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/progress/spinner.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/pyparsing.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/api.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/help.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/models.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/__version__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/_internal_utils.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/adapters.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/api.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/auth.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/certs.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/compat.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/cookies.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/exceptions.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/help.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/hooks.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/models.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/packages.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/sessions.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/status_codes.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/structures.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/requests/utils.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/providers.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/reporters.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/structs.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/six.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_asyncio.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_utils.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/after.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before_sleep.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/nap.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/retry.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/stop.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/tornadoweb.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tenacity/wait.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tomli/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tomli/_parser.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/tomli/_re.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_collections.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_version.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connection.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connectionpool.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/appengine.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/securetransport.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/socks.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/exceptions.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/fields.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/filepost.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/six.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/poolmanager.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/request.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/response.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/connection.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/proxy.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/queue.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/request.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/response.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/retry.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssl_.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssltransport.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/timeout.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/url.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/wait.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/vendor.txt delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/webencodings/labels.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/webencodings/mklabels.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/webencodings/tests.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/_vendor/webencodings/x_user_defined.py delete mode 100644 .venv/lib/python3.9/site-packages/pip/py.typed delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/__pycache__/pyparsing.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/appdirs.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__about__.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/_manylinux.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/_musllinux.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_manylinux.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_musllinux.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_structures.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/markers.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/specifiers.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/tags.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/utils.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/version.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/extern/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser-2.23.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/pycparser-2.23.dist-info/LICENSE delete mode 100644 .venv/lib/python3.9/site-packages/pycparser-2.23.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/pycparser-2.23.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/pycparser-2.23.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/pycparser-2.23.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/_ast_gen.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/_build_tables.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/ast_transforms.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/c_ast.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/c_generator.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/c_lexer.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/c_parser.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/lextab.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/plyparser.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/__pycache__/yacctab.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/_ast_gen.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/_build_tables.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/_c_ast.cfg delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ast_transforms.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/c_ast.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/c_generator.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/c_lexer.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/c_parser.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/lextab.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/__pycache__/cpp.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/__pycache__/ctokens.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/__pycache__/lex.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/__pycache__/yacc.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/__pycache__/ygen.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/cpp.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/ctokens.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/lex.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/yacc.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/ply/ygen.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/plyparser.py delete mode 100644 .venv/lib/python3.9/site-packages/pycparser/yacctab.py delete mode 100644 .venv/lib/python3.9/site-packages/requests-2.32.5.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/requests-2.32.5.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/requests-2.32.5.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/requests-2.32.5.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.9/site-packages/requests-2.32.5.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/requests-2.32.5.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.9/site-packages/requests-2.32.5.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.9/site-packages/requests/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/__version__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/_internal_utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/adapters.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/api.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/auth.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/certs.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/cookies.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/exceptions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/help.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/hooks.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/models.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/packages.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/sessions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/status_codes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/structures.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__pycache__/utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/requests/__version__.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/_internal_utils.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/adapters.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/api.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/auth.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/certs.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/compat.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/cookies.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/exceptions.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/help.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/hooks.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/models.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/packages.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/sessions.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/status_codes.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/structures.py delete mode 100644 .venv/lib/python3.9/site-packages/requests/utils.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools-59.6.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/setuptools-59.6.0.dist-info/LICENSE delete mode 100644 .venv/lib/python3.9/site-packages/setuptools-59.6.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/setuptools-59.6.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/setuptools-59.6.0.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.9/site-packages/setuptools-59.6.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/setuptools-59.6.0.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.9/site-packages/setuptools-59.6.0.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/_imp.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/archive_util.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/build_meta.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/config.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/dep_util.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/depends.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/dist.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/errors.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/extension.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/glob.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/installer.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/launch.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/monkey.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/msvc.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/namespaces.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/package_index.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/py34compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/sandbox.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/unicode_utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/wheel.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/__pycache__/windows_support.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_deprecation_warning.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/config.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/core.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/debug.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/dist.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/errors.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/extension.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/log.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/py35compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/util.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/_msvccompiler.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/archive_util.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/bcppcompiler.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/bdist_msi.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/bdist_wininst.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_dumb.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_msi.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_rpm.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_wininst.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/build.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_clib.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_py.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_scripts.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/check.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/clean.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/config.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/install.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_data.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_egg_info.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_headers.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_lib.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_scripts.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/py37compat.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/register.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/sdist.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/command/upload.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/config.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/core.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/cygwinccompiler.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/debug.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/dep_util.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/dir_util.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/errors.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/extension.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/fancy_getopt.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/file_util.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/filelist.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/log.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/msvc9compiler.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/msvccompiler.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/py35compat.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/py38compat.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/spawn.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/sysconfig.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/text_file.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/unixccompiler.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/util.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/version.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_distutils/versionpredicate.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_imp.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/__pycache__/pyparsing.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/__pycache__/more.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/__pycache__/recipes.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/more.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/recipes.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/ordered_set.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__about__.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/_manylinux.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/_musllinux.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_manylinux.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_musllinux.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_structures.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/markers.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/requirements.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/specifiers.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/tags.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/utils.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/version.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/_vendor/pyparsing.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/archive_util.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/build_meta.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/alias.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/build_clib.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/build_ext.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/build_py.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/develop.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/dist_info.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/easy_install.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/egg_info.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/install.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/install_lib.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/install_scripts.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/py36compat.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/register.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/rotate.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/saveopts.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/sdist.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/setopt.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/test.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/upload.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/__pycache__/upload_docs.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/alias.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/bdist_egg.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/bdist_rpm.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/build_clib.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/build_ext.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/build_py.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/develop.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/dist_info.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/easy_install.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/egg_info.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/install.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/install_egg_info.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/install_lib.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/install_scripts.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/launcher manifest.xml delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/py36compat.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/register.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/rotate.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/saveopts.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/sdist.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/setopt.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/test.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/upload.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/command/upload_docs.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/config.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/dep_util.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/depends.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/dist.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/errors.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/extension.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/extern/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/extern/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/glob.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/installer.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/launch.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/monkey.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/msvc.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/namespaces.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/package_index.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/py34compat.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/sandbox.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/script (dev).tmpl delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/script.tmpl delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/unicode_utils.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/version.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/wheel.py delete mode 100644 .venv/lib/python3.9/site-packages/setuptools/windows_support.py delete mode 100644 .venv/lib/python3.9/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/typing_extensions-4.15.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/typing_extensions-4.15.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/typing_extensions-4.15.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.9/site-packages/typing_extensions.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3-2.6.3.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.9/site-packages/urllib3-2.6.3.dist-info/METADATA delete mode 100644 .venv/lib/python3.9/site-packages/urllib3-2.6.3.dist-info/RECORD delete mode 100644 .venv/lib/python3.9/site-packages/urllib3-2.6.3.dist-info/WHEEL delete mode 100644 .venv/lib/python3.9/site-packages/urllib3-2.6.3.dist-info/licenses/LICENSE.txt delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/_base_connection.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/_collections.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/_request_methods.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/_version.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/connection.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/connectionpool.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/exceptions.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/fields.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/filepost.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/poolmanager.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/__pycache__/response.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/_base_connection.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/_collections.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/_request_methods.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/_version.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/connection.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/connectionpool.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/__pycache__/socks.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/__pycache__/connection.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/__pycache__/fetch.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/__pycache__/request.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/__pycache__/response.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/connection.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/fetch.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/request.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/emscripten/response.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/pyopenssl.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/contrib/socks.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/exceptions.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/fields.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/filepost.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/http2/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/http2/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/http2/__pycache__/connection.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/http2/__pycache__/probe.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/http2/connection.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/http2/probe.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/poolmanager.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/py.typed delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/response.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__init__.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/__init__.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/connection.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/proxy.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/request.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/response.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/retry.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/ssl_.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/ssl_match_hostname.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/ssltransport.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/timeout.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/url.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/util.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/__pycache__/wait.cpython-39.pyc delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/connection.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/proxy.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/request.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/response.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/retry.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/ssl_.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/ssl_match_hostname.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/ssltransport.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/timeout.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/url.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/util.py delete mode 100644 .venv/lib/python3.9/site-packages/urllib3/util/wait.py delete mode 120000 .venv/lib64 delete mode 100644 .venv/pyvenv.cfg delete mode 100644 __pycache__/config.cpython-314.pyc delete mode 100644 __pycache__/config.cpython-39.pyc delete mode 100644 __pycache__/logging_config.cpython-314.pyc delete mode 100644 __pycache__/logging_config.cpython-39.pyc delete mode 100644 api/__pycache__/api_client.cpython-39.pyc delete mode 100644 db/__pycache__/db.cpython-39.pyc delete mode 100644 db/__pycache__/oracle_connector.cpython-314.pyc delete mode 100644 db/__pycache__/oracle_connector.cpython-39.pyc delete mode 100644 models/__pycache__/bank_mapping.cpython-39.pyc delete mode 100644 models/__pycache__/outward_log_model.cpython-39.pyc delete mode 100644 processor/__pycache__/processor.cpython-39.pyc delete mode 100644 repository/__pycache__/repository.cpython-39.pyc delete mode 100644 scheduler/__pycache__/scheduler.cpython-39.pyc diff --git a/.venv/bin/Activate.ps1 b/.venv/bin/Activate.ps1 deleted file mode 100644 index 9d3646a..0000000 --- a/.venv/bin/Activate.ps1 +++ /dev/null @@ -1,241 +0,0 @@ -<# -.Synopsis -Activate a Python virtual environment for the current PowerShell session. - -.Description -Pushes the python executable for a virtual environment to the front of the -$Env:PATH environment variable and sets the prompt to signify that you are -in a Python virtual environment. Makes use of the command line switches as -well as the `pyvenv.cfg` file values present in the virtual environment. - -.Parameter VenvDir -Path to the directory that contains the virtual environment to activate. The -default value for this is the parent of the directory that the Activate.ps1 -script is located within. - -.Parameter Prompt -The prompt prefix to display when this virtual environment is activated. By -default, this prompt is the name of the virtual environment folder (VenvDir) -surrounded by parentheses and followed by a single space (ie. '(.venv) '). - -.Example -Activate.ps1 -Activates the Python virtual environment that contains the Activate.ps1 script. - -.Example -Activate.ps1 -Verbose -Activates the Python virtual environment that contains the Activate.ps1 script, -and shows extra information about the activation as it executes. - -.Example -Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv -Activates the Python virtual environment located in the specified location. - -.Example -Activate.ps1 -Prompt "MyPython" -Activates the Python virtual environment that contains the Activate.ps1 script, -and prefixes the current prompt with the specified string (surrounded in -parentheses) while the virtual environment is active. - -.Notes -On Windows, it may be required to enable this Activate.ps1 script by setting the -execution policy for the user. You can do this by issuing the following PowerShell -command: - -PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - -For more information on Execution Policies: -https://go.microsoft.com/fwlink/?LinkID=135170 - -#> -Param( - [Parameter(Mandatory = $false)] - [String] - $VenvDir, - [Parameter(Mandatory = $false)] - [String] - $Prompt -) - -<# Function declarations --------------------------------------------------- #> - -<# -.Synopsis -Remove all shell session elements added by the Activate script, including the -addition of the virtual environment's Python executable from the beginning of -the PATH variable. - -.Parameter NonDestructive -If present, do not remove this function from the global namespace for the -session. - -#> -function global:deactivate ([switch]$NonDestructive) { - # Revert to original values - - # The prior prompt: - if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { - Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt - Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT - } - - # The prior PYTHONHOME: - if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { - Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME - Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME - } - - # The prior PATH: - if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { - Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH - Remove-Item -Path Env:_OLD_VIRTUAL_PATH - } - - # Just remove the VIRTUAL_ENV altogether: - if (Test-Path -Path Env:VIRTUAL_ENV) { - Remove-Item -Path env:VIRTUAL_ENV - } - - # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: - if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { - Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force - } - - # Leave deactivate function in the global namespace if requested: - if (-not $NonDestructive) { - Remove-Item -Path function:deactivate - } -} - -<# -.Description -Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the -given folder, and returns them in a map. - -For each line in the pyvenv.cfg file, if that line can be parsed into exactly -two strings separated by `=` (with any amount of whitespace surrounding the =) -then it is considered a `key = value` line. The left hand string is the key, -the right hand is the value. - -If the value starts with a `'` or a `"` then the first and last character is -stripped from the value before being captured. - -.Parameter ConfigDir -Path to the directory that contains the `pyvenv.cfg` file. -#> -function Get-PyVenvConfig( - [String] - $ConfigDir -) { - Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" - - # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). - $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue - - # An empty map will be returned if no config file is found. - $pyvenvConfig = @{ } - - if ($pyvenvConfigPath) { - - Write-Verbose "File exists, parse `key = value` lines" - $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath - - $pyvenvConfigContent | ForEach-Object { - $keyval = $PSItem -split "\s*=\s*", 2 - if ($keyval[0] -and $keyval[1]) { - $val = $keyval[1] - - # Remove extraneous quotations around a string value. - if ("'""".Contains($val.Substring(0, 1))) { - $val = $val.Substring(1, $val.Length - 2) - } - - $pyvenvConfig[$keyval[0]] = $val - Write-Verbose "Adding Key: '$($keyval[0])'='$val'" - } - } - } - return $pyvenvConfig -} - - -<# Begin Activate script --------------------------------------------------- #> - -# Determine the containing directory of this script -$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition -$VenvExecDir = Get-Item -Path $VenvExecPath - -Write-Verbose "Activation script is located in path: '$VenvExecPath'" -Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" -Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" - -# Set values required in priority: CmdLine, ConfigFile, Default -# First, get the location of the virtual environment, it might not be -# VenvExecDir if specified on the command line. -if ($VenvDir) { - Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" -} -else { - Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." - $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") - Write-Verbose "VenvDir=$VenvDir" -} - -# Next, read the `pyvenv.cfg` file to determine any required value such -# as `prompt`. -$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir - -# Next, set the prompt from the command line, or the config file, or -# just use the name of the virtual environment folder. -if ($Prompt) { - Write-Verbose "Prompt specified as argument, using '$Prompt'" -} -else { - Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" - if ($pyvenvCfg -and $pyvenvCfg['prompt']) { - Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" - $Prompt = $pyvenvCfg['prompt']; - } - else { - Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" - Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" - $Prompt = Split-Path -Path $venvDir -Leaf - } -} - -Write-Verbose "Prompt = '$Prompt'" -Write-Verbose "VenvDir='$VenvDir'" - -# Deactivate any currently active virtual environment, but leave the -# deactivate function in place. -deactivate -nondestructive - -# Now set the environment variable VIRTUAL_ENV, used by many tools to determine -# that there is an activated venv. -$env:VIRTUAL_ENV = $VenvDir - -if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { - - Write-Verbose "Setting prompt to '$Prompt'" - - # Set the prompt to include the env name - # Make sure _OLD_VIRTUAL_PROMPT is global - function global:_OLD_VIRTUAL_PROMPT { "" } - Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT - New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt - - function global:prompt { - Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " - _OLD_VIRTUAL_PROMPT - } -} - -# Clear PYTHONHOME -if (Test-Path -Path Env:PYTHONHOME) { - Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME - Remove-Item -Path Env:PYTHONHOME -} - -# Add the venv to the PATH -Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH -$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/.venv/bin/activate b/.venv/bin/activate deleted file mode 100644 index 2720b13..0000000 --- a/.venv/bin/activate +++ /dev/null @@ -1,66 +0,0 @@ -# This file must be used with "source bin/activate" *from bash* -# you cannot run it directly - -deactivate () { - # reset old environment variables - if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then - PATH="${_OLD_VIRTUAL_PATH:-}" - export PATH - unset _OLD_VIRTUAL_PATH - fi - if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then - PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" - export PYTHONHOME - unset _OLD_VIRTUAL_PYTHONHOME - fi - - # This should detect bash and zsh, which have a hash command that must - # be called to get it to forget past commands. Without forgetting - # past commands the $PATH changes we made may not be respected - if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then - hash -r 2> /dev/null - fi - - if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then - PS1="${_OLD_VIRTUAL_PS1:-}" - export PS1 - unset _OLD_VIRTUAL_PS1 - fi - - unset VIRTUAL_ENV - if [ ! "${1:-}" = "nondestructive" ] ; then - # Self destruct! - unset -f deactivate - fi -} - -# unset irrelevant variables -deactivate nondestructive - -VIRTUAL_ENV=/home/bishwajeet/test/neft_server_txn_process/.venv -export VIRTUAL_ENV - -_OLD_VIRTUAL_PATH="$PATH" -PATH="$VIRTUAL_ENV/"bin":$PATH" -export PATH - -# unset PYTHONHOME if set -# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) -# could use `if (set -u; : $PYTHONHOME) ;` in bash -if [ -n "${PYTHONHOME:-}" ] ; then - _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" - unset PYTHONHOME -fi - -if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then - _OLD_VIRTUAL_PS1="${PS1:-}" - PS1='(.venv) '"${PS1:-}" - export PS1 -fi - -# This should detect bash and zsh, which have a hash command that must -# be called to get it to forget past commands. Without forgetting -# past commands the $PATH changes we made may not be respected -if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then - hash -r 2> /dev/null -fi diff --git a/.venv/bin/activate.csh b/.venv/bin/activate.csh deleted file mode 100644 index 968bc39..0000000 --- a/.venv/bin/activate.csh +++ /dev/null @@ -1,25 +0,0 @@ -# This file must be used with "source bin/activate.csh" *from csh*. -# You cannot run it directly. -# Created by Davide Di Blasi . -# Ported to Python 3.3 venv by Andrew Svetlov - -alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate' - -# Unset irrelevant variables. -deactivate nondestructive - -setenv VIRTUAL_ENV /home/bishwajeet/test/neft_server_txn_process/.venv - -set _OLD_VIRTUAL_PATH="$PATH" -setenv PATH "$VIRTUAL_ENV/"bin":$PATH" - - -set _OLD_VIRTUAL_PROMPT="$prompt" - -if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then - set prompt = '(.venv) '"$prompt" -endif - -alias pydoc python -m pydoc - -rehash diff --git a/.venv/bin/activate.fish b/.venv/bin/activate.fish deleted file mode 100644 index 3a6f00f..0000000 --- a/.venv/bin/activate.fish +++ /dev/null @@ -1,64 +0,0 @@ -# This file must be used with "source /bin/activate.fish" *from fish* -# (https://fishshell.com/); you cannot run it directly. - -function deactivate -d "Exit virtual environment and return to normal shell environment" - # reset old environment variables - if test -n "$_OLD_VIRTUAL_PATH" - set -gx PATH $_OLD_VIRTUAL_PATH - set -e _OLD_VIRTUAL_PATH - end - if test -n "$_OLD_VIRTUAL_PYTHONHOME" - set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME - set -e _OLD_VIRTUAL_PYTHONHOME - end - - if test -n "$_OLD_FISH_PROMPT_OVERRIDE" - functions -e fish_prompt - set -e _OLD_FISH_PROMPT_OVERRIDE - functions -c _old_fish_prompt fish_prompt - functions -e _old_fish_prompt - end - - set -e VIRTUAL_ENV - if test "$argv[1]" != "nondestructive" - # Self-destruct! - functions -e deactivate - end -end - -# Unset irrelevant variables. -deactivate nondestructive - -set -gx VIRTUAL_ENV /home/bishwajeet/test/neft_server_txn_process/.venv - -set -gx _OLD_VIRTUAL_PATH $PATH -set -gx PATH "$VIRTUAL_ENV/"bin $PATH - -# Unset PYTHONHOME if set. -if set -q PYTHONHOME - set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME - set -e PYTHONHOME -end - -if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" - # fish uses a function instead of an env var to generate the prompt. - - # Save the current fish_prompt function as the function _old_fish_prompt. - functions -c fish_prompt _old_fish_prompt - - # With the original prompt function renamed, we can override with our own. - function fish_prompt - # Save the return status of the last command. - set -l old_status $status - - # Output the venv prompt; color taken from the blue of the Python logo. - printf "%s%s%s" (set_color 4B8BBE) '(.venv) ' (set_color normal) - - # Restore the return status of the previous command. - echo "exit $old_status" | . - # Output the original/"old" prompt. - _old_fish_prompt - end - - set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" -end diff --git a/.venv/bin/idna b/.venv/bin/idna deleted file mode 100755 index e4e7dcf..0000000 --- a/.venv/bin/idna +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/bishwajeet/test/neft_server_txn_process/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from idna.cli import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/normalizer b/.venv/bin/normalizer deleted file mode 100755 index 17ff068..0000000 --- a/.venv/bin/normalizer +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/bishwajeet/test/neft_server_txn_process/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from charset_normalizer.cli import cli_detect -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cli_detect()) diff --git a/.venv/bin/pip b/.venv/bin/pip deleted file mode 100755 index e39f229..0000000 --- a/.venv/bin/pip +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/bishwajeet/test/neft_server_txn_process/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/pip3 b/.venv/bin/pip3 deleted file mode 100755 index e39f229..0000000 --- a/.venv/bin/pip3 +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/bishwajeet/test/neft_server_txn_process/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/pip3.9 b/.venv/bin/pip3.9 deleted file mode 100755 index e39f229..0000000 --- a/.venv/bin/pip3.9 +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/bishwajeet/test/neft_server_txn_process/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/python b/.venv/bin/python deleted file mode 120000 index b8a0adb..0000000 --- a/.venv/bin/python +++ /dev/null @@ -1 +0,0 @@ -python3 \ No newline at end of file diff --git a/.venv/bin/python3 b/.venv/bin/python3 deleted file mode 120000 index ae65fda..0000000 --- a/.venv/bin/python3 +++ /dev/null @@ -1 +0,0 @@ -/usr/bin/python3 \ No newline at end of file diff --git a/.venv/bin/python3.9 b/.venv/bin/python3.9 deleted file mode 120000 index b8a0adb..0000000 --- a/.venv/bin/python3.9 +++ /dev/null @@ -1 +0,0 @@ -python3 \ No newline at end of file diff --git a/.venv/lib/python3.9/site-packages/81d243bd2c585b0f4821__mypyc.cpython-39-x86_64-linux-gnu.so b/.venv/lib/python3.9/site-packages/81d243bd2c585b0f4821__mypyc.cpython-39-x86_64-linux-gnu.so deleted file mode 100755 index d914c9ef68c40e3ec97a24b2e5fca29d498024f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410832 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

F>riyWaww97 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%0AMs_9y#DzxqGfNB&p;r25Ey^-p^r=~w@x``ABQ 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


W+H6-pXGh1mbfiPp0m6Q) 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ⅆBJa>ey=VKJXpv{KOEy1H2#nt#&@* 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 diff --git a/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py b/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py deleted file mode 100644 index f707416..0000000 --- a/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py +++ /dev/null @@ -1,132 +0,0 @@ -import sys -import os -import re -import importlib -import warnings - - -is_pypy = '__pypy__' in sys.builtin_module_names - - -warnings.filterwarnings('ignore', - r'.+ distutils\b.+ deprecated', - DeprecationWarning) - - -def warn_distutils_present(): - if 'distutils' not in sys.modules: - return - if is_pypy and sys.version_info < (3, 7): - # PyPy for 3.6 unconditionally imports distutils, so bypass the warning - # https://foss.heptapod.net/pypy/pypy/-/blob/be829135bc0d758997b3566062999ee8b23872b4/lib-python/3/site.py#L250 - return - warnings.warn( - "Distutils was imported before Setuptools, but importing Setuptools " - "also replaces the `distutils` module in `sys.modules`. This may lead " - "to undesirable behaviors or errors. To avoid these issues, avoid " - "using distutils directly, ensure that setuptools is installed in the " - "traditional way (e.g. not an editable install), and/or make sure " - "that setuptools is always imported before distutils.") - - -def clear_distutils(): - if 'distutils' not in sys.modules: - return - warnings.warn("Setuptools is replacing distutils.") - mods = [name for name in sys.modules if re.match(r'distutils\b', name)] - for name in mods: - del sys.modules[name] - - -def enabled(): - """ - Allow selection of distutils by environment variable. - """ - which = os.environ.get('SETUPTOOLS_USE_DISTUTILS', 'stdlib') - return which == 'local' - - -def ensure_local_distutils(): - clear_distutils() - - # With the DistutilsMetaFinder in place, - # perform an import to cause distutils to be - # loaded from setuptools._distutils. Ref #2906. - add_shim() - importlib.import_module('distutils') - remove_shim() - - # check that submodules load as expected - core = importlib.import_module('distutils.core') - assert '_distutils' in core.__file__, core.__file__ - - -def do_override(): - """ - Ensure that the local copy of distutils is preferred over stdlib. - - See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401 - for more motivation. - """ - if enabled(): - warn_distutils_present() - ensure_local_distutils() - - -class DistutilsMetaFinder: - def find_spec(self, fullname, path, target=None): - if path is not None: - return - - method_name = 'spec_for_{fullname}'.format(**locals()) - method = getattr(self, method_name, lambda: None) - return method() - - def spec_for_distutils(self): - import importlib.abc - import importlib.util - - class DistutilsLoader(importlib.abc.Loader): - - def create_module(self, spec): - return importlib.import_module('setuptools._distutils') - - def exec_module(self, module): - pass - - return importlib.util.spec_from_loader('distutils', DistutilsLoader()) - - def spec_for_pip(self): - """ - Ensure stdlib distutils when running under pip. - See pypa/pip#8761 for rationale. - """ - if self.pip_imported_during_build(): - return - clear_distutils() - self.spec_for_distutils = lambda: None - - @staticmethod - def pip_imported_during_build(): - """ - Detect if pip is being imported in a build script. Ref #2355. - """ - import traceback - return any( - frame.f_globals['__file__'].endswith('setup.py') - for frame, line in traceback.walk_stack(None) - ) - - -DISTUTILS_FINDER = DistutilsMetaFinder() - - -def add_shim(): - sys.meta_path.insert(0, DISTUTILS_FINDER) - - -def remove_shim(): - try: - sys.meta_path.remove(DISTUTILS_FINDER) - except ValueError: - pass diff --git a/.venv/lib/python3.9/site-packages/_distutils_hack/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/_distutils_hack/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index b1d6b8a722c77c4338a2a9ded4ffea88557bb264..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5099 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 diff --git a/.venv/lib/python3.9/site-packages/_distutils_hack/__pycache__/override.cpython-39.pyc b/.venv/lib/python3.9/site-packages/_distutils_hack/__pycache__/override.cpython-39.pyc deleted file mode 100644 index 2ba2e6fbb3d6dd74edc2d0f72d011bfdbd740c6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmZ9GF>V4u3`J+QLPQ9zu@YGqsgMxj1T=Is*1|a1f!&?a*ep=z5-F21*T^wwbA)tM zm`IT#zVyHK3;Veo4Ejd(_LXnPI=^q_zcMXzHIFpNIP+@X?T4|(*`>*|)exO$*^93k zt8%kj!xQ!xSdLXT0Q=3.7 -License-File: LICENSE -Dynamic: author -Dynamic: author-email -Dynamic: classifier -Dynamic: description -Dynamic: home-page -Dynamic: license -Dynamic: license-file -Dynamic: project-url -Dynamic: requires-python -Dynamic: summary - -Certifi: Python SSL Certificates -================================ - -Certifi provides Mozilla's carefully curated collection of Root Certificates for -validating the trustworthiness of SSL certificates while verifying the identity -of TLS hosts. It has been extracted from the `Requests`_ project. - -Installation ------------- - -``certifi`` is available on PyPI. Simply install it with ``pip``:: - - $ pip install certifi - -Usage ------ - -To reference the installed certificate authority (CA) bundle, you can use the -built-in function:: - - >>> import certifi - - >>> certifi.where() - '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' - -Or from the command line:: - - $ python -m certifi - /usr/local/lib/python3.7/site-packages/certifi/cacert.pem - -Enjoy! - -.. _`Requests`: https://requests.readthedocs.io/en/master/ - -Addition/Removal of Certificates --------------------------------- - -Certifi does not support any addition/removal or other modification of the -CA trust store content. This project is intended to provide a reliable and -highly portable root of trust to python deployments. Look to upstream projects -for methods to use alternate trust. diff --git a/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/RECORD b/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/RECORD deleted file mode 100644 index 8a85857..0000000 --- a/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/RECORD +++ /dev/null @@ -1,14 +0,0 @@ -certifi-2026.5.20.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -certifi-2026.5.20.dist-info/METADATA,sha256=HDiCa8lfd0TGlQFongDjoaLJOhWJiJN84y707Vwd8PY,2474 -certifi-2026.5.20.dist-info/RECORD,, -certifi-2026.5.20.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91 -certifi-2026.5.20.dist-info/licenses/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 -certifi-2026.5.20.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 -certifi/__init__.py,sha256=-8ljc7w7fyi5Kyi06c1_L0lG_kD_J0FvbUTa8mEpdzQ,94 -certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 -certifi/__pycache__/__init__.cpython-39.pyc,, -certifi/__pycache__/__main__.cpython-39.pyc,, -certifi/__pycache__/core.cpython-39.pyc,, -certifi/cacert.pem,sha256=fO9UDGrzvwo8fQBwvT_XquNPiqgFtAjRwnoByK6zBd8,236095 -certifi/core.py,sha256=XFXycndG5pf37ayeF8N32HUuDafsyhkVMbO4BAPWHa0,3394 -certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/WHEEL b/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/WHEEL deleted file mode 100644 index 14a883f..0000000 --- a/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (82.0.1) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/licenses/LICENSE b/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/licenses/LICENSE deleted file mode 100644 index 62b076c..0000000 --- a/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/licenses/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -This package contains a modified version of ca-bundle.crt: - -ca-bundle.crt -- Bundle of CA Root Certificates - -This is a bundle of X.509 certificates of public Certificate Authorities -(CA). These were automatically extracted from Mozilla's root certificates -file (certdata.txt). This file can be found in the mozilla source tree: -https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt -It contains the certificates in PEM format and therefore -can be directly used with curl / libcurl / php_curl, or with -an Apache+mod_ssl webserver for SSL client authentication. -Just configure this file as the SSLCACertificateFile.# - -***** BEGIN LICENSE BLOCK ***** -This Source Code Form is subject to the terms of the Mozilla Public License, -v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain -one at http://mozilla.org/MPL/2.0/. - -***** END LICENSE BLOCK ***** -@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/top_level.txt b/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/top_level.txt deleted file mode 100644 index 963eac5..0000000 --- a/.venv/lib/python3.9/site-packages/certifi-2026.5.20.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -certifi diff --git a/.venv/lib/python3.9/site-packages/certifi/__init__.py b/.venv/lib/python3.9/site-packages/certifi/__init__.py deleted file mode 100644 index 004dd55..0000000 --- a/.venv/lib/python3.9/site-packages/certifi/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .core import contents, where - -__all__ = ["contents", "where"] -__version__ = "2026.05.20" diff --git a/.venv/lib/python3.9/site-packages/certifi/__main__.py b/.venv/lib/python3.9/site-packages/certifi/__main__.py deleted file mode 100644 index 8945b5d..0000000 --- a/.venv/lib/python3.9/site-packages/certifi/__main__.py +++ /dev/null @@ -1,12 +0,0 @@ -import argparse - -from certifi import contents, where - -parser = argparse.ArgumentParser() -parser.add_argument("-c", "--contents", action="store_true") -args = parser.parse_args() - -if args.contents: - print(contents()) -else: - print(where()) diff --git a/.venv/lib/python3.9/site-packages/certifi/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/certifi/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 5f27837115bb5a4ab74e434ecb274cf9163468d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 zcmYk1K~BRk5Jhb#p;1vK794!4!6>z-joZYIY?D%M#6h@(x2(7V zE1X@wG;j1ZGhdo^wOW#>>+fR!7W>a^&c&j6j^%D5B$2cy18wNQ8b*m^GTE^vk!h34 z?3EN3zcj8DEabvykJ`JC9XqsW=Ny|vd@k#%zAvl0vaVi=ETqDmkHZ3>?R$W52{55` z%4mQuVi$A3j6cCUGa%n6*B#qEqURo+=Nh*j9NKsU{zJoPjX>vkIia3-uQq%<`OfHd r`M{m>cssV@(C*N2f!3?7;s8o34^WP$kUtJazW4YvKjhMgE0)uL{x?tZ diff --git a/.venv/lib/python3.9/site-packages/certifi/__pycache__/__main__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/certifi/__pycache__/__main__.cpython-39.pyc deleted file mode 100644 index 1714fac26ff0b07268bf4911e75a01c1098e54c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmYjLu};G<5Vf5qHBno2;3qP)9+;32f|UUwv7juL8(*7*#EERTrCmGo4`t*-_zAB} z%xp|J0U=JhclVyp?@o-zG4gTxmXx2qzIWt*gq~daG!GsmlDI-?S4o9yl9D<|1B?J2 z2QMfMAuJ;q$bk%H^xWy;ap-jlv?TflPJkTH0b`_M-v>Xv#P=u}et36un-E8{Mp;nS zxNw_;hCP{O`*=3{lVf8W4czKAB-lkFvqhtl*ioTZt|y^G2P`&zUJK%vzB>iWM04doAO<7KP$`-tHW| Zs2jPi;1c_lrrS%&lu$gyltg$$z5&!Fe%t^6 diff --git a/.venv/lib/python3.9/site-packages/certifi/__pycache__/core.cpython-39.pyc b/.venv/lib/python3.9/site-packages/certifi/__pycache__/core.cpython-39.pyc deleted file mode 100644 index 4db8548555db5b21fb57206f5f7aff1d7821a1f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1412 zcmZ`(&2Ah;5bo~z-Pu2r1f&EGb7UmgK_Ul`5F%JeoGcXkfcDZFPxpFzvpch@E;}{{ zF5$`xAP&37JP0q*S5AI~oT#2%+d+0(>YA$Qs_FW^s+wvz%owdF{}hWKhm8H}jrUhT z#t*dZUnCTpGR2ix@+t40Vk(qS!QWhkD*7Xw2AVHI6~Bt$l+Kf7w2G(kDw!snDN&`g zdphgG@e6abDZnkG#0DnvO?1~`LeBdN;}Kz%71CH)~mdQ+@Q_twn5#X zon+TU13N0Xi+7)@z5V`*$T*~JACW+|;fiQeY#R_5Mv3yHLb$#>d~x{G%M*Ec@~caw z)RzXOe9OQ`cjBEa=j}?Dr^e1-R|~DNL~XHb^bDodaG^osWh2+n*4o-~a-o}xa%oP> z^%c(B=IhC~r8TI(Tvzq0>P*{m&rVslpotmKPJ_7^N^QIZ>?foUSPzlrV#^ma4J!PT z6P)M>XrLI3NVur7wK3E-sc!04ndYnrIt*~&k9(jiB`I5cFuU}&|H%2KM$bs6Rth`( zPs#XjmS526z9gSxH@R;_B``p-3HPOlHZdkQrGSC|b_!#9xb#e;yd@bvqIckX8y None: - _CACERT_CTX.__exit__(None, None, None) # type: ignore[union-attr] - - -if sys.version_info >= (3, 11): - - from importlib.resources import as_file, files - - _CACERT_CTX = None - _CACERT_PATH = None - - def where() -> str: - # This is slightly terrible, but we want to delay extracting the file - # in cases where we're inside of a zipimport situation until someone - # actually calls where(), but we don't want to re-extract the file - # on every call of where(), so we'll do it once then store it in a - # global variable. - global _CACERT_CTX - global _CACERT_PATH - if _CACERT_PATH is None: - # This is slightly janky, the importlib.resources API wants you to - # manage the cleanup of this file, so it doesn't actually return a - # path, it returns a context manager that will give you the path - # when you enter it and will do any cleanup when you leave it. In - # the common case of not needing a temporary file, it will just - # return the file system location and the __exit__() is a no-op. - # - # We also have to hold onto the actual context manager, because - # it will do the cleanup whenever it gets garbage collected, so - # we will also store that at the global level as well. - _CACERT_CTX = as_file(files("certifi").joinpath("cacert.pem")) - _CACERT_PATH = str(_CACERT_CTX.__enter__()) - atexit.register(exit_cacert_ctx) - - return _CACERT_PATH - - def contents() -> str: - return files("certifi").joinpath("cacert.pem").read_text(encoding="ascii") - -else: - - from importlib.resources import path as get_path, read_text - - _CACERT_CTX = None - _CACERT_PATH = None - - def where() -> str: - # This is slightly terrible, but we want to delay extracting the - # file in cases where we're inside of a zipimport situation until - # someone actually calls where(), but we don't want to re-extract - # the file on every call of where(), so we'll do it once then store - # it in a global variable. - global _CACERT_CTX - global _CACERT_PATH - if _CACERT_PATH is None: - # This is slightly janky, the importlib.resources API wants you - # to manage the cleanup of this file, so it doesn't actually - # return a path, it returns a context manager that will give - # you the path when you enter it and will do any cleanup when - # you leave it. In the common case of not needing a temporary - # file, it will just return the file system location and the - # __exit__() is a no-op. - # - # We also have to hold onto the actual context manager, because - # it will do the cleanup whenever it gets garbage collected, so - # we will also store that at the global level as well. - _CACERT_CTX = get_path("certifi", "cacert.pem") - _CACERT_PATH = str(_CACERT_CTX.__enter__()) - atexit.register(exit_cacert_ctx) - - return _CACERT_PATH - - def contents() -> str: - return read_text("certifi", "cacert.pem", encoding="ascii") diff --git a/.venv/lib/python3.9/site-packages/certifi/py.typed b/.venv/lib/python3.9/site-packages/certifi/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/INSTALLER b/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/METADATA b/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/METADATA deleted file mode 100644 index 67508e5..0000000 --- a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/METADATA +++ /dev/null @@ -1,68 +0,0 @@ -Metadata-Version: 2.4 -Name: cffi -Version: 2.0.0 -Summary: Foreign Function Interface for Python calling C code. -Author: Armin Rigo, Maciej Fijalkowski -Maintainer: Matt Davis, Matt Clay, Matti Picus -License-Expression: MIT -Project-URL: Documentation, https://cffi.readthedocs.io/ -Project-URL: Changelog, https://cffi.readthedocs.io/en/latest/whatsnew.html -Project-URL: Downloads, https://github.com/python-cffi/cffi/releases -Project-URL: Contact, https://groups.google.com/forum/#!forum/python-cffi -Project-URL: Source Code, https://github.com/python-cffi/cffi -Project-URL: Issue Tracker, https://github.com/python-cffi/cffi/issues -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta -Classifier: Programming Language :: Python :: Implementation :: CPython -Requires-Python: >=3.9 -Description-Content-Type: text/markdown -License-File: LICENSE -License-File: AUTHORS -Requires-Dist: pycparser; implementation_name != "PyPy" -Dynamic: license-file - -[![GitHub Actions Status](https://github.com/python-cffi/cffi/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/python-cffi/cffi/actions/workflows/ci.yaml?query=branch%3Amain++) -[![PyPI version](https://img.shields.io/pypi/v/cffi.svg)](https://pypi.org/project/cffi) -[![Read the Docs](https://img.shields.io/badge/docs-latest-blue.svg)][Documentation] - - -CFFI -==== - -Foreign Function Interface for Python calling C code. - -Please see the [Documentation] or uncompiled in the `doc/` subdirectory. - -Download --------- - -[Download page](https://github.com/python-cffi/cffi/releases) - -Source Code ------------ - -Source code is publicly available on -[GitHub](https://github.com/python-cffi/cffi). - -Contact -------- - -[Mailing list](https://groups.google.com/forum/#!forum/python-cffi) - -Testing/development tips ------------------------- - -After `git clone` or `wget && tar`, we will get a directory called `cffi` or `cffi-x.x.x`. we call it `repo-directory`. To run tests under CPython, run the following in the `repo-directory`: - - pip install pytest - pip install -e . # editable install of CFFI for local development - pytest src/c/ testing/ - -[Documentation]: http://cffi.readthedocs.org/ diff --git a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/RECORD b/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/RECORD deleted file mode 100644 index 25e5445..0000000 --- a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/RECORD +++ /dev/null @@ -1,49 +0,0 @@ -_cffi_backend.cpython-39-x86_64-linux-gnu.so,sha256=9J_Iuv_0UXORJQsmFFKfZwHTQDTC313tRixPBAunqCU,339784 -cffi-2.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -cffi-2.0.0.dist-info/METADATA,sha256=uYzn40F68Im8EtXHNBLZs7FoPM-OxzyYbDWsjJvhujk,2559 -cffi-2.0.0.dist-info/RECORD,, -cffi-2.0.0.dist-info/WHEEL,sha256=A4SdjgbIBZ_kjTsEuOcR8fCpVKV5dez8wjeT_kpjoQs,147 -cffi-2.0.0.dist-info/entry_points.txt,sha256=y6jTxnyeuLnL-XJcDv8uML3n6wyYiGRg8MTp_QGJ9Ho,75 -cffi-2.0.0.dist-info/licenses/AUTHORS,sha256=KmemC7-zN1nWfWRf8TG45ta8TK_CMtdR_Kw-2k0xTMg,208 -cffi-2.0.0.dist-info/licenses/LICENSE,sha256=W6JN3FcGf5JJrdZEw6_EGl1tw34jQz73Wdld83Cwr2M,1123 -cffi-2.0.0.dist-info/top_level.txt,sha256=rE7WR3rZfNKxWI9-jn6hsHCAl7MDkB-FmuQbxWjFehQ,19 -cffi/__init__.py,sha256=-ksBQ7MfDzVvbBlV_ftYBWAmEqfA86ljIzMxzaZeAlI,511 -cffi/__pycache__/__init__.cpython-39.pyc,, -cffi/__pycache__/_imp_emulation.cpython-39.pyc,, -cffi/__pycache__/_shimmed_dist_utils.cpython-39.pyc,, -cffi/__pycache__/api.cpython-39.pyc,, -cffi/__pycache__/backend_ctypes.cpython-39.pyc,, -cffi/__pycache__/cffi_opcode.cpython-39.pyc,, -cffi/__pycache__/commontypes.cpython-39.pyc,, -cffi/__pycache__/cparser.cpython-39.pyc,, -cffi/__pycache__/error.cpython-39.pyc,, -cffi/__pycache__/ffiplatform.cpython-39.pyc,, -cffi/__pycache__/lock.cpython-39.pyc,, -cffi/__pycache__/model.cpython-39.pyc,, -cffi/__pycache__/pkgconfig.cpython-39.pyc,, -cffi/__pycache__/recompiler.cpython-39.pyc,, -cffi/__pycache__/setuptools_ext.cpython-39.pyc,, -cffi/__pycache__/vengine_cpy.cpython-39.pyc,, -cffi/__pycache__/vengine_gen.cpython-39.pyc,, -cffi/__pycache__/verifier.cpython-39.pyc,, -cffi/_cffi_errors.h,sha256=zQXt7uR_m8gUW-fI2hJg0KoSkJFwXv8RGUkEDZ177dQ,3908 -cffi/_cffi_include.h,sha256=Exhmgm9qzHWzWivjfTe0D7Xp4rPUkVxdNuwGhMTMzbw,15055 -cffi/_embedding.h,sha256=Ai33FHblE7XSpHOCp8kPcWwN5_9BV14OvN0JVa6ITpw,18786 -cffi/_imp_emulation.py,sha256=RxREG8zAbI2RPGBww90u_5fi8sWdahpdipOoPzkp7C0,2960 -cffi/_shimmed_dist_utils.py,sha256=Bjj2wm8yZbvFvWEx5AEfmqaqZyZFhYfoyLLQHkXZuao,2230 -cffi/api.py,sha256=alBv6hZQkjpmZplBphdaRn2lPO9-CORs_M7ixabvZWI,42169 -cffi/backend_ctypes.py,sha256=h5ZIzLc6BFVXnGyc9xPqZWUS7qGy7yFSDqXe68Sa8z4,42454 -cffi/cffi_opcode.py,sha256=JDV5l0R0_OadBX_uE7xPPTYtMdmpp8I9UYd6av7aiDU,5731 -cffi/commontypes.py,sha256=7N6zPtCFlvxXMWhHV08psUjdYIK2XgsN3yo5dgua_v4,2805 -cffi/cparser.py,sha256=QUTfmlL-aO-MYR8bFGlvAUHc36OQr7XYLe0WLkGFjRo,44790 -cffi/error.py,sha256=v6xTiS4U0kvDcy4h_BDRo5v39ZQuj-IMRYLv5ETddZs,877 -cffi/ffiplatform.py,sha256=avxFjdikYGJoEtmJO7ewVmwG_VEVl6EZ_WaNhZYCqv4,3584 -cffi/lock.py,sha256=l9TTdwMIMpi6jDkJGnQgE9cvTIR7CAntIJr8EGHt3pY,747 -cffi/model.py,sha256=W30UFQZE73jL5Mx5N81YT77us2W2iJjTm0XYfnwz1cg,21797 -cffi/parse_c_type.h,sha256=OdwQfwM9ktq6vlCB43exFQmxDBtj2MBNdK8LYl15tjw,5976 -cffi/pkgconfig.py,sha256=LP1w7vmWvmKwyqLaU1Z243FOWGNQMrgMUZrvgFuOlco,4374 -cffi/recompiler.py,sha256=78J6lMEEOygXNmjN9-fOFFO3j7eW-iFxSrxfvQb54bY,65509 -cffi/setuptools_ext.py,sha256=0rCwBJ1W7FHWtiMKfNXsSST88V8UXrui5oeXFlDNLG8,9411 -cffi/vengine_cpy.py,sha256=oyQKD23kpE0aChUKA8Jg0e723foPiYzLYEdb-J0MiNs,43881 -cffi/vengine_gen.py,sha256=DUlEIrDiVin1Pnhn1sfoamnS5NLqfJcOdhRoeSNeJRg,26939 -cffi/verifier.py,sha256=oX8jpaohg2Qm3aHcznidAdvrVm5N4sQYG0a3Eo5mIl4,11182 diff --git a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/WHEEL b/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/WHEEL deleted file mode 100644 index fb8eff6..0000000 --- a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/WHEEL +++ /dev/null @@ -1,6 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (80.9.0) -Root-Is-Purelib: false -Tag: cp39-cp39-manylinux_2_17_x86_64 -Tag: cp39-cp39-manylinux2014_x86_64 - diff --git a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/entry_points.txt b/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/entry_points.txt deleted file mode 100644 index 4b0274f..0000000 --- a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[distutils.setup_keywords] -cffi_modules = cffi.setuptools_ext:cffi_modules diff --git a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS b/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS deleted file mode 100644 index 370a25d..0000000 --- a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS +++ /dev/null @@ -1,8 +0,0 @@ -This package has been mostly done by Armin Rigo with help from -Maciej Fijałkowski. The idea is heavily based (although not directly -copied) from LuaJIT ffi by Mike Pall. - - -Other contributors: - - Google Inc. diff --git a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE b/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE deleted file mode 100644 index 0a1dbfb..0000000 --- a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ - -Except when otherwise stated (look for LICENSE files in directories or -information at the beginning of each file) all software and -documentation is licensed as follows: - - MIT No Attribution - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the - Software is furnished to do so. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - diff --git a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/top_level.txt b/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/top_level.txt deleted file mode 100644 index f645779..0000000 --- a/.venv/lib/python3.9/site-packages/cffi-2.0.0.dist-info/top_level.txt +++ /dev/null @@ -1,2 +0,0 @@ -_cffi_backend -cffi diff --git a/.venv/lib/python3.9/site-packages/cffi/__init__.py b/.venv/lib/python3.9/site-packages/cffi/__init__.py deleted file mode 100644 index c99ec3d..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -__all__ = ['FFI', 'VerificationError', 'VerificationMissing', 'CDefError', - 'FFIError'] - -from .api import FFI -from .error import CDefError, FFIError, VerificationError, VerificationMissing -from .error import PkgConfigError - -__version__ = "2.0.0" -__version_info__ = (2, 0, 0) - -# The verifier module file names are based on the CRC32 of a string that -# contains the following version number. It may be older than __version__ -# if nothing is clearly incompatible. -__version_verifier_modules__ = "0.8.6" diff --git a/.venv/lib/python3.9/site-packages/cffi/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cffi/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index ce50be810692ec8dd81eb6d156800b6aa529fcd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmZut%}(4f5Vn(elZBZOOiKn{&pZG~E?LP!)u53P`pIQTNkZk((kaU$DYejbNg zAEYngE2n*hUg$U+;DDw1JoC+bo*9=rJ6i-#`ZvFLpoH9q;Q5I#I6$)}2o0&o9TlXa zRn*ch5)lo4+{RrZl8y=1O~j;2MLO~c@|nocXJT4S#8#Dx?J7GX`7~!fK0f~8-<(UM zYPBq#>h+N^z433KQ$LlpN;iIb_+8eI`3!ZVx50TyPR)2FCc((C0AXemk4gXP^s+hZ zb*-9FbIU#!^J1RIn^3etBW8+l%jU(GV((Wz^C>{twg5gZ2Q@zKnGBP?)WM`E_S*n! zX)LaQvfZaZ>AD9H@1Gbf!*!*BuCIQ#(gOS;=5?4Nz`q4w^_}DkWmi|_g_MpvX&u+H zc3`DJHMnaHgXx#jT3)QBUh`Hh_CE9B#;tn&srbsRa`MAaE-%YQTE47n#Q~I74xkur YeD>|J_kQ>{J449g8GT1*Q9={;A0=>&=l}o! diff --git a/.venv/lib/python3.9/site-packages/cffi/__pycache__/_imp_emulation.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cffi/__pycache__/_imp_emulation.cpython-39.pyc deleted file mode 100644 index 0a6351a43fcf03ddb3f6b9bff4e2461db40851a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2552 zcmbUj%WfM-vb$$E9Fn8AY}w8O43fahU{`b!CqM$j*jS=s!8R$7GHeaj7!27>Y2Q(#ljA9aZdS({6t^(QX8IF=V}}z?L$XWmk@(*x5p?t;CHMiIg)A~$BQjkxD!7Hn za;=J@OT6SR^Rm0b zEAA?H+;e=+J`INdB`FXy=S7CK&kHqW>=7FOy>tgJc1?eGZFK6+?e7l$0;|b zxRK*5BN<&I8CxS@UZL5;o6H6(##?k?rso0dlZ-r=AJdF-IHGU-lO35I@|$y4+4>bt)8|B90MTC$>IX?A>fInc_{KjJLe-T>RXrAc<)uPC64FzT zV{agno=DUB`XdoPs)s@M^Q-m2NF5~cr|VzT(?E$o4gB6ie_y2aUcVpIy&xKRA{vIi z3X*tzFw*5~VUVg`5)H1uhc`!WT9my!uI>vsYY0-0MY?_sUd<2F>#&%y{~qhXZYuFP zclNwa>u!6aAF7z9KB$*xPMvv^E=Oq?)12;;|BO3cgLXl_o>k6WZ>M zl;|Z~ykVtwUiWYn4o)2agj&>mX|YARNacrs_b{?%13B=Hc?kat;!i=8DSE=vcNOFG zsiDjaLirgzq2JQ@1K6d?1BO0OI`7~PxX!S`dP<_?{w^BJVbGd4E3sTK|wdEp}ILn=MEJ~p|PnQLTR znDQA}0r;#OTgt3wRQ|w82B*Tg%c!40UBlTSM?a{Q69QU3`HL|&$HlP?X^6T?XJ?k) z(De%?Pv}wg=$E6@e0BBcRIP#(;l=ORw_xwM%rX%vD|3e z^MW`~o(JJ=qHayQas_q(w?zzr7R39tiyCTb5U0wIAp{LLQN!E(2G30|23Ax=NRsMXi^XVN)A&7ACWpP3P${ ztmmmiFXdER*^I$-m<96zrmZw)m1zsCyFKA4-^uOi3`9?2->em0`B-iN zLEZ$Q%@i51F}cW@P{X diff --git a/.venv/lib/python3.9/site-packages/cffi/__pycache__/_shimmed_dist_utils.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cffi/__pycache__/_shimmed_dist_utils.cpython-39.pyc deleted file mode 100644 index 114b8bd65a3039c11a0946e4f1dbfd61d6e65334..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1742 zcmbVM&2HO95GE{_V2^1-#V7{ zhgqyXM*0H&>V<7tsTEqOojTMG?U`3|PU!q#@h43SH_B7n3Y)eyL)gA*rHye*KEsW) z`Lm6iKY`YTl{#VbO_O``?}2q-y>Vv0fSndyW9_ibI$_5)9@c1=xuIM0ZMx39(5v|l z?XiB?XB**0z3$Qh+YC2r-lg~0R=CBs!)VMUf7+ILA-dfQi#rEKa$+)jXO~aza(nzfw|BOD1ljfH*#Wol zL7whPo`Bk!H5|kx!04W1RtOo(5~-Xp#6&uw7-@kBPl?2dMmoo6M6^O8Ln%>uq6t;# z8Y7NziZUq}Qdmz4Ed*7;ibhVrQX$2Zq=a9hiNe{0x>!mf5yMKwmsp_@E(K4~+t=c~ zZyqzSySFg3hXhBbrOx5={A+aNe{uL2fr;xJ^A*o~Xo`6%B%ECwMFbp3F~;0?-SZq) z@QYC*7=*=$suPW;f~2sU$1>edabeso6G9od`nPvQc!Cj&d1B!Zl&I zc0y>Zi7_`R0AxJ}>-gm4mG9n~&VD^~ZX58u^?=N19ib7U499vRF_QSl2~PTwL(|Y{C;0P)z-yQ#Gi#th%aHiQpNz9NJa)_!yvpvPrWT zO$bdRe4|0v`vxj6$q0%sc-4J*qcK;&g5DY%7qQNVjcUs%)$MU+8sep?bmiTdoUgjy z5}*lujv*q2z=s9aCEO z^$KW3oQ$C({n^ETI9PO+k3M2;AvJh^#Psm9svSkCNTR4}0PdB$R5F+*xTxWE@J;0b z5C-6g@Jv+Qg=yJ@R*@|r)z)IuPfSajy2&+=gu5#e!Jto5e^E@?HfQ^*8WKyGx0dW0 z$-Sin20&!WDb3`q21^0>5mL!@bI7!=>;VaTO9kjG**Ag>AXTS;djR){g*!_Xrl!f$ zMcA80Z~c{-MY?W}UoH8$F<{8wEXW1J!HB5*I=;eK2O29KaGdD~?jJxE=^GxwrA}b3 z1U^iHX+X*7t1pA19vnyh(*T+Z@84Bf1xc2XATl!#rcGqRs#8^dQC6L2^BeRW2Bf79 kfi%}Tj??h$zU?}w>A*9vJ$Mb>wg--D&v*Luj@v-aKl%V2BLDyZ diff --git a/.venv/lib/python3.9/site-packages/cffi/__pycache__/api.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cffi/__pycache__/api.cpython-39.pyc deleted file mode 100644 index f4bf54af89369627c1b88afc097e50c6cdb2be12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34399 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 TRJIGb>2J;?|J{b5LI3{&lp+H* diff --git a/.venv/lib/python3.9/site-packages/cffi/__pycache__/backend_ctypes.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cffi/__pycache__/backend_ctypes.cpython-39.pyc deleted file mode 100644 index 6e538175f750c6c20ade2983fef63afc00a78d5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39970 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 ToX$Li=}u?*Gug~jnW_H=`USl> diff --git a/.venv/lib/python3.9/site-packages/cffi/__pycache__/error.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cffi/__pycache__/error.cpython-39.pyc deleted file mode 100644 index 23d86eeaaaff45e62a00d09cd4a4496474491fa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1531 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 QH{2w)1@j^!J5G4@zY20PEdT%j diff --git a/.venv/lib/python3.9/site-packages/cffi/__pycache__/lock.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cffi/__pycache__/lock.cpython-39.pyc deleted file mode 100644 index 83ee6c5aaaf2be0e96463016df35ea9859896734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 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 diff --git a/.venv/lib/python3.9/site-packages/cffi/__pycache__/pkgconfig.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cffi/__pycache__/pkgconfig.cpython-39.pyc deleted file mode 100644 index 5a06b8036204c04c80cefc0dd9f130bfa8e62218..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5166 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 AS^xk5 diff --git a/.venv/lib/python3.9/site-packages/cffi/__pycache__/setuptools_ext.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cffi/__pycache__/setuptools_ext.cpython-39.pyc deleted file mode 100644 index 03275a31088a50ca33051233fb2b84f6a0d3fb41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7534 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 z 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 F{{z6AvvL3c diff --git a/.venv/lib/python3.9/site-packages/cffi/_cffi_errors.h b/.venv/lib/python3.9/site-packages/cffi/_cffi_errors.h deleted file mode 100644 index 158e059..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/_cffi_errors.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef CFFI_MESSAGEBOX -# ifdef _MSC_VER -# define CFFI_MESSAGEBOX 1 -# else -# define CFFI_MESSAGEBOX 0 -# endif -#endif - - -#if CFFI_MESSAGEBOX -/* Windows only: logic to take the Python-CFFI embedding logic - initialization errors and display them in a background thread - with MessageBox. The idea is that if the whole program closes - as a result of this problem, then likely it is already a console - program and you can read the stderr output in the console too. - If it is not a console program, then it will likely show its own - dialog to complain, or generally not abruptly close, and for this - case the background thread should stay alive. -*/ -static void *volatile _cffi_bootstrap_text; - -static PyObject *_cffi_start_error_capture(void) -{ - PyObject *result = NULL; - PyObject *x, *m, *bi; - - if (InterlockedCompareExchangePointer(&_cffi_bootstrap_text, - (void *)1, NULL) != NULL) - return (PyObject *)1; - - m = PyImport_AddModule("_cffi_error_capture"); - if (m == NULL) - goto error; - - result = PyModule_GetDict(m); - if (result == NULL) - goto error; - -#if PY_MAJOR_VERSION >= 3 - bi = PyImport_ImportModule("builtins"); -#else - bi = PyImport_ImportModule("__builtin__"); -#endif - if (bi == NULL) - goto error; - PyDict_SetItemString(result, "__builtins__", bi); - Py_DECREF(bi); - - x = PyRun_String( - "import sys\n" - "class FileLike:\n" - " def write(self, x):\n" - " try:\n" - " of.write(x)\n" - " except: pass\n" - " self.buf += x\n" - " def flush(self):\n" - " pass\n" - "fl = FileLike()\n" - "fl.buf = ''\n" - "of = sys.stderr\n" - "sys.stderr = fl\n" - "def done():\n" - " sys.stderr = of\n" - " return fl.buf\n", /* make sure the returned value stays alive */ - Py_file_input, - result, result); - Py_XDECREF(x); - - error: - if (PyErr_Occurred()) - { - PyErr_WriteUnraisable(Py_None); - PyErr_Clear(); - } - return result; -} - -#pragma comment(lib, "user32.lib") - -static DWORD WINAPI _cffi_bootstrap_dialog(LPVOID ignored) -{ - Sleep(666); /* may be interrupted if the whole process is closing */ -#if PY_MAJOR_VERSION >= 3 - MessageBoxW(NULL, (wchar_t *)_cffi_bootstrap_text, - L"Python-CFFI error", - MB_OK | MB_ICONERROR); -#else - MessageBoxA(NULL, (char *)_cffi_bootstrap_text, - "Python-CFFI error", - MB_OK | MB_ICONERROR); -#endif - _cffi_bootstrap_text = NULL; - return 0; -} - -static void _cffi_stop_error_capture(PyObject *ecap) -{ - PyObject *s; - void *text; - - if (ecap == (PyObject *)1) - return; - - if (ecap == NULL) - goto error; - - s = PyRun_String("done()", Py_eval_input, ecap, ecap); - if (s == NULL) - goto error; - - /* Show a dialog box, but in a background thread, and - never show multiple dialog boxes at once. */ -#if PY_MAJOR_VERSION >= 3 - text = PyUnicode_AsWideCharString(s, NULL); -#else - text = PyString_AsString(s); -#endif - - _cffi_bootstrap_text = text; - - if (text != NULL) - { - HANDLE h; - h = CreateThread(NULL, 0, _cffi_bootstrap_dialog, - NULL, 0, NULL); - if (h != NULL) - CloseHandle(h); - } - /* decref the string, but it should stay alive as 'fl.buf' - in the small module above. It will really be freed only if - we later get another similar error. So it's a leak of at - most one copy of the small module. That's fine for this - situation which is usually a "fatal error" anyway. */ - Py_DECREF(s); - PyErr_Clear(); - return; - - error: - _cffi_bootstrap_text = NULL; - PyErr_Clear(); -} - -#else - -static PyObject *_cffi_start_error_capture(void) { return NULL; } -static void _cffi_stop_error_capture(PyObject *ecap) { } - -#endif diff --git a/.venv/lib/python3.9/site-packages/cffi/_cffi_include.h b/.venv/lib/python3.9/site-packages/cffi/_cffi_include.h deleted file mode 100644 index 908a1d7..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/_cffi_include.h +++ /dev/null @@ -1,389 +0,0 @@ -#define _CFFI_ - -/* We try to define Py_LIMITED_API before including Python.h. - - Mess: we can only define it if Py_DEBUG, Py_TRACE_REFS and - Py_REF_DEBUG are not defined. This is a best-effort approximation: - we can learn about Py_DEBUG from pyconfig.h, but it is unclear if - the same works for the other two macros. Py_DEBUG implies them, - but not the other way around. - - The implementation is messy (issue #350): on Windows, with _MSC_VER, - we have to define Py_LIMITED_API even before including pyconfig.h. - In that case, we guess what pyconfig.h will do to the macros above, - and check our guess after the #include. - - Note that on Windows, with CPython 3.x, you need >= 3.5 and virtualenv - version >= 16.0.0. With older versions of either, you don't get a - copy of PYTHON3.DLL in the virtualenv. We can't check the version of - CPython *before* we even include pyconfig.h. ffi.set_source() puts - a ``#define _CFFI_NO_LIMITED_API'' at the start of this file if it is - running on Windows < 3.5, as an attempt at fixing it, but that's - arguably wrong because it may not be the target version of Python. - Still better than nothing I guess. As another workaround, you can - remove the definition of Py_LIMITED_API here. - - See also 'py_limited_api' in cffi/setuptools_ext.py. -*/ -#if !defined(_CFFI_USE_EMBEDDING) && !defined(Py_LIMITED_API) -# ifdef _MSC_VER -# if !defined(_DEBUG) && !defined(Py_DEBUG) && !defined(Py_TRACE_REFS) && !defined(Py_REF_DEBUG) && !defined(_CFFI_NO_LIMITED_API) -# define Py_LIMITED_API -# endif -# include - /* sanity-check: Py_LIMITED_API will cause crashes if any of these - are also defined. Normally, the Python file PC/pyconfig.h does not - cause any of these to be defined, with the exception that _DEBUG - causes Py_DEBUG. Double-check that. */ -# ifdef Py_LIMITED_API -# if defined(Py_DEBUG) -# error "pyconfig.h unexpectedly defines Py_DEBUG, but Py_LIMITED_API is set" -# endif -# if defined(Py_TRACE_REFS) -# error "pyconfig.h unexpectedly defines Py_TRACE_REFS, but Py_LIMITED_API is set" -# endif -# if defined(Py_REF_DEBUG) -# error "pyconfig.h unexpectedly defines Py_REF_DEBUG, but Py_LIMITED_API is set" -# endif -# endif -# else -# include -# if !defined(Py_DEBUG) && !defined(Py_TRACE_REFS) && !defined(Py_REF_DEBUG) && !defined(_CFFI_NO_LIMITED_API) -# define Py_LIMITED_API -# endif -# endif -#endif - -#include -#ifdef __cplusplus -extern "C" { -#endif -#include -#include "parse_c_type.h" - -/* this block of #ifs should be kept exactly identical between - c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py - and cffi/_cffi_include.h */ -#if defined(_MSC_VER) -# include /* for alloca() */ -# if _MSC_VER < 1600 /* MSVC < 2010 */ - typedef __int8 int8_t; - typedef __int16 int16_t; - typedef __int32 int32_t; - typedef __int64 int64_t; - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int64 uint64_t; - typedef __int8 int_least8_t; - typedef __int16 int_least16_t; - typedef __int32 int_least32_t; - typedef __int64 int_least64_t; - typedef unsigned __int8 uint_least8_t; - typedef unsigned __int16 uint_least16_t; - typedef unsigned __int32 uint_least32_t; - typedef unsigned __int64 uint_least64_t; - typedef __int8 int_fast8_t; - typedef __int16 int_fast16_t; - typedef __int32 int_fast32_t; - typedef __int64 int_fast64_t; - typedef unsigned __int8 uint_fast8_t; - typedef unsigned __int16 uint_fast16_t; - typedef unsigned __int32 uint_fast32_t; - typedef unsigned __int64 uint_fast64_t; - typedef __int64 intmax_t; - typedef unsigned __int64 uintmax_t; -# else -# include -# endif -# if _MSC_VER < 1800 /* MSVC < 2013 */ -# ifndef __cplusplus - typedef unsigned char _Bool; -# endif -# endif -# define _cffi_float_complex_t _Fcomplex /* include for it */ -# define _cffi_double_complex_t _Dcomplex /* include for it */ -#else -# include -# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux) -# include -# endif -# define _cffi_float_complex_t float _Complex -# define _cffi_double_complex_t double _Complex -#endif - -#ifdef __GNUC__ -# define _CFFI_UNUSED_FN __attribute__((unused)) -#else -# define _CFFI_UNUSED_FN /* nothing */ -#endif - -#ifdef __cplusplus -# ifndef _Bool - typedef bool _Bool; /* semi-hackish: C++ has no _Bool; bool is builtin */ -# endif -#endif - -/********** CPython-specific section **********/ -#ifndef PYPY_VERSION - - -#if PY_MAJOR_VERSION >= 3 -# define PyInt_FromLong PyLong_FromLong -#endif - -#define _cffi_from_c_double PyFloat_FromDouble -#define _cffi_from_c_float PyFloat_FromDouble -#define _cffi_from_c_long PyInt_FromLong -#define _cffi_from_c_ulong PyLong_FromUnsignedLong -#define _cffi_from_c_longlong PyLong_FromLongLong -#define _cffi_from_c_ulonglong PyLong_FromUnsignedLongLong -#define _cffi_from_c__Bool PyBool_FromLong - -#define _cffi_to_c_double PyFloat_AsDouble -#define _cffi_to_c_float PyFloat_AsDouble - -#define _cffi_from_c_int(x, type) \ - (((type)-1) > 0 ? /* unsigned */ \ - (sizeof(type) < sizeof(long) ? \ - PyInt_FromLong((long)x) : \ - sizeof(type) == sizeof(long) ? \ - PyLong_FromUnsignedLong((unsigned long)x) : \ - PyLong_FromUnsignedLongLong((unsigned long long)x)) : \ - (sizeof(type) <= sizeof(long) ? \ - PyInt_FromLong((long)x) : \ - PyLong_FromLongLong((long long)x))) - -#define _cffi_to_c_int(o, type) \ - ((type)( \ - sizeof(type) == 1 ? (((type)-1) > 0 ? (type)_cffi_to_c_u8(o) \ - : (type)_cffi_to_c_i8(o)) : \ - sizeof(type) == 2 ? (((type)-1) > 0 ? (type)_cffi_to_c_u16(o) \ - : (type)_cffi_to_c_i16(o)) : \ - sizeof(type) == 4 ? (((type)-1) > 0 ? (type)_cffi_to_c_u32(o) \ - : (type)_cffi_to_c_i32(o)) : \ - sizeof(type) == 8 ? (((type)-1) > 0 ? (type)_cffi_to_c_u64(o) \ - : (type)_cffi_to_c_i64(o)) : \ - (Py_FatalError("unsupported size for type " #type), (type)0))) - -#define _cffi_to_c_i8 \ - ((int(*)(PyObject *))_cffi_exports[1]) -#define _cffi_to_c_u8 \ - ((int(*)(PyObject *))_cffi_exports[2]) -#define _cffi_to_c_i16 \ - ((int(*)(PyObject *))_cffi_exports[3]) -#define _cffi_to_c_u16 \ - ((int(*)(PyObject *))_cffi_exports[4]) -#define _cffi_to_c_i32 \ - ((int(*)(PyObject *))_cffi_exports[5]) -#define _cffi_to_c_u32 \ - ((unsigned int(*)(PyObject *))_cffi_exports[6]) -#define _cffi_to_c_i64 \ - ((long long(*)(PyObject *))_cffi_exports[7]) -#define _cffi_to_c_u64 \ - ((unsigned long long(*)(PyObject *))_cffi_exports[8]) -#define _cffi_to_c_char \ - ((int(*)(PyObject *))_cffi_exports[9]) -#define _cffi_from_c_pointer \ - ((PyObject *(*)(char *, struct _cffi_ctypedescr *))_cffi_exports[10]) -#define _cffi_to_c_pointer \ - ((char *(*)(PyObject *, struct _cffi_ctypedescr *))_cffi_exports[11]) -#define _cffi_get_struct_layout \ - not used any more -#define _cffi_restore_errno \ - ((void(*)(void))_cffi_exports[13]) -#define _cffi_save_errno \ - ((void(*)(void))_cffi_exports[14]) -#define _cffi_from_c_char \ - ((PyObject *(*)(char))_cffi_exports[15]) -#define _cffi_from_c_deref \ - ((PyObject *(*)(char *, struct _cffi_ctypedescr *))_cffi_exports[16]) -#define _cffi_to_c \ - ((int(*)(char *, struct _cffi_ctypedescr *, PyObject *))_cffi_exports[17]) -#define _cffi_from_c_struct \ - ((PyObject *(*)(char *, struct _cffi_ctypedescr *))_cffi_exports[18]) -#define _cffi_to_c_wchar_t \ - ((_cffi_wchar_t(*)(PyObject *))_cffi_exports[19]) -#define _cffi_from_c_wchar_t \ - ((PyObject *(*)(_cffi_wchar_t))_cffi_exports[20]) -#define _cffi_to_c_long_double \ - ((long double(*)(PyObject *))_cffi_exports[21]) -#define _cffi_to_c__Bool \ - ((_Bool(*)(PyObject *))_cffi_exports[22]) -#define _cffi_prepare_pointer_call_argument \ - ((Py_ssize_t(*)(struct _cffi_ctypedescr *, \ - PyObject *, char **))_cffi_exports[23]) -#define _cffi_convert_array_from_object \ - ((int(*)(char *, struct _cffi_ctypedescr *, PyObject *))_cffi_exports[24]) -#define _CFFI_CPIDX 25 -#define _cffi_call_python \ - ((void(*)(struct _cffi_externpy_s *, char *))_cffi_exports[_CFFI_CPIDX]) -#define _cffi_to_c_wchar3216_t \ - ((int(*)(PyObject *))_cffi_exports[26]) -#define _cffi_from_c_wchar3216_t \ - ((PyObject *(*)(int))_cffi_exports[27]) -#define _CFFI_NUM_EXPORTS 28 - -struct _cffi_ctypedescr; - -static void *_cffi_exports[_CFFI_NUM_EXPORTS]; - -#define _cffi_type(index) ( \ - assert((((uintptr_t)_cffi_types[index]) & 1) == 0), \ - (struct _cffi_ctypedescr *)_cffi_types[index]) - -static PyObject *_cffi_init(const char *module_name, Py_ssize_t version, - const struct _cffi_type_context_s *ctx) -{ - PyObject *module, *o_arg, *new_module; - void *raw[] = { - (void *)module_name, - (void *)version, - (void *)_cffi_exports, - (void *)ctx, - }; - - module = PyImport_ImportModule("_cffi_backend"); - if (module == NULL) - goto failure; - - o_arg = PyLong_FromVoidPtr((void *)raw); - if (o_arg == NULL) - goto failure; - - new_module = PyObject_CallMethod( - module, (char *)"_init_cffi_1_0_external_module", (char *)"O", o_arg); - - Py_DECREF(o_arg); - Py_DECREF(module); - return new_module; - - failure: - Py_XDECREF(module); - return NULL; -} - - -#ifdef HAVE_WCHAR_H -typedef wchar_t _cffi_wchar_t; -#else -typedef uint16_t _cffi_wchar_t; /* same random pick as _cffi_backend.c */ -#endif - -_CFFI_UNUSED_FN static uint16_t _cffi_to_c_char16_t(PyObject *o) -{ - if (sizeof(_cffi_wchar_t) == 2) - return (uint16_t)_cffi_to_c_wchar_t(o); - else - return (uint16_t)_cffi_to_c_wchar3216_t(o); -} - -_CFFI_UNUSED_FN static PyObject *_cffi_from_c_char16_t(uint16_t x) -{ - if (sizeof(_cffi_wchar_t) == 2) - return _cffi_from_c_wchar_t((_cffi_wchar_t)x); - else - return _cffi_from_c_wchar3216_t((int)x); -} - -_CFFI_UNUSED_FN static int _cffi_to_c_char32_t(PyObject *o) -{ - if (sizeof(_cffi_wchar_t) == 4) - return (int)_cffi_to_c_wchar_t(o); - else - return (int)_cffi_to_c_wchar3216_t(o); -} - -_CFFI_UNUSED_FN static PyObject *_cffi_from_c_char32_t(unsigned int x) -{ - if (sizeof(_cffi_wchar_t) == 4) - return _cffi_from_c_wchar_t((_cffi_wchar_t)x); - else - return _cffi_from_c_wchar3216_t((int)x); -} - -union _cffi_union_alignment_u { - unsigned char m_char; - unsigned short m_short; - unsigned int m_int; - unsigned long m_long; - unsigned long long m_longlong; - float m_float; - double m_double; - long double m_longdouble; -}; - -struct _cffi_freeme_s { - struct _cffi_freeme_s *next; - union _cffi_union_alignment_u alignment; -}; - -_CFFI_UNUSED_FN static int -_cffi_convert_array_argument(struct _cffi_ctypedescr *ctptr, PyObject *arg, - char **output_data, Py_ssize_t datasize, - struct _cffi_freeme_s **freeme) -{ - char *p; - if (datasize < 0) - return -1; - - p = *output_data; - if (p == NULL) { - struct _cffi_freeme_s *fp = (struct _cffi_freeme_s *)PyObject_Malloc( - offsetof(struct _cffi_freeme_s, alignment) + (size_t)datasize); - if (fp == NULL) - return -1; - fp->next = *freeme; - *freeme = fp; - p = *output_data = (char *)&fp->alignment; - } - memset((void *)p, 0, (size_t)datasize); - return _cffi_convert_array_from_object(p, ctptr, arg); -} - -_CFFI_UNUSED_FN static void -_cffi_free_array_arguments(struct _cffi_freeme_s *freeme) -{ - do { - void *p = (void *)freeme; - freeme = freeme->next; - PyObject_Free(p); - } while (freeme != NULL); -} - -/********** end CPython-specific section **********/ -#else -_CFFI_UNUSED_FN -static void (*_cffi_call_python_org)(struct _cffi_externpy_s *, char *); -# define _cffi_call_python _cffi_call_python_org -#endif - - -#define _cffi_array_len(array) (sizeof(array) / sizeof((array)[0])) - -#define _cffi_prim_int(size, sign) \ - ((size) == 1 ? ((sign) ? _CFFI_PRIM_INT8 : _CFFI_PRIM_UINT8) : \ - (size) == 2 ? ((sign) ? _CFFI_PRIM_INT16 : _CFFI_PRIM_UINT16) : \ - (size) == 4 ? ((sign) ? _CFFI_PRIM_INT32 : _CFFI_PRIM_UINT32) : \ - (size) == 8 ? ((sign) ? _CFFI_PRIM_INT64 : _CFFI_PRIM_UINT64) : \ - _CFFI__UNKNOWN_PRIM) - -#define _cffi_prim_float(size) \ - ((size) == sizeof(float) ? _CFFI_PRIM_FLOAT : \ - (size) == sizeof(double) ? _CFFI_PRIM_DOUBLE : \ - (size) == sizeof(long double) ? _CFFI__UNKNOWN_LONG_DOUBLE : \ - _CFFI__UNKNOWN_FLOAT_PRIM) - -#define _cffi_check_int(got, got_nonpos, expected) \ - ((got_nonpos) == (expected <= 0) && \ - (got) == (unsigned long long)expected) - -#ifdef MS_WIN32 -# define _cffi_stdcall __stdcall -#else -# define _cffi_stdcall /* nothing */ -#endif - -#ifdef __cplusplus -} -#endif diff --git a/.venv/lib/python3.9/site-packages/cffi/_embedding.h b/.venv/lib/python3.9/site-packages/cffi/_embedding.h deleted file mode 100644 index 64c04f6..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/_embedding.h +++ /dev/null @@ -1,550 +0,0 @@ - -/***** Support code for embedding *****/ - -#ifdef __cplusplus -extern "C" { -#endif - - -#if defined(_WIN32) -# define CFFI_DLLEXPORT __declspec(dllexport) -#elif defined(__GNUC__) -# define CFFI_DLLEXPORT __attribute__((visibility("default"))) -#else -# define CFFI_DLLEXPORT /* nothing */ -#endif - - -/* There are two global variables of type _cffi_call_python_fnptr: - - * _cffi_call_python, which we declare just below, is the one called - by ``extern "Python"`` implementations. - - * _cffi_call_python_org, which on CPython is actually part of the - _cffi_exports[] array, is the function pointer copied from - _cffi_backend. If _cffi_start_python() fails, then this is set - to NULL; otherwise, it should never be NULL. - - After initialization is complete, both are equal. However, the - first one remains equal to &_cffi_start_and_call_python until the - very end of initialization, when we are (or should be) sure that - concurrent threads also see a completely initialized world, and - only then is it changed. -*/ -#undef _cffi_call_python -typedef void (*_cffi_call_python_fnptr)(struct _cffi_externpy_s *, char *); -static void _cffi_start_and_call_python(struct _cffi_externpy_s *, char *); -static _cffi_call_python_fnptr _cffi_call_python = &_cffi_start_and_call_python; - - -#ifndef _MSC_VER - /* --- Assuming a GCC not infinitely old --- */ -# define cffi_compare_and_swap(l,o,n) __sync_bool_compare_and_swap(l,o,n) -# define cffi_write_barrier() __sync_synchronize() -# if !defined(__amd64__) && !defined(__x86_64__) && \ - !defined(__i386__) && !defined(__i386) -# define cffi_read_barrier() __sync_synchronize() -# else -# define cffi_read_barrier() (void)0 -# endif -#else - /* --- Windows threads version --- */ -# include -# define cffi_compare_and_swap(l,o,n) \ - (InterlockedCompareExchangePointer(l,n,o) == (o)) -# define cffi_write_barrier() InterlockedCompareExchange(&_cffi_dummy,0,0) -# define cffi_read_barrier() (void)0 -static volatile LONG _cffi_dummy; -#endif - -#ifdef WITH_THREAD -# ifndef _MSC_VER -# include - static pthread_mutex_t _cffi_embed_startup_lock; -# else - static CRITICAL_SECTION _cffi_embed_startup_lock; -# endif - static char _cffi_embed_startup_lock_ready = 0; -#endif - -static void _cffi_acquire_reentrant_mutex(void) -{ - static void *volatile lock = NULL; - - while (!cffi_compare_and_swap(&lock, NULL, (void *)1)) { - /* should ideally do a spin loop instruction here, but - hard to do it portably and doesn't really matter I - think: pthread_mutex_init() should be very fast, and - this is only run at start-up anyway. */ - } - -#ifdef WITH_THREAD - if (!_cffi_embed_startup_lock_ready) { -# ifndef _MSC_VER - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - pthread_mutex_init(&_cffi_embed_startup_lock, &attr); -# else - InitializeCriticalSection(&_cffi_embed_startup_lock); -# endif - _cffi_embed_startup_lock_ready = 1; - } -#endif - - while (!cffi_compare_and_swap(&lock, (void *)1, NULL)) - ; - -#ifndef _MSC_VER - pthread_mutex_lock(&_cffi_embed_startup_lock); -#else - EnterCriticalSection(&_cffi_embed_startup_lock); -#endif -} - -static void _cffi_release_reentrant_mutex(void) -{ -#ifndef _MSC_VER - pthread_mutex_unlock(&_cffi_embed_startup_lock); -#else - LeaveCriticalSection(&_cffi_embed_startup_lock); -#endif -} - - -/********** CPython-specific section **********/ -#ifndef PYPY_VERSION - -#include "_cffi_errors.h" - - -#define _cffi_call_python_org _cffi_exports[_CFFI_CPIDX] - -PyMODINIT_FUNC _CFFI_PYTHON_STARTUP_FUNC(void); /* forward */ - -static void _cffi_py_initialize(void) -{ - /* XXX use initsigs=0, which "skips initialization registration of - signal handlers, which might be useful when Python is - embedded" according to the Python docs. But review and think - if it should be a user-controllable setting. - - XXX we should also give a way to write errors to a buffer - instead of to stderr. - - XXX if importing 'site' fails, CPython (any version) calls - exit(). Should we try to work around this behavior here? - */ - Py_InitializeEx(0); -} - -static int _cffi_initialize_python(void) -{ - /* This initializes Python, imports _cffi_backend, and then the - present .dll/.so is set up as a CPython C extension module. - */ - int result; - PyGILState_STATE state; - PyObject *pycode=NULL, *global_dict=NULL, *x; - PyObject *builtins; - - state = PyGILState_Ensure(); - - /* Call the initxxx() function from the present module. It will - create and initialize us as a CPython extension module, instead - of letting the startup Python code do it---it might reimport - the same .dll/.so and get maybe confused on some platforms. - It might also have troubles locating the .dll/.so again for all - I know. - */ - (void)_CFFI_PYTHON_STARTUP_FUNC(); - if (PyErr_Occurred()) - goto error; - - /* Now run the Python code provided to ffi.embedding_init_code(). - */ - pycode = Py_CompileString(_CFFI_PYTHON_STARTUP_CODE, - "", - Py_file_input); - if (pycode == NULL) - goto error; - global_dict = PyDict_New(); - if (global_dict == NULL) - goto error; - builtins = PyEval_GetBuiltins(); - if (builtins == NULL) - goto error; - if (PyDict_SetItemString(global_dict, "__builtins__", builtins) < 0) - goto error; - x = PyEval_EvalCode( -#if PY_MAJOR_VERSION < 3 - (PyCodeObject *) -#endif - pycode, global_dict, global_dict); - if (x == NULL) - goto error; - Py_DECREF(x); - - /* Done! Now if we've been called from - _cffi_start_and_call_python() in an ``extern "Python"``, we can - only hope that the Python code did correctly set up the - corresponding @ffi.def_extern() function. Otherwise, the - general logic of ``extern "Python"`` functions (inside the - _cffi_backend module) will find that the reference is still - missing and print an error. - */ - result = 0; - done: - Py_XDECREF(pycode); - Py_XDECREF(global_dict); - PyGILState_Release(state); - return result; - - error:; - { - /* Print as much information as potentially useful. - Debugging load-time failures with embedding is not fun - */ - PyObject *ecap; - PyObject *exception, *v, *tb, *f, *modules, *mod; - PyErr_Fetch(&exception, &v, &tb); - ecap = _cffi_start_error_capture(); - f = PySys_GetObject((char *)"stderr"); - if (f != NULL && f != Py_None) { - PyFile_WriteString( - "Failed to initialize the Python-CFFI embedding logic:\n\n", f); - } - - if (exception != NULL) { - PyErr_NormalizeException(&exception, &v, &tb); - PyErr_Display(exception, v, tb); - } - Py_XDECREF(exception); - Py_XDECREF(v); - Py_XDECREF(tb); - - if (f != NULL && f != Py_None) { - PyFile_WriteString("\nFrom: " _CFFI_MODULE_NAME - "\ncompiled with cffi version: 2.0.0" - "\n_cffi_backend module: ", f); - modules = PyImport_GetModuleDict(); - mod = PyDict_GetItemString(modules, "_cffi_backend"); - if (mod == NULL) { - PyFile_WriteString("not loaded", f); - } - else { - v = PyObject_GetAttrString(mod, "__file__"); - PyFile_WriteObject(v, f, 0); - Py_XDECREF(v); - } - PyFile_WriteString("\nsys.path: ", f); - PyFile_WriteObject(PySys_GetObject((char *)"path"), f, 0); - PyFile_WriteString("\n\n", f); - } - _cffi_stop_error_capture(ecap); - } - result = -1; - goto done; -} - -#if PY_VERSION_HEX < 0x03080000 -PyAPI_DATA(char *) _PyParser_TokenNames[]; /* from CPython */ -#endif - -static int _cffi_carefully_make_gil(void) -{ - /* This does the basic initialization of Python. It can be called - completely concurrently from unrelated threads. It assumes - that we don't hold the GIL before (if it exists), and we don't - hold it afterwards. - - (What it really does used to be completely different in Python 2 - and Python 3, with the Python 2 solution avoiding the spin-lock - around the Py_InitializeEx() call. However, after recent changes - to CPython 2.7 (issue #358) it no longer works. So we use the - Python 3 solution everywhere.) - - This initializes Python by calling Py_InitializeEx(). - Important: this must not be called concurrently at all. - So we use a global variable as a simple spin lock. This global - variable must be from 'libpythonX.Y.so', not from this - cffi-based extension module, because it must be shared from - different cffi-based extension modules. - - In Python < 3.8, we choose - _PyParser_TokenNames[0] as a completely arbitrary pointer value - that is never written to. The default is to point to the - string "ENDMARKER". We change it temporarily to point to the - next character in that string. (Yes, I know it's REALLY - obscure.) - - In Python >= 3.8, this string array is no longer writable, so - instead we pick PyCapsuleType.tp_version_tag. We can't change - Python < 3.8 because someone might use a mixture of cffi - embedded modules, some of which were compiled before this file - changed. - - In Python >= 3.12, this stopped working because that particular - tp_version_tag gets modified during interpreter startup. It's - arguably a bad idea before 3.12 too, but again we can't change - that because someone might use a mixture of cffi embedded - modules, and no-one reported a bug so far. In Python >= 3.12 - we go instead for PyCapsuleType.tp_as_buffer, which is supposed - to always be NULL. We write to it temporarily a pointer to - a struct full of NULLs, which is semantically the same. - */ - -#ifdef WITH_THREAD -# if PY_VERSION_HEX < 0x03080000 - char *volatile *lock = (char *volatile *)_PyParser_TokenNames; - char *old_value, *locked_value; - - while (1) { /* spin loop */ - old_value = *lock; - locked_value = old_value + 1; - if (old_value[0] == 'E') { - assert(old_value[1] == 'N'); - if (cffi_compare_and_swap(lock, old_value, locked_value)) - break; - } - else { - assert(old_value[0] == 'N'); - /* should ideally do a spin loop instruction here, but - hard to do it portably and doesn't really matter I - think: PyEval_InitThreads() should be very fast, and - this is only run at start-up anyway. */ - } - } -# else -# if PY_VERSION_HEX < 0x030C0000 - int volatile *lock = (int volatile *)&PyCapsule_Type.tp_version_tag; - int old_value, locked_value = -42; - assert(!(PyCapsule_Type.tp_flags & Py_TPFLAGS_HAVE_VERSION_TAG)); -# else - static struct ebp_s { PyBufferProcs buf; int mark; } empty_buffer_procs; - empty_buffer_procs.mark = -42; - PyBufferProcs *volatile *lock = (PyBufferProcs *volatile *) - &PyCapsule_Type.tp_as_buffer; - PyBufferProcs *old_value, *locked_value = &empty_buffer_procs.buf; -# endif - - while (1) { /* spin loop */ - old_value = *lock; - if (old_value == 0) { - if (cffi_compare_and_swap(lock, old_value, locked_value)) - break; - } - else { -# if PY_VERSION_HEX < 0x030C0000 - assert(old_value == locked_value); -# else - /* The pointer should point to a possibly different - empty_buffer_procs from another C extension module */ - assert(((struct ebp_s *)old_value)->mark == -42); -# endif - /* should ideally do a spin loop instruction here, but - hard to do it portably and doesn't really matter I - think: PyEval_InitThreads() should be very fast, and - this is only run at start-up anyway. */ - } - } -# endif -#endif - - /* call Py_InitializeEx() */ - if (!Py_IsInitialized()) { - _cffi_py_initialize(); -#if PY_VERSION_HEX < 0x03070000 - PyEval_InitThreads(); -#endif - PyEval_SaveThread(); /* release the GIL */ - /* the returned tstate must be the one that has been stored into the - autoTLSkey by _PyGILState_Init() called from Py_Initialize(). */ - } - else { -#if PY_VERSION_HEX < 0x03070000 - /* PyEval_InitThreads() is always a no-op from CPython 3.7 */ - PyGILState_STATE state = PyGILState_Ensure(); - PyEval_InitThreads(); - PyGILState_Release(state); -#endif - } - -#ifdef WITH_THREAD - /* release the lock */ - while (!cffi_compare_and_swap(lock, locked_value, old_value)) - ; -#endif - - return 0; -} - -/********** end CPython-specific section **********/ - - -#else - - -/********** PyPy-specific section **********/ - -PyMODINIT_FUNC _CFFI_PYTHON_STARTUP_FUNC(const void *[]); /* forward */ - -static struct _cffi_pypy_init_s { - const char *name; - void *func; /* function pointer */ - const char *code; -} _cffi_pypy_init = { - _CFFI_MODULE_NAME, - _CFFI_PYTHON_STARTUP_FUNC, - _CFFI_PYTHON_STARTUP_CODE, -}; - -extern int pypy_carefully_make_gil(const char *); -extern int pypy_init_embedded_cffi_module(int, struct _cffi_pypy_init_s *); - -static int _cffi_carefully_make_gil(void) -{ - return pypy_carefully_make_gil(_CFFI_MODULE_NAME); -} - -static int _cffi_initialize_python(void) -{ - return pypy_init_embedded_cffi_module(0xB011, &_cffi_pypy_init); -} - -/********** end PyPy-specific section **********/ - - -#endif - - -#ifdef __GNUC__ -__attribute__((noinline)) -#endif -static _cffi_call_python_fnptr _cffi_start_python(void) -{ - /* Delicate logic to initialize Python. This function can be - called multiple times concurrently, e.g. when the process calls - its first ``extern "Python"`` functions in multiple threads at - once. It can also be called recursively, in which case we must - ignore it. We also have to consider what occurs if several - different cffi-based extensions reach this code in parallel - threads---it is a different copy of the code, then, and we - can't have any shared global variable unless it comes from - 'libpythonX.Y.so'. - - Idea: - - * _cffi_carefully_make_gil(): "carefully" call - PyEval_InitThreads() (possibly with Py_InitializeEx() first). - - * then we use a (local) custom lock to make sure that a call to this - cffi-based extension will wait if another call to the *same* - extension is running the initialization in another thread. - It is reentrant, so that a recursive call will not block, but - only one from a different thread. - - * then we grab the GIL and (Python 2) we call Py_InitializeEx(). - At this point, concurrent calls to Py_InitializeEx() are not - possible: we have the GIL. - - * do the rest of the specific initialization, which may - temporarily release the GIL but not the custom lock. - Only release the custom lock when we are done. - */ - static char called = 0; - - if (_cffi_carefully_make_gil() != 0) - return NULL; - - _cffi_acquire_reentrant_mutex(); - - /* Here the GIL exists, but we don't have it. We're only protected - from concurrency by the reentrant mutex. */ - - /* This file only initializes the embedded module once, the first - time this is called, even if there are subinterpreters. */ - if (!called) { - called = 1; /* invoke _cffi_initialize_python() only once, - but don't set '_cffi_call_python' right now, - otherwise concurrent threads won't call - this function at all (we need them to wait) */ - if (_cffi_initialize_python() == 0) { - /* now initialization is finished. Switch to the fast-path. */ - - /* We would like nobody to see the new value of - '_cffi_call_python' without also seeing the rest of the - data initialized. However, this is not possible. But - the new value of '_cffi_call_python' is the function - 'cffi_call_python()' from _cffi_backend. So: */ - cffi_write_barrier(); - /* ^^^ we put a write barrier here, and a corresponding - read barrier at the start of cffi_call_python(). This - ensures that after that read barrier, we see everything - done here before the write barrier. - */ - - assert(_cffi_call_python_org != NULL); - _cffi_call_python = (_cffi_call_python_fnptr)_cffi_call_python_org; - } - else { - /* initialization failed. Reset this to NULL, even if it was - already set to some other value. Future calls to - _cffi_start_python() are still forced to occur, and will - always return NULL from now on. */ - _cffi_call_python_org = NULL; - } - } - - _cffi_release_reentrant_mutex(); - - return (_cffi_call_python_fnptr)_cffi_call_python_org; -} - -static -void _cffi_start_and_call_python(struct _cffi_externpy_s *externpy, char *args) -{ - _cffi_call_python_fnptr fnptr; - int current_err = errno; -#ifdef _MSC_VER - int current_lasterr = GetLastError(); -#endif - fnptr = _cffi_start_python(); - if (fnptr == NULL) { - fprintf(stderr, "function %s() called, but initialization code " - "failed. Returning 0.\n", externpy->name); - memset(args, 0, externpy->size_of_result); - } -#ifdef _MSC_VER - SetLastError(current_lasterr); -#endif - errno = current_err; - - if (fnptr != NULL) - fnptr(externpy, args); -} - - -/* The cffi_start_python() function makes sure Python is initialized - and our cffi module is set up. It can be called manually from the - user C code. The same effect is obtained automatically from any - dll-exported ``extern "Python"`` function. This function returns - -1 if initialization failed, 0 if all is OK. */ -_CFFI_UNUSED_FN -static int cffi_start_python(void) -{ - if (_cffi_call_python == &_cffi_start_and_call_python) { - if (_cffi_start_python() == NULL) - return -1; - } - cffi_read_barrier(); - return 0; -} - -#undef cffi_compare_and_swap -#undef cffi_write_barrier -#undef cffi_read_barrier - -#ifdef __cplusplus -} -#endif diff --git a/.venv/lib/python3.9/site-packages/cffi/_imp_emulation.py b/.venv/lib/python3.9/site-packages/cffi/_imp_emulation.py deleted file mode 100644 index 136abdd..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/_imp_emulation.py +++ /dev/null @@ -1,83 +0,0 @@ - -try: - # this works on Python < 3.12 - from imp import * - -except ImportError: - # this is a limited emulation for Python >= 3.12. - # Note that this is used only for tests or for the old ffi.verify(). - # This is copied from the source code of Python 3.11. - - from _imp import (acquire_lock, release_lock, - is_builtin, is_frozen) - - from importlib._bootstrap import _load - - from importlib import machinery - import os - import sys - import tokenize - - SEARCH_ERROR = 0 - PY_SOURCE = 1 - PY_COMPILED = 2 - C_EXTENSION = 3 - PY_RESOURCE = 4 - PKG_DIRECTORY = 5 - C_BUILTIN = 6 - PY_FROZEN = 7 - PY_CODERESOURCE = 8 - IMP_HOOK = 9 - - def get_suffixes(): - extensions = [(s, 'rb', C_EXTENSION) - for s in machinery.EXTENSION_SUFFIXES] - source = [(s, 'r', PY_SOURCE) for s in machinery.SOURCE_SUFFIXES] - bytecode = [(s, 'rb', PY_COMPILED) for s in machinery.BYTECODE_SUFFIXES] - return extensions + source + bytecode - - def find_module(name, path=None): - if not isinstance(name, str): - raise TypeError("'name' must be a str, not {}".format(type(name))) - elif not isinstance(path, (type(None), list)): - # Backwards-compatibility - raise RuntimeError("'path' must be None or a list, " - "not {}".format(type(path))) - - if path is None: - if is_builtin(name): - return None, None, ('', '', C_BUILTIN) - elif is_frozen(name): - return None, None, ('', '', PY_FROZEN) - else: - path = sys.path - - for entry in path: - package_directory = os.path.join(entry, name) - for suffix in ['.py', machinery.BYTECODE_SUFFIXES[0]]: - package_file_name = '__init__' + suffix - file_path = os.path.join(package_directory, package_file_name) - if os.path.isfile(file_path): - return None, package_directory, ('', '', PKG_DIRECTORY) - for suffix, mode, type_ in get_suffixes(): - file_name = name + suffix - file_path = os.path.join(entry, file_name) - if os.path.isfile(file_path): - break - else: - continue - break # Break out of outer loop when breaking out of inner loop. - else: - raise ImportError(name, name=name) - - encoding = None - if 'b' not in mode: - with open(file_path, 'rb') as file: - encoding = tokenize.detect_encoding(file.readline)[0] - file = open(file_path, mode, encoding=encoding) - return file, file_path, (suffix, mode, type_) - - def load_dynamic(name, path, file=None): - loader = machinery.ExtensionFileLoader(name, path) - spec = machinery.ModuleSpec(name=name, loader=loader, origin=path) - return _load(spec) diff --git a/.venv/lib/python3.9/site-packages/cffi/_shimmed_dist_utils.py b/.venv/lib/python3.9/site-packages/cffi/_shimmed_dist_utils.py deleted file mode 100644 index c3d2312..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/_shimmed_dist_utils.py +++ /dev/null @@ -1,45 +0,0 @@ -""" -Temporary shim module to indirect the bits of distutils we need from setuptools/distutils while providing useful -error messages beyond `No module named 'distutils' on Python >= 3.12, or when setuptools' vendored distutils is broken. - -This is a compromise to avoid a hard-dep on setuptools for Python >= 3.12, since many users don't need runtime compilation support from CFFI. -""" -import sys - -try: - # import setuptools first; this is the most robust way to ensure its embedded distutils is available - # (the .pth shim should usually work, but this is even more robust) - import setuptools -except Exception as ex: - if sys.version_info >= (3, 12): - # Python 3.12 has no built-in distutils to fall back on, so any import problem is fatal - raise Exception("This CFFI feature requires setuptools on Python >= 3.12. The setuptools module is missing or non-functional.") from ex - - # silently ignore on older Pythons (support fallback to stdlib distutils where available) -else: - del setuptools - -try: - # bring in just the bits of distutils we need, whether they really came from setuptools or stdlib-embedded distutils - from distutils import log, sysconfig - from distutils.ccompiler import CCompiler - from distutils.command.build_ext import build_ext - from distutils.core import Distribution, Extension - from distutils.dir_util import mkpath - from distutils.errors import DistutilsSetupError, CompileError, LinkError - from distutils.log import set_threshold, set_verbosity - - if sys.platform == 'win32': - try: - # FUTURE: msvc9compiler module was removed in setuptools 74; consider removing, as it's only used by an ancient patch in `recompiler` - from distutils.msvc9compiler import MSVCCompiler - except ImportError: - MSVCCompiler = None -except Exception as ex: - if sys.version_info >= (3, 12): - raise Exception("This CFFI feature requires setuptools on Python >= 3.12. Please install the setuptools package.") from ex - - # anything older, just let the underlying distutils import error fly - raise Exception("This CFFI feature requires distutils. Please install the distutils or setuptools package.") from ex - -del sys diff --git a/.venv/lib/python3.9/site-packages/cffi/api.py b/.venv/lib/python3.9/site-packages/cffi/api.py deleted file mode 100644 index 5a474f3..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/api.py +++ /dev/null @@ -1,967 +0,0 @@ -import sys, types -from .lock import allocate_lock -from .error import CDefError -from . import model - -try: - callable -except NameError: - # Python 3.1 - from collections import Callable - callable = lambda x: isinstance(x, Callable) - -try: - basestring -except NameError: - # Python 3.x - basestring = str - -_unspecified = object() - - - -class FFI(object): - r''' - The main top-level class that you instantiate once, or once per module. - - Example usage: - - ffi = FFI() - ffi.cdef(""" - int printf(const char *, ...); - """) - - C = ffi.dlopen(None) # standard library - -or- - C = ffi.verify() # use a C compiler: verify the decl above is right - - C.printf("hello, %s!\n", ffi.new("char[]", "world")) - ''' - - def __init__(self, backend=None): - """Create an FFI instance. The 'backend' argument is used to - select a non-default backend, mostly for tests. - """ - if backend is None: - # You need PyPy (>= 2.0 beta), or a CPython (>= 2.6) with - # _cffi_backend.so compiled. - import _cffi_backend as backend - from . import __version__ - if backend.__version__ != __version__: - # bad version! Try to be as explicit as possible. - if hasattr(backend, '__file__'): - # CPython - raise Exception("Version mismatch: this is the 'cffi' package version %s, located in %r. When we import the top-level '_cffi_backend' extension module, we get version %s, located in %r. The two versions should be equal; check your installation." % ( - __version__, __file__, - backend.__version__, backend.__file__)) - else: - # PyPy - raise Exception("Version mismatch: this is the 'cffi' package version %s, located in %r. This interpreter comes with a built-in '_cffi_backend' module, which is version %s. The two versions should be equal; check your installation." % ( - __version__, __file__, backend.__version__)) - # (If you insist you can also try to pass the option - # 'backend=backend_ctypes.CTypesBackend()', but don't - # rely on it! It's probably not going to work well.) - - from . import cparser - self._backend = backend - self._lock = allocate_lock() - self._parser = cparser.Parser() - self._cached_btypes = {} - self._parsed_types = types.ModuleType('parsed_types').__dict__ - self._new_types = types.ModuleType('new_types').__dict__ - self._function_caches = [] - self._libraries = [] - self._cdefsources = [] - self._included_ffis = [] - self._windows_unicode = None - self._init_once_cache = {} - self._cdef_version = None - self._embedding = None - self._typecache = model.get_typecache(backend) - if hasattr(backend, 'set_ffi'): - backend.set_ffi(self) - for name in list(backend.__dict__): - if name.startswith('RTLD_'): - setattr(self, name, getattr(backend, name)) - # - with self._lock: - self.BVoidP = self._get_cached_btype(model.voidp_type) - self.BCharA = self._get_cached_btype(model.char_array_type) - if isinstance(backend, types.ModuleType): - # _cffi_backend: attach these constants to the class - if not hasattr(FFI, 'NULL'): - FFI.NULL = self.cast(self.BVoidP, 0) - FFI.CData, FFI.CType = backend._get_types() - else: - # ctypes backend: attach these constants to the instance - self.NULL = self.cast(self.BVoidP, 0) - self.CData, self.CType = backend._get_types() - self.buffer = backend.buffer - - def cdef(self, csource, override=False, packed=False, pack=None): - """Parse the given C source. This registers all declared functions, - types, and global variables. The functions and global variables can - then be accessed via either 'ffi.dlopen()' or 'ffi.verify()'. - The types can be used in 'ffi.new()' and other functions. - If 'packed' is specified as True, all structs declared inside this - cdef are packed, i.e. laid out without any field alignment at all. - Alternatively, 'pack' can be a small integer, and requests for - alignment greater than that are ignored (pack=1 is equivalent to - packed=True). - """ - self._cdef(csource, override=override, packed=packed, pack=pack) - - def embedding_api(self, csource, packed=False, pack=None): - self._cdef(csource, packed=packed, pack=pack, dllexport=True) - if self._embedding is None: - self._embedding = '' - - def _cdef(self, csource, override=False, **options): - if not isinstance(csource, str): # unicode, on Python 2 - if not isinstance(csource, basestring): - raise TypeError("cdef() argument must be a string") - csource = csource.encode('ascii') - with self._lock: - self._cdef_version = object() - self._parser.parse(csource, override=override, **options) - self._cdefsources.append(csource) - if override: - for cache in self._function_caches: - cache.clear() - finishlist = self._parser._recomplete - if finishlist: - self._parser._recomplete = [] - for tp in finishlist: - tp.finish_backend_type(self, finishlist) - - def dlopen(self, name, flags=0): - """Load and return a dynamic library identified by 'name'. - The standard C library can be loaded by passing None. - Note that functions and types declared by 'ffi.cdef()' are not - linked to a particular library, just like C headers; in the - library we only look for the actual (untyped) symbols. - """ - if not (isinstance(name, basestring) or - name is None or - isinstance(name, self.CData)): - raise TypeError("dlopen(name): name must be a file name, None, " - "or an already-opened 'void *' handle") - with self._lock: - lib, function_cache = _make_ffi_library(self, name, flags) - self._function_caches.append(function_cache) - self._libraries.append(lib) - return lib - - def dlclose(self, lib): - """Close a library obtained with ffi.dlopen(). After this call, - access to functions or variables from the library will fail - (possibly with a segmentation fault). - """ - type(lib).__cffi_close__(lib) - - def _typeof_locked(self, cdecl): - # call me with the lock! - key = cdecl - if key in self._parsed_types: - return self._parsed_types[key] - # - if not isinstance(cdecl, str): # unicode, on Python 2 - cdecl = cdecl.encode('ascii') - # - type = self._parser.parse_type(cdecl) - really_a_function_type = type.is_raw_function - if really_a_function_type: - type = type.as_function_pointer() - btype = self._get_cached_btype(type) - result = btype, really_a_function_type - self._parsed_types[key] = result - return result - - def _typeof(self, cdecl, consider_function_as_funcptr=False): - # string -> ctype object - try: - result = self._parsed_types[cdecl] - except KeyError: - with self._lock: - result = self._typeof_locked(cdecl) - # - btype, really_a_function_type = result - if really_a_function_type and not consider_function_as_funcptr: - raise CDefError("the type %r is a function type, not a " - "pointer-to-function type" % (cdecl,)) - return btype - - def typeof(self, cdecl): - """Parse the C type given as a string and return the - corresponding object. - It can also be used on 'cdata' instance to get its C type. - """ - if isinstance(cdecl, basestring): - return self._typeof(cdecl) - if isinstance(cdecl, self.CData): - return self._backend.typeof(cdecl) - if isinstance(cdecl, types.BuiltinFunctionType): - res = _builtin_function_type(cdecl) - if res is not None: - return res - if (isinstance(cdecl, types.FunctionType) - and hasattr(cdecl, '_cffi_base_type')): - with self._lock: - return self._get_cached_btype(cdecl._cffi_base_type) - raise TypeError(type(cdecl)) - - def sizeof(self, cdecl): - """Return the size in bytes of the argument. It can be a - string naming a C type, or a 'cdata' instance. - """ - if isinstance(cdecl, basestring): - BType = self._typeof(cdecl) - return self._backend.sizeof(BType) - else: - return self._backend.sizeof(cdecl) - - def alignof(self, cdecl): - """Return the natural alignment size in bytes of the C type - given as a string. - """ - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return self._backend.alignof(cdecl) - - def offsetof(self, cdecl, *fields_or_indexes): - """Return the offset of the named field inside the given - structure or array, which must be given as a C type name. - You can give several field names in case of nested structures. - You can also give numeric values which correspond to array - items, in case of an array type. - """ - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return self._typeoffsetof(cdecl, *fields_or_indexes)[1] - - def new(self, cdecl, init=None): - """Allocate an instance according to the specified C type and - return a pointer to it. The specified C type must be either a - pointer or an array: ``new('X *')`` allocates an X and returns - a pointer to it, whereas ``new('X[n]')`` allocates an array of - n X'es and returns an array referencing it (which works - mostly like a pointer, like in C). You can also use - ``new('X[]', n)`` to allocate an array of a non-constant - length n. - - The memory is initialized following the rules of declaring a - global variable in C: by default it is zero-initialized, but - an explicit initializer can be given which can be used to - fill all or part of the memory. - - When the returned object goes out of scope, the memory - is freed. In other words the returned object has - ownership of the value of type 'cdecl' that it points to. This - means that the raw data can be used as long as this object is - kept alive, but must not be used for a longer time. Be careful - about that when copying the pointer to the memory somewhere - else, e.g. into another structure. - """ - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return self._backend.newp(cdecl, init) - - def new_allocator(self, alloc=None, free=None, - should_clear_after_alloc=True): - """Return a new allocator, i.e. a function that behaves like ffi.new() - but uses the provided low-level 'alloc' and 'free' functions. - - 'alloc' is called with the size as argument. If it returns NULL, a - MemoryError is raised. 'free' is called with the result of 'alloc' - as argument. Both can be either Python function or directly C - functions. If 'free' is None, then no free function is called. - If both 'alloc' and 'free' are None, the default is used. - - If 'should_clear_after_alloc' is set to False, then the memory - returned by 'alloc' is assumed to be already cleared (or you are - fine with garbage); otherwise CFFI will clear it. - """ - compiled_ffi = self._backend.FFI() - allocator = compiled_ffi.new_allocator(alloc, free, - should_clear_after_alloc) - def allocate(cdecl, init=None): - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return allocator(cdecl, init) - return allocate - - def cast(self, cdecl, source): - """Similar to a C cast: returns an instance of the named C - type initialized with the given 'source'. The source is - casted between integers or pointers of any type. - """ - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return self._backend.cast(cdecl, source) - - def string(self, cdata, maxlen=-1): - """Return a Python string (or unicode string) from the 'cdata'. - If 'cdata' is a pointer or array of characters or bytes, returns - the null-terminated string. The returned string extends until - the first null character, or at most 'maxlen' characters. If - 'cdata' is an array then 'maxlen' defaults to its length. - - If 'cdata' is a pointer or array of wchar_t, returns a unicode - string following the same rules. - - If 'cdata' is a single character or byte or a wchar_t, returns - it as a string or unicode string. - - If 'cdata' is an enum, returns the value of the enumerator as a - string, or 'NUMBER' if the value is out of range. - """ - return self._backend.string(cdata, maxlen) - - def unpack(self, cdata, length): - """Unpack an array of C data of the given length, - returning a Python string/unicode/list. - - If 'cdata' is a pointer to 'char', returns a byte string. - It does not stop at the first null. This is equivalent to: - ffi.buffer(cdata, length)[:] - - If 'cdata' is a pointer to 'wchar_t', returns a unicode string. - 'length' is measured in wchar_t's; it is not the size in bytes. - - If 'cdata' is a pointer to anything else, returns a list of - 'length' items. This is a faster equivalent to: - [cdata[i] for i in range(length)] - """ - return self._backend.unpack(cdata, length) - - #def buffer(self, cdata, size=-1): - # """Return a read-write buffer object that references the raw C data - # pointed to by the given 'cdata'. The 'cdata' must be a pointer or - # an array. Can be passed to functions expecting a buffer, or directly - # manipulated with: - # - # buf[:] get a copy of it in a regular string, or - # buf[idx] as a single character - # buf[:] = ... - # buf[idx] = ... change the content - # """ - # note that 'buffer' is a type, set on this instance by __init__ - - def from_buffer(self, cdecl, python_buffer=_unspecified, - require_writable=False): - """Return a cdata of the given type pointing to the data of the - given Python object, which must support the buffer interface. - Note that this is not meant to be used on the built-in types - str or unicode (you can build 'char[]' arrays explicitly) - but only on objects containing large quantities of raw data - in some other format, like 'array.array' or numpy arrays. - - The first argument is optional and default to 'char[]'. - """ - if python_buffer is _unspecified: - cdecl, python_buffer = self.BCharA, cdecl - elif isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return self._backend.from_buffer(cdecl, python_buffer, - require_writable) - - def memmove(self, dest, src, n): - """ffi.memmove(dest, src, n) copies n bytes of memory from src to dest. - - Like the C function memmove(), the memory areas may overlap; - apart from that it behaves like the C function memcpy(). - - 'src' can be any cdata ptr or array, or any Python buffer object. - 'dest' can be any cdata ptr or array, or a writable Python buffer - object. The size to copy, 'n', is always measured in bytes. - - Unlike other methods, this one supports all Python buffer including - byte strings and bytearrays---but it still does not support - non-contiguous buffers. - """ - return self._backend.memmove(dest, src, n) - - def callback(self, cdecl, python_callable=None, error=None, onerror=None): - """Return a callback object or a decorator making such a - callback object. 'cdecl' must name a C function pointer type. - The callback invokes the specified 'python_callable' (which may - be provided either directly or via a decorator). Important: the - callback object must be manually kept alive for as long as the - callback may be invoked from the C level. - """ - def callback_decorator_wrap(python_callable): - if not callable(python_callable): - raise TypeError("the 'python_callable' argument " - "is not callable") - return self._backend.callback(cdecl, python_callable, - error, onerror) - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl, consider_function_as_funcptr=True) - if python_callable is None: - return callback_decorator_wrap # decorator mode - else: - return callback_decorator_wrap(python_callable) # direct mode - - def getctype(self, cdecl, replace_with=''): - """Return a string giving the C type 'cdecl', which may be itself - a string or a object. If 'replace_with' is given, it gives - extra text to append (or insert for more complicated C types), like - a variable name, or '*' to get actually the C type 'pointer-to-cdecl'. - """ - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - replace_with = replace_with.strip() - if (replace_with.startswith('*') - and '&[' in self._backend.getcname(cdecl, '&')): - replace_with = '(%s)' % replace_with - elif replace_with and not replace_with[0] in '[(': - replace_with = ' ' + replace_with - return self._backend.getcname(cdecl, replace_with) - - def gc(self, cdata, destructor, size=0): - """Return a new cdata object that points to the same - data. Later, when this new cdata object is garbage-collected, - 'destructor(old_cdata_object)' will be called. - - The optional 'size' gives an estimate of the size, used to - trigger the garbage collection more eagerly. So far only used - on PyPy. It tells the GC that the returned object keeps alive - roughly 'size' bytes of external memory. - """ - return self._backend.gcp(cdata, destructor, size) - - def _get_cached_btype(self, type): - assert self._lock.acquire(False) is False - # call me with the lock! - try: - BType = self._cached_btypes[type] - except KeyError: - finishlist = [] - BType = type.get_cached_btype(self, finishlist) - for type in finishlist: - type.finish_backend_type(self, finishlist) - return BType - - def verify(self, source='', tmpdir=None, **kwargs): - """Verify that the current ffi signatures compile on this - machine, and return a dynamic library object. The dynamic - library can be used to call functions and access global - variables declared in this 'ffi'. The library is compiled - by the C compiler: it gives you C-level API compatibility - (including calling macros). This is unlike 'ffi.dlopen()', - which requires binary compatibility in the signatures. - """ - from .verifier import Verifier, _caller_dir_pycache - # - # If set_unicode(True) was called, insert the UNICODE and - # _UNICODE macro declarations - if self._windows_unicode: - self._apply_windows_unicode(kwargs) - # - # Set the tmpdir here, and not in Verifier.__init__: it picks - # up the caller's directory, which we want to be the caller of - # ffi.verify(), as opposed to the caller of Veritier(). - tmpdir = tmpdir or _caller_dir_pycache() - # - # Make a Verifier() and use it to load the library. - self.verifier = Verifier(self, source, tmpdir, **kwargs) - lib = self.verifier.load_library() - # - # Save the loaded library for keep-alive purposes, even - # if the caller doesn't keep it alive itself (it should). - self._libraries.append(lib) - return lib - - def _get_errno(self): - return self._backend.get_errno() - def _set_errno(self, errno): - self._backend.set_errno(errno) - errno = property(_get_errno, _set_errno, None, - "the value of 'errno' from/to the C calls") - - def getwinerror(self, code=-1): - return self._backend.getwinerror(code) - - def _pointer_to(self, ctype): - with self._lock: - return model.pointer_cache(self, ctype) - - def addressof(self, cdata, *fields_or_indexes): - """Return the address of a . - If 'fields_or_indexes' are given, returns the address of that - field or array item in the structure or array, recursively in - case of nested structures. - """ - try: - ctype = self._backend.typeof(cdata) - except TypeError: - if '__addressof__' in type(cdata).__dict__: - return type(cdata).__addressof__(cdata, *fields_or_indexes) - raise - if fields_or_indexes: - ctype, offset = self._typeoffsetof(ctype, *fields_or_indexes) - else: - if ctype.kind == "pointer": - raise TypeError("addressof(pointer)") - offset = 0 - ctypeptr = self._pointer_to(ctype) - return self._backend.rawaddressof(ctypeptr, cdata, offset) - - def _typeoffsetof(self, ctype, field_or_index, *fields_or_indexes): - ctype, offset = self._backend.typeoffsetof(ctype, field_or_index) - for field1 in fields_or_indexes: - ctype, offset1 = self._backend.typeoffsetof(ctype, field1, 1) - offset += offset1 - return ctype, offset - - def include(self, ffi_to_include): - """Includes the typedefs, structs, unions and enums defined - in another FFI instance. Usage is similar to a #include in C, - where a part of the program might include types defined in - another part for its own usage. Note that the include() - method has no effect on functions, constants and global - variables, which must anyway be accessed directly from the - lib object returned by the original FFI instance. - """ - if not isinstance(ffi_to_include, FFI): - raise TypeError("ffi.include() expects an argument that is also of" - " type cffi.FFI, not %r" % ( - type(ffi_to_include).__name__,)) - if ffi_to_include is self: - raise ValueError("self.include(self)") - with ffi_to_include._lock: - with self._lock: - self._parser.include(ffi_to_include._parser) - self._cdefsources.append('[') - self._cdefsources.extend(ffi_to_include._cdefsources) - self._cdefsources.append(']') - self._included_ffis.append(ffi_to_include) - - def new_handle(self, x): - return self._backend.newp_handle(self.BVoidP, x) - - def from_handle(self, x): - return self._backend.from_handle(x) - - def release(self, x): - self._backend.release(x) - - def set_unicode(self, enabled_flag): - """Windows: if 'enabled_flag' is True, enable the UNICODE and - _UNICODE defines in C, and declare the types like TCHAR and LPTCSTR - to be (pointers to) wchar_t. If 'enabled_flag' is False, - declare these types to be (pointers to) plain 8-bit characters. - This is mostly for backward compatibility; you usually want True. - """ - if self._windows_unicode is not None: - raise ValueError("set_unicode() can only be called once") - enabled_flag = bool(enabled_flag) - if enabled_flag: - self.cdef("typedef wchar_t TBYTE;" - "typedef wchar_t TCHAR;" - "typedef const wchar_t *LPCTSTR;" - "typedef const wchar_t *PCTSTR;" - "typedef wchar_t *LPTSTR;" - "typedef wchar_t *PTSTR;" - "typedef TBYTE *PTBYTE;" - "typedef TCHAR *PTCHAR;") - else: - self.cdef("typedef char TBYTE;" - "typedef char TCHAR;" - "typedef const char *LPCTSTR;" - "typedef const char *PCTSTR;" - "typedef char *LPTSTR;" - "typedef char *PTSTR;" - "typedef TBYTE *PTBYTE;" - "typedef TCHAR *PTCHAR;") - self._windows_unicode = enabled_flag - - def _apply_windows_unicode(self, kwds): - defmacros = kwds.get('define_macros', ()) - if not isinstance(defmacros, (list, tuple)): - raise TypeError("'define_macros' must be a list or tuple") - defmacros = list(defmacros) + [('UNICODE', '1'), - ('_UNICODE', '1')] - kwds['define_macros'] = defmacros - - def _apply_embedding_fix(self, kwds): - # must include an argument like "-lpython2.7" for the compiler - def ensure(key, value): - lst = kwds.setdefault(key, []) - if value not in lst: - lst.append(value) - # - if '__pypy__' in sys.builtin_module_names: - import os - if sys.platform == "win32": - # we need 'libpypy-c.lib'. Current distributions of - # pypy (>= 4.1) contain it as 'libs/python27.lib'. - pythonlib = "python{0[0]}{0[1]}".format(sys.version_info) - if hasattr(sys, 'prefix'): - ensure('library_dirs', os.path.join(sys.prefix, 'libs')) - else: - # we need 'libpypy-c.{so,dylib}', which should be by - # default located in 'sys.prefix/bin' for installed - # systems. - if sys.version_info < (3,): - pythonlib = "pypy-c" - else: - pythonlib = "pypy3-c" - if hasattr(sys, 'prefix'): - ensure('library_dirs', os.path.join(sys.prefix, 'bin')) - # On uninstalled pypy's, the libpypy-c is typically found in - # .../pypy/goal/. - if hasattr(sys, 'prefix'): - ensure('library_dirs', os.path.join(sys.prefix, 'pypy', 'goal')) - else: - if sys.platform == "win32": - template = "python%d%d" - if hasattr(sys, 'gettotalrefcount'): - template += '_d' - else: - try: - import sysconfig - except ImportError: # 2.6 - from cffi._shimmed_dist_utils import sysconfig - template = "python%d.%d" - if sysconfig.get_config_var('DEBUG_EXT'): - template += sysconfig.get_config_var('DEBUG_EXT') - pythonlib = (template % - (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) - if hasattr(sys, 'abiflags'): - pythonlib += sys.abiflags - ensure('libraries', pythonlib) - if sys.platform == "win32": - ensure('extra_link_args', '/MANIFEST') - - def set_source(self, module_name, source, source_extension='.c', **kwds): - import os - if hasattr(self, '_assigned_source'): - raise ValueError("set_source() cannot be called several times " - "per ffi object") - if not isinstance(module_name, basestring): - raise TypeError("'module_name' must be a string") - if os.sep in module_name or (os.altsep and os.altsep in module_name): - raise ValueError("'module_name' must not contain '/': use a dotted " - "name to make a 'package.module' location") - self._assigned_source = (str(module_name), source, - source_extension, kwds) - - def set_source_pkgconfig(self, module_name, pkgconfig_libs, source, - source_extension='.c', **kwds): - from . import pkgconfig - if not isinstance(pkgconfig_libs, list): - raise TypeError("the pkgconfig_libs argument must be a list " - "of package names") - kwds2 = pkgconfig.flags_from_pkgconfig(pkgconfig_libs) - pkgconfig.merge_flags(kwds, kwds2) - self.set_source(module_name, source, source_extension, **kwds) - - def distutils_extension(self, tmpdir='build', verbose=True): - from cffi._shimmed_dist_utils import mkpath - from .recompiler import recompile - # - if not hasattr(self, '_assigned_source'): - if hasattr(self, 'verifier'): # fallback, 'tmpdir' ignored - return self.verifier.get_extension() - raise ValueError("set_source() must be called before" - " distutils_extension()") - module_name, source, source_extension, kwds = self._assigned_source - if source is None: - raise TypeError("distutils_extension() is only for C extension " - "modules, not for dlopen()-style pure Python " - "modules") - mkpath(tmpdir) - ext, updated = recompile(self, module_name, - source, tmpdir=tmpdir, extradir=tmpdir, - source_extension=source_extension, - call_c_compiler=False, **kwds) - if verbose: - if updated: - sys.stderr.write("regenerated: %r\n" % (ext.sources[0],)) - else: - sys.stderr.write("not modified: %r\n" % (ext.sources[0],)) - return ext - - def emit_c_code(self, filename): - from .recompiler import recompile - # - if not hasattr(self, '_assigned_source'): - raise ValueError("set_source() must be called before emit_c_code()") - module_name, source, source_extension, kwds = self._assigned_source - if source is None: - raise TypeError("emit_c_code() is only for C extension modules, " - "not for dlopen()-style pure Python modules") - recompile(self, module_name, source, - c_file=filename, call_c_compiler=False, - uses_ffiplatform=False, **kwds) - - def emit_python_code(self, filename): - from .recompiler import recompile - # - if not hasattr(self, '_assigned_source'): - raise ValueError("set_source() must be called before emit_c_code()") - module_name, source, source_extension, kwds = self._assigned_source - if source is not None: - raise TypeError("emit_python_code() is only for dlopen()-style " - "pure Python modules, not for C extension modules") - recompile(self, module_name, source, - c_file=filename, call_c_compiler=False, - uses_ffiplatform=False, **kwds) - - def compile(self, tmpdir='.', verbose=0, target=None, debug=None): - """The 'target' argument gives the final file name of the - compiled DLL. Use '*' to force distutils' choice, suitable for - regular CPython C API modules. Use a file name ending in '.*' - to ask for the system's default extension for dynamic libraries - (.so/.dll/.dylib). - - The default is '*' when building a non-embedded C API extension, - and (module_name + '.*') when building an embedded library. - """ - from .recompiler import recompile - # - if not hasattr(self, '_assigned_source'): - raise ValueError("set_source() must be called before compile()") - module_name, source, source_extension, kwds = self._assigned_source - return recompile(self, module_name, source, tmpdir=tmpdir, - target=target, source_extension=source_extension, - compiler_verbose=verbose, debug=debug, **kwds) - - def init_once(self, func, tag): - # Read _init_once_cache[tag], which is either (False, lock) if - # we're calling the function now in some thread, or (True, result). - # Don't call setdefault() in most cases, to avoid allocating and - # immediately freeing a lock; but still use setdefaut() to avoid - # races. - try: - x = self._init_once_cache[tag] - except KeyError: - x = self._init_once_cache.setdefault(tag, (False, allocate_lock())) - # Common case: we got (True, result), so we return the result. - if x[0]: - return x[1] - # Else, it's a lock. Acquire it to serialize the following tests. - with x[1]: - # Read again from _init_once_cache the current status. - x = self._init_once_cache[tag] - if x[0]: - return x[1] - # Call the function and store the result back. - result = func() - self._init_once_cache[tag] = (True, result) - return result - - def embedding_init_code(self, pysource): - if self._embedding: - raise ValueError("embedding_init_code() can only be called once") - # fix 'pysource' before it gets dumped into the C file: - # - remove empty lines at the beginning, so it starts at "line 1" - # - dedent, if all non-empty lines are indented - # - check for SyntaxErrors - import re - match = re.match(r'\s*\n', pysource) - if match: - pysource = pysource[match.end():] - lines = pysource.splitlines() or [''] - prefix = re.match(r'\s*', lines[0]).group() - for i in range(1, len(lines)): - line = lines[i] - if line.rstrip(): - while not line.startswith(prefix): - prefix = prefix[:-1] - i = len(prefix) - lines = [line[i:]+'\n' for line in lines] - pysource = ''.join(lines) - # - compile(pysource, "cffi_init", "exec") - # - self._embedding = pysource - - def def_extern(self, *args, **kwds): - raise ValueError("ffi.def_extern() is only available on API-mode FFI " - "objects") - - def list_types(self): - """Returns the user type names known to this FFI instance. - This returns a tuple containing three lists of names: - (typedef_names, names_of_structs, names_of_unions) - """ - typedefs = [] - structs = [] - unions = [] - for key in self._parser._declarations: - if key.startswith('typedef '): - typedefs.append(key[8:]) - elif key.startswith('struct '): - structs.append(key[7:]) - elif key.startswith('union '): - unions.append(key[6:]) - typedefs.sort() - structs.sort() - unions.sort() - return (typedefs, structs, unions) - - -def _load_backend_lib(backend, name, flags): - import os - if not isinstance(name, basestring): - if sys.platform != "win32" or name is not None: - return backend.load_library(name, flags) - name = "c" # Windows: load_library(None) fails, but this works - # on Python 2 (backward compatibility hack only) - first_error = None - if '.' in name or '/' in name or os.sep in name: - try: - return backend.load_library(name, flags) - except OSError as e: - first_error = e - import ctypes.util - path = ctypes.util.find_library(name) - if path is None: - if name == "c" and sys.platform == "win32" and sys.version_info >= (3,): - raise OSError("dlopen(None) cannot work on Windows for Python 3 " - "(see http://bugs.python.org/issue23606)") - msg = ("ctypes.util.find_library() did not manage " - "to locate a library called %r" % (name,)) - if first_error is not None: - msg = "%s. Additionally, %s" % (first_error, msg) - raise OSError(msg) - return backend.load_library(path, flags) - -def _make_ffi_library(ffi, libname, flags): - backend = ffi._backend - backendlib = _load_backend_lib(backend, libname, flags) - # - def accessor_function(name): - key = 'function ' + name - tp, _ = ffi._parser._declarations[key] - BType = ffi._get_cached_btype(tp) - value = backendlib.load_function(BType, name) - library.__dict__[name] = value - # - def accessor_variable(name): - key = 'variable ' + name - tp, _ = ffi._parser._declarations[key] - BType = ffi._get_cached_btype(tp) - read_variable = backendlib.read_variable - write_variable = backendlib.write_variable - setattr(FFILibrary, name, property( - lambda self: read_variable(BType, name), - lambda self, value: write_variable(BType, name, value))) - # - def addressof_var(name): - try: - return addr_variables[name] - except KeyError: - with ffi._lock: - if name not in addr_variables: - key = 'variable ' + name - tp, _ = ffi._parser._declarations[key] - BType = ffi._get_cached_btype(tp) - if BType.kind != 'array': - BType = model.pointer_cache(ffi, BType) - p = backendlib.load_function(BType, name) - addr_variables[name] = p - return addr_variables[name] - # - def accessor_constant(name): - raise NotImplementedError("non-integer constant '%s' cannot be " - "accessed from a dlopen() library" % (name,)) - # - def accessor_int_constant(name): - library.__dict__[name] = ffi._parser._int_constants[name] - # - accessors = {} - accessors_version = [False] - addr_variables = {} - # - def update_accessors(): - if accessors_version[0] is ffi._cdef_version: - return - # - for key, (tp, _) in ffi._parser._declarations.items(): - if not isinstance(tp, model.EnumType): - tag, name = key.split(' ', 1) - if tag == 'function': - accessors[name] = accessor_function - elif tag == 'variable': - accessors[name] = accessor_variable - elif tag == 'constant': - accessors[name] = accessor_constant - else: - for i, enumname in enumerate(tp.enumerators): - def accessor_enum(name, tp=tp, i=i): - tp.check_not_partial() - library.__dict__[name] = tp.enumvalues[i] - accessors[enumname] = accessor_enum - for name in ffi._parser._int_constants: - accessors.setdefault(name, accessor_int_constant) - accessors_version[0] = ffi._cdef_version - # - def make_accessor(name): - with ffi._lock: - if name in library.__dict__ or name in FFILibrary.__dict__: - return # added by another thread while waiting for the lock - if name not in accessors: - update_accessors() - if name not in accessors: - raise AttributeError(name) - accessors[name](name) - # - class FFILibrary(object): - def __getattr__(self, name): - make_accessor(name) - return getattr(self, name) - def __setattr__(self, name, value): - try: - property = getattr(self.__class__, name) - except AttributeError: - make_accessor(name) - setattr(self, name, value) - else: - property.__set__(self, value) - def __dir__(self): - with ffi._lock: - update_accessors() - return accessors.keys() - def __addressof__(self, name): - if name in library.__dict__: - return library.__dict__[name] - if name in FFILibrary.__dict__: - return addressof_var(name) - make_accessor(name) - if name in library.__dict__: - return library.__dict__[name] - if name in FFILibrary.__dict__: - return addressof_var(name) - raise AttributeError("cffi library has no function or " - "global variable named '%s'" % (name,)) - def __cffi_close__(self): - backendlib.close_lib() - self.__dict__.clear() - # - if isinstance(libname, basestring): - try: - if not isinstance(libname, str): # unicode, on Python 2 - libname = libname.encode('utf-8') - FFILibrary.__name__ = 'FFILibrary_%s' % libname - except UnicodeError: - pass - library = FFILibrary() - return library, library.__dict__ - -def _builtin_function_type(func): - # a hack to make at least ffi.typeof(builtin_function) work, - # if the builtin function was obtained by 'vengine_cpy'. - import sys - try: - module = sys.modules[func.__module__] - ffi = module._cffi_original_ffi - types_of_builtin_funcs = module._cffi_types_of_builtin_funcs - tp = types_of_builtin_funcs[func] - except (KeyError, AttributeError, TypeError): - return None - else: - with ffi._lock: - return ffi._get_cached_btype(tp) diff --git a/.venv/lib/python3.9/site-packages/cffi/backend_ctypes.py b/.venv/lib/python3.9/site-packages/cffi/backend_ctypes.py deleted file mode 100644 index e7956a7..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/backend_ctypes.py +++ /dev/null @@ -1,1121 +0,0 @@ -import ctypes, ctypes.util, operator, sys -from . import model - -if sys.version_info < (3,): - bytechr = chr -else: - unicode = str - long = int - xrange = range - bytechr = lambda num: bytes([num]) - -class CTypesType(type): - pass - -class CTypesData(object): - __metaclass__ = CTypesType - __slots__ = ['__weakref__'] - __name__ = '' - - def __init__(self, *args): - raise TypeError("cannot instantiate %r" % (self.__class__,)) - - @classmethod - def _newp(cls, init): - raise TypeError("expected a pointer or array ctype, got '%s'" - % (cls._get_c_name(),)) - - @staticmethod - def _to_ctypes(value): - raise TypeError - - @classmethod - def _arg_to_ctypes(cls, *value): - try: - ctype = cls._ctype - except AttributeError: - raise TypeError("cannot create an instance of %r" % (cls,)) - if value: - res = cls._to_ctypes(*value) - if not isinstance(res, ctype): - res = cls._ctype(res) - else: - res = cls._ctype() - return res - - @classmethod - def _create_ctype_obj(cls, init): - if init is None: - return cls._arg_to_ctypes() - else: - return cls._arg_to_ctypes(init) - - @staticmethod - def _from_ctypes(ctypes_value): - raise TypeError - - @classmethod - def _get_c_name(cls, replace_with=''): - return cls._reftypename.replace(' &', replace_with) - - @classmethod - def _fix_class(cls): - cls.__name__ = 'CData<%s>' % (cls._get_c_name(),) - cls.__qualname__ = 'CData<%s>' % (cls._get_c_name(),) - cls.__module__ = 'ffi' - - def _get_own_repr(self): - raise NotImplementedError - - def _addr_repr(self, address): - if address == 0: - return 'NULL' - else: - if address < 0: - address += 1 << (8*ctypes.sizeof(ctypes.c_void_p)) - return '0x%x' % address - - def __repr__(self, c_name=None): - own = self._get_own_repr() - return '' % (c_name or self._get_c_name(), own) - - def _convert_to_address(self, BClass): - if BClass is None: - raise TypeError("cannot convert %r to an address" % ( - self._get_c_name(),)) - else: - raise TypeError("cannot convert %r to %r" % ( - self._get_c_name(), BClass._get_c_name())) - - @classmethod - def _get_size(cls): - return ctypes.sizeof(cls._ctype) - - def _get_size_of_instance(self): - return ctypes.sizeof(self._ctype) - - @classmethod - def _cast_from(cls, source): - raise TypeError("cannot cast to %r" % (cls._get_c_name(),)) - - def _cast_to_integer(self): - return self._convert_to_address(None) - - @classmethod - def _alignment(cls): - return ctypes.alignment(cls._ctype) - - def __iter__(self): - raise TypeError("cdata %r does not support iteration" % ( - self._get_c_name()),) - - def _make_cmp(name): - cmpfunc = getattr(operator, name) - def cmp(self, other): - v_is_ptr = not isinstance(self, CTypesGenericPrimitive) - w_is_ptr = (isinstance(other, CTypesData) and - not isinstance(other, CTypesGenericPrimitive)) - if v_is_ptr and w_is_ptr: - return cmpfunc(self._convert_to_address(None), - other._convert_to_address(None)) - elif v_is_ptr or w_is_ptr: - return NotImplemented - else: - if isinstance(self, CTypesGenericPrimitive): - self = self._value - if isinstance(other, CTypesGenericPrimitive): - other = other._value - return cmpfunc(self, other) - cmp.func_name = name - return cmp - - __eq__ = _make_cmp('__eq__') - __ne__ = _make_cmp('__ne__') - __lt__ = _make_cmp('__lt__') - __le__ = _make_cmp('__le__') - __gt__ = _make_cmp('__gt__') - __ge__ = _make_cmp('__ge__') - - def __hash__(self): - return hash(self._convert_to_address(None)) - - def _to_string(self, maxlen): - raise TypeError("string(): %r" % (self,)) - - -class CTypesGenericPrimitive(CTypesData): - __slots__ = [] - - def __hash__(self): - return hash(self._value) - - def _get_own_repr(self): - return repr(self._from_ctypes(self._value)) - - -class CTypesGenericArray(CTypesData): - __slots__ = [] - - @classmethod - def _newp(cls, init): - return cls(init) - - def __iter__(self): - for i in xrange(len(self)): - yield self[i] - - def _get_own_repr(self): - return self._addr_repr(ctypes.addressof(self._blob)) - - -class CTypesGenericPtr(CTypesData): - __slots__ = ['_address', '_as_ctype_ptr'] - _automatic_casts = False - kind = "pointer" - - @classmethod - def _newp(cls, init): - return cls(init) - - @classmethod - def _cast_from(cls, source): - if source is None: - address = 0 - elif isinstance(source, CTypesData): - address = source._cast_to_integer() - elif isinstance(source, (int, long)): - address = source - else: - raise TypeError("bad type for cast to %r: %r" % - (cls, type(source).__name__)) - return cls._new_pointer_at(address) - - @classmethod - def _new_pointer_at(cls, address): - self = cls.__new__(cls) - self._address = address - self._as_ctype_ptr = ctypes.cast(address, cls._ctype) - return self - - def _get_own_repr(self): - try: - return self._addr_repr(self._address) - except AttributeError: - return '???' - - def _cast_to_integer(self): - return self._address - - def __nonzero__(self): - return bool(self._address) - __bool__ = __nonzero__ - - @classmethod - def _to_ctypes(cls, value): - if not isinstance(value, CTypesData): - raise TypeError("unexpected %s object" % type(value).__name__) - address = value._convert_to_address(cls) - return ctypes.cast(address, cls._ctype) - - @classmethod - def _from_ctypes(cls, ctypes_ptr): - address = ctypes.cast(ctypes_ptr, ctypes.c_void_p).value or 0 - return cls._new_pointer_at(address) - - @classmethod - def _initialize(cls, ctypes_ptr, value): - if value: - ctypes_ptr.contents = cls._to_ctypes(value).contents - - def _convert_to_address(self, BClass): - if (BClass in (self.__class__, None) or BClass._automatic_casts - or self._automatic_casts): - return self._address - else: - return CTypesData._convert_to_address(self, BClass) - - -class CTypesBaseStructOrUnion(CTypesData): - __slots__ = ['_blob'] - - @classmethod - def _create_ctype_obj(cls, init): - # may be overridden - raise TypeError("cannot instantiate opaque type %s" % (cls,)) - - def _get_own_repr(self): - return self._addr_repr(ctypes.addressof(self._blob)) - - @classmethod - def _offsetof(cls, fieldname): - return getattr(cls._ctype, fieldname).offset - - def _convert_to_address(self, BClass): - if getattr(BClass, '_BItem', None) is self.__class__: - return ctypes.addressof(self._blob) - else: - return CTypesData._convert_to_address(self, BClass) - - @classmethod - def _from_ctypes(cls, ctypes_struct_or_union): - self = cls.__new__(cls) - self._blob = ctypes_struct_or_union - return self - - @classmethod - def _to_ctypes(cls, value): - return value._blob - - def __repr__(self, c_name=None): - return CTypesData.__repr__(self, c_name or self._get_c_name(' &')) - - -class CTypesBackend(object): - - PRIMITIVE_TYPES = { - 'char': ctypes.c_char, - 'short': ctypes.c_short, - 'int': ctypes.c_int, - 'long': ctypes.c_long, - 'long long': ctypes.c_longlong, - 'signed char': ctypes.c_byte, - 'unsigned char': ctypes.c_ubyte, - 'unsigned short': ctypes.c_ushort, - 'unsigned int': ctypes.c_uint, - 'unsigned long': ctypes.c_ulong, - 'unsigned long long': ctypes.c_ulonglong, - 'float': ctypes.c_float, - 'double': ctypes.c_double, - '_Bool': ctypes.c_bool, - } - - for _name in ['unsigned long long', 'unsigned long', - 'unsigned int', 'unsigned short', 'unsigned char']: - _size = ctypes.sizeof(PRIMITIVE_TYPES[_name]) - PRIMITIVE_TYPES['uint%d_t' % (8*_size)] = PRIMITIVE_TYPES[_name] - if _size == ctypes.sizeof(ctypes.c_void_p): - PRIMITIVE_TYPES['uintptr_t'] = PRIMITIVE_TYPES[_name] - if _size == ctypes.sizeof(ctypes.c_size_t): - PRIMITIVE_TYPES['size_t'] = PRIMITIVE_TYPES[_name] - - for _name in ['long long', 'long', 'int', 'short', 'signed char']: - _size = ctypes.sizeof(PRIMITIVE_TYPES[_name]) - PRIMITIVE_TYPES['int%d_t' % (8*_size)] = PRIMITIVE_TYPES[_name] - if _size == ctypes.sizeof(ctypes.c_void_p): - PRIMITIVE_TYPES['intptr_t'] = PRIMITIVE_TYPES[_name] - PRIMITIVE_TYPES['ptrdiff_t'] = PRIMITIVE_TYPES[_name] - if _size == ctypes.sizeof(ctypes.c_size_t): - PRIMITIVE_TYPES['ssize_t'] = PRIMITIVE_TYPES[_name] - - - def __init__(self): - self.RTLD_LAZY = 0 # not supported anyway by ctypes - self.RTLD_NOW = 0 - self.RTLD_GLOBAL = ctypes.RTLD_GLOBAL - self.RTLD_LOCAL = ctypes.RTLD_LOCAL - - def set_ffi(self, ffi): - self.ffi = ffi - - def _get_types(self): - return CTypesData, CTypesType - - def load_library(self, path, flags=0): - cdll = ctypes.CDLL(path, flags) - return CTypesLibrary(self, cdll) - - def new_void_type(self): - class CTypesVoid(CTypesData): - __slots__ = [] - _reftypename = 'void &' - @staticmethod - def _from_ctypes(novalue): - return None - @staticmethod - def _to_ctypes(novalue): - if novalue is not None: - raise TypeError("None expected, got %s object" % - (type(novalue).__name__,)) - return None - CTypesVoid._fix_class() - return CTypesVoid - - def new_primitive_type(self, name): - if name == 'wchar_t': - raise NotImplementedError(name) - ctype = self.PRIMITIVE_TYPES[name] - if name == 'char': - kind = 'char' - elif name in ('float', 'double'): - kind = 'float' - else: - if name in ('signed char', 'unsigned char'): - kind = 'byte' - elif name == '_Bool': - kind = 'bool' - else: - kind = 'int' - is_signed = (ctype(-1).value == -1) - # - def _cast_source_to_int(source): - if isinstance(source, (int, long, float)): - source = int(source) - elif isinstance(source, CTypesData): - source = source._cast_to_integer() - elif isinstance(source, bytes): - source = ord(source) - elif source is None: - source = 0 - else: - raise TypeError("bad type for cast to %r: %r" % - (CTypesPrimitive, type(source).__name__)) - return source - # - kind1 = kind - class CTypesPrimitive(CTypesGenericPrimitive): - __slots__ = ['_value'] - _ctype = ctype - _reftypename = '%s &' % name - kind = kind1 - - def __init__(self, value): - self._value = value - - @staticmethod - def _create_ctype_obj(init): - if init is None: - return ctype() - return ctype(CTypesPrimitive._to_ctypes(init)) - - if kind == 'int' or kind == 'byte': - @classmethod - def _cast_from(cls, source): - source = _cast_source_to_int(source) - source = ctype(source).value # cast within range - return cls(source) - def __int__(self): - return self._value - - if kind == 'bool': - @classmethod - def _cast_from(cls, source): - if not isinstance(source, (int, long, float)): - source = _cast_source_to_int(source) - return cls(bool(source)) - def __int__(self): - return int(self._value) - - if kind == 'char': - @classmethod - def _cast_from(cls, source): - source = _cast_source_to_int(source) - source = bytechr(source & 0xFF) - return cls(source) - def __int__(self): - return ord(self._value) - - if kind == 'float': - @classmethod - def _cast_from(cls, source): - if isinstance(source, float): - pass - elif isinstance(source, CTypesGenericPrimitive): - if hasattr(source, '__float__'): - source = float(source) - else: - source = int(source) - else: - source = _cast_source_to_int(source) - source = ctype(source).value # fix precision - return cls(source) - def __int__(self): - return int(self._value) - def __float__(self): - return self._value - - _cast_to_integer = __int__ - - if kind == 'int' or kind == 'byte' or kind == 'bool': - @staticmethod - def _to_ctypes(x): - if not isinstance(x, (int, long)): - if isinstance(x, CTypesData): - x = int(x) - else: - raise TypeError("integer expected, got %s" % - type(x).__name__) - if ctype(x).value != x: - if not is_signed and x < 0: - raise OverflowError("%s: negative integer" % name) - else: - raise OverflowError("%s: integer out of bounds" - % name) - return x - - if kind == 'char': - @staticmethod - def _to_ctypes(x): - if isinstance(x, bytes) and len(x) == 1: - return x - if isinstance(x, CTypesPrimitive): # > - return x._value - raise TypeError("character expected, got %s" % - type(x).__name__) - def __nonzero__(self): - return ord(self._value) != 0 - else: - def __nonzero__(self): - return self._value != 0 - __bool__ = __nonzero__ - - if kind == 'float': - @staticmethod - def _to_ctypes(x): - if not isinstance(x, (int, long, float, CTypesData)): - raise TypeError("float expected, got %s" % - type(x).__name__) - return ctype(x).value - - @staticmethod - def _from_ctypes(value): - return getattr(value, 'value', value) - - @staticmethod - def _initialize(blob, init): - blob.value = CTypesPrimitive._to_ctypes(init) - - if kind == 'char': - def _to_string(self, maxlen): - return self._value - if kind == 'byte': - def _to_string(self, maxlen): - return chr(self._value & 0xff) - # - CTypesPrimitive._fix_class() - return CTypesPrimitive - - def new_pointer_type(self, BItem): - getbtype = self.ffi._get_cached_btype - if BItem is getbtype(model.PrimitiveType('char')): - kind = 'charp' - elif BItem in (getbtype(model.PrimitiveType('signed char')), - getbtype(model.PrimitiveType('unsigned char'))): - kind = 'bytep' - elif BItem is getbtype(model.void_type): - kind = 'voidp' - else: - kind = 'generic' - # - class CTypesPtr(CTypesGenericPtr): - __slots__ = ['_own'] - if kind == 'charp': - __slots__ += ['__as_strbuf'] - _BItem = BItem - if hasattr(BItem, '_ctype'): - _ctype = ctypes.POINTER(BItem._ctype) - _bitem_size = ctypes.sizeof(BItem._ctype) - else: - _ctype = ctypes.c_void_p - if issubclass(BItem, CTypesGenericArray): - _reftypename = BItem._get_c_name('(* &)') - else: - _reftypename = BItem._get_c_name(' * &') - - def __init__(self, init): - ctypeobj = BItem._create_ctype_obj(init) - if kind == 'charp': - self.__as_strbuf = ctypes.create_string_buffer( - ctypeobj.value + b'\x00') - self._as_ctype_ptr = ctypes.cast( - self.__as_strbuf, self._ctype) - else: - self._as_ctype_ptr = ctypes.pointer(ctypeobj) - self._address = ctypes.cast(self._as_ctype_ptr, - ctypes.c_void_p).value - self._own = True - - def __add__(self, other): - if isinstance(other, (int, long)): - return self._new_pointer_at(self._address + - other * self._bitem_size) - else: - return NotImplemented - - def __sub__(self, other): - if isinstance(other, (int, long)): - return self._new_pointer_at(self._address - - other * self._bitem_size) - elif type(self) is type(other): - return (self._address - other._address) // self._bitem_size - else: - return NotImplemented - - def __getitem__(self, index): - if getattr(self, '_own', False) and index != 0: - raise IndexError - return BItem._from_ctypes(self._as_ctype_ptr[index]) - - def __setitem__(self, index, value): - self._as_ctype_ptr[index] = BItem._to_ctypes(value) - - if kind == 'charp' or kind == 'voidp': - @classmethod - def _arg_to_ctypes(cls, *value): - if value and isinstance(value[0], bytes): - return ctypes.c_char_p(value[0]) - else: - return super(CTypesPtr, cls)._arg_to_ctypes(*value) - - if kind == 'charp' or kind == 'bytep': - def _to_string(self, maxlen): - if maxlen < 0: - maxlen = sys.maxsize - p = ctypes.cast(self._as_ctype_ptr, - ctypes.POINTER(ctypes.c_char)) - n = 0 - while n < maxlen and p[n] != b'\x00': - n += 1 - return b''.join([p[i] for i in range(n)]) - - def _get_own_repr(self): - if getattr(self, '_own', False): - return 'owning %d bytes' % ( - ctypes.sizeof(self._as_ctype_ptr.contents),) - return super(CTypesPtr, self)._get_own_repr() - # - if (BItem is self.ffi._get_cached_btype(model.void_type) or - BItem is self.ffi._get_cached_btype(model.PrimitiveType('char'))): - CTypesPtr._automatic_casts = True - # - CTypesPtr._fix_class() - return CTypesPtr - - def new_array_type(self, CTypesPtr, length): - if length is None: - brackets = ' &[]' - else: - brackets = ' &[%d]' % length - BItem = CTypesPtr._BItem - getbtype = self.ffi._get_cached_btype - if BItem is getbtype(model.PrimitiveType('char')): - kind = 'char' - elif BItem in (getbtype(model.PrimitiveType('signed char')), - getbtype(model.PrimitiveType('unsigned char'))): - kind = 'byte' - else: - kind = 'generic' - # - class CTypesArray(CTypesGenericArray): - __slots__ = ['_blob', '_own'] - if length is not None: - _ctype = BItem._ctype * length - else: - __slots__.append('_ctype') - _reftypename = BItem._get_c_name(brackets) - _declared_length = length - _CTPtr = CTypesPtr - - def __init__(self, init): - if length is None: - if isinstance(init, (int, long)): - len1 = init - init = None - elif kind == 'char' and isinstance(init, bytes): - len1 = len(init) + 1 # extra null - else: - init = tuple(init) - len1 = len(init) - self._ctype = BItem._ctype * len1 - self._blob = self._ctype() - self._own = True - if init is not None: - self._initialize(self._blob, init) - - @staticmethod - def _initialize(blob, init): - if isinstance(init, bytes): - init = [init[i:i+1] for i in range(len(init))] - else: - if isinstance(init, CTypesGenericArray): - if (len(init) != len(blob) or - not isinstance(init, CTypesArray)): - raise TypeError("length/type mismatch: %s" % (init,)) - init = tuple(init) - if len(init) > len(blob): - raise IndexError("too many initializers") - addr = ctypes.cast(blob, ctypes.c_void_p).value - PTR = ctypes.POINTER(BItem._ctype) - itemsize = ctypes.sizeof(BItem._ctype) - for i, value in enumerate(init): - p = ctypes.cast(addr + i * itemsize, PTR) - BItem._initialize(p.contents, value) - - def __len__(self): - return len(self._blob) - - def __getitem__(self, index): - if not (0 <= index < len(self._blob)): - raise IndexError - return BItem._from_ctypes(self._blob[index]) - - def __setitem__(self, index, value): - if not (0 <= index < len(self._blob)): - raise IndexError - self._blob[index] = BItem._to_ctypes(value) - - if kind == 'char' or kind == 'byte': - def _to_string(self, maxlen): - if maxlen < 0: - maxlen = len(self._blob) - p = ctypes.cast(self._blob, - ctypes.POINTER(ctypes.c_char)) - n = 0 - while n < maxlen and p[n] != b'\x00': - n += 1 - return b''.join([p[i] for i in range(n)]) - - def _get_own_repr(self): - if getattr(self, '_own', False): - return 'owning %d bytes' % (ctypes.sizeof(self._blob),) - return super(CTypesArray, self)._get_own_repr() - - def _convert_to_address(self, BClass): - if BClass in (CTypesPtr, None) or BClass._automatic_casts: - return ctypes.addressof(self._blob) - else: - return CTypesData._convert_to_address(self, BClass) - - @staticmethod - def _from_ctypes(ctypes_array): - self = CTypesArray.__new__(CTypesArray) - self._blob = ctypes_array - return self - - @staticmethod - def _arg_to_ctypes(value): - return CTypesPtr._arg_to_ctypes(value) - - def __add__(self, other): - if isinstance(other, (int, long)): - return CTypesPtr._new_pointer_at( - ctypes.addressof(self._blob) + - other * ctypes.sizeof(BItem._ctype)) - else: - return NotImplemented - - @classmethod - def _cast_from(cls, source): - raise NotImplementedError("casting to %r" % ( - cls._get_c_name(),)) - # - CTypesArray._fix_class() - return CTypesArray - - def _new_struct_or_union(self, kind, name, base_ctypes_class): - # - class struct_or_union(base_ctypes_class): - pass - struct_or_union.__name__ = '%s_%s' % (kind, name) - kind1 = kind - # - class CTypesStructOrUnion(CTypesBaseStructOrUnion): - __slots__ = ['_blob'] - _ctype = struct_or_union - _reftypename = '%s &' % (name,) - _kind = kind = kind1 - # - CTypesStructOrUnion._fix_class() - return CTypesStructOrUnion - - def new_struct_type(self, name): - return self._new_struct_or_union('struct', name, ctypes.Structure) - - def new_union_type(self, name): - return self._new_struct_or_union('union', name, ctypes.Union) - - def complete_struct_or_union(self, CTypesStructOrUnion, fields, tp, - totalsize=-1, totalalignment=-1, sflags=0, - pack=0): - if totalsize >= 0 or totalalignment >= 0: - raise NotImplementedError("the ctypes backend of CFFI does not support " - "structures completed by verify(); please " - "compile and install the _cffi_backend module.") - struct_or_union = CTypesStructOrUnion._ctype - fnames = [fname for (fname, BField, bitsize) in fields] - btypes = [BField for (fname, BField, bitsize) in fields] - bitfields = [bitsize for (fname, BField, bitsize) in fields] - # - bfield_types = {} - cfields = [] - for (fname, BField, bitsize) in fields: - if bitsize < 0: - cfields.append((fname, BField._ctype)) - bfield_types[fname] = BField - else: - cfields.append((fname, BField._ctype, bitsize)) - bfield_types[fname] = Ellipsis - if sflags & 8: - struct_or_union._pack_ = 1 - elif pack: - struct_or_union._pack_ = pack - struct_or_union._fields_ = cfields - CTypesStructOrUnion._bfield_types = bfield_types - # - @staticmethod - def _create_ctype_obj(init): - result = struct_or_union() - if init is not None: - initialize(result, init) - return result - CTypesStructOrUnion._create_ctype_obj = _create_ctype_obj - # - def initialize(blob, init): - if is_union: - if len(init) > 1: - raise ValueError("union initializer: %d items given, but " - "only one supported (use a dict if needed)" - % (len(init),)) - if not isinstance(init, dict): - if isinstance(init, (bytes, unicode)): - raise TypeError("union initializer: got a str") - init = tuple(init) - if len(init) > len(fnames): - raise ValueError("too many values for %s initializer" % - CTypesStructOrUnion._get_c_name()) - init = dict(zip(fnames, init)) - addr = ctypes.addressof(blob) - for fname, value in init.items(): - BField, bitsize = name2fieldtype[fname] - assert bitsize < 0, \ - "not implemented: initializer with bit fields" - offset = CTypesStructOrUnion._offsetof(fname) - PTR = ctypes.POINTER(BField._ctype) - p = ctypes.cast(addr + offset, PTR) - BField._initialize(p.contents, value) - is_union = CTypesStructOrUnion._kind == 'union' - name2fieldtype = dict(zip(fnames, zip(btypes, bitfields))) - # - for fname, BField, bitsize in fields: - if fname == '': - raise NotImplementedError("nested anonymous structs/unions") - if hasattr(CTypesStructOrUnion, fname): - raise ValueError("the field name %r conflicts in " - "the ctypes backend" % fname) - if bitsize < 0: - def getter(self, fname=fname, BField=BField, - offset=CTypesStructOrUnion._offsetof(fname), - PTR=ctypes.POINTER(BField._ctype)): - addr = ctypes.addressof(self._blob) - p = ctypes.cast(addr + offset, PTR) - return BField._from_ctypes(p.contents) - def setter(self, value, fname=fname, BField=BField): - setattr(self._blob, fname, BField._to_ctypes(value)) - # - if issubclass(BField, CTypesGenericArray): - setter = None - if BField._declared_length == 0: - def getter(self, fname=fname, BFieldPtr=BField._CTPtr, - offset=CTypesStructOrUnion._offsetof(fname), - PTR=ctypes.POINTER(BField._ctype)): - addr = ctypes.addressof(self._blob) - p = ctypes.cast(addr + offset, PTR) - return BFieldPtr._from_ctypes(p) - # - else: - def getter(self, fname=fname, BField=BField): - return BField._from_ctypes(getattr(self._blob, fname)) - def setter(self, value, fname=fname, BField=BField): - # xxx obscure workaround - value = BField._to_ctypes(value) - oldvalue = getattr(self._blob, fname) - setattr(self._blob, fname, value) - if value != getattr(self._blob, fname): - setattr(self._blob, fname, oldvalue) - raise OverflowError("value too large for bitfield") - setattr(CTypesStructOrUnion, fname, property(getter, setter)) - # - CTypesPtr = self.ffi._get_cached_btype(model.PointerType(tp)) - for fname in fnames: - if hasattr(CTypesPtr, fname): - raise ValueError("the field name %r conflicts in " - "the ctypes backend" % fname) - def getter(self, fname=fname): - return getattr(self[0], fname) - def setter(self, value, fname=fname): - setattr(self[0], fname, value) - setattr(CTypesPtr, fname, property(getter, setter)) - - def new_function_type(self, BArgs, BResult, has_varargs): - nameargs = [BArg._get_c_name() for BArg in BArgs] - if has_varargs: - nameargs.append('...') - nameargs = ', '.join(nameargs) - # - class CTypesFunctionPtr(CTypesGenericPtr): - __slots__ = ['_own_callback', '_name'] - _ctype = ctypes.CFUNCTYPE(getattr(BResult, '_ctype', None), - *[BArg._ctype for BArg in BArgs], - use_errno=True) - _reftypename = BResult._get_c_name('(* &)(%s)' % (nameargs,)) - - def __init__(self, init, error=None): - # create a callback to the Python callable init() - import traceback - assert not has_varargs, "varargs not supported for callbacks" - if getattr(BResult, '_ctype', None) is not None: - error = BResult._from_ctypes( - BResult._create_ctype_obj(error)) - else: - error = None - def callback(*args): - args2 = [] - for arg, BArg in zip(args, BArgs): - args2.append(BArg._from_ctypes(arg)) - try: - res2 = init(*args2) - res2 = BResult._to_ctypes(res2) - except: - traceback.print_exc() - res2 = error - if issubclass(BResult, CTypesGenericPtr): - if res2: - res2 = ctypes.cast(res2, ctypes.c_void_p).value - # .value: http://bugs.python.org/issue1574593 - else: - res2 = None - #print repr(res2) - return res2 - if issubclass(BResult, CTypesGenericPtr): - # The only pointers callbacks can return are void*s: - # http://bugs.python.org/issue5710 - callback_ctype = ctypes.CFUNCTYPE( - ctypes.c_void_p, - *[BArg._ctype for BArg in BArgs], - use_errno=True) - else: - callback_ctype = CTypesFunctionPtr._ctype - self._as_ctype_ptr = callback_ctype(callback) - self._address = ctypes.cast(self._as_ctype_ptr, - ctypes.c_void_p).value - self._own_callback = init - - @staticmethod - def _initialize(ctypes_ptr, value): - if value: - raise NotImplementedError("ctypes backend: not supported: " - "initializers for function pointers") - - def __repr__(self): - c_name = getattr(self, '_name', None) - if c_name: - i = self._reftypename.index('(* &)') - if self._reftypename[i-1] not in ' )*': - c_name = ' ' + c_name - c_name = self._reftypename.replace('(* &)', c_name) - return CTypesData.__repr__(self, c_name) - - def _get_own_repr(self): - if getattr(self, '_own_callback', None) is not None: - return 'calling %r' % (self._own_callback,) - return super(CTypesFunctionPtr, self)._get_own_repr() - - def __call__(self, *args): - if has_varargs: - assert len(args) >= len(BArgs) - extraargs = args[len(BArgs):] - args = args[:len(BArgs)] - else: - assert len(args) == len(BArgs) - ctypes_args = [] - for arg, BArg in zip(args, BArgs): - ctypes_args.append(BArg._arg_to_ctypes(arg)) - if has_varargs: - for i, arg in enumerate(extraargs): - if arg is None: - ctypes_args.append(ctypes.c_void_p(0)) # NULL - continue - if not isinstance(arg, CTypesData): - raise TypeError( - "argument %d passed in the variadic part " - "needs to be a cdata object (got %s)" % - (1 + len(BArgs) + i, type(arg).__name__)) - ctypes_args.append(arg._arg_to_ctypes(arg)) - result = self._as_ctype_ptr(*ctypes_args) - return BResult._from_ctypes(result) - # - CTypesFunctionPtr._fix_class() - return CTypesFunctionPtr - - def new_enum_type(self, name, enumerators, enumvalues, CTypesInt): - assert isinstance(name, str) - reverse_mapping = dict(zip(reversed(enumvalues), - reversed(enumerators))) - # - class CTypesEnum(CTypesInt): - __slots__ = [] - _reftypename = '%s &' % name - - def _get_own_repr(self): - value = self._value - try: - return '%d: %s' % (value, reverse_mapping[value]) - except KeyError: - return str(value) - - def _to_string(self, maxlen): - value = self._value - try: - return reverse_mapping[value] - except KeyError: - return str(value) - # - CTypesEnum._fix_class() - return CTypesEnum - - def get_errno(self): - return ctypes.get_errno() - - def set_errno(self, value): - ctypes.set_errno(value) - - def string(self, b, maxlen=-1): - return b._to_string(maxlen) - - def buffer(self, bptr, size=-1): - raise NotImplementedError("buffer() with ctypes backend") - - def sizeof(self, cdata_or_BType): - if isinstance(cdata_or_BType, CTypesData): - return cdata_or_BType._get_size_of_instance() - else: - assert issubclass(cdata_or_BType, CTypesData) - return cdata_or_BType._get_size() - - def alignof(self, BType): - assert issubclass(BType, CTypesData) - return BType._alignment() - - def newp(self, BType, source): - if not issubclass(BType, CTypesData): - raise TypeError - return BType._newp(source) - - def cast(self, BType, source): - return BType._cast_from(source) - - def callback(self, BType, source, error, onerror): - assert onerror is None # XXX not implemented - return BType(source, error) - - _weakref_cache_ref = None - - def gcp(self, cdata, destructor, size=0): - if self._weakref_cache_ref is None: - import weakref - class MyRef(weakref.ref): - def __eq__(self, other): - myref = self() - return self is other or ( - myref is not None and myref is other()) - def __ne__(self, other): - return not (self == other) - def __hash__(self): - try: - return self._hash - except AttributeError: - self._hash = hash(self()) - return self._hash - self._weakref_cache_ref = {}, MyRef - weak_cache, MyRef = self._weakref_cache_ref - - if destructor is None: - try: - del weak_cache[MyRef(cdata)] - except KeyError: - raise TypeError("Can remove destructor only on a object " - "previously returned by ffi.gc()") - return None - - def remove(k): - cdata, destructor = weak_cache.pop(k, (None, None)) - if destructor is not None: - destructor(cdata) - - new_cdata = self.cast(self.typeof(cdata), cdata) - assert new_cdata is not cdata - weak_cache[MyRef(new_cdata, remove)] = (cdata, destructor) - return new_cdata - - typeof = type - - def getcname(self, BType, replace_with): - return BType._get_c_name(replace_with) - - def typeoffsetof(self, BType, fieldname, num=0): - if isinstance(fieldname, str): - if num == 0 and issubclass(BType, CTypesGenericPtr): - BType = BType._BItem - if not issubclass(BType, CTypesBaseStructOrUnion): - raise TypeError("expected a struct or union ctype") - BField = BType._bfield_types[fieldname] - if BField is Ellipsis: - raise TypeError("not supported for bitfields") - return (BField, BType._offsetof(fieldname)) - elif isinstance(fieldname, (int, long)): - if issubclass(BType, CTypesGenericArray): - BType = BType._CTPtr - if not issubclass(BType, CTypesGenericPtr): - raise TypeError("expected an array or ptr ctype") - BItem = BType._BItem - offset = BItem._get_size() * fieldname - if offset > sys.maxsize: - raise OverflowError - return (BItem, offset) - else: - raise TypeError(type(fieldname)) - - def rawaddressof(self, BTypePtr, cdata, offset=None): - if isinstance(cdata, CTypesBaseStructOrUnion): - ptr = ctypes.pointer(type(cdata)._to_ctypes(cdata)) - elif isinstance(cdata, CTypesGenericPtr): - if offset is None or not issubclass(type(cdata)._BItem, - CTypesBaseStructOrUnion): - raise TypeError("unexpected cdata type") - ptr = type(cdata)._to_ctypes(cdata) - elif isinstance(cdata, CTypesGenericArray): - ptr = type(cdata)._to_ctypes(cdata) - else: - raise TypeError("expected a ") - if offset: - ptr = ctypes.cast( - ctypes.c_void_p( - ctypes.cast(ptr, ctypes.c_void_p).value + offset), - type(ptr)) - return BTypePtr._from_ctypes(ptr) - - -class CTypesLibrary(object): - - def __init__(self, backend, cdll): - self.backend = backend - self.cdll = cdll - - def load_function(self, BType, name): - c_func = getattr(self.cdll, name) - funcobj = BType._from_ctypes(c_func) - funcobj._name = name - return funcobj - - def read_variable(self, BType, name): - try: - ctypes_obj = BType._ctype.in_dll(self.cdll, name) - except AttributeError as e: - raise NotImplementedError(e) - return BType._from_ctypes(ctypes_obj) - - def write_variable(self, BType, name, value): - new_ctypes_obj = BType._to_ctypes(value) - ctypes_obj = BType._ctype.in_dll(self.cdll, name) - ctypes.memmove(ctypes.addressof(ctypes_obj), - ctypes.addressof(new_ctypes_obj), - ctypes.sizeof(BType._ctype)) diff --git a/.venv/lib/python3.9/site-packages/cffi/cffi_opcode.py b/.venv/lib/python3.9/site-packages/cffi/cffi_opcode.py deleted file mode 100644 index 6421df6..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/cffi_opcode.py +++ /dev/null @@ -1,187 +0,0 @@ -from .error import VerificationError - -class CffiOp(object): - def __init__(self, op, arg): - self.op = op - self.arg = arg - - def as_c_expr(self): - if self.op is None: - assert isinstance(self.arg, str) - return '(_cffi_opcode_t)(%s)' % (self.arg,) - classname = CLASS_NAME[self.op] - return '_CFFI_OP(_CFFI_OP_%s, %s)' % (classname, self.arg) - - def as_python_bytes(self): - if self.op is None and self.arg.isdigit(): - value = int(self.arg) # non-negative: '-' not in self.arg - if value >= 2**31: - raise OverflowError("cannot emit %r: limited to 2**31-1" - % (self.arg,)) - return format_four_bytes(value) - if isinstance(self.arg, str): - raise VerificationError("cannot emit to Python: %r" % (self.arg,)) - return format_four_bytes((self.arg << 8) | self.op) - - def __str__(self): - classname = CLASS_NAME.get(self.op, self.op) - return '(%s %s)' % (classname, self.arg) - -def format_four_bytes(num): - return '\\x%02X\\x%02X\\x%02X\\x%02X' % ( - (num >> 24) & 0xFF, - (num >> 16) & 0xFF, - (num >> 8) & 0xFF, - (num ) & 0xFF) - -OP_PRIMITIVE = 1 -OP_POINTER = 3 -OP_ARRAY = 5 -OP_OPEN_ARRAY = 7 -OP_STRUCT_UNION = 9 -OP_ENUM = 11 -OP_FUNCTION = 13 -OP_FUNCTION_END = 15 -OP_NOOP = 17 -OP_BITFIELD = 19 -OP_TYPENAME = 21 -OP_CPYTHON_BLTN_V = 23 # varargs -OP_CPYTHON_BLTN_N = 25 # noargs -OP_CPYTHON_BLTN_O = 27 # O (i.e. a single arg) -OP_CONSTANT = 29 -OP_CONSTANT_INT = 31 -OP_GLOBAL_VAR = 33 -OP_DLOPEN_FUNC = 35 -OP_DLOPEN_CONST = 37 -OP_GLOBAL_VAR_F = 39 -OP_EXTERN_PYTHON = 41 - -PRIM_VOID = 0 -PRIM_BOOL = 1 -PRIM_CHAR = 2 -PRIM_SCHAR = 3 -PRIM_UCHAR = 4 -PRIM_SHORT = 5 -PRIM_USHORT = 6 -PRIM_INT = 7 -PRIM_UINT = 8 -PRIM_LONG = 9 -PRIM_ULONG = 10 -PRIM_LONGLONG = 11 -PRIM_ULONGLONG = 12 -PRIM_FLOAT = 13 -PRIM_DOUBLE = 14 -PRIM_LONGDOUBLE = 15 - -PRIM_WCHAR = 16 -PRIM_INT8 = 17 -PRIM_UINT8 = 18 -PRIM_INT16 = 19 -PRIM_UINT16 = 20 -PRIM_INT32 = 21 -PRIM_UINT32 = 22 -PRIM_INT64 = 23 -PRIM_UINT64 = 24 -PRIM_INTPTR = 25 -PRIM_UINTPTR = 26 -PRIM_PTRDIFF = 27 -PRIM_SIZE = 28 -PRIM_SSIZE = 29 -PRIM_INT_LEAST8 = 30 -PRIM_UINT_LEAST8 = 31 -PRIM_INT_LEAST16 = 32 -PRIM_UINT_LEAST16 = 33 -PRIM_INT_LEAST32 = 34 -PRIM_UINT_LEAST32 = 35 -PRIM_INT_LEAST64 = 36 -PRIM_UINT_LEAST64 = 37 -PRIM_INT_FAST8 = 38 -PRIM_UINT_FAST8 = 39 -PRIM_INT_FAST16 = 40 -PRIM_UINT_FAST16 = 41 -PRIM_INT_FAST32 = 42 -PRIM_UINT_FAST32 = 43 -PRIM_INT_FAST64 = 44 -PRIM_UINT_FAST64 = 45 -PRIM_INTMAX = 46 -PRIM_UINTMAX = 47 -PRIM_FLOATCOMPLEX = 48 -PRIM_DOUBLECOMPLEX = 49 -PRIM_CHAR16 = 50 -PRIM_CHAR32 = 51 - -_NUM_PRIM = 52 -_UNKNOWN_PRIM = -1 -_UNKNOWN_FLOAT_PRIM = -2 -_UNKNOWN_LONG_DOUBLE = -3 - -_IO_FILE_STRUCT = -1 - -PRIMITIVE_TO_INDEX = { - 'char': PRIM_CHAR, - 'short': PRIM_SHORT, - 'int': PRIM_INT, - 'long': PRIM_LONG, - 'long long': PRIM_LONGLONG, - 'signed char': PRIM_SCHAR, - 'unsigned char': PRIM_UCHAR, - 'unsigned short': PRIM_USHORT, - 'unsigned int': PRIM_UINT, - 'unsigned long': PRIM_ULONG, - 'unsigned long long': PRIM_ULONGLONG, - 'float': PRIM_FLOAT, - 'double': PRIM_DOUBLE, - 'long double': PRIM_LONGDOUBLE, - '_cffi_float_complex_t': PRIM_FLOATCOMPLEX, - '_cffi_double_complex_t': PRIM_DOUBLECOMPLEX, - '_Bool': PRIM_BOOL, - 'wchar_t': PRIM_WCHAR, - 'char16_t': PRIM_CHAR16, - 'char32_t': PRIM_CHAR32, - 'int8_t': PRIM_INT8, - 'uint8_t': PRIM_UINT8, - 'int16_t': PRIM_INT16, - 'uint16_t': PRIM_UINT16, - 'int32_t': PRIM_INT32, - 'uint32_t': PRIM_UINT32, - 'int64_t': PRIM_INT64, - 'uint64_t': PRIM_UINT64, - 'intptr_t': PRIM_INTPTR, - 'uintptr_t': PRIM_UINTPTR, - 'ptrdiff_t': PRIM_PTRDIFF, - 'size_t': PRIM_SIZE, - 'ssize_t': PRIM_SSIZE, - 'int_least8_t': PRIM_INT_LEAST8, - 'uint_least8_t': PRIM_UINT_LEAST8, - 'int_least16_t': PRIM_INT_LEAST16, - 'uint_least16_t': PRIM_UINT_LEAST16, - 'int_least32_t': PRIM_INT_LEAST32, - 'uint_least32_t': PRIM_UINT_LEAST32, - 'int_least64_t': PRIM_INT_LEAST64, - 'uint_least64_t': PRIM_UINT_LEAST64, - 'int_fast8_t': PRIM_INT_FAST8, - 'uint_fast8_t': PRIM_UINT_FAST8, - 'int_fast16_t': PRIM_INT_FAST16, - 'uint_fast16_t': PRIM_UINT_FAST16, - 'int_fast32_t': PRIM_INT_FAST32, - 'uint_fast32_t': PRIM_UINT_FAST32, - 'int_fast64_t': PRIM_INT_FAST64, - 'uint_fast64_t': PRIM_UINT_FAST64, - 'intmax_t': PRIM_INTMAX, - 'uintmax_t': PRIM_UINTMAX, - } - -F_UNION = 0x01 -F_CHECK_FIELDS = 0x02 -F_PACKED = 0x04 -F_EXTERNAL = 0x08 -F_OPAQUE = 0x10 - -G_FLAGS = dict([('_CFFI_' + _key, globals()[_key]) - for _key in ['F_UNION', 'F_CHECK_FIELDS', 'F_PACKED', - 'F_EXTERNAL', 'F_OPAQUE']]) - -CLASS_NAME = {} -for _name, _value in list(globals().items()): - if _name.startswith('OP_') and isinstance(_value, int): - CLASS_NAME[_value] = _name[3:] diff --git a/.venv/lib/python3.9/site-packages/cffi/commontypes.py b/.venv/lib/python3.9/site-packages/cffi/commontypes.py deleted file mode 100644 index d4dae35..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/commontypes.py +++ /dev/null @@ -1,82 +0,0 @@ -import sys -from . import model -from .error import FFIError - - -COMMON_TYPES = {} - -try: - # fetch "bool" and all simple Windows types - from _cffi_backend import _get_common_types - _get_common_types(COMMON_TYPES) -except ImportError: - pass - -COMMON_TYPES['FILE'] = model.unknown_type('FILE', '_IO_FILE') -COMMON_TYPES['bool'] = '_Bool' # in case we got ImportError above -COMMON_TYPES['float _Complex'] = '_cffi_float_complex_t' -COMMON_TYPES['double _Complex'] = '_cffi_double_complex_t' - -for _type in model.PrimitiveType.ALL_PRIMITIVE_TYPES: - if _type.endswith('_t'): - COMMON_TYPES[_type] = _type -del _type - -_CACHE = {} - -def resolve_common_type(parser, commontype): - try: - return _CACHE[commontype] - except KeyError: - cdecl = COMMON_TYPES.get(commontype, commontype) - if not isinstance(cdecl, str): - result, quals = cdecl, 0 # cdecl is already a BaseType - elif cdecl in model.PrimitiveType.ALL_PRIMITIVE_TYPES: - result, quals = model.PrimitiveType(cdecl), 0 - elif cdecl == 'set-unicode-needed': - raise FFIError("The Windows type %r is only available after " - "you call ffi.set_unicode()" % (commontype,)) - else: - if commontype == cdecl: - raise FFIError( - "Unsupported type: %r. Please look at " - "http://cffi.readthedocs.io/en/latest/cdef.html#ffi-cdef-limitations " - "and file an issue if you think this type should really " - "be supported." % (commontype,)) - result, quals = parser.parse_type_and_quals(cdecl) # recursive - - assert isinstance(result, model.BaseTypeByIdentity) - _CACHE[commontype] = result, quals - return result, quals - - -# ____________________________________________________________ -# extra types for Windows (most of them are in commontypes.c) - - -def win_common_types(): - return { - "UNICODE_STRING": model.StructType( - "_UNICODE_STRING", - ["Length", - "MaximumLength", - "Buffer"], - [model.PrimitiveType("unsigned short"), - model.PrimitiveType("unsigned short"), - model.PointerType(model.PrimitiveType("wchar_t"))], - [-1, -1, -1]), - "PUNICODE_STRING": "UNICODE_STRING *", - "PCUNICODE_STRING": "const UNICODE_STRING *", - - "TBYTE": "set-unicode-needed", - "TCHAR": "set-unicode-needed", - "LPCTSTR": "set-unicode-needed", - "PCTSTR": "set-unicode-needed", - "LPTSTR": "set-unicode-needed", - "PTSTR": "set-unicode-needed", - "PTBYTE": "set-unicode-needed", - "PTCHAR": "set-unicode-needed", - } - -if sys.platform == 'win32': - COMMON_TYPES.update(win_common_types()) diff --git a/.venv/lib/python3.9/site-packages/cffi/cparser.py b/.venv/lib/python3.9/site-packages/cffi/cparser.py deleted file mode 100644 index dd590d8..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/cparser.py +++ /dev/null @@ -1,1015 +0,0 @@ -from . import model -from .commontypes import COMMON_TYPES, resolve_common_type -from .error import FFIError, CDefError -try: - from . import _pycparser as pycparser -except ImportError: - import pycparser -import weakref, re, sys - -try: - if sys.version_info < (3,): - import thread as _thread - else: - import _thread - lock = _thread.allocate_lock() -except ImportError: - lock = None - -def _workaround_for_static_import_finders(): - # Issue #392: packaging tools like cx_Freeze can not find these - # because pycparser uses exec dynamic import. This is an obscure - # workaround. This function is never called. - import pycparser.yacctab - import pycparser.lextab - -CDEF_SOURCE_STRING = "" -_r_comment = re.compile(r"/\*.*?\*/|//([^\n\\]|\\.)*?$", - re.DOTALL | re.MULTILINE) -_r_define = re.compile(r"^\s*#\s*define\s+([A-Za-z_][A-Za-z_0-9]*)" - r"\b((?:[^\n\\]|\\.)*?)$", - re.DOTALL | re.MULTILINE) -_r_line_directive = re.compile(r"^[ \t]*#[ \t]*(?:line|\d+)\b.*$", re.MULTILINE) -_r_partial_enum = re.compile(r"=\s*\.\.\.\s*[,}]|\.\.\.\s*\}") -_r_enum_dotdotdot = re.compile(r"__dotdotdot\d+__$") -_r_partial_array = re.compile(r"\[\s*\.\.\.\s*\]") -_r_words = re.compile(r"\w+|\S") -_parser_cache = None -_r_int_literal = re.compile(r"-?0?x?[0-9a-f]+[lu]*$", re.IGNORECASE) -_r_stdcall1 = re.compile(r"\b(__stdcall|WINAPI)\b") -_r_stdcall2 = re.compile(r"[(]\s*(__stdcall|WINAPI)\b") -_r_cdecl = re.compile(r"\b__cdecl\b") -_r_extern_python = re.compile(r'\bextern\s*"' - r'(Python|Python\s*\+\s*C|C\s*\+\s*Python)"\s*.') -_r_star_const_space = re.compile( # matches "* const " - r"[*]\s*((const|volatile|restrict)\b\s*)+") -_r_int_dotdotdot = re.compile(r"(\b(int|long|short|signed|unsigned|char)\s*)+" - r"\.\.\.") -_r_float_dotdotdot = re.compile(r"\b(double|float)\s*\.\.\.") - -def _get_parser(): - global _parser_cache - if _parser_cache is None: - _parser_cache = pycparser.CParser() - return _parser_cache - -def _workaround_for_old_pycparser(csource): - # Workaround for a pycparser issue (fixed between pycparser 2.10 and - # 2.14): "char*const***" gives us a wrong syntax tree, the same as - # for "char***(*const)". This means we can't tell the difference - # afterwards. But "char(*const(***))" gives us the right syntax - # tree. The issue only occurs if there are several stars in - # sequence with no parenthesis in between, just possibly qualifiers. - # Attempt to fix it by adding some parentheses in the source: each - # time we see "* const" or "* const *", we add an opening - # parenthesis before each star---the hard part is figuring out where - # to close them. - parts = [] - while True: - match = _r_star_const_space.search(csource) - if not match: - break - #print repr(''.join(parts)+csource), '=>', - parts.append(csource[:match.start()]) - parts.append('('); closing = ')' - parts.append(match.group()) # e.g. "* const " - endpos = match.end() - if csource.startswith('*', endpos): - parts.append('('); closing += ')' - level = 0 - i = endpos - while i < len(csource): - c = csource[i] - if c == '(': - level += 1 - elif c == ')': - if level == 0: - break - level -= 1 - elif c in ',;=': - if level == 0: - break - i += 1 - csource = csource[endpos:i] + closing + csource[i:] - #print repr(''.join(parts)+csource) - parts.append(csource) - return ''.join(parts) - -def _preprocess_extern_python(csource): - # input: `extern "Python" int foo(int);` or - # `extern "Python" { int foo(int); }` - # output: - # void __cffi_extern_python_start; - # int foo(int); - # void __cffi_extern_python_stop; - # - # input: `extern "Python+C" int foo(int);` - # output: - # void __cffi_extern_python_plus_c_start; - # int foo(int); - # void __cffi_extern_python_stop; - parts = [] - while True: - match = _r_extern_python.search(csource) - if not match: - break - endpos = match.end() - 1 - #print - #print ''.join(parts)+csource - #print '=>' - parts.append(csource[:match.start()]) - if 'C' in match.group(1): - parts.append('void __cffi_extern_python_plus_c_start; ') - else: - parts.append('void __cffi_extern_python_start; ') - if csource[endpos] == '{': - # grouping variant - closing = csource.find('}', endpos) - if closing < 0: - raise CDefError("'extern \"Python\" {': no '}' found") - if csource.find('{', endpos + 1, closing) >= 0: - raise NotImplementedError("cannot use { } inside a block " - "'extern \"Python\" { ... }'") - parts.append(csource[endpos+1:closing]) - csource = csource[closing+1:] - else: - # non-grouping variant - semicolon = csource.find(';', endpos) - if semicolon < 0: - raise CDefError("'extern \"Python\": no ';' found") - parts.append(csource[endpos:semicolon+1]) - csource = csource[semicolon+1:] - parts.append(' void __cffi_extern_python_stop;') - #print ''.join(parts)+csource - #print - parts.append(csource) - return ''.join(parts) - -def _warn_for_string_literal(csource): - if '"' not in csource: - return - for line in csource.splitlines(): - if '"' in line and not line.lstrip().startswith('#'): - import warnings - warnings.warn("String literal found in cdef() or type source. " - "String literals are ignored here, but you should " - "remove them anyway because some character sequences " - "confuse pre-parsing.") - break - -def _warn_for_non_extern_non_static_global_variable(decl): - if not decl.storage: - import warnings - warnings.warn("Global variable '%s' in cdef(): for consistency " - "with C it should have a storage class specifier " - "(usually 'extern')" % (decl.name,)) - -def _remove_line_directives(csource): - # _r_line_directive matches whole lines, without the final \n, if they - # start with '#line' with some spacing allowed, or '#NUMBER'. This - # function stores them away and replaces them with exactly the string - # '#line@N', where N is the index in the list 'line_directives'. - line_directives = [] - def replace(m): - i = len(line_directives) - line_directives.append(m.group()) - return '#line@%d' % i - csource = _r_line_directive.sub(replace, csource) - return csource, line_directives - -def _put_back_line_directives(csource, line_directives): - def replace(m): - s = m.group() - if not s.startswith('#line@'): - raise AssertionError("unexpected #line directive " - "(should have been processed and removed") - return line_directives[int(s[6:])] - return _r_line_directive.sub(replace, csource) - -def _preprocess(csource): - # First, remove the lines of the form '#line N "filename"' because - # the "filename" part could confuse the rest - csource, line_directives = _remove_line_directives(csource) - # Remove comments. NOTE: this only work because the cdef() section - # should not contain any string literals (except in line directives)! - def replace_keeping_newlines(m): - return ' ' + m.group().count('\n') * '\n' - csource = _r_comment.sub(replace_keeping_newlines, csource) - # Remove the "#define FOO x" lines - macros = {} - for match in _r_define.finditer(csource): - macroname, macrovalue = match.groups() - macrovalue = macrovalue.replace('\\\n', '').strip() - macros[macroname] = macrovalue - csource = _r_define.sub('', csource) - # - if pycparser.__version__ < '2.14': - csource = _workaround_for_old_pycparser(csource) - # - # BIG HACK: replace WINAPI or __stdcall with "volatile const". - # It doesn't make sense for the return type of a function to be - # "volatile volatile const", so we abuse it to detect __stdcall... - # Hack number 2 is that "int(volatile *fptr)();" is not valid C - # syntax, so we place the "volatile" before the opening parenthesis. - csource = _r_stdcall2.sub(' volatile volatile const(', csource) - csource = _r_stdcall1.sub(' volatile volatile const ', csource) - csource = _r_cdecl.sub(' ', csource) - # - # Replace `extern "Python"` with start/end markers - csource = _preprocess_extern_python(csource) - # - # Now there should not be any string literal left; warn if we get one - _warn_for_string_literal(csource) - # - # Replace "[...]" with "[__dotdotdotarray__]" - csource = _r_partial_array.sub('[__dotdotdotarray__]', csource) - # - # Replace "...}" with "__dotdotdotNUM__}". This construction should - # occur only at the end of enums; at the end of structs we have "...;}" - # and at the end of vararg functions "...);". Also replace "=...[,}]" - # with ",__dotdotdotNUM__[,}]": this occurs in the enums too, when - # giving an unknown value. - matches = list(_r_partial_enum.finditer(csource)) - for number, match in enumerate(reversed(matches)): - p = match.start() - if csource[p] == '=': - p2 = csource.find('...', p, match.end()) - assert p2 > p - csource = '%s,__dotdotdot%d__ %s' % (csource[:p], number, - csource[p2+3:]) - else: - assert csource[p:p+3] == '...' - csource = '%s __dotdotdot%d__ %s' % (csource[:p], number, - csource[p+3:]) - # Replace "int ..." or "unsigned long int..." with "__dotdotdotint__" - csource = _r_int_dotdotdot.sub(' __dotdotdotint__ ', csource) - # Replace "float ..." or "double..." with "__dotdotdotfloat__" - csource = _r_float_dotdotdot.sub(' __dotdotdotfloat__ ', csource) - # Replace all remaining "..." with the same name, "__dotdotdot__", - # which is declared with a typedef for the purpose of C parsing. - csource = csource.replace('...', ' __dotdotdot__ ') - # Finally, put back the line directives - csource = _put_back_line_directives(csource, line_directives) - return csource, macros - -def _common_type_names(csource): - # Look in the source for what looks like usages of types from the - # list of common types. A "usage" is approximated here as the - # appearance of the word, minus a "definition" of the type, which - # is the last word in a "typedef" statement. Approximative only - # but should be fine for all the common types. - look_for_words = set(COMMON_TYPES) - look_for_words.add(';') - look_for_words.add(',') - look_for_words.add('(') - look_for_words.add(')') - look_for_words.add('typedef') - words_used = set() - is_typedef = False - paren = 0 - previous_word = '' - for word in _r_words.findall(csource): - if word in look_for_words: - if word == ';': - if is_typedef: - words_used.discard(previous_word) - look_for_words.discard(previous_word) - is_typedef = False - elif word == 'typedef': - is_typedef = True - paren = 0 - elif word == '(': - paren += 1 - elif word == ')': - paren -= 1 - elif word == ',': - if is_typedef and paren == 0: - words_used.discard(previous_word) - look_for_words.discard(previous_word) - else: # word in COMMON_TYPES - words_used.add(word) - previous_word = word - return words_used - - -class Parser(object): - - def __init__(self): - self._declarations = {} - self._included_declarations = set() - self._anonymous_counter = 0 - self._structnode2type = weakref.WeakKeyDictionary() - self._options = {} - self._int_constants = {} - self._recomplete = [] - self._uses_new_feature = None - - def _parse(self, csource): - csource, macros = _preprocess(csource) - # XXX: for more efficiency we would need to poke into the - # internals of CParser... the following registers the - # typedefs, because their presence or absence influences the - # parsing itself (but what they are typedef'ed to plays no role) - ctn = _common_type_names(csource) - typenames = [] - for name in sorted(self._declarations): - if name.startswith('typedef '): - name = name[8:] - typenames.append(name) - ctn.discard(name) - typenames += sorted(ctn) - # - csourcelines = [] - csourcelines.append('# 1 ""') - for typename in typenames: - csourcelines.append('typedef int %s;' % typename) - csourcelines.append('typedef int __dotdotdotint__, __dotdotdotfloat__,' - ' __dotdotdot__;') - # this forces pycparser to consider the following in the file - # called from line 1 - csourcelines.append('# 1 "%s"' % (CDEF_SOURCE_STRING,)) - csourcelines.append(csource) - csourcelines.append('') # see test_missing_newline_bug - fullcsource = '\n'.join(csourcelines) - if lock is not None: - lock.acquire() # pycparser is not thread-safe... - try: - ast = _get_parser().parse(fullcsource) - except pycparser.c_parser.ParseError as e: - self.convert_pycparser_error(e, csource) - finally: - if lock is not None: - lock.release() - # csource will be used to find buggy source text - return ast, macros, csource - - def _convert_pycparser_error(self, e, csource): - # xxx look for ":NUM:" at the start of str(e) - # and interpret that as a line number. This will not work if - # the user gives explicit ``# NUM "FILE"`` directives. - line = None - msg = str(e) - match = re.match(r"%s:(\d+):" % (CDEF_SOURCE_STRING,), msg) - if match: - linenum = int(match.group(1), 10) - csourcelines = csource.splitlines() - if 1 <= linenum <= len(csourcelines): - line = csourcelines[linenum-1] - return line - - def convert_pycparser_error(self, e, csource): - line = self._convert_pycparser_error(e, csource) - - msg = str(e) - if line: - msg = 'cannot parse "%s"\n%s' % (line.strip(), msg) - else: - msg = 'parse error\n%s' % (msg,) - raise CDefError(msg) - - def parse(self, csource, override=False, packed=False, pack=None, - dllexport=False): - if packed: - if packed != True: - raise ValueError("'packed' should be False or True; use " - "'pack' to give another value") - if pack: - raise ValueError("cannot give both 'pack' and 'packed'") - pack = 1 - elif pack: - if pack & (pack - 1): - raise ValueError("'pack' must be a power of two, not %r" % - (pack,)) - else: - pack = 0 - prev_options = self._options - try: - self._options = {'override': override, - 'packed': pack, - 'dllexport': dllexport} - self._internal_parse(csource) - finally: - self._options = prev_options - - def _internal_parse(self, csource): - ast, macros, csource = self._parse(csource) - # add the macros - self._process_macros(macros) - # find the first "__dotdotdot__" and use that as a separator - # between the repeated typedefs and the real csource - iterator = iter(ast.ext) - for decl in iterator: - if decl.name == '__dotdotdot__': - break - else: - assert 0 - current_decl = None - # - try: - self._inside_extern_python = '__cffi_extern_python_stop' - for decl in iterator: - current_decl = decl - if isinstance(decl, pycparser.c_ast.Decl): - self._parse_decl(decl) - elif isinstance(decl, pycparser.c_ast.Typedef): - if not decl.name: - raise CDefError("typedef does not declare any name", - decl) - quals = 0 - if (isinstance(decl.type.type, pycparser.c_ast.IdentifierType) and - decl.type.type.names[-1].startswith('__dotdotdot')): - realtype = self._get_unknown_type(decl) - elif (isinstance(decl.type, pycparser.c_ast.PtrDecl) and - isinstance(decl.type.type, pycparser.c_ast.TypeDecl) and - isinstance(decl.type.type.type, - pycparser.c_ast.IdentifierType) and - decl.type.type.type.names[-1].startswith('__dotdotdot')): - realtype = self._get_unknown_ptr_type(decl) - else: - realtype, quals = self._get_type_and_quals( - decl.type, name=decl.name, partial_length_ok=True, - typedef_example="*(%s *)0" % (decl.name,)) - self._declare('typedef ' + decl.name, realtype, quals=quals) - elif decl.__class__.__name__ == 'Pragma': - # skip pragma, only in pycparser 2.15 - import warnings - warnings.warn( - "#pragma in cdef() are entirely ignored. " - "They should be removed for now, otherwise your " - "code might behave differently in a future version " - "of CFFI if #pragma support gets added. Note that " - "'#pragma pack' needs to be replaced with the " - "'packed' keyword argument to cdef().") - else: - raise CDefError("unexpected <%s>: this construct is valid " - "C but not valid in cdef()" % - decl.__class__.__name__, decl) - except CDefError as e: - if len(e.args) == 1: - e.args = e.args + (current_decl,) - raise - except FFIError as e: - msg = self._convert_pycparser_error(e, csource) - if msg: - e.args = (e.args[0] + "\n *** Err: %s" % msg,) - raise - - def _add_constants(self, key, val): - if key in self._int_constants: - if self._int_constants[key] == val: - return # ignore identical double declarations - raise FFIError( - "multiple declarations of constant: %s" % (key,)) - self._int_constants[key] = val - - def _add_integer_constant(self, name, int_str): - int_str = int_str.lower().rstrip("ul") - neg = int_str.startswith('-') - if neg: - int_str = int_str[1:] - # "010" is not valid oct in py3 - if (int_str.startswith("0") and int_str != '0' - and not int_str.startswith("0x")): - int_str = "0o" + int_str[1:] - pyvalue = int(int_str, 0) - if neg: - pyvalue = -pyvalue - self._add_constants(name, pyvalue) - self._declare('macro ' + name, pyvalue) - - def _process_macros(self, macros): - for key, value in macros.items(): - value = value.strip() - if _r_int_literal.match(value): - self._add_integer_constant(key, value) - elif value == '...': - self._declare('macro ' + key, value) - else: - raise CDefError( - 'only supports one of the following syntax:\n' - ' #define %s ... (literally dot-dot-dot)\n' - ' #define %s NUMBER (with NUMBER an integer' - ' constant, decimal/hex/octal)\n' - 'got:\n' - ' #define %s %s' - % (key, key, key, value)) - - def _declare_function(self, tp, quals, decl): - tp = self._get_type_pointer(tp, quals) - if self._options.get('dllexport'): - tag = 'dllexport_python ' - elif self._inside_extern_python == '__cffi_extern_python_start': - tag = 'extern_python ' - elif self._inside_extern_python == '__cffi_extern_python_plus_c_start': - tag = 'extern_python_plus_c ' - else: - tag = 'function ' - self._declare(tag + decl.name, tp) - - def _parse_decl(self, decl): - node = decl.type - if isinstance(node, pycparser.c_ast.FuncDecl): - tp, quals = self._get_type_and_quals(node, name=decl.name) - assert isinstance(tp, model.RawFunctionType) - self._declare_function(tp, quals, decl) - else: - if isinstance(node, pycparser.c_ast.Struct): - self._get_struct_union_enum_type('struct', node) - elif isinstance(node, pycparser.c_ast.Union): - self._get_struct_union_enum_type('union', node) - elif isinstance(node, pycparser.c_ast.Enum): - self._get_struct_union_enum_type('enum', node) - elif not decl.name: - raise CDefError("construct does not declare any variable", - decl) - # - if decl.name: - tp, quals = self._get_type_and_quals(node, - partial_length_ok=True) - if tp.is_raw_function: - self._declare_function(tp, quals, decl) - elif (tp.is_integer_type() and - hasattr(decl, 'init') and - hasattr(decl.init, 'value') and - _r_int_literal.match(decl.init.value)): - self._add_integer_constant(decl.name, decl.init.value) - elif (tp.is_integer_type() and - isinstance(decl.init, pycparser.c_ast.UnaryOp) and - decl.init.op == '-' and - hasattr(decl.init.expr, 'value') and - _r_int_literal.match(decl.init.expr.value)): - self._add_integer_constant(decl.name, - '-' + decl.init.expr.value) - elif (tp is model.void_type and - decl.name.startswith('__cffi_extern_python_')): - # hack: `extern "Python"` in the C source is replaced - # with "void __cffi_extern_python_start;" and - # "void __cffi_extern_python_stop;" - self._inside_extern_python = decl.name - else: - if self._inside_extern_python !='__cffi_extern_python_stop': - raise CDefError( - "cannot declare constants or " - "variables with 'extern \"Python\"'") - if (quals & model.Q_CONST) and not tp.is_array_type: - self._declare('constant ' + decl.name, tp, quals=quals) - else: - _warn_for_non_extern_non_static_global_variable(decl) - self._declare('variable ' + decl.name, tp, quals=quals) - - def parse_type(self, cdecl): - return self.parse_type_and_quals(cdecl)[0] - - def parse_type_and_quals(self, cdecl): - ast, macros = self._parse('void __dummy(\n%s\n);' % cdecl)[:2] - assert not macros - exprnode = ast.ext[-1].type.args.params[0] - if isinstance(exprnode, pycparser.c_ast.ID): - raise CDefError("unknown identifier '%s'" % (exprnode.name,)) - return self._get_type_and_quals(exprnode.type) - - def _declare(self, name, obj, included=False, quals=0): - if name in self._declarations: - prevobj, prevquals = self._declarations[name] - if prevobj is obj and prevquals == quals: - return - if not self._options.get('override'): - raise FFIError( - "multiple declarations of %s (for interactive usage, " - "try cdef(xx, override=True))" % (name,)) - assert '__dotdotdot__' not in name.split() - self._declarations[name] = (obj, quals) - if included: - self._included_declarations.add(obj) - - def _extract_quals(self, type): - quals = 0 - if isinstance(type, (pycparser.c_ast.TypeDecl, - pycparser.c_ast.PtrDecl)): - if 'const' in type.quals: - quals |= model.Q_CONST - if 'volatile' in type.quals: - quals |= model.Q_VOLATILE - if 'restrict' in type.quals: - quals |= model.Q_RESTRICT - return quals - - def _get_type_pointer(self, type, quals, declname=None): - if isinstance(type, model.RawFunctionType): - return type.as_function_pointer() - if (isinstance(type, model.StructOrUnionOrEnum) and - type.name.startswith('$') and type.name[1:].isdigit() and - type.forcename is None and declname is not None): - return model.NamedPointerType(type, declname, quals) - return model.PointerType(type, quals) - - def _get_type_and_quals(self, typenode, name=None, partial_length_ok=False, - typedef_example=None): - # first, dereference typedefs, if we have it already parsed, we're good - if (isinstance(typenode, pycparser.c_ast.TypeDecl) and - isinstance(typenode.type, pycparser.c_ast.IdentifierType) and - len(typenode.type.names) == 1 and - ('typedef ' + typenode.type.names[0]) in self._declarations): - tp, quals = self._declarations['typedef ' + typenode.type.names[0]] - quals |= self._extract_quals(typenode) - return tp, quals - # - if isinstance(typenode, pycparser.c_ast.ArrayDecl): - # array type - if typenode.dim is None: - length = None - else: - length = self._parse_constant( - typenode.dim, partial_length_ok=partial_length_ok) - # a hack: in 'typedef int foo_t[...][...];', don't use '...' as - # the length but use directly the C expression that would be - # generated by recompiler.py. This lets the typedef be used in - # many more places within recompiler.py - if typedef_example is not None: - if length == '...': - length = '_cffi_array_len(%s)' % (typedef_example,) - typedef_example = "*" + typedef_example - # - tp, quals = self._get_type_and_quals(typenode.type, - partial_length_ok=partial_length_ok, - typedef_example=typedef_example) - return model.ArrayType(tp, length), quals - # - if isinstance(typenode, pycparser.c_ast.PtrDecl): - # pointer type - itemtype, itemquals = self._get_type_and_quals(typenode.type) - tp = self._get_type_pointer(itemtype, itemquals, declname=name) - quals = self._extract_quals(typenode) - return tp, quals - # - if isinstance(typenode, pycparser.c_ast.TypeDecl): - quals = self._extract_quals(typenode) - type = typenode.type - if isinstance(type, pycparser.c_ast.IdentifierType): - # assume a primitive type. get it from .names, but reduce - # synonyms to a single chosen combination - names = list(type.names) - if names != ['signed', 'char']: # keep this unmodified - prefixes = {} - while names: - name = names[0] - if name in ('short', 'long', 'signed', 'unsigned'): - prefixes[name] = prefixes.get(name, 0) + 1 - del names[0] - else: - break - # ignore the 'signed' prefix below, and reorder the others - newnames = [] - for prefix in ('unsigned', 'short', 'long'): - for i in range(prefixes.get(prefix, 0)): - newnames.append(prefix) - if not names: - names = ['int'] # implicitly - if names == ['int']: # but kill it if 'short' or 'long' - if 'short' in prefixes or 'long' in prefixes: - names = [] - names = newnames + names - ident = ' '.join(names) - if ident == 'void': - return model.void_type, quals - if ident == '__dotdotdot__': - raise FFIError(':%d: bad usage of "..."' % - typenode.coord.line) - tp0, quals0 = resolve_common_type(self, ident) - return tp0, (quals | quals0) - # - if isinstance(type, pycparser.c_ast.Struct): - # 'struct foobar' - tp = self._get_struct_union_enum_type('struct', type, name) - return tp, quals - # - if isinstance(type, pycparser.c_ast.Union): - # 'union foobar' - tp = self._get_struct_union_enum_type('union', type, name) - return tp, quals - # - if isinstance(type, pycparser.c_ast.Enum): - # 'enum foobar' - tp = self._get_struct_union_enum_type('enum', type, name) - return tp, quals - # - if isinstance(typenode, pycparser.c_ast.FuncDecl): - # a function type - return self._parse_function_type(typenode, name), 0 - # - # nested anonymous structs or unions end up here - if isinstance(typenode, pycparser.c_ast.Struct): - return self._get_struct_union_enum_type('struct', typenode, name, - nested=True), 0 - if isinstance(typenode, pycparser.c_ast.Union): - return self._get_struct_union_enum_type('union', typenode, name, - nested=True), 0 - # - raise FFIError(":%d: bad or unsupported type declaration" % - typenode.coord.line) - - def _parse_function_type(self, typenode, funcname=None): - params = list(getattr(typenode.args, 'params', [])) - for i, arg in enumerate(params): - if not hasattr(arg, 'type'): - raise CDefError("%s arg %d: unknown type '%s'" - " (if you meant to use the old C syntax of giving" - " untyped arguments, it is not supported)" - % (funcname or 'in expression', i + 1, - getattr(arg, 'name', '?'))) - ellipsis = ( - len(params) > 0 and - isinstance(params[-1].type, pycparser.c_ast.TypeDecl) and - isinstance(params[-1].type.type, - pycparser.c_ast.IdentifierType) and - params[-1].type.type.names == ['__dotdotdot__']) - if ellipsis: - params.pop() - if not params: - raise CDefError( - "%s: a function with only '(...)' as argument" - " is not correct C" % (funcname or 'in expression')) - args = [self._as_func_arg(*self._get_type_and_quals(argdeclnode.type)) - for argdeclnode in params] - if not ellipsis and args == [model.void_type]: - args = [] - result, quals = self._get_type_and_quals(typenode.type) - # the 'quals' on the result type are ignored. HACK: we absure them - # to detect __stdcall functions: we textually replace "__stdcall" - # with "volatile volatile const" above. - abi = None - if hasattr(typenode.type, 'quals'): # else, probable syntax error anyway - if typenode.type.quals[-3:] == ['volatile', 'volatile', 'const']: - abi = '__stdcall' - return model.RawFunctionType(tuple(args), result, ellipsis, abi) - - def _as_func_arg(self, type, quals): - if isinstance(type, model.ArrayType): - return model.PointerType(type.item, quals) - elif isinstance(type, model.RawFunctionType): - return type.as_function_pointer() - else: - return type - - def _get_struct_union_enum_type(self, kind, type, name=None, nested=False): - # First, a level of caching on the exact 'type' node of the AST. - # This is obscure, but needed because pycparser "unrolls" declarations - # such as "typedef struct { } foo_t, *foo_p" and we end up with - # an AST that is not a tree, but a DAG, with the "type" node of the - # two branches foo_t and foo_p of the trees being the same node. - # It's a bit silly but detecting "DAG-ness" in the AST tree seems - # to be the only way to distinguish this case from two independent - # structs. See test_struct_with_two_usages. - try: - return self._structnode2type[type] - except KeyError: - pass - # - # Note that this must handle parsing "struct foo" any number of - # times and always return the same StructType object. Additionally, - # one of these times (not necessarily the first), the fields of - # the struct can be specified with "struct foo { ...fields... }". - # If no name is given, then we have to create a new anonymous struct - # with no caching; in this case, the fields are either specified - # right now or never. - # - force_name = name - name = type.name - # - # get the type or create it if needed - if name is None: - # 'force_name' is used to guess a more readable name for - # anonymous structs, for the common case "typedef struct { } foo". - if force_name is not None: - explicit_name = '$%s' % force_name - else: - self._anonymous_counter += 1 - explicit_name = '$%d' % self._anonymous_counter - tp = None - else: - explicit_name = name - key = '%s %s' % (kind, name) - tp, _ = self._declarations.get(key, (None, None)) - # - if tp is None: - if kind == 'struct': - tp = model.StructType(explicit_name, None, None, None) - elif kind == 'union': - tp = model.UnionType(explicit_name, None, None, None) - elif kind == 'enum': - if explicit_name == '__dotdotdot__': - raise CDefError("Enums cannot be declared with ...") - tp = self._build_enum_type(explicit_name, type.values) - else: - raise AssertionError("kind = %r" % (kind,)) - if name is not None: - self._declare(key, tp) - else: - if kind == 'enum' and type.values is not None: - raise NotImplementedError( - "enum %s: the '{}' declaration should appear on the first " - "time the enum is mentioned, not later" % explicit_name) - if not tp.forcename: - tp.force_the_name(force_name) - if tp.forcename and '$' in tp.name: - self._declare('anonymous %s' % tp.forcename, tp) - # - self._structnode2type[type] = tp - # - # enums: done here - if kind == 'enum': - return tp - # - # is there a 'type.decls'? If yes, then this is the place in the - # C sources that declare the fields. If no, then just return the - # existing type, possibly still incomplete. - if type.decls is None: - return tp - # - if tp.fldnames is not None: - raise CDefError("duplicate declaration of struct %s" % name) - fldnames = [] - fldtypes = [] - fldbitsize = [] - fldquals = [] - for decl in type.decls: - if (isinstance(decl.type, pycparser.c_ast.IdentifierType) and - ''.join(decl.type.names) == '__dotdotdot__'): - # XXX pycparser is inconsistent: 'names' should be a list - # of strings, but is sometimes just one string. Use - # str.join() as a way to cope with both. - self._make_partial(tp, nested) - continue - if decl.bitsize is None: - bitsize = -1 - else: - bitsize = self._parse_constant(decl.bitsize) - self._partial_length = False - type, fqual = self._get_type_and_quals(decl.type, - partial_length_ok=True) - if self._partial_length: - self._make_partial(tp, nested) - if isinstance(type, model.StructType) and type.partial: - self._make_partial(tp, nested) - fldnames.append(decl.name or '') - fldtypes.append(type) - fldbitsize.append(bitsize) - fldquals.append(fqual) - tp.fldnames = tuple(fldnames) - tp.fldtypes = tuple(fldtypes) - tp.fldbitsize = tuple(fldbitsize) - tp.fldquals = tuple(fldquals) - if fldbitsize != [-1] * len(fldbitsize): - if isinstance(tp, model.StructType) and tp.partial: - raise NotImplementedError("%s: using both bitfields and '...;'" - % (tp,)) - tp.packed = self._options.get('packed') - if tp.completed: # must be re-completed: it is not opaque any more - tp.completed = 0 - self._recomplete.append(tp) - return tp - - def _make_partial(self, tp, nested): - if not isinstance(tp, model.StructOrUnion): - raise CDefError("%s cannot be partial" % (tp,)) - if not tp.has_c_name() and not nested: - raise NotImplementedError("%s is partial but has no C name" %(tp,)) - tp.partial = True - - def _parse_constant(self, exprnode, partial_length_ok=False): - # for now, limited to expressions that are an immediate number - # or positive/negative number - if isinstance(exprnode, pycparser.c_ast.Constant): - s = exprnode.value - if '0' <= s[0] <= '9': - s = s.rstrip('uUlL') - try: - if s.startswith('0'): - return int(s, 8) - else: - return int(s, 10) - except ValueError: - if len(s) > 1: - if s.lower()[0:2] == '0x': - return int(s, 16) - elif s.lower()[0:2] == '0b': - return int(s, 2) - raise CDefError("invalid constant %r" % (s,)) - elif s[0] == "'" and s[-1] == "'" and ( - len(s) == 3 or (len(s) == 4 and s[1] == "\\")): - return ord(s[-2]) - else: - raise CDefError("invalid constant %r" % (s,)) - # - if (isinstance(exprnode, pycparser.c_ast.UnaryOp) and - exprnode.op == '+'): - return self._parse_constant(exprnode.expr) - # - if (isinstance(exprnode, pycparser.c_ast.UnaryOp) and - exprnode.op == '-'): - return -self._parse_constant(exprnode.expr) - # load previously defined int constant - if (isinstance(exprnode, pycparser.c_ast.ID) and - exprnode.name in self._int_constants): - return self._int_constants[exprnode.name] - # - if (isinstance(exprnode, pycparser.c_ast.ID) and - exprnode.name == '__dotdotdotarray__'): - if partial_length_ok: - self._partial_length = True - return '...' - raise FFIError(":%d: unsupported '[...]' here, cannot derive " - "the actual array length in this context" - % exprnode.coord.line) - # - if isinstance(exprnode, pycparser.c_ast.BinaryOp): - left = self._parse_constant(exprnode.left) - right = self._parse_constant(exprnode.right) - if exprnode.op == '+': - return left + right - elif exprnode.op == '-': - return left - right - elif exprnode.op == '*': - return left * right - elif exprnode.op == '/': - return self._c_div(left, right) - elif exprnode.op == '%': - return left - self._c_div(left, right) * right - elif exprnode.op == '<<': - return left << right - elif exprnode.op == '>>': - return left >> right - elif exprnode.op == '&': - return left & right - elif exprnode.op == '|': - return left | right - elif exprnode.op == '^': - return left ^ right - # - raise FFIError(":%d: unsupported expression: expected a " - "simple numeric constant" % exprnode.coord.line) - - def _c_div(self, a, b): - result = a // b - if ((a < 0) ^ (b < 0)) and (a % b) != 0: - result += 1 - return result - - def _build_enum_type(self, explicit_name, decls): - if decls is not None: - partial = False - enumerators = [] - enumvalues = [] - nextenumvalue = 0 - for enum in decls.enumerators: - if _r_enum_dotdotdot.match(enum.name): - partial = True - continue - if enum.value is not None: - nextenumvalue = self._parse_constant(enum.value) - enumerators.append(enum.name) - enumvalues.append(nextenumvalue) - self._add_constants(enum.name, nextenumvalue) - nextenumvalue += 1 - enumerators = tuple(enumerators) - enumvalues = tuple(enumvalues) - tp = model.EnumType(explicit_name, enumerators, enumvalues) - tp.partial = partial - else: # opaque enum - tp = model.EnumType(explicit_name, (), ()) - return tp - - def include(self, other): - for name, (tp, quals) in other._declarations.items(): - if name.startswith('anonymous $enum_$'): - continue # fix for test_anonymous_enum_include - kind = name.split(' ', 1)[0] - if kind in ('struct', 'union', 'enum', 'anonymous', 'typedef'): - self._declare(name, tp, included=True, quals=quals) - for k, v in other._int_constants.items(): - self._add_constants(k, v) - - def _get_unknown_type(self, decl): - typenames = decl.type.type.names - if typenames == ['__dotdotdot__']: - return model.unknown_type(decl.name) - - if typenames == ['__dotdotdotint__']: - if self._uses_new_feature is None: - self._uses_new_feature = "'typedef int... %s'" % decl.name - return model.UnknownIntegerType(decl.name) - - if typenames == ['__dotdotdotfloat__']: - # note: not for 'long double' so far - if self._uses_new_feature is None: - self._uses_new_feature = "'typedef float... %s'" % decl.name - return model.UnknownFloatType(decl.name) - - raise FFIError(':%d: unsupported usage of "..." in typedef' - % decl.coord.line) - - def _get_unknown_ptr_type(self, decl): - if decl.type.type.type.names == ['__dotdotdot__']: - return model.unknown_ptr_type(decl.name) - raise FFIError(':%d: unsupported usage of "..." in typedef' - % decl.coord.line) diff --git a/.venv/lib/python3.9/site-packages/cffi/error.py b/.venv/lib/python3.9/site-packages/cffi/error.py deleted file mode 100644 index 0a27247..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/error.py +++ /dev/null @@ -1,31 +0,0 @@ - -class FFIError(Exception): - __module__ = 'cffi' - -class CDefError(Exception): - __module__ = 'cffi' - def __str__(self): - try: - current_decl = self.args[1] - filename = current_decl.coord.file - linenum = current_decl.coord.line - prefix = '%s:%d: ' % (filename, linenum) - except (AttributeError, TypeError, IndexError): - prefix = '' - return '%s%s' % (prefix, self.args[0]) - -class VerificationError(Exception): - """ An error raised when verification fails - """ - __module__ = 'cffi' - -class VerificationMissing(Exception): - """ An error raised when incomplete structures are passed into - cdef, but no verification has been done - """ - __module__ = 'cffi' - -class PkgConfigError(Exception): - """ An error raised for missing modules in pkg-config - """ - __module__ = 'cffi' diff --git a/.venv/lib/python3.9/site-packages/cffi/ffiplatform.py b/.venv/lib/python3.9/site-packages/cffi/ffiplatform.py deleted file mode 100644 index adca28f..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/ffiplatform.py +++ /dev/null @@ -1,113 +0,0 @@ -import sys, os -from .error import VerificationError - - -LIST_OF_FILE_NAMES = ['sources', 'include_dirs', 'library_dirs', - 'extra_objects', 'depends'] - -def get_extension(srcfilename, modname, sources=(), **kwds): - from cffi._shimmed_dist_utils import Extension - allsources = [srcfilename] - for src in sources: - allsources.append(os.path.normpath(src)) - return Extension(name=modname, sources=allsources, **kwds) - -def compile(tmpdir, ext, compiler_verbose=0, debug=None): - """Compile a C extension module using distutils.""" - - saved_environ = os.environ.copy() - try: - outputfilename = _build(tmpdir, ext, compiler_verbose, debug) - outputfilename = os.path.abspath(outputfilename) - finally: - # workaround for a distutils bugs where some env vars can - # become longer and longer every time it is used - for key, value in saved_environ.items(): - if os.environ.get(key) != value: - os.environ[key] = value - return outputfilename - -def _build(tmpdir, ext, compiler_verbose=0, debug=None): - # XXX compact but horrible :-( - from cffi._shimmed_dist_utils import Distribution, CompileError, LinkError, set_threshold, set_verbosity - - dist = Distribution({'ext_modules': [ext]}) - dist.parse_config_files() - options = dist.get_option_dict('build_ext') - if debug is None: - debug = sys.flags.debug - options['debug'] = ('ffiplatform', debug) - options['force'] = ('ffiplatform', True) - options['build_lib'] = ('ffiplatform', tmpdir) - options['build_temp'] = ('ffiplatform', tmpdir) - # - try: - old_level = set_threshold(0) or 0 - try: - set_verbosity(compiler_verbose) - dist.run_command('build_ext') - cmd_obj = dist.get_command_obj('build_ext') - [soname] = cmd_obj.get_outputs() - finally: - set_threshold(old_level) - except (CompileError, LinkError) as e: - raise VerificationError('%s: %s' % (e.__class__.__name__, e)) - # - return soname - -try: - from os.path import samefile -except ImportError: - def samefile(f1, f2): - return os.path.abspath(f1) == os.path.abspath(f2) - -def maybe_relative_path(path): - if not os.path.isabs(path): - return path # already relative - dir = path - names = [] - while True: - prevdir = dir - dir, name = os.path.split(prevdir) - if dir == prevdir or not dir: - return path # failed to make it relative - names.append(name) - try: - if samefile(dir, os.curdir): - names.reverse() - return os.path.join(*names) - except OSError: - pass - -# ____________________________________________________________ - -try: - int_or_long = (int, long) - import cStringIO -except NameError: - int_or_long = int # Python 3 - import io as cStringIO - -def _flatten(x, f): - if isinstance(x, str): - f.write('%ds%s' % (len(x), x)) - elif isinstance(x, dict): - keys = sorted(x.keys()) - f.write('%dd' % len(keys)) - for key in keys: - _flatten(key, f) - _flatten(x[key], f) - elif isinstance(x, (list, tuple)): - f.write('%dl' % len(x)) - for value in x: - _flatten(value, f) - elif isinstance(x, int_or_long): - f.write('%di' % (x,)) - else: - raise TypeError( - "the keywords to verify() contains unsupported object %r" % (x,)) - -def flatten(x): - f = cStringIO.StringIO() - _flatten(x, f) - return f.getvalue() diff --git a/.venv/lib/python3.9/site-packages/cffi/lock.py b/.venv/lib/python3.9/site-packages/cffi/lock.py deleted file mode 100644 index db91b71..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/lock.py +++ /dev/null @@ -1,30 +0,0 @@ -import sys - -if sys.version_info < (3,): - try: - from thread import allocate_lock - except ImportError: - from dummy_thread import allocate_lock -else: - try: - from _thread import allocate_lock - except ImportError: - from _dummy_thread import allocate_lock - - -##import sys -##l1 = allocate_lock - -##class allocate_lock(object): -## def __init__(self): -## self._real = l1() -## def __enter__(self): -## for i in range(4, 0, -1): -## print sys._getframe(i).f_code -## print -## return self._real.__enter__() -## def __exit__(self, *args): -## return self._real.__exit__(*args) -## def acquire(self, f): -## assert f is False -## return self._real.acquire(f) diff --git a/.venv/lib/python3.9/site-packages/cffi/model.py b/.venv/lib/python3.9/site-packages/cffi/model.py deleted file mode 100644 index e5f4cae..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/model.py +++ /dev/null @@ -1,618 +0,0 @@ -import types -import weakref - -from .lock import allocate_lock -from .error import CDefError, VerificationError, VerificationMissing - -# type qualifiers -Q_CONST = 0x01 -Q_RESTRICT = 0x02 -Q_VOLATILE = 0x04 - -def qualify(quals, replace_with): - if quals & Q_CONST: - replace_with = ' const ' + replace_with.lstrip() - if quals & Q_VOLATILE: - replace_with = ' volatile ' + replace_with.lstrip() - if quals & Q_RESTRICT: - # It seems that __restrict is supported by gcc and msvc. - # If you hit some different compiler, add a #define in - # _cffi_include.h for it (and in its copies, documented there) - replace_with = ' __restrict ' + replace_with.lstrip() - return replace_with - - -class BaseTypeByIdentity(object): - is_array_type = False - is_raw_function = False - - def get_c_name(self, replace_with='', context='a C file', quals=0): - result = self.c_name_with_marker - assert result.count('&') == 1 - # some logic duplication with ffi.getctype()... :-( - replace_with = replace_with.strip() - if replace_with: - if replace_with.startswith('*') and '&[' in result: - replace_with = '(%s)' % replace_with - elif not replace_with[0] in '[(': - replace_with = ' ' + replace_with - replace_with = qualify(quals, replace_with) - result = result.replace('&', replace_with) - if '$' in result: - raise VerificationError( - "cannot generate '%s' in %s: unknown type name" - % (self._get_c_name(), context)) - return result - - def _get_c_name(self): - return self.c_name_with_marker.replace('&', '') - - def has_c_name(self): - return '$' not in self._get_c_name() - - def is_integer_type(self): - return False - - def get_cached_btype(self, ffi, finishlist, can_delay=False): - try: - BType = ffi._cached_btypes[self] - except KeyError: - BType = self.build_backend_type(ffi, finishlist) - BType2 = ffi._cached_btypes.setdefault(self, BType) - assert BType2 is BType - return BType - - def __repr__(self): - return '<%s>' % (self._get_c_name(),) - - def _get_items(self): - return [(name, getattr(self, name)) for name in self._attrs_] - - -class BaseType(BaseTypeByIdentity): - - def __eq__(self, other): - return (self.__class__ == other.__class__ and - self._get_items() == other._get_items()) - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash((self.__class__, tuple(self._get_items()))) - - -class VoidType(BaseType): - _attrs_ = () - - def __init__(self): - self.c_name_with_marker = 'void&' - - def build_backend_type(self, ffi, finishlist): - return global_cache(self, ffi, 'new_void_type') - -void_type = VoidType() - - -class BasePrimitiveType(BaseType): - def is_complex_type(self): - return False - - -class PrimitiveType(BasePrimitiveType): - _attrs_ = ('name',) - - ALL_PRIMITIVE_TYPES = { - 'char': 'c', - 'short': 'i', - 'int': 'i', - 'long': 'i', - 'long long': 'i', - 'signed char': 'i', - 'unsigned char': 'i', - 'unsigned short': 'i', - 'unsigned int': 'i', - 'unsigned long': 'i', - 'unsigned long long': 'i', - 'float': 'f', - 'double': 'f', - 'long double': 'f', - '_cffi_float_complex_t': 'j', - '_cffi_double_complex_t': 'j', - '_Bool': 'i', - # the following types are not primitive in the C sense - 'wchar_t': 'c', - 'char16_t': 'c', - 'char32_t': 'c', - 'int8_t': 'i', - 'uint8_t': 'i', - 'int16_t': 'i', - 'uint16_t': 'i', - 'int32_t': 'i', - 'uint32_t': 'i', - 'int64_t': 'i', - 'uint64_t': 'i', - 'int_least8_t': 'i', - 'uint_least8_t': 'i', - 'int_least16_t': 'i', - 'uint_least16_t': 'i', - 'int_least32_t': 'i', - 'uint_least32_t': 'i', - 'int_least64_t': 'i', - 'uint_least64_t': 'i', - 'int_fast8_t': 'i', - 'uint_fast8_t': 'i', - 'int_fast16_t': 'i', - 'uint_fast16_t': 'i', - 'int_fast32_t': 'i', - 'uint_fast32_t': 'i', - 'int_fast64_t': 'i', - 'uint_fast64_t': 'i', - 'intptr_t': 'i', - 'uintptr_t': 'i', - 'intmax_t': 'i', - 'uintmax_t': 'i', - 'ptrdiff_t': 'i', - 'size_t': 'i', - 'ssize_t': 'i', - } - - def __init__(self, name): - assert name in self.ALL_PRIMITIVE_TYPES - self.name = name - self.c_name_with_marker = name + '&' - - def is_char_type(self): - return self.ALL_PRIMITIVE_TYPES[self.name] == 'c' - def is_integer_type(self): - return self.ALL_PRIMITIVE_TYPES[self.name] == 'i' - def is_float_type(self): - return self.ALL_PRIMITIVE_TYPES[self.name] == 'f' - def is_complex_type(self): - return self.ALL_PRIMITIVE_TYPES[self.name] == 'j' - - def build_backend_type(self, ffi, finishlist): - return global_cache(self, ffi, 'new_primitive_type', self.name) - - -class UnknownIntegerType(BasePrimitiveType): - _attrs_ = ('name',) - - def __init__(self, name): - self.name = name - self.c_name_with_marker = name + '&' - - def is_integer_type(self): - return True - - def build_backend_type(self, ffi, finishlist): - raise NotImplementedError("integer type '%s' can only be used after " - "compilation" % self.name) - -class UnknownFloatType(BasePrimitiveType): - _attrs_ = ('name', ) - - def __init__(self, name): - self.name = name - self.c_name_with_marker = name + '&' - - def build_backend_type(self, ffi, finishlist): - raise NotImplementedError("float type '%s' can only be used after " - "compilation" % self.name) - - -class BaseFunctionType(BaseType): - _attrs_ = ('args', 'result', 'ellipsis', 'abi') - - def __init__(self, args, result, ellipsis, abi=None): - self.args = args - self.result = result - self.ellipsis = ellipsis - self.abi = abi - # - reprargs = [arg._get_c_name() for arg in self.args] - if self.ellipsis: - reprargs.append('...') - reprargs = reprargs or ['void'] - replace_with = self._base_pattern % (', '.join(reprargs),) - if abi is not None: - replace_with = replace_with[:1] + abi + ' ' + replace_with[1:] - self.c_name_with_marker = ( - self.result.c_name_with_marker.replace('&', replace_with)) - - -class RawFunctionType(BaseFunctionType): - # Corresponds to a C type like 'int(int)', which is the C type of - # a function, but not a pointer-to-function. The backend has no - # notion of such a type; it's used temporarily by parsing. - _base_pattern = '(&)(%s)' - is_raw_function = True - - def build_backend_type(self, ffi, finishlist): - raise CDefError("cannot render the type %r: it is a function " - "type, not a pointer-to-function type" % (self,)) - - def as_function_pointer(self): - return FunctionPtrType(self.args, self.result, self.ellipsis, self.abi) - - -class FunctionPtrType(BaseFunctionType): - _base_pattern = '(*&)(%s)' - - def build_backend_type(self, ffi, finishlist): - result = self.result.get_cached_btype(ffi, finishlist) - args = [] - for tp in self.args: - args.append(tp.get_cached_btype(ffi, finishlist)) - abi_args = () - if self.abi == "__stdcall": - if not self.ellipsis: # __stdcall ignored for variadic funcs - try: - abi_args = (ffi._backend.FFI_STDCALL,) - except AttributeError: - pass - return global_cache(self, ffi, 'new_function_type', - tuple(args), result, self.ellipsis, *abi_args) - - def as_raw_function(self): - return RawFunctionType(self.args, self.result, self.ellipsis, self.abi) - - -class PointerType(BaseType): - _attrs_ = ('totype', 'quals') - - def __init__(self, totype, quals=0): - self.totype = totype - self.quals = quals - extra = " *&" - if totype.is_array_type: - extra = "(%s)" % (extra.lstrip(),) - extra = qualify(quals, extra) - self.c_name_with_marker = totype.c_name_with_marker.replace('&', extra) - - def build_backend_type(self, ffi, finishlist): - BItem = self.totype.get_cached_btype(ffi, finishlist, can_delay=True) - return global_cache(self, ffi, 'new_pointer_type', BItem) - -voidp_type = PointerType(void_type) - -def ConstPointerType(totype): - return PointerType(totype, Q_CONST) - -const_voidp_type = ConstPointerType(void_type) - - -class NamedPointerType(PointerType): - _attrs_ = ('totype', 'name') - - def __init__(self, totype, name, quals=0): - PointerType.__init__(self, totype, quals) - self.name = name - self.c_name_with_marker = name + '&' - - -class ArrayType(BaseType): - _attrs_ = ('item', 'length') - is_array_type = True - - def __init__(self, item, length): - self.item = item - self.length = length - # - if length is None: - brackets = '&[]' - elif length == '...': - brackets = '&[/*...*/]' - else: - brackets = '&[%s]' % length - self.c_name_with_marker = ( - self.item.c_name_with_marker.replace('&', brackets)) - - def length_is_unknown(self): - return isinstance(self.length, str) - - def resolve_length(self, newlength): - return ArrayType(self.item, newlength) - - def build_backend_type(self, ffi, finishlist): - if self.length_is_unknown(): - raise CDefError("cannot render the type %r: unknown length" % - (self,)) - self.item.get_cached_btype(ffi, finishlist) # force the item BType - BPtrItem = PointerType(self.item).get_cached_btype(ffi, finishlist) - return global_cache(self, ffi, 'new_array_type', BPtrItem, self.length) - -char_array_type = ArrayType(PrimitiveType('char'), None) - - -class StructOrUnionOrEnum(BaseTypeByIdentity): - _attrs_ = ('name',) - forcename = None - - def build_c_name_with_marker(self): - name = self.forcename or '%s %s' % (self.kind, self.name) - self.c_name_with_marker = name + '&' - - def force_the_name(self, forcename): - self.forcename = forcename - self.build_c_name_with_marker() - - def get_official_name(self): - assert self.c_name_with_marker.endswith('&') - return self.c_name_with_marker[:-1] - - -class StructOrUnion(StructOrUnionOrEnum): - fixedlayout = None - completed = 0 - partial = False - packed = 0 - - def __init__(self, name, fldnames, fldtypes, fldbitsize, fldquals=None): - self.name = name - self.fldnames = fldnames - self.fldtypes = fldtypes - self.fldbitsize = fldbitsize - self.fldquals = fldquals - self.build_c_name_with_marker() - - def anonymous_struct_fields(self): - if self.fldtypes is not None: - for name, type in zip(self.fldnames, self.fldtypes): - if name == '' and isinstance(type, StructOrUnion): - yield type - - def enumfields(self, expand_anonymous_struct_union=True): - fldquals = self.fldquals - if fldquals is None: - fldquals = (0,) * len(self.fldnames) - for name, type, bitsize, quals in zip(self.fldnames, self.fldtypes, - self.fldbitsize, fldquals): - if (name == '' and isinstance(type, StructOrUnion) - and expand_anonymous_struct_union): - # nested anonymous struct/union - for result in type.enumfields(): - yield result - else: - yield (name, type, bitsize, quals) - - def force_flatten(self): - # force the struct or union to have a declaration that lists - # directly all fields returned by enumfields(), flattening - # nested anonymous structs/unions. - names = [] - types = [] - bitsizes = [] - fldquals = [] - for name, type, bitsize, quals in self.enumfields(): - names.append(name) - types.append(type) - bitsizes.append(bitsize) - fldquals.append(quals) - self.fldnames = tuple(names) - self.fldtypes = tuple(types) - self.fldbitsize = tuple(bitsizes) - self.fldquals = tuple(fldquals) - - def get_cached_btype(self, ffi, finishlist, can_delay=False): - BType = StructOrUnionOrEnum.get_cached_btype(self, ffi, finishlist, - can_delay) - if not can_delay: - self.finish_backend_type(ffi, finishlist) - return BType - - def finish_backend_type(self, ffi, finishlist): - if self.completed: - if self.completed != 2: - raise NotImplementedError("recursive structure declaration " - "for '%s'" % (self.name,)) - return - BType = ffi._cached_btypes[self] - # - self.completed = 1 - # - if self.fldtypes is None: - pass # not completing it: it's an opaque struct - # - elif self.fixedlayout is None: - fldtypes = [tp.get_cached_btype(ffi, finishlist) - for tp in self.fldtypes] - lst = list(zip(self.fldnames, fldtypes, self.fldbitsize)) - extra_flags = () - if self.packed: - if self.packed == 1: - extra_flags = (8,) # SF_PACKED - else: - extra_flags = (0, self.packed) - ffi._backend.complete_struct_or_union(BType, lst, self, - -1, -1, *extra_flags) - # - else: - fldtypes = [] - fieldofs, fieldsize, totalsize, totalalignment = self.fixedlayout - for i in range(len(self.fldnames)): - fsize = fieldsize[i] - ftype = self.fldtypes[i] - # - if isinstance(ftype, ArrayType) and ftype.length_is_unknown(): - # fix the length to match the total size - BItemType = ftype.item.get_cached_btype(ffi, finishlist) - nlen, nrest = divmod(fsize, ffi.sizeof(BItemType)) - if nrest != 0: - self._verification_error( - "field '%s.%s' has a bogus size?" % ( - self.name, self.fldnames[i] or '{}')) - ftype = ftype.resolve_length(nlen) - self.fldtypes = (self.fldtypes[:i] + (ftype,) + - self.fldtypes[i+1:]) - # - BFieldType = ftype.get_cached_btype(ffi, finishlist) - if isinstance(ftype, ArrayType) and ftype.length is None: - assert fsize == 0 - else: - bitemsize = ffi.sizeof(BFieldType) - if bitemsize != fsize: - self._verification_error( - "field '%s.%s' is declared as %d bytes, but is " - "really %d bytes" % (self.name, - self.fldnames[i] or '{}', - bitemsize, fsize)) - fldtypes.append(BFieldType) - # - lst = list(zip(self.fldnames, fldtypes, self.fldbitsize, fieldofs)) - ffi._backend.complete_struct_or_union(BType, lst, self, - totalsize, totalalignment) - self.completed = 2 - - def _verification_error(self, msg): - raise VerificationError(msg) - - def check_not_partial(self): - if self.partial and self.fixedlayout is None: - raise VerificationMissing(self._get_c_name()) - - def build_backend_type(self, ffi, finishlist): - self.check_not_partial() - finishlist.append(self) - # - return global_cache(self, ffi, 'new_%s_type' % self.kind, - self.get_official_name(), key=self) - - -class StructType(StructOrUnion): - kind = 'struct' - - -class UnionType(StructOrUnion): - kind = 'union' - - -class EnumType(StructOrUnionOrEnum): - kind = 'enum' - partial = False - partial_resolved = False - - def __init__(self, name, enumerators, enumvalues, baseinttype=None): - self.name = name - self.enumerators = enumerators - self.enumvalues = enumvalues - self.baseinttype = baseinttype - self.build_c_name_with_marker() - - def force_the_name(self, forcename): - StructOrUnionOrEnum.force_the_name(self, forcename) - if self.forcename is None: - name = self.get_official_name() - self.forcename = '$' + name.replace(' ', '_') - - def check_not_partial(self): - if self.partial and not self.partial_resolved: - raise VerificationMissing(self._get_c_name()) - - def build_backend_type(self, ffi, finishlist): - self.check_not_partial() - base_btype = self.build_baseinttype(ffi, finishlist) - return global_cache(self, ffi, 'new_enum_type', - self.get_official_name(), - self.enumerators, self.enumvalues, - base_btype, key=self) - - def build_baseinttype(self, ffi, finishlist): - if self.baseinttype is not None: - return self.baseinttype.get_cached_btype(ffi, finishlist) - # - if self.enumvalues: - smallest_value = min(self.enumvalues) - largest_value = max(self.enumvalues) - else: - import warnings - try: - # XXX! The goal is to ensure that the warnings.warn() - # will not suppress the warning. We want to get it - # several times if we reach this point several times. - __warningregistry__.clear() - except NameError: - pass - warnings.warn("%r has no values explicitly defined; " - "guessing that it is equivalent to 'unsigned int'" - % self._get_c_name()) - smallest_value = largest_value = 0 - if smallest_value < 0: # needs a signed type - sign = 1 - candidate1 = PrimitiveType("int") - candidate2 = PrimitiveType("long") - else: - sign = 0 - candidate1 = PrimitiveType("unsigned int") - candidate2 = PrimitiveType("unsigned long") - btype1 = candidate1.get_cached_btype(ffi, finishlist) - btype2 = candidate2.get_cached_btype(ffi, finishlist) - size1 = ffi.sizeof(btype1) - size2 = ffi.sizeof(btype2) - if (smallest_value >= ((-1) << (8*size1-1)) and - largest_value < (1 << (8*size1-sign))): - return btype1 - if (smallest_value >= ((-1) << (8*size2-1)) and - largest_value < (1 << (8*size2-sign))): - return btype2 - raise CDefError("%s values don't all fit into either 'long' " - "or 'unsigned long'" % self._get_c_name()) - -def unknown_type(name, structname=None): - if structname is None: - structname = '$%s' % name - tp = StructType(structname, None, None, None) - tp.force_the_name(name) - tp.origin = "unknown_type" - return tp - -def unknown_ptr_type(name, structname=None): - if structname is None: - structname = '$$%s' % name - tp = StructType(structname, None, None, None) - return NamedPointerType(tp, name) - - -global_lock = allocate_lock() -_typecache_cffi_backend = weakref.WeakValueDictionary() - -def get_typecache(backend): - # returns _typecache_cffi_backend if backend is the _cffi_backend - # module, or type(backend).__typecache if backend is an instance of - # CTypesBackend (or some FakeBackend class during tests) - if isinstance(backend, types.ModuleType): - return _typecache_cffi_backend - with global_lock: - if not hasattr(type(backend), '__typecache'): - type(backend).__typecache = weakref.WeakValueDictionary() - return type(backend).__typecache - -def global_cache(srctype, ffi, funcname, *args, **kwds): - key = kwds.pop('key', (funcname, args)) - assert not kwds - try: - return ffi._typecache[key] - except KeyError: - pass - try: - res = getattr(ffi._backend, funcname)(*args) - except NotImplementedError as e: - raise NotImplementedError("%s: %r: %s" % (funcname, srctype, e)) - # note that setdefault() on WeakValueDictionary is not atomic - # and contains a rare bug (http://bugs.python.org/issue19542); - # we have to use a lock and do it ourselves - cache = ffi._typecache - with global_lock: - res1 = cache.get(key) - if res1 is None: - cache[key] = res - return res - else: - return res1 - -def pointer_cache(ffi, BType): - return global_cache('?', ffi, 'new_pointer_type', BType) - -def attach_exception_info(e, name): - if e.args and type(e.args[0]) is str: - e.args = ('%s: %s' % (name, e.args[0]),) + e.args[1:] diff --git a/.venv/lib/python3.9/site-packages/cffi/parse_c_type.h b/.venv/lib/python3.9/site-packages/cffi/parse_c_type.h deleted file mode 100644 index 84e4ef8..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/parse_c_type.h +++ /dev/null @@ -1,181 +0,0 @@ - -/* This part is from file 'cffi/parse_c_type.h'. It is copied at the - beginning of C sources generated by CFFI's ffi.set_source(). */ - -typedef void *_cffi_opcode_t; - -#define _CFFI_OP(opcode, arg) (_cffi_opcode_t)(opcode | (((uintptr_t)(arg)) << 8)) -#define _CFFI_GETOP(cffi_opcode) ((unsigned char)(uintptr_t)cffi_opcode) -#define _CFFI_GETARG(cffi_opcode) (((intptr_t)cffi_opcode) >> 8) - -#define _CFFI_OP_PRIMITIVE 1 -#define _CFFI_OP_POINTER 3 -#define _CFFI_OP_ARRAY 5 -#define _CFFI_OP_OPEN_ARRAY 7 -#define _CFFI_OP_STRUCT_UNION 9 -#define _CFFI_OP_ENUM 11 -#define _CFFI_OP_FUNCTION 13 -#define _CFFI_OP_FUNCTION_END 15 -#define _CFFI_OP_NOOP 17 -#define _CFFI_OP_BITFIELD 19 -#define _CFFI_OP_TYPENAME 21 -#define _CFFI_OP_CPYTHON_BLTN_V 23 // varargs -#define _CFFI_OP_CPYTHON_BLTN_N 25 // noargs -#define _CFFI_OP_CPYTHON_BLTN_O 27 // O (i.e. a single arg) -#define _CFFI_OP_CONSTANT 29 -#define _CFFI_OP_CONSTANT_INT 31 -#define _CFFI_OP_GLOBAL_VAR 33 -#define _CFFI_OP_DLOPEN_FUNC 35 -#define _CFFI_OP_DLOPEN_CONST 37 -#define _CFFI_OP_GLOBAL_VAR_F 39 -#define _CFFI_OP_EXTERN_PYTHON 41 - -#define _CFFI_PRIM_VOID 0 -#define _CFFI_PRIM_BOOL 1 -#define _CFFI_PRIM_CHAR 2 -#define _CFFI_PRIM_SCHAR 3 -#define _CFFI_PRIM_UCHAR 4 -#define _CFFI_PRIM_SHORT 5 -#define _CFFI_PRIM_USHORT 6 -#define _CFFI_PRIM_INT 7 -#define _CFFI_PRIM_UINT 8 -#define _CFFI_PRIM_LONG 9 -#define _CFFI_PRIM_ULONG 10 -#define _CFFI_PRIM_LONGLONG 11 -#define _CFFI_PRIM_ULONGLONG 12 -#define _CFFI_PRIM_FLOAT 13 -#define _CFFI_PRIM_DOUBLE 14 -#define _CFFI_PRIM_LONGDOUBLE 15 - -#define _CFFI_PRIM_WCHAR 16 -#define _CFFI_PRIM_INT8 17 -#define _CFFI_PRIM_UINT8 18 -#define _CFFI_PRIM_INT16 19 -#define _CFFI_PRIM_UINT16 20 -#define _CFFI_PRIM_INT32 21 -#define _CFFI_PRIM_UINT32 22 -#define _CFFI_PRIM_INT64 23 -#define _CFFI_PRIM_UINT64 24 -#define _CFFI_PRIM_INTPTR 25 -#define _CFFI_PRIM_UINTPTR 26 -#define _CFFI_PRIM_PTRDIFF 27 -#define _CFFI_PRIM_SIZE 28 -#define _CFFI_PRIM_SSIZE 29 -#define _CFFI_PRIM_INT_LEAST8 30 -#define _CFFI_PRIM_UINT_LEAST8 31 -#define _CFFI_PRIM_INT_LEAST16 32 -#define _CFFI_PRIM_UINT_LEAST16 33 -#define _CFFI_PRIM_INT_LEAST32 34 -#define _CFFI_PRIM_UINT_LEAST32 35 -#define _CFFI_PRIM_INT_LEAST64 36 -#define _CFFI_PRIM_UINT_LEAST64 37 -#define _CFFI_PRIM_INT_FAST8 38 -#define _CFFI_PRIM_UINT_FAST8 39 -#define _CFFI_PRIM_INT_FAST16 40 -#define _CFFI_PRIM_UINT_FAST16 41 -#define _CFFI_PRIM_INT_FAST32 42 -#define _CFFI_PRIM_UINT_FAST32 43 -#define _CFFI_PRIM_INT_FAST64 44 -#define _CFFI_PRIM_UINT_FAST64 45 -#define _CFFI_PRIM_INTMAX 46 -#define _CFFI_PRIM_UINTMAX 47 -#define _CFFI_PRIM_FLOATCOMPLEX 48 -#define _CFFI_PRIM_DOUBLECOMPLEX 49 -#define _CFFI_PRIM_CHAR16 50 -#define _CFFI_PRIM_CHAR32 51 - -#define _CFFI__NUM_PRIM 52 -#define _CFFI__UNKNOWN_PRIM (-1) -#define _CFFI__UNKNOWN_FLOAT_PRIM (-2) -#define _CFFI__UNKNOWN_LONG_DOUBLE (-3) - -#define _CFFI__IO_FILE_STRUCT (-1) - - -struct _cffi_global_s { - const char *name; - void *address; - _cffi_opcode_t type_op; - void *size_or_direct_fn; // OP_GLOBAL_VAR: size, or 0 if unknown - // OP_CPYTHON_BLTN_*: addr of direct function -}; - -struct _cffi_getconst_s { - unsigned long long value; - const struct _cffi_type_context_s *ctx; - int gindex; -}; - -struct _cffi_struct_union_s { - const char *name; - int type_index; // -> _cffi_types, on a OP_STRUCT_UNION - int flags; // _CFFI_F_* flags below - size_t size; - int alignment; - int first_field_index; // -> _cffi_fields array - int num_fields; -}; -#define _CFFI_F_UNION 0x01 // is a union, not a struct -#define _CFFI_F_CHECK_FIELDS 0x02 // complain if fields are not in the - // "standard layout" or if some are missing -#define _CFFI_F_PACKED 0x04 // for CHECK_FIELDS, assume a packed struct -#define _CFFI_F_EXTERNAL 0x08 // in some other ffi.include() -#define _CFFI_F_OPAQUE 0x10 // opaque - -struct _cffi_field_s { - const char *name; - size_t field_offset; - size_t field_size; - _cffi_opcode_t field_type_op; -}; - -struct _cffi_enum_s { - const char *name; - int type_index; // -> _cffi_types, on a OP_ENUM - int type_prim; // _CFFI_PRIM_xxx - const char *enumerators; // comma-delimited string -}; - -struct _cffi_typename_s { - const char *name; - int type_index; /* if opaque, points to a possibly artificial - OP_STRUCT which is itself opaque */ -}; - -struct _cffi_type_context_s { - _cffi_opcode_t *types; - const struct _cffi_global_s *globals; - const struct _cffi_field_s *fields; - const struct _cffi_struct_union_s *struct_unions; - const struct _cffi_enum_s *enums; - const struct _cffi_typename_s *typenames; - int num_globals; - int num_struct_unions; - int num_enums; - int num_typenames; - const char *const *includes; - int num_types; - int flags; /* future extension */ -}; - -struct _cffi_parse_info_s { - const struct _cffi_type_context_s *ctx; - _cffi_opcode_t *output; - unsigned int output_size; - size_t error_location; - const char *error_message; -}; - -struct _cffi_externpy_s { - const char *name; - size_t size_of_result; - void *reserved1, *reserved2; -}; - -#ifdef _CFFI_INTERNAL -static int parse_c_type(struct _cffi_parse_info_s *info, const char *input); -static int search_in_globals(const struct _cffi_type_context_s *ctx, - const char *search, size_t search_len); -static int search_in_struct_unions(const struct _cffi_type_context_s *ctx, - const char *search, size_t search_len); -#endif diff --git a/.venv/lib/python3.9/site-packages/cffi/pkgconfig.py b/.venv/lib/python3.9/site-packages/cffi/pkgconfig.py deleted file mode 100644 index 5c93f15..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/pkgconfig.py +++ /dev/null @@ -1,121 +0,0 @@ -# pkg-config, https://www.freedesktop.org/wiki/Software/pkg-config/ integration for cffi -import sys, os, subprocess - -from .error import PkgConfigError - - -def merge_flags(cfg1, cfg2): - """Merge values from cffi config flags cfg2 to cf1 - - Example: - merge_flags({"libraries": ["one"]}, {"libraries": ["two"]}) - {"libraries": ["one", "two"]} - """ - for key, value in cfg2.items(): - if key not in cfg1: - cfg1[key] = value - else: - if not isinstance(cfg1[key], list): - raise TypeError("cfg1[%r] should be a list of strings" % (key,)) - if not isinstance(value, list): - raise TypeError("cfg2[%r] should be a list of strings" % (key,)) - cfg1[key].extend(value) - return cfg1 - - -def call(libname, flag, encoding=sys.getfilesystemencoding()): - """Calls pkg-config and returns the output if found - """ - a = ["pkg-config", "--print-errors"] - a.append(flag) - a.append(libname) - try: - pc = subprocess.Popen(a, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - except EnvironmentError as e: - raise PkgConfigError("cannot run pkg-config: %s" % (str(e).strip(),)) - - bout, berr = pc.communicate() - if pc.returncode != 0: - try: - berr = berr.decode(encoding) - except Exception: - pass - raise PkgConfigError(berr.strip()) - - if sys.version_info >= (3,) and not isinstance(bout, str): # Python 3.x - try: - bout = bout.decode(encoding) - except UnicodeDecodeError: - raise PkgConfigError("pkg-config %s %s returned bytes that cannot " - "be decoded with encoding %r:\n%r" % - (flag, libname, encoding, bout)) - - if os.altsep != '\\' and '\\' in bout: - raise PkgConfigError("pkg-config %s %s returned an unsupported " - "backslash-escaped output:\n%r" % - (flag, libname, bout)) - return bout - - -def flags_from_pkgconfig(libs): - r"""Return compiler line flags for FFI.set_source based on pkg-config output - - Usage - ... - ffibuilder.set_source("_foo", pkgconfig = ["libfoo", "libbar >= 1.8.3"]) - - If pkg-config is installed on build machine, then arguments include_dirs, - library_dirs, libraries, define_macros, extra_compile_args and - extra_link_args are extended with an output of pkg-config for libfoo and - libbar. - - Raises PkgConfigError in case the pkg-config call fails. - """ - - def get_include_dirs(string): - return [x[2:] for x in string.split() if x.startswith("-I")] - - def get_library_dirs(string): - return [x[2:] for x in string.split() if x.startswith("-L")] - - def get_libraries(string): - return [x[2:] for x in string.split() if x.startswith("-l")] - - # convert -Dfoo=bar to list of tuples [("foo", "bar")] expected by distutils - def get_macros(string): - def _macro(x): - x = x[2:] # drop "-D" - if '=' in x: - return tuple(x.split("=", 1)) # "-Dfoo=bar" => ("foo", "bar") - else: - return (x, None) # "-Dfoo" => ("foo", None) - return [_macro(x) for x in string.split() if x.startswith("-D")] - - def get_other_cflags(string): - return [x for x in string.split() if not x.startswith("-I") and - not x.startswith("-D")] - - def get_other_libs(string): - return [x for x in string.split() if not x.startswith("-L") and - not x.startswith("-l")] - - # return kwargs for given libname - def kwargs(libname): - fse = sys.getfilesystemencoding() - all_cflags = call(libname, "--cflags") - all_libs = call(libname, "--libs") - return { - "include_dirs": get_include_dirs(all_cflags), - "library_dirs": get_library_dirs(all_libs), - "libraries": get_libraries(all_libs), - "define_macros": get_macros(all_cflags), - "extra_compile_args": get_other_cflags(all_cflags), - "extra_link_args": get_other_libs(all_libs), - } - - # merge all arguments together - ret = {} - for libname in libs: - lib_flags = kwargs(libname) - merge_flags(ret, lib_flags) - return ret diff --git a/.venv/lib/python3.9/site-packages/cffi/recompiler.py b/.venv/lib/python3.9/site-packages/cffi/recompiler.py deleted file mode 100644 index 7734a34..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/recompiler.py +++ /dev/null @@ -1,1598 +0,0 @@ -import io, os, sys, sysconfig -from . import ffiplatform, model -from .error import VerificationError -from .cffi_opcode import * - -VERSION_BASE = 0x2601 -VERSION_EMBEDDED = 0x2701 -VERSION_CHAR16CHAR32 = 0x2801 - -USE_LIMITED_API = ((sys.platform != 'win32' or sys.version_info < (3, 0) or - sys.version_info >= (3, 5)) and - not sysconfig.get_config_var("Py_GIL_DISABLED")) # free-threaded doesn't yet support limited API - -class GlobalExpr: - def __init__(self, name, address, type_op, size=0, check_value=0): - self.name = name - self.address = address - self.type_op = type_op - self.size = size - self.check_value = check_value - - def as_c_expr(self): - return ' { "%s", (void *)%s, %s, (void *)%s },' % ( - self.name, self.address, self.type_op.as_c_expr(), self.size) - - def as_python_expr(self): - return "b'%s%s',%d" % (self.type_op.as_python_bytes(), self.name, - self.check_value) - -class FieldExpr: - def __init__(self, name, field_offset, field_size, fbitsize, field_type_op): - self.name = name - self.field_offset = field_offset - self.field_size = field_size - self.fbitsize = fbitsize - self.field_type_op = field_type_op - - def as_c_expr(self): - spaces = " " * len(self.name) - return (' { "%s", %s,\n' % (self.name, self.field_offset) + - ' %s %s,\n' % (spaces, self.field_size) + - ' %s %s },' % (spaces, self.field_type_op.as_c_expr())) - - def as_python_expr(self): - raise NotImplementedError - - def as_field_python_expr(self): - if self.field_type_op.op == OP_NOOP: - size_expr = '' - elif self.field_type_op.op == OP_BITFIELD: - size_expr = format_four_bytes(self.fbitsize) - else: - raise NotImplementedError - return "b'%s%s%s'" % (self.field_type_op.as_python_bytes(), - size_expr, - self.name) - -class StructUnionExpr: - def __init__(self, name, type_index, flags, size, alignment, comment, - first_field_index, c_fields): - self.name = name - self.type_index = type_index - self.flags = flags - self.size = size - self.alignment = alignment - self.comment = comment - self.first_field_index = first_field_index - self.c_fields = c_fields - - def as_c_expr(self): - return (' { "%s", %d, %s,' % (self.name, self.type_index, self.flags) - + '\n %s, %s, ' % (self.size, self.alignment) - + '%d, %d ' % (self.first_field_index, len(self.c_fields)) - + ('/* %s */ ' % self.comment if self.comment else '') - + '},') - - def as_python_expr(self): - flags = eval(self.flags, G_FLAGS) - fields_expr = [c_field.as_field_python_expr() - for c_field in self.c_fields] - return "(b'%s%s%s',%s)" % ( - format_four_bytes(self.type_index), - format_four_bytes(flags), - self.name, - ','.join(fields_expr)) - -class EnumExpr: - def __init__(self, name, type_index, size, signed, allenums): - self.name = name - self.type_index = type_index - self.size = size - self.signed = signed - self.allenums = allenums - - def as_c_expr(self): - return (' { "%s", %d, _cffi_prim_int(%s, %s),\n' - ' "%s" },' % (self.name, self.type_index, - self.size, self.signed, self.allenums)) - - def as_python_expr(self): - prim_index = { - (1, 0): PRIM_UINT8, (1, 1): PRIM_INT8, - (2, 0): PRIM_UINT16, (2, 1): PRIM_INT16, - (4, 0): PRIM_UINT32, (4, 1): PRIM_INT32, - (8, 0): PRIM_UINT64, (8, 1): PRIM_INT64, - }[self.size, self.signed] - return "b'%s%s%s\\x00%s'" % (format_four_bytes(self.type_index), - format_four_bytes(prim_index), - self.name, self.allenums) - -class TypenameExpr: - def __init__(self, name, type_index): - self.name = name - self.type_index = type_index - - def as_c_expr(self): - return ' { "%s", %d },' % (self.name, self.type_index) - - def as_python_expr(self): - return "b'%s%s'" % (format_four_bytes(self.type_index), self.name) - - -# ____________________________________________________________ - - -class Recompiler: - _num_externpy = 0 - - def __init__(self, ffi, module_name, target_is_python=False): - self.ffi = ffi - self.module_name = module_name - self.target_is_python = target_is_python - self._version = VERSION_BASE - - def needs_version(self, ver): - self._version = max(self._version, ver) - - def collect_type_table(self): - self._typesdict = {} - self._generate("collecttype") - # - all_decls = sorted(self._typesdict, key=str) - # - # prepare all FUNCTION bytecode sequences first - self.cffi_types = [] - for tp in all_decls: - if tp.is_raw_function: - assert self._typesdict[tp] is None - self._typesdict[tp] = len(self.cffi_types) - self.cffi_types.append(tp) # placeholder - for tp1 in tp.args: - assert isinstance(tp1, (model.VoidType, - model.BasePrimitiveType, - model.PointerType, - model.StructOrUnionOrEnum, - model.FunctionPtrType)) - if self._typesdict[tp1] is None: - self._typesdict[tp1] = len(self.cffi_types) - self.cffi_types.append(tp1) # placeholder - self.cffi_types.append('END') # placeholder - # - # prepare all OTHER bytecode sequences - for tp in all_decls: - if not tp.is_raw_function and self._typesdict[tp] is None: - self._typesdict[tp] = len(self.cffi_types) - self.cffi_types.append(tp) # placeholder - if tp.is_array_type and tp.length is not None: - self.cffi_types.append('LEN') # placeholder - assert None not in self._typesdict.values() - # - # collect all structs and unions and enums - self._struct_unions = {} - self._enums = {} - for tp in all_decls: - if isinstance(tp, model.StructOrUnion): - self._struct_unions[tp] = None - elif isinstance(tp, model.EnumType): - self._enums[tp] = None - for i, tp in enumerate(sorted(self._struct_unions, - key=lambda tp: tp.name)): - self._struct_unions[tp] = i - for i, tp in enumerate(sorted(self._enums, - key=lambda tp: tp.name)): - self._enums[tp] = i - # - # emit all bytecode sequences now - for tp in all_decls: - method = getattr(self, '_emit_bytecode_' + tp.__class__.__name__) - method(tp, self._typesdict[tp]) - # - # consistency check - for op in self.cffi_types: - assert isinstance(op, CffiOp) - self.cffi_types = tuple(self.cffi_types) # don't change any more - - def _enum_fields(self, tp): - # When producing C, expand all anonymous struct/union fields. - # That's necessary to have C code checking the offsets of the - # individual fields contained in them. When producing Python, - # don't do it and instead write it like it is, with the - # corresponding fields having an empty name. Empty names are - # recognized at runtime when we import the generated Python - # file. - expand_anonymous_struct_union = not self.target_is_python - return tp.enumfields(expand_anonymous_struct_union) - - def _do_collect_type(self, tp): - if not isinstance(tp, model.BaseTypeByIdentity): - if isinstance(tp, tuple): - for x in tp: - self._do_collect_type(x) - return - if tp not in self._typesdict: - self._typesdict[tp] = None - if isinstance(tp, model.FunctionPtrType): - self._do_collect_type(tp.as_raw_function()) - elif isinstance(tp, model.StructOrUnion): - if tp.fldtypes is not None and ( - tp not in self.ffi._parser._included_declarations): - for name1, tp1, _, _ in self._enum_fields(tp): - self._do_collect_type(self._field_type(tp, name1, tp1)) - else: - for _, x in tp._get_items(): - self._do_collect_type(x) - - def _generate(self, step_name): - lst = self.ffi._parser._declarations.items() - for name, (tp, quals) in sorted(lst): - kind, realname = name.split(' ', 1) - try: - method = getattr(self, '_generate_cpy_%s_%s' % (kind, - step_name)) - except AttributeError: - raise VerificationError( - "not implemented in recompile(): %r" % name) - try: - self._current_quals = quals - method(tp, realname) - except Exception as e: - model.attach_exception_info(e, name) - raise - - # ---------- - - ALL_STEPS = ["global", "field", "struct_union", "enum", "typename"] - - def collect_step_tables(self): - # collect the declarations for '_cffi_globals', '_cffi_typenames', etc. - self._lsts = {} - for step_name in self.ALL_STEPS: - self._lsts[step_name] = [] - self._seen_struct_unions = set() - self._generate("ctx") - self._add_missing_struct_unions() - # - for step_name in self.ALL_STEPS: - lst = self._lsts[step_name] - if step_name != "field": - lst.sort(key=lambda entry: entry.name) - self._lsts[step_name] = tuple(lst) # don't change any more - # - # check for a possible internal inconsistency: _cffi_struct_unions - # should have been generated with exactly self._struct_unions - lst = self._lsts["struct_union"] - for tp, i in self._struct_unions.items(): - assert i < len(lst) - assert lst[i].name == tp.name - assert len(lst) == len(self._struct_unions) - # same with enums - lst = self._lsts["enum"] - for tp, i in self._enums.items(): - assert i < len(lst) - assert lst[i].name == tp.name - assert len(lst) == len(self._enums) - - # ---------- - - def _prnt(self, what=''): - self._f.write(what + '\n') - - def write_source_to_f(self, f, preamble): - if self.target_is_python: - assert preamble is None - self.write_py_source_to_f(f) - else: - assert preamble is not None - self.write_c_source_to_f(f, preamble) - - def _rel_readlines(self, filename): - g = open(os.path.join(os.path.dirname(__file__), filename), 'r') - lines = g.readlines() - g.close() - return lines - - def write_c_source_to_f(self, f, preamble): - self._f = f - prnt = self._prnt - if self.ffi._embedding is not None: - prnt('#define _CFFI_USE_EMBEDDING') - if not USE_LIMITED_API: - prnt('#define _CFFI_NO_LIMITED_API') - # - # first the '#include' (actually done by inlining the file's content) - lines = self._rel_readlines('_cffi_include.h') - i = lines.index('#include "parse_c_type.h"\n') - lines[i:i+1] = self._rel_readlines('parse_c_type.h') - prnt(''.join(lines)) - # - # if we have ffi._embedding != None, we give it here as a macro - # and include an extra file - base_module_name = self.module_name.split('.')[-1] - if self.ffi._embedding is not None: - prnt('#define _CFFI_MODULE_NAME "%s"' % (self.module_name,)) - prnt('static const char _CFFI_PYTHON_STARTUP_CODE[] = {') - self._print_string_literal_in_array(self.ffi._embedding) - prnt('0 };') - prnt('#ifdef PYPY_VERSION') - prnt('# define _CFFI_PYTHON_STARTUP_FUNC _cffi_pypyinit_%s' % ( - base_module_name,)) - prnt('#elif PY_MAJOR_VERSION >= 3') - prnt('# define _CFFI_PYTHON_STARTUP_FUNC PyInit_%s' % ( - base_module_name,)) - prnt('#else') - prnt('# define _CFFI_PYTHON_STARTUP_FUNC init%s' % ( - base_module_name,)) - prnt('#endif') - lines = self._rel_readlines('_embedding.h') - i = lines.index('#include "_cffi_errors.h"\n') - lines[i:i+1] = self._rel_readlines('_cffi_errors.h') - prnt(''.join(lines)) - self.needs_version(VERSION_EMBEDDED) - # - # then paste the C source given by the user, verbatim. - prnt('/************************************************************/') - prnt() - prnt(preamble) - prnt() - prnt('/************************************************************/') - prnt() - # - # the declaration of '_cffi_types' - prnt('static void *_cffi_types[] = {') - typeindex2type = dict([(i, tp) for (tp, i) in self._typesdict.items()]) - for i, op in enumerate(self.cffi_types): - comment = '' - if i in typeindex2type: - comment = ' // ' + typeindex2type[i]._get_c_name() - prnt('/* %2d */ %s,%s' % (i, op.as_c_expr(), comment)) - if not self.cffi_types: - prnt(' 0') - prnt('};') - prnt() - # - # call generate_cpy_xxx_decl(), for every xxx found from - # ffi._parser._declarations. This generates all the functions. - self._seen_constants = set() - self._generate("decl") - # - # the declaration of '_cffi_globals' and '_cffi_typenames' - nums = {} - for step_name in self.ALL_STEPS: - lst = self._lsts[step_name] - nums[step_name] = len(lst) - if nums[step_name] > 0: - prnt('static const struct _cffi_%s_s _cffi_%ss[] = {' % ( - step_name, step_name)) - for entry in lst: - prnt(entry.as_c_expr()) - prnt('};') - prnt() - # - # the declaration of '_cffi_includes' - if self.ffi._included_ffis: - prnt('static const char * const _cffi_includes[] = {') - for ffi_to_include in self.ffi._included_ffis: - try: - included_module_name, included_source = ( - ffi_to_include._assigned_source[:2]) - except AttributeError: - raise VerificationError( - "ffi object %r includes %r, but the latter has not " - "been prepared with set_source()" % ( - self.ffi, ffi_to_include,)) - if included_source is None: - raise VerificationError( - "not implemented yet: ffi.include() of a Python-based " - "ffi inside a C-based ffi") - prnt(' "%s",' % (included_module_name,)) - prnt(' NULL') - prnt('};') - prnt() - # - # the declaration of '_cffi_type_context' - prnt('static const struct _cffi_type_context_s _cffi_type_context = {') - prnt(' _cffi_types,') - for step_name in self.ALL_STEPS: - if nums[step_name] > 0: - prnt(' _cffi_%ss,' % step_name) - else: - prnt(' NULL, /* no %ss */' % step_name) - for step_name in self.ALL_STEPS: - if step_name != "field": - prnt(' %d, /* num_%ss */' % (nums[step_name], step_name)) - if self.ffi._included_ffis: - prnt(' _cffi_includes,') - else: - prnt(' NULL, /* no includes */') - prnt(' %d, /* num_types */' % (len(self.cffi_types),)) - flags = 0 - if self._num_externpy > 0 or self.ffi._embedding is not None: - flags |= 1 # set to mean that we use extern "Python" - prnt(' %d, /* flags */' % flags) - prnt('};') - prnt() - # - # the init function - prnt('#ifdef __GNUC__') - prnt('# pragma GCC visibility push(default) /* for -fvisibility= */') - prnt('#endif') - prnt() - prnt('#ifdef PYPY_VERSION') - prnt('PyMODINIT_FUNC') - prnt('_cffi_pypyinit_%s(const void *p[])' % (base_module_name,)) - prnt('{') - if flags & 1: - prnt(' if (((intptr_t)p[0]) >= 0x0A03) {') - prnt(' _cffi_call_python_org = ' - '(void(*)(struct _cffi_externpy_s *, char *))p[1];') - prnt(' }') - prnt(' p[0] = (const void *)0x%x;' % self._version) - prnt(' p[1] = &_cffi_type_context;') - prnt('#if PY_MAJOR_VERSION >= 3') - prnt(' return NULL;') - prnt('#endif') - prnt('}') - # on Windows, distutils insists on putting init_cffi_xyz in - # 'export_symbols', so instead of fighting it, just give up and - # give it one - prnt('# ifdef _MSC_VER') - prnt(' PyMODINIT_FUNC') - prnt('# if PY_MAJOR_VERSION >= 3') - prnt(' PyInit_%s(void) { return NULL; }' % (base_module_name,)) - prnt('# else') - prnt(' init%s(void) { }' % (base_module_name,)) - prnt('# endif') - prnt('# endif') - prnt('#elif PY_MAJOR_VERSION >= 3') - prnt('PyMODINIT_FUNC') - prnt('PyInit_%s(void)' % (base_module_name,)) - prnt('{') - prnt(' return _cffi_init("%s", 0x%x, &_cffi_type_context);' % ( - self.module_name, self._version)) - prnt('}') - prnt('#else') - prnt('PyMODINIT_FUNC') - prnt('init%s(void)' % (base_module_name,)) - prnt('{') - prnt(' _cffi_init("%s", 0x%x, &_cffi_type_context);' % ( - self.module_name, self._version)) - prnt('}') - prnt('#endif') - prnt() - prnt('#ifdef __GNUC__') - prnt('# pragma GCC visibility pop') - prnt('#endif') - self._version = None - - def _to_py(self, x): - if isinstance(x, str): - return "b'%s'" % (x,) - if isinstance(x, (list, tuple)): - rep = [self._to_py(item) for item in x] - if len(rep) == 1: - rep.append('') - return "(%s)" % (','.join(rep),) - return x.as_python_expr() # Py2: unicode unexpected; Py3: bytes unexp. - - def write_py_source_to_f(self, f): - self._f = f - prnt = self._prnt - # - # header - prnt("# auto-generated file") - prnt("import _cffi_backend") - # - # the 'import' of the included ffis - num_includes = len(self.ffi._included_ffis or ()) - for i in range(num_includes): - ffi_to_include = self.ffi._included_ffis[i] - try: - included_module_name, included_source = ( - ffi_to_include._assigned_source[:2]) - except AttributeError: - raise VerificationError( - "ffi object %r includes %r, but the latter has not " - "been prepared with set_source()" % ( - self.ffi, ffi_to_include,)) - if included_source is not None: - raise VerificationError( - "not implemented yet: ffi.include() of a C-based " - "ffi inside a Python-based ffi") - prnt('from %s import ffi as _ffi%d' % (included_module_name, i)) - prnt() - prnt("ffi = _cffi_backend.FFI('%s'," % (self.module_name,)) - prnt(" _version = 0x%x," % (self._version,)) - self._version = None - # - # the '_types' keyword argument - self.cffi_types = tuple(self.cffi_types) # don't change any more - types_lst = [op.as_python_bytes() for op in self.cffi_types] - prnt(' _types = %s,' % (self._to_py(''.join(types_lst)),)) - typeindex2type = dict([(i, tp) for (tp, i) in self._typesdict.items()]) - # - # the keyword arguments from ALL_STEPS - for step_name in self.ALL_STEPS: - lst = self._lsts[step_name] - if len(lst) > 0 and step_name != "field": - prnt(' _%ss = %s,' % (step_name, self._to_py(lst))) - # - # the '_includes' keyword argument - if num_includes > 0: - prnt(' _includes = (%s,),' % ( - ', '.join(['_ffi%d' % i for i in range(num_includes)]),)) - # - # the footer - prnt(')') - - # ---------- - - def _gettypenum(self, type): - # a KeyError here is a bug. please report it! :-) - return self._typesdict[type] - - def _convert_funcarg_to_c(self, tp, fromvar, tovar, errcode): - extraarg = '' - if isinstance(tp, model.BasePrimitiveType) and not tp.is_complex_type(): - if tp.is_integer_type() and tp.name != '_Bool': - converter = '_cffi_to_c_int' - extraarg = ', %s' % tp.name - elif isinstance(tp, model.UnknownFloatType): - # don't check with is_float_type(): it may be a 'long - # double' here, and _cffi_to_c_double would loose precision - converter = '(%s)_cffi_to_c_double' % (tp.get_c_name(''),) - else: - cname = tp.get_c_name('') - converter = '(%s)_cffi_to_c_%s' % (cname, - tp.name.replace(' ', '_')) - if cname in ('char16_t', 'char32_t'): - self.needs_version(VERSION_CHAR16CHAR32) - errvalue = '-1' - # - elif isinstance(tp, model.PointerType): - self._convert_funcarg_to_c_ptr_or_array(tp, fromvar, - tovar, errcode) - return - # - elif (isinstance(tp, model.StructOrUnionOrEnum) or - isinstance(tp, model.BasePrimitiveType)): - # a struct (not a struct pointer) as a function argument; - # or, a complex (the same code works) - self._prnt(' if (_cffi_to_c((char *)&%s, _cffi_type(%d), %s) < 0)' - % (tovar, self._gettypenum(tp), fromvar)) - self._prnt(' %s;' % errcode) - return - # - elif isinstance(tp, model.FunctionPtrType): - converter = '(%s)_cffi_to_c_pointer' % tp.get_c_name('') - extraarg = ', _cffi_type(%d)' % self._gettypenum(tp) - errvalue = 'NULL' - # - else: - raise NotImplementedError(tp) - # - self._prnt(' %s = %s(%s%s);' % (tovar, converter, fromvar, extraarg)) - self._prnt(' if (%s == (%s)%s && PyErr_Occurred())' % ( - tovar, tp.get_c_name(''), errvalue)) - self._prnt(' %s;' % errcode) - - def _extra_local_variables(self, tp, localvars, freelines): - if isinstance(tp, model.PointerType): - localvars.add('Py_ssize_t datasize') - localvars.add('struct _cffi_freeme_s *large_args_free = NULL') - freelines.add('if (large_args_free != NULL)' - ' _cffi_free_array_arguments(large_args_free);') - - def _convert_funcarg_to_c_ptr_or_array(self, tp, fromvar, tovar, errcode): - self._prnt(' datasize = _cffi_prepare_pointer_call_argument(') - self._prnt(' _cffi_type(%d), %s, (char **)&%s);' % ( - self._gettypenum(tp), fromvar, tovar)) - self._prnt(' if (datasize != 0) {') - self._prnt(' %s = ((size_t)datasize) <= 640 ? ' - '(%s)alloca((size_t)datasize) : NULL;' % ( - tovar, tp.get_c_name(''))) - self._prnt(' if (_cffi_convert_array_argument(_cffi_type(%d), %s, ' - '(char **)&%s,' % (self._gettypenum(tp), fromvar, tovar)) - self._prnt(' datasize, &large_args_free) < 0)') - self._prnt(' %s;' % errcode) - self._prnt(' }') - - def _convert_expr_from_c(self, tp, var, context): - if isinstance(tp, model.BasePrimitiveType): - if tp.is_integer_type() and tp.name != '_Bool': - return '_cffi_from_c_int(%s, %s)' % (var, tp.name) - elif isinstance(tp, model.UnknownFloatType): - return '_cffi_from_c_double(%s)' % (var,) - elif tp.name != 'long double' and not tp.is_complex_type(): - cname = tp.name.replace(' ', '_') - if cname in ('char16_t', 'char32_t'): - self.needs_version(VERSION_CHAR16CHAR32) - return '_cffi_from_c_%s(%s)' % (cname, var) - else: - return '_cffi_from_c_deref((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, (model.PointerType, model.FunctionPtrType)): - return '_cffi_from_c_pointer((char *)%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, model.ArrayType): - return '_cffi_from_c_pointer((char *)%s, _cffi_type(%d))' % ( - var, self._gettypenum(model.PointerType(tp.item))) - elif isinstance(tp, model.StructOrUnion): - if tp.fldnames is None: - raise TypeError("'%s' is used as %s, but is opaque" % ( - tp._get_c_name(), context)) - return '_cffi_from_c_struct((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, model.EnumType): - return '_cffi_from_c_deref((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - else: - raise NotImplementedError(tp) - - # ---------- - # typedefs - - def _typedef_type(self, tp, name): - return self._global_type(tp, "(*(%s *)0)" % (name,)) - - def _generate_cpy_typedef_collecttype(self, tp, name): - self._do_collect_type(self._typedef_type(tp, name)) - - def _generate_cpy_typedef_decl(self, tp, name): - pass - - def _typedef_ctx(self, tp, name): - type_index = self._typesdict[tp] - self._lsts["typename"].append(TypenameExpr(name, type_index)) - - def _generate_cpy_typedef_ctx(self, tp, name): - tp = self._typedef_type(tp, name) - self._typedef_ctx(tp, name) - if getattr(tp, "origin", None) == "unknown_type": - self._struct_ctx(tp, tp.name, approxname=None) - elif isinstance(tp, model.NamedPointerType): - self._struct_ctx(tp.totype, tp.totype.name, approxname=tp.name, - named_ptr=tp) - - # ---------- - # function declarations - - def _generate_cpy_function_collecttype(self, tp, name): - self._do_collect_type(tp.as_raw_function()) - if tp.ellipsis and not self.target_is_python: - self._do_collect_type(tp) - - def _generate_cpy_function_decl(self, tp, name): - assert not self.target_is_python - assert isinstance(tp, model.FunctionPtrType) - if tp.ellipsis: - # cannot support vararg functions better than this: check for its - # exact type (including the fixed arguments), and build it as a - # constant function pointer (no CPython wrapper) - self._generate_cpy_constant_decl(tp, name) - return - prnt = self._prnt - numargs = len(tp.args) - if numargs == 0: - argname = 'noarg' - elif numargs == 1: - argname = 'arg0' - else: - argname = 'args' - # - # ------------------------------ - # the 'd' version of the function, only for addressof(lib, 'func') - arguments = [] - call_arguments = [] - context = 'argument of %s' % name - for i, type in enumerate(tp.args): - arguments.append(type.get_c_name(' x%d' % i, context)) - call_arguments.append('x%d' % i) - repr_arguments = ', '.join(arguments) - repr_arguments = repr_arguments or 'void' - if tp.abi: - abi = tp.abi + ' ' - else: - abi = '' - name_and_arguments = '%s_cffi_d_%s(%s)' % (abi, name, repr_arguments) - prnt('static %s' % (tp.result.get_c_name(name_and_arguments),)) - prnt('{') - call_arguments = ', '.join(call_arguments) - result_code = 'return ' - if isinstance(tp.result, model.VoidType): - result_code = '' - prnt(' %s%s(%s);' % (result_code, name, call_arguments)) - prnt('}') - # - prnt('#ifndef PYPY_VERSION') # ------------------------------ - # - prnt('static PyObject *') - prnt('_cffi_f_%s(PyObject *self, PyObject *%s)' % (name, argname)) - prnt('{') - # - context = 'argument of %s' % name - for i, type in enumerate(tp.args): - arg = type.get_c_name(' x%d' % i, context) - prnt(' %s;' % arg) - # - localvars = set() - freelines = set() - for type in tp.args: - self._extra_local_variables(type, localvars, freelines) - for decl in sorted(localvars): - prnt(' %s;' % (decl,)) - # - if not isinstance(tp.result, model.VoidType): - result_code = 'result = ' - context = 'result of %s' % name - result_decl = ' %s;' % tp.result.get_c_name(' result', context) - prnt(result_decl) - prnt(' PyObject *pyresult;') - else: - result_decl = None - result_code = '' - # - if len(tp.args) > 1: - rng = range(len(tp.args)) - for i in rng: - prnt(' PyObject *arg%d;' % i) - prnt() - prnt(' if (!PyArg_UnpackTuple(args, "%s", %d, %d, %s))' % ( - name, len(rng), len(rng), - ', '.join(['&arg%d' % i for i in rng]))) - prnt(' return NULL;') - prnt() - # - for i, type in enumerate(tp.args): - self._convert_funcarg_to_c(type, 'arg%d' % i, 'x%d' % i, - 'return NULL') - prnt() - # - prnt(' Py_BEGIN_ALLOW_THREADS') - prnt(' _cffi_restore_errno();') - call_arguments = ['x%d' % i for i in range(len(tp.args))] - call_arguments = ', '.join(call_arguments) - prnt(' { %s%s(%s); }' % (result_code, name, call_arguments)) - prnt(' _cffi_save_errno();') - prnt(' Py_END_ALLOW_THREADS') - prnt() - # - prnt(' (void)self; /* unused */') - if numargs == 0: - prnt(' (void)noarg; /* unused */') - if result_code: - prnt(' pyresult = %s;' % - self._convert_expr_from_c(tp.result, 'result', 'result type')) - for freeline in freelines: - prnt(' ' + freeline) - prnt(' return pyresult;') - else: - for freeline in freelines: - prnt(' ' + freeline) - prnt(' Py_INCREF(Py_None);') - prnt(' return Py_None;') - prnt('}') - # - prnt('#else') # ------------------------------ - # - # the PyPy version: need to replace struct/union arguments with - # pointers, and if the result is a struct/union, insert a first - # arg that is a pointer to the result. We also do that for - # complex args and return type. - def need_indirection(type): - return (isinstance(type, model.StructOrUnion) or - (isinstance(type, model.PrimitiveType) and - type.is_complex_type())) - difference = False - arguments = [] - call_arguments = [] - context = 'argument of %s' % name - for i, type in enumerate(tp.args): - indirection = '' - if need_indirection(type): - indirection = '*' - difference = True - arg = type.get_c_name(' %sx%d' % (indirection, i), context) - arguments.append(arg) - call_arguments.append('%sx%d' % (indirection, i)) - tp_result = tp.result - if need_indirection(tp_result): - context = 'result of %s' % name - arg = tp_result.get_c_name(' *result', context) - arguments.insert(0, arg) - tp_result = model.void_type - result_decl = None - result_code = '*result = ' - difference = True - if difference: - repr_arguments = ', '.join(arguments) - repr_arguments = repr_arguments or 'void' - name_and_arguments = '%s_cffi_f_%s(%s)' % (abi, name, - repr_arguments) - prnt('static %s' % (tp_result.get_c_name(name_and_arguments),)) - prnt('{') - if result_decl: - prnt(result_decl) - call_arguments = ', '.join(call_arguments) - prnt(' { %s%s(%s); }' % (result_code, name, call_arguments)) - if result_decl: - prnt(' return result;') - prnt('}') - else: - prnt('# define _cffi_f_%s _cffi_d_%s' % (name, name)) - # - prnt('#endif') # ------------------------------ - prnt() - - def _generate_cpy_function_ctx(self, tp, name): - if tp.ellipsis and not self.target_is_python: - self._generate_cpy_constant_ctx(tp, name) - return - type_index = self._typesdict[tp.as_raw_function()] - numargs = len(tp.args) - if self.target_is_python: - meth_kind = OP_DLOPEN_FUNC - elif numargs == 0: - meth_kind = OP_CPYTHON_BLTN_N # 'METH_NOARGS' - elif numargs == 1: - meth_kind = OP_CPYTHON_BLTN_O # 'METH_O' - else: - meth_kind = OP_CPYTHON_BLTN_V # 'METH_VARARGS' - self._lsts["global"].append( - GlobalExpr(name, '_cffi_f_%s' % name, - CffiOp(meth_kind, type_index), - size='_cffi_d_%s' % name)) - - # ---------- - # named structs or unions - - def _field_type(self, tp_struct, field_name, tp_field): - if isinstance(tp_field, model.ArrayType): - actual_length = tp_field.length - if actual_length == '...': - ptr_struct_name = tp_struct.get_c_name('*') - actual_length = '_cffi_array_len(((%s)0)->%s)' % ( - ptr_struct_name, field_name) - tp_item = self._field_type(tp_struct, '%s[0]' % field_name, - tp_field.item) - tp_field = model.ArrayType(tp_item, actual_length) - return tp_field - - def _struct_collecttype(self, tp): - self._do_collect_type(tp) - if self.target_is_python: - # also requires nested anon struct/unions in ABI mode, recursively - for fldtype in tp.anonymous_struct_fields(): - self._struct_collecttype(fldtype) - - def _struct_decl(self, tp, cname, approxname): - if tp.fldtypes is None: - return - prnt = self._prnt - checkfuncname = '_cffi_checkfld_%s' % (approxname,) - prnt('_CFFI_UNUSED_FN') - prnt('static void %s(%s *p)' % (checkfuncname, cname)) - prnt('{') - prnt(' /* only to generate compile-time warnings or errors */') - prnt(' (void)p;') - for fname, ftype, fbitsize, fqual in self._enum_fields(tp): - try: - if ftype.is_integer_type() or fbitsize >= 0: - # accept all integers, but complain on float or double - if fname != '': - prnt(" (void)((p->%s) | 0); /* check that '%s.%s' is " - "an integer */" % (fname, cname, fname)) - continue - # only accept exactly the type declared, except that '[]' - # is interpreted as a '*' and so will match any array length. - # (It would also match '*', but that's harder to detect...) - while (isinstance(ftype, model.ArrayType) - and (ftype.length is None or ftype.length == '...')): - ftype = ftype.item - fname = fname + '[0]' - prnt(' { %s = &p->%s; (void)tmp; }' % ( - ftype.get_c_name('*tmp', 'field %r'%fname, quals=fqual), - fname)) - except VerificationError as e: - prnt(' /* %s */' % str(e)) # cannot verify it, ignore - prnt('}') - prnt('struct _cffi_align_%s { char x; %s y; };' % (approxname, cname)) - prnt() - - def _struct_ctx(self, tp, cname, approxname, named_ptr=None): - type_index = self._typesdict[tp] - reason_for_not_expanding = None - flags = [] - if isinstance(tp, model.UnionType): - flags.append("_CFFI_F_UNION") - if tp.fldtypes is None: - flags.append("_CFFI_F_OPAQUE") - reason_for_not_expanding = "opaque" - if (tp not in self.ffi._parser._included_declarations and - (named_ptr is None or - named_ptr not in self.ffi._parser._included_declarations)): - if tp.fldtypes is None: - pass # opaque - elif tp.partial or any(tp.anonymous_struct_fields()): - pass # field layout obtained silently from the C compiler - else: - flags.append("_CFFI_F_CHECK_FIELDS") - if tp.packed: - if tp.packed > 1: - raise NotImplementedError( - "%r is declared with 'pack=%r'; only 0 or 1 are " - "supported in API mode (try to use \"...;\", which " - "does not require a 'pack' declaration)" % - (tp, tp.packed)) - flags.append("_CFFI_F_PACKED") - else: - flags.append("_CFFI_F_EXTERNAL") - reason_for_not_expanding = "external" - flags = '|'.join(flags) or '0' - c_fields = [] - if reason_for_not_expanding is None: - enumfields = list(self._enum_fields(tp)) - for fldname, fldtype, fbitsize, fqual in enumfields: - fldtype = self._field_type(tp, fldname, fldtype) - self._check_not_opaque(fldtype, - "field '%s.%s'" % (tp.name, fldname)) - # cname is None for _add_missing_struct_unions() only - op = OP_NOOP - if fbitsize >= 0: - op = OP_BITFIELD - size = '%d /* bits */' % fbitsize - elif cname is None or ( - isinstance(fldtype, model.ArrayType) and - fldtype.length is None): - size = '(size_t)-1' - else: - size = 'sizeof(((%s)0)->%s)' % ( - tp.get_c_name('*') if named_ptr is None - else named_ptr.name, - fldname) - if cname is None or fbitsize >= 0: - offset = '(size_t)-1' - elif named_ptr is not None: - offset = '(size_t)(((char *)&((%s)4096)->%s) - (char *)4096)' % ( - named_ptr.name, fldname) - else: - offset = 'offsetof(%s, %s)' % (tp.get_c_name(''), fldname) - c_fields.append( - FieldExpr(fldname, offset, size, fbitsize, - CffiOp(op, self._typesdict[fldtype]))) - first_field_index = len(self._lsts["field"]) - self._lsts["field"].extend(c_fields) - # - if cname is None: # unknown name, for _add_missing_struct_unions - size = '(size_t)-2' - align = -2 - comment = "unnamed" - else: - if named_ptr is not None: - size = 'sizeof(*(%s)0)' % (named_ptr.name,) - align = '-1 /* unknown alignment */' - else: - size = 'sizeof(%s)' % (cname,) - align = 'offsetof(struct _cffi_align_%s, y)' % (approxname,) - comment = None - else: - size = '(size_t)-1' - align = -1 - first_field_index = -1 - comment = reason_for_not_expanding - self._lsts["struct_union"].append( - StructUnionExpr(tp.name, type_index, flags, size, align, comment, - first_field_index, c_fields)) - self._seen_struct_unions.add(tp) - - def _check_not_opaque(self, tp, location): - while isinstance(tp, model.ArrayType): - tp = tp.item - if isinstance(tp, model.StructOrUnion) and tp.fldtypes is None: - raise TypeError( - "%s is of an opaque type (not declared in cdef())" % location) - - def _add_missing_struct_unions(self): - # not very nice, but some struct declarations might be missing - # because they don't have any known C name. Check that they are - # not partial (we can't complete or verify them!) and emit them - # anonymously. - lst = list(self._struct_unions.items()) - lst.sort(key=lambda tp_order: tp_order[1]) - for tp, order in lst: - if tp not in self._seen_struct_unions: - if tp.partial: - raise NotImplementedError("internal inconsistency: %r is " - "partial but was not seen at " - "this point" % (tp,)) - if tp.name.startswith('$') and tp.name[1:].isdigit(): - approxname = tp.name[1:] - elif tp.name == '_IO_FILE' and tp.forcename == 'FILE': - approxname = 'FILE' - self._typedef_ctx(tp, 'FILE') - else: - raise NotImplementedError("internal inconsistency: %r" % - (tp,)) - self._struct_ctx(tp, None, approxname) - - def _generate_cpy_struct_collecttype(self, tp, name): - self._struct_collecttype(tp) - _generate_cpy_union_collecttype = _generate_cpy_struct_collecttype - - def _struct_names(self, tp): - cname = tp.get_c_name('') - if ' ' in cname: - return cname, cname.replace(' ', '_') - else: - return cname, '_' + cname - - def _generate_cpy_struct_decl(self, tp, name): - self._struct_decl(tp, *self._struct_names(tp)) - _generate_cpy_union_decl = _generate_cpy_struct_decl - - def _generate_cpy_struct_ctx(self, tp, name): - self._struct_ctx(tp, *self._struct_names(tp)) - _generate_cpy_union_ctx = _generate_cpy_struct_ctx - - # ---------- - # 'anonymous' declarations. These are produced for anonymous structs - # or unions; the 'name' is obtained by a typedef. - - def _generate_cpy_anonymous_collecttype(self, tp, name): - if isinstance(tp, model.EnumType): - self._generate_cpy_enum_collecttype(tp, name) - else: - self._struct_collecttype(tp) - - def _generate_cpy_anonymous_decl(self, tp, name): - if isinstance(tp, model.EnumType): - self._generate_cpy_enum_decl(tp) - else: - self._struct_decl(tp, name, 'typedef_' + name) - - def _generate_cpy_anonymous_ctx(self, tp, name): - if isinstance(tp, model.EnumType): - self._enum_ctx(tp, name) - else: - self._struct_ctx(tp, name, 'typedef_' + name) - - # ---------- - # constants, declared with "static const ..." - - def _generate_cpy_const(self, is_int, name, tp=None, category='const', - check_value=None): - if (category, name) in self._seen_constants: - raise VerificationError( - "duplicate declaration of %s '%s'" % (category, name)) - self._seen_constants.add((category, name)) - # - prnt = self._prnt - funcname = '_cffi_%s_%s' % (category, name) - if is_int: - prnt('static int %s(unsigned long long *o)' % funcname) - prnt('{') - prnt(' int n = (%s) <= 0;' % (name,)) - prnt(' *o = (unsigned long long)((%s) | 0);' - ' /* check that %s is an integer */' % (name, name)) - if check_value is not None: - if check_value > 0: - check_value = '%dU' % (check_value,) - prnt(' if (!_cffi_check_int(*o, n, %s))' % (check_value,)) - prnt(' n |= 2;') - prnt(' return n;') - prnt('}') - else: - assert check_value is None - prnt('static void %s(char *o)' % funcname) - prnt('{') - prnt(' *(%s)o = %s;' % (tp.get_c_name('*'), name)) - prnt('}') - prnt() - - def _generate_cpy_constant_collecttype(self, tp, name): - is_int = tp.is_integer_type() - if not is_int or self.target_is_python: - self._do_collect_type(tp) - - def _generate_cpy_constant_decl(self, tp, name): - is_int = tp.is_integer_type() - self._generate_cpy_const(is_int, name, tp) - - def _generate_cpy_constant_ctx(self, tp, name): - if not self.target_is_python and tp.is_integer_type(): - type_op = CffiOp(OP_CONSTANT_INT, -1) - else: - if self.target_is_python: - const_kind = OP_DLOPEN_CONST - else: - const_kind = OP_CONSTANT - type_index = self._typesdict[tp] - type_op = CffiOp(const_kind, type_index) - self._lsts["global"].append( - GlobalExpr(name, '_cffi_const_%s' % name, type_op)) - - # ---------- - # enums - - def _generate_cpy_enum_collecttype(self, tp, name): - self._do_collect_type(tp) - - def _generate_cpy_enum_decl(self, tp, name=None): - for enumerator in tp.enumerators: - self._generate_cpy_const(True, enumerator) - - def _enum_ctx(self, tp, cname): - type_index = self._typesdict[tp] - type_op = CffiOp(OP_ENUM, -1) - if self.target_is_python: - tp.check_not_partial() - for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues): - self._lsts["global"].append( - GlobalExpr(enumerator, '_cffi_const_%s' % enumerator, type_op, - check_value=enumvalue)) - # - if cname is not None and '$' not in cname and not self.target_is_python: - size = "sizeof(%s)" % cname - signed = "((%s)-1) <= 0" % cname - else: - basetp = tp.build_baseinttype(self.ffi, []) - size = self.ffi.sizeof(basetp) - signed = int(int(self.ffi.cast(basetp, -1)) < 0) - allenums = ",".join(tp.enumerators) - self._lsts["enum"].append( - EnumExpr(tp.name, type_index, size, signed, allenums)) - - def _generate_cpy_enum_ctx(self, tp, name): - self._enum_ctx(tp, tp._get_c_name()) - - # ---------- - # macros: for now only for integers - - def _generate_cpy_macro_collecttype(self, tp, name): - pass - - def _generate_cpy_macro_decl(self, tp, name): - if tp == '...': - check_value = None - else: - check_value = tp # an integer - self._generate_cpy_const(True, name, check_value=check_value) - - def _generate_cpy_macro_ctx(self, tp, name): - if tp == '...': - if self.target_is_python: - raise VerificationError( - "cannot use the syntax '...' in '#define %s ...' when " - "using the ABI mode" % (name,)) - check_value = None - else: - check_value = tp # an integer - type_op = CffiOp(OP_CONSTANT_INT, -1) - self._lsts["global"].append( - GlobalExpr(name, '_cffi_const_%s' % name, type_op, - check_value=check_value)) - - # ---------- - # global variables - - def _global_type(self, tp, global_name): - if isinstance(tp, model.ArrayType): - actual_length = tp.length - if actual_length == '...': - actual_length = '_cffi_array_len(%s)' % (global_name,) - tp_item = self._global_type(tp.item, '%s[0]' % global_name) - tp = model.ArrayType(tp_item, actual_length) - return tp - - def _generate_cpy_variable_collecttype(self, tp, name): - self._do_collect_type(self._global_type(tp, name)) - - def _generate_cpy_variable_decl(self, tp, name): - prnt = self._prnt - tp = self._global_type(tp, name) - if isinstance(tp, model.ArrayType) and tp.length is None: - tp = tp.item - ampersand = '' - else: - ampersand = '&' - # This code assumes that casts from "tp *" to "void *" is a - # no-op, i.e. a function that returns a "tp *" can be called - # as if it returned a "void *". This should be generally true - # on any modern machine. The only exception to that rule (on - # uncommon architectures, and as far as I can tell) might be - # if 'tp' were a function type, but that is not possible here. - # (If 'tp' is a function _pointer_ type, then casts from "fn_t - # **" to "void *" are again no-ops, as far as I can tell.) - decl = '*_cffi_var_%s(void)' % (name,) - prnt('static ' + tp.get_c_name(decl, quals=self._current_quals)) - prnt('{') - prnt(' return %s(%s);' % (ampersand, name)) - prnt('}') - prnt() - - def _generate_cpy_variable_ctx(self, tp, name): - tp = self._global_type(tp, name) - type_index = self._typesdict[tp] - if self.target_is_python: - op = OP_GLOBAL_VAR - else: - op = OP_GLOBAL_VAR_F - self._lsts["global"].append( - GlobalExpr(name, '_cffi_var_%s' % name, CffiOp(op, type_index))) - - # ---------- - # extern "Python" - - def _generate_cpy_extern_python_collecttype(self, tp, name): - assert isinstance(tp, model.FunctionPtrType) - self._do_collect_type(tp) - _generate_cpy_dllexport_python_collecttype = \ - _generate_cpy_extern_python_plus_c_collecttype = \ - _generate_cpy_extern_python_collecttype - - def _extern_python_decl(self, tp, name, tag_and_space): - prnt = self._prnt - if isinstance(tp.result, model.VoidType): - size_of_result = '0' - else: - context = 'result of %s' % name - size_of_result = '(int)sizeof(%s)' % ( - tp.result.get_c_name('', context),) - prnt('static struct _cffi_externpy_s _cffi_externpy__%s =' % name) - prnt(' { "%s.%s", %s, 0, 0 };' % ( - self.module_name, name, size_of_result)) - prnt() - # - arguments = [] - context = 'argument of %s' % name - for i, type in enumerate(tp.args): - arg = type.get_c_name(' a%d' % i, context) - arguments.append(arg) - # - repr_arguments = ', '.join(arguments) - repr_arguments = repr_arguments or 'void' - name_and_arguments = '%s(%s)' % (name, repr_arguments) - if tp.abi == "__stdcall": - name_and_arguments = '_cffi_stdcall ' + name_and_arguments - # - def may_need_128_bits(tp): - return (isinstance(tp, model.PrimitiveType) and - tp.name == 'long double') - # - size_of_a = max(len(tp.args)*8, 8) - if may_need_128_bits(tp.result): - size_of_a = max(size_of_a, 16) - if isinstance(tp.result, model.StructOrUnion): - size_of_a = 'sizeof(%s) > %d ? sizeof(%s) : %d' % ( - tp.result.get_c_name(''), size_of_a, - tp.result.get_c_name(''), size_of_a) - prnt('%s%s' % (tag_and_space, tp.result.get_c_name(name_and_arguments))) - prnt('{') - prnt(' char a[%s];' % size_of_a) - prnt(' char *p = a;') - for i, type in enumerate(tp.args): - arg = 'a%d' % i - if (isinstance(type, model.StructOrUnion) or - may_need_128_bits(type)): - arg = '&' + arg - type = model.PointerType(type) - prnt(' *(%s)(p + %d) = %s;' % (type.get_c_name('*'), i*8, arg)) - prnt(' _cffi_call_python(&_cffi_externpy__%s, p);' % name) - if not isinstance(tp.result, model.VoidType): - prnt(' return *(%s)p;' % (tp.result.get_c_name('*'),)) - prnt('}') - prnt() - self._num_externpy += 1 - - def _generate_cpy_extern_python_decl(self, tp, name): - self._extern_python_decl(tp, name, 'static ') - - def _generate_cpy_dllexport_python_decl(self, tp, name): - self._extern_python_decl(tp, name, 'CFFI_DLLEXPORT ') - - def _generate_cpy_extern_python_plus_c_decl(self, tp, name): - self._extern_python_decl(tp, name, '') - - def _generate_cpy_extern_python_ctx(self, tp, name): - if self.target_is_python: - raise VerificationError( - "cannot use 'extern \"Python\"' in the ABI mode") - if tp.ellipsis: - raise NotImplementedError("a vararg function is extern \"Python\"") - type_index = self._typesdict[tp] - type_op = CffiOp(OP_EXTERN_PYTHON, type_index) - self._lsts["global"].append( - GlobalExpr(name, '&_cffi_externpy__%s' % name, type_op, name)) - - _generate_cpy_dllexport_python_ctx = \ - _generate_cpy_extern_python_plus_c_ctx = \ - _generate_cpy_extern_python_ctx - - def _print_string_literal_in_array(self, s): - prnt = self._prnt - prnt('// # NB. this is not a string because of a size limit in MSVC') - if not isinstance(s, bytes): # unicode - s = s.encode('utf-8') # -> bytes - else: - s.decode('utf-8') # got bytes, check for valid utf-8 - try: - s.decode('ascii') - except UnicodeDecodeError: - s = b'# -*- encoding: utf8 -*-\n' + s - for line in s.splitlines(True): - comment = line - if type('//') is bytes: # python2 - line = map(ord, line) # make a list of integers - else: # python3 - # type(line) is bytes, which enumerates like a list of integers - comment = ascii(comment)[1:-1] - prnt(('// ' + comment).rstrip()) - printed_line = '' - for c in line: - if len(printed_line) >= 76: - prnt(printed_line) - printed_line = '' - printed_line += '%d,' % (c,) - prnt(printed_line) - - # ---------- - # emitting the opcodes for individual types - - def _emit_bytecode_VoidType(self, tp, index): - self.cffi_types[index] = CffiOp(OP_PRIMITIVE, PRIM_VOID) - - def _emit_bytecode_PrimitiveType(self, tp, index): - prim_index = PRIMITIVE_TO_INDEX[tp.name] - self.cffi_types[index] = CffiOp(OP_PRIMITIVE, prim_index) - - def _emit_bytecode_UnknownIntegerType(self, tp, index): - s = ('_cffi_prim_int(sizeof(%s), (\n' - ' ((%s)-1) | 0 /* check that %s is an integer type */\n' - ' ) <= 0)' % (tp.name, tp.name, tp.name)) - self.cffi_types[index] = CffiOp(OP_PRIMITIVE, s) - - def _emit_bytecode_UnknownFloatType(self, tp, index): - s = ('_cffi_prim_float(sizeof(%s) *\n' - ' (((%s)1) / 2) * 2 /* integer => 0, float => 1 */\n' - ' )' % (tp.name, tp.name)) - self.cffi_types[index] = CffiOp(OP_PRIMITIVE, s) - - def _emit_bytecode_RawFunctionType(self, tp, index): - self.cffi_types[index] = CffiOp(OP_FUNCTION, self._typesdict[tp.result]) - index += 1 - for tp1 in tp.args: - realindex = self._typesdict[tp1] - if index != realindex: - if isinstance(tp1, model.PrimitiveType): - self._emit_bytecode_PrimitiveType(tp1, index) - else: - self.cffi_types[index] = CffiOp(OP_NOOP, realindex) - index += 1 - flags = int(tp.ellipsis) - if tp.abi is not None: - if tp.abi == '__stdcall': - flags |= 2 - else: - raise NotImplementedError("abi=%r" % (tp.abi,)) - self.cffi_types[index] = CffiOp(OP_FUNCTION_END, flags) - - def _emit_bytecode_PointerType(self, tp, index): - self.cffi_types[index] = CffiOp(OP_POINTER, self._typesdict[tp.totype]) - - _emit_bytecode_ConstPointerType = _emit_bytecode_PointerType - _emit_bytecode_NamedPointerType = _emit_bytecode_PointerType - - def _emit_bytecode_FunctionPtrType(self, tp, index): - raw = tp.as_raw_function() - self.cffi_types[index] = CffiOp(OP_POINTER, self._typesdict[raw]) - - def _emit_bytecode_ArrayType(self, tp, index): - item_index = self._typesdict[tp.item] - if tp.length is None: - self.cffi_types[index] = CffiOp(OP_OPEN_ARRAY, item_index) - elif tp.length == '...': - raise VerificationError( - "type %s badly placed: the '...' array length can only be " - "used on global arrays or on fields of structures" % ( - str(tp).replace('/*...*/', '...'),)) - else: - assert self.cffi_types[index + 1] == 'LEN' - self.cffi_types[index] = CffiOp(OP_ARRAY, item_index) - self.cffi_types[index + 1] = CffiOp(None, str(tp.length)) - - def _emit_bytecode_StructType(self, tp, index): - struct_index = self._struct_unions[tp] - self.cffi_types[index] = CffiOp(OP_STRUCT_UNION, struct_index) - _emit_bytecode_UnionType = _emit_bytecode_StructType - - def _emit_bytecode_EnumType(self, tp, index): - enum_index = self._enums[tp] - self.cffi_types[index] = CffiOp(OP_ENUM, enum_index) - - -if sys.version_info >= (3,): - NativeIO = io.StringIO -else: - class NativeIO(io.BytesIO): - def write(self, s): - if isinstance(s, unicode): - s = s.encode('ascii') - super(NativeIO, self).write(s) - -def _is_file_like(maybefile): - # compare to xml.etree.ElementTree._get_writer - return hasattr(maybefile, 'write') - -def _make_c_or_py_source(ffi, module_name, preamble, target_file, verbose): - if verbose: - print("generating %s" % (target_file,)) - recompiler = Recompiler(ffi, module_name, - target_is_python=(preamble is None)) - recompiler.collect_type_table() - recompiler.collect_step_tables() - if _is_file_like(target_file): - recompiler.write_source_to_f(target_file, preamble) - return True - f = NativeIO() - recompiler.write_source_to_f(f, preamble) - output = f.getvalue() - try: - with open(target_file, 'r') as f1: - if f1.read(len(output) + 1) != output: - raise IOError - if verbose: - print("(already up-to-date)") - return False # already up-to-date - except IOError: - tmp_file = '%s.~%d' % (target_file, os.getpid()) - with open(tmp_file, 'w') as f1: - f1.write(output) - try: - os.rename(tmp_file, target_file) - except OSError: - os.unlink(target_file) - os.rename(tmp_file, target_file) - return True - -def make_c_source(ffi, module_name, preamble, target_c_file, verbose=False): - assert preamble is not None - return _make_c_or_py_source(ffi, module_name, preamble, target_c_file, - verbose) - -def make_py_source(ffi, module_name, target_py_file, verbose=False): - return _make_c_or_py_source(ffi, module_name, None, target_py_file, - verbose) - -def _modname_to_file(outputdir, modname, extension): - parts = modname.split('.') - try: - os.makedirs(os.path.join(outputdir, *parts[:-1])) - except OSError: - pass - parts[-1] += extension - return os.path.join(outputdir, *parts), parts - - -# Aaargh. Distutils is not tested at all for the purpose of compiling -# DLLs that are not extension modules. Here are some hacks to work -# around that, in the _patch_for_*() functions... - -def _patch_meth(patchlist, cls, name, new_meth): - old = getattr(cls, name) - patchlist.append((cls, name, old)) - setattr(cls, name, new_meth) - return old - -def _unpatch_meths(patchlist): - for cls, name, old_meth in reversed(patchlist): - setattr(cls, name, old_meth) - -def _patch_for_embedding(patchlist): - if sys.platform == 'win32': - # we must not remove the manifest when building for embedding! - # FUTURE: this module was removed in setuptools 74; this is likely dead code and should be removed, - # since the toolchain it supports (VS2005-2008) is also long dead. - from cffi._shimmed_dist_utils import MSVCCompiler - if MSVCCompiler is not None: - _patch_meth(patchlist, MSVCCompiler, '_remove_visual_c_ref', - lambda self, manifest_file: manifest_file) - - if sys.platform == 'darwin': - # we must not make a '-bundle', but a '-dynamiclib' instead - from cffi._shimmed_dist_utils import CCompiler - def my_link_shared_object(self, *args, **kwds): - if '-bundle' in self.linker_so: - self.linker_so = list(self.linker_so) - i = self.linker_so.index('-bundle') - self.linker_so[i] = '-dynamiclib' - return old_link_shared_object(self, *args, **kwds) - old_link_shared_object = _patch_meth(patchlist, CCompiler, - 'link_shared_object', - my_link_shared_object) - -def _patch_for_target(patchlist, target): - from cffi._shimmed_dist_utils import build_ext - # if 'target' is different from '*', we need to patch some internal - # method to just return this 'target' value, instead of having it - # built from module_name - if target.endswith('.*'): - target = target[:-2] - if sys.platform == 'win32': - target += '.dll' - elif sys.platform == 'darwin': - target += '.dylib' - else: - target += '.so' - _patch_meth(patchlist, build_ext, 'get_ext_filename', - lambda self, ext_name: target) - - -def recompile(ffi, module_name, preamble, tmpdir='.', call_c_compiler=True, - c_file=None, source_extension='.c', extradir=None, - compiler_verbose=1, target=None, debug=None, - uses_ffiplatform=True, **kwds): - if not isinstance(module_name, str): - module_name = module_name.encode('ascii') - if ffi._windows_unicode: - ffi._apply_windows_unicode(kwds) - if preamble is not None: - if call_c_compiler and _is_file_like(c_file): - raise TypeError("Writing to file-like objects is not supported " - "with call_c_compiler=True") - embedding = (ffi._embedding is not None) - if embedding: - ffi._apply_embedding_fix(kwds) - if c_file is None: - c_file, parts = _modname_to_file(tmpdir, module_name, - source_extension) - if extradir: - parts = [extradir] + parts - ext_c_file = os.path.join(*parts) - else: - ext_c_file = c_file - # - if target is None: - if embedding: - target = '%s.*' % module_name - else: - target = '*' - # - if uses_ffiplatform: - ext = ffiplatform.get_extension(ext_c_file, module_name, **kwds) - else: - ext = None - updated = make_c_source(ffi, module_name, preamble, c_file, - verbose=compiler_verbose) - if call_c_compiler: - patchlist = [] - cwd = os.getcwd() - try: - if embedding: - _patch_for_embedding(patchlist) - if target != '*': - _patch_for_target(patchlist, target) - if compiler_verbose: - if tmpdir == '.': - msg = 'the current directory is' - else: - msg = 'setting the current directory to' - print('%s %r' % (msg, os.path.abspath(tmpdir))) - os.chdir(tmpdir) - outputfilename = ffiplatform.compile('.', ext, - compiler_verbose, debug) - finally: - os.chdir(cwd) - _unpatch_meths(patchlist) - return outputfilename - else: - return ext, updated - else: - if c_file is None: - c_file, _ = _modname_to_file(tmpdir, module_name, '.py') - updated = make_py_source(ffi, module_name, c_file, - verbose=compiler_verbose) - if call_c_compiler: - return c_file - else: - return None, updated - diff --git a/.venv/lib/python3.9/site-packages/cffi/setuptools_ext.py b/.venv/lib/python3.9/site-packages/cffi/setuptools_ext.py deleted file mode 100644 index 5cdd246..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/setuptools_ext.py +++ /dev/null @@ -1,229 +0,0 @@ -import os -import sys -import sysconfig - -try: - basestring -except NameError: - # Python 3.x - basestring = str - -def error(msg): - from cffi._shimmed_dist_utils import DistutilsSetupError - raise DistutilsSetupError(msg) - - -def execfile(filename, glob): - # We use execfile() (here rewritten for Python 3) instead of - # __import__() to load the build script. The problem with - # a normal import is that in some packages, the intermediate - # __init__.py files may already try to import the file that - # we are generating. - with open(filename) as f: - src = f.read() - src += '\n' # Python 2.6 compatibility - code = compile(src, filename, 'exec') - exec(code, glob, glob) - - -def add_cffi_module(dist, mod_spec): - from cffi.api import FFI - - if not isinstance(mod_spec, basestring): - error("argument to 'cffi_modules=...' must be a str or a list of str," - " not %r" % (type(mod_spec).__name__,)) - mod_spec = str(mod_spec) - try: - build_file_name, ffi_var_name = mod_spec.split(':') - except ValueError: - error("%r must be of the form 'path/build.py:ffi_variable'" % - (mod_spec,)) - if not os.path.exists(build_file_name): - ext = '' - rewritten = build_file_name.replace('.', '/') + '.py' - if os.path.exists(rewritten): - ext = ' (rewrite cffi_modules to [%r])' % ( - rewritten + ':' + ffi_var_name,) - error("%r does not name an existing file%s" % (build_file_name, ext)) - - mod_vars = {'__name__': '__cffi__', '__file__': build_file_name} - execfile(build_file_name, mod_vars) - - try: - ffi = mod_vars[ffi_var_name] - except KeyError: - error("%r: object %r not found in module" % (mod_spec, - ffi_var_name)) - if not isinstance(ffi, FFI): - ffi = ffi() # maybe it's a function instead of directly an ffi - if not isinstance(ffi, FFI): - error("%r is not an FFI instance (got %r)" % (mod_spec, - type(ffi).__name__)) - if not hasattr(ffi, '_assigned_source'): - error("%r: the set_source() method was not called" % (mod_spec,)) - module_name, source, source_extension, kwds = ffi._assigned_source - if ffi._windows_unicode: - kwds = kwds.copy() - ffi._apply_windows_unicode(kwds) - - if source is None: - _add_py_module(dist, ffi, module_name) - else: - _add_c_module(dist, ffi, module_name, source, source_extension, kwds) - -def _set_py_limited_api(Extension, kwds): - """ - Add py_limited_api to kwds if setuptools >= 26 is in use. - Do not alter the setting if it already exists. - Setuptools takes care of ignoring the flag on Python 2 and PyPy. - - CPython itself should ignore the flag in a debugging version - (by not listing .abi3.so in the extensions it supports), but - it doesn't so far, creating troubles. That's why we check - for "not hasattr(sys, 'gettotalrefcount')" (the 2.7 compatible equivalent - of 'd' not in sys.abiflags). (http://bugs.python.org/issue28401) - - On Windows, with CPython <= 3.4, it's better not to use py_limited_api - because virtualenv *still* doesn't copy PYTHON3.DLL on these versions. - Recently (2020) we started shipping only >= 3.5 wheels, though. So - we'll give it another try and set py_limited_api on Windows >= 3.5. - """ - from cffi._shimmed_dist_utils import log - from cffi import recompiler - - if ('py_limited_api' not in kwds and not hasattr(sys, 'gettotalrefcount') - and recompiler.USE_LIMITED_API): - import setuptools - try: - setuptools_major_version = int(setuptools.__version__.partition('.')[0]) - if setuptools_major_version >= 26: - kwds['py_limited_api'] = True - except ValueError: # certain development versions of setuptools - # If we don't know the version number of setuptools, we - # try to set 'py_limited_api' anyway. At worst, we get a - # warning. - kwds['py_limited_api'] = True - - if sysconfig.get_config_var("Py_GIL_DISABLED"): - if kwds.get('py_limited_api'): - log.info("Ignoring py_limited_api=True for free-threaded build.") - - kwds['py_limited_api'] = False - - if kwds.get('py_limited_api') is False: - # avoid setting Py_LIMITED_API if py_limited_api=False - # which _cffi_include.h does unless _CFFI_NO_LIMITED_API is defined - kwds.setdefault("define_macros", []).append(("_CFFI_NO_LIMITED_API", None)) - return kwds - -def _add_c_module(dist, ffi, module_name, source, source_extension, kwds): - # We are a setuptools extension. Need this build_ext for py_limited_api. - from setuptools.command.build_ext import build_ext - from cffi._shimmed_dist_utils import Extension, log, mkpath - from cffi import recompiler - - allsources = ['$PLACEHOLDER'] - allsources.extend(kwds.pop('sources', [])) - kwds = _set_py_limited_api(Extension, kwds) - ext = Extension(name=module_name, sources=allsources, **kwds) - - def make_mod(tmpdir, pre_run=None): - c_file = os.path.join(tmpdir, module_name + source_extension) - log.info("generating cffi module %r" % c_file) - mkpath(tmpdir) - # a setuptools-only, API-only hook: called with the "ext" and "ffi" - # arguments just before we turn the ffi into C code. To use it, - # subclass the 'distutils.command.build_ext.build_ext' class and - # add a method 'def pre_run(self, ext, ffi)'. - if pre_run is not None: - pre_run(ext, ffi) - updated = recompiler.make_c_source(ffi, module_name, source, c_file) - if not updated: - log.info("already up-to-date") - return c_file - - if dist.ext_modules is None: - dist.ext_modules = [] - dist.ext_modules.append(ext) - - base_class = dist.cmdclass.get('build_ext', build_ext) - class build_ext_make_mod(base_class): - def run(self): - if ext.sources[0] == '$PLACEHOLDER': - pre_run = getattr(self, 'pre_run', None) - ext.sources[0] = make_mod(self.build_temp, pre_run) - base_class.run(self) - dist.cmdclass['build_ext'] = build_ext_make_mod - # NB. multiple runs here will create multiple 'build_ext_make_mod' - # classes. Even in this case the 'build_ext' command should be - # run once; but just in case, the logic above does nothing if - # called again. - - -def _add_py_module(dist, ffi, module_name): - from setuptools.command.build_py import build_py - from setuptools.command.build_ext import build_ext - from cffi._shimmed_dist_utils import log, mkpath - from cffi import recompiler - - def generate_mod(py_file): - log.info("generating cffi module %r" % py_file) - mkpath(os.path.dirname(py_file)) - updated = recompiler.make_py_source(ffi, module_name, py_file) - if not updated: - log.info("already up-to-date") - - base_class = dist.cmdclass.get('build_py', build_py) - class build_py_make_mod(base_class): - def run(self): - base_class.run(self) - module_path = module_name.split('.') - module_path[-1] += '.py' - generate_mod(os.path.join(self.build_lib, *module_path)) - def get_source_files(self): - # This is called from 'setup.py sdist' only. Exclude - # the generate .py module in this case. - saved_py_modules = self.py_modules - try: - if saved_py_modules: - self.py_modules = [m for m in saved_py_modules - if m != module_name] - return base_class.get_source_files(self) - finally: - self.py_modules = saved_py_modules - dist.cmdclass['build_py'] = build_py_make_mod - - # distutils and setuptools have no notion I could find of a - # generated python module. If we don't add module_name to - # dist.py_modules, then things mostly work but there are some - # combination of options (--root and --record) that will miss - # the module. So we add it here, which gives a few apparently - # harmless warnings about not finding the file outside the - # build directory. - # Then we need to hack more in get_source_files(); see above. - if dist.py_modules is None: - dist.py_modules = [] - dist.py_modules.append(module_name) - - # the following is only for "build_ext -i" - base_class_2 = dist.cmdclass.get('build_ext', build_ext) - class build_ext_make_mod(base_class_2): - def run(self): - base_class_2.run(self) - if self.inplace: - # from get_ext_fullpath() in distutils/command/build_ext.py - module_path = module_name.split('.') - package = '.'.join(module_path[:-1]) - build_py = self.get_finalized_command('build_py') - package_dir = build_py.get_package_dir(package) - file_name = module_path[-1] + '.py' - generate_mod(os.path.join(package_dir, file_name)) - dist.cmdclass['build_ext'] = build_ext_make_mod - -def cffi_modules(dist, attr, value): - assert attr == 'cffi_modules' - if isinstance(value, basestring): - value = [value] - - for cffi_module in value: - add_cffi_module(dist, cffi_module) diff --git a/.venv/lib/python3.9/site-packages/cffi/vengine_cpy.py b/.venv/lib/python3.9/site-packages/cffi/vengine_cpy.py deleted file mode 100644 index 02e6a47..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/vengine_cpy.py +++ /dev/null @@ -1,1087 +0,0 @@ -# -# DEPRECATED: implementation for ffi.verify() -# -import sys -from . import model -from .error import VerificationError -from . import _imp_emulation as imp - - -class VCPythonEngine(object): - _class_key = 'x' - _gen_python_module = True - - def __init__(self, verifier): - self.verifier = verifier - self.ffi = verifier.ffi - self._struct_pending_verification = {} - self._types_of_builtin_functions = {} - - def patch_extension_kwds(self, kwds): - pass - - def find_module(self, module_name, path, so_suffixes): - try: - f, filename, descr = imp.find_module(module_name, path) - except ImportError: - return None - if f is not None: - f.close() - # Note that after a setuptools installation, there are both .py - # and .so files with the same basename. The code here relies on - # imp.find_module() locating the .so in priority. - if descr[0] not in so_suffixes: - return None - return filename - - def collect_types(self): - self._typesdict = {} - self._generate("collecttype") - - def _prnt(self, what=''): - self._f.write(what + '\n') - - def _gettypenum(self, type): - # a KeyError here is a bug. please report it! :-) - return self._typesdict[type] - - def _do_collect_type(self, tp): - if ((not isinstance(tp, model.PrimitiveType) - or tp.name == 'long double') - and tp not in self._typesdict): - num = len(self._typesdict) - self._typesdict[tp] = num - - def write_source_to_f(self): - self.collect_types() - # - # The new module will have a _cffi_setup() function that receives - # objects from the ffi world, and that calls some setup code in - # the module. This setup code is split in several independent - # functions, e.g. one per constant. The functions are "chained" - # by ending in a tail call to each other. - # - # This is further split in two chained lists, depending on if we - # can do it at import-time or if we must wait for _cffi_setup() to - # provide us with the objects. This is needed because we - # need the values of the enum constants in order to build the - # that we may have to pass to _cffi_setup(). - # - # The following two 'chained_list_constants' items contains - # the head of these two chained lists, as a string that gives the - # call to do, if any. - self._chained_list_constants = ['((void)lib,0)', '((void)lib,0)'] - # - prnt = self._prnt - # first paste some standard set of lines that are mostly '#define' - prnt(cffimod_header) - prnt() - # then paste the C source given by the user, verbatim. - prnt(self.verifier.preamble) - prnt() - # - # call generate_cpy_xxx_decl(), for every xxx found from - # ffi._parser._declarations. This generates all the functions. - self._generate("decl") - # - # implement the function _cffi_setup_custom() as calling the - # head of the chained list. - self._generate_setup_custom() - prnt() - # - # produce the method table, including the entries for the - # generated Python->C function wrappers, which are done - # by generate_cpy_function_method(). - prnt('static PyMethodDef _cffi_methods[] = {') - self._generate("method") - prnt(' {"_cffi_setup", _cffi_setup, METH_VARARGS, NULL},') - prnt(' {NULL, NULL, 0, NULL} /* Sentinel */') - prnt('};') - prnt() - # - # standard init. - modname = self.verifier.get_module_name() - constants = self._chained_list_constants[False] - prnt('#if PY_MAJOR_VERSION >= 3') - prnt() - prnt('static struct PyModuleDef _cffi_module_def = {') - prnt(' PyModuleDef_HEAD_INIT,') - prnt(' "%s",' % modname) - prnt(' NULL,') - prnt(' -1,') - prnt(' _cffi_methods,') - prnt(' NULL, NULL, NULL, NULL') - prnt('};') - prnt() - prnt('PyMODINIT_FUNC') - prnt('PyInit_%s(void)' % modname) - prnt('{') - prnt(' PyObject *lib;') - prnt(' lib = PyModule_Create(&_cffi_module_def);') - prnt(' if (lib == NULL)') - prnt(' return NULL;') - prnt(' if (%s < 0 || _cffi_init() < 0) {' % (constants,)) - prnt(' Py_DECREF(lib);') - prnt(' return NULL;') - prnt(' }') - prnt('#if Py_GIL_DISABLED') - prnt(' PyUnstable_Module_SetGIL(lib, Py_MOD_GIL_NOT_USED);') - prnt('#endif') - prnt(' return lib;') - prnt('}') - prnt() - prnt('#else') - prnt() - prnt('PyMODINIT_FUNC') - prnt('init%s(void)' % modname) - prnt('{') - prnt(' PyObject *lib;') - prnt(' lib = Py_InitModule("%s", _cffi_methods);' % modname) - prnt(' if (lib == NULL)') - prnt(' return;') - prnt(' if (%s < 0 || _cffi_init() < 0)' % (constants,)) - prnt(' return;') - prnt(' return;') - prnt('}') - prnt() - prnt('#endif') - - def load_library(self, flags=None): - # XXX review all usages of 'self' here! - # import it as a new extension module - imp.acquire_lock() - try: - if hasattr(sys, "getdlopenflags"): - previous_flags = sys.getdlopenflags() - try: - if hasattr(sys, "setdlopenflags") and flags is not None: - sys.setdlopenflags(flags) - module = imp.load_dynamic(self.verifier.get_module_name(), - self.verifier.modulefilename) - except ImportError as e: - error = "importing %r: %s" % (self.verifier.modulefilename, e) - raise VerificationError(error) - finally: - if hasattr(sys, "setdlopenflags"): - sys.setdlopenflags(previous_flags) - finally: - imp.release_lock() - # - # call loading_cpy_struct() to get the struct layout inferred by - # the C compiler - self._load(module, 'loading') - # - # the C code will need the objects. Collect them in - # order in a list. - revmapping = dict([(value, key) - for (key, value) in self._typesdict.items()]) - lst = [revmapping[i] for i in range(len(revmapping))] - lst = list(map(self.ffi._get_cached_btype, lst)) - # - # build the FFILibrary class and instance and call _cffi_setup(). - # this will set up some fields like '_cffi_types', and only then - # it will invoke the chained list of functions that will really - # build (notably) the constant objects, as if they are - # pointers, and store them as attributes on the 'library' object. - class FFILibrary(object): - _cffi_python_module = module - _cffi_ffi = self.ffi - _cffi_dir = [] - def __dir__(self): - return FFILibrary._cffi_dir + list(self.__dict__) - library = FFILibrary() - if module._cffi_setup(lst, VerificationError, library): - import warnings - warnings.warn("reimporting %r might overwrite older definitions" - % (self.verifier.get_module_name())) - # - # finally, call the loaded_cpy_xxx() functions. This will perform - # the final adjustments, like copying the Python->C wrapper - # functions from the module to the 'library' object, and setting - # up the FFILibrary class with properties for the global C variables. - self._load(module, 'loaded', library=library) - module._cffi_original_ffi = self.ffi - module._cffi_types_of_builtin_funcs = self._types_of_builtin_functions - return library - - def _get_declarations(self): - lst = [(key, tp) for (key, (tp, qual)) in - self.ffi._parser._declarations.items()] - lst.sort() - return lst - - def _generate(self, step_name): - for name, tp in self._get_declarations(): - kind, realname = name.split(' ', 1) - try: - method = getattr(self, '_generate_cpy_%s_%s' % (kind, - step_name)) - except AttributeError: - raise VerificationError( - "not implemented in verify(): %r" % name) - try: - method(tp, realname) - except Exception as e: - model.attach_exception_info(e, name) - raise - - def _load(self, module, step_name, **kwds): - for name, tp in self._get_declarations(): - kind, realname = name.split(' ', 1) - method = getattr(self, '_%s_cpy_%s' % (step_name, kind)) - try: - method(tp, realname, module, **kwds) - except Exception as e: - model.attach_exception_info(e, name) - raise - - def _generate_nothing(self, tp, name): - pass - - def _loaded_noop(self, tp, name, module, **kwds): - pass - - # ---------- - - def _convert_funcarg_to_c(self, tp, fromvar, tovar, errcode): - extraarg = '' - if isinstance(tp, model.PrimitiveType): - if tp.is_integer_type() and tp.name != '_Bool': - converter = '_cffi_to_c_int' - extraarg = ', %s' % tp.name - elif tp.is_complex_type(): - raise VerificationError( - "not implemented in verify(): complex types") - else: - converter = '(%s)_cffi_to_c_%s' % (tp.get_c_name(''), - tp.name.replace(' ', '_')) - errvalue = '-1' - # - elif isinstance(tp, model.PointerType): - self._convert_funcarg_to_c_ptr_or_array(tp, fromvar, - tovar, errcode) - return - # - elif isinstance(tp, (model.StructOrUnion, model.EnumType)): - # a struct (not a struct pointer) as a function argument - self._prnt(' if (_cffi_to_c((char *)&%s, _cffi_type(%d), %s) < 0)' - % (tovar, self._gettypenum(tp), fromvar)) - self._prnt(' %s;' % errcode) - return - # - elif isinstance(tp, model.FunctionPtrType): - converter = '(%s)_cffi_to_c_pointer' % tp.get_c_name('') - extraarg = ', _cffi_type(%d)' % self._gettypenum(tp) - errvalue = 'NULL' - # - else: - raise NotImplementedError(tp) - # - self._prnt(' %s = %s(%s%s);' % (tovar, converter, fromvar, extraarg)) - self._prnt(' if (%s == (%s)%s && PyErr_Occurred())' % ( - tovar, tp.get_c_name(''), errvalue)) - self._prnt(' %s;' % errcode) - - def _extra_local_variables(self, tp, localvars, freelines): - if isinstance(tp, model.PointerType): - localvars.add('Py_ssize_t datasize') - localvars.add('struct _cffi_freeme_s *large_args_free = NULL') - freelines.add('if (large_args_free != NULL)' - ' _cffi_free_array_arguments(large_args_free);') - - def _convert_funcarg_to_c_ptr_or_array(self, tp, fromvar, tovar, errcode): - self._prnt(' datasize = _cffi_prepare_pointer_call_argument(') - self._prnt(' _cffi_type(%d), %s, (char **)&%s);' % ( - self._gettypenum(tp), fromvar, tovar)) - self._prnt(' if (datasize != 0) {') - self._prnt(' %s = ((size_t)datasize) <= 640 ? ' - 'alloca((size_t)datasize) : NULL;' % (tovar,)) - self._prnt(' if (_cffi_convert_array_argument(_cffi_type(%d), %s, ' - '(char **)&%s,' % (self._gettypenum(tp), fromvar, tovar)) - self._prnt(' datasize, &large_args_free) < 0)') - self._prnt(' %s;' % errcode) - self._prnt(' }') - - def _convert_expr_from_c(self, tp, var, context): - if isinstance(tp, model.PrimitiveType): - if tp.is_integer_type() and tp.name != '_Bool': - return '_cffi_from_c_int(%s, %s)' % (var, tp.name) - elif tp.name != 'long double': - return '_cffi_from_c_%s(%s)' % (tp.name.replace(' ', '_'), var) - else: - return '_cffi_from_c_deref((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, (model.PointerType, model.FunctionPtrType)): - return '_cffi_from_c_pointer((char *)%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, model.ArrayType): - return '_cffi_from_c_pointer((char *)%s, _cffi_type(%d))' % ( - var, self._gettypenum(model.PointerType(tp.item))) - elif isinstance(tp, model.StructOrUnion): - if tp.fldnames is None: - raise TypeError("'%s' is used as %s, but is opaque" % ( - tp._get_c_name(), context)) - return '_cffi_from_c_struct((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, model.EnumType): - return '_cffi_from_c_deref((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - else: - raise NotImplementedError(tp) - - # ---------- - # typedefs: generates no code so far - - _generate_cpy_typedef_collecttype = _generate_nothing - _generate_cpy_typedef_decl = _generate_nothing - _generate_cpy_typedef_method = _generate_nothing - _loading_cpy_typedef = _loaded_noop - _loaded_cpy_typedef = _loaded_noop - - # ---------- - # function declarations - - def _generate_cpy_function_collecttype(self, tp, name): - assert isinstance(tp, model.FunctionPtrType) - if tp.ellipsis: - self._do_collect_type(tp) - else: - # don't call _do_collect_type(tp) in this common case, - # otherwise test_autofilled_struct_as_argument fails - for type in tp.args: - self._do_collect_type(type) - self._do_collect_type(tp.result) - - def _generate_cpy_function_decl(self, tp, name): - assert isinstance(tp, model.FunctionPtrType) - if tp.ellipsis: - # cannot support vararg functions better than this: check for its - # exact type (including the fixed arguments), and build it as a - # constant function pointer (no CPython wrapper) - self._generate_cpy_const(False, name, tp) - return - prnt = self._prnt - numargs = len(tp.args) - if numargs == 0: - argname = 'noarg' - elif numargs == 1: - argname = 'arg0' - else: - argname = 'args' - prnt('static PyObject *') - prnt('_cffi_f_%s(PyObject *self, PyObject *%s)' % (name, argname)) - prnt('{') - # - context = 'argument of %s' % name - for i, type in enumerate(tp.args): - prnt(' %s;' % type.get_c_name(' x%d' % i, context)) - # - localvars = set() - freelines = set() - for type in tp.args: - self._extra_local_variables(type, localvars, freelines) - for decl in sorted(localvars): - prnt(' %s;' % (decl,)) - # - if not isinstance(tp.result, model.VoidType): - result_code = 'result = ' - context = 'result of %s' % name - prnt(' %s;' % tp.result.get_c_name(' result', context)) - prnt(' PyObject *pyresult;') - else: - result_code = '' - # - if len(tp.args) > 1: - rng = range(len(tp.args)) - for i in rng: - prnt(' PyObject *arg%d;' % i) - prnt() - prnt(' if (!PyArg_ParseTuple(args, "%s:%s", %s))' % ( - 'O' * numargs, name, ', '.join(['&arg%d' % i for i in rng]))) - prnt(' return NULL;') - prnt() - # - for i, type in enumerate(tp.args): - self._convert_funcarg_to_c(type, 'arg%d' % i, 'x%d' % i, - 'return NULL') - prnt() - # - prnt(' Py_BEGIN_ALLOW_THREADS') - prnt(' _cffi_restore_errno();') - prnt(' { %s%s(%s); }' % ( - result_code, name, - ', '.join(['x%d' % i for i in range(len(tp.args))]))) - prnt(' _cffi_save_errno();') - prnt(' Py_END_ALLOW_THREADS') - prnt() - # - prnt(' (void)self; /* unused */') - if numargs == 0: - prnt(' (void)noarg; /* unused */') - if result_code: - prnt(' pyresult = %s;' % - self._convert_expr_from_c(tp.result, 'result', 'result type')) - for freeline in freelines: - prnt(' ' + freeline) - prnt(' return pyresult;') - else: - for freeline in freelines: - prnt(' ' + freeline) - prnt(' Py_INCREF(Py_None);') - prnt(' return Py_None;') - prnt('}') - prnt() - - def _generate_cpy_function_method(self, tp, name): - if tp.ellipsis: - return - numargs = len(tp.args) - if numargs == 0: - meth = 'METH_NOARGS' - elif numargs == 1: - meth = 'METH_O' - else: - meth = 'METH_VARARGS' - self._prnt(' {"%s", _cffi_f_%s, %s, NULL},' % (name, name, meth)) - - _loading_cpy_function = _loaded_noop - - def _loaded_cpy_function(self, tp, name, module, library): - if tp.ellipsis: - return - func = getattr(module, name) - setattr(library, name, func) - self._types_of_builtin_functions[func] = tp - - # ---------- - # named structs - - _generate_cpy_struct_collecttype = _generate_nothing - def _generate_cpy_struct_decl(self, tp, name): - assert name == tp.name - self._generate_struct_or_union_decl(tp, 'struct', name) - def _generate_cpy_struct_method(self, tp, name): - self._generate_struct_or_union_method(tp, 'struct', name) - def _loading_cpy_struct(self, tp, name, module): - self._loading_struct_or_union(tp, 'struct', name, module) - def _loaded_cpy_struct(self, tp, name, module, **kwds): - self._loaded_struct_or_union(tp) - - _generate_cpy_union_collecttype = _generate_nothing - def _generate_cpy_union_decl(self, tp, name): - assert name == tp.name - self._generate_struct_or_union_decl(tp, 'union', name) - def _generate_cpy_union_method(self, tp, name): - self._generate_struct_or_union_method(tp, 'union', name) - def _loading_cpy_union(self, tp, name, module): - self._loading_struct_or_union(tp, 'union', name, module) - def _loaded_cpy_union(self, tp, name, module, **kwds): - self._loaded_struct_or_union(tp) - - def _generate_struct_or_union_decl(self, tp, prefix, name): - if tp.fldnames is None: - return # nothing to do with opaque structs - checkfuncname = '_cffi_check_%s_%s' % (prefix, name) - layoutfuncname = '_cffi_layout_%s_%s' % (prefix, name) - cname = ('%s %s' % (prefix, name)).strip() - # - prnt = self._prnt - prnt('static void %s(%s *p)' % (checkfuncname, cname)) - prnt('{') - prnt(' /* only to generate compile-time warnings or errors */') - prnt(' (void)p;') - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if (isinstance(ftype, model.PrimitiveType) - and ftype.is_integer_type()) or fbitsize >= 0: - # accept all integers, but complain on float or double - prnt(' (void)((p->%s) << 1);' % fname) - else: - # only accept exactly the type declared. - try: - prnt(' { %s = &p->%s; (void)tmp; }' % ( - ftype.get_c_name('*tmp', 'field %r'%fname, quals=fqual), - fname)) - except VerificationError as e: - prnt(' /* %s */' % str(e)) # cannot verify it, ignore - prnt('}') - prnt('static PyObject *') - prnt('%s(PyObject *self, PyObject *noarg)' % (layoutfuncname,)) - prnt('{') - prnt(' struct _cffi_aligncheck { char x; %s y; };' % cname) - prnt(' static Py_ssize_t nums[] = {') - prnt(' sizeof(%s),' % cname) - prnt(' offsetof(struct _cffi_aligncheck, y),') - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if fbitsize >= 0: - continue # xxx ignore fbitsize for now - prnt(' offsetof(%s, %s),' % (cname, fname)) - if isinstance(ftype, model.ArrayType) and ftype.length is None: - prnt(' 0, /* %s */' % ftype._get_c_name()) - else: - prnt(' sizeof(((%s *)0)->%s),' % (cname, fname)) - prnt(' -1') - prnt(' };') - prnt(' (void)self; /* unused */') - prnt(' (void)noarg; /* unused */') - prnt(' return _cffi_get_struct_layout(nums);') - prnt(' /* the next line is not executed, but compiled */') - prnt(' %s(0);' % (checkfuncname,)) - prnt('}') - prnt() - - def _generate_struct_or_union_method(self, tp, prefix, name): - if tp.fldnames is None: - return # nothing to do with opaque structs - layoutfuncname = '_cffi_layout_%s_%s' % (prefix, name) - self._prnt(' {"%s", %s, METH_NOARGS, NULL},' % (layoutfuncname, - layoutfuncname)) - - def _loading_struct_or_union(self, tp, prefix, name, module): - if tp.fldnames is None: - return # nothing to do with opaque structs - layoutfuncname = '_cffi_layout_%s_%s' % (prefix, name) - # - function = getattr(module, layoutfuncname) - layout = function() - if isinstance(tp, model.StructOrUnion) and tp.partial: - # use the function()'s sizes and offsets to guide the - # layout of the struct - totalsize = layout[0] - totalalignment = layout[1] - fieldofs = layout[2::2] - fieldsize = layout[3::2] - tp.force_flatten() - assert len(fieldofs) == len(fieldsize) == len(tp.fldnames) - tp.fixedlayout = fieldofs, fieldsize, totalsize, totalalignment - else: - cname = ('%s %s' % (prefix, name)).strip() - self._struct_pending_verification[tp] = layout, cname - - def _loaded_struct_or_union(self, tp): - if tp.fldnames is None: - return # nothing to do with opaque structs - self.ffi._get_cached_btype(tp) # force 'fixedlayout' to be considered - - if tp in self._struct_pending_verification: - # check that the layout sizes and offsets match the real ones - def check(realvalue, expectedvalue, msg): - if realvalue != expectedvalue: - raise VerificationError( - "%s (we have %d, but C compiler says %d)" - % (msg, expectedvalue, realvalue)) - ffi = self.ffi - BStruct = ffi._get_cached_btype(tp) - layout, cname = self._struct_pending_verification.pop(tp) - check(layout[0], ffi.sizeof(BStruct), "wrong total size") - check(layout[1], ffi.alignof(BStruct), "wrong total alignment") - i = 2 - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if fbitsize >= 0: - continue # xxx ignore fbitsize for now - check(layout[i], ffi.offsetof(BStruct, fname), - "wrong offset for field %r" % (fname,)) - if layout[i+1] != 0: - BField = ffi._get_cached_btype(ftype) - check(layout[i+1], ffi.sizeof(BField), - "wrong size for field %r" % (fname,)) - i += 2 - assert i == len(layout) - - # ---------- - # 'anonymous' declarations. These are produced for anonymous structs - # or unions; the 'name' is obtained by a typedef. - - _generate_cpy_anonymous_collecttype = _generate_nothing - - def _generate_cpy_anonymous_decl(self, tp, name): - if isinstance(tp, model.EnumType): - self._generate_cpy_enum_decl(tp, name, '') - else: - self._generate_struct_or_union_decl(tp, '', name) - - def _generate_cpy_anonymous_method(self, tp, name): - if not isinstance(tp, model.EnumType): - self._generate_struct_or_union_method(tp, '', name) - - def _loading_cpy_anonymous(self, tp, name, module): - if isinstance(tp, model.EnumType): - self._loading_cpy_enum(tp, name, module) - else: - self._loading_struct_or_union(tp, '', name, module) - - def _loaded_cpy_anonymous(self, tp, name, module, **kwds): - if isinstance(tp, model.EnumType): - self._loaded_cpy_enum(tp, name, module, **kwds) - else: - self._loaded_struct_or_union(tp) - - # ---------- - # constants, likely declared with '#define' - - def _generate_cpy_const(self, is_int, name, tp=None, category='const', - vartp=None, delayed=True, size_too=False, - check_value=None): - prnt = self._prnt - funcname = '_cffi_%s_%s' % (category, name) - prnt('static int %s(PyObject *lib)' % funcname) - prnt('{') - prnt(' PyObject *o;') - prnt(' int res;') - if not is_int: - prnt(' %s;' % (vartp or tp).get_c_name(' i', name)) - else: - assert category == 'const' - # - if check_value is not None: - self._check_int_constant_value(name, check_value) - # - if not is_int: - if category == 'var': - realexpr = '&' + name - else: - realexpr = name - prnt(' i = (%s);' % (realexpr,)) - prnt(' o = %s;' % (self._convert_expr_from_c(tp, 'i', - 'variable type'),)) - assert delayed - else: - prnt(' o = _cffi_from_c_int_const(%s);' % name) - prnt(' if (o == NULL)') - prnt(' return -1;') - if size_too: - prnt(' {') - prnt(' PyObject *o1 = o;') - prnt(' o = Py_BuildValue("On", o1, (Py_ssize_t)sizeof(%s));' - % (name,)) - prnt(' Py_DECREF(o1);') - prnt(' if (o == NULL)') - prnt(' return -1;') - prnt(' }') - prnt(' res = PyObject_SetAttrString(lib, "%s", o);' % name) - prnt(' Py_DECREF(o);') - prnt(' if (res < 0)') - prnt(' return -1;') - prnt(' return %s;' % self._chained_list_constants[delayed]) - self._chained_list_constants[delayed] = funcname + '(lib)' - prnt('}') - prnt() - - def _generate_cpy_constant_collecttype(self, tp, name): - is_int = isinstance(tp, model.PrimitiveType) and tp.is_integer_type() - if not is_int: - self._do_collect_type(tp) - - def _generate_cpy_constant_decl(self, tp, name): - is_int = isinstance(tp, model.PrimitiveType) and tp.is_integer_type() - self._generate_cpy_const(is_int, name, tp) - - _generate_cpy_constant_method = _generate_nothing - _loading_cpy_constant = _loaded_noop - _loaded_cpy_constant = _loaded_noop - - # ---------- - # enums - - def _check_int_constant_value(self, name, value, err_prefix=''): - prnt = self._prnt - if value <= 0: - prnt(' if ((%s) > 0 || (long)(%s) != %dL) {' % ( - name, name, value)) - else: - prnt(' if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {' % ( - name, name, value)) - prnt(' char buf[64];') - prnt(' if ((%s) <= 0)' % name) - prnt(' snprintf(buf, 63, "%%ld", (long)(%s));' % name) - prnt(' else') - prnt(' snprintf(buf, 63, "%%lu", (unsigned long)(%s));' % - name) - prnt(' PyErr_Format(_cffi_VerificationError,') - prnt(' "%s%s has the real value %s, not %s",') - prnt(' "%s", "%s", buf, "%d");' % ( - err_prefix, name, value)) - prnt(' return -1;') - prnt(' }') - - def _enum_funcname(self, prefix, name): - # "$enum_$1" => "___D_enum____D_1" - name = name.replace('$', '___D_') - return '_cffi_e_%s_%s' % (prefix, name) - - def _generate_cpy_enum_decl(self, tp, name, prefix='enum'): - if tp.partial: - for enumerator in tp.enumerators: - self._generate_cpy_const(True, enumerator, delayed=False) - return - # - funcname = self._enum_funcname(prefix, name) - prnt = self._prnt - prnt('static int %s(PyObject *lib)' % funcname) - prnt('{') - for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues): - self._check_int_constant_value(enumerator, enumvalue, - "enum %s: " % name) - prnt(' return %s;' % self._chained_list_constants[True]) - self._chained_list_constants[True] = funcname + '(lib)' - prnt('}') - prnt() - - _generate_cpy_enum_collecttype = _generate_nothing - _generate_cpy_enum_method = _generate_nothing - - def _loading_cpy_enum(self, tp, name, module): - if tp.partial: - enumvalues = [getattr(module, enumerator) - for enumerator in tp.enumerators] - tp.enumvalues = tuple(enumvalues) - tp.partial_resolved = True - - def _loaded_cpy_enum(self, tp, name, module, library): - for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues): - setattr(library, enumerator, enumvalue) - - # ---------- - # macros: for now only for integers - - def _generate_cpy_macro_decl(self, tp, name): - if tp == '...': - check_value = None - else: - check_value = tp # an integer - self._generate_cpy_const(True, name, check_value=check_value) - - _generate_cpy_macro_collecttype = _generate_nothing - _generate_cpy_macro_method = _generate_nothing - _loading_cpy_macro = _loaded_noop - _loaded_cpy_macro = _loaded_noop - - # ---------- - # global variables - - def _generate_cpy_variable_collecttype(self, tp, name): - if isinstance(tp, model.ArrayType): - tp_ptr = model.PointerType(tp.item) - else: - tp_ptr = model.PointerType(tp) - self._do_collect_type(tp_ptr) - - def _generate_cpy_variable_decl(self, tp, name): - if isinstance(tp, model.ArrayType): - tp_ptr = model.PointerType(tp.item) - self._generate_cpy_const(False, name, tp, vartp=tp_ptr, - size_too = tp.length_is_unknown()) - else: - tp_ptr = model.PointerType(tp) - self._generate_cpy_const(False, name, tp_ptr, category='var') - - _generate_cpy_variable_method = _generate_nothing - _loading_cpy_variable = _loaded_noop - - def _loaded_cpy_variable(self, tp, name, module, library): - value = getattr(library, name) - if isinstance(tp, model.ArrayType): # int a[5] is "constant" in the - # sense that "a=..." is forbidden - if tp.length_is_unknown(): - assert isinstance(value, tuple) - (value, size) = value - BItemType = self.ffi._get_cached_btype(tp.item) - length, rest = divmod(size, self.ffi.sizeof(BItemType)) - if rest != 0: - raise VerificationError( - "bad size: %r does not seem to be an array of %s" % - (name, tp.item)) - tp = tp.resolve_length(length) - # 'value' is a which we have to replace with - # a if the N is actually known - if tp.length is not None: - BArray = self.ffi._get_cached_btype(tp) - value = self.ffi.cast(BArray, value) - setattr(library, name, value) - return - # remove ptr= from the library instance, and replace - # it by a property on the class, which reads/writes into ptr[0]. - ptr = value - delattr(library, name) - def getter(library): - return ptr[0] - def setter(library, value): - ptr[0] = value - setattr(type(library), name, property(getter, setter)) - type(library)._cffi_dir.append(name) - - # ---------- - - def _generate_setup_custom(self): - prnt = self._prnt - prnt('static int _cffi_setup_custom(PyObject *lib)') - prnt('{') - prnt(' return %s;' % self._chained_list_constants[True]) - prnt('}') - -cffimod_header = r''' -#include -#include - -/* this block of #ifs should be kept exactly identical between - c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py - and cffi/_cffi_include.h */ -#if defined(_MSC_VER) -# include /* for alloca() */ -# if _MSC_VER < 1600 /* MSVC < 2010 */ - typedef __int8 int8_t; - typedef __int16 int16_t; - typedef __int32 int32_t; - typedef __int64 int64_t; - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int64 uint64_t; - typedef __int8 int_least8_t; - typedef __int16 int_least16_t; - typedef __int32 int_least32_t; - typedef __int64 int_least64_t; - typedef unsigned __int8 uint_least8_t; - typedef unsigned __int16 uint_least16_t; - typedef unsigned __int32 uint_least32_t; - typedef unsigned __int64 uint_least64_t; - typedef __int8 int_fast8_t; - typedef __int16 int_fast16_t; - typedef __int32 int_fast32_t; - typedef __int64 int_fast64_t; - typedef unsigned __int8 uint_fast8_t; - typedef unsigned __int16 uint_fast16_t; - typedef unsigned __int32 uint_fast32_t; - typedef unsigned __int64 uint_fast64_t; - typedef __int64 intmax_t; - typedef unsigned __int64 uintmax_t; -# else -# include -# endif -# if _MSC_VER < 1800 /* MSVC < 2013 */ -# ifndef __cplusplus - typedef unsigned char _Bool; -# endif -# endif -# define _cffi_float_complex_t _Fcomplex /* include for it */ -# define _cffi_double_complex_t _Dcomplex /* include for it */ -#else -# include -# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux) -# include -# endif -# define _cffi_float_complex_t float _Complex -# define _cffi_double_complex_t double _Complex -#endif - -#if PY_MAJOR_VERSION < 3 -# undef PyCapsule_CheckExact -# undef PyCapsule_GetPointer -# define PyCapsule_CheckExact(capsule) (PyCObject_Check(capsule)) -# define PyCapsule_GetPointer(capsule, name) \ - (PyCObject_AsVoidPtr(capsule)) -#endif - -#if PY_MAJOR_VERSION >= 3 -# define PyInt_FromLong PyLong_FromLong -#endif - -#define _cffi_from_c_double PyFloat_FromDouble -#define _cffi_from_c_float PyFloat_FromDouble -#define _cffi_from_c_long PyInt_FromLong -#define _cffi_from_c_ulong PyLong_FromUnsignedLong -#define _cffi_from_c_longlong PyLong_FromLongLong -#define _cffi_from_c_ulonglong PyLong_FromUnsignedLongLong -#define _cffi_from_c__Bool PyBool_FromLong - -#define _cffi_to_c_double PyFloat_AsDouble -#define _cffi_to_c_float PyFloat_AsDouble - -#define _cffi_from_c_int_const(x) \ - (((x) > 0) ? \ - ((unsigned long long)(x) <= (unsigned long long)LONG_MAX) ? \ - PyInt_FromLong((long)(x)) : \ - PyLong_FromUnsignedLongLong((unsigned long long)(x)) : \ - ((long long)(x) >= (long long)LONG_MIN) ? \ - PyInt_FromLong((long)(x)) : \ - PyLong_FromLongLong((long long)(x))) - -#define _cffi_from_c_int(x, type) \ - (((type)-1) > 0 ? /* unsigned */ \ - (sizeof(type) < sizeof(long) ? \ - PyInt_FromLong((long)x) : \ - sizeof(type) == sizeof(long) ? \ - PyLong_FromUnsignedLong((unsigned long)x) : \ - PyLong_FromUnsignedLongLong((unsigned long long)x)) : \ - (sizeof(type) <= sizeof(long) ? \ - PyInt_FromLong((long)x) : \ - PyLong_FromLongLong((long long)x))) - -#define _cffi_to_c_int(o, type) \ - ((type)( \ - sizeof(type) == 1 ? (((type)-1) > 0 ? (type)_cffi_to_c_u8(o) \ - : (type)_cffi_to_c_i8(o)) : \ - sizeof(type) == 2 ? (((type)-1) > 0 ? (type)_cffi_to_c_u16(o) \ - : (type)_cffi_to_c_i16(o)) : \ - sizeof(type) == 4 ? (((type)-1) > 0 ? (type)_cffi_to_c_u32(o) \ - : (type)_cffi_to_c_i32(o)) : \ - sizeof(type) == 8 ? (((type)-1) > 0 ? (type)_cffi_to_c_u64(o) \ - : (type)_cffi_to_c_i64(o)) : \ - (Py_FatalError("unsupported size for type " #type), (type)0))) - -#define _cffi_to_c_i8 \ - ((int(*)(PyObject *))_cffi_exports[1]) -#define _cffi_to_c_u8 \ - ((int(*)(PyObject *))_cffi_exports[2]) -#define _cffi_to_c_i16 \ - ((int(*)(PyObject *))_cffi_exports[3]) -#define _cffi_to_c_u16 \ - ((int(*)(PyObject *))_cffi_exports[4]) -#define _cffi_to_c_i32 \ - ((int(*)(PyObject *))_cffi_exports[5]) -#define _cffi_to_c_u32 \ - ((unsigned int(*)(PyObject *))_cffi_exports[6]) -#define _cffi_to_c_i64 \ - ((long long(*)(PyObject *))_cffi_exports[7]) -#define _cffi_to_c_u64 \ - ((unsigned long long(*)(PyObject *))_cffi_exports[8]) -#define _cffi_to_c_char \ - ((int(*)(PyObject *))_cffi_exports[9]) -#define _cffi_from_c_pointer \ - ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[10]) -#define _cffi_to_c_pointer \ - ((char *(*)(PyObject *, CTypeDescrObject *))_cffi_exports[11]) -#define _cffi_get_struct_layout \ - ((PyObject *(*)(Py_ssize_t[]))_cffi_exports[12]) -#define _cffi_restore_errno \ - ((void(*)(void))_cffi_exports[13]) -#define _cffi_save_errno \ - ((void(*)(void))_cffi_exports[14]) -#define _cffi_from_c_char \ - ((PyObject *(*)(char))_cffi_exports[15]) -#define _cffi_from_c_deref \ - ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[16]) -#define _cffi_to_c \ - ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[17]) -#define _cffi_from_c_struct \ - ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[18]) -#define _cffi_to_c_wchar_t \ - ((wchar_t(*)(PyObject *))_cffi_exports[19]) -#define _cffi_from_c_wchar_t \ - ((PyObject *(*)(wchar_t))_cffi_exports[20]) -#define _cffi_to_c_long_double \ - ((long double(*)(PyObject *))_cffi_exports[21]) -#define _cffi_to_c__Bool \ - ((_Bool(*)(PyObject *))_cffi_exports[22]) -#define _cffi_prepare_pointer_call_argument \ - ((Py_ssize_t(*)(CTypeDescrObject *, PyObject *, char **))_cffi_exports[23]) -#define _cffi_convert_array_from_object \ - ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[24]) -#define _CFFI_NUM_EXPORTS 25 - -typedef struct _ctypedescr CTypeDescrObject; - -static void *_cffi_exports[_CFFI_NUM_EXPORTS]; -static PyObject *_cffi_types, *_cffi_VerificationError; - -static int _cffi_setup_custom(PyObject *lib); /* forward */ - -static PyObject *_cffi_setup(PyObject *self, PyObject *args) -{ - PyObject *library; - int was_alive = (_cffi_types != NULL); - (void)self; /* unused */ - if (!PyArg_ParseTuple(args, "OOO", &_cffi_types, &_cffi_VerificationError, - &library)) - return NULL; - Py_INCREF(_cffi_types); - Py_INCREF(_cffi_VerificationError); - if (_cffi_setup_custom(library) < 0) - return NULL; - return PyBool_FromLong(was_alive); -} - -union _cffi_union_alignment_u { - unsigned char m_char; - unsigned short m_short; - unsigned int m_int; - unsigned long m_long; - unsigned long long m_longlong; - float m_float; - double m_double; - long double m_longdouble; -}; - -struct _cffi_freeme_s { - struct _cffi_freeme_s *next; - union _cffi_union_alignment_u alignment; -}; - -#ifdef __GNUC__ - __attribute__((unused)) -#endif -static int _cffi_convert_array_argument(CTypeDescrObject *ctptr, PyObject *arg, - char **output_data, Py_ssize_t datasize, - struct _cffi_freeme_s **freeme) -{ - char *p; - if (datasize < 0) - return -1; - - p = *output_data; - if (p == NULL) { - struct _cffi_freeme_s *fp = (struct _cffi_freeme_s *)PyObject_Malloc( - offsetof(struct _cffi_freeme_s, alignment) + (size_t)datasize); - if (fp == NULL) - return -1; - fp->next = *freeme; - *freeme = fp; - p = *output_data = (char *)&fp->alignment; - } - memset((void *)p, 0, (size_t)datasize); - return _cffi_convert_array_from_object(p, ctptr, arg); -} - -#ifdef __GNUC__ - __attribute__((unused)) -#endif -static void _cffi_free_array_arguments(struct _cffi_freeme_s *freeme) -{ - do { - void *p = (void *)freeme; - freeme = freeme->next; - PyObject_Free(p); - } while (freeme != NULL); -} - -static int _cffi_init(void) -{ - PyObject *module, *c_api_object = NULL; - - module = PyImport_ImportModule("_cffi_backend"); - if (module == NULL) - goto failure; - - c_api_object = PyObject_GetAttrString(module, "_C_API"); - if (c_api_object == NULL) - goto failure; - if (!PyCapsule_CheckExact(c_api_object)) { - PyErr_SetNone(PyExc_ImportError); - goto failure; - } - memcpy(_cffi_exports, PyCapsule_GetPointer(c_api_object, "cffi"), - _CFFI_NUM_EXPORTS * sizeof(void *)); - - Py_DECREF(module); - Py_DECREF(c_api_object); - return 0; - - failure: - Py_XDECREF(module); - Py_XDECREF(c_api_object); - return -1; -} - -#define _cffi_type(num) ((CTypeDescrObject *)PyList_GET_ITEM(_cffi_types, num)) - -/**********/ -''' diff --git a/.venv/lib/python3.9/site-packages/cffi/vengine_gen.py b/.venv/lib/python3.9/site-packages/cffi/vengine_gen.py deleted file mode 100644 index bffc821..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/vengine_gen.py +++ /dev/null @@ -1,679 +0,0 @@ -# -# DEPRECATED: implementation for ffi.verify() -# -import sys, os -import types - -from . import model -from .error import VerificationError - - -class VGenericEngine(object): - _class_key = 'g' - _gen_python_module = False - - def __init__(self, verifier): - self.verifier = verifier - self.ffi = verifier.ffi - self.export_symbols = [] - self._struct_pending_verification = {} - - def patch_extension_kwds(self, kwds): - # add 'export_symbols' to the dictionary. Note that we add the - # list before filling it. When we fill it, it will thus also show - # up in kwds['export_symbols']. - kwds.setdefault('export_symbols', self.export_symbols) - - def find_module(self, module_name, path, so_suffixes): - for so_suffix in so_suffixes: - basename = module_name + so_suffix - if path is None: - path = sys.path - for dirname in path: - filename = os.path.join(dirname, basename) - if os.path.isfile(filename): - return filename - - def collect_types(self): - pass # not needed in the generic engine - - def _prnt(self, what=''): - self._f.write(what + '\n') - - def write_source_to_f(self): - prnt = self._prnt - # first paste some standard set of lines that are mostly '#include' - prnt(cffimod_header) - # then paste the C source given by the user, verbatim. - prnt(self.verifier.preamble) - # - # call generate_gen_xxx_decl(), for every xxx found from - # ffi._parser._declarations. This generates all the functions. - self._generate('decl') - # - # on Windows, distutils insists on putting init_cffi_xyz in - # 'export_symbols', so instead of fighting it, just give up and - # give it one - if sys.platform == 'win32': - if sys.version_info >= (3,): - prefix = 'PyInit_' - else: - prefix = 'init' - modname = self.verifier.get_module_name() - prnt("void %s%s(void) { }\n" % (prefix, modname)) - - def load_library(self, flags=0): - # import it with the CFFI backend - backend = self.ffi._backend - # needs to make a path that contains '/', on Posix - filename = os.path.join(os.curdir, self.verifier.modulefilename) - module = backend.load_library(filename, flags) - # - # call loading_gen_struct() to get the struct layout inferred by - # the C compiler - self._load(module, 'loading') - - # build the FFILibrary class and instance, this is a module subclass - # because modules are expected to have usually-constant-attributes and - # in PyPy this means the JIT is able to treat attributes as constant, - # which we want. - class FFILibrary(types.ModuleType): - _cffi_generic_module = module - _cffi_ffi = self.ffi - _cffi_dir = [] - def __dir__(self): - return FFILibrary._cffi_dir - library = FFILibrary("") - # - # finally, call the loaded_gen_xxx() functions. This will set - # up the 'library' object. - self._load(module, 'loaded', library=library) - return library - - def _get_declarations(self): - lst = [(key, tp) for (key, (tp, qual)) in - self.ffi._parser._declarations.items()] - lst.sort() - return lst - - def _generate(self, step_name): - for name, tp in self._get_declarations(): - kind, realname = name.split(' ', 1) - try: - method = getattr(self, '_generate_gen_%s_%s' % (kind, - step_name)) - except AttributeError: - raise VerificationError( - "not implemented in verify(): %r" % name) - try: - method(tp, realname) - except Exception as e: - model.attach_exception_info(e, name) - raise - - def _load(self, module, step_name, **kwds): - for name, tp in self._get_declarations(): - kind, realname = name.split(' ', 1) - method = getattr(self, '_%s_gen_%s' % (step_name, kind)) - try: - method(tp, realname, module, **kwds) - except Exception as e: - model.attach_exception_info(e, name) - raise - - def _generate_nothing(self, tp, name): - pass - - def _loaded_noop(self, tp, name, module, **kwds): - pass - - # ---------- - # typedefs: generates no code so far - - _generate_gen_typedef_decl = _generate_nothing - _loading_gen_typedef = _loaded_noop - _loaded_gen_typedef = _loaded_noop - - # ---------- - # function declarations - - def _generate_gen_function_decl(self, tp, name): - assert isinstance(tp, model.FunctionPtrType) - if tp.ellipsis: - # cannot support vararg functions better than this: check for its - # exact type (including the fixed arguments), and build it as a - # constant function pointer (no _cffi_f_%s wrapper) - self._generate_gen_const(False, name, tp) - return - prnt = self._prnt - numargs = len(tp.args) - argnames = [] - for i, type in enumerate(tp.args): - indirection = '' - if isinstance(type, model.StructOrUnion): - indirection = '*' - argnames.append('%sx%d' % (indirection, i)) - context = 'argument of %s' % name - arglist = [type.get_c_name(' %s' % arg, context) - for type, arg in zip(tp.args, argnames)] - tpresult = tp.result - if isinstance(tpresult, model.StructOrUnion): - arglist.insert(0, tpresult.get_c_name(' *r', context)) - tpresult = model.void_type - arglist = ', '.join(arglist) or 'void' - wrappername = '_cffi_f_%s' % name - self.export_symbols.append(wrappername) - if tp.abi: - abi = tp.abi + ' ' - else: - abi = '' - funcdecl = ' %s%s(%s)' % (abi, wrappername, arglist) - context = 'result of %s' % name - prnt(tpresult.get_c_name(funcdecl, context)) - prnt('{') - # - if isinstance(tp.result, model.StructOrUnion): - result_code = '*r = ' - elif not isinstance(tp.result, model.VoidType): - result_code = 'return ' - else: - result_code = '' - prnt(' %s%s(%s);' % (result_code, name, ', '.join(argnames))) - prnt('}') - prnt() - - _loading_gen_function = _loaded_noop - - def _loaded_gen_function(self, tp, name, module, library): - assert isinstance(tp, model.FunctionPtrType) - if tp.ellipsis: - newfunction = self._load_constant(False, tp, name, module) - else: - indirections = [] - base_tp = tp - if (any(isinstance(typ, model.StructOrUnion) for typ in tp.args) - or isinstance(tp.result, model.StructOrUnion)): - indirect_args = [] - for i, typ in enumerate(tp.args): - if isinstance(typ, model.StructOrUnion): - typ = model.PointerType(typ) - indirections.append((i, typ)) - indirect_args.append(typ) - indirect_result = tp.result - if isinstance(indirect_result, model.StructOrUnion): - if indirect_result.fldtypes is None: - raise TypeError("'%s' is used as result type, " - "but is opaque" % ( - indirect_result._get_c_name(),)) - indirect_result = model.PointerType(indirect_result) - indirect_args.insert(0, indirect_result) - indirections.insert(0, ("result", indirect_result)) - indirect_result = model.void_type - tp = model.FunctionPtrType(tuple(indirect_args), - indirect_result, tp.ellipsis) - BFunc = self.ffi._get_cached_btype(tp) - wrappername = '_cffi_f_%s' % name - newfunction = module.load_function(BFunc, wrappername) - for i, typ in indirections: - newfunction = self._make_struct_wrapper(newfunction, i, typ, - base_tp) - setattr(library, name, newfunction) - type(library)._cffi_dir.append(name) - - def _make_struct_wrapper(self, oldfunc, i, tp, base_tp): - backend = self.ffi._backend - BType = self.ffi._get_cached_btype(tp) - if i == "result": - ffi = self.ffi - def newfunc(*args): - res = ffi.new(BType) - oldfunc(res, *args) - return res[0] - else: - def newfunc(*args): - args = args[:i] + (backend.newp(BType, args[i]),) + args[i+1:] - return oldfunc(*args) - newfunc._cffi_base_type = base_tp - return newfunc - - # ---------- - # named structs - - def _generate_gen_struct_decl(self, tp, name): - assert name == tp.name - self._generate_struct_or_union_decl(tp, 'struct', name) - - def _loading_gen_struct(self, tp, name, module): - self._loading_struct_or_union(tp, 'struct', name, module) - - def _loaded_gen_struct(self, tp, name, module, **kwds): - self._loaded_struct_or_union(tp) - - def _generate_gen_union_decl(self, tp, name): - assert name == tp.name - self._generate_struct_or_union_decl(tp, 'union', name) - - def _loading_gen_union(self, tp, name, module): - self._loading_struct_or_union(tp, 'union', name, module) - - def _loaded_gen_union(self, tp, name, module, **kwds): - self._loaded_struct_or_union(tp) - - def _generate_struct_or_union_decl(self, tp, prefix, name): - if tp.fldnames is None: - return # nothing to do with opaque structs - checkfuncname = '_cffi_check_%s_%s' % (prefix, name) - layoutfuncname = '_cffi_layout_%s_%s' % (prefix, name) - cname = ('%s %s' % (prefix, name)).strip() - # - prnt = self._prnt - prnt('static void %s(%s *p)' % (checkfuncname, cname)) - prnt('{') - prnt(' /* only to generate compile-time warnings or errors */') - prnt(' (void)p;') - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if (isinstance(ftype, model.PrimitiveType) - and ftype.is_integer_type()) or fbitsize >= 0: - # accept all integers, but complain on float or double - prnt(' (void)((p->%s) << 1);' % fname) - else: - # only accept exactly the type declared. - try: - prnt(' { %s = &p->%s; (void)tmp; }' % ( - ftype.get_c_name('*tmp', 'field %r'%fname, quals=fqual), - fname)) - except VerificationError as e: - prnt(' /* %s */' % str(e)) # cannot verify it, ignore - prnt('}') - self.export_symbols.append(layoutfuncname) - prnt('intptr_t %s(intptr_t i)' % (layoutfuncname,)) - prnt('{') - prnt(' struct _cffi_aligncheck { char x; %s y; };' % cname) - prnt(' static intptr_t nums[] = {') - prnt(' sizeof(%s),' % cname) - prnt(' offsetof(struct _cffi_aligncheck, y),') - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if fbitsize >= 0: - continue # xxx ignore fbitsize for now - prnt(' offsetof(%s, %s),' % (cname, fname)) - if isinstance(ftype, model.ArrayType) and ftype.length is None: - prnt(' 0, /* %s */' % ftype._get_c_name()) - else: - prnt(' sizeof(((%s *)0)->%s),' % (cname, fname)) - prnt(' -1') - prnt(' };') - prnt(' return nums[i];') - prnt(' /* the next line is not executed, but compiled */') - prnt(' %s(0);' % (checkfuncname,)) - prnt('}') - prnt() - - def _loading_struct_or_union(self, tp, prefix, name, module): - if tp.fldnames is None: - return # nothing to do with opaque structs - layoutfuncname = '_cffi_layout_%s_%s' % (prefix, name) - # - BFunc = self.ffi._typeof_locked("intptr_t(*)(intptr_t)")[0] - function = module.load_function(BFunc, layoutfuncname) - layout = [] - num = 0 - while True: - x = function(num) - if x < 0: break - layout.append(x) - num += 1 - if isinstance(tp, model.StructOrUnion) and tp.partial: - # use the function()'s sizes and offsets to guide the - # layout of the struct - totalsize = layout[0] - totalalignment = layout[1] - fieldofs = layout[2::2] - fieldsize = layout[3::2] - tp.force_flatten() - assert len(fieldofs) == len(fieldsize) == len(tp.fldnames) - tp.fixedlayout = fieldofs, fieldsize, totalsize, totalalignment - else: - cname = ('%s %s' % (prefix, name)).strip() - self._struct_pending_verification[tp] = layout, cname - - def _loaded_struct_or_union(self, tp): - if tp.fldnames is None: - return # nothing to do with opaque structs - self.ffi._get_cached_btype(tp) # force 'fixedlayout' to be considered - - if tp in self._struct_pending_verification: - # check that the layout sizes and offsets match the real ones - def check(realvalue, expectedvalue, msg): - if realvalue != expectedvalue: - raise VerificationError( - "%s (we have %d, but C compiler says %d)" - % (msg, expectedvalue, realvalue)) - ffi = self.ffi - BStruct = ffi._get_cached_btype(tp) - layout, cname = self._struct_pending_verification.pop(tp) - check(layout[0], ffi.sizeof(BStruct), "wrong total size") - check(layout[1], ffi.alignof(BStruct), "wrong total alignment") - i = 2 - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if fbitsize >= 0: - continue # xxx ignore fbitsize for now - check(layout[i], ffi.offsetof(BStruct, fname), - "wrong offset for field %r" % (fname,)) - if layout[i+1] != 0: - BField = ffi._get_cached_btype(ftype) - check(layout[i+1], ffi.sizeof(BField), - "wrong size for field %r" % (fname,)) - i += 2 - assert i == len(layout) - - # ---------- - # 'anonymous' declarations. These are produced for anonymous structs - # or unions; the 'name' is obtained by a typedef. - - def _generate_gen_anonymous_decl(self, tp, name): - if isinstance(tp, model.EnumType): - self._generate_gen_enum_decl(tp, name, '') - else: - self._generate_struct_or_union_decl(tp, '', name) - - def _loading_gen_anonymous(self, tp, name, module): - if isinstance(tp, model.EnumType): - self._loading_gen_enum(tp, name, module, '') - else: - self._loading_struct_or_union(tp, '', name, module) - - def _loaded_gen_anonymous(self, tp, name, module, **kwds): - if isinstance(tp, model.EnumType): - self._loaded_gen_enum(tp, name, module, **kwds) - else: - self._loaded_struct_or_union(tp) - - # ---------- - # constants, likely declared with '#define' - - def _generate_gen_const(self, is_int, name, tp=None, category='const', - check_value=None): - prnt = self._prnt - funcname = '_cffi_%s_%s' % (category, name) - self.export_symbols.append(funcname) - if check_value is not None: - assert is_int - assert category == 'const' - prnt('int %s(char *out_error)' % funcname) - prnt('{') - self._check_int_constant_value(name, check_value) - prnt(' return 0;') - prnt('}') - elif is_int: - assert category == 'const' - prnt('int %s(long long *out_value)' % funcname) - prnt('{') - prnt(' *out_value = (long long)(%s);' % (name,)) - prnt(' return (%s) <= 0;' % (name,)) - prnt('}') - else: - assert tp is not None - assert check_value is None - if category == 'var': - ampersand = '&' - else: - ampersand = '' - extra = '' - if category == 'const' and isinstance(tp, model.StructOrUnion): - extra = 'const *' - ampersand = '&' - prnt(tp.get_c_name(' %s%s(void)' % (extra, funcname), name)) - prnt('{') - prnt(' return (%s%s);' % (ampersand, name)) - prnt('}') - prnt() - - def _generate_gen_constant_decl(self, tp, name): - is_int = isinstance(tp, model.PrimitiveType) and tp.is_integer_type() - self._generate_gen_const(is_int, name, tp) - - _loading_gen_constant = _loaded_noop - - def _load_constant(self, is_int, tp, name, module, check_value=None): - funcname = '_cffi_const_%s' % name - if check_value is not None: - assert is_int - self._load_known_int_constant(module, funcname) - value = check_value - elif is_int: - BType = self.ffi._typeof_locked("long long*")[0] - BFunc = self.ffi._typeof_locked("int(*)(long long*)")[0] - function = module.load_function(BFunc, funcname) - p = self.ffi.new(BType) - negative = function(p) - value = int(p[0]) - if value < 0 and not negative: - BLongLong = self.ffi._typeof_locked("long long")[0] - value += (1 << (8*self.ffi.sizeof(BLongLong))) - else: - assert check_value is None - fntypeextra = '(*)(void)' - if isinstance(tp, model.StructOrUnion): - fntypeextra = '*' + fntypeextra - BFunc = self.ffi._typeof_locked(tp.get_c_name(fntypeextra, name))[0] - function = module.load_function(BFunc, funcname) - value = function() - if isinstance(tp, model.StructOrUnion): - value = value[0] - return value - - def _loaded_gen_constant(self, tp, name, module, library): - is_int = isinstance(tp, model.PrimitiveType) and tp.is_integer_type() - value = self._load_constant(is_int, tp, name, module) - setattr(library, name, value) - type(library)._cffi_dir.append(name) - - # ---------- - # enums - - def _check_int_constant_value(self, name, value): - prnt = self._prnt - if value <= 0: - prnt(' if ((%s) > 0 || (long)(%s) != %dL) {' % ( - name, name, value)) - else: - prnt(' if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {' % ( - name, name, value)) - prnt(' char buf[64];') - prnt(' if ((%s) <= 0)' % name) - prnt(' sprintf(buf, "%%ld", (long)(%s));' % name) - prnt(' else') - prnt(' sprintf(buf, "%%lu", (unsigned long)(%s));' % - name) - prnt(' sprintf(out_error, "%s has the real value %s, not %s",') - prnt(' "%s", buf, "%d");' % (name[:100], value)) - prnt(' return -1;') - prnt(' }') - - def _load_known_int_constant(self, module, funcname): - BType = self.ffi._typeof_locked("char[]")[0] - BFunc = self.ffi._typeof_locked("int(*)(char*)")[0] - function = module.load_function(BFunc, funcname) - p = self.ffi.new(BType, 256) - if function(p) < 0: - error = self.ffi.string(p) - if sys.version_info >= (3,): - error = str(error, 'utf-8') - raise VerificationError(error) - - def _enum_funcname(self, prefix, name): - # "$enum_$1" => "___D_enum____D_1" - name = name.replace('$', '___D_') - return '_cffi_e_%s_%s' % (prefix, name) - - def _generate_gen_enum_decl(self, tp, name, prefix='enum'): - if tp.partial: - for enumerator in tp.enumerators: - self._generate_gen_const(True, enumerator) - return - # - funcname = self._enum_funcname(prefix, name) - self.export_symbols.append(funcname) - prnt = self._prnt - prnt('int %s(char *out_error)' % funcname) - prnt('{') - for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues): - self._check_int_constant_value(enumerator, enumvalue) - prnt(' return 0;') - prnt('}') - prnt() - - def _loading_gen_enum(self, tp, name, module, prefix='enum'): - if tp.partial: - enumvalues = [self._load_constant(True, tp, enumerator, module) - for enumerator in tp.enumerators] - tp.enumvalues = tuple(enumvalues) - tp.partial_resolved = True - else: - funcname = self._enum_funcname(prefix, name) - self._load_known_int_constant(module, funcname) - - def _loaded_gen_enum(self, tp, name, module, library): - for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues): - setattr(library, enumerator, enumvalue) - type(library)._cffi_dir.append(enumerator) - - # ---------- - # macros: for now only for integers - - def _generate_gen_macro_decl(self, tp, name): - if tp == '...': - check_value = None - else: - check_value = tp # an integer - self._generate_gen_const(True, name, check_value=check_value) - - _loading_gen_macro = _loaded_noop - - def _loaded_gen_macro(self, tp, name, module, library): - if tp == '...': - check_value = None - else: - check_value = tp # an integer - value = self._load_constant(True, tp, name, module, - check_value=check_value) - setattr(library, name, value) - type(library)._cffi_dir.append(name) - - # ---------- - # global variables - - def _generate_gen_variable_decl(self, tp, name): - if isinstance(tp, model.ArrayType): - if tp.length_is_unknown(): - prnt = self._prnt - funcname = '_cffi_sizeof_%s' % (name,) - self.export_symbols.append(funcname) - prnt("size_t %s(void)" % funcname) - prnt("{") - prnt(" return sizeof(%s);" % (name,)) - prnt("}") - tp_ptr = model.PointerType(tp.item) - self._generate_gen_const(False, name, tp_ptr) - else: - tp_ptr = model.PointerType(tp) - self._generate_gen_const(False, name, tp_ptr, category='var') - - _loading_gen_variable = _loaded_noop - - def _loaded_gen_variable(self, tp, name, module, library): - if isinstance(tp, model.ArrayType): # int a[5] is "constant" in the - # sense that "a=..." is forbidden - if tp.length_is_unknown(): - funcname = '_cffi_sizeof_%s' % (name,) - BFunc = self.ffi._typeof_locked('size_t(*)(void)')[0] - function = module.load_function(BFunc, funcname) - size = function() - BItemType = self.ffi._get_cached_btype(tp.item) - length, rest = divmod(size, self.ffi.sizeof(BItemType)) - if rest != 0: - raise VerificationError( - "bad size: %r does not seem to be an array of %s" % - (name, tp.item)) - tp = tp.resolve_length(length) - tp_ptr = model.PointerType(tp.item) - value = self._load_constant(False, tp_ptr, name, module) - # 'value' is a which we have to replace with - # a if the N is actually known - if tp.length is not None: - BArray = self.ffi._get_cached_btype(tp) - value = self.ffi.cast(BArray, value) - setattr(library, name, value) - type(library)._cffi_dir.append(name) - return - # remove ptr= from the library instance, and replace - # it by a property on the class, which reads/writes into ptr[0]. - funcname = '_cffi_var_%s' % name - BFunc = self.ffi._typeof_locked(tp.get_c_name('*(*)(void)', name))[0] - function = module.load_function(BFunc, funcname) - ptr = function() - def getter(library): - return ptr[0] - def setter(library, value): - ptr[0] = value - setattr(type(library), name, property(getter, setter)) - type(library)._cffi_dir.append(name) - -cffimod_header = r''' -#include -#include -#include -#include -#include /* XXX for ssize_t on some platforms */ - -/* this block of #ifs should be kept exactly identical between - c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py - and cffi/_cffi_include.h */ -#if defined(_MSC_VER) -# include /* for alloca() */ -# if _MSC_VER < 1600 /* MSVC < 2010 */ - typedef __int8 int8_t; - typedef __int16 int16_t; - typedef __int32 int32_t; - typedef __int64 int64_t; - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int64 uint64_t; - typedef __int8 int_least8_t; - typedef __int16 int_least16_t; - typedef __int32 int_least32_t; - typedef __int64 int_least64_t; - typedef unsigned __int8 uint_least8_t; - typedef unsigned __int16 uint_least16_t; - typedef unsigned __int32 uint_least32_t; - typedef unsigned __int64 uint_least64_t; - typedef __int8 int_fast8_t; - typedef __int16 int_fast16_t; - typedef __int32 int_fast32_t; - typedef __int64 int_fast64_t; - typedef unsigned __int8 uint_fast8_t; - typedef unsigned __int16 uint_fast16_t; - typedef unsigned __int32 uint_fast32_t; - typedef unsigned __int64 uint_fast64_t; - typedef __int64 intmax_t; - typedef unsigned __int64 uintmax_t; -# else -# include -# endif -# if _MSC_VER < 1800 /* MSVC < 2013 */ -# ifndef __cplusplus - typedef unsigned char _Bool; -# endif -# endif -# define _cffi_float_complex_t _Fcomplex /* include for it */ -# define _cffi_double_complex_t _Dcomplex /* include for it */ -#else -# include -# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux) -# include -# endif -# define _cffi_float_complex_t float _Complex -# define _cffi_double_complex_t double _Complex -#endif -''' diff --git a/.venv/lib/python3.9/site-packages/cffi/verifier.py b/.venv/lib/python3.9/site-packages/cffi/verifier.py deleted file mode 100644 index e392a2b..0000000 --- a/.venv/lib/python3.9/site-packages/cffi/verifier.py +++ /dev/null @@ -1,306 +0,0 @@ -# -# DEPRECATED: implementation for ffi.verify() -# -import sys, os, binascii, shutil, io -from . import __version_verifier_modules__ -from . import ffiplatform -from .error import VerificationError - -if sys.version_info >= (3, 3): - import importlib.machinery - def _extension_suffixes(): - return importlib.machinery.EXTENSION_SUFFIXES[:] -else: - import imp - def _extension_suffixes(): - return [suffix for suffix, _, type in imp.get_suffixes() - if type == imp.C_EXTENSION] - - -if sys.version_info >= (3,): - NativeIO = io.StringIO -else: - class NativeIO(io.BytesIO): - def write(self, s): - if isinstance(s, unicode): - s = s.encode('ascii') - super(NativeIO, self).write(s) - - -class Verifier(object): - - def __init__(self, ffi, preamble, tmpdir=None, modulename=None, - ext_package=None, tag='', force_generic_engine=False, - source_extension='.c', flags=None, relative_to=None, **kwds): - if ffi._parser._uses_new_feature: - raise VerificationError( - "feature not supported with ffi.verify(), but only " - "with ffi.set_source(): %s" % (ffi._parser._uses_new_feature,)) - self.ffi = ffi - self.preamble = preamble - if not modulename: - flattened_kwds = ffiplatform.flatten(kwds) - vengine_class = _locate_engine_class(ffi, force_generic_engine) - self._vengine = vengine_class(self) - self._vengine.patch_extension_kwds(kwds) - self.flags = flags - self.kwds = self.make_relative_to(kwds, relative_to) - # - if modulename: - if tag: - raise TypeError("can't specify both 'modulename' and 'tag'") - else: - key = '\x00'.join(['%d.%d' % sys.version_info[:2], - __version_verifier_modules__, - preamble, flattened_kwds] + - ffi._cdefsources) - if sys.version_info >= (3,): - key = key.encode('utf-8') - k1 = hex(binascii.crc32(key[0::2]) & 0xffffffff) - k1 = k1.lstrip('0x').rstrip('L') - k2 = hex(binascii.crc32(key[1::2]) & 0xffffffff) - k2 = k2.lstrip('0').rstrip('L') - modulename = '_cffi_%s_%s%s%s' % (tag, self._vengine._class_key, - k1, k2) - suffix = _get_so_suffixes()[0] - self.tmpdir = tmpdir or _caller_dir_pycache() - self.sourcefilename = os.path.join(self.tmpdir, modulename + source_extension) - self.modulefilename = os.path.join(self.tmpdir, modulename + suffix) - self.ext_package = ext_package - self._has_source = False - self._has_module = False - - def write_source(self, file=None): - """Write the C source code. It is produced in 'self.sourcefilename', - which can be tweaked beforehand.""" - with self.ffi._lock: - if self._has_source and file is None: - raise VerificationError( - "source code already written") - self._write_source(file) - - def compile_module(self): - """Write the C source code (if not done already) and compile it. - This produces a dynamic link library in 'self.modulefilename'.""" - with self.ffi._lock: - if self._has_module: - raise VerificationError("module already compiled") - if not self._has_source: - self._write_source() - self._compile_module() - - def load_library(self): - """Get a C module from this Verifier instance. - Returns an instance of a FFILibrary class that behaves like the - objects returned by ffi.dlopen(), but that delegates all - operations to the C module. If necessary, the C code is written - and compiled first. - """ - with self.ffi._lock: - if not self._has_module: - self._locate_module() - if not self._has_module: - if not self._has_source: - self._write_source() - self._compile_module() - return self._load_library() - - def get_module_name(self): - basename = os.path.basename(self.modulefilename) - # kill both the .so extension and the other .'s, as introduced - # by Python 3: 'basename.cpython-33m.so' - basename = basename.split('.', 1)[0] - # and the _d added in Python 2 debug builds --- but try to be - # conservative and not kill a legitimate _d - if basename.endswith('_d') and hasattr(sys, 'gettotalrefcount'): - basename = basename[:-2] - return basename - - def get_extension(self): - if not self._has_source: - with self.ffi._lock: - if not self._has_source: - self._write_source() - sourcename = ffiplatform.maybe_relative_path(self.sourcefilename) - modname = self.get_module_name() - return ffiplatform.get_extension(sourcename, modname, **self.kwds) - - def generates_python_module(self): - return self._vengine._gen_python_module - - def make_relative_to(self, kwds, relative_to): - if relative_to and os.path.dirname(relative_to): - dirname = os.path.dirname(relative_to) - kwds = kwds.copy() - for key in ffiplatform.LIST_OF_FILE_NAMES: - if key in kwds: - lst = kwds[key] - if not isinstance(lst, (list, tuple)): - raise TypeError("keyword '%s' should be a list or tuple" - % (key,)) - lst = [os.path.join(dirname, fn) for fn in lst] - kwds[key] = lst - return kwds - - # ---------- - - def _locate_module(self): - if not os.path.isfile(self.modulefilename): - if self.ext_package: - try: - pkg = __import__(self.ext_package, None, None, ['__doc__']) - except ImportError: - return # cannot import the package itself, give up - # (e.g. it might be called differently before installation) - path = pkg.__path__ - else: - path = None - filename = self._vengine.find_module(self.get_module_name(), path, - _get_so_suffixes()) - if filename is None: - return - self.modulefilename = filename - self._vengine.collect_types() - self._has_module = True - - def _write_source_to(self, file): - self._vengine._f = file - try: - self._vengine.write_source_to_f() - finally: - del self._vengine._f - - def _write_source(self, file=None): - if file is not None: - self._write_source_to(file) - else: - # Write our source file to an in memory file. - f = NativeIO() - self._write_source_to(f) - source_data = f.getvalue() - - # Determine if this matches the current file - if os.path.exists(self.sourcefilename): - with open(self.sourcefilename, "r") as fp: - needs_written = not (fp.read() == source_data) - else: - needs_written = True - - # Actually write the file out if it doesn't match - if needs_written: - _ensure_dir(self.sourcefilename) - with open(self.sourcefilename, "w") as fp: - fp.write(source_data) - - # Set this flag - self._has_source = True - - def _compile_module(self): - # compile this C source - tmpdir = os.path.dirname(self.sourcefilename) - outputfilename = ffiplatform.compile(tmpdir, self.get_extension()) - try: - same = ffiplatform.samefile(outputfilename, self.modulefilename) - except OSError: - same = False - if not same: - _ensure_dir(self.modulefilename) - shutil.move(outputfilename, self.modulefilename) - self._has_module = True - - def _load_library(self): - assert self._has_module - if self.flags is not None: - return self._vengine.load_library(self.flags) - else: - return self._vengine.load_library() - -# ____________________________________________________________ - -_FORCE_GENERIC_ENGINE = False # for tests - -def _locate_engine_class(ffi, force_generic_engine): - if _FORCE_GENERIC_ENGINE: - force_generic_engine = True - if not force_generic_engine: - if '__pypy__' in sys.builtin_module_names: - force_generic_engine = True - else: - try: - import _cffi_backend - except ImportError: - _cffi_backend = '?' - if ffi._backend is not _cffi_backend: - force_generic_engine = True - if force_generic_engine: - from . import vengine_gen - return vengine_gen.VGenericEngine - else: - from . import vengine_cpy - return vengine_cpy.VCPythonEngine - -# ____________________________________________________________ - -_TMPDIR = None - -def _caller_dir_pycache(): - if _TMPDIR: - return _TMPDIR - result = os.environ.get('CFFI_TMPDIR') - if result: - return result - filename = sys._getframe(2).f_code.co_filename - return os.path.abspath(os.path.join(os.path.dirname(filename), - '__pycache__')) - -def set_tmpdir(dirname): - """Set the temporary directory to use instead of __pycache__.""" - global _TMPDIR - _TMPDIR = dirname - -def cleanup_tmpdir(tmpdir=None, keep_so=False): - """Clean up the temporary directory by removing all files in it - called `_cffi_*.{c,so}` as well as the `build` subdirectory.""" - tmpdir = tmpdir or _caller_dir_pycache() - try: - filelist = os.listdir(tmpdir) - except OSError: - return - if keep_so: - suffix = '.c' # only remove .c files - else: - suffix = _get_so_suffixes()[0].lower() - for fn in filelist: - if fn.lower().startswith('_cffi_') and ( - fn.lower().endswith(suffix) or fn.lower().endswith('.c')): - try: - os.unlink(os.path.join(tmpdir, fn)) - except OSError: - pass - clean_dir = [os.path.join(tmpdir, 'build')] - for dir in clean_dir: - try: - for fn in os.listdir(dir): - fn = os.path.join(dir, fn) - if os.path.isdir(fn): - clean_dir.append(fn) - else: - os.unlink(fn) - except OSError: - pass - -def _get_so_suffixes(): - suffixes = _extension_suffixes() - if not suffixes: - # bah, no C_EXTENSION available. Occurs on pypy without cpyext - if sys.platform == 'win32': - suffixes = [".pyd"] - else: - suffixes = [".so"] - - return suffixes - -def _ensure_dir(filename): - dirname = os.path.dirname(filename) - if dirname and not os.path.isdir(dirname): - os.makedirs(dirname) diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER b/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/METADATA b/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/METADATA deleted file mode 100644 index 6b5a360..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/METADATA +++ /dev/null @@ -1,808 +0,0 @@ -Metadata-Version: 2.4 -Name: charset-normalizer -Version: 3.4.7 -Summary: The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. -Author-email: "Ahmed R. TAHRI" -Maintainer-email: "Ahmed R. TAHRI" -License: MIT -Project-URL: Changelog, https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md -Project-URL: Documentation, https://charset-normalizer.readthedocs.io/ -Project-URL: Code, https://github.com/jawah/charset_normalizer -Project-URL: Issue tracker, https://github.com/jawah/charset_normalizer/issues -Keywords: encoding,charset,charset-detector,detector,normalization,unicode,chardet,detect -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Programming Language :: Python :: Free Threading :: 4 - Resilient -Classifier: Topic :: Text Processing :: Linguistic -Classifier: Topic :: Utilities -Classifier: Typing :: Typed -Requires-Python: >=3.7 -Description-Content-Type: text/markdown -License-File: LICENSE -Provides-Extra: unicode-backport -Dynamic: license-file - -

Charset Detection, for Everyone 👋

- -
-

- Featured Packages
- - Static Badge - - - Static Badge - -

-

- In other language (unofficial port - by the community)
- - Static Badge - -

- -> A library that helps you read text from an unknown charset encoding.
Motivated by `chardet`, -> I'm trying to resolve the issue by taking a new approach. -> All IANA character set names for which the Python core library provides codecs are supported. -> You can also register your own set of codecs, and yes, it would work as-is. - -

- >>>>> 👉 Try Me Online Now, Then Adopt Me 👈 <<<<< -

- -This project offers you an alternative to **Universal Charset Encoding Detector**, also known as **Chardet**. - -| Feature | [Chardet](https://github.com/chardet/chardet) | Charset Normalizer | [cChardet](https://github.com/PyYoshi/cChardet) | -|--------------------------------------------------|:---------------------------------------------:|:-----------------------------------------------------------------------------------------------:|:-----------------------------------------------:| -| `Fast` | ✅ | ✅ | ✅ | -| `Universal`[^1] | ❌ | ✅ | ❌ | -| `Reliable` **without** distinguishable standards | ✅ | ✅ | ✅ | -| `Reliable` **with** distinguishable standards | ✅ | ✅ | ✅ | -| `License` | _Disputed_[^2]
_restrictive_ | MIT | MPL-1.1
_restrictive_ | -| `Native Python` | ✅ | ✅ | ❌ | -| `Detect spoken language` | ✅ | ✅ | N/A | -| `UnicodeDecodeError Safety` | ✅ | ✅ | ❌ | -| `Whl Size (min)` | 500 kB | 150 kB | ~200 kB | -| `Supported Encoding` | 99 | [99](https://charset-normalizer.readthedocs.io/en/latest/user/support.html#supported-encodings) | 40 | -| `Can register custom encoding` | ❌ | ✅ | ❌ | - -

-Reading Normalized TextCat Reading Text -

- -[^1]: They are clearly using specific code for a specific encoding even if covering most of used one. -[^2]: Chardet 7.0+ was relicensed from LGPL-2.1 to MIT following an AI-assisted rewrite. This relicensing is disputed on two independent grounds: **(a)** the original author [contests](https://github.com/chardet/chardet/issues/327) that the maintainer had the right to relicense, arguing the rewrite is a derivative work of the LGPL-licensed codebase since it was not a clean room implementation; **(b)** the copyright claim itself is [questionable](https://github.com/chardet/chardet/issues/334) given the code was primarily generated by an LLM, and AI-generated output may not be copyrightable under most jurisdictions. Either issue alone could undermine the MIT license. Beyond licensing, the rewrite raises questions about responsible use of AI in open source: key architectural ideas pioneered by charset-normalizer - notably decode-first validity filtering (our foundational approach since v1) and encoding pairwise similarity with the same algorithm and threshold — surfaced in chardet 7 without acknowledgment. The project also imported test files from charset-normalizer to train and benchmark against it, then claimed superior accuracy on those very files. Charset-normalizer has always been MIT-licensed, encoding-agnostic by design, and built on a verifiable human-authored history. - -## ⚡ Performance - -This package offer better performances (99th, and 95th) against Chardet. Here are some numbers. - -| Package | Accuracy | Mean per file (ms) | File per sec (est) | -|---------------------------------------------------|:--------:|:------------------:|:------------------:| -| [chardet 7.1](https://github.com/chardet/chardet) | 89 % | 3 ms | 333 file/sec | -| charset-normalizer | **97 %** | 3 ms | 333 file/sec | - -| Package | 99th percentile | 95th percentile | 50th percentile | -|---------------------------------------------------|:---------------:|:---------------:|:---------------:| -| [chardet 7.1](https://github.com/chardet/chardet) | 32 ms | 17 ms | < 1 ms | -| charset-normalizer | 16 ms | 10 ms | 1 ms | - -_updated as of March 2026 using CPython 3.12, Charset-Normalizer 3.4.6, and Chardet 7.1.0_ - -~Chardet's performance on larger file (1MB+) are very poor. Expect huge difference on large payload.~ No longer the case since Chardet 7.0+ - -> Stats are generated using 400+ files using default parameters. More details on used files, see GHA workflows. -> And yes, these results might change at any time. The dataset can be updated to include more files. -> The actual delays heavily depends on your CPU capabilities. The factors should remain the same. -> Chardet claims on his documentation to have a greater accuracy than us based on the dataset they trained Chardet on(...) -> Well, it's normal, the opposite would have been worrying. Whereas charset-normalizer don't train on anything, our solution -> is based on a completely different algorithm, still heuristic through, it does not need weights across every encoding tables. - -## ✨ Installation - -Using pip: - -```sh -pip install charset-normalizer -U -``` - -## 🚀 Basic Usage - -### CLI -This package comes with a CLI. - -``` -usage: normalizer [-h] [-v] [-a] [-n] [-m] [-r] [-f] [-t THRESHOLD] - file [file ...] - -The Real First Universal Charset Detector. Discover originating encoding used -on text file. Normalize text to unicode. - -positional arguments: - files File(s) to be analysed - -optional arguments: - -h, --help show this help message and exit - -v, --verbose Display complementary information about file if any. - Stdout will contain logs about the detection process. - -a, --with-alternative - Output complementary possibilities if any. Top-level - JSON WILL be a list. - -n, --normalize Permit to normalize input file. If not set, program - does not write anything. - -m, --minimal Only output the charset detected to STDOUT. Disabling - JSON output. - -r, --replace Replace file when trying to normalize it instead of - creating a new one. - -f, --force Replace file without asking if you are sure, use this - flag with caution. - -t THRESHOLD, --threshold THRESHOLD - Define a custom maximum amount of chaos allowed in - decoded content. 0. <= chaos <= 1. - --version Show version information and exit. -``` - -```bash -normalizer ./data/sample.1.fr.srt -``` - -or - -```bash -python -m charset_normalizer ./data/sample.1.fr.srt -``` - -🎉 Since version 1.4.0 the CLI produce easily usable stdout result in JSON format. - -```json -{ - "path": "/home/default/projects/charset_normalizer/data/sample.1.fr.srt", - "encoding": "cp1252", - "encoding_aliases": [ - "1252", - "windows_1252" - ], - "alternative_encodings": [ - "cp1254", - "cp1256", - "cp1258", - "iso8859_14", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_9", - "latin_1", - "mbcs" - ], - "language": "French", - "alphabets": [ - "Basic Latin", - "Latin-1 Supplement" - ], - "has_sig_or_bom": false, - "chaos": 0.149, - "coherence": 97.152, - "unicode_path": null, - "is_preferred": true -} -``` - -### Python -*Just print out normalized text* -```python -from charset_normalizer import from_path - -results = from_path('./my_subtitle.srt') - -print(str(results.best())) -``` - -*Upgrade your code without effort* -```python -from charset_normalizer import detect -``` - -The above code will behave the same as **chardet**. We ensure that we offer the best (reasonable) BC result possible. - -See the docs for advanced usage : [readthedocs.io](https://charset-normalizer.readthedocs.io/en/latest/) - -## 😇 Why - -When I started using Chardet, I noticed that it was not suited to my expectations, and I wanted to propose a -reliable alternative using a completely different method. Also! I never back down on a good challenge! - -I **don't care** about the **originating charset** encoding, because **two different tables** can -produce **two identical rendered string.** -What I want is to get readable text, the best I can. - -In a way, **I'm brute forcing text decoding.** How cool is that ? 😎 - -Don't confuse package **ftfy** with charset-normalizer or chardet. ftfy goal is to repair Unicode string whereas charset-normalizer to convert raw file in unknown encoding to unicode. - -## 🍰 How - - - Discard all charset encoding table that could not fit the binary content. - - Measure noise, or the mess once opened (by chunks) with a corresponding charset encoding. - - Extract matches with the lowest mess detected. - - Additionally, we measure coherence / probe for a language. - -**Wait a minute**, what is noise/mess and coherence according to **YOU ?** - -*Noise :* I opened hundred of text files, **written by humans**, with the wrong encoding table. **I observed**, then -**I established** some ground rules about **what is obvious** when **it seems like** a mess (aka. defining noise in rendered text). - I know that my interpretation of what is noise is probably incomplete, feel free to contribute in order to - improve or rewrite it. - -*Coherence :* For each language there is on earth, we have computed ranked letter appearance occurrences (the best we can). So I thought -that intel is worth something here. So I use those records against decoded text to check if I can detect intelligent design. - -## ⚡ Known limitations - - - Language detection is unreliable when text contains two or more languages sharing identical letters. (eg. HTML (english tags) + Turkish content (Sharing Latin characters)) - - Every charset detector heavily depends on sufficient content. In common cases, do not bother run detection on very tiny content. - -## ⚠️ About Python EOLs - -**If you are running:** - -- Python >=2.7,<3.5: Unsupported -- Python 3.5: charset-normalizer < 2.1 -- Python 3.6: charset-normalizer < 3.1 - -Upgrade your Python interpreter as soon as possible. - -## 👤 Contributing - -Contributions, issues and feature requests are very much welcome.
-Feel free to check [issues page](https://github.com/ousret/charset_normalizer/issues) if you want to contribute. - -## 📝 License - -Copyright © [Ahmed TAHRI @Ousret](https://github.com/Ousret).
-This project is [MIT](https://github.com/Ousret/charset_normalizer/blob/master/LICENSE) licensed. - -Characters frequencies used in this project © 2012 [Denny Vrandečić](http://simia.net/letters/) - -## 💼 For Enterprise - -Professional support for charset-normalizer is available as part of the [Tidelift -Subscription][1]. Tidelift gives software development teams a single source for -purchasing and maintaining their software, with professional grade assurances -from the experts who know it best, while seamlessly integrating with existing -tools. - -[1]: https://tidelift.com/subscription/pkg/pypi-charset-normalizer?utm_source=pypi-charset-normalizer&utm_medium=readme - -[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7297/badge)](https://www.bestpractices.dev/projects/7297) - -# Changelog -All notable changes to charset-normalizer will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - -## [3.4.7](https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7) (2026-04-02) - -### Changed -- Pre-built optimized version using mypy[c] v1.20. -- Relax `setuptools` constraint to `setuptools>=68,<82.1`. - -### Fixed -- Correctly remove SIG remnant in utf-7 decoded string. (#718) (#716) - -## [3.4.6](https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6) (2026-03-15) - -### Changed -- Flattened the logic in `charset_normalizer.md` for higher performance. Removed `eligible(..)` and `feed(...)` - in favor of `feed_info(...)`. -- Raised upper bound for mypy[c] to 1.20, for our optimized version. -- Updated `UNICODE_RANGES_COMBINED` using Unicode blocks v17. - -### Fixed -- Edge case where noise difference between two candidates can be almost insignificant. (#672) -- CLI `--normalize` writing to wrong path when passing multiple files in. (#702) - -### Misc -- Freethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (#616) - -## [3.4.5](https://github.com/Ousret/charset_normalizer/compare/3.4.4...3.4.5) (2026-03-06) - -### Changed -- Update `setuptools` constraint to `setuptools>=68,<=82`. -- Raised upper bound of mypyc for the optional pre-built extension to v1.19.1 - -### Fixed -- Add explicit link to lib math in our optimized build. (#692) -- Logger level not restored correctly for empty byte sequences. (#701) -- TypeError when passing bytearray to from_bytes. (#703) - -### Misc -- Applied safe micro-optimizations in both our noise detector and language detector. -- Rewrote the `query_yes_no` function (inside CLI) to avoid using ambiguous licensed code. -- Added `cd.py` submodule into mypyc optional compilation to reduce further the performance impact. - -## [3.4.4](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4) (2025-10-13) - -### Changed -- Bound `setuptools` to a specific constraint `setuptools>=68,<=81`. -- Raised upper bound of mypyc for the optional pre-built extension to v1.18.2 - -### Removed -- `setuptools-scm` as a build dependency. - -### Misc -- Enforced hashes in `dev-requirements.txt` and created `ci-requirements.txt` for security purposes. -- Additional pre-built wheels for riscv64, s390x, and armv7l architectures. -- Restore ` multiple.intoto.jsonl` in GitHub releases in addition to individual attestation file per wheel. - -## [3.4.3](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3) (2025-08-09) - -### Changed -- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. (#595) (#583) -- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. (#391) - -### Added -- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase. -- Support for Python 3.14 - -### Fixed -- sdist archive contained useless directories. -- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (#633) - -### Misc -- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes. - Each published wheel comes with its SBOM. We choose CycloneDX as the format. -- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel. - -## [3.4.2](https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2) (2025-05-02) - -### Fixed -- Addressed the DeprecationWarning in our CLI regarding `argparse.FileType` by backporting the target class into the package. (#591) -- Improved the overall reliability of the detector with CJK Ideographs. (#605) (#587) - -### Changed -- Optional mypyc compilation upgraded to version 1.15 for Python >= 3.8 - -## [3.4.1](https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1) (2024-12-24) - -### Changed -- Project metadata are now stored using `pyproject.toml` instead of `setup.cfg` using setuptools as the build backend. -- Enforce annotation delayed loading for a simpler and consistent types in the project. -- Optional mypyc compilation upgraded to version 1.14 for Python >= 3.8 - -### Added -- pre-commit configuration. -- noxfile. - -### Removed -- `build-requirements.txt` as per using `pyproject.toml` native build configuration. -- `bin/integration.py` and `bin/serve.py` in favor of downstream integration test (see noxfile). -- `setup.cfg` in favor of `pyproject.toml` metadata configuration. -- Unused `utils.range_scan` function. - -### Fixed -- Converting content to Unicode bytes may insert `utf_8` instead of preferred `utf-8`. (#572) -- Deprecation warning "'count' is passed as positional argument" when converting to Unicode bytes on Python 3.13+ - -## [3.4.0](https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0) (2024-10-08) - -### Added -- Argument `--no-preemptive` in the CLI to prevent the detector to search for hints. -- Support for Python 3.13 (#512) - -### Fixed -- Relax the TypeError exception thrown when trying to compare a CharsetMatch with anything else than a CharsetMatch. -- Improved the general reliability of the detector based on user feedbacks. (#520) (#509) (#498) (#407) (#537) -- Declared charset in content (preemptive detection) not changed when converting to utf-8 bytes. (#381) - -## [3.3.2](https://github.com/Ousret/charset_normalizer/compare/3.3.1...3.3.2) (2023-10-31) - -### Fixed -- Unintentional memory usage regression when using large payload that match several encoding (#376) -- Regression on some detection case showcased in the documentation (#371) - -### Added -- Noise (md) probe that identify malformed arabic representation due to the presence of letters in isolated form (credit to my wife) - -## [3.3.1](https://github.com/Ousret/charset_normalizer/compare/3.3.0...3.3.1) (2023-10-22) - -### Changed -- Optional mypyc compilation upgraded to version 1.6.1 for Python >= 3.8 -- Improved the general detection reliability based on reports from the community - -## [3.3.0](https://github.com/Ousret/charset_normalizer/compare/3.2.0...3.3.0) (2023-09-30) - -### Added -- Allow to execute the CLI (e.g. normalizer) through `python -m charset_normalizer.cli` or `python -m charset_normalizer` -- Support for 9 forgotten encoding that are supported by Python but unlisted in `encoding.aliases` as they have no alias (#323) - -### Removed -- (internal) Redundant utils.is_ascii function and unused function is_private_use_only -- (internal) charset_normalizer.assets is moved inside charset_normalizer.constant - -### Changed -- (internal) Unicode code blocks in constants are updated using the latest v15.0.0 definition to improve detection -- Optional mypyc compilation upgraded to version 1.5.1 for Python >= 3.8 - -### Fixed -- Unable to properly sort CharsetMatch when both chaos/noise and coherence were close due to an unreachable condition in \_\_lt\_\_ (#350) - -## [3.2.0](https://github.com/Ousret/charset_normalizer/compare/3.1.0...3.2.0) (2023-06-07) - -### Changed -- Typehint for function `from_path` no longer enforce `PathLike` as its first argument -- Minor improvement over the global detection reliability - -### Added -- Introduce function `is_binary` that relies on main capabilities, and optimized to detect binaries -- Propagate `enable_fallback` argument throughout `from_bytes`, `from_path`, and `from_fp` that allow a deeper control over the detection (default True) -- Explicit support for Python 3.12 - -### Fixed -- Edge case detection failure where a file would contain 'very-long' camel cased word (Issue #289) - -## [3.1.0](https://github.com/Ousret/charset_normalizer/compare/3.0.1...3.1.0) (2023-03-06) - -### Added -- Argument `should_rename_legacy` for legacy function `detect` and disregard any new arguments without errors (PR #262) - -### Removed -- Support for Python 3.6 (PR #260) - -### Changed -- Optional speedup provided by mypy/c 1.0.1 - -## [3.0.1](https://github.com/Ousret/charset_normalizer/compare/3.0.0...3.0.1) (2022-11-18) - -### Fixed -- Multi-bytes cutter/chunk generator did not always cut correctly (PR #233) - -### Changed -- Speedup provided by mypy/c 0.990 on Python >= 3.7 - -## [3.0.0](https://github.com/Ousret/charset_normalizer/compare/2.1.1...3.0.0) (2022-10-20) - -### Added -- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results -- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES -- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio -- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) - -### Changed -- Build with static metadata using 'build' frontend -- Make the language detection stricter -- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 - -### Fixed -- CLI with opt --normalize fail when using full path for files -- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it -- Sphinx warnings when generating the documentation - -### Removed -- Coherence detector no longer return 'Simple English' instead return 'English' -- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' -- Breaking: Method `first()` and `best()` from CharsetMatch -- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) -- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches -- Breaking: Top-level function `normalize` -- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch -- Support for the backport `unicodedata2` - -## [3.0.0rc1](https://github.com/Ousret/charset_normalizer/compare/3.0.0b2...3.0.0rc1) (2022-10-18) - -### Added -- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results -- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES -- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio - -### Changed -- Build with static metadata using 'build' frontend -- Make the language detection stricter - -### Fixed -- CLI with opt --normalize fail when using full path for files -- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it - -### Removed -- Coherence detector no longer return 'Simple English' instead return 'English' -- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' - -## [3.0.0b2](https://github.com/Ousret/charset_normalizer/compare/3.0.0b1...3.0.0b2) (2022-08-21) - -### Added -- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) - -### Removed -- Breaking: Method `first()` and `best()` from CharsetMatch -- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) - -### Fixed -- Sphinx warnings when generating the documentation - -## [3.0.0b1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...3.0.0b1) (2022-08-15) - -### Changed -- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 - -### Removed -- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches -- Breaking: Top-level function `normalize` -- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch -- Support for the backport `unicodedata2` - -## [2.1.1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...2.1.1) (2022-08-19) - -### Deprecated -- Function `normalize` scheduled for removal in 3.0 - -### Changed -- Removed useless call to decode in fn is_unprintable (#206) - -### Fixed -- Third-party library (i18n xgettext) crashing not recognizing utf_8 (PEP 263) with underscore from [@aleksandernovikov](https://github.com/aleksandernovikov) (#204) - -## [2.1.0](https://github.com/Ousret/charset_normalizer/compare/2.0.12...2.1.0) (2022-06-19) - -### Added -- Output the Unicode table version when running the CLI with `--version` (PR #194) - -### Changed -- Re-use decoded buffer for single byte character sets from [@nijel](https://github.com/nijel) (PR #175) -- Fixing some performance bottlenecks from [@deedy5](https://github.com/deedy5) (PR #183) - -### Fixed -- Workaround potential bug in cpython with Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space (PR #175) -- CLI default threshold aligned with the API threshold from [@oleksandr-kuzmenko](https://github.com/oleksandr-kuzmenko) (PR #181) - -### Removed -- Support for Python 3.5 (PR #192) - -### Deprecated -- Use of backport unicodedata from `unicodedata2` as Python is quickly catching up, scheduled for removal in 3.0 (PR #194) - -## [2.0.12](https://github.com/Ousret/charset_normalizer/compare/2.0.11...2.0.12) (2022-02-12) - -### Fixed -- ASCII miss-detection on rare cases (PR #170) - -## [2.0.11](https://github.com/Ousret/charset_normalizer/compare/2.0.10...2.0.11) (2022-01-30) - -### Added -- Explicit support for Python 3.11 (PR #164) - -### Changed -- The logging behavior have been completely reviewed, now using only TRACE and DEBUG levels (PR #163 #165) - -## [2.0.10](https://github.com/Ousret/charset_normalizer/compare/2.0.9...2.0.10) (2022-01-04) - -### Fixed -- Fallback match entries might lead to UnicodeDecodeError for large bytes sequence (PR #154) - -### Changed -- Skipping the language-detection (CD) on ASCII (PR #155) - -## [2.0.9](https://github.com/Ousret/charset_normalizer/compare/2.0.8...2.0.9) (2021-12-03) - -### Changed -- Moderating the logging impact (since 2.0.8) for specific environments (PR #147) - -### Fixed -- Wrong logging level applied when setting kwarg `explain` to True (PR #146) - -## [2.0.8](https://github.com/Ousret/charset_normalizer/compare/2.0.7...2.0.8) (2021-11-24) -### Changed -- Improvement over Vietnamese detection (PR #126) -- MD improvement on trailing data and long foreign (non-pure latin) data (PR #124) -- Efficiency improvements in cd/alphabet_languages from [@adbar](https://github.com/adbar) (PR #122) -- call sum() without an intermediary list following PEP 289 recommendations from [@adbar](https://github.com/adbar) (PR #129) -- Code style as refactored by Sourcery-AI (PR #131) -- Minor adjustment on the MD around european words (PR #133) -- Remove and replace SRTs from assets / tests (PR #139) -- Initialize the library logger with a `NullHandler` by default from [@nmaynes](https://github.com/nmaynes) (PR #135) -- Setting kwarg `explain` to True will add provisionally (bounded to function lifespan) a specific stream handler (PR #135) - -### Fixed -- Fix large (misleading) sequence giving UnicodeDecodeError (PR #137) -- Avoid using too insignificant chunk (PR #137) - -### Added -- Add and expose function `set_logging_handler` to configure a specific StreamHandler from [@nmaynes](https://github.com/nmaynes) (PR #135) -- Add `CHANGELOG.md` entries, format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) (PR #141) - -## [2.0.7](https://github.com/Ousret/charset_normalizer/compare/2.0.6...2.0.7) (2021-10-11) -### Added -- Add support for Kazakh (Cyrillic) language detection (PR #109) - -### Changed -- Further, improve inferring the language from a given single-byte code page (PR #112) -- Vainly trying to leverage PEP263 when PEP3120 is not supported (PR #116) -- Refactoring for potential performance improvements in loops from [@adbar](https://github.com/adbar) (PR #113) -- Various detection improvement (MD+CD) (PR #117) - -### Removed -- Remove redundant logging entry about detected language(s) (PR #115) - -### Fixed -- Fix a minor inconsistency between Python 3.5 and other versions regarding language detection (PR #117 #102) - -## [2.0.6](https://github.com/Ousret/charset_normalizer/compare/2.0.5...2.0.6) (2021-09-18) -### Fixed -- Unforeseen regression with the loss of the backward-compatibility with some older minor of Python 3.5.x (PR #100) -- Fix CLI crash when using --minimal output in certain cases (PR #103) - -### Changed -- Minor improvement to the detection efficiency (less than 1%) (PR #106 #101) - -## [2.0.5](https://github.com/Ousret/charset_normalizer/compare/2.0.4...2.0.5) (2021-09-14) -### Changed -- The project now comply with: flake8, mypy, isort and black to ensure a better overall quality (PR #81) -- The BC-support with v1.x was improved, the old staticmethods are restored (PR #82) -- The Unicode detection is slightly improved (PR #93) -- Add syntax sugar \_\_bool\_\_ for results CharsetMatches list-container (PR #91) - -### Removed -- The project no longer raise warning on tiny content given for detection, will be simply logged as warning instead (PR #92) - -### Fixed -- In some rare case, the chunks extractor could cut in the middle of a multi-byte character and could mislead the mess detection (PR #95) -- Some rare 'space' characters could trip up the UnprintablePlugin/Mess detection (PR #96) -- The MANIFEST.in was not exhaustive (PR #78) - -## [2.0.4](https://github.com/Ousret/charset_normalizer/compare/2.0.3...2.0.4) (2021-07-30) -### Fixed -- The CLI no longer raise an unexpected exception when no encoding has been found (PR #70) -- Fix accessing the 'alphabets' property when the payload contains surrogate characters (PR #68) -- The logger could mislead (explain=True) on detected languages and the impact of one MBCS match (PR #72) -- Submatch factoring could be wrong in rare edge cases (PR #72) -- Multiple files given to the CLI were ignored when publishing results to STDOUT. (After the first path) (PR #72) -- Fix line endings from CRLF to LF for certain project files (PR #67) - -### Changed -- Adjust the MD to lower the sensitivity, thus improving the global detection reliability (PR #69 #76) -- Allow fallback on specified encoding if any (PR #71) - -## [2.0.3](https://github.com/Ousret/charset_normalizer/compare/2.0.2...2.0.3) (2021-07-16) -### Changed -- Part of the detection mechanism has been improved to be less sensitive, resulting in more accurate detection results. Especially ASCII. (PR #63) -- According to the community wishes, the detection will fall back on ASCII or UTF-8 in a last-resort case. (PR #64) - -## [2.0.2](https://github.com/Ousret/charset_normalizer/compare/2.0.1...2.0.2) (2021-07-15) -### Fixed -- Empty/Too small JSON payload miss-detection fixed. Report from [@tseaver](https://github.com/tseaver) (PR #59) - -### Changed -- Don't inject unicodedata2 into sys.modules from [@akx](https://github.com/akx) (PR #57) - -## [2.0.1](https://github.com/Ousret/charset_normalizer/compare/2.0.0...2.0.1) (2021-07-13) -### Fixed -- Make it work where there isn't a filesystem available, dropping assets frequencies.json. Report from [@sethmlarson](https://github.com/sethmlarson). (PR #55) -- Using explain=False permanently disable the verbose output in the current runtime (PR #47) -- One log entry (language target preemptive) was not show in logs when using explain=True (PR #47) -- Fix undesired exception (ValueError) on getitem of instance CharsetMatches (PR #52) - -### Changed -- Public function normalize default args values were not aligned with from_bytes (PR #53) - -### Added -- You may now use charset aliases in cp_isolation and cp_exclusion arguments (PR #47) - -## [2.0.0](https://github.com/Ousret/charset_normalizer/compare/1.4.1...2.0.0) (2021-07-02) -### Changed -- 4x to 5 times faster than the previous 1.4.0 release. At least 2x faster than Chardet. -- Accent has been made on UTF-8 detection, should perform rather instantaneous. -- The backward compatibility with Chardet has been greatly improved. The legacy detect function returns an identical charset name whenever possible. -- The detection mechanism has been slightly improved, now Turkish content is detected correctly (most of the time) -- The program has been rewritten to ease the readability and maintainability. (+Using static typing)+ -- utf_7 detection has been reinstated. - -### Removed -- This package no longer require anything when used with Python 3.5 (Dropped cached_property) -- Removed support for these languages: Catalan, Esperanto, Kazakh, Baque, Volapük, Azeri, Galician, Nynorsk, Macedonian, and Serbocroatian. -- The exception hook on UnicodeDecodeError has been removed. - -### Deprecated -- Methods coherence_non_latin, w_counter, chaos_secondary_pass of the class CharsetMatch are now deprecated and scheduled for removal in v3.0 - -### Fixed -- The CLI output used the relative path of the file(s). Should be absolute. - -## [1.4.1](https://github.com/Ousret/charset_normalizer/compare/1.4.0...1.4.1) (2021-05-28) -### Fixed -- Logger configuration/usage no longer conflict with others (PR #44) - -## [1.4.0](https://github.com/Ousret/charset_normalizer/compare/1.3.9...1.4.0) (2021-05-21) -### Removed -- Using standard logging instead of using the package loguru. -- Dropping nose test framework in favor of the maintained pytest. -- Choose to not use dragonmapper package to help with gibberish Chinese/CJK text. -- Require cached_property only for Python 3.5 due to constraint. Dropping for every other interpreter version. -- Stop support for UTF-7 that does not contain a SIG. -- Dropping PrettyTable, replaced with pure JSON output in CLI. - -### Fixed -- BOM marker in a CharsetNormalizerMatch instance could be False in rare cases even if obviously present. Due to the sub-match factoring process. -- Not searching properly for the BOM when trying utf32/16 parent codec. - -### Changed -- Improving the package final size by compressing frequencies.json. -- Huge improvement over the larges payload. - -### Added -- CLI now produces JSON consumable output. -- Return ASCII if given sequences fit. Given reasonable confidence. - -## [1.3.9](https://github.com/Ousret/charset_normalizer/compare/1.3.8...1.3.9) (2021-05-13) - -### Fixed -- In some very rare cases, you may end up getting encode/decode errors due to a bad bytes payload (PR #40) - -## [1.3.8](https://github.com/Ousret/charset_normalizer/compare/1.3.7...1.3.8) (2021-05-12) - -### Fixed -- Empty given payload for detection may cause an exception if trying to access the `alphabets` property. (PR #39) - -## [1.3.7](https://github.com/Ousret/charset_normalizer/compare/1.3.6...1.3.7) (2021-05-12) - -### Fixed -- The legacy detect function should return UTF-8-SIG if sig is present in the payload. (PR #38) - -## [1.3.6](https://github.com/Ousret/charset_normalizer/compare/1.3.5...1.3.6) (2021-02-09) - -### Changed -- Amend the previous release to allow prettytable 2.0 (PR #35) - -## [1.3.5](https://github.com/Ousret/charset_normalizer/compare/1.3.4...1.3.5) (2021-02-08) - -### Fixed -- Fix error while using the package with a python pre-release interpreter (PR #33) - -### Changed -- Dependencies refactoring, constraints revised. - -### Added -- Add python 3.9 and 3.10 to the supported interpreters - -MIT License - -Copyright (c) 2025 TAHRI Ahmed R. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/RECORD b/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/RECORD deleted file mode 100644 index 2d63b9b..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/RECORD +++ /dev/null @@ -1,36 +0,0 @@ -../../../bin/normalizer,sha256=7rhNQq_Cd_9NAUOJ8LsU7IsvL9dElYvjOMcNbhDBKU8,280 -81d243bd2c585b0f4821__mypyc.cpython-39-x86_64-linux-gnu.so,sha256=Ujxa5iPb6AesmIlxxCdsF1WEp8tSMlzb-rW_532i3cU,410832 -charset_normalizer-3.4.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -charset_normalizer-3.4.7.dist-info/METADATA,sha256=K8lK8L8LaZ1YmKvWLt3zEkpIxiCOC58xNhzFQrfQJxQ,40931 -charset_normalizer-3.4.7.dist-info/RECORD,, -charset_normalizer-3.4.7.dist-info/WHEEL,sha256=OZLCzpIUHEX42a9RmtxH4_auVuxdXhghS0dmIdhxCRQ,184 -charset_normalizer-3.4.7.dist-info/entry_points.txt,sha256=ADSTKrkXZ3hhdOVFi6DcUEHQRS0xfxDIE_pEz4wLIXA,65 -charset_normalizer-3.4.7.dist-info/licenses/LICENSE,sha256=bQ1Bv-FwrGx9wkjJpj4lTQ-0WmDVCoJX0K-SxuJJuIc,1071 -charset_normalizer-3.4.7.dist-info/top_level.txt,sha256=c_vZbitqecT2GfK3zdxSTLCn8C-6pGnHQY5o_5Y32M0,47 -charset_normalizer/__init__.py,sha256=OKRxRv2Zhnqk00tqkN0c1BtJjm165fWXLydE52IKuHc,1590 -charset_normalizer/__main__.py,sha256=yzYxMR-IhKRHYwcSlavEv8oGdwxsR89mr2X09qXGdps,109 -charset_normalizer/__pycache__/__init__.cpython-39.pyc,, -charset_normalizer/__pycache__/__main__.cpython-39.pyc,, -charset_normalizer/__pycache__/api.cpython-39.pyc,, -charset_normalizer/__pycache__/cd.cpython-39.pyc,, -charset_normalizer/__pycache__/constant.cpython-39.pyc,, -charset_normalizer/__pycache__/legacy.cpython-39.pyc,, -charset_normalizer/__pycache__/md.cpython-39.pyc,, -charset_normalizer/__pycache__/models.cpython-39.pyc,, -charset_normalizer/__pycache__/utils.cpython-39.pyc,, -charset_normalizer/__pycache__/version.cpython-39.pyc,, -charset_normalizer/api.py,sha256=387F3n23MlMu-xfSbFULW2DLGsBmVrZVGhnkiGXeKBo,38844 -charset_normalizer/cd.cpython-39-x86_64-linux-gnu.so,sha256=q9uObNt5v2-3JR3GmbMsHY7cJIiCz9Eez4Hmvs0IR3M,15912 -charset_normalizer/cd.py,sha256=v0iPJweGsRegXywrM1LzUgqW9bJ1KFvIblQHP1jm5FQ,15174 -charset_normalizer/cli/__init__.py,sha256=D8I86lFk2-py45JvqxniTirSj_sFyE6sjaY_0-G1shc,136 -charset_normalizer/cli/__main__.py,sha256=E9FFSV1E2iOE_B2B1tJHQT9ExJqc60Ks_c-08sNawh8,11940 -charset_normalizer/cli/__pycache__/__init__.cpython-39.pyc,, -charset_normalizer/cli/__pycache__/__main__.cpython-39.pyc,, -charset_normalizer/constant.py,sha256=yvLAWDrdSC743Cu4amhwHLIO-FGuRTOTZouCzZKGikc,44431 -charset_normalizer/legacy.py,sha256=yBIFMNABNPE5JkdKOWyVo36fZtV9nm8bf37LrDWulz8,2661 -charset_normalizer/md.cpython-39-x86_64-linux-gnu.so,sha256=MvlOADQzK-FTt2QLGo1y7joPU_7evdj0LunrWj6uzXs,15912 -charset_normalizer/md.py,sha256=AYCdfDX79FrgoId3zXqmbCuDcbGr1NRuGqgJN94Rx9Q,30441 -charset_normalizer/models.py,sha256=FbaQnI6ECmVmyHRSvVM5fHNeMAQ3KSGdwLjGcQqWDws,12821 -charset_normalizer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -charset_normalizer/utils.py,sha256=9cpi-_0-vC9pGDfuoarhC6VlF_Jxwx5Jsa_8I4w2D8k,12282 -charset_normalizer/version.py,sha256=2LxFuGp3BBuIwt95cp64y7v8bCNHcMAi08IfXt_47Co,115 diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL b/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL deleted file mode 100644 index fbcc8e7..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL +++ /dev/null @@ -1,7 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (82.0.1) -Root-Is-Purelib: false -Tag: cp39-cp39-manylinux_2_17_x86_64 -Tag: cp39-cp39-manylinux2014_x86_64 -Tag: cp39-cp39-manylinux_2_28_x86_64 - diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt b/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt deleted file mode 100644 index 65619e7..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[console_scripts] -normalizer = charset_normalizer.cli:cli_detect diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE b/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE deleted file mode 100644 index 9725772..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 TAHRI Ahmed R. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt b/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt deleted file mode 100644 index 89847be..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt +++ /dev/null @@ -1,2 +0,0 @@ -81d243bd2c585b0f4821__mypyc -charset_normalizer diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/__init__.py b/.venv/lib/python3.9/site-packages/charset_normalizer/__init__.py deleted file mode 100644 index 0d3a379..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/__init__.py +++ /dev/null @@ -1,48 +0,0 @@ -""" -Charset-Normalizer -~~~~~~~~~~~~~~ -The Real First Universal Charset Detector. -A library that helps you read text from an unknown charset encoding. -Motivated by chardet, This package is trying to resolve the issue by taking a new approach. -All IANA character set names for which the Python core library provides codecs are supported. - -Basic usage: - >>> from charset_normalizer import from_bytes - >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8')) - >>> best_guess = results.best() - >>> str(best_guess) - 'Bсеки човек има право на образование. Oбразованието!' - -Others methods and usages are available - see the full documentation -at . -:copyright: (c) 2021 by Ahmed TAHRI -:license: MIT, see LICENSE for more details. -""" - -from __future__ import annotations - -import logging - -from .api import from_bytes, from_fp, from_path, is_binary -from .legacy import detect -from .models import CharsetMatch, CharsetMatches -from .utils import set_logging_handler -from .version import VERSION, __version__ - -__all__ = ( - "from_fp", - "from_path", - "from_bytes", - "is_binary", - "detect", - "CharsetMatch", - "CharsetMatches", - "__version__", - "VERSION", - "set_logging_handler", -) - -# Attach a NullHandler to the top level logger by default -# https://docs.python.org/3.3/howto/logging.html#configuring-logging-for-a-library - -logging.getLogger("charset_normalizer").addHandler(logging.NullHandler()) diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/__main__.py b/.venv/lib/python3.9/site-packages/charset_normalizer/__main__.py deleted file mode 100644 index e0e76f7..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/__main__.py +++ /dev/null @@ -1,6 +0,0 @@ -from __future__ import annotations - -from .cli import cli_detect - -if __name__ == "__main__": - cli_detect() diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index d34c8fc67bf97330a7d75a30cc82a3a10225faa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1647 zcmcIkOK%)S5T1Q_AG5oO<0ODMH79$ecm@KBU==K!U=&O78rg=!Tw1*|wL2a6Jk;H@ z&T>EyA@MijBR7K-VIeRl?&IrRIpr^KqIz~?8zompno?DDb=Ox<*6Z08ez*SWKe^Yi ztiO$L^{b=snPpYf56A?TX9bm@Dk@Rct5ytO6E&|E)Pp5akCwcpsNprDrq_&GUJK9b zK|{17+p|l)DLPTt>qb4VSIRAMExPVqFZs4uj&682q7`oiW!t+6wdc2j&T-}WZRFlM zwvH>PukBm?ZuYEZS@y$_Nd^$psWka2=2MUg<;7L< zIcV^8A{~2^2tJZb&WH|~CLxGaky(-v2`nHQo@z3dNkmvoviLAgj$-1^{S%1&B;fJH zv3C;9r%XdYMziub0DXrXgj|u7`G;%*1X(R-Xiap2Z>vO10bQB{m4UgZ*`YaRB!(lx z(o`nQ4-udcWP5YCS-#7B4U%B+BxVsPGEO8p3b`MaPklMlVS@M)2^Ue}GgBU*DPjd* z5r$_fOVdOmT*tN_FvWe6Da1Ii2_YLB8}on{QPTJ#%Y;YfT6s)IGY#t11&k*XT9Hq$ zoUN@sIR8F>k^h#TlJg()v-}q$ko+|NJwGA&pXcA@C#X9k`5#6;%YQC4zm}FKs65SI zIAr%t>hov$*?X%_nSWSY&GeXlyxQ--LNfxT=_CVX04<<7M!9xjqO@GQG%MBrH(cA^ z#d1qUBETvIScy28=Y3ujHf3C}kpQxe1)lfDIK$!xiJwIfYo>V;+t{P`L#Xz4@|>th7oq`!RDjAZF?ZN53zy) z+1Wn0Qv!Ir{cvlzzg6~FWLgTF8X+pjereW3zfyEq94B*JYWT8Zl=Z?k<1%lLqFM6e zv}l)1%5+$?xuPQ;O+#9Sv<)$fPxcJy8qz`Ht-PMQ{@X>9 zQp`W4g-z)=)0qTHWfkp<<^oJnV=13|xpZp$6%7Fs=FdvMMI*xb6YA1`v6N}dX6d|W zF0jw>7-YsX69PTAC!il=;2;Z|1;L|v>_umY&9M-EvgEsXrzHQRZkR;ij<^bs*b~66 zz)96^3}a0dNc2SY)0pC7@Nq<3XA1Gu#U*&}BR4G<$cN4+uHqWj7rRTnp{-m>dCWDX iPC6@E_c6Fkz=ml7wSuI6yIXBl->Gyf%jU1vm;VLTphn67 diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/__main__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/__main__.cpython-39.pyc deleted file mode 100644 index 7f1084d644c6a0f2842a0649f2c8abcbf7970626..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmYjMOHRWu5Ve!E3ZdO`2BaVnFF;602yp^7?7A7b@szlY?Z}=4%9hh`5H67|t6qUs z9S{<;c=O)O(|qJ|S+E#qpXJuX{56UHkwo#p7!MbbD5iMJ3}121RHD*0G3hGh3^SGO z5`T{AJByv!6D#M3X-dh*Q)#UuN!rw^ZZ#+*tZB>vjMNt3v7C(sz^13(BY>Ya zk7;!JY+})8rHPFX=1*eb2fjPeID=xXL-QiHh$ILD35y$ofPO#^^lG8=uEr2VHJ}|t ztJgQzqT5sB>{WFuf+oD|WWAHm7)0GjACSO0Z)B_A(2Ktlt8PE$cgCr{#rx@(FpscE H7D>*J0qI*+ diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/api.cpython-39.pyc b/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/api.cpython-39.pyc deleted file mode 100644 index 4bd128a4e54b4246ce097f92811d3dfa2ad851be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14729 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 BZ&UyP diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/cd.cpython-39.pyc b/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/cd.cpython-39.pyc deleted file mode 100644 index 74b88f7317a3d0d9778e67db1d0d79398285f984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10577 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 azjT-N`!02CReKgy?JAnJU07#}*3m!B?TKXo diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/md.cpython-39.pyc b/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/md.cpython-39.pyc deleted file mode 100644 index f7912df9323c120304a78706c8a0bb79772bee91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18582 zcmch9Ym6M%b!NT#IXyk^2j4A9qB*okO19QcWXaZO$T2C2Lxmh#Qb$R#r>kbBXS%D0 zx2j1^yT?{S+3R?dEV1yPjg_plkHk#8K=Nag06}&Q1iL{HzyT7&KN?7o#{vcyi``&< zEOxoExZiiG`Zd!nj+Debs8jb<_kGU!?!D(uVR$&L;Wzo8=Qi%$)U>~$r~8+L=Xp)j zeZ$bSYnr1udReRJd0nU5C>wbLZ?kMxth^;*RykIQ=i|EO8XE~Gwi#24ND(h5E2(@+ z*Ssg{qvB78{#P~cpryG(+grNEKPTZN-`4V}*EP?0Qgc#Hx}2#D=Z7oVe6})@AE}Jy zM=N9bvC4RUyfTrWs7&T3D^vNY%5;9ZGLxUF%;sk+2l5AyQ_2}CAFLe8AF3SAAFdq9 zAE_M8AFUkAAFJf@xymE?M^MK}cj^VroxwAW=fDeE{C4StQfPcb${I-b{CnRjrnL^l96!tL*n|5XpHWP)Nl(1Rn z0KyJLVRI68&^d&#Ls8f%2|Mf@LD-Qf?Bf!4)H#N*V^P=>5|(owLD(Zv*l7tn?mUXH zN29PauH`)DJpK#1a{_-Kb56cvI&;pcw=LBDEaE;cai4U~IA;-i)_L+B%X!NA#M?2% zKj|1(wYjJ7adyn<&7p$lRf9rMs(Sts{He04*~LO}-KA&E4PLIUt+{H>xM$*ndz?pz zh^>~qLb<3jljuh`p9Rh`3yy|{a`dIUOm7y;zT&q+?r)r3uU6c%D#ttEa;}-N=NA^vFD+l2Up{}XnXr-l3l|rfQ<1~Ic=htjjItLm zU%Aw@SP7)MfIP0f+)UXQE?$}c{QS~9oG;BU&%Z=x+{PCdmzptq`NI6gxkPi+X1fc; z06n%^F0A>@p^|UAm1Os^G1;O|yisA^Y<$zy8Vv`_lZ?mx}Dl?jPsI^Bnk3z~O3n-O(UW z^t|a9dCM^!>mA*RIq|oxd<=rYbdv8F6bbOhogqw0-6A zRSR4v*KT4C6JpC%LCN)VK9VD@P*hdl&lSq$oZ|*=5$*ENq|-V4E_!}Y@Pbl-c~rfk zn=5!uPPsK7{+p#j?wN`ktUq(Tw&ftnbtK8Tn0ecs@+6y*mkZY2+R{d6FGWnTc|%hfBn|4&PjcQ z)tp={D3wdWc5aoUMP6)WuzP@8IdzX~Cqsos-mI1!wD8ut>q#a)TU99Mw#v1&lIQ0< z7qM)TU#Pgb61p55!!plE^1EZrRJ+HUsV#-UFRYZ^W=vYrj7b}sv2yj6tC}$%9Edol zv{nk5NzAB%Uo4fH!^MK{+BXZT6n+~`&TxKVHo6XSK&f6cj&F(^n=%_QF;_}O$!4v* zy|vzq$?R>Kn5Io@sp`3R^=4eTK}~skgb(>!gwF;Xj^5C0C^k@Cs38>d5h0e)n9#V; zgwUj8A~q%Nw9p};8KJ{MvqDFNLIGm#T1!oBQBk6(M?p|S%XiDG9dW0qnwv@6E_tQE zwwK`ZkArA>{2_n!u@+aHX?=~p2q2BsWB6Wu8l)(4joINxxl3M@en`XBkbVgChJIV$ zF&f~>P3?}MPD=d^X|E|1T#B~GgvK4KVOYp$Q&%rS_3P>z9zcP&C|~vV6~9W$S3P|d zWD(x#C8imZG~;*78*wMz&iz|X0=fUMp4^!_DJ7-kn-80NvX%QCU8SAWrjGX&DdC*t z2l*o0b{H$;>l7%SrE;4aSWG zhZ|;aQ3!Kq?!5)>T3)<2kJr6CNr9wJ@+8TRgNQJ=m!mgD zG7Pdb_lWRp)2u2-eHtuj!=HXArf32;1||PwOUrA%wd9LjN}oJIZHi5H-%4A zuZFc~!@5w;#Y26{Zt=ejq8V{3si!-V&X_g&$-T5bDEx5W^hy0hS9mA?q}g$|%9++@ z%{c1N`OC6ShJ{*XTYuKHULR@8+prZ&z*rF69yFzGH`BIVsXDbX-5J}yQ7e?An1pRR z)gppZwvE0GeA`x^LEF_UB%K}-7uA8H0^s=h3`!bS%9_khNN5oOJwFQd=LxPB;phjh z2(7RJ;EIa?E9Ru$(Vet2M0n*UoQ(K~ovf@6lFkU2VYE4Z3DEjngqdCuY*6181n>e> zcdoDkJp*8wE0zlYSOS{JC>4AaK`lUr7N`iJ!+bXi%U!y5bvft08Mr`QL|&!JR@top zUgp+H0Q4=S6n+}^(X(iv^nv;(aNRY-iDn5#5nV^!*80({<5^(WuonaEXLUzMT{>E^Aw8MVtA<%0%c9NKzYqOGi4Ylu@C4v`H ztH5c146D`eBQ{*U#OjClj@p@aLiH)6+=Gh-_0bFMK6=Gfl@i)o1*pXuN?I7AMTQY7 z61kLsA%Um^x2tjLb=F*DUT2a^^<$FNpSP=S)o1%uT@qn6S*{j>eOLS|?TRmiO9ZJR zd*07sWmCccV+IrR0|W!9Z&zz7$4)vqms>Aj>EOB%*5yE7s`)`~>GCoMQluhsD|opl z&wM7gBpni{l0fp@T7b}Y*-IbPcGlu=+HH^bZ#xq$&85^&un(`0TqRj1xkmB^$xnea zlaadGRyM;reJw5#C|^Ltck%cckfd(KEMq*8jT^dROc77duPsz4p?ZaiV?umbP7LD1 za^esx2G(n4v|a;hmiQqj6N#5$@pFTP+Yd=+6dX9#%q>@|mkQqYRaszOR!K4j=6ku;4T9?QIDL-wmD%Y!Tx4tfU_AM$}%8~wT zLD(#!gOWH}E)bAFgn(ia~U*7&mpijSW+MN>W)- zD$6^L(3sD-xOy!BxVx>x$D9DUB`3f<=>-$RXx)G6@>Wo)U^~ST4uT#id23jQ_g$V- zSe;QrsM|gEF6Xw3w^}732nxYUk*-rDge~eIi9_;}B%Qe})0#Z+J|2G(L^HBx@_}K* z-#4tdKB`aZS)+dHq21dSkb6W7t0^5i4M)F8fPpu{fuA##R9spl)$KP2$gRVWxPBat za1PW@JhXx$2GvjFi=G;?cI_GxC}N0F%S}UJ6?&CE4!SWT;fJ&xtnwTa8?{d~pao@{ z&kF1Q1AHsLAAC}NfA%@FMj9ebVr#IZq&~_|iUhT*tKGc0dr&BZ#@R~B8qG-S7C@Kv zzGdyFts?gB?h$(;@dPuq#h$v3+y_g%0%HF=o>1Z$Rx+C$AIZib@fgFF_5A*^CEjc_ z%=5B`CVL!_q%)+iA?~`iKSKGoANfQa-ZM2JjnoDLRh6XQEMzwx=lHPAoQ3sA2379E z%N{OKcF7)NLs!Qo3>yq0MX=pMnW@&1SR}$yYsSf{XN$pu*!=`+F8pI;DL;=7touF~ z`y=!odH8fs?;RajgZ*$WMP0$qf>1jZBHm* z@qSGD6q`YbDoko*^!f)hMHo|6SawGUi%TT2hlr!hPXLBt8CeSe!vec8=10zMW7oVk z259jaSgh6wjaW?N+&*x?;F;pHO9t`TXM1MK!9BJ5@C-%}00pi2r$BX3KoTf+z72U( zT?2)Mj3#VnMn3GcLv6=|?e6ObYbLV#pTGB?A`Y~|{e;KaoPb2SW)K^`z=ny|H7)2| z>wUwF{}6ij?~Hg>uOHgm(0yVuM2^FOJ%p%CB+MLcFT$85g_73cd{#don74z>iC%dURs z)S?x9tAL|{j%M7C;ya8E=v90I%(;(h5|XPmBv7|V`VA13V1Yd=@{jvZR3;}M(!dYT zuACve^dW$mW7KrD0tPlfH6U@iE%gH2`n$3BG`hgX@kn3BLo5!8_}hed_^LZTMCHsc zT$iBvH&F0gGMuK{>;+M+b-H8+@kP4cBq0L~RJZHwBZ6?CYlG;ToNoQlh>c=rY#a}l zFc0gseenL@b2uprZuJZ&EB5%qD)x^dA4;f7OFl^d_M3i`4?C=Hmwb45Z66{nZX(my zm}w*}64?YGFBkcY`H@SDkxuVl;Ysmbt9cyKp(R1O1%;d>cZ-WX>v(R}C-GQ(_Gw+(eu%1K5NC0xf_4XgE4 zC@-QVxg0FW(SfYXzl2(qGzc2znOUj|a`AQ^B5myEJWD_fY&ksiAN zyRbW8r3+XJrhEh6e}lbF2}SucNjVKw$~}Cl)VQ96Tb2O_c8|qJmpQ$Y0;d|H>e(jM z>4|=`ghJ>y_RNy0-8CB^bb8kF$B|V8O7zaEpaV*{nh$}=BJ0J~fa(@JG6K<}{aAZJ z&>6LmbL^TA^O)V;PTBNZEin?V-?3xJ_50qYJVYXW5m|kul@-o0u;n;DBNB-*KXQpQ zd9{WUyI0+ka$d#$Uj$l)VZFlbz)=1)N9>h?(;YBj<7mSzt$B92>a9hoCT&_K)D-p= zgD^3^YVJyU3;WjVGJTqpl56`YA<89duhdpoVV+ZVy|rK+=&9xBE+$hqkL(HRMoP># z%prtNQN9zcP%)I)9Vq8~Vc>pbCpVvakQPM^mhhmhEznT-kOH!RCS-%ObxzNaw1f`{ z&2;eD+sJ#M#QhV_9KjyK_e5yzCk)Z+NBRxvhZn@-;64alO}!;z5^E}1KY`0ocLOn| zIwLXd%~FKL*j~QXixQWJz9LLZ`s;{EsW&8^?zF!yeFh7JjkIdW7w8Wu2PgF5j-CH? zaTyyK|6QaT_TPoA1cW=R6uu{4j6`3I5DMbVoG@^-5w7;|cC5`9(*77?A@~nzVw(Ba zQtp`d1%$>CJBzpR?)ZCJ-K_0vt=zOO%bUvJ#kKRY+8PB7U& zBl&p}0pNG&5>WmNbp0a9&ymQ%{U_-9=Oi6vOpL6)LLwUJYjg>W|EF{jOQ^4toFaJ| zWRDKc54Yrt$ea8mPL5V+g9W3`idzQ7(b#T%KsEeVWJMN;1ABsgQX?reTK=~e22{~m zormX^J}qgpRMJq@)&t8(zHgbyA6hZ^^^Bw($Hr6UeIpj;n?%Ymf94bZp&Wb(4TOb< z6{f>hRbR&6ht}^BXVmol48X|rF%eZQamEl}C(xA8{^D$IxNDGQRAr20RAqQNgC_$e z<0b;@CK(YF^2%r$KU`5Le9hDit>TGNrsw@ zi+U3<8VKuo-bUG@v?MG&?^2Qg#F@9mWjC70Zb2J=c&v`(&0*OwZIIikfNPdze*(NgiD3LCACK4nOwjB3XcOSywBlHwe z{ug?BYG!ZI19%Rfb$E`lKjOJTJO7sK>ssVIIkAf^$@XK2_x}aHSKlPzsJ6EMC)(46 zrn`d?ex6NWzebz?R=r;{gb(M^gRKxg!}2*EVv6vPGr4z=Zh_@y;ebA{x{e7LH<)o> zL2NJM{)5;d%*-o*>{9U>Ew5ju&2qFRNWtVDsgyleFv z0&B4oi7@x09~f=RMTu~MFdF75X4Ejl$8N{;?hrdP(Aygx+UrfU*CS$OZCAbW_I~g^ zm+7L^23tf^QT8fC;;v+5;T+mGFROQv(Lmu6aNNg{0w<0}1mg+l@mJ3c7>0cboEWlf z3!F5R0uY{7O@k62n;DI$liMFS711|aE(3aQ5ot_+5iu4iFewoIMqC6{cWXoI*o4E) zlBA?dIWb92!X>Q~^;_`eSKu=+0CS)obw zUnEDMSILpq)hOl0_ax_}7x{Zj6`v8+0d~3gBEd57CcYiU8@9txOUV$wQq|vk9%N}z z4ttivy@HVtmp*|A^{+`zk$j8f-;(?rl7C0?9*OAnkJBai_1Ea4fLFf?vKMOdItgsw zimvipCy!eLHE)ymOZo}(+ngLPA{z~0FurT289?$u92OnnAHks|snP(D0H1tdze#`z zplAqu1h}j}GH6omLoIZ%1Ut87^+UHQOWS^z1iD!wv<6yk*| zu5^1p)I@#rn_bMa3;5NK3~J{99mL6i>_P?2)ivfKabK_92u`0deC%EcAi>?T+s&YY35D^qrOct2si!->mANeu1o932iCkTCmv#Z#og(Mhx+2UkdIho zh}+n$ZM4=qYX~b$|&Oa}OGm*EbWD!ka#f0PAU9acjUZ)^pVo62PeEXPDQ|l6)GZ=QdIT0i3`K zTqtmxzkxBYY5piJ8gRHV86I^sD4BB9X4H&04tW}HUEU0X#=fcf=kR72Zq~HY`L9Lk z%G9JtvyL~@ltXR(E-oRzhyA_qZD>0N(1LMJ`>Dgk3s|IR>Kiw{iUSfJ!F&}Ljgd3_ z*vGnwMGPsviS5K2G5rPeD!8ec|YGS?~bGghv8mKp}mTQ9XL$nORKryRyB7myaWoHY8>r})imx7 z!tNb5;Vv!+=dhOLZxd3drLLQmfbjPA~lRY8m%29e1U+7ILx4+DAVMzZ4$f;$K4B0?c3BCIs>Z zrqI;1W9(SoID962k2w~6upY<3q<$Ox6BwZJzywVM7HBevfu@2uXgWxM4h2cjOppQ{ zZp1dyJK07Ybfl309c?5*#~LZn@kSbSqA>(I*~oxSHHJZ_gCTr7)0o-F?92wkkOMpt zHNorub>~1sYaGCzHKTpSIG`cy>pKS=CmUm3A>8kNrZL$SGLCPiTmBp0L2D<_)(P0~CWI!1ri7-2 z4hhW&9VXp5)WEGe*!g~2hYYy!KW==xG3z9xH51qs4_h12JA^6n7mP(%Nw_RI12*oUT*!I^*oy2IY<6J%QXz=61)p;RUmeL(ceZ z%Cd?2Es|QGEsn= z-@FKeeL7r9r~1Wh@q#LsTop>V(gWx>bq;)@{yoWElIKVW#hQ9LKhDFx-hWY0zsNf= zr&~AIquWxha~hJbyzQ4*a6tuUaQ_B3{41_gDyVInTZte(#TP1qE&X!wx%!xFF?NMN zSD(Pmr(InB+&zN9`p8x0OH+Q_XQZR>2DuAcu+T<$tkYA=MFSY9AAoA zwHSMfZJL;zs4udKw@J9YBhX!-LkK>OGmJYs%~)tR@HhibkjNRxlXN{rA_#?G0Yz2U z6t|CfnNDt>;a*(~*S9=p?x^~0CjK3g-v!AhFnl~(#hvTG-NII{?F$VGbl0}91h9Qa zJie0XTcpJrX(6Pge2SmhM1yn&g|@R6g{CE!cCe5Cwh$%uZ?&DpTH9IZa+V}i3?%YH zydr^W@jnjahgQnfA{NXX3NfO{yRyqLla)-S4F30l4`!8%bj^6M zy~QX3)BITIvE_;))8Lw}~;NLs=a=A9V?sAAxhe?i*P{oSnjoh+@eS+QfUs=#vVWTfFQGvuG zQ6x7>2D0E=jAbWw&7C&%Zzi7&FSF8sS@X%H+-1i}ofzC0xL%XNYT((C$A%8W9Ch@| q+Oh0WLmz(%&mlZV@H~O%(|EqD!31smIG#7~98T(!7n6qe;Qs^Q#7GGM diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/models.cpython-39.pyc b/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/models.cpython-39.pyc deleted file mode 100644 index 217055638afe569ae4af34d5521d7dbe60d59a2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12030 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 a7$|6X-G%=ty!e{bi{Hh2g}H*7)Bg`9C?7xo diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/utils.cpython-39.pyc b/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/utils.cpython-39.pyc deleted file mode 100644 index 52af5eb663b00a51d966ae94d0bb997813286e3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9986 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 diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/version.cpython-39.pyc b/.venv/lib/python3.9/site-packages/charset_normalizer/__pycache__/version.cpython-39.pyc deleted file mode 100644 index fea75bc8612e29690d13b1889f1dec733b3918a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmYjLyH3ME5WMpv0f$Hwd;p?zfv-peLPCg!f+k2rqHwdi_%_(VzO!yGA<5T3$%pV0 zZmIYMDlRAmQ_Sw{V>EI&Oqj>XXSyI?zjoq3LN9I^<8WU++^t(fc)CJMmC?!f&M)QNKx%EAbbdzLc$AH^%Z_K0wAb|klqmqZ z1Yo{&ON#(D@L$~kU~l8MF|~E&y8hGMIfMEn=UjA4-g diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/api.py b/.venv/lib/python3.9/site-packages/charset_normalizer/api.py deleted file mode 100644 index 50cb955..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/api.py +++ /dev/null @@ -1,988 +0,0 @@ -from __future__ import annotations - -import logging -from os import PathLike -from typing import BinaryIO - -from .cd import ( - coherence_ratio, - encoding_languages, - mb_encoding_languages, - merge_coherence_ratios, -) -from .constant import ( - IANA_SUPPORTED, - IANA_SUPPORTED_SIMILAR, - TOO_BIG_SEQUENCE, - TOO_SMALL_SEQUENCE, - TRACE, -) -from .md import mess_ratio -from .models import CharsetMatch, CharsetMatches -from .utils import ( - any_specified_encoding, - cut_sequence_chunks, - iana_name, - identify_sig_or_bom, - is_multi_byte_encoding, - should_strip_sig_or_bom, -) - -logger = logging.getLogger("charset_normalizer") -explain_handler = logging.StreamHandler() -explain_handler.setFormatter( - logging.Formatter("%(asctime)s | %(levelname)s | %(message)s") -) - -# Pre-compute a reordered encoding list: multibyte first, then single-byte. -# This allows the mb_definitive_match optimization to fire earlier, skipping -# all single-byte encodings for genuine CJK content. Multibyte codecs -# hard-fail (UnicodeDecodeError) on single-byte data almost instantly, so -# testing them first costs negligible time for non-CJK files. -_mb_supported: list[str] = [] -_sb_supported: list[str] = [] - -for _supported_enc in IANA_SUPPORTED: - try: - if is_multi_byte_encoding(_supported_enc): - _mb_supported.append(_supported_enc) - else: - _sb_supported.append(_supported_enc) - except ImportError: - _sb_supported.append(_supported_enc) - -IANA_SUPPORTED_MB_FIRST: list[str] = _mb_supported + _sb_supported - - -def from_bytes( - sequences: bytes | bytearray, - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.2, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = True, -) -> CharsetMatches: - """ - Given a raw bytes sequence, return the best possibles charset usable to render str objects. - If there is no results, it is a strong indicator that the source is binary/not text. - By default, the process will extract 5 blocks of 512o each to assess the mess and coherence of a given sequence. - And will give up a particular code page after 20% of measured mess. Those criteria are customizable at will. - - The preemptive behavior DOES NOT replace the traditional detection workflow, it prioritize a particular code page - but never take it for granted. Can improve the performance. - - You may want to focus your attention to some code page or/and not others, use cp_isolation and cp_exclusion for that - purpose. - - This function will strip the SIG in the payload/sequence every time except on UTF-16, UTF-32. - By default the library does not setup any handler other than the NullHandler, if you choose to set the 'explain' - toggle to True it will alter the logger configuration to add a StreamHandler that is suitable for debugging. - Custom logging format and handler can be set manually. - """ - - if not isinstance(sequences, (bytearray, bytes)): - raise TypeError( - "Expected object of type bytes or bytearray, got: {}".format( - type(sequences) - ) - ) - - if explain: - previous_logger_level: int = logger.level - logger.addHandler(explain_handler) - logger.setLevel(TRACE) - - length: int = len(sequences) - - if length == 0: - logger.debug("Encoding detection on empty bytes, assuming utf_8 intention.") - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([CharsetMatch(sequences, "utf_8", 0.0, False, [], "")]) - - if cp_isolation is not None: - logger.log( - TRACE, - "cp_isolation is set. use this flag for debugging purpose. " - "limited list of encoding allowed : %s.", - ", ".join(cp_isolation), - ) - cp_isolation = [iana_name(cp, False) for cp in cp_isolation] - else: - cp_isolation = [] - - if cp_exclusion is not None: - logger.log( - TRACE, - "cp_exclusion is set. use this flag for debugging purpose. " - "limited list of encoding excluded : %s.", - ", ".join(cp_exclusion), - ) - cp_exclusion = [iana_name(cp, False) for cp in cp_exclusion] - else: - cp_exclusion = [] - - if length <= (chunk_size * steps): - logger.log( - TRACE, - "override steps (%i) and chunk_size (%i) as content does not fit (%i byte(s) given) parameters.", - steps, - chunk_size, - length, - ) - steps = 1 - chunk_size = length - - if steps > 1 and length / steps < chunk_size: - chunk_size = int(length / steps) - - is_too_small_sequence: bool = len(sequences) < TOO_SMALL_SEQUENCE - is_too_large_sequence: bool = len(sequences) >= TOO_BIG_SEQUENCE - - if is_too_small_sequence: - logger.log( - TRACE, - "Trying to detect encoding from a tiny portion of ({}) byte(s).".format( - length - ), - ) - elif is_too_large_sequence: - logger.log( - TRACE, - "Using lazy str decoding because the payload is quite large, ({}) byte(s).".format( - length - ), - ) - - prioritized_encodings: list[str] = [] - - specified_encoding: str | None = ( - any_specified_encoding(sequences) if preemptive_behaviour else None - ) - - if specified_encoding is not None: - prioritized_encodings.append(specified_encoding) - logger.log( - TRACE, - "Detected declarative mark in sequence. Priority +1 given for %s.", - specified_encoding, - ) - - tested: set[str] = set() - tested_but_hard_failure: list[str] = [] - tested_but_soft_failure: list[str] = [] - soft_failure_skip: set[str] = set() - success_fast_tracked: set[str] = set() - - # Cache for decoded payload deduplication: hash(decoded_payload) -> (mean_mess_ratio, cd_ratios_merged, passed) - # When multiple encodings decode to the exact same string, we can skip the expensive - # mess_ratio and coherence_ratio analysis and reuse the results from the first encoding. - payload_result_cache: dict[int, tuple[float, list[tuple[str, float]], bool]] = {} - - # When a definitive result (chaos=0.0 and good coherence) is found after testing - # the prioritized encodings (ascii, utf_8), we can significantly reduce the remaining - # work. Encodings that target completely different language families (e.g., Cyrillic - # when the definitive match is Latin) are skipped entirely. - # Additionally, for same-family encodings that pass chaos probing, we reuse the - # definitive match's coherence ratios instead of recomputing them — a major savings - # since coherence_ratio accounts for ~30% of total time on slow Latin files. - definitive_match_found: bool = False - definitive_target_languages: set[str] = set() - # After the definitive match fires, we cap the number of additional same-family - # single-byte encodings that pass chaos probing. Once we've accumulated enough - # good candidates (N), further same-family SB encodings are unlikely to produce - # a better best() result and just waste mess_ratio + coherence_ratio time. - # The first encoding to trigger the definitive match is NOT counted (it's already in). - post_definitive_sb_success_count: int = 0 - POST_DEFINITIVE_SB_CAP: int = 7 - - # When a non-UTF multibyte encoding passes chaos probing with significant multibyte - # content (decoded length < 98% of raw length), skip all remaining single-byte encodings. - # Rationale: multi-byte decoders (CJK) have strict byte-sequence validation — if they - # decode without error AND pass chaos probing with substantial multibyte content, the - # data is genuinely multibyte encoded. Single-byte encodings will always decode (every - # byte maps to something) but waste time on mess_ratio before failing. - # The 98% threshold prevents false triggers on files that happen to have a few valid - # multibyte pairs (e.g., cp424/_ude_1.txt where big5 decodes with 99% ratio). - mb_definitive_match_found: bool = False - - fallback_ascii: CharsetMatch | None = None - fallback_u8: CharsetMatch | None = None - fallback_specified: CharsetMatch | None = None - - results: CharsetMatches = CharsetMatches() - - early_stop_results: CharsetMatches = CharsetMatches() - - sig_encoding, sig_payload = identify_sig_or_bom(sequences) - - if sig_encoding is not None: - prioritized_encodings.append(sig_encoding) - logger.log( - TRACE, - "Detected a SIG or BOM mark on first %i byte(s). Priority +1 given for %s.", - len(sig_payload), - sig_encoding, - ) - - prioritized_encodings.append("ascii") - - if "utf_8" not in prioritized_encodings: - prioritized_encodings.append("utf_8") - - for encoding_iana in prioritized_encodings + IANA_SUPPORTED_MB_FIRST: - if cp_isolation and encoding_iana not in cp_isolation: - continue - - if cp_exclusion and encoding_iana in cp_exclusion: - continue - - if encoding_iana in tested: - continue - - tested.add(encoding_iana) - - decoded_payload: str | None = None - bom_or_sig_available: bool = sig_encoding == encoding_iana - strip_sig_or_bom: bool = bom_or_sig_available and should_strip_sig_or_bom( - encoding_iana - ) - - if encoding_iana in {"utf_16", "utf_32"} and not bom_or_sig_available: - logger.log( - TRACE, - "Encoding %s won't be tested as-is because it require a BOM. Will try some sub-encoder LE/BE.", - encoding_iana, - ) - continue - if encoding_iana in {"utf_7"} and not bom_or_sig_available: - logger.log( - TRACE, - "Encoding %s won't be tested as-is because detection is unreliable without BOM/SIG.", - encoding_iana, - ) - continue - - # Skip encodings similar to ones that already soft-failed (high mess ratio). - # Checked BEFORE the expensive decode attempt. - if encoding_iana in soft_failure_skip: - logger.log( - TRACE, - "%s is deemed too similar to a code page that was already considered unsuited. Continuing!", - encoding_iana, - ) - continue - - # Skip encodings that were already fast-tracked from a similar successful encoding. - if encoding_iana in success_fast_tracked: - logger.log( - TRACE, - "Skipping %s: already fast-tracked from a similar successful encoding.", - encoding_iana, - ) - continue - - try: - is_multi_byte_decoder: bool = is_multi_byte_encoding(encoding_iana) - except (ModuleNotFoundError, ImportError): # Defensive: - logger.log( - TRACE, - "Encoding %s does not provide an IncrementalDecoder", - encoding_iana, - ) - continue - - # When we've already found a definitive match (chaos=0.0 with good coherence) - # after testing the prioritized encodings, skip encodings that target - # completely different language families. This avoids running expensive - # mess_ratio + coherence_ratio on clearly unrelated candidates (e.g., Cyrillic - # when the definitive match is Latin-based). - if definitive_match_found: - if not is_multi_byte_decoder: - enc_languages = set(encoding_languages(encoding_iana)) - else: - enc_languages = set(mb_encoding_languages(encoding_iana)) - if not enc_languages.intersection(definitive_target_languages): - logger.log( - TRACE, - "Skipping %s: definitive match already found, this encoding targets different languages (%s vs %s).", - encoding_iana, - enc_languages, - definitive_target_languages, - ) - continue - - # After the definitive match, cap the number of additional same-family - # single-byte encodings that pass chaos probing. This avoids testing the - # tail of rare, low-value same-family encodings (mac_iceland, cp860, etc.) - # that almost never change best() but each cost ~1-2ms of mess_ratio + coherence. - if ( - definitive_match_found - and not is_multi_byte_decoder - and post_definitive_sb_success_count >= POST_DEFINITIVE_SB_CAP - ): - logger.log( - TRACE, - "Skipping %s: already accumulated %d same-family results after definitive match (cap=%d).", - encoding_iana, - post_definitive_sb_success_count, - POST_DEFINITIVE_SB_CAP, - ) - continue - - # When a multibyte encoding with significant multibyte content has already - # passed chaos probing, skip all single-byte encodings. They will either fail - # chaos probing (wasting mess_ratio time) or produce inferior results. - if mb_definitive_match_found and not is_multi_byte_decoder: - logger.log( - TRACE, - "Skipping single-byte %s: multi-byte definitive match already found.", - encoding_iana, - ) - continue - - try: - if is_too_large_sequence and is_multi_byte_decoder is False: - str( - ( - sequences[: int(50e4)] - if strip_sig_or_bom is False - else sequences[len(sig_payload) : int(50e4)] - ), - encoding=encoding_iana, - ) - else: - # UTF-7 BOM is encoded in modified Base64 whose byte boundary - # can overlap with the next character. Stripping raw SIG bytes - # before decoding may leave stray bytes that decode as garbage. - # Decode the full sequence and remove the leading BOM char instead. - # see https://github.com/jawah/charset_normalizer/issues/718 - # and https://github.com/jawah/charset_normalizer/issues/716 - if encoding_iana == "utf_7" and bom_or_sig_available: - decoded_payload = str( - sequences, - encoding=encoding_iana, - ) - if decoded_payload and decoded_payload[0] == "\ufeff": - decoded_payload = decoded_payload[1:] - else: - decoded_payload = str( - ( - sequences - if strip_sig_or_bom is False - else sequences[len(sig_payload) :] - ), - encoding=encoding_iana, - ) - except (UnicodeDecodeError, LookupError) as e: - if not isinstance(e, LookupError): - logger.log( - TRACE, - "Code page %s does not fit given bytes sequence at ALL. %s", - encoding_iana, - str(e), - ) - tested_but_hard_failure.append(encoding_iana) - continue - - r_ = range( - 0 if not bom_or_sig_available else len(sig_payload), - length, - int(length / steps), - ) - - multi_byte_bonus: bool = ( - is_multi_byte_decoder - and decoded_payload is not None - and len(decoded_payload) < length - ) - - if multi_byte_bonus: - logger.log( - TRACE, - "Code page %s is a multi byte encoding table and it appear that at least one character " - "was encoded using n-bytes.", - encoding_iana, - ) - - # Payload-hash deduplication: if another encoding already decoded to the - # exact same string, reuse its mess_ratio and coherence results entirely. - # This is strictly more general than the old IANA_SUPPORTED_SIMILAR approach - # because it catches ALL identical decoding, not just pre-mapped ones. - if decoded_payload is not None and not is_multi_byte_decoder: - payload_hash: int = hash(decoded_payload) - cached = payload_result_cache.get(payload_hash) - if cached is not None: - cached_mess, cached_cd, cached_passed = cached - if cached_passed: - # The previous encoding with identical output passed chaos probing. - fast_match = CharsetMatch( - sequences, - encoding_iana, - cached_mess, - bom_or_sig_available, - cached_cd, - ( - decoded_payload - if ( - is_too_large_sequence is False - or encoding_iana - in [specified_encoding, "ascii", "utf_8"] - ) - else None - ), - preemptive_declaration=specified_encoding, - ) - results.append(fast_match) - success_fast_tracked.add(encoding_iana) - logger.log( - TRACE, - "%s fast-tracked (identical decoded payload to a prior encoding, chaos=%f %%).", - encoding_iana, - round(cached_mess * 100, ndigits=3), - ) - - if ( - encoding_iana in [specified_encoding, "ascii", "utf_8"] - and cached_mess < 0.1 - ): - if cached_mess == 0.0: - logger.debug( - "Encoding detection: %s is most likely the one.", - fast_match.encoding, - ) - if explain: - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([fast_match]) - early_stop_results.append(fast_match) - - if ( - len(early_stop_results) - and (specified_encoding is None or specified_encoding in tested) - and "ascii" in tested - and "utf_8" in tested - ): - probable_result: CharsetMatch = early_stop_results.best() # type: ignore[assignment] - logger.debug( - "Encoding detection: %s is most likely the one.", - probable_result.encoding, - ) - if explain: - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([probable_result]) - - continue - else: - # The previous encoding with identical output failed chaos probing. - tested_but_soft_failure.append(encoding_iana) - logger.log( - TRACE, - "%s fast-skipped (identical decoded payload to a prior encoding that failed chaos probing).", - encoding_iana, - ) - # Prepare fallbacks for special encodings even when skipped. - if enable_fallback and encoding_iana in [ - "ascii", - "utf_8", - specified_encoding, - "utf_16", - "utf_32", - ]: - fallback_entry = CharsetMatch( - sequences, - encoding_iana, - threshold, - bom_or_sig_available, - [], - decoded_payload, - preemptive_declaration=specified_encoding, - ) - if encoding_iana == specified_encoding: - fallback_specified = fallback_entry - elif encoding_iana == "ascii": - fallback_ascii = fallback_entry - else: - fallback_u8 = fallback_entry - continue - - max_chunk_gave_up: int = int(len(r_) / 4) - - max_chunk_gave_up = max(max_chunk_gave_up, 2) - early_stop_count: int = 0 - lazy_str_hard_failure = False - - md_chunks: list[str] = [] - md_ratios = [] - - try: - for chunk in cut_sequence_chunks( - sequences, - encoding_iana, - r_, - chunk_size, - bom_or_sig_available, - strip_sig_or_bom, - sig_payload, - is_multi_byte_decoder, - decoded_payload, - ): - md_chunks.append(chunk) - - md_ratios.append( - mess_ratio( - chunk, - threshold, - explain is True and 1 <= len(cp_isolation) <= 2, - ) - ) - - if md_ratios[-1] >= threshold: - early_stop_count += 1 - - if (early_stop_count >= max_chunk_gave_up) or ( - bom_or_sig_available and strip_sig_or_bom is False - ): - break - except ( - UnicodeDecodeError - ) as e: # Lazy str loading may have missed something there - logger.log( - TRACE, - "LazyStr Loading: After MD chunk decode, code page %s does not fit given bytes sequence at ALL. %s", - encoding_iana, - str(e), - ) - early_stop_count = max_chunk_gave_up - lazy_str_hard_failure = True - - # We might want to check the sequence again with the whole content - # Only if initial MD tests passes - if ( - not lazy_str_hard_failure - and is_too_large_sequence - and not is_multi_byte_decoder - ): - try: - sequences[int(50e3) :].decode(encoding_iana, errors="strict") - except UnicodeDecodeError as e: - logger.log( - TRACE, - "LazyStr Loading: After final lookup, code page %s does not fit given bytes sequence at ALL. %s", - encoding_iana, - str(e), - ) - tested_but_hard_failure.append(encoding_iana) - continue - - mean_mess_ratio: float = sum(md_ratios) / len(md_ratios) if md_ratios else 0.0 - if mean_mess_ratio >= threshold or early_stop_count >= max_chunk_gave_up: - tested_but_soft_failure.append(encoding_iana) - if encoding_iana in IANA_SUPPORTED_SIMILAR: - soft_failure_skip.update(IANA_SUPPORTED_SIMILAR[encoding_iana]) - # Cache this soft-failure so identical decoding from other encodings - # can be skipped immediately. - if decoded_payload is not None and not is_multi_byte_decoder: - payload_result_cache.setdefault( - hash(decoded_payload), (mean_mess_ratio, [], False) - ) - logger.log( - TRACE, - "%s was excluded because of initial chaos probing. Gave up %i time(s). " - "Computed mean chaos is %f %%.", - encoding_iana, - early_stop_count, - round(mean_mess_ratio * 100, ndigits=3), - ) - # Preparing those fallbacks in case we got nothing. - if ( - enable_fallback - and encoding_iana - in ["ascii", "utf_8", specified_encoding, "utf_16", "utf_32"] - and not lazy_str_hard_failure - ): - fallback_entry = CharsetMatch( - sequences, - encoding_iana, - threshold, - bom_or_sig_available, - [], - decoded_payload, - preemptive_declaration=specified_encoding, - ) - if encoding_iana == specified_encoding: - fallback_specified = fallback_entry - elif encoding_iana == "ascii": - fallback_ascii = fallback_entry - else: - fallback_u8 = fallback_entry - continue - - logger.log( - TRACE, - "%s passed initial chaos probing. Mean measured chaos is %f %%", - encoding_iana, - round(mean_mess_ratio * 100, ndigits=3), - ) - - if not is_multi_byte_decoder: - target_languages: list[str] = encoding_languages(encoding_iana) - else: - target_languages = mb_encoding_languages(encoding_iana) - - if target_languages: - logger.log( - TRACE, - "{} should target any language(s) of {}".format( - encoding_iana, str(target_languages) - ), - ) - - cd_ratios = [] - - # Run coherence detection on all chunks. We previously tried limiting to - # 1-2 chunks for post-definitive encodings to save time, but this caused - # coverage regressions by producing unrepresentative coherence scores. - # The SB cap and language-family skip optimizations provide sufficient - # speedup without sacrificing coherence accuracy. - if encoding_iana != "ascii": - # We shall skip the CD when its about ASCII - # Most of the time its not relevant to run "language-detection" on it. - for chunk in md_chunks: - chunk_languages = coherence_ratio( - chunk, - language_threshold, - ",".join(target_languages) if target_languages else None, - ) - - cd_ratios.append(chunk_languages) - cd_ratios_merged = merge_coherence_ratios(cd_ratios) - else: - cd_ratios_merged = merge_coherence_ratios(cd_ratios) - - if cd_ratios_merged: - logger.log( - TRACE, - "We detected language {} using {}".format( - cd_ratios_merged, encoding_iana - ), - ) - - current_match = CharsetMatch( - sequences, - encoding_iana, - mean_mess_ratio, - bom_or_sig_available, - cd_ratios_merged, - ( - decoded_payload - if ( - is_too_large_sequence is False - or encoding_iana in [specified_encoding, "ascii", "utf_8"] - ) - else None - ), - preemptive_declaration=specified_encoding, - ) - - results.append(current_match) - - # Cache the successful result for payload-hash deduplication. - if decoded_payload is not None and not is_multi_byte_decoder: - payload_result_cache.setdefault( - hash(decoded_payload), - (mean_mess_ratio, cd_ratios_merged, True), - ) - - # Count post-definitive same-family SB successes for the early termination cap. - # Only count low-mess encodings (< 2%) toward the cap. High-mess encodings are - # marginal results that shouldn't prevent better-quality candidates from being - # tested. For example, iso8859_4 (mess=0%) should not be skipped just because - # 7 high-mess Latin encodings (cp1252 at 8%, etc.) were tried first. - if ( - definitive_match_found - and not is_multi_byte_decoder - and mean_mess_ratio < 0.02 - ): - post_definitive_sb_success_count += 1 - - if ( - encoding_iana in [specified_encoding, "ascii", "utf_8"] - and mean_mess_ratio < 0.1 - ): - # If md says nothing to worry about, then... stop immediately! - if mean_mess_ratio == 0.0: - logger.debug( - "Encoding detection: %s is most likely the one.", - current_match.encoding, - ) - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([current_match]) - - early_stop_results.append(current_match) - - if ( - len(early_stop_results) - and (specified_encoding is None or specified_encoding in tested) - and "ascii" in tested - and "utf_8" in tested - ): - probable_result = early_stop_results.best() # type: ignore[assignment] - logger.debug( - "Encoding detection: %s is most likely the one.", - probable_result.encoding, # type: ignore[union-attr] - ) - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - - return CharsetMatches([probable_result]) - - # Once we find a result with good coherence (>= 0.5) after testing the - # prioritized encodings (ascii, utf_8), activate "definitive mode": skip - # encodings that target completely different language families. This avoids - # running expensive mess_ratio + coherence_ratio on clearly unrelated - # candidates (e.g., Cyrillic encodings when the match is Latin-based). - # We require coherence >= 0.5 to avoid false positives (e.g., cp1251 decoding - # Hebrew text with 0.0 chaos but wrong language detection at coherence 0.33). - if not definitive_match_found and not is_multi_byte_decoder: - best_coherence = ( - max((v for _, v in cd_ratios_merged), default=0.0) - if cd_ratios_merged - else 0.0 - ) - if best_coherence >= 0.5 and "ascii" in tested and "utf_8" in tested: - definitive_match_found = True - definitive_target_languages.update(target_languages) - logger.log( - TRACE, - "Definitive match found: %s (chaos=%.3f, coherence=%.2f). Encodings targeting different language families will be skipped.", - encoding_iana, - mean_mess_ratio, - best_coherence, - ) - - # When a non-UTF multibyte encoding passes chaos probing with significant - # multibyte content (decoded < 98% of raw), activate mb_definitive_match. - # This skips all remaining single-byte encodings which would either soft-fail - # (running expensive mess_ratio for nothing) or produce inferior results. - if ( - not mb_definitive_match_found - and is_multi_byte_decoder - and multi_byte_bonus - and decoded_payload is not None - and len(decoded_payload) < length * 0.98 - and encoding_iana - not in { - "utf_8", - "utf_8_sig", - "utf_16", - "utf_16_be", - "utf_16_le", - "utf_32", - "utf_32_be", - "utf_32_le", - "utf_7", - } - and "ascii" in tested - and "utf_8" in tested - ): - mb_definitive_match_found = True - logger.log( - TRACE, - "Multi-byte definitive match: %s (chaos=%.3f, decoded=%d/%d=%.1f%%). Single-byte encodings will be skipped.", - encoding_iana, - mean_mess_ratio, - len(decoded_payload), - length, - len(decoded_payload) / length * 100, - ) - - if encoding_iana == sig_encoding: - logger.debug( - "Encoding detection: %s is most likely the one as we detected a BOM or SIG within " - "the beginning of the sequence.", - encoding_iana, - ) - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([results[encoding_iana]]) - - if len(results) == 0: - if fallback_u8 or fallback_ascii or fallback_specified: - logger.log( - TRACE, - "Nothing got out of the detection process. Using ASCII/UTF-8/Specified fallback.", - ) - - if fallback_specified: - logger.debug( - "Encoding detection: %s will be used as a fallback match", - fallback_specified.encoding, - ) - results.append(fallback_specified) - elif ( - (fallback_u8 and fallback_ascii is None) - or ( - fallback_u8 - and fallback_ascii - and fallback_u8.fingerprint != fallback_ascii.fingerprint - ) - or (fallback_u8 is not None) - ): - logger.debug("Encoding detection: utf_8 will be used as a fallback match") - results.append(fallback_u8) - elif fallback_ascii: - logger.debug("Encoding detection: ascii will be used as a fallback match") - results.append(fallback_ascii) - - if results: - logger.debug( - "Encoding detection: Found %s as plausible (best-candidate) for content. With %i alternatives.", - results.best().encoding, # type: ignore - len(results) - 1, - ) - else: - logger.debug("Encoding detection: Unable to determine any suitable charset.") - - if explain: - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - - return results - - -def from_fp( - fp: BinaryIO, - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.20, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = True, -) -> CharsetMatches: - """ - Same thing than the function from_bytes but using a file pointer that is already ready. - Will not close the file pointer. - """ - return from_bytes( - fp.read(), - steps, - chunk_size, - threshold, - cp_isolation, - cp_exclusion, - preemptive_behaviour, - explain, - language_threshold, - enable_fallback, - ) - - -def from_path( - path: str | bytes | PathLike, # type: ignore[type-arg] - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.20, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = True, -) -> CharsetMatches: - """ - Same thing than the function from_bytes but with one extra step. Opening and reading given file path in binary mode. - Can raise IOError. - """ - with open(path, "rb") as fp: - return from_fp( - fp, - steps, - chunk_size, - threshold, - cp_isolation, - cp_exclusion, - preemptive_behaviour, - explain, - language_threshold, - enable_fallback, - ) - - -def is_binary( - fp_or_path_or_payload: PathLike | str | BinaryIO | bytes, # type: ignore[type-arg] - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.20, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = False, -) -> bool: - """ - Detect if the given input (file, bytes, or path) points to a binary file. aka. not a string. - Based on the same main heuristic algorithms and default kwargs at the sole exception that fallbacks match - are disabled to be stricter around ASCII-compatible but unlikely to be a string. - """ - if isinstance(fp_or_path_or_payload, (str, PathLike)): - guesses = from_path( - fp_or_path_or_payload, - steps=steps, - chunk_size=chunk_size, - threshold=threshold, - cp_isolation=cp_isolation, - cp_exclusion=cp_exclusion, - preemptive_behaviour=preemptive_behaviour, - explain=explain, - language_threshold=language_threshold, - enable_fallback=enable_fallback, - ) - elif isinstance( - fp_or_path_or_payload, - ( - bytes, - bytearray, - ), - ): - guesses = from_bytes( - fp_or_path_or_payload, - steps=steps, - chunk_size=chunk_size, - threshold=threshold, - cp_isolation=cp_isolation, - cp_exclusion=cp_exclusion, - preemptive_behaviour=preemptive_behaviour, - explain=explain, - language_threshold=language_threshold, - enable_fallback=enable_fallback, - ) - else: - guesses = from_fp( - fp_or_path_or_payload, - steps=steps, - chunk_size=chunk_size, - threshold=threshold, - cp_isolation=cp_isolation, - cp_exclusion=cp_exclusion, - preemptive_behaviour=preemptive_behaviour, - explain=explain, - language_threshold=language_threshold, - enable_fallback=enable_fallback, - ) - - return not guesses diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/cd.cpython-39-x86_64-linux-gnu.so b/.venv/lib/python3.9/site-packages/charset_normalizer/cd.cpython-39-x86_64-linux-gnu.so deleted file mode 100755 index 15eb479fb5e35e6c56169d4197ebf0c3cf2691b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15912 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 list[str]: - """ - Return associated unicode ranges in a single byte code page. - """ - if is_multi_byte_encoding(iana_name): - raise OSError( # Defensive: - "Function not supported on multi-byte code page" - ) - - decoder = importlib.import_module(f"encodings.{iana_name}").IncrementalDecoder - - p: IncrementalDecoder = decoder(errors="ignore") - seen_ranges: dict[str, int] = {} - character_count: int = 0 - - for i in range(0x40, 0xFF): - chunk: str = p.decode(bytes([i])) - - if chunk: - character_range: str | None = unicode_range(chunk) - - if character_range is None: - continue - - if is_unicode_range_secondary(character_range) is False: - if character_range not in seen_ranges: - seen_ranges[character_range] = 0 - seen_ranges[character_range] += 1 - character_count += 1 - - return sorted( - [ - character_range - for character_range in seen_ranges - if seen_ranges[character_range] / character_count >= 0.15 - ] - ) - - -def unicode_range_languages(primary_range: str) -> list[str]: - """ - Return inferred languages used with a unicode range. - """ - languages: list[str] = [] - - for language, characters in FREQUENCIES.items(): - for character in characters: - if unicode_range(character) == primary_range: - languages.append(language) - break - - return languages - - -@lru_cache() -def encoding_languages(iana_name: str) -> list[str]: - """ - Single-byte encoding language association. Some code page are heavily linked to particular language(s). - This function does the correspondence. - """ - unicode_ranges: list[str] = encoding_unicode_range(iana_name) - primary_range: str | None = None - - for specified_range in unicode_ranges: - if "Latin" not in specified_range: - primary_range = specified_range - break - - if primary_range is None: - return ["Latin Based"] - - return unicode_range_languages(primary_range) - - -@lru_cache() -def mb_encoding_languages(iana_name: str) -> list[str]: - """ - Multi-byte encoding language association. Some code page are heavily linked to particular language(s). - This function does the correspondence. - """ - if ( - iana_name.startswith("shift_") - or iana_name.startswith("iso2022_jp") - or iana_name.startswith("euc_j") - or iana_name == "cp932" - ): - return ["Japanese"] - if iana_name.startswith("gb") or iana_name in ZH_NAMES: - return ["Chinese"] - if iana_name.startswith("iso2022_kr") or iana_name in KO_NAMES: - return ["Korean"] - - return [] - - -@lru_cache(maxsize=LANGUAGE_SUPPORTED_COUNT) -def get_target_features(language: str) -> tuple[bool, bool]: - """ - Determine main aspects from a supported language if it contains accents and if is pure Latin. - """ - target_have_accents: bool = False - target_pure_latin: bool = True - - for character in FREQUENCIES[language]: - if not target_have_accents and is_accentuated(character): - target_have_accents = True - if target_pure_latin and is_latin(character) is False: - target_pure_latin = False - - return target_have_accents, target_pure_latin - - -def alphabet_languages( - characters: list[str], ignore_non_latin: bool = False -) -> list[str]: - """ - Return associated languages associated to given characters. - """ - languages: list[tuple[str, float]] = [] - - characters_set: frozenset[str] = frozenset(characters) - source_have_accents = any(is_accentuated(character) for character in characters) - - for language, language_characters in FREQUENCIES.items(): - target_have_accents, target_pure_latin = get_target_features(language) - - if ignore_non_latin and target_pure_latin is False: - continue - - if target_have_accents is False and source_have_accents: - continue - - character_count: int = len(language_characters) - - character_match_count: int = len(_FREQUENCIES_SET[language] & characters_set) - - ratio: float = character_match_count / character_count - - if ratio >= 0.2: - languages.append((language, ratio)) - - languages = sorted(languages, key=lambda x: x[1], reverse=True) - - return [compatible_language[0] for compatible_language in languages] - - -def characters_popularity_compare( - language: str, ordered_characters: list[str] -) -> float: - """ - Determine if a ordered characters list (by occurrence from most appearance to rarest) match a particular language. - The result is a ratio between 0. (absolutely no correspondence) and 1. (near perfect fit). - Beware that is function is not strict on the match in order to ease the detection. (Meaning close match is 1.) - """ - if language not in FREQUENCIES: - raise ValueError(f"{language} not available") # Defensive: - - character_approved_count: int = 0 - frequencies_language_set: frozenset[str] = _FREQUENCIES_SET[language] - lang_rank: dict[str, int] = _FREQUENCIES_RANK[language] - - ordered_characters_count: int = len(ordered_characters) - target_language_characters_count: int = len(FREQUENCIES[language]) - - large_alphabet: bool = target_language_characters_count > 26 - - expected_projection_ratio: float = ( - target_language_characters_count / ordered_characters_count - ) - - # Pre-built rank dict for ordered_characters (avoids repeated list slicing). - ordered_rank: dict[str, int] = { - char: rank for rank, char in enumerate(ordered_characters) - } - - # Pre-compute characters common to both orderings. - # Avoids repeated `c in ordered_rank` dict lookups in the inner counts. - common_chars: list[tuple[int, int]] = [ - (lr, ordered_rank[c]) for c, lr in lang_rank.items() if c in ordered_rank - ] - - # Pre-extract lr and orr arrays for faster iteration in the inner loop. - # Plain integer loops with local arrays are much faster under mypyc than - # generator expression sums over a list of tuples. - common_count: int = len(common_chars) - common_lr: list[int] = [p[0] for p in common_chars] - common_orr: list[int] = [p[1] for p in common_chars] - - for character, character_rank in zip( - ordered_characters, range(0, ordered_characters_count) - ): - if character not in frequencies_language_set: - continue - - character_rank_in_language: int = lang_rank[character] - character_rank_projection: int = int(character_rank * expected_projection_ratio) - - if ( - large_alphabet is False - and abs(character_rank_projection - character_rank_in_language) > 4 - ): - continue - - if ( - large_alphabet is True - and abs(character_rank_projection - character_rank_in_language) - < target_language_characters_count / 3 - ): - character_approved_count += 1 - continue - - # Count how many characters appear "before" in both orderings, - # and how many appear "at or after" in both orderings. - # Single pass over pre-extracted arrays — much faster under mypyc - # than two generator expression sums. - before_match_count: int = 0 - after_match_count: int = 0 - for i in range(common_count): - lr_i: int = common_lr[i] - orr_i: int = common_orr[i] - if lr_i < character_rank_in_language: - if orr_i < character_rank: - before_match_count += 1 - else: - if orr_i >= character_rank: - after_match_count += 1 - - after_len: int = target_language_characters_count - character_rank_in_language - - if character_rank_in_language == 0 and before_match_count <= 4: - character_approved_count += 1 - continue - - if after_len == 0 and after_match_count <= 4: - character_approved_count += 1 - continue - - if ( - character_rank_in_language > 0 - and before_match_count / character_rank_in_language >= 0.4 - ) or (after_len > 0 and after_match_count / after_len >= 0.4): - character_approved_count += 1 - continue - - return character_approved_count / len(ordered_characters) - - -def alpha_unicode_split(decoded_sequence: str) -> list[str]: - """ - Given a decoded text sequence, return a list of str. Unicode range / alphabet separation. - Ex. a text containing English/Latin with a bit a Hebrew will return two items in the resulting list; - One containing the latin letters and the other hebrew. - """ - layers: dict[str, list[str]] = {} - - # Fast path: track single-layer key to skip dict iteration for single-script text. - single_layer_key: str | None = None - multi_layer: bool = False - - # Cache the last character_range and its resolved layer to avoid repeated - # is_suspiciously_successive_range calls for consecutive same-range chars. - prev_character_range: str | None = None - prev_layer_target: str | None = None - - for character in decoded_sequence: - if character.isalpha() is False: - continue - - # ASCII fast-path: a-z and A-Z are always "Basic Latin". - # Avoids unicode_range() function call overhead for the most common case. - character_ord: int = ord(character) - if character_ord < 128: - character_range: str | None = "Basic Latin" - else: - character_range = unicode_range(character) - - if character_range is None: - continue - - # Fast path: same range as previous character → reuse cached layer target. - if character_range == prev_character_range: - if prev_layer_target is not None: - layers[prev_layer_target].append(character) - continue - - layer_target_range: str | None = None - - if multi_layer: - for discovered_range in layers: - if ( - is_suspiciously_successive_range(discovered_range, character_range) - is False - ): - layer_target_range = discovered_range - break - elif single_layer_key is not None: - if ( - is_suspiciously_successive_range(single_layer_key, character_range) - is False - ): - layer_target_range = single_layer_key - - if layer_target_range is None: - layer_target_range = character_range - - if layer_target_range not in layers: - layers[layer_target_range] = [] - if single_layer_key is None: - single_layer_key = layer_target_range - else: - multi_layer = True - - layers[layer_target_range].append(character) - - # Cache for next iteration - prev_character_range = character_range - prev_layer_target = layer_target_range - - return ["".join(chars).lower() for chars in layers.values()] - - -def merge_coherence_ratios(results: list[CoherenceMatches]) -> CoherenceMatches: - """ - This function merge results previously given by the function coherence_ratio. - The return type is the same as coherence_ratio. - """ - per_language_ratios: dict[str, list[float]] = {} - for result in results: - for sub_result in result: - language, ratio = sub_result - if language not in per_language_ratios: - per_language_ratios[language] = [ratio] - continue - per_language_ratios[language].append(ratio) - - merge = [ - ( - language, - round( - sum(per_language_ratios[language]) / len(per_language_ratios[language]), - 4, - ), - ) - for language in per_language_ratios - ] - - return sorted(merge, key=lambda x: x[1], reverse=True) - - -def filter_alt_coherence_matches(results: CoherenceMatches) -> CoherenceMatches: - """ - We shall NOT return "English—" in CoherenceMatches because it is an alternative - of "English". This function only keeps the best match and remove the em-dash in it. - """ - index_results: dict[str, list[float]] = dict() - - for result in results: - language, ratio = result - no_em_name: str = language.replace("—", "") - - if no_em_name not in index_results: - index_results[no_em_name] = [] - - index_results[no_em_name].append(ratio) - - if any(len(index_results[e]) > 1 for e in index_results): - filtered_results: CoherenceMatches = [] - - for language in index_results: - filtered_results.append((language, max(index_results[language]))) - - return filtered_results - - return results - - -@lru_cache(maxsize=2048) -def coherence_ratio( - decoded_sequence: str, threshold: float = 0.1, lg_inclusion: str | None = None -) -> CoherenceMatches: - """ - Detect ANY language that can be identified in given sequence. The sequence will be analysed by layers. - A layer = Character extraction by alphabets/ranges. - """ - - results: list[tuple[str, float]] = [] - ignore_non_latin: bool = False - - sufficient_match_count: int = 0 - - lg_inclusion_list = lg_inclusion.split(",") if lg_inclusion is not None else [] - if "Latin Based" in lg_inclusion_list: - ignore_non_latin = True - lg_inclusion_list.remove("Latin Based") - - for layer in alpha_unicode_split(decoded_sequence): - sequence_frequencies: TypeCounter[str] = Counter(layer) - most_common = sequence_frequencies.most_common() - - character_count: int = len(layer) - - if character_count <= TOO_SMALL_SEQUENCE: - continue - - popular_character_ordered: list[str] = [c for c, o in most_common] - - for language in lg_inclusion_list or alphabet_languages( - popular_character_ordered, ignore_non_latin - ): - ratio: float = characters_popularity_compare( - language, popular_character_ordered - ) - - if ratio < threshold: - continue - elif ratio >= 0.8: - sufficient_match_count += 1 - - results.append((language, round(ratio, 4))) - - if sufficient_match_count >= 3: - break - - return sorted( - filter_alt_coherence_matches(results), key=lambda x: x[1], reverse=True - ) diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/cli/__init__.py b/.venv/lib/python3.9/site-packages/charset_normalizer/cli/__init__.py deleted file mode 100644 index 543a5a4..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/cli/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from __future__ import annotations - -from .__main__ import cli_detect, query_yes_no - -__all__ = ( - "cli_detect", - "query_yes_no", -) diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/cli/__main__.py b/.venv/lib/python3.9/site-packages/charset_normalizer/cli/__main__.py deleted file mode 100644 index ad843c1..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/cli/__main__.py +++ /dev/null @@ -1,362 +0,0 @@ -from __future__ import annotations - -import argparse -import sys -import typing -from json import dumps -from os.path import abspath, basename, dirname, join, realpath -from platform import python_version -from unicodedata import unidata_version - -import charset_normalizer.md as md_module -from charset_normalizer import from_fp -from charset_normalizer.models import CliDetectionResult -from charset_normalizer.version import __version__ - - -def query_yes_no(question: str, default: str = "yes") -> bool: # Defensive: - """Ask a yes/no question via input() and return the answer as a bool.""" - prompt = " [Y/n] " if default == "yes" else " [y/N] " - - while True: - choice = input(question + prompt).strip().lower() - if not choice: - return default == "yes" - if choice in ("y", "yes"): - return True - if choice in ("n", "no"): - return False - print("Please respond with 'y' or 'n'.") - - -class FileType: - """Factory for creating file object types - - Instances of FileType are typically passed as type= arguments to the - ArgumentParser add_argument() method. - - Keyword Arguments: - - mode -- A string indicating how the file is to be opened. Accepts the - same values as the builtin open() function. - - bufsize -- The file's desired buffer size. Accepts the same values as - the builtin open() function. - - encoding -- The file's encoding. Accepts the same values as the - builtin open() function. - - errors -- A string indicating how encoding and decoding errors are to - be handled. Accepts the same value as the builtin open() function. - - Backported from CPython 3.12 - """ - - def __init__( - self, - mode: str = "r", - bufsize: int = -1, - encoding: str | None = None, - errors: str | None = None, - ): - self._mode = mode - self._bufsize = bufsize - self._encoding = encoding - self._errors = errors - - def __call__(self, string: str) -> typing.IO: # type: ignore[type-arg] - # the special argument "-" means sys.std{in,out} - if string == "-": - if "r" in self._mode: - return sys.stdin.buffer if "b" in self._mode else sys.stdin - elif any(c in self._mode for c in "wax"): - return sys.stdout.buffer if "b" in self._mode else sys.stdout - else: - msg = f'argument "-" with mode {self._mode}' - raise ValueError(msg) - - # all other arguments are used as file names - try: - return open(string, self._mode, self._bufsize, self._encoding, self._errors) - except OSError as e: - message = f"can't open '{string}': {e}" - raise argparse.ArgumentTypeError(message) - - def __repr__(self) -> str: - args = self._mode, self._bufsize - kwargs = [("encoding", self._encoding), ("errors", self._errors)] - args_str = ", ".join( - [repr(arg) for arg in args if arg != -1] - + [f"{kw}={arg!r}" for kw, arg in kwargs if arg is not None] - ) - return f"{type(self).__name__}({args_str})" - - -def cli_detect(argv: list[str] | None = None) -> int: - """ - CLI assistant using ARGV and ArgumentParser - :param argv: - :return: 0 if everything is fine, anything else equal trouble - """ - parser = argparse.ArgumentParser( - description="The Real First Universal Charset Detector. " - "Discover originating encoding used on text file. " - "Normalize text to unicode." - ) - - parser.add_argument( - "files", type=FileType("rb"), nargs="+", help="File(s) to be analysed" - ) - parser.add_argument( - "-v", - "--verbose", - action="store_true", - default=False, - dest="verbose", - help="Display complementary information about file if any. " - "Stdout will contain logs about the detection process.", - ) - parser.add_argument( - "-a", - "--with-alternative", - action="store_true", - default=False, - dest="alternatives", - help="Output complementary possibilities if any. Top-level JSON WILL be a list.", - ) - parser.add_argument( - "-n", - "--normalize", - action="store_true", - default=False, - dest="normalize", - help="Permit to normalize input file. If not set, program does not write anything.", - ) - parser.add_argument( - "-m", - "--minimal", - action="store_true", - default=False, - dest="minimal", - help="Only output the charset detected to STDOUT. Disabling JSON output.", - ) - parser.add_argument( - "-r", - "--replace", - action="store_true", - default=False, - dest="replace", - help="Replace file when trying to normalize it instead of creating a new one.", - ) - parser.add_argument( - "-f", - "--force", - action="store_true", - default=False, - dest="force", - help="Replace file without asking if you are sure, use this flag with caution.", - ) - parser.add_argument( - "-i", - "--no-preemptive", - action="store_true", - default=False, - dest="no_preemptive", - help="Disable looking at a charset declaration to hint the detector.", - ) - parser.add_argument( - "-t", - "--threshold", - action="store", - default=0.2, - type=float, - dest="threshold", - help="Define a custom maximum amount of noise allowed in decoded content. 0. <= noise <= 1.", - ) - parser.add_argument( - "--version", - action="version", - version="Charset-Normalizer {} - Python {} - Unicode {} - SpeedUp {}".format( - __version__, - python_version(), - unidata_version, - "OFF" if md_module.__file__.lower().endswith(".py") else "ON", - ), - help="Show version information and exit.", - ) - - args = parser.parse_args(argv) - - if args.replace is True and args.normalize is False: - if args.files: - for my_file in args.files: - my_file.close() - print("Use --replace in addition of --normalize only.", file=sys.stderr) - return 1 - - if args.force is True and args.replace is False: - if args.files: - for my_file in args.files: - my_file.close() - print("Use --force in addition of --replace only.", file=sys.stderr) - return 1 - - if args.threshold < 0.0 or args.threshold > 1.0: - if args.files: - for my_file in args.files: - my_file.close() - print("--threshold VALUE should be between 0. AND 1.", file=sys.stderr) - return 1 - - x_ = [] - - for my_file in args.files: - matches = from_fp( - my_file, - threshold=args.threshold, - explain=args.verbose, - preemptive_behaviour=args.no_preemptive is False, - ) - - best_guess = matches.best() - - if best_guess is None: - print( - 'Unable to identify originating encoding for "{}". {}'.format( - my_file.name, - ( - "Maybe try increasing maximum amount of chaos." - if args.threshold < 1.0 - else "" - ), - ), - file=sys.stderr, - ) - x_.append( - CliDetectionResult( - abspath(my_file.name), - None, - [], - [], - "Unknown", - [], - False, - 1.0, - 0.0, - None, - True, - ) - ) - else: - cli_result = CliDetectionResult( - abspath(my_file.name), - best_guess.encoding, - best_guess.encoding_aliases, - [ - cp - for cp in best_guess.could_be_from_charset - if cp != best_guess.encoding - ], - best_guess.language, - best_guess.alphabets, - best_guess.bom, - best_guess.percent_chaos, - best_guess.percent_coherence, - None, - True, - ) - x_.append(cli_result) - - if len(matches) > 1 and args.alternatives: - for el in matches: - if el != best_guess: - x_.append( - CliDetectionResult( - abspath(my_file.name), - el.encoding, - el.encoding_aliases, - [ - cp - for cp in el.could_be_from_charset - if cp != el.encoding - ], - el.language, - el.alphabets, - el.bom, - el.percent_chaos, - el.percent_coherence, - None, - False, - ) - ) - - if args.normalize is True: - if best_guess.encoding.startswith("utf") is True: - print( - '"{}" file does not need to be normalized, as it already came from unicode.'.format( - my_file.name - ), - file=sys.stderr, - ) - if my_file.closed is False: - my_file.close() - continue - - dir_path = dirname(realpath(my_file.name)) - file_name = basename(realpath(my_file.name)) - - o_: list[str] = file_name.split(".") - - if args.replace is False: - o_.insert(-1, best_guess.encoding) - if my_file.closed is False: - my_file.close() - elif ( - args.force is False - and query_yes_no( - 'Are you sure to normalize "{}" by replacing it ?'.format( - my_file.name - ), - "no", - ) - is False - ): - if my_file.closed is False: - my_file.close() - continue - - try: - cli_result.unicode_path = join(dir_path, ".".join(o_)) - - with open(cli_result.unicode_path, "wb") as fp: - fp.write(best_guess.output()) - except OSError as e: # Defensive: - print(str(e), file=sys.stderr) - if my_file.closed is False: - my_file.close() - return 2 - - if my_file.closed is False: - my_file.close() - - if args.minimal is False: - print( - dumps( - [el.__dict__ for el in x_] if len(x_) > 1 else x_[0].__dict__, - ensure_ascii=True, - indent=4, - ) - ) - else: - for my_file in args.files: - print( - ", ".join( - [ - el.encoding or "undefined" - for el in x_ - if el.path == abspath(my_file.name) - ] - ) - ) - - return 0 - - -if __name__ == "__main__": # Defensive: - cli_detect() diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 48f9769b7d3d3225c0a0abe83bfeb37d71c164cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmYk1Jx;_h5QXg|3(K-AQE&vB6s!vn5)wk3fQBy3$Q#cRFa8PkWFee@t8fr5k(O$& zK!x4$ikbPIG@3VZwOX*G^Y421nfgzL|0)tZFvjCW8WdC9Fv}axnJQFi3R^a%t(q!v z+00b+#Om20@7H`fmCkvRq`iv=p1opPv_^wM!j`7x>wsZ|5hFPNSRYLbfbBp-K!A|% zPICY&wM$qf472PV14v^4zF0WPW-h-ZI&V>IbnM>b4v_?5B;jyN5HajA0KGftgKsfL zvEHNG3!^tT*P}C5RpD~KIlOZCdXu(ROKQM@tT>xmO31Hoi)BMhQ PH5k0l&&3>ZS)3JrF05a% diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-39.pyc deleted file mode 100644 index d5b70e0600742e13b20ebb34d5f2d8762b890b2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8718 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 diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/constant.py b/.venv/lib/python3.9/site-packages/charset_normalizer/constant.py deleted file mode 100644 index e1297d2..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/constant.py +++ /dev/null @@ -1,2050 +0,0 @@ -from __future__ import annotations - -from codecs import BOM_UTF8, BOM_UTF16_BE, BOM_UTF16_LE, BOM_UTF32_BE, BOM_UTF32_LE -from encodings.aliases import aliases -from re import IGNORECASE -from re import compile as re_compile - -# Contain for each eligible encoding a list of/item bytes SIG/BOM -ENCODING_MARKS: dict[str, bytes | list[bytes]] = { - "utf_8": BOM_UTF8, - "utf_7": [ - b"\x2b\x2f\x76\x38\x2d", - b"\x2b\x2f\x76\x38", - b"\x2b\x2f\x76\x39", - b"\x2b\x2f\x76\x2b", - b"\x2b\x2f\x76\x2f", - ], - "gb18030": b"\x84\x31\x95\x33", - "utf_32": [BOM_UTF32_BE, BOM_UTF32_LE], - "utf_16": [BOM_UTF16_BE, BOM_UTF16_LE], -} - -TOO_SMALL_SEQUENCE: int = 32 -TOO_BIG_SEQUENCE: int = int(10e6) - -UTF8_MAXIMAL_ALLOCATION: int = 1_112_064 - -# Up-to-date Unicode ucd/17.0.0 -UNICODE_RANGES_COMBINED: dict[str, range] = { - "Control character": range(32), - "Basic Latin": range(32, 128), - "Latin-1 Supplement": range(128, 256), - "Latin Extended-A": range(256, 384), - "Latin Extended-B": range(384, 592), - "IPA Extensions": range(592, 688), - "Spacing Modifier Letters": range(688, 768), - "Combining Diacritical Marks": range(768, 880), - "Greek and Coptic": range(880, 1024), - "Cyrillic": range(1024, 1280), - "Cyrillic Supplement": range(1280, 1328), - "Armenian": range(1328, 1424), - "Hebrew": range(1424, 1536), - "Arabic": range(1536, 1792), - "Syriac": range(1792, 1872), - "Arabic Supplement": range(1872, 1920), - "Thaana": range(1920, 1984), - "NKo": range(1984, 2048), - "Samaritan": range(2048, 2112), - "Mandaic": range(2112, 2144), - "Syriac Supplement": range(2144, 2160), - "Arabic Extended-B": range(2160, 2208), - "Arabic Extended-A": range(2208, 2304), - "Devanagari": range(2304, 2432), - "Bengali": range(2432, 2560), - "Gurmukhi": range(2560, 2688), - "Gujarati": range(2688, 2816), - "Oriya": range(2816, 2944), - "Tamil": range(2944, 3072), - "Telugu": range(3072, 3200), - "Kannada": range(3200, 3328), - "Malayalam": range(3328, 3456), - "Sinhala": range(3456, 3584), - "Thai": range(3584, 3712), - "Lao": range(3712, 3840), - "Tibetan": range(3840, 4096), - "Myanmar": range(4096, 4256), - "Georgian": range(4256, 4352), - "Hangul Jamo": range(4352, 4608), - "Ethiopic": range(4608, 4992), - "Ethiopic Supplement": range(4992, 5024), - "Cherokee": range(5024, 5120), - "Unified Canadian Aboriginal Syllabics": range(5120, 5760), - "Ogham": range(5760, 5792), - "Runic": range(5792, 5888), - "Tagalog": range(5888, 5920), - "Hanunoo": range(5920, 5952), - "Buhid": range(5952, 5984), - "Tagbanwa": range(5984, 6016), - "Khmer": range(6016, 6144), - "Mongolian": range(6144, 6320), - "Unified Canadian Aboriginal Syllabics Extended": range(6320, 6400), - "Limbu": range(6400, 6480), - "Tai Le": range(6480, 6528), - "New Tai Lue": range(6528, 6624), - "Khmer Symbols": range(6624, 6656), - "Buginese": range(6656, 6688), - "Tai Tham": range(6688, 6832), - "Combining Diacritical Marks Extended": range(6832, 6912), - "Balinese": range(6912, 7040), - "Sundanese": range(7040, 7104), - "Batak": range(7104, 7168), - "Lepcha": range(7168, 7248), - "Ol Chiki": range(7248, 7296), - "Cyrillic Extended-C": range(7296, 7312), - "Georgian Extended": range(7312, 7360), - "Sundanese Supplement": range(7360, 7376), - "Vedic Extensions": range(7376, 7424), - "Phonetic Extensions": range(7424, 7552), - "Phonetic Extensions Supplement": range(7552, 7616), - "Combining Diacritical Marks Supplement": range(7616, 7680), - "Latin Extended Additional": range(7680, 7936), - "Greek Extended": range(7936, 8192), - "General Punctuation": range(8192, 8304), - "Superscripts and Subscripts": range(8304, 8352), - "Currency Symbols": range(8352, 8400), - "Combining Diacritical Marks for Symbols": range(8400, 8448), - "Letterlike Symbols": range(8448, 8528), - "Number Forms": range(8528, 8592), - "Arrows": range(8592, 8704), - "Mathematical Operators": range(8704, 8960), - "Miscellaneous Technical": range(8960, 9216), - "Control Pictures": range(9216, 9280), - "Optical Character Recognition": range(9280, 9312), - "Enclosed Alphanumerics": range(9312, 9472), - "Box Drawing": range(9472, 9600), - "Block Elements": range(9600, 9632), - "Geometric Shapes": range(9632, 9728), - "Miscellaneous Symbols": range(9728, 9984), - "Dingbats": range(9984, 10176), - "Miscellaneous Mathematical Symbols-A": range(10176, 10224), - "Supplemental Arrows-A": range(10224, 10240), - "Braille Patterns": range(10240, 10496), - "Supplemental Arrows-B": range(10496, 10624), - "Miscellaneous Mathematical Symbols-B": range(10624, 10752), - "Supplemental Mathematical Operators": range(10752, 11008), - "Miscellaneous Symbols and Arrows": range(11008, 11264), - "Glagolitic": range(11264, 11360), - "Latin Extended-C": range(11360, 11392), - "Coptic": range(11392, 11520), - "Georgian Supplement": range(11520, 11568), - "Tifinagh": range(11568, 11648), - "Ethiopic Extended": range(11648, 11744), - "Cyrillic Extended-A": range(11744, 11776), - "Supplemental Punctuation": range(11776, 11904), - "CJK Radicals Supplement": range(11904, 12032), - "Kangxi Radicals": range(12032, 12256), - "Ideographic Description Characters": range(12272, 12288), - "CJK Symbols and Punctuation": range(12288, 12352), - "Hiragana": range(12352, 12448), - "Katakana": range(12448, 12544), - "Bopomofo": range(12544, 12592), - "Hangul Compatibility Jamo": range(12592, 12688), - "Kanbun": range(12688, 12704), - "Bopomofo Extended": range(12704, 12736), - "CJK Strokes": range(12736, 12784), - "Katakana Phonetic Extensions": range(12784, 12800), - "Enclosed CJK Letters and Months": range(12800, 13056), - "CJK Compatibility": range(13056, 13312), - "CJK Unified Ideographs Extension A": range(13312, 19904), - "Yijing Hexagram Symbols": range(19904, 19968), - "CJK Unified Ideographs": range(19968, 40960), - "Yi Syllables": range(40960, 42128), - "Yi Radicals": range(42128, 42192), - "Lisu": range(42192, 42240), - "Vai": range(42240, 42560), - "Cyrillic Extended-B": range(42560, 42656), - "Bamum": range(42656, 42752), - "Modifier Tone Letters": range(42752, 42784), - "Latin Extended-D": range(42784, 43008), - "Syloti Nagri": range(43008, 43056), - "Common Indic Number Forms": range(43056, 43072), - "Phags-pa": range(43072, 43136), - "Saurashtra": range(43136, 43232), - "Devanagari Extended": range(43232, 43264), - "Kayah Li": range(43264, 43312), - "Rejang": range(43312, 43360), - "Hangul Jamo Extended-A": range(43360, 43392), - "Javanese": range(43392, 43488), - "Myanmar Extended-B": range(43488, 43520), - "Cham": range(43520, 43616), - "Myanmar Extended-A": range(43616, 43648), - "Tai Viet": range(43648, 43744), - "Meetei Mayek Extensions": range(43744, 43776), - "Ethiopic Extended-A": range(43776, 43824), - "Latin Extended-E": range(43824, 43888), - "Cherokee Supplement": range(43888, 43968), - "Meetei Mayek": range(43968, 44032), - "Hangul Syllables": range(44032, 55216), - "Hangul Jamo Extended-B": range(55216, 55296), - "High Surrogates": range(55296, 56192), - "High Private Use Surrogates": range(56192, 56320), - "Low Surrogates": range(56320, 57344), - "Private Use Area": range(57344, 63744), - "CJK Compatibility Ideographs": range(63744, 64256), - "Alphabetic Presentation Forms": range(64256, 64336), - "Arabic Presentation Forms-A": range(64336, 65024), - "Variation Selectors": range(65024, 65040), - "Vertical Forms": range(65040, 65056), - "Combining Half Marks": range(65056, 65072), - "CJK Compatibility Forms": range(65072, 65104), - "Small Form Variants": range(65104, 65136), - "Arabic Presentation Forms-B": range(65136, 65280), - "Halfwidth and Fullwidth Forms": range(65280, 65520), - "Specials": range(65520, 65536), - "Linear B Syllabary": range(65536, 65664), - "Linear B Ideograms": range(65664, 65792), - "Aegean Numbers": range(65792, 65856), - "Ancient Greek Numbers": range(65856, 65936), - "Ancient Symbols": range(65936, 66000), - "Phaistos Disc": range(66000, 66048), - "Lycian": range(66176, 66208), - "Carian": range(66208, 66272), - "Coptic Epact Numbers": range(66272, 66304), - "Old Italic": range(66304, 66352), - "Gothic": range(66352, 66384), - "Old Permic": range(66384, 66432), - "Ugaritic": range(66432, 66464), - "Old Persian": range(66464, 66528), - "Deseret": range(66560, 66640), - "Shavian": range(66640, 66688), - "Osmanya": range(66688, 66736), - "Osage": range(66736, 66816), - "Elbasan": range(66816, 66864), - "Caucasian Albanian": range(66864, 66928), - "Vithkuqi": range(66928, 67008), - "Todhri": range(67008, 67072), - "Linear A": range(67072, 67456), - "Latin Extended-F": range(67456, 67520), - "Cypriot Syllabary": range(67584, 67648), - "Imperial Aramaic": range(67648, 67680), - "Palmyrene": range(67680, 67712), - "Nabataean": range(67712, 67760), - "Hatran": range(67808, 67840), - "Phoenician": range(67840, 67872), - "Lydian": range(67872, 67904), - "Sidetic": range(67904, 67936), - "Meroitic Hieroglyphs": range(67968, 68000), - "Meroitic Cursive": range(68000, 68096), - "Kharoshthi": range(68096, 68192), - "Old South Arabian": range(68192, 68224), - "Old North Arabian": range(68224, 68256), - "Manichaean": range(68288, 68352), - "Avestan": range(68352, 68416), - "Inscriptional Parthian": range(68416, 68448), - "Inscriptional Pahlavi": range(68448, 68480), - "Psalter Pahlavi": range(68480, 68528), - "Old Turkic": range(68608, 68688), - "Old Hungarian": range(68736, 68864), - "Hanifi Rohingya": range(68864, 68928), - "Garay": range(68928, 69008), - "Rumi Numeral Symbols": range(69216, 69248), - "Yezidi": range(69248, 69312), - "Arabic Extended-C": range(69312, 69376), - "Old Sogdian": range(69376, 69424), - "Sogdian": range(69424, 69488), - "Old Uyghur": range(69488, 69552), - "Chorasmian": range(69552, 69600), - "Elymaic": range(69600, 69632), - "Brahmi": range(69632, 69760), - "Kaithi": range(69760, 69840), - "Sora Sompeng": range(69840, 69888), - "Chakma": range(69888, 69968), - "Mahajani": range(69968, 70016), - "Sharada": range(70016, 70112), - "Sinhala Archaic Numbers": range(70112, 70144), - "Khojki": range(70144, 70224), - "Multani": range(70272, 70320), - "Khudawadi": range(70320, 70400), - "Grantha": range(70400, 70528), - "Tulu-Tigalari": range(70528, 70656), - "Newa": range(70656, 70784), - "Tirhuta": range(70784, 70880), - "Siddham": range(71040, 71168), - "Modi": range(71168, 71264), - "Mongolian Supplement": range(71264, 71296), - "Takri": range(71296, 71376), - "Myanmar Extended-C": range(71376, 71424), - "Ahom": range(71424, 71504), - "Dogra": range(71680, 71760), - "Warang Citi": range(71840, 71936), - "Dives Akuru": range(71936, 72032), - "Nandinagari": range(72096, 72192), - "Zanabazar Square": range(72192, 72272), - "Soyombo": range(72272, 72368), - "Unified Canadian Aboriginal Syllabics Extended-A": range(72368, 72384), - "Pau Cin Hau": range(72384, 72448), - "Devanagari Extended-A": range(72448, 72544), - "Sharada Supplement": range(72544, 72576), - "Sunuwar": range(72640, 72704), - "Bhaiksuki": range(72704, 72816), - "Marchen": range(72816, 72896), - "Masaram Gondi": range(72960, 73056), - "Gunjala Gondi": range(73056, 73136), - "Tolong Siki": range(73136, 73200), - "Makasar": range(73440, 73472), - "Kawi": range(73472, 73568), - "Lisu Supplement": range(73648, 73664), - "Tamil Supplement": range(73664, 73728), - "Cuneiform": range(73728, 74752), - "Cuneiform Numbers and Punctuation": range(74752, 74880), - "Early Dynastic Cuneiform": range(74880, 75088), - "Cypro-Minoan": range(77712, 77824), - "Egyptian Hieroglyphs": range(77824, 78896), - "Egyptian Hieroglyph Format Controls": range(78896, 78944), - "Egyptian Hieroglyphs Extended-A": range(78944, 82944), - "Anatolian Hieroglyphs": range(82944, 83584), - "Gurung Khema": range(90368, 90432), - "Bamum Supplement": range(92160, 92736), - "Mro": range(92736, 92784), - "Tangsa": range(92784, 92880), - "Bassa Vah": range(92880, 92928), - "Pahawh Hmong": range(92928, 93072), - "Kirat Rai": range(93504, 93568), - "Medefaidrin": range(93760, 93856), - "Beria Erfe": range(93856, 93920), - "Miao": range(93952, 94112), - "Ideographic Symbols and Punctuation": range(94176, 94208), - "Tangut": range(94208, 100352), - "Tangut Components": range(100352, 101120), - "Khitan Small Script": range(101120, 101632), - "Tangut Supplement": range(101632, 101760), - "Tangut Components Supplement": range(101760, 101888), - "Kana Extended-B": range(110576, 110592), - "Kana Supplement": range(110592, 110848), - "Kana Extended-A": range(110848, 110896), - "Small Kana Extension": range(110896, 110960), - "Nushu": range(110960, 111360), - "Duployan": range(113664, 113824), - "Shorthand Format Controls": range(113824, 113840), - "Symbols for Legacy Computing Supplement": range(117760, 118464), - "Miscellaneous Symbols Supplement": range(118464, 118528), - "Znamenny Musical Notation": range(118528, 118736), - "Byzantine Musical Symbols": range(118784, 119040), - "Musical Symbols": range(119040, 119296), - "Ancient Greek Musical Notation": range(119296, 119376), - "Kaktovik Numerals": range(119488, 119520), - "Mayan Numerals": range(119520, 119552), - "Tai Xuan Jing Symbols": range(119552, 119648), - "Counting Rod Numerals": range(119648, 119680), - "Mathematical Alphanumeric Symbols": range(119808, 120832), - "Sutton SignWriting": range(120832, 121520), - "Latin Extended-G": range(122624, 122880), - "Glagolitic Supplement": range(122880, 122928), - "Cyrillic Extended-D": range(122928, 123024), - "Nyiakeng Puachue Hmong": range(123136, 123216), - "Toto": range(123536, 123584), - "Wancho": range(123584, 123648), - "Nag Mundari": range(124112, 124160), - "Ol Onal": range(124368, 124416), - "Tai Yo": range(124608, 124672), - "Ethiopic Extended-B": range(124896, 124928), - "Mende Kikakui": range(124928, 125152), - "Adlam": range(125184, 125280), - "Indic Siyaq Numbers": range(126064, 126144), - "Ottoman Siyaq Numbers": range(126208, 126288), - "Arabic Mathematical Alphabetic Symbols": range(126464, 126720), - "Mahjong Tiles": range(126976, 127024), - "Domino Tiles": range(127024, 127136), - "Playing Cards": range(127136, 127232), - "Enclosed Alphanumeric Supplement": range(127232, 127488), - "Enclosed Ideographic Supplement": range(127488, 127744), - "Miscellaneous Symbols and Pictographs": range(127744, 128512), - "Emoticons": range(128512, 128592), - "Ornamental Dingbats": range(128592, 128640), - "Transport and Map Symbols": range(128640, 128768), - "Alchemical Symbols": range(128768, 128896), - "Geometric Shapes Extended": range(128896, 129024), - "Supplemental Arrows-C": range(129024, 129280), - "Supplemental Symbols and Pictographs": range(129280, 129536), - "Chess Symbols": range(129536, 129648), - "Symbols and Pictographs Extended-A": range(129648, 129792), - "Symbols for Legacy Computing": range(129792, 130048), - "CJK Unified Ideographs Extension B": range(131072, 173792), - "CJK Unified Ideographs Extension C": range(173824, 177984), - "CJK Unified Ideographs Extension D": range(177984, 178208), - "CJK Unified Ideographs Extension E": range(178208, 183984), - "CJK Unified Ideographs Extension F": range(183984, 191472), - "CJK Unified Ideographs Extension I": range(191472, 192096), - "CJK Compatibility Ideographs Supplement": range(194560, 195104), - "CJK Unified Ideographs Extension G": range(196608, 201552), - "CJK Unified Ideographs Extension H": range(201552, 205744), - "CJK Unified Ideographs Extension J": range(205744, 210048), - "Tags": range(917504, 917632), - "Variation Selectors Supplement": range(917760, 918000), - "Supplementary Private Use Area-A": range(983040, 1048576), - "Supplementary Private Use Area-B": range(1048576, 1114112), -} - - -UNICODE_SECONDARY_RANGE_KEYWORD: list[str] = [ - "Supplement", - "Extended", - "Extensions", - "Modifier", - "Marks", - "Punctuation", - "Symbols", - "Forms", - "Operators", - "Miscellaneous", - "Drawing", - "Block", - "Shapes", - "Supplemental", - "Tags", -] - -RE_POSSIBLE_ENCODING_INDICATION = re_compile( - r"(?:(?:encoding)|(?:charset)|(?:coding))(?:[\:= ]{1,10})(?:[\"\']?)([a-zA-Z0-9\-_]+)(?:[\"\']?)", - IGNORECASE, -) - -IANA_NO_ALIASES = [ - "cp720", - "cp737", - "cp856", - "cp874", - "cp875", - "cp1006", - "koi8_r", - "koi8_t", - "koi8_u", -] - -IANA_SUPPORTED: list[str] = sorted( - filter( - lambda x: x.endswith("_codec") is False - and x not in {"rot_13", "tactis", "mbcs"}, - list(set(aliases.values())) + IANA_NO_ALIASES, - ) -) - -IANA_SUPPORTED_COUNT: int = len(IANA_SUPPORTED) - -# pre-computed code page that are similar using the function cp_similarity. -IANA_SUPPORTED_SIMILAR: dict[str, list[str]] = { - "cp037": ["cp1026", "cp1140", "cp273", "cp500"], - "cp1026": ["cp037", "cp1140", "cp273", "cp500"], - "cp1125": ["cp866"], - "cp1140": ["cp037", "cp1026", "cp273", "cp500"], - "cp1250": ["iso8859_2"], - "cp1251": ["kz1048", "ptcp154"], - "cp1252": ["iso8859_15", "iso8859_9", "latin_1"], - "cp1253": ["iso8859_7"], - "cp1254": ["iso8859_15", "iso8859_9", "latin_1"], - "cp1257": ["iso8859_13"], - "cp273": ["cp037", "cp1026", "cp1140", "cp500"], - "cp437": ["cp850", "cp858", "cp860", "cp861", "cp862", "cp863", "cp865"], - "cp500": ["cp037", "cp1026", "cp1140", "cp273"], - "cp850": ["cp437", "cp857", "cp858", "cp865"], - "cp857": ["cp850", "cp858", "cp865"], - "cp858": ["cp437", "cp850", "cp857", "cp865"], - "cp860": ["cp437", "cp861", "cp862", "cp863", "cp865"], - "cp861": ["cp437", "cp860", "cp862", "cp863", "cp865"], - "cp862": ["cp437", "cp860", "cp861", "cp863", "cp865"], - "cp863": ["cp437", "cp860", "cp861", "cp862", "cp865"], - "cp865": ["cp437", "cp850", "cp857", "cp858", "cp860", "cp861", "cp862", "cp863"], - "cp866": ["cp1125"], - "iso8859_10": ["iso8859_14", "iso8859_15", "iso8859_4", "iso8859_9", "latin_1"], - "iso8859_11": ["tis_620"], - "iso8859_13": ["cp1257"], - "iso8859_14": [ - "iso8859_10", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_9", - "latin_1", - ], - "iso8859_15": [ - "cp1252", - "cp1254", - "iso8859_10", - "iso8859_14", - "iso8859_16", - "iso8859_3", - "iso8859_9", - "latin_1", - ], - "iso8859_16": [ - "iso8859_14", - "iso8859_15", - "iso8859_2", - "iso8859_3", - "iso8859_9", - "latin_1", - ], - "iso8859_2": ["cp1250", "iso8859_16", "iso8859_4"], - "iso8859_3": ["iso8859_14", "iso8859_15", "iso8859_16", "iso8859_9", "latin_1"], - "iso8859_4": ["iso8859_10", "iso8859_2", "iso8859_9", "latin_1"], - "iso8859_7": ["cp1253"], - "iso8859_9": [ - "cp1252", - "cp1254", - "cp1258", - "iso8859_10", - "iso8859_14", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_4", - "latin_1", - ], - "kz1048": ["cp1251", "ptcp154"], - "latin_1": [ - "cp1252", - "cp1254", - "cp1258", - "iso8859_10", - "iso8859_14", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_4", - "iso8859_9", - ], - "mac_iceland": ["mac_roman", "mac_turkish"], - "mac_roman": ["mac_iceland", "mac_turkish"], - "mac_turkish": ["mac_iceland", "mac_roman"], - "ptcp154": ["cp1251", "kz1048"], - "tis_620": ["iso8859_11"], -} - - -CHARDET_CORRESPONDENCE: dict[str, str] = { - "iso2022_kr": "ISO-2022-KR", - "iso2022_jp": "ISO-2022-JP", - "euc_kr": "EUC-KR", - "tis_620": "TIS-620", - "utf_32": "UTF-32", - "euc_jp": "EUC-JP", - "koi8_r": "KOI8-R", - "iso8859_1": "ISO-8859-1", - "iso8859_2": "ISO-8859-2", - "iso8859_5": "ISO-8859-5", - "iso8859_6": "ISO-8859-6", - "iso8859_7": "ISO-8859-7", - "iso8859_8": "ISO-8859-8", - "utf_16": "UTF-16", - "cp855": "IBM855", - "mac_cyrillic": "MacCyrillic", - "gb2312": "GB2312", - "gb18030": "GB18030", - "cp932": "CP932", - "cp866": "IBM866", - "utf_8": "utf-8", - "utf_8_sig": "UTF-8-SIG", - "shift_jis": "SHIFT_JIS", - "big5": "Big5", - "cp1250": "windows-1250", - "cp1251": "windows-1251", - "cp1252": "Windows-1252", - "cp1253": "windows-1253", - "cp1255": "windows-1255", - "cp1256": "windows-1256", - "cp1254": "Windows-1254", - "cp949": "CP949", -} - - -COMMON_SAFE_ASCII_CHARACTERS: frozenset[str] = frozenset( - { - "<", - ">", - "=", - ":", - "/", - "&", - ";", - "{", - "}", - "[", - "]", - ",", - "|", - '"', - "-", - "(", - ")", - } -) - -# Sample character sets — replace with full lists if needed -COMMON_CHINESE_CHARACTERS = "的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严龙飞" - -COMMON_JAPANESE_CHARACTERS = "日一国年大十二本中長出三時行見月分後前生五間上東四今金九入学高円子外八六下来気小七山話女北午百書先名川千水半男西電校語土木聞食車何南万毎白天母火右読友左休父雨" - -COMMON_KOREAN_CHARACTERS = "一二三四五六七八九十百千萬上下左右中人女子大小山川日月火水木金土父母天地國名年時文校學生" - -# Combine all into a frozenset -COMMON_CJK_CHARACTERS = frozenset( - "".join( - [ - COMMON_CHINESE_CHARACTERS, - COMMON_JAPANESE_CHARACTERS, - COMMON_KOREAN_CHARACTERS, - ] - ) -) - -KO_NAMES: frozenset[str] = frozenset({"johab", "cp949", "euc_kr"}) -ZH_NAMES: frozenset[str] = frozenset({"big5", "cp950", "big5hkscs", "hz"}) - -# Logging LEVEL below DEBUG -TRACE: int = 5 - - -# Language label that contain the em dash "—" -# character are to be considered alternative seq to origin -FREQUENCIES: dict[str, list[str]] = { - "English": [ - "e", - "a", - "t", - "i", - "o", - "n", - "s", - "r", - "h", - "l", - "d", - "c", - "u", - "m", - "f", - "p", - "g", - "w", - "y", - "b", - "v", - "k", - "x", - "j", - "z", - "q", - ], - "English—": [ - "e", - "a", - "t", - "i", - "o", - "n", - "s", - "r", - "h", - "l", - "d", - "c", - "m", - "u", - "f", - "p", - "g", - "w", - "b", - "y", - "v", - "k", - "j", - "x", - "z", - "q", - ], - "German": [ - "e", - "n", - "i", - "r", - "s", - "t", - "a", - "d", - "h", - "u", - "l", - "g", - "o", - "c", - "m", - "b", - "f", - "k", - "w", - "z", - "p", - "v", - "ü", - "ä", - "ö", - "j", - ], - "French": [ - "e", - "a", - "s", - "n", - "i", - "t", - "r", - "l", - "u", - "o", - "d", - "c", - "p", - "m", - "é", - "v", - "g", - "f", - "b", - "h", - "q", - "à", - "x", - "è", - "y", - "j", - ], - "Dutch": [ - "e", - "n", - "a", - "i", - "r", - "t", - "o", - "d", - "s", - "l", - "g", - "h", - "v", - "m", - "u", - "k", - "c", - "p", - "b", - "w", - "j", - "z", - "f", - "y", - "x", - "ë", - ], - "Italian": [ - "e", - "i", - "a", - "o", - "n", - "l", - "t", - "r", - "s", - "c", - "d", - "u", - "p", - "m", - "g", - "v", - "f", - "b", - "z", - "h", - "q", - "è", - "à", - "k", - "y", - "ò", - ], - "Polish": [ - "a", - "i", - "o", - "e", - "n", - "r", - "z", - "w", - "s", - "c", - "t", - "k", - "y", - "d", - "p", - "m", - "u", - "l", - "j", - "ł", - "g", - "b", - "h", - "ą", - "ę", - "ó", - ], - "Spanish": [ - "e", - "a", - "o", - "n", - "s", - "r", - "i", - "l", - "d", - "t", - "c", - "u", - "m", - "p", - "b", - "g", - "v", - "f", - "y", - "ó", - "h", - "q", - "í", - "j", - "z", - "á", - ], - "Russian": [ - "о", - "е", - "а", - "и", - "н", - "т", - "с", - "р", - "в", - "л", - "к", - "м", - "д", - "п", - "у", - "г", - "я", - "ы", - "з", - "б", - "й", - "ь", - "ч", - "х", - "ж", - "ц", - ], - # Jap-Kanji - "Japanese": [ - "日", - "一", - "人", - "年", - "大", - "十", - "二", - "本", - "中", - "長", - "出", - "三", - "時", - "行", - "見", - "月", - "分", - "後", - "前", - "生", - "五", - "間", - "上", - "東", - "四", - "今", - "金", - "九", - "入", - "学", - "高", - "円", - "子", - "外", - "八", - "六", - "下", - "来", - "気", - "小", - "七", - "山", - "話", - "女", - "北", - "午", - "百", - "書", - "先", - "名", - "川", - "千", - "水", - "半", - "男", - "西", - "電", - "校", - "語", - "土", - "木", - "聞", - "食", - "車", - "何", - "南", - "万", - "毎", - "白", - "天", - "母", - "火", - "右", - "読", - "友", - "左", - "休", - "父", - "雨", - ], - # Jap-Katakana - "Japanese—": [ - "ー", - "ン", - "ス", - "・", - "ル", - "ト", - "リ", - "イ", - "ア", - "ラ", - "ッ", - "ク", - "ド", - "シ", - "レ", - "ジ", - "タ", - "フ", - "ロ", - "カ", - "テ", - "マ", - "ィ", - "グ", - "バ", - "ム", - "プ", - "オ", - "コ", - "デ", - "ニ", - "ウ", - "メ", - "サ", - "ビ", - "ナ", - "ブ", - "ャ", - "エ", - "ュ", - "チ", - "キ", - "ズ", - "ダ", - "パ", - "ミ", - "ェ", - "ョ", - "ハ", - "セ", - "ベ", - "ガ", - "モ", - "ツ", - "ネ", - "ボ", - "ソ", - "ノ", - "ァ", - "ヴ", - "ワ", - "ポ", - "ペ", - "ピ", - "ケ", - "ゴ", - "ギ", - "ザ", - "ホ", - "ゲ", - "ォ", - "ヤ", - "ヒ", - "ユ", - "ヨ", - "ヘ", - "ゼ", - "ヌ", - "ゥ", - "ゾ", - "ヶ", - "ヂ", - "ヲ", - "ヅ", - "ヵ", - "ヱ", - "ヰ", - "ヮ", - "ヽ", - "゠", - "ヾ", - "ヷ", - "ヿ", - "ヸ", - "ヹ", - "ヺ", - ], - # Jap-Hiragana - "Japanese——": [ - "の", - "に", - "る", - "た", - "と", - "は", - "し", - "い", - "を", - "で", - "て", - "が", - "な", - "れ", - "か", - "ら", - "さ", - "っ", - "り", - "す", - "あ", - "も", - "こ", - "ま", - "う", - "く", - "よ", - "き", - "ん", - "め", - "お", - "け", - "そ", - "つ", - "だ", - "や", - "え", - "ど", - "わ", - "ち", - "み", - "せ", - "じ", - "ば", - "へ", - "び", - "ず", - "ろ", - "ほ", - "げ", - "む", - "べ", - "ひ", - "ょ", - "ゆ", - "ぶ", - "ご", - "ゃ", - "ね", - "ふ", - "ぐ", - "ぎ", - "ぼ", - "ゅ", - "づ", - "ざ", - "ぞ", - "ぬ", - "ぜ", - "ぱ", - "ぽ", - "ぷ", - "ぴ", - "ぃ", - "ぁ", - "ぇ", - "ぺ", - "ゞ", - "ぢ", - "ぉ", - "ぅ", - "ゐ", - "ゝ", - "ゑ", - "゛", - "゜", - "ゎ", - "ゔ", - "゚", - "ゟ", - "゙", - "ゕ", - "ゖ", - ], - "Portuguese": [ - "a", - "e", - "o", - "s", - "i", - "r", - "d", - "n", - "t", - "m", - "u", - "c", - "l", - "p", - "g", - "v", - "b", - "f", - "h", - "ã", - "q", - "é", - "ç", - "á", - "z", - "í", - ], - "Swedish": [ - "e", - "a", - "n", - "r", - "t", - "s", - "i", - "l", - "d", - "o", - "m", - "k", - "g", - "v", - "h", - "f", - "u", - "p", - "ä", - "c", - "b", - "ö", - "å", - "y", - "j", - "x", - ], - "Chinese": [ - "的", - "一", - "是", - "不", - "了", - "在", - "人", - "有", - "我", - "他", - "这", - "个", - "们", - "中", - "来", - "上", - "大", - "为", - "和", - "国", - "地", - "到", - "以", - "说", - "时", - "要", - "就", - "出", - "会", - "可", - "也", - "你", - "对", - "生", - "能", - "而", - "子", - "那", - "得", - "于", - "着", - "下", - "自", - "之", - "年", - "过", - "发", - "后", - "作", - "里", - "用", - "道", - "行", - "所", - "然", - "家", - "种", - "事", - "成", - "方", - "多", - "经", - "么", - "去", - "法", - "学", - "如", - "都", - "同", - "现", - "当", - "没", - "动", - "面", - "起", - "看", - "定", - "天", - "分", - "还", - "进", - "好", - "小", - "部", - "其", - "些", - "主", - "样", - "理", - "心", - "她", - "本", - "前", - "开", - "但", - "因", - "只", - "从", - "想", - "实", - ], - "Ukrainian": [ - "о", - "а", - "н", - "і", - "и", - "р", - "в", - "т", - "е", - "с", - "к", - "л", - "у", - "д", - "м", - "п", - "з", - "я", - "ь", - "б", - "г", - "й", - "ч", - "х", - "ц", - "ї", - ], - "Norwegian": [ - "e", - "r", - "n", - "t", - "a", - "s", - "i", - "o", - "l", - "d", - "g", - "k", - "m", - "v", - "f", - "p", - "u", - "b", - "h", - "å", - "y", - "j", - "ø", - "c", - "æ", - "w", - ], - "Finnish": [ - "a", - "i", - "n", - "t", - "e", - "s", - "l", - "o", - "u", - "k", - "ä", - "m", - "r", - "v", - "j", - "h", - "p", - "y", - "d", - "ö", - "g", - "c", - "b", - "f", - "w", - "z", - ], - "Vietnamese": [ - "n", - "h", - "t", - "i", - "c", - "g", - "a", - "o", - "u", - "m", - "l", - "r", - "à", - "đ", - "s", - "e", - "v", - "p", - "b", - "y", - "ư", - "d", - "á", - "k", - "ộ", - "ế", - ], - "Czech": [ - "o", - "e", - "a", - "n", - "t", - "s", - "i", - "l", - "v", - "r", - "k", - "d", - "u", - "m", - "p", - "í", - "c", - "h", - "z", - "á", - "y", - "j", - "b", - "ě", - "é", - "ř", - ], - "Hungarian": [ - "e", - "a", - "t", - "l", - "s", - "n", - "k", - "r", - "i", - "o", - "z", - "á", - "é", - "g", - "m", - "b", - "y", - "v", - "d", - "h", - "u", - "p", - "j", - "ö", - "f", - "c", - ], - "Korean": [ - "이", - "다", - "에", - "의", - "는", - "로", - "하", - "을", - "가", - "고", - "지", - "서", - "한", - "은", - "기", - "으", - "년", - "대", - "사", - "시", - "를", - "리", - "도", - "인", - "스", - "일", - ], - "Indonesian": [ - "a", - "n", - "e", - "i", - "r", - "t", - "u", - "s", - "d", - "k", - "m", - "l", - "g", - "p", - "b", - "o", - "h", - "y", - "j", - "c", - "w", - "f", - "v", - "z", - "x", - "q", - ], - "Turkish": [ - "a", - "e", - "i", - "n", - "r", - "l", - "ı", - "k", - "d", - "t", - "s", - "m", - "y", - "u", - "o", - "b", - "ü", - "ş", - "v", - "g", - "z", - "h", - "c", - "p", - "ç", - "ğ", - ], - "Romanian": [ - "e", - "i", - "a", - "r", - "n", - "t", - "u", - "l", - "o", - "c", - "s", - "d", - "p", - "m", - "ă", - "f", - "v", - "î", - "g", - "b", - "ș", - "ț", - "z", - "h", - "â", - "j", - ], - "Farsi": [ - "ا", - "ی", - "ر", - "د", - "ن", - "ه", - "و", - "م", - "ت", - "ب", - "س", - "ل", - "ک", - "ش", - "ز", - "ف", - "گ", - "ع", - "خ", - "ق", - "ج", - "آ", - "پ", - "ح", - "ط", - "ص", - ], - "Arabic": [ - "ا", - "ل", - "ي", - "م", - "و", - "ن", - "ر", - "ت", - "ب", - "ة", - "ع", - "د", - "س", - "ف", - "ه", - "ك", - "ق", - "أ", - "ح", - "ج", - "ش", - "ط", - "ص", - "ى", - "خ", - "إ", - ], - "Danish": [ - "e", - "r", - "n", - "t", - "a", - "i", - "s", - "d", - "l", - "o", - "g", - "m", - "k", - "f", - "v", - "u", - "b", - "h", - "p", - "å", - "y", - "ø", - "æ", - "c", - "j", - "w", - ], - "Serbian": [ - "а", - "и", - "о", - "е", - "н", - "р", - "с", - "у", - "т", - "к", - "ј", - "в", - "д", - "м", - "п", - "л", - "г", - "з", - "б", - "a", - "i", - "e", - "o", - "n", - "ц", - "ш", - ], - "Lithuanian": [ - "i", - "a", - "s", - "o", - "r", - "e", - "t", - "n", - "u", - "k", - "m", - "l", - "p", - "v", - "d", - "j", - "g", - "ė", - "b", - "y", - "ų", - "š", - "ž", - "c", - "ą", - "į", - ], - "Slovene": [ - "e", - "a", - "i", - "o", - "n", - "r", - "s", - "l", - "t", - "j", - "v", - "k", - "d", - "p", - "m", - "u", - "z", - "b", - "g", - "h", - "č", - "c", - "š", - "ž", - "f", - "y", - ], - "Slovak": [ - "o", - "a", - "e", - "n", - "i", - "r", - "v", - "t", - "s", - "l", - "k", - "d", - "m", - "p", - "u", - "c", - "h", - "j", - "b", - "z", - "á", - "y", - "ý", - "í", - "č", - "é", - ], - "Hebrew": [ - "י", - "ו", - "ה", - "ל", - "ר", - "ב", - "ת", - "מ", - "א", - "ש", - "נ", - "ע", - "ם", - "ד", - "ק", - "ח", - "פ", - "ס", - "כ", - "ג", - "ט", - "צ", - "ן", - "ז", - "ך", - ], - "Bulgarian": [ - "а", - "и", - "о", - "е", - "н", - "т", - "р", - "с", - "в", - "л", - "к", - "д", - "п", - "м", - "з", - "г", - "я", - "ъ", - "у", - "б", - "ч", - "ц", - "й", - "ж", - "щ", - "х", - ], - "Croatian": [ - "a", - "i", - "o", - "e", - "n", - "r", - "j", - "s", - "t", - "u", - "k", - "l", - "v", - "d", - "m", - "p", - "g", - "z", - "b", - "c", - "č", - "h", - "š", - "ž", - "ć", - "f", - ], - "Hindi": [ - "क", - "र", - "स", - "न", - "त", - "म", - "ह", - "प", - "य", - "ल", - "व", - "ज", - "द", - "ग", - "ब", - "श", - "ट", - "अ", - "ए", - "थ", - "भ", - "ड", - "च", - "ध", - "ष", - "इ", - ], - "Estonian": [ - "a", - "i", - "e", - "s", - "t", - "l", - "u", - "n", - "o", - "k", - "r", - "d", - "m", - "v", - "g", - "p", - "j", - "h", - "ä", - "b", - "õ", - "ü", - "f", - "c", - "ö", - "y", - ], - "Thai": [ - "า", - "น", - "ร", - "อ", - "ก", - "เ", - "ง", - "ม", - "ย", - "ล", - "ว", - "ด", - "ท", - "ส", - "ต", - "ะ", - "ป", - "บ", - "ค", - "ห", - "แ", - "จ", - "พ", - "ช", - "ข", - "ใ", - ], - "Greek": [ - "α", - "τ", - "ο", - "ι", - "ε", - "ν", - "ρ", - "σ", - "κ", - "η", - "π", - "ς", - "υ", - "μ", - "λ", - "ί", - "ό", - "ά", - "γ", - "έ", - "δ", - "ή", - "ω", - "χ", - "θ", - "ύ", - ], - "Tamil": [ - "க", - "த", - "ப", - "ட", - "ர", - "ம", - "ல", - "ன", - "வ", - "ற", - "ய", - "ள", - "ச", - "ந", - "இ", - "ண", - "அ", - "ஆ", - "ழ", - "ங", - "எ", - "உ", - "ஒ", - "ஸ", - ], - "Kazakh": [ - "а", - "ы", - "е", - "н", - "т", - "р", - "л", - "і", - "д", - "с", - "м", - "қ", - "к", - "о", - "б", - "и", - "у", - "ғ", - "ж", - "ң", - "з", - "ш", - "й", - "п", - "г", - "ө", - ], -} - -LANGUAGE_SUPPORTED_COUNT: int = len(FREQUENCIES) - -# Bit flags for unified character classification. -# A single unicodedata.name() call sets all relevant flags at once. -_LATIN: int = 1 -_ACCENTUATED: int = 1 << 1 -_CJK: int = 1 << 2 -_HANGUL: int = 1 << 3 -_KATAKANA: int = 1 << 4 -_HIRAGANA: int = 1 << 5 -_THAI: int = 1 << 6 -_ARABIC: int = 1 << 7 -_ARABIC_ISOLATED_FORM: int = 1 << 8 - -_ACCENT_KEYWORDS: tuple[str, ...] = ( - "WITH GRAVE", - "WITH ACUTE", - "WITH CEDILLA", - "WITH DIAERESIS", - "WITH CIRCUMFLEX", - "WITH TILDE", - "WITH MACRON", - "WITH RING ABOVE", -) - -# Pre-built lookup structures for FREQUENCIES (computed once at import time). -# character -> rank mapping per language (replaces list .index() calls). -_FREQUENCIES_RANK: dict[str, dict[str, int]] = { - lang: {char: rank for rank, char in enumerate(chars)} - for lang, chars in FREQUENCIES.items() -} - -# frozenset per language (avoids rebuilding set() per call). -_FREQUENCIES_SET: dict[str, frozenset[str]] = { - lang: frozenset(chars) for lang, chars in FREQUENCIES.items() -} diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/legacy.py b/.venv/lib/python3.9/site-packages/charset_normalizer/legacy.py deleted file mode 100644 index 293c1ef..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/legacy.py +++ /dev/null @@ -1,79 +0,0 @@ -from __future__ import annotations - -from typing import TYPE_CHECKING, Any -from warnings import warn - -from .api import from_bytes -from .constant import CHARDET_CORRESPONDENCE, TOO_SMALL_SEQUENCE - -if TYPE_CHECKING: - from typing import TypedDict - - class ResultDict(TypedDict): - encoding: str | None - language: str - confidence: float | None - - -def detect( - byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any -) -> ResultDict: - """ - chardet legacy method - Detect the encoding of the given byte string. It should be mostly backward-compatible. - Encoding name will match Chardet own writing whenever possible. (Not on encoding name unsupported by it) - This function is deprecated and should be used to migrate your project easily, consult the documentation for - further information. Not planned for removal. - - :param byte_str: The byte sequence to examine. - :param should_rename_legacy: Should we rename legacy encodings - to their more modern equivalents? - """ - if len(kwargs): - warn( - f"charset-normalizer disregard arguments '{','.join(list(kwargs.keys()))}' in legacy function detect()" - ) - - if not isinstance(byte_str, (bytearray, bytes)): - raise TypeError( # pragma: nocover - f"Expected object of type bytes or bytearray, got: {type(byte_str)}" - ) - - if isinstance(byte_str, bytearray): - byte_str = bytes(byte_str) - - r = from_bytes(byte_str).best() - - encoding = r.encoding if r is not None else None - language = r.language if r is not None and r.language != "Unknown" else "" - confidence = 1.0 - r.chaos if r is not None else None - - # automatically lower confidence - # on small bytes samples. - # https://github.com/jawah/charset_normalizer/issues/391 - if ( - confidence is not None - and confidence >= 0.9 - and encoding - not in { - "utf_8", - "ascii", - } - and r.bom is False # type: ignore[union-attr] - and len(byte_str) < TOO_SMALL_SEQUENCE - ): - confidence -= 0.2 - - # Note: CharsetNormalizer does not return 'UTF-8-SIG' as the sig get stripped in the detection/normalization process - # but chardet does return 'utf-8-sig' and it is a valid codec name. - if r is not None and encoding == "utf_8" and r.bom: - encoding += "_sig" - - if should_rename_legacy is False and encoding in CHARDET_CORRESPONDENCE: - encoding = CHARDET_CORRESPONDENCE[encoding] - - return { - "encoding": encoding, - "language": language, - "confidence": confidence, - } diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/md.cpython-39-x86_64-linux-gnu.so b/.venv/lib/python3.9/site-packages/charset_normalizer/md.cpython-39-x86_64-linux-gnu.so deleted file mode 100755 index 55128423488bd10dd78bfc64fe4666fba8a146a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15912 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 diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/md.py b/.venv/lib/python3.9/site-packages/charset_normalizer/md.py deleted file mode 100644 index b41d9cf..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/md.py +++ /dev/null @@ -1,936 +0,0 @@ -from __future__ import annotations - -import sys -from functools import lru_cache -from logging import getLogger - -if sys.version_info >= (3, 8): - from typing import final -else: - try: - from typing_extensions import final - except ImportError: - - def final(cls): # type: ignore[misc,no-untyped-def] - return cls - - -from .constant import ( - COMMON_CJK_CHARACTERS, - COMMON_SAFE_ASCII_CHARACTERS, - TRACE, - UNICODE_SECONDARY_RANGE_KEYWORD, - _ACCENTUATED, - _ARABIC, - _ARABIC_ISOLATED_FORM, - _CJK, - _HANGUL, - _HIRAGANA, - _KATAKANA, - _LATIN, - _THAI, -) -from .utils import ( - _character_flags, - is_emoticon, - is_punctuation, - is_separator, - is_symbol, - remove_accent, - unicode_range, -) - -# Combined bitmask for CJK/Hangul/Katakana/Hiragana/Thai glyph detection. -_GLYPH_MASK: int = _CJK | _HANGUL | _KATAKANA | _HIRAGANA | _THAI - - -@final -class CharInfo: - """Pre-computed character properties shared across all detectors. - - Instantiated once and reused via :meth:`update` on every character - in the hot loop so that redundant calls to str methods - (``isalpha``, ``isupper``, …) and cached utility functions - (``_character_flags``, ``is_punctuation``, …) are avoided when - several plugins need the same information. - """ - - __slots__ = ( - "character", - "printable", - "alpha", - "upper", - "lower", - "space", - "digit", - "is_ascii", - "case_variable", - "flags", - "accentuated", - "latin", - "is_cjk", - "is_arabic", - "is_glyph", - "punct", - "sym", - ) - - def __init__(self) -> None: - self.character: str = "" - self.printable: bool = False - self.alpha: bool = False - self.upper: bool = False - self.lower: bool = False - self.space: bool = False - self.digit: bool = False - self.is_ascii: bool = False - self.case_variable: bool = False - self.flags: int = 0 - self.accentuated: bool = False - self.latin: bool = False - self.is_cjk: bool = False - self.is_arabic: bool = False - self.is_glyph: bool = False - self.punct: bool = False - self.sym: bool = False - - def update(self, character: str) -> None: - """Update all properties for *character* (called once per character).""" - self.character = character - - # ASCII fast-path: for characters with ord < 128, we can skip - # _character_flags() entirely and derive most properties from ord. - o: int = ord(character) - if o < 128: - self.is_ascii = True - self.accentuated = False - self.is_cjk = False - self.is_arabic = False - self.is_glyph = False - # ASCII alpha: a-z (97-122) or A-Z (65-90) - if 65 <= o <= 90: - # Uppercase ASCII letter - self.alpha = True - self.upper = True - self.lower = False - self.space = False - self.digit = False - self.printable = True - self.case_variable = True - self.flags = _LATIN - self.latin = True - self.punct = False - self.sym = False - elif 97 <= o <= 122: - # Lowercase ASCII letter - self.alpha = True - self.upper = False - self.lower = True - self.space = False - self.digit = False - self.printable = True - self.case_variable = True - self.flags = _LATIN - self.latin = True - self.punct = False - self.sym = False - elif 48 <= o <= 57: - # ASCII digit 0-9 - self.alpha = False - self.upper = False - self.lower = False - self.space = False - self.digit = True - self.printable = True - self.case_variable = False - self.flags = 0 - self.latin = False - self.punct = False - self.sym = False - elif o == 32 or (9 <= o <= 13): - # Space, tab, newline, etc. - self.alpha = False - self.upper = False - self.lower = False - self.space = True - self.digit = False - self.printable = o == 32 - self.case_variable = False - self.flags = 0 - self.latin = False - self.punct = False - self.sym = False - else: - # Other ASCII (punctuation, symbols, control chars) - self.printable = character.isprintable() - self.alpha = False - self.upper = False - self.lower = False - self.space = False - self.digit = False - self.case_variable = False - self.flags = 0 - self.latin = False - self.punct = is_punctuation(character) if self.printable else False - self.sym = is_symbol(character) if self.printable else False - else: - # Non-ASCII path - self.is_ascii = False - self.printable = character.isprintable() - self.alpha = character.isalpha() - self.upper = character.isupper() - self.lower = character.islower() - self.space = character.isspace() - self.digit = character.isdigit() - self.case_variable = self.lower != self.upper - - # Flag-based classification (single unicodedata.name() call, lru-cached) - flags: int - if self.alpha: - flags = _character_flags(character) - else: - flags = 0 - self.flags = flags - self.accentuated = bool(flags & _ACCENTUATED) - self.latin = bool(flags & _LATIN) - self.is_cjk = bool(flags & _CJK) - self.is_arabic = bool(flags & _ARABIC) - self.is_glyph = bool(flags & _GLYPH_MASK) - - # Eagerly compute punct and sym (avoids property dispatch overhead - # on 300K+ accesses in the hot loop). - self.punct = is_punctuation(character) if self.printable else False - self.sym = is_symbol(character) if self.printable else False - - -class MessDetectorPlugin: - """ - Base abstract class used for mess detection plugins. - All detectors MUST extend and implement given methods. - """ - - __slots__ = () - - def feed_info(self, character: str, info: CharInfo) -> None: - """ - The main routine to be executed upon character. - Insert the logic in witch the text would be considered chaotic. - """ - raise NotImplementedError # Defensive: - - def reset(self) -> None: # Defensive: - """ - Permit to reset the plugin to the initial state. - """ - raise NotImplementedError - - @property - def ratio(self) -> float: - """ - Compute the chaos ratio based on what your feed() has seen. - Must NOT be lower than 0.; No restriction gt 0. - """ - raise NotImplementedError # Defensive: - - -@final -class TooManySymbolOrPunctuationPlugin(MessDetectorPlugin): - __slots__ = ( - "_punctuation_count", - "_symbol_count", - "_character_count", - "_last_printable_char", - "_frenzy_symbol_in_word", - ) - - def __init__(self) -> None: - self._punctuation_count: int = 0 - self._symbol_count: int = 0 - self._character_count: int = 0 - - self._last_printable_char: str | None = None - self._frenzy_symbol_in_word: bool = False - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if ( - character != self._last_printable_char - and character not in COMMON_SAFE_ASCII_CHARACTERS - ): - if info.punct: - self._punctuation_count += 1 - elif not info.digit and info.sym and not is_emoticon(character): - self._symbol_count += 2 - - self._last_printable_char = character - - def reset(self) -> None: # Abstract - self._punctuation_count = 0 - self._character_count = 0 - self._symbol_count = 0 - - @property - def ratio(self) -> float: - if self._character_count == 0: - return 0.0 - - ratio_of_punctuation: float = ( - self._punctuation_count + self._symbol_count - ) / self._character_count - - return ratio_of_punctuation if ratio_of_punctuation >= 0.3 else 0.0 - - -@final -class TooManyAccentuatedPlugin(MessDetectorPlugin): - __slots__ = ("_character_count", "_accentuated_count") - - def __init__(self) -> None: - self._character_count: int = 0 - self._accentuated_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if info.accentuated: - self._accentuated_count += 1 - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._accentuated_count = 0 - - @property - def ratio(self) -> float: - if self._character_count < 8: - return 0.0 - - ratio_of_accentuation: float = self._accentuated_count / self._character_count - return ratio_of_accentuation if ratio_of_accentuation >= 0.35 else 0.0 - - -@final -class UnprintablePlugin(MessDetectorPlugin): - __slots__ = ("_unprintable_count", "_character_count") - - def __init__(self) -> None: - self._unprintable_count: int = 0 - self._character_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - if ( - not info.space - and not info.printable - and character != "\x1a" - and character != "\ufeff" - ): - self._unprintable_count += 1 - self._character_count += 1 - - def reset(self) -> None: # Abstract - self._unprintable_count = 0 - - @property - def ratio(self) -> float: - if self._character_count == 0: # Defensive: - return 0.0 - - return (self._unprintable_count * 8) / self._character_count - - -@final -class SuspiciousDuplicateAccentPlugin(MessDetectorPlugin): - __slots__ = ( - "_successive_count", - "_character_count", - "_last_latin_character", - "_last_was_accentuated", - ) - - def __init__(self) -> None: - self._successive_count: int = 0 - self._character_count: int = 0 - - self._last_latin_character: str | None = None - self._last_was_accentuated: bool = False - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - if ( - self._last_latin_character is not None - and info.accentuated - and self._last_was_accentuated - ): - if info.upper and self._last_latin_character.isupper(): - self._successive_count += 1 - if remove_accent(character) == remove_accent(self._last_latin_character): - self._successive_count += 1 - self._last_latin_character = character - self._last_was_accentuated = info.accentuated - - def reset(self) -> None: # Abstract - self._successive_count = 0 - self._character_count = 0 - self._last_latin_character = None - self._last_was_accentuated = False - - @property - def ratio(self) -> float: - if self._character_count == 0: - return 0.0 - - return (self._successive_count * 2) / self._character_count - - -@final -class SuspiciousRange(MessDetectorPlugin): - __slots__ = ( - "_suspicious_successive_range_count", - "_character_count", - "_last_printable_seen", - "_last_printable_range", - ) - - def __init__(self) -> None: - self._suspicious_successive_range_count: int = 0 - self._character_count: int = 0 - self._last_printable_seen: str | None = None - self._last_printable_range: str | None = None - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if info.space or info.punct or character in COMMON_SAFE_ASCII_CHARACTERS: - self._last_printable_seen = None - self._last_printable_range = None - return - - if self._last_printable_seen is None: - self._last_printable_seen = character - self._last_printable_range = unicode_range(character) - return - - unicode_range_a: str | None = self._last_printable_range - unicode_range_b: str | None = unicode_range(character) - - if is_suspiciously_successive_range(unicode_range_a, unicode_range_b): - self._suspicious_successive_range_count += 1 - - self._last_printable_seen = character - self._last_printable_range = unicode_range_b - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._suspicious_successive_range_count = 0 - self._last_printable_seen = None - self._last_printable_range = None - - @property - def ratio(self) -> float: - if self._character_count <= 13: - return 0.0 - - ratio_of_suspicious_range_usage: float = ( - self._suspicious_successive_range_count * 2 - ) / self._character_count - - return ratio_of_suspicious_range_usage - - -@final -class SuperWeirdWordPlugin(MessDetectorPlugin): - __slots__ = ( - "_word_count", - "_bad_word_count", - "_foreign_long_count", - "_is_current_word_bad", - "_foreign_long_watch", - "_character_count", - "_bad_character_count", - "_buffer_length", - "_buffer_last_char", - "_buffer_last_char_accentuated", - "_buffer_accent_count", - "_buffer_glyph_count", - "_buffer_upper_count", - ) - - def __init__(self) -> None: - self._word_count: int = 0 - self._bad_word_count: int = 0 - self._foreign_long_count: int = 0 - - self._is_current_word_bad: bool = False - self._foreign_long_watch: bool = False - - self._character_count: int = 0 - self._bad_character_count: int = 0 - - self._buffer_length: int = 0 - self._buffer_last_char: str | None = None - self._buffer_last_char_accentuated: bool = False - self._buffer_accent_count: int = 0 - self._buffer_glyph_count: int = 0 - self._buffer_upper_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - if info.alpha: - self._buffer_length += 1 - self._buffer_last_char = character - - if info.upper: - self._buffer_upper_count += 1 - - self._buffer_last_char_accentuated = info.accentuated - - if info.accentuated: - self._buffer_accent_count += 1 - if ( - not self._foreign_long_watch - and (not info.latin or info.accentuated) - and not info.is_glyph - ): - self._foreign_long_watch = True - if info.is_glyph: - self._buffer_glyph_count += 1 - return - if not self._buffer_length: - return - if info.space or info.punct or is_separator(character): - self._word_count += 1 - buffer_length: int = self._buffer_length - - self._character_count += buffer_length - - if buffer_length >= 4: - if self._buffer_accent_count / buffer_length >= 0.5: - self._is_current_word_bad = True - elif ( - self._buffer_last_char_accentuated - and self._buffer_last_char.isupper() # type: ignore[union-attr] - and self._buffer_upper_count != buffer_length - ): - self._foreign_long_count += 1 - self._is_current_word_bad = True - elif self._buffer_glyph_count == 1: - self._is_current_word_bad = True - self._foreign_long_count += 1 - if buffer_length >= 24 and self._foreign_long_watch: - probable_camel_cased: bool = ( - self._buffer_upper_count > 0 - and self._buffer_upper_count / buffer_length <= 0.3 - ) - - if not probable_camel_cased: - self._foreign_long_count += 1 - self._is_current_word_bad = True - - if self._is_current_word_bad: - self._bad_word_count += 1 - self._bad_character_count += buffer_length - self._is_current_word_bad = False - - self._foreign_long_watch = False - self._buffer_length = 0 - self._buffer_last_char = None - self._buffer_last_char_accentuated = False - self._buffer_accent_count = 0 - self._buffer_glyph_count = 0 - self._buffer_upper_count = 0 - elif ( - character not in {"<", ">", "-", "=", "~", "|", "_"} - and not info.digit - and info.sym - ): - self._is_current_word_bad = True - self._buffer_length += 1 - self._buffer_last_char = character - self._buffer_last_char_accentuated = False - - def reset(self) -> None: # Abstract - self._buffer_length = 0 - self._buffer_last_char = None - self._buffer_last_char_accentuated = False - self._is_current_word_bad = False - self._foreign_long_watch = False - self._bad_word_count = 0 - self._word_count = 0 - self._character_count = 0 - self._bad_character_count = 0 - self._foreign_long_count = 0 - self._buffer_accent_count = 0 - self._buffer_glyph_count = 0 - self._buffer_upper_count = 0 - - @property - def ratio(self) -> float: - if self._word_count <= 10 and self._foreign_long_count == 0: - return 0.0 - - return self._bad_character_count / self._character_count - - -@final -class CjkUncommonPlugin(MessDetectorPlugin): - """ - Detect messy CJK text that probably means nothing. - """ - - __slots__ = ("_character_count", "_uncommon_count") - - def __init__(self) -> None: - self._character_count: int = 0 - self._uncommon_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if character not in COMMON_CJK_CHARACTERS: - self._uncommon_count += 1 - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._uncommon_count = 0 - - @property - def ratio(self) -> float: - if self._character_count < 8: - return 0.0 - - uncommon_form_usage: float = self._uncommon_count / self._character_count - - # we can be pretty sure it's garbage when uncommon characters are widely - # used. otherwise it could just be traditional chinese for example. - return uncommon_form_usage / 10 if uncommon_form_usage > 0.5 else 0.0 - - -@final -class ArchaicUpperLowerPlugin(MessDetectorPlugin): - __slots__ = ( - "_buf", - "_character_count_since_last_sep", - "_successive_upper_lower_count", - "_successive_upper_lower_count_final", - "_character_count", - "_last_alpha_seen", - "_last_alpha_seen_upper", - "_last_alpha_seen_lower", - "_current_ascii_only", - ) - - def __init__(self) -> None: - self._buf: bool = False - - self._character_count_since_last_sep: int = 0 - - self._successive_upper_lower_count: int = 0 - self._successive_upper_lower_count_final: int = 0 - - self._character_count: int = 0 - - self._last_alpha_seen: str | None = None - self._last_alpha_seen_upper: bool = False - self._last_alpha_seen_lower: bool = False - self._current_ascii_only: bool = True - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - is_concerned: bool = info.alpha and info.case_variable - chunk_sep: bool = not is_concerned - - if chunk_sep and self._character_count_since_last_sep > 0: - if ( - self._character_count_since_last_sep <= 64 - and not info.digit - and not self._current_ascii_only - ): - self._successive_upper_lower_count_final += ( - self._successive_upper_lower_count - ) - - self._successive_upper_lower_count = 0 - self._character_count_since_last_sep = 0 - self._last_alpha_seen = None - self._buf = False - self._character_count += 1 - self._current_ascii_only = True - - return - - if self._current_ascii_only and not info.is_ascii: - self._current_ascii_only = False - - if self._last_alpha_seen is not None: - if (info.upper and self._last_alpha_seen_lower) or ( - info.lower and self._last_alpha_seen_upper - ): - if self._buf: - self._successive_upper_lower_count += 2 - self._buf = False - else: - self._buf = True - else: - self._buf = False - - self._character_count += 1 - self._character_count_since_last_sep += 1 - self._last_alpha_seen = character - self._last_alpha_seen_upper = info.upper - self._last_alpha_seen_lower = info.lower - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._character_count_since_last_sep = 0 - self._successive_upper_lower_count = 0 - self._successive_upper_lower_count_final = 0 - self._last_alpha_seen = None - self._last_alpha_seen_upper = False - self._last_alpha_seen_lower = False - self._buf = False - self._current_ascii_only = True - - @property - def ratio(self) -> float: - if self._character_count == 0: # Defensive: - return 0.0 - - return self._successive_upper_lower_count_final / self._character_count - - -@final -class ArabicIsolatedFormPlugin(MessDetectorPlugin): - __slots__ = ("_character_count", "_isolated_form_count") - - def __init__(self) -> None: - self._character_count: int = 0 - self._isolated_form_count: int = 0 - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._isolated_form_count = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if info.flags & _ARABIC_ISOLATED_FORM: - self._isolated_form_count += 1 - - @property - def ratio(self) -> float: - if self._character_count < 8: - return 0.0 - - isolated_form_usage: float = self._isolated_form_count / self._character_count - - return isolated_form_usage - - -@lru_cache(maxsize=1024) -def is_suspiciously_successive_range( - unicode_range_a: str | None, unicode_range_b: str | None -) -> bool: - """ - Determine if two Unicode range seen next to each other can be considered as suspicious. - """ - if unicode_range_a is None or unicode_range_b is None: - return True - - if unicode_range_a == unicode_range_b: - return False - - if "Latin" in unicode_range_a and "Latin" in unicode_range_b: - return False - - if "Emoticons" in unicode_range_a or "Emoticons" in unicode_range_b: - return False - - # Latin characters can be accompanied with a combining diacritical mark - # eg. Vietnamese. - if ("Latin" in unicode_range_a or "Latin" in unicode_range_b) and ( - "Combining" in unicode_range_a or "Combining" in unicode_range_b - ): - return False - - keywords_range_a, keywords_range_b = ( - unicode_range_a.split(" "), - unicode_range_b.split(" "), - ) - - for el in keywords_range_a: - if el in UNICODE_SECONDARY_RANGE_KEYWORD: - continue - if el in keywords_range_b: - return False - - # Japanese Exception - range_a_jp_chars, range_b_jp_chars = ( - unicode_range_a - in ( - "Hiragana", - "Katakana", - ), - unicode_range_b in ("Hiragana", "Katakana"), - ) - if (range_a_jp_chars or range_b_jp_chars) and ( - "CJK" in unicode_range_a or "CJK" in unicode_range_b - ): - return False - if range_a_jp_chars and range_b_jp_chars: - return False - - if "Hangul" in unicode_range_a or "Hangul" in unicode_range_b: - if "CJK" in unicode_range_a or "CJK" in unicode_range_b: - return False - if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": - return False - - # Chinese/Japanese use dedicated range for punctuation and/or separators. - if ("CJK" in unicode_range_a or "CJK" in unicode_range_b) or ( - unicode_range_a in ["Katakana", "Hiragana"] - and unicode_range_b in ["Katakana", "Hiragana"] - ): - if "Punctuation" in unicode_range_a or "Punctuation" in unicode_range_b: - return False - if "Forms" in unicode_range_a or "Forms" in unicode_range_b: - return False - if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": - return False - - return True - - -@lru_cache(maxsize=2048) -def mess_ratio( - decoded_sequence: str, maximum_threshold: float = 0.2, debug: bool = False -) -> float: - """ - Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier. - """ - - seq_len: int = len(decoded_sequence) - - if seq_len < 511: - step: int = 32 - elif seq_len < 1024: - step = 64 - else: - step = 128 - - # Create each detector as a named local variable (unrolled from the generic loop). - # This eliminates per-character iteration over the detector list and - # per-character eligible() virtual dispatch, while keeping every plugin class - # intact and fully readable. - d_sp: TooManySymbolOrPunctuationPlugin = TooManySymbolOrPunctuationPlugin() - d_ta: TooManyAccentuatedPlugin = TooManyAccentuatedPlugin() - d_up: UnprintablePlugin = UnprintablePlugin() - d_sda: SuspiciousDuplicateAccentPlugin = SuspiciousDuplicateAccentPlugin() - d_sr: SuspiciousRange = SuspiciousRange() - d_sw: SuperWeirdWordPlugin = SuperWeirdWordPlugin() - d_cu: CjkUncommonPlugin = CjkUncommonPlugin() - d_au: ArchaicUpperLowerPlugin = ArchaicUpperLowerPlugin() - d_ai: ArabicIsolatedFormPlugin = ArabicIsolatedFormPlugin() - - # Local references for feed_info methods called in the hot loop. - d_sp_feed = d_sp.feed_info - d_ta_feed = d_ta.feed_info - d_up_feed = d_up.feed_info - d_sda_feed = d_sda.feed_info - d_sr_feed = d_sr.feed_info - d_sw_feed = d_sw.feed_info - d_cu_feed = d_cu.feed_info - d_au_feed = d_au.feed_info - d_ai_feed = d_ai.feed_info - - # Single reusable CharInfo object (avoids per-character allocation). - info: CharInfo = CharInfo() - info_update = info.update - - mean_mess_ratio: float - - for block_start in range(0, seq_len, step): - for character in decoded_sequence[block_start : block_start + step]: - # Pre-compute all character properties once (shared across all plugins). - info_update(character) - - # Detectors with eligible() == always True - d_up_feed(character, info) - d_sw_feed(character, info) - d_au_feed(character, info) - - # Detectors with eligible() == isprintable - if info.printable: - d_sp_feed(character, info) - d_sr_feed(character, info) - - # Detectors with eligible() == isalpha - if info.alpha: - d_ta_feed(character, info) - # SuspiciousDuplicateAccent: isalpha() and is_latin() - if info.latin: - d_sda_feed(character, info) - # CjkUncommon: is_cjk() - if info.is_cjk: - d_cu_feed(character, info) - # ArabicIsolatedForm: is_arabic() - if info.is_arabic: - d_ai_feed(character, info) - - mean_mess_ratio = ( - d_sp.ratio - + d_ta.ratio - + d_up.ratio - + d_sda.ratio - + d_sr.ratio - + d_sw.ratio - + d_cu.ratio - + d_au.ratio - + d_ai.ratio - ) - - if mean_mess_ratio >= maximum_threshold: - break - else: - # Flush last word buffer in SuperWeirdWordPlugin via trailing newline. - info_update("\n") - d_sw_feed("\n", info) - d_au_feed("\n", info) - d_up_feed("\n", info) - - mean_mess_ratio = ( - d_sp.ratio - + d_ta.ratio - + d_up.ratio - + d_sda.ratio - + d_sr.ratio - + d_sw.ratio - + d_cu.ratio - + d_au.ratio - + d_ai.ratio - ) - - if debug: # Defensive: - logger = getLogger("charset_normalizer") - - logger.log( - TRACE, - "Mess-detector extended-analysis start. " - f"intermediary_mean_mess_ratio_calc={step} mean_mess_ratio={mean_mess_ratio} " - f"maximum_threshold={maximum_threshold}", - ) - - if seq_len > 16: - logger.log(TRACE, f"Starting with: {decoded_sequence[:16]}") - logger.log(TRACE, f"Ending with: {decoded_sequence[-16::]}") - - for dt in [d_sp, d_ta, d_up, d_sda, d_sr, d_sw, d_cu, d_au, d_ai]: - logger.log(TRACE, f"{dt.__class__}: {dt.ratio}") - - return round(mean_mess_ratio, 3) diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/models.py b/.venv/lib/python3.9/site-packages/charset_normalizer/models.py deleted file mode 100644 index 382de15..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/models.py +++ /dev/null @@ -1,369 +0,0 @@ -from __future__ import annotations - -from encodings.aliases import aliases -from json import dumps -from re import sub -from typing import Any, Iterator, List, Tuple - -from .constant import RE_POSSIBLE_ENCODING_INDICATION, TOO_BIG_SEQUENCE -from .utils import iana_name, is_multi_byte_encoding, unicode_range - - -class CharsetMatch: - def __init__( - self, - payload: bytes | bytearray, - guessed_encoding: str, - mean_mess_ratio: float, - has_sig_or_bom: bool, - languages: CoherenceMatches, - decoded_payload: str | None = None, - preemptive_declaration: str | None = None, - ): - self._payload: bytes | bytearray = payload - - self._encoding: str = guessed_encoding - self._mean_mess_ratio: float = mean_mess_ratio - self._languages: CoherenceMatches = languages - self._has_sig_or_bom: bool = has_sig_or_bom - self._unicode_ranges: list[str] | None = None - - self._leaves: list[CharsetMatch] = [] - self._mean_coherence_ratio: float = 0.0 - - self._output_payload: bytes | None = None - self._output_encoding: str | None = None - - self._string: str | None = decoded_payload - - self._preemptive_declaration: str | None = preemptive_declaration - - def __eq__(self, other: object) -> bool: - if not isinstance(other, CharsetMatch): - if isinstance(other, str): - return iana_name(other) == self.encoding - return False - return self.encoding == other.encoding and self.fingerprint == other.fingerprint - - def __lt__(self, other: object) -> bool: - """ - Implemented to make sorted available upon CharsetMatches items. - """ - if not isinstance(other, CharsetMatch): - raise ValueError - - chaos_difference: float = abs(self.chaos - other.chaos) - coherence_difference: float = abs(self.coherence - other.coherence) - - # Below 0.5% difference --> Use Coherence - if chaos_difference < 0.005 and coherence_difference > 0.02: - return self.coherence > other.coherence - elif chaos_difference < 0.005 and coherence_difference <= 0.02: - # When having a difficult decision, use the result that decoded as many multi-byte as possible. - # preserve RAM usage! - if len(self._payload) >= TOO_BIG_SEQUENCE: - return self.chaos < other.chaos - return self.multi_byte_usage > other.multi_byte_usage - - return self.chaos < other.chaos - - @property - def multi_byte_usage(self) -> float: - return 1.0 - (len(str(self)) / len(self.raw)) - - def __str__(self) -> str: - # Lazy Str Loading - if self._string is None: - self._string = str(self._payload, self._encoding, "strict") - # UTF-7 BOM is encoded in modified Base64 whose byte boundary - # can overlap with the next character, so raw-byte stripping - # is unreliable. Strip the decoded BOM character instead. - if ( - self._has_sig_or_bom - and self._encoding == "utf_7" - and self._string - and self._string[0] == "\ufeff" - ): - self._string = self._string[1:] - return self._string - - def __repr__(self) -> str: - return f"" - - def add_submatch(self, other: CharsetMatch) -> None: - if not isinstance(other, CharsetMatch) or other == self: - raise ValueError( - "Unable to add instance <{}> as a submatch of a CharsetMatch".format( - other.__class__ - ) - ) - - other._string = None # Unload RAM usage; dirty trick. - self._leaves.append(other) - - @property - def encoding(self) -> str: - return self._encoding - - @property - def encoding_aliases(self) -> list[str]: - """ - Encoding name are known by many name, using this could help when searching for IBM855 when it's listed as CP855. - """ - also_known_as: list[str] = [] - for u, p in aliases.items(): - if self.encoding == u: - also_known_as.append(p) - elif self.encoding == p: - also_known_as.append(u) - return also_known_as - - @property - def bom(self) -> bool: - return self._has_sig_or_bom - - @property - def byte_order_mark(self) -> bool: - return self._has_sig_or_bom - - @property - def languages(self) -> list[str]: - """ - Return the complete list of possible languages found in decoded sequence. - Usually not really useful. Returned list may be empty even if 'language' property return something != 'Unknown'. - """ - return [e[0] for e in self._languages] - - @property - def language(self) -> str: - """ - Most probable language found in decoded sequence. If none were detected or inferred, the property will return - "Unknown". - """ - if not self._languages: - # Trying to infer the language based on the given encoding - # Its either English or we should not pronounce ourselves in certain cases. - if "ascii" in self.could_be_from_charset: - return "English" - - # doing it there to avoid circular import - from charset_normalizer.cd import encoding_languages, mb_encoding_languages - - languages = ( - mb_encoding_languages(self.encoding) - if is_multi_byte_encoding(self.encoding) - else encoding_languages(self.encoding) - ) - - if len(languages) == 0 or "Latin Based" in languages: - return "Unknown" - - return languages[0] - - return self._languages[0][0] - - @property - def chaos(self) -> float: - return self._mean_mess_ratio - - @property - def coherence(self) -> float: - if not self._languages: - return 0.0 - return self._languages[0][1] - - @property - def percent_chaos(self) -> float: - return round(self.chaos * 100, ndigits=3) - - @property - def percent_coherence(self) -> float: - return round(self.coherence * 100, ndigits=3) - - @property - def raw(self) -> bytes | bytearray: - """ - Original untouched bytes. - """ - return self._payload - - @property - def submatch(self) -> list[CharsetMatch]: - return self._leaves - - @property - def has_submatch(self) -> bool: - return len(self._leaves) > 0 - - @property - def alphabets(self) -> list[str]: - if self._unicode_ranges is not None: - return self._unicode_ranges - # list detected ranges - detected_ranges: list[str | None] = [unicode_range(char) for char in str(self)] - # filter and sort - self._unicode_ranges = sorted(list({r for r in detected_ranges if r})) - return self._unicode_ranges - - @property - def could_be_from_charset(self) -> list[str]: - """ - The complete list of encoding that output the exact SAME str result and therefore could be the originating - encoding. - This list does include the encoding available in property 'encoding'. - """ - return [self._encoding] + [m.encoding for m in self._leaves] - - def output(self, encoding: str = "utf_8") -> bytes: - """ - Method to get re-encoded bytes payload using given target encoding. Default to UTF-8. - Any errors will be simply ignored by the encoder NOT replaced. - """ - if self._output_encoding is None or self._output_encoding != encoding: - self._output_encoding = encoding - decoded_string = str(self) - if ( - self._preemptive_declaration is not None - and self._preemptive_declaration.lower() - not in ["utf-8", "utf8", "utf_8"] - ): - patched_header = sub( - RE_POSSIBLE_ENCODING_INDICATION, - lambda m: m.string[m.span()[0] : m.span()[1]].replace( - m.groups()[0], - iana_name(self._output_encoding).replace("_", "-"), # type: ignore[arg-type] - ), - decoded_string[:8192], - count=1, - ) - - decoded_string = patched_header + decoded_string[8192:] - - self._output_payload = decoded_string.encode(encoding, "replace") - - return self._output_payload # type: ignore - - @property - def fingerprint(self) -> int: - """ - Retrieve a hash fingerprint of the decoded payload, used for deduplication. - """ - return hash(str(self)) - - -class CharsetMatches: - """ - Container with every CharsetMatch items ordered by default from most probable to the less one. - Act like a list(iterable) but does not implements all related methods. - """ - - def __init__(self, results: list[CharsetMatch] | None = None): - self._results: list[CharsetMatch] = sorted(results) if results else [] - - def __iter__(self) -> Iterator[CharsetMatch]: - yield from self._results - - def __getitem__(self, item: int | str) -> CharsetMatch: - """ - Retrieve a single item either by its position or encoding name (alias may be used here). - Raise KeyError upon invalid index or encoding not present in results. - """ - if isinstance(item, int): - return self._results[item] - if isinstance(item, str): - item = iana_name(item, False) - for result in self._results: - if item in result.could_be_from_charset: - return result - raise KeyError - - def __len__(self) -> int: - return len(self._results) - - def __bool__(self) -> bool: - return len(self._results) > 0 - - def append(self, item: CharsetMatch) -> None: - """ - Insert a single match. Will be inserted accordingly to preserve sort. - Can be inserted as a submatch. - """ - if not isinstance(item, CharsetMatch): - raise ValueError( - "Cannot append instance '{}' to CharsetMatches".format( - str(item.__class__) - ) - ) - # We should disable the submatch factoring when the input file is too heavy (conserve RAM usage) - if len(item.raw) < TOO_BIG_SEQUENCE: - for match in self._results: - if match.fingerprint == item.fingerprint and match.chaos == item.chaos: - match.add_submatch(item) - return - self._results.append(item) - self._results = sorted(self._results) - - def best(self) -> CharsetMatch | None: - """ - Simply return the first match. Strict equivalent to matches[0]. - """ - if not self._results: - return None - return self._results[0] - - def first(self) -> CharsetMatch | None: - """ - Redundant method, call the method best(). Kept for BC reasons. - """ - return self.best() - - -CoherenceMatch = Tuple[str, float] -CoherenceMatches = List[CoherenceMatch] - - -class CliDetectionResult: - def __init__( - self, - path: str, - encoding: str | None, - encoding_aliases: list[str], - alternative_encodings: list[str], - language: str, - alphabets: list[str], - has_sig_or_bom: bool, - chaos: float, - coherence: float, - unicode_path: str | None, - is_preferred: bool, - ): - self.path: str = path - self.unicode_path: str | None = unicode_path - self.encoding: str | None = encoding - self.encoding_aliases: list[str] = encoding_aliases - self.alternative_encodings: list[str] = alternative_encodings - self.language: str = language - self.alphabets: list[str] = alphabets - self.has_sig_or_bom: bool = has_sig_or_bom - self.chaos: float = chaos - self.coherence: float = coherence - self.is_preferred: bool = is_preferred - - @property - def __dict__(self) -> dict[str, Any]: # type: ignore - return { - "path": self.path, - "encoding": self.encoding, - "encoding_aliases": self.encoding_aliases, - "alternative_encodings": self.alternative_encodings, - "language": self.language, - "alphabets": self.alphabets, - "has_sig_or_bom": self.has_sig_or_bom, - "chaos": self.chaos, - "coherence": self.coherence, - "unicode_path": self.unicode_path, - "is_preferred": self.is_preferred, - } - - def to_json(self) -> str: - return dumps(self.__dict__, ensure_ascii=True, indent=4) diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/py.typed b/.venv/lib/python3.9/site-packages/charset_normalizer/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/utils.py b/.venv/lib/python3.9/site-packages/charset_normalizer/utils.py deleted file mode 100644 index 0f529b5..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/utils.py +++ /dev/null @@ -1,422 +0,0 @@ -from __future__ import annotations - -import importlib -import logging -import unicodedata -from bisect import bisect_right -from codecs import IncrementalDecoder -from encodings.aliases import aliases -from functools import lru_cache -from re import findall -from typing import Generator - -from _multibytecodec import ( # type: ignore[import-not-found,import] - MultibyteIncrementalDecoder, -) - -from .constant import ( - ENCODING_MARKS, - IANA_SUPPORTED_SIMILAR, - RE_POSSIBLE_ENCODING_INDICATION, - UNICODE_RANGES_COMBINED, - UNICODE_SECONDARY_RANGE_KEYWORD, - UTF8_MAXIMAL_ALLOCATION, - COMMON_CJK_CHARACTERS, - _LATIN, - _CJK, - _HANGUL, - _KATAKANA, - _HIRAGANA, - _THAI, - _ARABIC, - _ARABIC_ISOLATED_FORM, - _ACCENT_KEYWORDS, - _ACCENTUATED, -) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def _character_flags(character: str) -> int: - """Compute all name-based classification flags with a single unicodedata.name() call.""" - try: - desc: str = unicodedata.name(character) - except ValueError: - return 0 - - flags: int = 0 - - if "LATIN" in desc: - flags |= _LATIN - if "CJK" in desc: - flags |= _CJK - if "HANGUL" in desc: - flags |= _HANGUL - if "KATAKANA" in desc: - flags |= _KATAKANA - if "HIRAGANA" in desc: - flags |= _HIRAGANA - if "THAI" in desc: - flags |= _THAI - if "ARABIC" in desc: - flags |= _ARABIC - if "ISOLATED FORM" in desc: - flags |= _ARABIC_ISOLATED_FORM - - for kw in _ACCENT_KEYWORDS: - if kw in desc: - flags |= _ACCENTUATED - break - - return flags - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_accentuated(character: str) -> bool: - return bool(_character_flags(character) & _ACCENTUATED) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def remove_accent(character: str) -> str: - decomposed: str = unicodedata.decomposition(character) - if not decomposed: - return character - - codes: list[str] = decomposed.split(" ") - - return chr(int(codes[0], 16)) - - -# Pre-built sorted lookup table for O(log n) binary search in unicode_range(). -# Each entry is (range_start, range_end_exclusive, range_name). -_UNICODE_RANGES_SORTED: list[tuple[int, int, str]] = sorted( - (ord_range.start, ord_range.stop, name) - for name, ord_range in UNICODE_RANGES_COMBINED.items() -) -_UNICODE_RANGE_STARTS: list[int] = [e[0] for e in _UNICODE_RANGES_SORTED] - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def unicode_range(character: str) -> str | None: - """ - Retrieve the Unicode range official name from a single character. - """ - character_ord: int = ord(character) - - # Binary search: find the rightmost range whose start <= character_ord - idx = bisect_right(_UNICODE_RANGE_STARTS, character_ord) - 1 - if idx >= 0: - start, stop, name = _UNICODE_RANGES_SORTED[idx] - if character_ord < stop: - return name - - return None - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_latin(character: str) -> bool: - return bool(_character_flags(character) & _LATIN) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_punctuation(character: str) -> bool: - character_category: str = unicodedata.category(character) - - if "P" in character_category: - return True - - character_range: str | None = unicode_range(character) - - if character_range is None: - return False - - return "Punctuation" in character_range - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_symbol(character: str) -> bool: - character_category: str = unicodedata.category(character) - - if "S" in character_category or "N" in character_category: - return True - - character_range: str | None = unicode_range(character) - - if character_range is None: - return False - - return "Forms" in character_range and character_category != "Lo" - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_emoticon(character: str) -> bool: - character_range: str | None = unicode_range(character) - - if character_range is None: - return False - - return "Emoticons" in character_range or "Pictographs" in character_range - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_separator(character: str) -> bool: - if character.isspace() or character in {"|", "+", "<", ">"}: - return True - - character_category: str = unicodedata.category(character) - - return "Z" in character_category or character_category in {"Po", "Pd", "Pc"} - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_case_variable(character: str) -> bool: - return character.islower() != character.isupper() - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_cjk(character: str) -> bool: - return bool(_character_flags(character) & _CJK) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_hiragana(character: str) -> bool: - return bool(_character_flags(character) & _HIRAGANA) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_katakana(character: str) -> bool: - return bool(_character_flags(character) & _KATAKANA) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_hangul(character: str) -> bool: - return bool(_character_flags(character) & _HANGUL) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_thai(character: str) -> bool: - return bool(_character_flags(character) & _THAI) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_arabic(character: str) -> bool: - return bool(_character_flags(character) & _ARABIC) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_arabic_isolated_form(character: str) -> bool: - return bool(_character_flags(character) & _ARABIC_ISOLATED_FORM) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_cjk_uncommon(character: str) -> bool: - return character not in COMMON_CJK_CHARACTERS - - -@lru_cache(maxsize=len(UNICODE_RANGES_COMBINED)) -def is_unicode_range_secondary(range_name: str) -> bool: - return any(keyword in range_name for keyword in UNICODE_SECONDARY_RANGE_KEYWORD) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_unprintable(character: str) -> bool: - return ( - character.isspace() is False # includes \n \t \r \v - and character.isprintable() is False - and character != "\x1a" # Why? Its the ASCII substitute character. - and character != "\ufeff" # bug discovered in Python, - # Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space. - ) - - -def any_specified_encoding( - sequence: bytes | bytearray, search_zone: int = 8192 -) -> str | None: - """ - Extract using ASCII-only decoder any specified encoding in the first n-bytes. - """ - if not isinstance(sequence, (bytes, bytearray)): - raise TypeError - - seq_len: int = len(sequence) - - results: list[str] = findall( - RE_POSSIBLE_ENCODING_INDICATION, - sequence[: min(seq_len, search_zone)].decode("ascii", errors="ignore"), - ) - - if len(results) == 0: - return None - - for specified_encoding in results: - specified_encoding = specified_encoding.lower().replace("-", "_") - - encoding_alias: str - encoding_iana: str - - for encoding_alias, encoding_iana in aliases.items(): - if encoding_alias == specified_encoding: - return encoding_iana - if encoding_iana == specified_encoding: - return encoding_iana - - return None - - -@lru_cache(maxsize=128) -def is_multi_byte_encoding(name: str) -> bool: - """ - Verify is a specific encoding is a multi byte one based on it IANA name - """ - return name in { - "utf_8", - "utf_8_sig", - "utf_16", - "utf_16_be", - "utf_16_le", - "utf_32", - "utf_32_le", - "utf_32_be", - "utf_7", - } or issubclass( - importlib.import_module(f"encodings.{name}").IncrementalDecoder, - MultibyteIncrementalDecoder, - ) - - -def identify_sig_or_bom(sequence: bytes | bytearray) -> tuple[str | None, bytes]: - """ - Identify and extract SIG/BOM in given sequence. - """ - - for iana_encoding in ENCODING_MARKS: - marks: bytes | list[bytes] = ENCODING_MARKS[iana_encoding] - - if isinstance(marks, bytes): - marks = [marks] - - for mark in marks: - if sequence.startswith(mark): - return iana_encoding, mark - - return None, b"" - - -def should_strip_sig_or_bom(iana_encoding: str) -> bool: - return iana_encoding not in {"utf_16", "utf_32"} - - -def iana_name(cp_name: str, strict: bool = True) -> str: - """Returns the Python normalized encoding name (Not the IANA official name).""" - cp_name = cp_name.lower().replace("-", "_") - - encoding_alias: str - encoding_iana: str - - for encoding_alias, encoding_iana in aliases.items(): - if cp_name in [encoding_alias, encoding_iana]: - return encoding_iana - - if strict: - raise ValueError(f"Unable to retrieve IANA for '{cp_name}'") - - return cp_name - - -def cp_similarity(iana_name_a: str, iana_name_b: str) -> float: - if is_multi_byte_encoding(iana_name_a) or is_multi_byte_encoding(iana_name_b): - return 0.0 - - decoder_a = importlib.import_module(f"encodings.{iana_name_a}").IncrementalDecoder - decoder_b = importlib.import_module(f"encodings.{iana_name_b}").IncrementalDecoder - - id_a: IncrementalDecoder = decoder_a(errors="ignore") - id_b: IncrementalDecoder = decoder_b(errors="ignore") - - character_match_count: int = 0 - - for i in range(256): - to_be_decoded: bytes = bytes([i]) - if id_a.decode(to_be_decoded) == id_b.decode(to_be_decoded): - character_match_count += 1 - - return character_match_count / 256 - - -def is_cp_similar(iana_name_a: str, iana_name_b: str) -> bool: - """ - Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using - the function cp_similarity. - """ - return ( - iana_name_a in IANA_SUPPORTED_SIMILAR - and iana_name_b in IANA_SUPPORTED_SIMILAR[iana_name_a] - ) - - -def set_logging_handler( - name: str = "charset_normalizer", - level: int = logging.INFO, - format_string: str = "%(asctime)s | %(levelname)s | %(message)s", -) -> None: - logger = logging.getLogger(name) - logger.setLevel(level) - - handler = logging.StreamHandler() - handler.setFormatter(logging.Formatter(format_string)) - logger.addHandler(handler) - - -def cut_sequence_chunks( - sequences: bytes | bytearray, - encoding_iana: str, - offsets: range, - chunk_size: int, - bom_or_sig_available: bool, - strip_sig_or_bom: bool, - sig_payload: bytes, - is_multi_byte_decoder: bool, - decoded_payload: str | None = None, -) -> Generator[str, None, None]: - if decoded_payload and is_multi_byte_decoder is False: - for i in offsets: - chunk = decoded_payload[i : i + chunk_size] - if not chunk: - break - yield chunk - else: - for i in offsets: - chunk_end = i + chunk_size - if chunk_end > len(sequences) + 8: - continue - - cut_sequence = sequences[i : i + chunk_size] - - if bom_or_sig_available and strip_sig_or_bom is False: - cut_sequence = sig_payload + cut_sequence - - chunk = cut_sequence.decode( - encoding_iana, - errors="ignore" if is_multi_byte_decoder else "strict", - ) - - # multi-byte bad cutting detector and adjustment - # not the cleanest way to perform that fix but clever enough for now. - if is_multi_byte_decoder and i > 0: - chunk_partial_size_chk: int = min(chunk_size, 16) - - if ( - decoded_payload - and chunk[:chunk_partial_size_chk] not in decoded_payload - ): - for j in range(i, i - 4, -1): - cut_sequence = sequences[j:chunk_end] - - if bom_or_sig_available and strip_sig_or_bom is False: - cut_sequence = sig_payload + cut_sequence - - chunk = cut_sequence.decode(encoding_iana, errors="ignore") - - if chunk[:chunk_partial_size_chk] in decoded_payload: - break - - yield chunk diff --git a/.venv/lib/python3.9/site-packages/charset_normalizer/version.py b/.venv/lib/python3.9/site-packages/charset_normalizer/version.py deleted file mode 100644 index a93d367..0000000 --- a/.venv/lib/python3.9/site-packages/charset_normalizer/version.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -Expose version -""" - -from __future__ import annotations - -__version__ = "3.4.7" -VERSION = __version__.split(".") diff --git a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/INSTALLER b/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/METADATA b/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/METADATA deleted file mode 100644 index 569b892..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/METADATA +++ /dev/null @@ -1,110 +0,0 @@ -Metadata-Version: 2.4 -Name: cryptography -Version: 48.0.1 -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Natural Language :: English -Classifier: Operating System :: MacOS :: MacOS X -Classifier: Operating System :: POSIX -Classifier: Operating System :: POSIX :: BSD -Classifier: Operating System :: POSIX :: Linux -Classifier: Operating System :: Microsoft :: Windows -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable -Classifier: Topic :: Security :: Cryptography -Requires-Dist: cffi>=2.0.0 ; platform_python_implementation != 'PyPy' -Requires-Dist: typing-extensions>=4.13.2 ; python_full_version < '3.11' -Requires-Dist: bcrypt>=3.1.5 ; extra == 'ssh' -Provides-Extra: ssh -License-File: LICENSE -License-File: LICENSE.APACHE -License-File: LICENSE.BSD -Summary: cryptography is a package which provides cryptographic recipes and primitives to Python developers. -Author-email: The Python Cryptographic Authority and individual contributors -License-Expression: Apache-2.0 OR BSD-3-Clause -Requires-Python: >=3.9, !=3.9.0, !=3.9.1 -Description-Content-Type: text/x-rst; charset=UTF-8 -Project-URL: changelog, https://cryptography.io/en/latest/changelog/ -Project-URL: documentation, https://cryptography.io/ -Project-URL: homepage, https://github.com/pyca/cryptography -Project-URL: issues, https://github.com/pyca/cryptography/issues -Project-URL: source, https://github.com/pyca/cryptography/ - -pyca/cryptography -================= - -.. image:: https://img.shields.io/pypi/v/cryptography.svg - :target: https://pypi.org/project/cryptography/ - :alt: Latest Version - -.. image:: https://readthedocs.org/projects/cryptography/badge/?version=latest - :target: https://cryptography.io - :alt: Latest Docs - -.. image:: https://github.com/pyca/cryptography/actions/workflows/ci.yml/badge.svg - :target: https://github.com/pyca/cryptography/actions/workflows/ci.yml?query=branch%3Amain - -``cryptography`` is a package which provides cryptographic recipes and -primitives to Python developers. Our goal is for it to be your "cryptographic -standard library". It supports Python 3.9+ and PyPy3 7.3.11+. - -``cryptography`` includes both high level recipes and low level interfaces to -common cryptographic algorithms such as symmetric ciphers, message digests, and -key derivation functions. For example, to encrypt something with -``cryptography``'s high level symmetric encryption recipe: - -.. code-block:: pycon - - >>> from cryptography.fernet import Fernet - >>> # Put this somewhere safe! - >>> key = Fernet.generate_key() - >>> f = Fernet(key) - >>> token = f.encrypt(b"A really secret message. Not for prying eyes.") - >>> token - b'...' - >>> f.decrypt(token) - b'A really secret message. Not for prying eyes.' - -You can find more information in the `documentation`_. - -You can install ``cryptography`` with: - -.. code-block:: console - - $ pip install cryptography - -For full details see `the installation documentation`_. - -Discussion -~~~~~~~~~~ - -If you run into bugs, you can file them in our `issue tracker`_. - -We maintain a `cryptography-dev`_ mailing list for development discussion. - -You can also join ``#pyca`` on ``irc.libera.chat`` to ask questions or get -involved. - -Security -~~~~~~~~ - -Need to report a security issue? Please consult our `security reporting`_ -documentation. - - -.. _`documentation`: https://cryptography.io/ -.. _`the installation documentation`: https://cryptography.io/en/latest/installation/ -.. _`issue tracker`: https://github.com/pyca/cryptography/issues -.. _`cryptography-dev`: https://mail.python.org/mailman/listinfo/cryptography-dev -.. _`security reporting`: https://cryptography.io/en/latest/security/ - diff --git a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/RECORD b/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/RECORD deleted file mode 100644 index 6891a33..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/RECORD +++ /dev/null @@ -1,195 +0,0 @@ -cryptography-48.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -cryptography-48.0.1.dist-info/METADATA,sha256=W2Lc_K3fYuJvjCj2BVwKuoWO6io2l6P8jnrO1Ce_jZQ,4343 -cryptography-48.0.1.dist-info/RECORD,, -cryptography-48.0.1.dist-info/WHEEL,sha256=n8yOSKZK4ta4he_E11qOU9xQ0LkYfp_Y3iW6v3lYLhQ,108 -cryptography-48.0.1.dist-info/licenses/LICENSE,sha256=Pgx8CRqUi4JTO6mP18u0BDLW8amsv4X1ki0vmak65rs,197 -cryptography-48.0.1.dist-info/licenses/LICENSE.APACHE,sha256=qsc7MUj20dcRHbyjIJn2jSbGRMaBOuHk8F9leaomY_4,11360 -cryptography-48.0.1.dist-info/licenses/LICENSE.BSD,sha256=YCxMdILeZHndLpeTzaJ15eY9dz2s0eymiSMqtwCPtPs,1532 -cryptography-48.0.1.dist-info/sboms/cryptography-rust.cyclonedx.json,sha256=krmDsy2k32oGF1SclCpMKtfBa6XAFhm49iv4b08Wlf0,45613 -cryptography-48.0.1.dist-info/sboms/sbom.json,sha256=Ha_ON7GUSMHgkrOjZobcgTtUkS8dM4QIzXX7y50qcFY,1206 -cryptography/__about__.py,sha256=Ou0EOwnS9203-q3y0ZtiWFCxhUA5t5Cb4stZkxXJLcU,445 -cryptography/__init__.py,sha256=mthuUrTd4FROCpUYrTIqhjz6s6T9djAZrV7nZ1oMm2o,364 -cryptography/__pycache__/__about__.cpython-39.pyc,, -cryptography/__pycache__/__init__.cpython-39.pyc,, -cryptography/__pycache__/exceptions.cpython-39.pyc,, -cryptography/__pycache__/fernet.cpython-39.pyc,, -cryptography/__pycache__/utils.cpython-39.pyc,, -cryptography/exceptions.py,sha256=835EWILc2fwxw-gyFMriciC2SqhViETB10LBSytnDIc,1087 -cryptography/fernet.py,sha256=3Cvxkh0KJSbX8HbnCHu4wfCW7U0GgfUA3v_qQ8a8iWc,6963 -cryptography/hazmat/__init__.py,sha256=5IwrLWrVp0AjEr_4FdWG_V057NSJGY_W4egNNsuct0g,455 -cryptography/hazmat/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/__pycache__/_oid.cpython-39.pyc,, -cryptography/hazmat/_oid.py,sha256=p8ThjwJB56Ci_rAIrjyJ1f8VjgD6e39es2dh8JIUBOw,17240 -cryptography/hazmat/asn1/__init__.py,sha256=AZVmLA09Q9-bq27G8fYr3dof-iRkh5KSX3zEPmNb-9w,744 -cryptography/hazmat/asn1/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/asn1/__pycache__/asn1.cpython-39.pyc,, -cryptography/hazmat/asn1/asn1.py,sha256=FZ6nZr3N1kKqNBQfh0qKtJ0cLUjwtGFemG82KNWOcfk,14724 -cryptography/hazmat/backends/__init__.py,sha256=O5jvKFQdZnXhKeqJ-HtulaEL9Ni7mr1mDzZY5kHlYhI,361 -cryptography/hazmat/backends/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/backends/openssl/__init__.py,sha256=p3jmJfnCag9iE5sdMrN6VvVEu55u46xaS_IjoI0SrmA,305 -cryptography/hazmat/backends/openssl/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/backends/openssl/__pycache__/backend.cpython-39.pyc,, -cryptography/hazmat/backends/openssl/backend.py,sha256=7A8JKJlQjG3-Fqdcyat2Eb7kHLYAAtGF0j9ooaWyaE0,10520 -cryptography/hazmat/bindings/__init__.py,sha256=s9oKCQ2ycFdXoERdS1imafueSkBsL9kvbyfghaauZ9Y,180 -cryptography/hazmat/bindings/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/bindings/_rust.abi3.so,sha256=OIn8J9lKy_Nreq7RtV55EtqZGvoUzMOBtOrUu3KKc34,13808528 -cryptography/hazmat/bindings/_rust/__init__.pyi,sha256=uUnnvOq_uameYnBNpmsv3SRAVO0WQGpjI58aR1lL4Kw,2285 -cryptography/hazmat/bindings/_rust/_openssl.pyi,sha256=T_5TpYO8bghIPjAQ3BtAABqw-CcYskHp92wm5PNY6dc,228 -cryptography/hazmat/bindings/_rust/asn1.pyi,sha256=BrGjC8J6nwuS-r3EVcdXJB8ndotfY9mbQYOfpbPG0HA,354 -cryptography/hazmat/bindings/_rust/declarative_asn1.pyi,sha256=iSeRyyd3hN0VIUKg_p424AzQ-b7hW1b_53Yx50yniYY,3661 -cryptography/hazmat/bindings/_rust/exceptions.pyi,sha256=exXr2xw_0pB1kk93cYbM3MohbzoUkjOms1ZMUi0uQZE,640 -cryptography/hazmat/bindings/_rust/ocsp.pyi,sha256=VPVWuKHI9EMs09ZLRYAGvR0Iz0mCMmEzXAkgJHovpoM,4020 -cryptography/hazmat/bindings/_rust/openssl/__init__.pyi,sha256=JDCef29vXnrEMvF13JH9z1-W9ahiTZQAk5xhu_KH6po,1550 -cryptography/hazmat/bindings/_rust/openssl/aead.pyi,sha256=7d--xdc0vuzRe4S2uuQaGm-9GGKv4NcSLQcLyWcaD6s,4582 -cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi,sha256=LhPzHWSXJq4grAJXn6zSvSSdV-aYIIscHDwIPlJGGPs,1315 -cryptography/hazmat/bindings/_rust/openssl/cmac.pyi,sha256=nPH0X57RYpsAkRowVpjQiHE566ThUTx7YXrsadmrmHk,564 -cryptography/hazmat/bindings/_rust/openssl/dh.pyi,sha256=Z3TC-G04-THtSdAOPLM1h2G7ml5bda1ElZUcn5wpuhk,1564 -cryptography/hazmat/bindings/_rust/openssl/dsa.pyi,sha256=qBtkgj2albt2qFcnZ9UDrhzoNhCVO7HTby5VSf1EXMI,1299 -cryptography/hazmat/bindings/_rust/openssl/ec.pyi,sha256=zJy0pRa5n-_p2dm45PxECB_-B6SVZyNKfjxFDpPqT38,1691 -cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi,sha256=VXfXd5G6hUivg399R1DYdmW3eTb0EebzDTqjRC2gaRw,532 -cryptography/hazmat/bindings/_rust/openssl/ed448.pyi,sha256=Yx49lqdnjsD7bxiDV1kcaMrDktug5evi5a6zerMiy2s,514 -cryptography/hazmat/bindings/_rust/openssl/hashes.pyi,sha256=bFe3T13UeyRInUJMD-R5ArGTGLqWDiWo2Lv2KGzUbf4,1076 -cryptography/hazmat/bindings/_rust/openssl/hmac.pyi,sha256=BXZn7NDjL3JAbYW0SQ8pg1iyC5DbQXVhUAiwsi8DFR8,702 -cryptography/hazmat/bindings/_rust/openssl/hpke.pyi,sha256=wrz8c12gBNBAItz9jorr_W4s8rFYDE1Yel1z2I-Wd2s,2877 -cryptography/hazmat/bindings/_rust/openssl/kdf.pyi,sha256=HiiLdEB9nqMsTvMwiFppQpfPz6fHUz9_gpjEB_XAOXA,6619 -cryptography/hazmat/bindings/_rust/openssl/keys.pyi,sha256=teIt8M6ZEMJrn4s3W0UnW0DZ-30Jd68WnSsKKG124l0,912 -cryptography/hazmat/bindings/_rust/openssl/mldsa.pyi,sha256=HChNsjW0C_vO9OVD4FhEZrXO3_FiEq2ZTF59hlfcEdM,1073 -cryptography/hazmat/bindings/_rust/openssl/mlkem.pyi,sha256=byoeus4-lIOlWlEiRQdCc00qCkXpOB5peBY6yo9ik8s,835 -cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi,sha256=_SW9NtQ5FDlAbdclFtWpT4lGmxKIKHpN-4j8J2BzYfQ,585 -cryptography/hazmat/bindings/_rust/openssl/rsa.pyi,sha256=2OQCNSXkxgc-3uw1xiCCloIQTV6p9_kK79Yu0rhZgPc,1364 -cryptography/hazmat/bindings/_rust/openssl/x25519.pyi,sha256=ewn4GpQyb7zPwE-ni7GtyQgMC0A1mLuqYsSyqv6nI_s,523 -cryptography/hazmat/bindings/_rust/openssl/x448.pyi,sha256=juTZTmli8jO_5Vcufg-vHvx_tCyezmSLIh_9PU3TczI,505 -cryptography/hazmat/bindings/_rust/pkcs12.pyi,sha256=vEEd5wDiZvb8ZGFaziLCaWLzAwoG_tvPUxLQw5_uOl8,1605 -cryptography/hazmat/bindings/_rust/pkcs7.pyi,sha256=txGBJijqZshEcqra6byPNbnisIdlxzOSIHP2hl9arPs,1601 -cryptography/hazmat/bindings/_rust/test_support.pyi,sha256=PPhld-WkO743iXFPebeG0LtgK0aTzGdjcIsay1Gm5GE,757 -cryptography/hazmat/bindings/_rust/x509.pyi,sha256=rmt4enscdvDQ7lBEHb2cASwN0d3TP3ymEVZcEJ-Rf3A,10152 -cryptography/hazmat/bindings/openssl/__init__.py,sha256=s9oKCQ2ycFdXoERdS1imafueSkBsL9kvbyfghaauZ9Y,180 -cryptography/hazmat/bindings/openssl/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/bindings/openssl/__pycache__/_conditional.cpython-39.pyc,, -cryptography/hazmat/bindings/openssl/__pycache__/binding.cpython-39.pyc,, -cryptography/hazmat/bindings/openssl/_conditional.py,sha256=vfzi-xHdStAcJQjLqqOlSos94L8D_tqFtBe7Ovw-KtY,5611 -cryptography/hazmat/bindings/openssl/binding.py,sha256=GnoZLYvCzXbKf4KldUXec-oz-hdVSa_sinZnqXgdS2s,4096 -cryptography/hazmat/decrepit/__init__.py,sha256=wHCbWfaefa-fk6THSw9th9fJUsStJo7245wfFBqmduA,216 -cryptography/hazmat/decrepit/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/decrepit/ciphers/__init__.py,sha256=wHCbWfaefa-fk6THSw9th9fJUsStJo7245wfFBqmduA,216 -cryptography/hazmat/decrepit/ciphers/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/decrepit/ciphers/__pycache__/algorithms.cpython-39.pyc,, -cryptography/hazmat/decrepit/ciphers/__pycache__/modes.cpython-39.pyc,, -cryptography/hazmat/decrepit/ciphers/algorithms.py,sha256=yqHt7k5OzF_KuvO8M9vTlNLtG7EotbvShyYKIaUJqhg,3566 -cryptography/hazmat/decrepit/ciphers/modes.py,sha256=Oq_PEwCke5OLczOfr_vzAOJ6wPx-rlsvHAXPBuh5b9o,1649 -cryptography/hazmat/primitives/__init__.py,sha256=s9oKCQ2ycFdXoERdS1imafueSkBsL9kvbyfghaauZ9Y,180 -cryptography/hazmat/primitives/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/_asymmetric.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/_cipheralgorithm.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/_modes.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/_serialization.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/cmac.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/constant_time.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/hashes.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/hmac.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/hpke.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/keywrap.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/padding.cpython-39.pyc,, -cryptography/hazmat/primitives/__pycache__/poly1305.cpython-39.pyc,, -cryptography/hazmat/primitives/_asymmetric.py,sha256=RhgcouUB6HTiFDBrR1LxqkMjpUxIiNvQ1r_zJjRG6qQ,532 -cryptography/hazmat/primitives/_cipheralgorithm.py,sha256=Eh3i7lwedHfi0eLSsH93PZxQKzY9I6lkK67vL4V5tOc,1522 -cryptography/hazmat/primitives/_modes.py,sha256=_EiAOD8Jb6WpFXluwkcUT3ECz_TH8xjGvbQlGkNm59Q,3075 -cryptography/hazmat/primitives/_serialization.py,sha256=hi0xJblBAZ8pmZx2lWa-lruphxvvvG3g9DNK0G8Odfs,4440 -cryptography/hazmat/primitives/asymmetric/__init__.py,sha256=s9oKCQ2ycFdXoERdS1imafueSkBsL9kvbyfghaauZ9Y,180 -cryptography/hazmat/primitives/asymmetric/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/dh.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/dsa.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/ec.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/ed25519.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/ed448.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/mldsa.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/mlkem.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/padding.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/rsa.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/types.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/utils.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/x25519.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/x448.cpython-39.pyc,, -cryptography/hazmat/primitives/asymmetric/dh.py,sha256=klvHVaxAFkUyaWXLytqYjBTh81Zx1ByCJNZVRcSDYX8,3912 -cryptography/hazmat/primitives/asymmetric/dsa.py,sha256=kQzTViqAI9PiELNOBco_n6MfP3N9ehIPkSduOpupt0M,4482 -cryptography/hazmat/primitives/asymmetric/ec.py,sha256=LklVCLLxbbQzqiE6HRaYTRauLMphYUw3tE6c8oBIxYQ,10183 -cryptography/hazmat/primitives/asymmetric/ed25519.py,sha256=mbffLvs-3PgCDeg1rQXVXh7GLntlVL4ATjkIEc4pt5M,2998 -cryptography/hazmat/primitives/asymmetric/ed448.py,sha256=n0dK6y-VLxuw-zvrDxuPT4598hymgX-1Ry_jq9aUQhE,4002 -cryptography/hazmat/primitives/asymmetric/mldsa.py,sha256=49DPIhoHEyfGVwL6DRc3WlJ20Rinq-ldtjsp91NpyMM,12226 -cryptography/hazmat/primitives/asymmetric/mlkem.py,sha256=wvVkeFT-4of-VcUAER2-zI_5hXT6rwTJPMCQ8gF9GTA,7901 -cryptography/hazmat/primitives/asymmetric/padding.py,sha256=vQ6l6gOg9HqcbOsvHrSiJRVLdEj9L4m4HkRGYziTyFA,2854 -cryptography/hazmat/primitives/asymmetric/rsa.py,sha256=lIE7lGe449W5URLTKCpvFGerITouKoZV9GwuTzScsSo,8492 -cryptography/hazmat/primitives/asymmetric/types.py,sha256=q3glpax4EHgNpkRSEXlhK43a07F3Dsk-rQ3bbjL9ZnM,3309 -cryptography/hazmat/primitives/asymmetric/utils.py,sha256=Qs8Re9GFPjW_tNp_73IeJEjPCf0slOIsWOxo6qymT6k,821 -cryptography/hazmat/primitives/asymmetric/x25519.py,sha256=lQcgUk-Piubj8ynFNWQeYme3tYZMgHQqkRKkIDOHLzo,3888 -cryptography/hazmat/primitives/asymmetric/x448.py,sha256=b37ig7k7poG6SJDry42j-ElCj5q4eQ0X5CFmN0Sn8z8,3913 -cryptography/hazmat/primitives/ciphers/__init__.py,sha256=eyEXmjk6_CZXaOPYDr7vAYGXr29QvzgWL2-4CSolLFs,680 -cryptography/hazmat/primitives/ciphers/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/primitives/ciphers/__pycache__/aead.cpython-39.pyc,, -cryptography/hazmat/primitives/ciphers/__pycache__/algorithms.cpython-39.pyc,, -cryptography/hazmat/primitives/ciphers/__pycache__/base.cpython-39.pyc,, -cryptography/hazmat/primitives/ciphers/__pycache__/modes.cpython-39.pyc,, -cryptography/hazmat/primitives/ciphers/aead.py,sha256=Fzlyx7w8KYQakzDp1zWgJnIr62zgZrgVh1u2h4exB54,634 -cryptography/hazmat/primitives/ciphers/algorithms.py,sha256=IGfCycYJOh1TvoI34rfw8KfJ_xmt1p_DpBht2Fghceo,3496 -cryptography/hazmat/primitives/ciphers/base.py,sha256=aBC7HHBBoixebmparVr0UlODs3VD0A7B6oz_AaRjDv8,4253 -cryptography/hazmat/primitives/ciphers/modes.py,sha256=pNI0cSLCLxr7lz7ApfUpVpFH5q_bzOpKW-QggmgQB74,6007 -cryptography/hazmat/primitives/cmac.py,sha256=sz_s6H_cYnOvx-VNWdIKhRhe3Ymp8z8J0D3CBqOX3gg,338 -cryptography/hazmat/primitives/constant_time.py,sha256=xdunWT0nf8OvKdcqUhhlFKayGp4_PgVJRU2W1wLSr_A,422 -cryptography/hazmat/primitives/hashes.py,sha256=M8BrlKB3U6DEtHvWTV5VRjpteHv1kS3Zxm_Bsk04cr8,5184 -cryptography/hazmat/primitives/hmac.py,sha256=RpB3z9z5skirCQrm7zQbtnp9pLMnAjrlTUvKqF5aDDc,423 -cryptography/hazmat/primitives/hpke.py,sha256=RsHissC5l-dTPn1p2JbcrIrAnDBrLqM5ugBFSGpmKu4,865 -cryptography/hazmat/primitives/kdf/__init__.py,sha256=v3yiYBGU272EojNXbwfYZdbbfI9cVOCCG3nXhTDda3k,1037 -cryptography/hazmat/primitives/kdf/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/argon2.cpython-39.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/concatkdf.cpython-39.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/hkdf.cpython-39.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/kbkdf.cpython-39.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/pbkdf2.cpython-39.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/scrypt.cpython-39.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/x963kdf.cpython-39.pyc,, -cryptography/hazmat/primitives/kdf/argon2.py,sha256=ZJx-enUlAA4o7b46C1wlzG_XAQQW0wIkFgUKkrM_wA8,632 -cryptography/hazmat/primitives/kdf/concatkdf.py,sha256=BFnOKS72txKF0yQvASr0Na7uhzvLHpUCckK5iNAC_aQ,591 -cryptography/hazmat/primitives/kdf/hkdf.py,sha256=M0lAEfRoc4kpp4-nwDj9yB-vNZukIOYEQrUlWsBNn9o,543 -cryptography/hazmat/primitives/kdf/kbkdf.py,sha256=C3w99vjFqhqzAxzFOH4zzvVoHkb5AC6Lz6AEQGV7d_g,737 -cryptography/hazmat/primitives/kdf/pbkdf2.py,sha256=Xchkk99s-Mk6b6KSCouqdk8FVyiNVOSFIenmnW3tLgQ,468 -cryptography/hazmat/primitives/kdf/scrypt.py,sha256=XyWUdUUmhuI9V6TqAPOvujCSMGv1XQdg0a21IWCmO-U,590 -cryptography/hazmat/primitives/kdf/x963kdf.py,sha256=QKjhRehuTsAstL384bKfvjuv1yfdamAHVhsBRWen2Vw,456 -cryptography/hazmat/primitives/keywrap.py,sha256=UI-0UESQxBXTKU1HrrRoUwDiFsrWif81qyXlV1e7kyY,5776 -cryptography/hazmat/primitives/padding.py,sha256=QT-U-NvV2eQGO1wVPbDiNGNSc9keRDS-ig5cQOrLz0E,1865 -cryptography/hazmat/primitives/poly1305.py,sha256=P5EPQV-RB_FJPahpg01u0Ts4S_PnAmsroxIGXbGeRRo,355 -cryptography/hazmat/primitives/serialization/__init__.py,sha256=Q7uTgDlt7n3WfsMT6jYwutC6DIg_7SEeoAm1GHZ5B5E,1705 -cryptography/hazmat/primitives/serialization/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/primitives/serialization/__pycache__/base.cpython-39.pyc,, -cryptography/hazmat/primitives/serialization/__pycache__/pkcs12.cpython-39.pyc,, -cryptography/hazmat/primitives/serialization/__pycache__/pkcs7.cpython-39.pyc,, -cryptography/hazmat/primitives/serialization/__pycache__/ssh.cpython-39.pyc,, -cryptography/hazmat/primitives/serialization/base.py,sha256=ikq5MJIwp_oUnjiaBco_PmQwOTYuGi-XkYUYHKy8Vo0,615 -cryptography/hazmat/primitives/serialization/pkcs12.py,sha256=mS9cFNG4afzvseoc5e1MWoY2VskfL8N8Y_OFjl67luY,5104 -cryptography/hazmat/primitives/serialization/pkcs7.py,sha256=mFM7OFuZ8cCxUGUoo4Cof6BnCHc_Ibx1AQjjfxnPlxo,13998 -cryptography/hazmat/primitives/serialization/ssh.py,sha256=HV6ZqIjqNNaNUL6M4gQyNJJtZ75EsiSZs6yxddqBrWI,53789 -cryptography/hazmat/primitives/twofactor/__init__.py,sha256=tmMZGB-g4IU1r7lIFqASU019zr0uPp_wEBYcwdDCKCA,258 -cryptography/hazmat/primitives/twofactor/__pycache__/__init__.cpython-39.pyc,, -cryptography/hazmat/primitives/twofactor/__pycache__/hotp.cpython-39.pyc,, -cryptography/hazmat/primitives/twofactor/__pycache__/totp.cpython-39.pyc,, -cryptography/hazmat/primitives/twofactor/hotp.py,sha256=ivZo5BrcCGWLsqql4nZV0XXCjyGPi_iHfDFltGlOJwk,3256 -cryptography/hazmat/primitives/twofactor/totp.py,sha256=m5LPpRL00kp4zY8gTjr55Hfz9aMlPS53kHmVkSQCmdY,1652 -cryptography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -cryptography/utils.py,sha256=wCnykfmWmp6L5zUFou715snYL9_YLLHjpj4_NHmlhwU,4281 -cryptography/x509/__init__.py,sha256=zciyadRgnCp2DNPPm6ujEKd6EX-8_zOnwtCjJbZBatg,8273 -cryptography/x509/__pycache__/__init__.cpython-39.pyc,, -cryptography/x509/__pycache__/base.cpython-39.pyc,, -cryptography/x509/__pycache__/certificate_transparency.cpython-39.pyc,, -cryptography/x509/__pycache__/extensions.cpython-39.pyc,, -cryptography/x509/__pycache__/general_name.cpython-39.pyc,, -cryptography/x509/__pycache__/name.cpython-39.pyc,, -cryptography/x509/__pycache__/ocsp.cpython-39.pyc,, -cryptography/x509/__pycache__/oid.cpython-39.pyc,, -cryptography/x509/__pycache__/verification.cpython-39.pyc,, -cryptography/x509/base.py,sha256=8322G4opJ1a2juXU14Qi2y-G1V-cQHaudo7gAFbTPlM,25998 -cryptography/x509/certificate_transparency.py,sha256=JqoOIDhlwInrYMFW6IFn77WJ0viF-PB_rlZV3vs9MYc,797 -cryptography/x509/extensions.py,sha256=0AUgutLe26SLg1KaxSeo0fG7fUBAyK2tEgJl9c_AQRM,77968 -cryptography/x509/general_name.py,sha256=sP_rV11Qlpsk4x3XXGJY_Mv0Q_s9dtjeLckHsjpLQoQ,7836 -cryptography/x509/name.py,sha256=H0Bix4uAxk5Ndkmee3Lxv3UdXbdph2XBr-nTPxHo54U,15356 -cryptography/x509/ocsp.py,sha256=Yey6NdFV1MPjop24Mj_VenjEpg3kUaMopSWOK0AbeBs,12699 -cryptography/x509/oid.py,sha256=BUzgXXGVWilkBkdKPTm9R4qElE9gAGHgdYPMZAp7PJo,931 -cryptography/x509/verification.py,sha256=gR2C2c-XZQtblZhT5T5vjSKOtCb74ef2alPVmEcwFlM,958 diff --git a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/WHEEL b/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/WHEEL deleted file mode 100644 index d2a1842..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: maturin (1.13.1) -Root-Is-Purelib: false -Tag: cp39-abi3-manylinux_2_34_x86_64 - diff --git a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE b/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE deleted file mode 100644 index b11f379..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE +++ /dev/null @@ -1,3 +0,0 @@ -This software is made available under the terms of *either* of the licenses -found in LICENSE.APACHE or LICENSE.BSD. Contributions to cryptography are made -under the terms of *both* these licenses. diff --git a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE.APACHE b/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE.APACHE deleted file mode 100644 index 62589ed..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE.APACHE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - https://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE.BSD b/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE.BSD deleted file mode 100644 index ec1a29d..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/licenses/LICENSE.BSD +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) Individual contributors. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of PyCA Cryptography nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/sboms/cryptography-rust.cyclonedx.json b/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/sboms/cryptography-rust.cyclonedx.json deleted file mode 100644 index e784a47..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/sboms/cryptography-rust.cyclonedx.json +++ /dev/null @@ -1,1362 +0,0 @@ -{ - "bomFormat": "CycloneDX", - "specVersion": "1.5", - "version": 1, - "serialNumber": "urn:uuid:05472d3b-31bb-4058-a8b8-13ecaaa3c015", - "metadata": { - "timestamp": "2026-06-09T22:23:09.325359976Z", - "tools": [ - { - "vendor": "CycloneDX", - "name": "cargo-cyclonedx", - "version": "0.5.9" - } - ], - "authors": [ - { - "name": "The cryptography developers", - "email": "cryptography-dev@python.org" - } - ], - "component": { - "type": "library", - "bom-ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust#cryptography-rust@0.1.0", - "author": "The cryptography developers ", - "name": "cryptography-rust", - "version": "0.1.0", - "scope": "required", - "licenses": [ - { - "expression": "Apache-2.0 OR BSD-3-Clause" - } - ], - "purl": "pkg:cargo/cryptography-rust@0.1.0?download_url=file://.", - "components": [ - { - "type": "library", - "bom-ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust#cryptography-rust@0.1.0 bin-target-0", - "name": "cryptography_rust", - "version": "0.1.0", - "purl": "pkg:cargo/cryptography-rust@0.1.0?download_url=file://.#src/lib.rs" - } - ] - }, - "properties": [ - { - "name": "cdx:rustc:sbom:target:all_targets", - "value": "true" - } - ] - }, - "components": [ - { - "type": "library", - "bom-ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-cffi#0.1.0", - "author": "The cryptography developers ", - "name": "cryptography-cffi", - "version": "0.1.0", - "scope": "required", - "licenses": [ - { - "expression": "Apache-2.0 OR BSD-3-Clause" - } - ], - "purl": "pkg:cargo/cryptography-cffi@0.1.0?download_url=file://cryptography-cffi" - }, - { - "type": "library", - "bom-ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-crypto#0.1.0", - "author": "The cryptography developers ", - "name": "cryptography-crypto", - "version": "0.1.0", - "scope": "required", - "licenses": [ - { - "expression": "Apache-2.0 OR BSD-3-Clause" - } - ], - "purl": "pkg:cargo/cryptography-crypto@0.1.0?download_url=file://cryptography-crypto" - }, - { - "type": "library", - "bom-ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-keepalive#0.1.0", - "author": "The cryptography developers ", - "name": "cryptography-keepalive", - "version": "0.1.0", - "scope": "required", - "licenses": [ - { - "expression": "Apache-2.0 OR BSD-3-Clause" - } - ], - "purl": "pkg:cargo/cryptography-keepalive@0.1.0?download_url=file://cryptography-keepalive" - }, - { - "type": "library", - "bom-ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-key-parsing#0.1.0", - "author": "The cryptography developers ", - "name": "cryptography-key-parsing", - "version": "0.1.0", - "scope": "required", - "licenses": [ - { - "expression": "Apache-2.0 OR BSD-3-Clause" - } - ], - "purl": "pkg:cargo/cryptography-key-parsing@0.1.0?download_url=file://cryptography-key-parsing" - }, - { - "type": "library", - "bom-ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-openssl#0.1.0", - "author": "The cryptography developers ", - "name": "cryptography-openssl", - "version": "0.1.0", - "scope": "required", - "licenses": [ - { - "expression": "Apache-2.0 OR BSD-3-Clause" - } - ], - "purl": "pkg:cargo/cryptography-openssl@0.1.0?download_url=file://cryptography-openssl" - }, - { - "type": "library", - "bom-ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-x509#0.1.0", - "author": "The cryptography developers ", - "name": "cryptography-x509", - "version": "0.1.0", - "scope": "required", - "licenses": [ - { - "expression": "Apache-2.0 OR BSD-3-Clause" - } - ], - "purl": "pkg:cargo/cryptography-x509@0.1.0?download_url=file://cryptography-x509" - }, - { - "type": "library", - "bom-ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-x509-verification#0.1.0", - "author": "The cryptography developers ", - "name": "cryptography-x509-verification", - "version": "0.1.0", - "scope": "required", - "licenses": [ - { - "expression": "Apache-2.0 OR BSD-3-Clause" - } - ], - "purl": "pkg:cargo/cryptography-x509-verification@0.1.0?download_url=file://cryptography-x509-verification" - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#asn1@0.24.1", - "author": "Alex Gaynor ", - "name": "asn1", - "version": "0.24.1", - "description": "ASN.1 (DER) parser and writer for Rust.", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "c9795210620c0cb3f9a7ce4f882808c38e1ef7b347c90591dceae0886e031fb1" - } - ], - "licenses": [ - { - "expression": "BSD-3-Clause" - } - ], - "purl": "pkg:cargo/asn1@0.24.1", - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/alex/rust-asn1" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#asn1_derive@0.24.1", - "author": "Alex Gaynor ", - "name": "asn1_derive", - "version": "0.24.1", - "description": "#[derive] support for asn1", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "909e307f1cc32bb8bccbd98f446e6d1bf03fa30f7b53a4337da7181ad30fa11a" - } - ], - "licenses": [ - { - "expression": "BSD-3-Clause" - } - ], - "purl": "pkg:cargo/asn1_derive@0.24.1", - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/alex/rust-asn1" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#base64@0.22.1", - "author": "Marshall Pierce ", - "name": "base64", - "version": "0.22.1", - "description": "encodes and decodes base64 as bytes or utf8", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/base64@0.22.1", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/base64" - }, - { - "type": "vcs", - "url": "https://github.com/marshallpierce/rust-base64" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#bitflags@2.11.1", - "author": "The Rust Project Developers", - "name": "bitflags", - "version": "2.11.1", - "description": "A macro to generate structures which behave like bitflags. ", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/bitflags@2.11.1", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/bitflags" - }, - { - "type": "website", - "url": "https://github.com/bitflags/bitflags" - }, - { - "type": "vcs", - "url": "https://github.com/bitflags/bitflags" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#cc@1.2.61", - "author": "Alex Crichton ", - "name": "cc", - "version": "1.2.61", - "description": "A build-time dependency for Cargo build scripts to assist in invoking the native C compiler to compile native C code into a static archive to be linked into Rust code. ", - "scope": "excluded", - "hashes": [ - { - "alg": "SHA-256", - "content": "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/cc@1.2.61", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/cc" - }, - { - "type": "website", - "url": "https://github.com/rust-lang/cc-rs" - }, - { - "type": "vcs", - "url": "https://github.com/rust-lang/cc-rs" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.4", - "author": "Alex Crichton ", - "name": "cfg-if", - "version": "1.0.4", - "description": "A macro to ergonomically define an item depending on a large number of #[cfg] parameters. Structured like an if-else chain, the first matching branch is the item that gets emitted. ", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/cfg-if@1.0.4", - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/rust-lang/cfg-if" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#find-msvc-tools@0.1.9", - "name": "find-msvc-tools", - "version": "0.1.9", - "description": "Find windows-specific tools, read MSVC versions from the registry and from COM interfaces", - "scope": "excluded", - "hashes": [ - { - "alg": "SHA-256", - "content": "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/find-msvc-tools@0.1.9", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/find-msvc-tools" - }, - { - "type": "vcs", - "url": "https://github.com/rust-lang/cc-rs" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#foreign-types-shared@0.1.1", - "author": "Steven Fackler ", - "name": "foreign-types-shared", - "version": "0.1.1", - "description": "An internal crate used by foreign-types", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/foreign-types-shared@0.1.1", - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/sfackler/foreign-types" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#foreign-types@0.3.2", - "author": "Steven Fackler ", - "name": "foreign-types", - "version": "0.3.2", - "description": "A framework for Rust wrappers over C APIs", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/foreign-types@0.3.2", - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/sfackler/foreign-types" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0", - "name": "heck", - "version": "0.5.0", - "description": "heck is a case conversion library.", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/heck@0.5.0", - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/withoutboats/heck" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.18", - "author": "David Tolnay ", - "name": "itoa", - "version": "1.0.18", - "description": "Fast integer primitive to string conversion", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/itoa@1.0.18", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/itoa" - }, - { - "type": "vcs", - "url": "https://github.com/dtolnay/itoa" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.186", - "author": "The Rust Project Developers", - "name": "libc", - "version": "0.2.186", - "description": "Raw FFI bindings to platform libraries like libc.", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/libc@0.2.186", - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/rust-lang/libc" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4", - "author": "Aleksey Kladov ", - "name": "once_cell", - "version": "1.21.4", - "description": "Single assignment cells and lazy values.", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/once_cell@1.21.4", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/once_cell" - }, - { - "type": "vcs", - "url": "https://github.com/matklad/once_cell" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#openssl-macros@0.1.1", - "name": "openssl-macros", - "version": "0.1.1", - "description": "Internal macros used by the openssl crate.", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/openssl-macros@0.1.1" - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.115", - "author": "Alex Crichton , Steven Fackler ", - "name": "openssl-sys", - "version": "0.9.115", - "description": "FFI bindings to OpenSSL", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "158fe5b292746440aa6e7a7e690e55aeb72d41505e2804c23c6973ad0e9c9781" - } - ], - "licenses": [ - { - "expression": "MIT" - } - ], - "purl": "pkg:cargo/openssl-sys@0.9.115", - "externalReferences": [ - { - "type": "other", - "url": "openssl" - }, - { - "type": "vcs", - "url": "https://github.com/rust-openssl/rust-openssl" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#openssl@0.10.79", - "author": "Steven Fackler ", - "name": "openssl", - "version": "0.10.79", - "description": "OpenSSL bindings", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "bf0b434746ee2832f4f0baf10137e1cabb18cbe6912c69e2e33263c45250f542" - } - ], - "licenses": [ - { - "expression": "Apache-2.0" - } - ], - "purl": "pkg:cargo/openssl@0.10.79", - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/rust-openssl/rust-openssl" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pem@3.0.6", - "author": "Jonathan Creekmore ", - "name": "pem", - "version": "3.0.6", - "description": "Parse and encode PEM-encoded data.", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" - } - ], - "licenses": [ - { - "expression": "MIT" - } - ], - "purl": "pkg:cargo/pem@3.0.6", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/pem/" - }, - { - "type": "website", - "url": "https://github.com/jcreekmore/pem-rs.git" - }, - { - "type": "vcs", - "url": "https://github.com/jcreekmore/pem-rs.git" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pkg-config@0.3.33", - "author": "Alex Crichton ", - "name": "pkg-config", - "version": "0.3.33", - "description": "A library to run the pkg-config system tool at build time in order to be used in Cargo build scripts. ", - "scope": "excluded", - "hashes": [ - { - "alg": "SHA-256", - "content": "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/pkg-config@0.3.33", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/pkg-config" - }, - { - "type": "vcs", - "url": "https://github.com/rust-lang/pkg-config-rs" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#portable-atomic@1.13.1", - "name": "portable-atomic", - "version": "1.13.1", - "description": "Portable atomic types including support for 128-bit atomics, atomic float, etc. ", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" - } - ], - "licenses": [ - { - "expression": "Apache-2.0 OR MIT" - } - ], - "purl": "pkg:cargo/portable-atomic@1.13.1", - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/taiki-e/portable-atomic" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106", - "author": "David Tolnay , Alex Crichton ", - "name": "proc-macro2", - "version": "1.0.106", - "description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/proc-macro2@1.0.106", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/proc-macro2" - }, - { - "type": "vcs", - "url": "https://github.com/dtolnay/proc-macro2" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3", - "author": "PyO3 Project and Contributors ", - "name": "pyo3-build-config", - "version": "0.28.3", - "description": "Build configuration for the PyO3 ecosystem", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/pyo3-build-config@0.28.3", - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/pyo3/pyo3" - }, - { - "type": "vcs", - "url": "https://github.com/pyo3/pyo3" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-ffi@0.28.3", - "author": "PyO3 Project and Contributors ", - "name": "pyo3-ffi", - "version": "0.28.3", - "description": "Python-API bindings for the PyO3 ecosystem", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/pyo3-ffi@0.28.3", - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/pyo3/pyo3" - }, - { - "type": "other", - "url": "python" - }, - { - "type": "vcs", - "url": "https://github.com/pyo3/pyo3" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros-backend@0.28.3", - "author": "PyO3 Project and Contributors ", - "name": "pyo3-macros-backend", - "version": "0.28.3", - "description": "Code generation for PyO3 package", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/pyo3-macros-backend@0.28.3", - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/pyo3/pyo3" - }, - { - "type": "vcs", - "url": "https://github.com/pyo3/pyo3" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros@0.28.3", - "author": "PyO3 Project and Contributors ", - "name": "pyo3-macros", - "version": "0.28.3", - "description": "Proc macros for PyO3 package", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/pyo3-macros@0.28.3", - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/pyo3/pyo3" - }, - { - "type": "vcs", - "url": "https://github.com/pyo3/pyo3" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3@0.28.3", - "author": "PyO3 Project and Contributors ", - "name": "pyo3", - "version": "0.28.3", - "description": "Bindings to Python interpreter", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/pyo3@0.28.3", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/crate/pyo3/" - }, - { - "type": "website", - "url": "https://github.com/pyo3/pyo3" - }, - { - "type": "vcs", - "url": "https://github.com/pyo3/pyo3" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45", - "author": "David Tolnay ", - "name": "quote", - "version": "1.0.45", - "description": "Quasi-quoting macro quote!(...)", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/quote@1.0.45", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/quote/" - }, - { - "type": "vcs", - "url": "https://github.com/dtolnay/quote" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#self_cell@1.2.2", - "author": "Lukas Bergdoll ", - "name": "self_cell", - "version": "1.2.2", - "description": "Safe-to-use proc-macro-free self-referential structs in stable Rust.", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" - } - ], - "licenses": [ - { - "expression": "Apache-2.0 OR GPL-2.0-only" - } - ], - "purl": "pkg:cargo/self_cell@1.2.2", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/self_cell" - }, - { - "type": "vcs", - "url": "https://github.com/Voultapher/self_cell" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#shlex@1.3.0", - "author": "comex , Fenhl , Adrian Taylor , Alex Touchet , Daniel Parks , Garrett Berg ", - "name": "shlex", - "version": "1.3.0", - "description": "Split a string into shell words, like Python's shlex.", - "scope": "excluded", - "hashes": [ - { - "alg": "SHA-256", - "content": "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/shlex@1.3.0", - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/comex/rust-shlex" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117", - "author": "David Tolnay ", - "name": "syn", - "version": "2.0.117", - "description": "Parser for Rust source code", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/syn@2.0.117", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/syn" - }, - { - "type": "vcs", - "url": "https://github.com/dtolnay/syn" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#target-lexicon@0.13.5", - "author": "Dan Gohman ", - "name": "target-lexicon", - "version": "0.13.5", - "description": "LLVM target triple types", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" - } - ], - "licenses": [ - { - "expression": "Apache-2.0 WITH LLVM-exception" - } - ], - "purl": "pkg:cargo/target-lexicon@0.13.5", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/target-lexicon/" - }, - { - "type": "vcs", - "url": "https://github.com/bytecodealliance/target-lexicon" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24", - "author": "David Tolnay ", - "name": "unicode-ident", - "version": "1.0.24", - "description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31", - "scope": "required", - "hashes": [ - { - "alg": "SHA-256", - "content": "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" - } - ], - "licenses": [ - { - "expression": "(MIT OR Apache-2.0) AND Unicode-3.0" - } - ], - "purl": "pkg:cargo/unicode-ident@1.0.24", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/unicode-ident" - }, - { - "type": "vcs", - "url": "https://github.com/dtolnay/unicode-ident" - } - ] - }, - { - "type": "library", - "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#vcpkg@0.2.15", - "author": "Jim McGrath ", - "name": "vcpkg", - "version": "0.2.15", - "description": "A library to find native dependencies in a vcpkg tree at build time in order to be used in Cargo build scripts. ", - "scope": "excluded", - "hashes": [ - { - "alg": "SHA-256", - "content": "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - } - ], - "licenses": [ - { - "expression": "MIT OR Apache-2.0" - } - ], - "purl": "pkg:cargo/vcpkg@0.2.15", - "externalReferences": [ - { - "type": "documentation", - "url": "https://docs.rs/vcpkg" - }, - { - "type": "vcs", - "url": "https://github.com/mcgoo/vcpkg-rs" - } - ] - } - ], - "dependencies": [ - { - "ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust#cryptography-rust@0.1.0", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#asn1@0.24.1", - "registry+https://github.com/rust-lang/crates.io-index#base64@0.22.1", - "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.4", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-cffi#0.1.0", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-crypto#0.1.0", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-keepalive#0.1.0", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-key-parsing#0.1.0", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-openssl#0.1.0", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-x509#0.1.0", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-x509-verification#0.1.0", - "registry+https://github.com/rust-lang/crates.io-index#foreign-types-shared@0.1.1", - "registry+https://github.com/rust-lang/crates.io-index#openssl@0.10.79", - "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.115", - "registry+https://github.com/rust-lang/crates.io-index#pem@3.0.6", - "registry+https://github.com/rust-lang/crates.io-index#pyo3@0.28.3", - "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3", - "registry+https://github.com/rust-lang/crates.io-index#self_cell@1.2.2" - ] - }, - { - "ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-cffi#0.1.0", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#cc@1.2.61", - "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.115", - "registry+https://github.com/rust-lang/crates.io-index#pyo3@0.28.3" - ] - }, - { - "ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-crypto#0.1.0", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#openssl@0.10.79" - ] - }, - { - "ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-keepalive#0.1.0", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#pyo3@0.28.3" - ] - }, - { - "ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-key-parsing#0.1.0", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#asn1@0.24.1", - "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.4", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-crypto#0.1.0", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-openssl#0.1.0", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-x509#0.1.0", - "registry+https://github.com/rust-lang/crates.io-index#openssl@0.10.79", - "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.115", - "registry+https://github.com/rust-lang/crates.io-index#pem@3.0.6" - ] - }, - { - "ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-openssl#0.1.0", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.4", - "registry+https://github.com/rust-lang/crates.io-index#foreign-types@0.3.2", - "registry+https://github.com/rust-lang/crates.io-index#foreign-types-shared@0.1.1", - "registry+https://github.com/rust-lang/crates.io-index#openssl@0.10.79", - "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.115" - ] - }, - { - "ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-x509#0.1.0", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#asn1@0.24.1" - ] - }, - { - "ref": "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-x509-verification#0.1.0", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#asn1@0.24.1", - "path+file:///__w/cryptography/cryptography/tmpwheelhouse/.tmplZ4WJY/cryptography-48.0.1/src/rust/cryptography-x509#0.1.0" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#asn1@0.24.1", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#asn1_derive@0.24.1", - "registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.18" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#asn1_derive@0.24.1", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106", - "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45", - "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#base64@0.22.1" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#bitflags@2.11.1" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#cc@1.2.61", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#find-msvc-tools@0.1.9", - "registry+https://github.com/rust-lang/crates.io-index#shlex@1.3.0" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.4" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#find-msvc-tools@0.1.9" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#foreign-types-shared@0.1.1" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#foreign-types@0.3.2", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#foreign-types-shared@0.1.1" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.18" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.186" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#openssl-macros@0.1.1", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106", - "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45", - "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.115", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#cc@1.2.61", - "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.186", - "registry+https://github.com/rust-lang/crates.io-index#pkg-config@0.3.33", - "registry+https://github.com/rust-lang/crates.io-index#vcpkg@0.2.15" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#openssl@0.10.79", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#bitflags@2.11.1", - "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.4", - "registry+https://github.com/rust-lang/crates.io-index#foreign-types@0.3.2", - "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.186", - "registry+https://github.com/rust-lang/crates.io-index#openssl-macros@0.1.1", - "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.115" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#pem@3.0.6", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#base64@0.22.1" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#pkg-config@0.3.33" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#portable-atomic@1.13.1" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#target-lexicon@0.13.5" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-ffi@0.28.3", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.186", - "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros-backend@0.28.3", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0", - "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106", - "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3", - "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45", - "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros@0.28.3", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106", - "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros-backend@0.28.3", - "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45", - "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3@0.28.3", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.186", - "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4", - "registry+https://github.com/rust-lang/crates.io-index#portable-atomic@1.13.1", - "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3", - "registry+https://github.com/rust-lang/crates.io-index#pyo3-ffi@0.28.3", - "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros@0.28.3" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#self_cell@1.2.2" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#shlex@1.3.0" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117", - "dependsOn": [ - "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106", - "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45", - "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24" - ] - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#target-lexicon@0.13.5" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24" - }, - { - "ref": "registry+https://github.com/rust-lang/crates.io-index#vcpkg@0.2.15" - } - ] -} \ No newline at end of file diff --git a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/sboms/sbom.json b/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/sboms/sbom.json deleted file mode 100644 index d32d09d..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography-48.0.1.dist-info/sboms/sbom.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "bomFormat": "CycloneDX", - "specVersion": "1.5", - "version": 1, - "serialNumber": "urn:uuid:6ce51f14-2a49-4fba-897f-3acc6a5b22fd", - "metadata": { - "timestamp": "2026-06-09T21:55:40Z" - }, - "components": [ - { - "type": "library", - "name": "openssl", - "version": "4.0.1", - "purl": "pkg:generic/openssl@4.0.1?download_url=https://github.com/openssl/openssl/releases/download/openssl-4.0.1/openssl-4.0.1.tar.gz", - "hashes": [ - { - "alg": "SHA-256", - "content": "2db3f3a0d6ea4b59e1f094ace2c8cd536dffb87cdc39084c5afa1e6f7f37dd09" - } - ], - "externalReferences": [ - { - "type": "distribution", - "url": "https://github.com/openssl/openssl/releases/download/openssl-4.0.1/openssl-4.0.1.tar.gz" - } - ], - "properties": [ - { - "name": "build:operating-system", - "value": "linux" - }, - { - "name": "build:architecture", - "value": "x86_64" - }, - { - "name": "build:flags", - "value": "no-zlib no-shared no-module no-comp no-apps no-docs no-sm2-precomp no-atexit enable-ec_nistp_64_gcc_128" - } - ] - } - ] -} diff --git a/.venv/lib/python3.9/site-packages/cryptography/__about__.py b/.venv/lib/python3.9/site-packages/cryptography/__about__.py deleted file mode 100644 index d9ec9bc..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/__about__.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -__all__ = [ - "__author__", - "__copyright__", - "__version__", -] - -__version__ = "48.0.1" - - -__author__ = "The Python Cryptographic Authority and individual contributors" -__copyright__ = f"Copyright 2013-2026 {__author__}" diff --git a/.venv/lib/python3.9/site-packages/cryptography/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/__init__.py deleted file mode 100644 index d374f75..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.__about__ import __author__, __copyright__, __version__ - -__all__ = [ - "__author__", - "__copyright__", - "__version__", -] diff --git a/.venv/lib/python3.9/site-packages/cryptography/__pycache__/__about__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/__pycache__/__about__.cpython-39.pyc deleted file mode 100644 index c1116d10b38ad9aa0013ae3074d5c1c39d51c557..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmYk2y-ve06ou_1O{uqz?B!_hsGeeZWJ84mlvR`(;`zC!>$o%vs$HP-+@eP$a9C@jDprVxS+px!G? zJ?f`E4bp&iSnv#9ytG5Zdk}ZO+>{u$10sYp#BeEe?6-Z4No8`WFm8t!XR>S*-{i*H z0md~`+CIei5YEq&aWXkvJ>)F9YwQmZEmcz*xlyFdc^2Iq$8gg`M9_!}%4<$5Qbd^) zM)6f;q|%4e-NvBzF&1n>!@zHa>FqV2qN{Z!GRy&Y-M=hXB?k_E}Uq>k1AU(BykG0ERi^mah8SD}BG zN5m*1hA0dkA_VmG7~+Qk=WT-_i0XvqB(&P!-w8Jnueq%rL{JfLoNV4?he4dv2moai X!BlRVSC4~jM~zPjCnT`T>?->Qe;jBb diff --git a/.venv/lib/python3.9/site-packages/cryptography/__pycache__/exceptions.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/__pycache__/exceptions.cpython-39.pyc deleted file mode 100644 index 5dd85b9fedc150ded85eeb2420dece8087647966..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2049 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 None: - super().__init__(message) - self._reason = reason - - -class AlreadyFinalized(Exception): - pass - - -class AlreadyUpdated(Exception): - pass - - -class NotYetFinalized(Exception): - pass - - -class InvalidTag(Exception): - pass - - -class InvalidSignature(Exception): - pass - - -class InternalError(Exception): - def __init__( - self, msg: str, err_code: list[rust_openssl.OpenSSLError] - ) -> None: - super().__init__(msg) - self.err_code = err_code - - -class InvalidKey(Exception): - pass diff --git a/.venv/lib/python3.9/site-packages/cryptography/fernet.py b/.venv/lib/python3.9/site-packages/cryptography/fernet.py deleted file mode 100644 index c6744ae..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/fernet.py +++ /dev/null @@ -1,224 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import base64 -import binascii -import os -import time -import typing -from collections.abc import Iterable - -from cryptography import utils -from cryptography.exceptions import InvalidSignature -from cryptography.hazmat.primitives import hashes, padding -from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes -from cryptography.hazmat.primitives.hmac import HMAC - - -class InvalidToken(Exception): - pass - - -_MAX_CLOCK_SKEW = 60 - - -class Fernet: - def __init__( - self, - key: bytes | str, - backend: typing.Any = None, - ) -> None: - try: - key = base64.urlsafe_b64decode(key) - except binascii.Error as exc: - raise ValueError( - "Fernet key must be 32 url-safe base64-encoded bytes." - ) from exc - if len(key) != 32: - raise ValueError( - "Fernet key must be 32 url-safe base64-encoded bytes." - ) - - self._signing_key = key[:16] - self._encryption_key = key[16:] - - @classmethod - def generate_key(cls) -> bytes: - return base64.urlsafe_b64encode(os.urandom(32)) - - def encrypt(self, data: bytes) -> bytes: - return self.encrypt_at_time(data, int(time.time())) - - def encrypt_at_time(self, data: bytes, current_time: int) -> bytes: - iv = os.urandom(16) - return self._encrypt_from_parts(data, current_time, iv) - - def _encrypt_from_parts( - self, data: bytes, current_time: int, iv: bytes - ) -> bytes: - utils._check_bytes("data", data) - - padder = padding.PKCS7(algorithms.AES.block_size).padder() - padded_data = padder.update(data) + padder.finalize() - encryptor = Cipher( - algorithms.AES(self._encryption_key), - modes.CBC(iv), - ).encryptor() - ciphertext = encryptor.update(padded_data) + encryptor.finalize() - - basic_parts = ( - b"\x80" - + current_time.to_bytes(length=8, byteorder="big") - + iv - + ciphertext - ) - - h = HMAC(self._signing_key, hashes.SHA256()) - h.update(basic_parts) - hmac = h.finalize() - return base64.urlsafe_b64encode(basic_parts + hmac) - - def decrypt(self, token: bytes | str, ttl: int | None = None) -> bytes: - timestamp, data = Fernet._get_unverified_token_data(token) - if ttl is None: - time_info = None - else: - time_info = (ttl, int(time.time())) - return self._decrypt_data(data, timestamp, time_info) - - def decrypt_at_time( - self, token: bytes | str, ttl: int, current_time: int - ) -> bytes: - if ttl is None: - raise ValueError( - "decrypt_at_time() can only be used with a non-None ttl" - ) - timestamp, data = Fernet._get_unverified_token_data(token) - return self._decrypt_data(data, timestamp, (ttl, current_time)) - - def extract_timestamp(self, token: bytes | str) -> int: - timestamp, data = Fernet._get_unverified_token_data(token) - # Verify the token was not tampered with. - self._verify_signature(data) - return timestamp - - @staticmethod - def _get_unverified_token_data(token: bytes | str) -> tuple[int, bytes]: - if not isinstance(token, (str, bytes)): - raise TypeError("token must be bytes or str") - - try: - data = base64.urlsafe_b64decode(token) - except (TypeError, binascii.Error): - raise InvalidToken - - if not data or data[0] != 0x80: - raise InvalidToken - - if len(data) < 9: - raise InvalidToken - - timestamp = int.from_bytes(data[1:9], byteorder="big") - return timestamp, data - - def _verify_signature(self, data: bytes) -> None: - h = HMAC(self._signing_key, hashes.SHA256()) - h.update(data[:-32]) - try: - h.verify(data[-32:]) - except InvalidSignature: - raise InvalidToken - - def _decrypt_data( - self, - data: bytes, - timestamp: int, - time_info: tuple[int, int] | None, - ) -> bytes: - if time_info is not None: - ttl, current_time = time_info - if timestamp + ttl < current_time: - raise InvalidToken - - if current_time + _MAX_CLOCK_SKEW < timestamp: - raise InvalidToken - - self._verify_signature(data) - - iv = data[9:25] - ciphertext = data[25:-32] - decryptor = Cipher( - algorithms.AES(self._encryption_key), modes.CBC(iv) - ).decryptor() - plaintext_padded = decryptor.update(ciphertext) - try: - plaintext_padded += decryptor.finalize() - except ValueError: - raise InvalidToken - unpadder = padding.PKCS7(algorithms.AES.block_size).unpadder() - - unpadded = unpadder.update(plaintext_padded) - try: - unpadded += unpadder.finalize() - except ValueError: - raise InvalidToken - return unpadded - - -class MultiFernet: - def __init__(self, fernets: Iterable[Fernet]): - fernets = list(fernets) - if not fernets: - raise ValueError( - "MultiFernet requires at least one Fernet instance" - ) - self._fernets = fernets - - def encrypt(self, msg: bytes) -> bytes: - return self.encrypt_at_time(msg, int(time.time())) - - def encrypt_at_time(self, msg: bytes, current_time: int) -> bytes: - return self._fernets[0].encrypt_at_time(msg, current_time) - - def rotate(self, msg: bytes | str) -> bytes: - timestamp, data = Fernet._get_unverified_token_data(msg) - for f in self._fernets: - try: - p = f._decrypt_data(data, timestamp, None) - break - except InvalidToken: - pass - else: - raise InvalidToken - - iv = os.urandom(16) - return self._fernets[0]._encrypt_from_parts(p, timestamp, iv) - - def decrypt(self, msg: bytes | str, ttl: int | None = None) -> bytes: - for f in self._fernets: - try: - return f.decrypt(msg, ttl) - except InvalidToken: - pass - raise InvalidToken - - def decrypt_at_time( - self, msg: bytes | str, ttl: int, current_time: int - ) -> bytes: - for f in self._fernets: - try: - return f.decrypt_at_time(msg, ttl, current_time) - except InvalidToken: - pass - raise InvalidToken - - def extract_timestamp(self, msg: bytes | str) -> int: - for f in self._fernets: - try: - return f.extract_timestamp(msg) - except InvalidToken: - pass - raise InvalidToken diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/__init__.py deleted file mode 100644 index b9f1187..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -""" -Hazardous Materials - -This is a "Hazardous Materials" module. You should ONLY use it if you're -100% absolutely sure that you know what you're doing because this module -is full of land mines, dragons, and dinosaurs with laser guns. -""" diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index a9bcfd3ea5ae29cb96fe0aebb5c0097502420170..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmYjLJ5Izf6tuG-(85YwBL#T{Df zT=4u*7Sj@O+e@DaG0hVnDjj7x(C-V_&=G7L+gGzE5)fhmPg_BzG*Ci$^B7a8i5aSa z`~a=nT(2RHVuQb`Zh)Q8Wi<7(*%3pX#wcNzOtd3d^WGT&MCY9#R&kt8Z@bX+E!`dG K7d$^YFa7|chDKum diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/__pycache__/_oid.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/__pycache__/_oid.cpython-39.pyc deleted file mode 100644 index cbe77390071781ac0c4e52e66657be43419003a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12360 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 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/_oid.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/_oid.py deleted file mode 100644 index 4bf138d..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/_oid.py +++ /dev/null @@ -1,356 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.bindings._rust import ( - ObjectIdentifier as ObjectIdentifier, -) -from cryptography.hazmat.primitives import hashes - - -class ExtensionOID: - SUBJECT_DIRECTORY_ATTRIBUTES = ObjectIdentifier("2.5.29.9") - SUBJECT_KEY_IDENTIFIER = ObjectIdentifier("2.5.29.14") - KEY_USAGE = ObjectIdentifier("2.5.29.15") - PRIVATE_KEY_USAGE_PERIOD = ObjectIdentifier("2.5.29.16") - SUBJECT_ALTERNATIVE_NAME = ObjectIdentifier("2.5.29.17") - ISSUER_ALTERNATIVE_NAME = ObjectIdentifier("2.5.29.18") - BASIC_CONSTRAINTS = ObjectIdentifier("2.5.29.19") - NAME_CONSTRAINTS = ObjectIdentifier("2.5.29.30") - CRL_DISTRIBUTION_POINTS = ObjectIdentifier("2.5.29.31") - CERTIFICATE_POLICIES = ObjectIdentifier("2.5.29.32") - POLICY_MAPPINGS = ObjectIdentifier("2.5.29.33") - AUTHORITY_KEY_IDENTIFIER = ObjectIdentifier("2.5.29.35") - POLICY_CONSTRAINTS = ObjectIdentifier("2.5.29.36") - EXTENDED_KEY_USAGE = ObjectIdentifier("2.5.29.37") - FRESHEST_CRL = ObjectIdentifier("2.5.29.46") - INHIBIT_ANY_POLICY = ObjectIdentifier("2.5.29.54") - ISSUING_DISTRIBUTION_POINT = ObjectIdentifier("2.5.29.28") - AUTHORITY_INFORMATION_ACCESS = ObjectIdentifier("1.3.6.1.5.5.7.1.1") - SUBJECT_INFORMATION_ACCESS = ObjectIdentifier("1.3.6.1.5.5.7.1.11") - OCSP_NO_CHECK = ObjectIdentifier("1.3.6.1.5.5.7.48.1.5") - TLS_FEATURE = ObjectIdentifier("1.3.6.1.5.5.7.1.24") - CRL_NUMBER = ObjectIdentifier("2.5.29.20") - DELTA_CRL_INDICATOR = ObjectIdentifier("2.5.29.27") - PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS = ObjectIdentifier( - "1.3.6.1.4.1.11129.2.4.2" - ) - PRECERT_POISON = ObjectIdentifier("1.3.6.1.4.1.11129.2.4.3") - SIGNED_CERTIFICATE_TIMESTAMPS = ObjectIdentifier("1.3.6.1.4.1.11129.2.4.5") - MS_CERTIFICATE_TEMPLATE = ObjectIdentifier("1.3.6.1.4.1.311.21.7") - ADMISSIONS = ObjectIdentifier("1.3.36.8.3.3") - - -class OCSPExtensionOID: - NONCE = ObjectIdentifier("1.3.6.1.5.5.7.48.1.2") - ACCEPTABLE_RESPONSES = ObjectIdentifier("1.3.6.1.5.5.7.48.1.4") - - -class CRLEntryExtensionOID: - CERTIFICATE_ISSUER = ObjectIdentifier("2.5.29.29") - CRL_REASON = ObjectIdentifier("2.5.29.21") - INVALIDITY_DATE = ObjectIdentifier("2.5.29.24") - - -class NameOID: - COMMON_NAME = ObjectIdentifier("2.5.4.3") - COUNTRY_NAME = ObjectIdentifier("2.5.4.6") - LOCALITY_NAME = ObjectIdentifier("2.5.4.7") - STATE_OR_PROVINCE_NAME = ObjectIdentifier("2.5.4.8") - STREET_ADDRESS = ObjectIdentifier("2.5.4.9") - ORGANIZATION_IDENTIFIER = ObjectIdentifier("2.5.4.97") - ORGANIZATION_NAME = ObjectIdentifier("2.5.4.10") - ORGANIZATIONAL_UNIT_NAME = ObjectIdentifier("2.5.4.11") - SERIAL_NUMBER = ObjectIdentifier("2.5.4.5") - SURNAME = ObjectIdentifier("2.5.4.4") - GIVEN_NAME = ObjectIdentifier("2.5.4.42") - TITLE = ObjectIdentifier("2.5.4.12") - INITIALS = ObjectIdentifier("2.5.4.43") - GENERATION_QUALIFIER = ObjectIdentifier("2.5.4.44") - X500_UNIQUE_IDENTIFIER = ObjectIdentifier("2.5.4.45") - DN_QUALIFIER = ObjectIdentifier("2.5.4.46") - PSEUDONYM = ObjectIdentifier("2.5.4.65") - USER_ID = ObjectIdentifier("0.9.2342.19200300.100.1.1") - DOMAIN_COMPONENT = ObjectIdentifier("0.9.2342.19200300.100.1.25") - EMAIL_ADDRESS = ObjectIdentifier("1.2.840.113549.1.9.1") - JURISDICTION_COUNTRY_NAME = ObjectIdentifier("1.3.6.1.4.1.311.60.2.1.3") - JURISDICTION_LOCALITY_NAME = ObjectIdentifier("1.3.6.1.4.1.311.60.2.1.1") - JURISDICTION_STATE_OR_PROVINCE_NAME = ObjectIdentifier( - "1.3.6.1.4.1.311.60.2.1.2" - ) - BUSINESS_CATEGORY = ObjectIdentifier("2.5.4.15") - POSTAL_ADDRESS = ObjectIdentifier("2.5.4.16") - POSTAL_CODE = ObjectIdentifier("2.5.4.17") - INN = ObjectIdentifier("1.2.643.3.131.1.1") - OGRN = ObjectIdentifier("1.2.643.100.1") - SNILS = ObjectIdentifier("1.2.643.100.3") - UNSTRUCTURED_NAME = ObjectIdentifier("1.2.840.113549.1.9.2") - - -class SignatureAlgorithmOID: - RSA_WITH_MD5 = ObjectIdentifier("1.2.840.113549.1.1.4") - RSA_WITH_SHA1 = ObjectIdentifier("1.2.840.113549.1.1.5") - # This is an alternate OID for RSA with SHA1 that is occasionally seen - _RSA_WITH_SHA1 = ObjectIdentifier("1.3.14.3.2.29") - RSA_WITH_SHA224 = ObjectIdentifier("1.2.840.113549.1.1.14") - RSA_WITH_SHA256 = ObjectIdentifier("1.2.840.113549.1.1.11") - RSA_WITH_SHA384 = ObjectIdentifier("1.2.840.113549.1.1.12") - RSA_WITH_SHA512 = ObjectIdentifier("1.2.840.113549.1.1.13") - RSA_WITH_SHA3_224 = ObjectIdentifier("2.16.840.1.101.3.4.3.13") - RSA_WITH_SHA3_256 = ObjectIdentifier("2.16.840.1.101.3.4.3.14") - RSA_WITH_SHA3_384 = ObjectIdentifier("2.16.840.1.101.3.4.3.15") - RSA_WITH_SHA3_512 = ObjectIdentifier("2.16.840.1.101.3.4.3.16") - RSASSA_PSS = ObjectIdentifier("1.2.840.113549.1.1.10") - ECDSA_WITH_SHA1 = ObjectIdentifier("1.2.840.10045.4.1") - ECDSA_WITH_SHA224 = ObjectIdentifier("1.2.840.10045.4.3.1") - ECDSA_WITH_SHA256 = ObjectIdentifier("1.2.840.10045.4.3.2") - ECDSA_WITH_SHA384 = ObjectIdentifier("1.2.840.10045.4.3.3") - ECDSA_WITH_SHA512 = ObjectIdentifier("1.2.840.10045.4.3.4") - ECDSA_WITH_SHA3_224 = ObjectIdentifier("2.16.840.1.101.3.4.3.9") - ECDSA_WITH_SHA3_256 = ObjectIdentifier("2.16.840.1.101.3.4.3.10") - ECDSA_WITH_SHA3_384 = ObjectIdentifier("2.16.840.1.101.3.4.3.11") - ECDSA_WITH_SHA3_512 = ObjectIdentifier("2.16.840.1.101.3.4.3.12") - DSA_WITH_SHA1 = ObjectIdentifier("1.2.840.10040.4.3") - DSA_WITH_SHA224 = ObjectIdentifier("2.16.840.1.101.3.4.3.1") - DSA_WITH_SHA256 = ObjectIdentifier("2.16.840.1.101.3.4.3.2") - DSA_WITH_SHA384 = ObjectIdentifier("2.16.840.1.101.3.4.3.3") - DSA_WITH_SHA512 = ObjectIdentifier("2.16.840.1.101.3.4.3.4") - ED25519 = ObjectIdentifier("1.3.101.112") - ED448 = ObjectIdentifier("1.3.101.113") - GOSTR3411_94_WITH_3410_2001 = ObjectIdentifier("1.2.643.2.2.3") - GOSTR3410_2012_WITH_3411_2012_256 = ObjectIdentifier("1.2.643.7.1.1.3.2") - GOSTR3410_2012_WITH_3411_2012_512 = ObjectIdentifier("1.2.643.7.1.1.3.3") - - -_SIG_OIDS_TO_HASH: dict[ObjectIdentifier, hashes.HashAlgorithm | None] = { - SignatureAlgorithmOID.RSA_WITH_MD5: hashes.MD5(), - SignatureAlgorithmOID.RSA_WITH_SHA1: hashes.SHA1(), - SignatureAlgorithmOID._RSA_WITH_SHA1: hashes.SHA1(), - SignatureAlgorithmOID.RSA_WITH_SHA224: hashes.SHA224(), - SignatureAlgorithmOID.RSA_WITH_SHA256: hashes.SHA256(), - SignatureAlgorithmOID.RSA_WITH_SHA384: hashes.SHA384(), - SignatureAlgorithmOID.RSA_WITH_SHA512: hashes.SHA512(), - SignatureAlgorithmOID.RSA_WITH_SHA3_224: hashes.SHA3_224(), - SignatureAlgorithmOID.RSA_WITH_SHA3_256: hashes.SHA3_256(), - SignatureAlgorithmOID.RSA_WITH_SHA3_384: hashes.SHA3_384(), - SignatureAlgorithmOID.RSA_WITH_SHA3_512: hashes.SHA3_512(), - SignatureAlgorithmOID.ECDSA_WITH_SHA1: hashes.SHA1(), - SignatureAlgorithmOID.ECDSA_WITH_SHA224: hashes.SHA224(), - SignatureAlgorithmOID.ECDSA_WITH_SHA256: hashes.SHA256(), - SignatureAlgorithmOID.ECDSA_WITH_SHA384: hashes.SHA384(), - SignatureAlgorithmOID.ECDSA_WITH_SHA512: hashes.SHA512(), - SignatureAlgorithmOID.ECDSA_WITH_SHA3_224: hashes.SHA3_224(), - SignatureAlgorithmOID.ECDSA_WITH_SHA3_256: hashes.SHA3_256(), - SignatureAlgorithmOID.ECDSA_WITH_SHA3_384: hashes.SHA3_384(), - SignatureAlgorithmOID.ECDSA_WITH_SHA3_512: hashes.SHA3_512(), - SignatureAlgorithmOID.DSA_WITH_SHA1: hashes.SHA1(), - SignatureAlgorithmOID.DSA_WITH_SHA224: hashes.SHA224(), - SignatureAlgorithmOID.DSA_WITH_SHA256: hashes.SHA256(), - SignatureAlgorithmOID.ED25519: None, - SignatureAlgorithmOID.ED448: None, - SignatureAlgorithmOID.GOSTR3411_94_WITH_3410_2001: None, - SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_256: None, - SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_512: None, -} - - -class HashAlgorithmOID: - SHA1 = ObjectIdentifier("1.3.14.3.2.26") - SHA224 = ObjectIdentifier("2.16.840.1.101.3.4.2.4") - SHA256 = ObjectIdentifier("2.16.840.1.101.3.4.2.1") - SHA384 = ObjectIdentifier("2.16.840.1.101.3.4.2.2") - SHA512 = ObjectIdentifier("2.16.840.1.101.3.4.2.3") - SHA3_224 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.224") - SHA3_256 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.256") - SHA3_384 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.384") - SHA3_512 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.512") - SHA3_224_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.7") - SHA3_256_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.8") - SHA3_384_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.9") - SHA3_512_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.10") - - -class PublicKeyAlgorithmOID: - DSA = ObjectIdentifier("1.2.840.10040.4.1") - EC_PUBLIC_KEY = ObjectIdentifier("1.2.840.10045.2.1") - RSAES_PKCS1_v1_5 = ObjectIdentifier("1.2.840.113549.1.1.1") - RSASSA_PSS = ObjectIdentifier("1.2.840.113549.1.1.10") - X25519 = ObjectIdentifier("1.3.101.110") - X448 = ObjectIdentifier("1.3.101.111") - ED25519 = ObjectIdentifier("1.3.101.112") - ED448 = ObjectIdentifier("1.3.101.113") - - -class ExtendedKeyUsageOID: - SERVER_AUTH = ObjectIdentifier("1.3.6.1.5.5.7.3.1") - CLIENT_AUTH = ObjectIdentifier("1.3.6.1.5.5.7.3.2") - CODE_SIGNING = ObjectIdentifier("1.3.6.1.5.5.7.3.3") - EMAIL_PROTECTION = ObjectIdentifier("1.3.6.1.5.5.7.3.4") - TIME_STAMPING = ObjectIdentifier("1.3.6.1.5.5.7.3.8") - OCSP_SIGNING = ObjectIdentifier("1.3.6.1.5.5.7.3.9") - ANY_EXTENDED_KEY_USAGE = ObjectIdentifier("2.5.29.37.0") - SMARTCARD_LOGON = ObjectIdentifier("1.3.6.1.4.1.311.20.2.2") - KERBEROS_PKINIT_KDC = ObjectIdentifier("1.3.6.1.5.2.3.5") - IPSEC_IKE = ObjectIdentifier("1.3.6.1.5.5.7.3.17") - BUNDLE_SECURITY = ObjectIdentifier("1.3.6.1.5.5.7.3.35") - CERTIFICATE_TRANSPARENCY = ObjectIdentifier("1.3.6.1.4.1.11129.2.4.4") - - -class OtherNameFormOID: - PERMANENT_IDENTIFIER = ObjectIdentifier("1.3.6.1.5.5.7.8.3") - HW_MODULE_NAME = ObjectIdentifier("1.3.6.1.5.5.7.8.4") - DNS_SRV = ObjectIdentifier("1.3.6.1.5.5.7.8.7") - NAI_REALM = ObjectIdentifier("1.3.6.1.5.5.7.8.8") - SMTP_UTF8_MAILBOX = ObjectIdentifier("1.3.6.1.5.5.7.8.9") - ACP_NODE_NAME = ObjectIdentifier("1.3.6.1.5.5.7.8.10") - BUNDLE_EID = ObjectIdentifier("1.3.6.1.5.5.7.8.11") - - -class AuthorityInformationAccessOID: - CA_ISSUERS = ObjectIdentifier("1.3.6.1.5.5.7.48.2") - OCSP = ObjectIdentifier("1.3.6.1.5.5.7.48.1") - - -class SubjectInformationAccessOID: - CA_REPOSITORY = ObjectIdentifier("1.3.6.1.5.5.7.48.5") - - -class CertificatePoliciesOID: - CPS_QUALIFIER = ObjectIdentifier("1.3.6.1.5.5.7.2.1") - CPS_USER_NOTICE = ObjectIdentifier("1.3.6.1.5.5.7.2.2") - ANY_POLICY = ObjectIdentifier("2.5.29.32.0") - - -class AttributeOID: - CHALLENGE_PASSWORD = ObjectIdentifier("1.2.840.113549.1.9.7") - UNSTRUCTURED_NAME = ObjectIdentifier("1.2.840.113549.1.9.2") - - -_OID_NAMES = { - NameOID.COMMON_NAME: "commonName", - NameOID.COUNTRY_NAME: "countryName", - NameOID.LOCALITY_NAME: "localityName", - NameOID.STATE_OR_PROVINCE_NAME: "stateOrProvinceName", - NameOID.STREET_ADDRESS: "streetAddress", - NameOID.ORGANIZATION_NAME: "organizationName", - NameOID.ORGANIZATIONAL_UNIT_NAME: "organizationalUnitName", - NameOID.SERIAL_NUMBER: "serialNumber", - NameOID.SURNAME: "surname", - NameOID.GIVEN_NAME: "givenName", - NameOID.TITLE: "title", - NameOID.GENERATION_QUALIFIER: "generationQualifier", - NameOID.X500_UNIQUE_IDENTIFIER: "x500UniqueIdentifier", - NameOID.DN_QUALIFIER: "dnQualifier", - NameOID.PSEUDONYM: "pseudonym", - NameOID.USER_ID: "userID", - NameOID.DOMAIN_COMPONENT: "domainComponent", - NameOID.EMAIL_ADDRESS: "emailAddress", - NameOID.JURISDICTION_COUNTRY_NAME: "jurisdictionCountryName", - NameOID.JURISDICTION_LOCALITY_NAME: "jurisdictionLocalityName", - NameOID.JURISDICTION_STATE_OR_PROVINCE_NAME: ( - "jurisdictionStateOrProvinceName" - ), - NameOID.BUSINESS_CATEGORY: "businessCategory", - NameOID.POSTAL_ADDRESS: "postalAddress", - NameOID.POSTAL_CODE: "postalCode", - NameOID.INN: "INN", - NameOID.OGRN: "OGRN", - NameOID.SNILS: "SNILS", - NameOID.UNSTRUCTURED_NAME: "unstructuredName", - SignatureAlgorithmOID.RSA_WITH_MD5: "md5WithRSAEncryption", - SignatureAlgorithmOID.RSA_WITH_SHA1: "sha1WithRSAEncryption", - SignatureAlgorithmOID.RSA_WITH_SHA224: "sha224WithRSAEncryption", - SignatureAlgorithmOID.RSA_WITH_SHA256: "sha256WithRSAEncryption", - SignatureAlgorithmOID.RSA_WITH_SHA384: "sha384WithRSAEncryption", - SignatureAlgorithmOID.RSA_WITH_SHA512: "sha512WithRSAEncryption", - SignatureAlgorithmOID.RSASSA_PSS: "rsassaPss", - SignatureAlgorithmOID.ECDSA_WITH_SHA1: "ecdsa-with-SHA1", - SignatureAlgorithmOID.ECDSA_WITH_SHA224: "ecdsa-with-SHA224", - SignatureAlgorithmOID.ECDSA_WITH_SHA256: "ecdsa-with-SHA256", - SignatureAlgorithmOID.ECDSA_WITH_SHA384: "ecdsa-with-SHA384", - SignatureAlgorithmOID.ECDSA_WITH_SHA512: "ecdsa-with-SHA512", - SignatureAlgorithmOID.DSA_WITH_SHA1: "dsa-with-sha1", - SignatureAlgorithmOID.DSA_WITH_SHA224: "dsa-with-sha224", - SignatureAlgorithmOID.DSA_WITH_SHA256: "dsa-with-sha256", - SignatureAlgorithmOID.ED25519: "ed25519", - SignatureAlgorithmOID.ED448: "ed448", - SignatureAlgorithmOID.GOSTR3411_94_WITH_3410_2001: ( - "GOST R 34.11-94 with GOST R 34.10-2001" - ), - SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_256: ( - "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" - ), - SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_512: ( - "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" - ), - HashAlgorithmOID.SHA1: "sha1", - HashAlgorithmOID.SHA224: "sha224", - HashAlgorithmOID.SHA256: "sha256", - HashAlgorithmOID.SHA384: "sha384", - HashAlgorithmOID.SHA512: "sha512", - HashAlgorithmOID.SHA3_224: "sha3_224", - HashAlgorithmOID.SHA3_256: "sha3_256", - HashAlgorithmOID.SHA3_384: "sha3_384", - HashAlgorithmOID.SHA3_512: "sha3_512", - HashAlgorithmOID.SHA3_224_NIST: "sha3_224", - HashAlgorithmOID.SHA3_256_NIST: "sha3_256", - HashAlgorithmOID.SHA3_384_NIST: "sha3_384", - HashAlgorithmOID.SHA3_512_NIST: "sha3_512", - PublicKeyAlgorithmOID.DSA: "dsaEncryption", - PublicKeyAlgorithmOID.EC_PUBLIC_KEY: "id-ecPublicKey", - PublicKeyAlgorithmOID.RSAES_PKCS1_v1_5: "rsaEncryption", - PublicKeyAlgorithmOID.X25519: "X25519", - PublicKeyAlgorithmOID.X448: "X448", - ExtendedKeyUsageOID.SERVER_AUTH: "serverAuth", - ExtendedKeyUsageOID.CLIENT_AUTH: "clientAuth", - ExtendedKeyUsageOID.CODE_SIGNING: "codeSigning", - ExtendedKeyUsageOID.EMAIL_PROTECTION: "emailProtection", - ExtendedKeyUsageOID.TIME_STAMPING: "timeStamping", - ExtendedKeyUsageOID.OCSP_SIGNING: "OCSPSigning", - ExtendedKeyUsageOID.SMARTCARD_LOGON: "msSmartcardLogin", - ExtendedKeyUsageOID.KERBEROS_PKINIT_KDC: "pkInitKDC", - ExtensionOID.SUBJECT_DIRECTORY_ATTRIBUTES: "subjectDirectoryAttributes", - ExtensionOID.SUBJECT_KEY_IDENTIFIER: "subjectKeyIdentifier", - ExtensionOID.KEY_USAGE: "keyUsage", - ExtensionOID.PRIVATE_KEY_USAGE_PERIOD: "privateKeyUsagePeriod", - ExtensionOID.SUBJECT_ALTERNATIVE_NAME: "subjectAltName", - ExtensionOID.ISSUER_ALTERNATIVE_NAME: "issuerAltName", - ExtensionOID.BASIC_CONSTRAINTS: "basicConstraints", - ExtensionOID.PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS: ( - "signedCertificateTimestampList" - ), - ExtensionOID.SIGNED_CERTIFICATE_TIMESTAMPS: ( - "signedCertificateTimestampList" - ), - ExtensionOID.PRECERT_POISON: "ctPoison", - ExtensionOID.MS_CERTIFICATE_TEMPLATE: "msCertificateTemplate", - ExtensionOID.ADMISSIONS: "Admissions", - CRLEntryExtensionOID.CRL_REASON: "cRLReason", - CRLEntryExtensionOID.INVALIDITY_DATE: "invalidityDate", - CRLEntryExtensionOID.CERTIFICATE_ISSUER: "certificateIssuer", - ExtensionOID.NAME_CONSTRAINTS: "nameConstraints", - ExtensionOID.CRL_DISTRIBUTION_POINTS: "cRLDistributionPoints", - ExtensionOID.CERTIFICATE_POLICIES: "certificatePolicies", - ExtensionOID.POLICY_MAPPINGS: "policyMappings", - ExtensionOID.AUTHORITY_KEY_IDENTIFIER: "authorityKeyIdentifier", - ExtensionOID.POLICY_CONSTRAINTS: "policyConstraints", - ExtensionOID.EXTENDED_KEY_USAGE: "extendedKeyUsage", - ExtensionOID.FRESHEST_CRL: "freshestCRL", - ExtensionOID.INHIBIT_ANY_POLICY: "inhibitAnyPolicy", - ExtensionOID.ISSUING_DISTRIBUTION_POINT: "issuingDistributionPoint", - ExtensionOID.AUTHORITY_INFORMATION_ACCESS: "authorityInfoAccess", - ExtensionOID.SUBJECT_INFORMATION_ACCESS: "subjectInfoAccess", - ExtensionOID.OCSP_NO_CHECK: "OCSPNoCheck", - ExtensionOID.CRL_NUMBER: "cRLNumber", - ExtensionOID.DELTA_CRL_INDICATOR: "deltaCRLIndicator", - ExtensionOID.TLS_FEATURE: "TLSFeature", - AuthorityInformationAccessOID.OCSP: "OCSP", - AuthorityInformationAccessOID.CA_ISSUERS: "caIssuers", - SubjectInformationAccessOID.CA_REPOSITORY: "caRepository", - CertificatePoliciesOID.CPS_QUALIFIER: "id-qt-cps", - CertificatePoliciesOID.CPS_USER_NOTICE: "id-qt-unotice", - OCSPExtensionOID.NONCE: "OCSPNonce", - AttributeOID.CHALLENGE_PASSWORD: "challengePassword", -} diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/__init__.py deleted file mode 100644 index ac3d4bd..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.hazmat.asn1.asn1 import ( - TLV, - BitString, - Default, - Explicit, - GeneralizedTime, - IA5String, - Implicit, - Null, - PrintableString, - SetOf, - Size, - UTCTime, - Variant, - decode_der, - encode_der, - sequence, - set, -) - -__all__ = [ - "TLV", - "BitString", - "Default", - "Explicit", - "GeneralizedTime", - "IA5String", - "Implicit", - "Null", - "PrintableString", - "SetOf", - "Size", - "UTCTime", - "Variant", - "decode_der", - "encode_der", - "sequence", - "set", -] diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index eae51610bb2776a0d23d349f768a3023523e132c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmYk&%We}f6b9g#%p^0pOfIEc9v};1AubXULM<1eN>xEhsE{|7lR3$_^_dxLCp3K= zc033#;Vm0@1y;-{5$cir$+nJ<^jl_GFK8xL?g(aMCRMxgihoPzM*35sxtDF}8UdJG_GlPcY>vc6k?jyoY_>#{nN;#xor9A&&S6$9#+vJ_&A`g3qs959@4i-U?u;roK6wjkxz*06?`~?XR?7L&dnmz3t!^P-C}dCOSkyq(qmX z&o_NyKxD*_7!hM)LL4>tLb6_1SVeNzkvjZdC zO(|+qt-x9~+d;WwS}mVHW%b?_RrzH0f?4I@Q7u>3as!s#kH-E*V-$@Ep-Sb1nALlq RzQiiuYIsH2Eag2v{tKhxs15)C diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/__pycache__/asn1.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/asn1/__pycache__/asn1.cpython-39.pyc deleted file mode 100644 index d2fdc657e157fda273d78faa65dd86e5a4f2745f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8348 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 Qd4O=>Wg5$7;28Y bool: - # NOTE: types.UnionType for `T | U`, typing.Union for `Union[T, U]`. - # TODO: Drop the `hasattr()` once the minimum supported Python version - # is >= 3.10. - union_types = ( - (types.UnionType, typing.Union) - if hasattr(types, "UnionType") - else (typing.Union,) - ) - return typing.get_origin(field_type) in union_types - - -def _extract_annotation( - metadata: tuple, field_name: str -) -> declarative_asn1.Annotation: - default = None - encoding = None - size = None - for raw_annotation in metadata: - if isinstance(raw_annotation, Default): - if default is not None: - raise TypeError( - f"multiple DEFAULT annotations found in field " - f"'{field_name}'" - ) - default = raw_annotation.value - elif isinstance(raw_annotation, declarative_asn1.Encoding): - if encoding is not None: - raise TypeError( - f"multiple IMPLICIT/EXPLICIT annotations found in field " - f"'{field_name}'" - ) - encoding = raw_annotation - elif isinstance(raw_annotation, declarative_asn1.Size): - if size is not None: - raise TypeError( - f"multiple SIZE annotations found in field '{field_name}'" - ) - size = raw_annotation - else: - raise TypeError(f"unsupported annotation: {raw_annotation}") - - return declarative_asn1.Annotation( - default=default, encoding=encoding, size=size - ) - - -def _normalize_field_type( - field_type: typing.Any, field_name: str -) -> declarative_asn1.AnnotatedType: - # Strip the `Annotated[...]` off, and populate the annotation - # from it if it exists. - if typing.get_origin(field_type) is typing.Annotated: - annotation = _extract_annotation(field_type.__metadata__, field_name) - field_type, *_ = typing.get_args(field_type) - else: - annotation = declarative_asn1.Annotation() - - if annotation.size is not None and ( - typing.get_origin(field_type) not in (builtins.list, SetOf) - and field_type - not in ( - builtins.bytes, - builtins.str, - BitString, - IA5String, - PrintableString, - ) - ): - raise TypeError( - f"field '{field_name}' has a SIZE annotation, but SIZE " - "annotations are only supported for fields of types: " - "[SEQUENCE OF, SET OF, BIT STRING, OCTET STRING, UTF8String, " - "PrintableString, IA5String]" - ) - - if field_type is TLV: - if isinstance(annotation.encoding, Implicit): - raise TypeError( - f"field '{field_name}' has an IMPLICIT annotation, but " - "IMPLICIT annotations are not supported for TLV types." - ) - elif annotation.default is not None: - raise TypeError( - f"field '{field_name}' has a DEFAULT annotation, but " - "DEFAULT annotations are not supported for TLV types." - ) - - if hasattr(field_type, "__asn1_root__"): - root_type = field_type.__asn1_root__ - if not isinstance( - root_type, - (declarative_asn1.Type.Sequence, declarative_asn1.Type.Set), - ): - raise TypeError(f"unsupported root type: {root_type}") - return declarative_asn1.AnnotatedType( - typing.cast(declarative_asn1.Type, root_type), annotation - ) - elif _is_union(field_type): - union_args = typing.get_args(field_type) - if len(union_args) == 2 and NoneType in union_args: - # A Union between a type and None is an OPTIONAL - optional_type = ( - union_args[0] if union_args[1] is type(None) else union_args[1] - ) - if optional_type is TLV: - raise TypeError( - "optional TLV types (`TLV | None`) are not " - "currently supported" - ) - annotated_type = _normalize_field_type(optional_type, field_name) - - if not annotated_type.annotation.is_empty(): - raise TypeError( - "optional (`X | None`) types cannot have `X` " - "annotated: annotations must apply to the union " - "(i.e: `Annotated[X | None, annotation]`)" - ) - - if annotation.default is not None: - raise TypeError( - "optional (`X | None`) types should not have a DEFAULT " - "annotation" - ) - - rust_field_type = declarative_asn1.Type.Option(annotated_type) - - else: - # Otherwise, the Union is a CHOICE - if isinstance(annotation.encoding, Implicit): - # CHOICEs cannot be IMPLICIT. See X.680 section 31.2.9. - raise TypeError( - "CHOICE (`X | Y | ...`) types should not have an IMPLICIT " - "annotation" - ) - variants = [ - _type_to_variant(arg, field_name) - for arg in union_args - if arg is not type(None) - ] - - # Union types should either be all Variants - # (`Variant[..] | Variant[..] | etc`) or all non Variants - are_union_types_tagged = variants[0].tag_name is not None - if any( - (v.tag_name is not None) != are_union_types_tagged - for v in variants - ): - raise TypeError( - "When using `asn1.Variant` in a union, all the other " - "types in the union must also be `asn1.Variant`" - ) - - if are_union_types_tagged: - tags = {v.tag_name for v in variants} - if len(variants) != len(tags): - raise TypeError( - "When using `asn1.Variant` in a union, the tags used " - "must be unique" - ) - - rust_choice_type = declarative_asn1.Type.Choice(variants) - # If None is part of the union types, this is an OPTIONAL CHOICE - rust_field_type = ( - declarative_asn1.Type.Option( - declarative_asn1.AnnotatedType( - rust_choice_type, declarative_asn1.Annotation() - ) - ) - if NoneType in union_args - else rust_choice_type - ) - - elif typing.get_origin(field_type) is builtins.list: - inner_type = _normalize_field_type( - typing.get_args(field_type)[0], field_name - ) - rust_field_type = declarative_asn1.Type.SequenceOf(inner_type) - elif typing.get_origin(field_type) is SetOf: - inner_type = _normalize_field_type( - typing.get_args(field_type)[0], field_name - ) - rust_field_type = declarative_asn1.Type.SetOf(inner_type) - else: - rust_field_type = declarative_asn1.non_root_python_to_rust(field_type) - - return declarative_asn1.AnnotatedType(rust_field_type, annotation) - - -# Convert a type to a Variant. Used with types inside Union -# annotations (T1, T2, etc in `Union[T1, T2, ...]`). -def _type_to_variant( - t: typing.Any, field_name: str -) -> declarative_asn1.Variant: - is_annotated = typing.get_origin(t) is typing.Annotated - inner_type = typing.get_args(t)[0] if is_annotated else t - - # Check if this is a Variant[T, Tag] type - if typing.get_origin(inner_type) is Variant: - value_type, tag_literal = typing.get_args(inner_type) - if typing.get_origin(tag_literal) is not typing.Literal: - raise TypeError( - "When using `asn1.Variant` in a type annotation, the second " - "type parameter must be a `typing.Literal` type. E.g: " - '`Variant[int, typing.Literal["MyInt"]]`.' - ) - tag_name = typing.get_args(tag_literal)[0] - - if hasattr(value_type, "__asn1_root__"): - rust_type = value_type.__asn1_root__ - else: - rust_type = declarative_asn1.non_root_python_to_rust(value_type) - - if is_annotated: - ann_type = declarative_asn1.AnnotatedType( - rust_type, - _extract_annotation(t.__metadata__, field_name), - ) - else: - ann_type = declarative_asn1.AnnotatedType( - rust_type, - declarative_asn1.Annotation(), - ) - - return declarative_asn1.Variant(Variant, ann_type, tag_name) - else: - # Plain type (not a tagged Variant) - return declarative_asn1.Variant( - inner_type, - _normalize_field_type(t, field_name), - None, - ) - - -def _annotate_fields( - raw_fields: dict[str, type], -) -> dict[str, declarative_asn1.AnnotatedType]: - fields = {} - for field_name, field_type in raw_fields.items(): - # Recursively normalize the field type into something that the - # Rust code can understand. - annotated_field_type = _normalize_field_type(field_type, field_name) - fields[field_name] = annotated_field_type - - return fields - - -def _register_asn1_sequence(cls: type[U]) -> None: - raw_fields = typing.get_type_hints(cls, include_extras=True) - root = declarative_asn1.Type.Sequence(cls, _annotate_fields(raw_fields)) - - setattr(cls, "__asn1_root__", root) - - -def _register_asn1_set(cls: type[U]) -> None: - raw_fields = typing.get_type_hints(cls, include_extras=True) - root = declarative_asn1.Type.Set(cls, _annotate_fields(raw_fields)) - - setattr(cls, "__asn1_root__", root) - - -# Due to https://github.com/python/mypy/issues/19731, we can't define an alias -# for `dataclass_transform` that conditionally points to `typing` or -# `typing_extensions` depending on the Python version. We work around it by -# making the whole decorated class conditional on the Python version. -if sys.version_info < (3, 11): - - @typing_extensions.dataclass_transform(kw_only_default=True) - def sequence(cls: type[U]) -> type[U]: - # We use `dataclasses.dataclass` to add an __init__ method - # to the class with keyword-only parameters. - if sys.version_info >= (3, 10): - dataclass_cls = dataclasses.dataclass( - repr=False, - eq=False, - # `match_args` was added in Python 3.10 and defaults - # to True - match_args=False, - # `kw_only` was added in Python 3.10 and defaults to - # False - kw_only=True, - )(cls) - else: - dataclass_cls = dataclasses.dataclass( - repr=False, - eq=False, - )(cls) - _register_asn1_sequence(dataclass_cls) - return dataclass_cls - - @typing_extensions.dataclass_transform(kw_only_default=True) - def set(cls: type[U]) -> type[U]: - # We use `dataclasses.dataclass` to add an __init__ method - # to the class with keyword-only parameters. - if sys.version_info >= (3, 10): - dataclass_cls = dataclasses.dataclass( - repr=False, - eq=False, - # `match_args` was added in Python 3.10 and defaults - # to True - match_args=False, - # `kw_only` was added in Python 3.10 and defaults to - # False - kw_only=True, - )(cls) - else: - dataclass_cls = dataclasses.dataclass( - repr=False, - eq=False, - )(cls) - _register_asn1_set(dataclass_cls) - return dataclass_cls - -else: - - @typing.dataclass_transform(kw_only_default=True) - def sequence(cls: type[U]) -> type[U]: - # Only add an __init__ method, with keyword-only - # parameters. - dataclass_cls = dataclasses.dataclass( - repr=False, - eq=False, - match_args=False, - kw_only=True, - )(cls) - _register_asn1_sequence(dataclass_cls) - return dataclass_cls - - @typing.dataclass_transform(kw_only_default=True) - def set(cls: type[U]) -> type[U]: - # Only add an __init__ method, with keyword-only - # parameters. - dataclass_cls = dataclasses.dataclass( - repr=False, - eq=False, - match_args=False, - kw_only=True, - )(cls) - _register_asn1_set(dataclass_cls) - return dataclass_cls - - -# TODO: replace with `Default[U]` once the min Python version is >= 3.12 -@dataclasses.dataclass(frozen=True) -class Default(typing.Generic[U]): - value: U - - -SetOf = declarative_asn1.SetOf - -Explicit = declarative_asn1.Encoding.Explicit -Implicit = declarative_asn1.Encoding.Implicit -Size = declarative_asn1.Size - -PrintableString = declarative_asn1.PrintableString -IA5String = declarative_asn1.IA5String -UTCTime = declarative_asn1.UTCTime -GeneralizedTime = declarative_asn1.GeneralizedTime -BitString = declarative_asn1.BitString -TLV = declarative_asn1.Tlv -Null = declarative_asn1.Null diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/backends/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/backends/__init__.py deleted file mode 100644 index b4400aa..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/backends/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from typing import Any - - -def default_backend() -> Any: - from cryptography.hazmat.backends.openssl.backend import backend - - return backend diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/backends/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/backends/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index ff4edc8aaf41e03f4c62a585714def2a2d868d02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 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 W_?FxLn~A5@G>k0sYw6e0+5ZC{=CPyz diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/backend.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/backend.py deleted file mode 100644 index ad64a2a..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/backend.py +++ /dev/null @@ -1,312 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.bindings.openssl import binding -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives._asymmetric import AsymmetricPadding -from cryptography.hazmat.primitives.asymmetric import ec -from cryptography.hazmat.primitives.asymmetric import utils as asym_utils -from cryptography.hazmat.primitives.asymmetric.padding import ( - MGF1, - OAEP, - PSS, - PKCS1v15, -) -from cryptography.hazmat.primitives.ciphers import ( - CipherAlgorithm, -) -from cryptography.hazmat.primitives.ciphers.algorithms import ( - AES, -) -from cryptography.hazmat.primitives.ciphers.modes import ( - CBC, - Mode, -) - - -class Backend: - """ - OpenSSL API binding interfaces. - """ - - name = "openssl" - - # TripleDES encryption is disallowed/deprecated throughout 2023 in - # FIPS 140-3. To keep it simple we denylist any use of TripleDES (TDEA). - _fips_ciphers = (AES,) - # Sometimes SHA1 is still permissible. That logic is contained - # within the various *_supported methods. - _fips_hashes = ( - hashes.SHA224, - hashes.SHA256, - hashes.SHA384, - hashes.SHA512, - hashes.SHA512_224, - hashes.SHA512_256, - hashes.SHA3_224, - hashes.SHA3_256, - hashes.SHA3_384, - hashes.SHA3_512, - hashes.SHAKE128, - hashes.SHAKE256, - ) - _fips_ecdh_curves = ( - ec.SECP224R1, - ec.SECP256R1, - ec.SECP384R1, - ec.SECP521R1, - ) - _fips_rsa_min_key_size = 2048 - _fips_rsa_min_public_exponent = 65537 - _fips_dsa_min_modulus = 1 << 2048 - _fips_dh_min_key_size = 2048 - _fips_dh_min_modulus = 1 << _fips_dh_min_key_size - - def __init__(self) -> None: - self._binding = binding.Binding() - self._ffi = self._binding.ffi - self._lib = self._binding.lib - self._fips_enabled = rust_openssl.is_fips_enabled() - - def __repr__(self) -> str: - return ( - f"" - ) - - def openssl_assert(self, ok: bool) -> None: - return binding._openssl_assert(ok) - - def _enable_fips(self) -> None: - # This function enables FIPS mode for OpenSSL 3.0.0 on installs that - # have the FIPS provider installed properly. - rust_openssl.enable_fips(rust_openssl._providers) - assert rust_openssl.is_fips_enabled() - self._fips_enabled = rust_openssl.is_fips_enabled() - - def openssl_version_text(self) -> str: - """ - Friendly string name of the loaded OpenSSL library. This is not - necessarily the same version as it was compiled against. - - Example: OpenSSL 3.2.1 30 Jan 2024 - """ - return rust_openssl.openssl_version_text() - - def openssl_version_number(self) -> int: - return rust_openssl.openssl_version() - - def hash_supported(self, algorithm: hashes.HashAlgorithm) -> bool: - if self._fips_enabled and not isinstance(algorithm, self._fips_hashes): - return False - - return rust_openssl.hashes.hash_supported(algorithm) - - def signature_hash_supported( - self, algorithm: hashes.HashAlgorithm - ) -> bool: - # Dedicated check for hashing algorithm use in message digest for - # signatures, e.g. RSA PKCS#1 v1.5 SHA1 (sha1WithRSAEncryption). - if self._fips_enabled and isinstance(algorithm, hashes.SHA1): - return False - return self.hash_supported(algorithm) - - def scrypt_supported(self) -> bool: - if self._fips_enabled: - return False - else: - return hasattr(rust_openssl.kdf.Scrypt, "derive") - - def argon2_supported(self) -> bool: - if self._fips_enabled: - return False - else: - return hasattr(rust_openssl.kdf.Argon2id, "derive") - - def hmac_supported(self, algorithm: hashes.HashAlgorithm) -> bool: - # FIPS mode still allows SHA1 for HMAC - if self._fips_enabled and isinstance(algorithm, hashes.SHA1): - return True - if rust_openssl.CRYPTOGRAPHY_IS_AWSLC: - return isinstance( - algorithm, - ( - hashes.MD5, - hashes.SHA1, - hashes.SHA224, - hashes.SHA256, - hashes.SHA384, - hashes.SHA512, - hashes.SHA512_224, - hashes.SHA512_256, - ), - ) - return self.hash_supported(algorithm) - - def cipher_supported(self, cipher: CipherAlgorithm, mode: Mode) -> bool: - if self._fips_enabled: - # FIPS mode requires AES. TripleDES is disallowed/deprecated in - # FIPS 140-3. - if not isinstance(cipher, self._fips_ciphers): - return False - - return rust_openssl.ciphers.cipher_supported(cipher, mode) - - def pbkdf2_hmac_supported(self, algorithm: hashes.HashAlgorithm) -> bool: - return self.hmac_supported(algorithm) - - def _consume_errors(self) -> list[rust_openssl.OpenSSLError]: - return rust_openssl.capture_error_stack() - - def _oaep_hash_supported(self, algorithm: hashes.HashAlgorithm) -> bool: - if self._fips_enabled and isinstance(algorithm, hashes.SHA1): - return False - - return isinstance( - algorithm, - ( - hashes.SHA1, - hashes.SHA224, - hashes.SHA256, - hashes.SHA384, - hashes.SHA512, - ), - ) - - def rsa_padding_supported(self, padding: AsymmetricPadding) -> bool: - if isinstance(padding, PKCS1v15): - return True - elif isinstance(padding, PSS) and isinstance(padding._mgf, MGF1): - # FIPS 186-4 only allows salt length == digest length for PSS - # It is technically acceptable to set an explicit salt length - # equal to the digest length and this will incorrectly fail, but - # since we don't do that in the tests and this method is - # private, we'll ignore that until we need to do otherwise. - if ( - self._fips_enabled - and padding._salt_length != PSS.DIGEST_LENGTH - ): - return False - return self.hash_supported(padding._mgf._algorithm) - elif isinstance(padding, OAEP) and isinstance(padding._mgf, MGF1): - return self._oaep_hash_supported( - padding._mgf._algorithm - ) and self._oaep_hash_supported(padding._algorithm) - else: - return False - - def rsa_encryption_supported(self, padding: AsymmetricPadding) -> bool: - if self._fips_enabled and isinstance(padding, PKCS1v15): - return False - else: - return self.rsa_padding_supported(padding) - - def dsa_supported(self) -> bool: - return ( - not rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - and not self._fips_enabled - ) - - def dsa_hash_supported(self, algorithm: hashes.HashAlgorithm) -> bool: - if not self.dsa_supported(): - return False - return self.signature_hash_supported(algorithm) - - def cmac_algorithm_supported(self, algorithm) -> bool: - return self.cipher_supported( - algorithm, CBC(b"\x00" * algorithm.block_size) - ) - - def elliptic_curve_supported(self, curve: ec.EllipticCurve) -> bool: - if self._fips_enabled and not isinstance( - curve, self._fips_ecdh_curves - ): - return False - - return rust_openssl.ec.curve_supported(curve) - - def elliptic_curve_signature_algorithm_supported( - self, - signature_algorithm: ec.EllipticCurveSignatureAlgorithm, - curve: ec.EllipticCurve, - ) -> bool: - # We only support ECDSA right now. - if not isinstance(signature_algorithm, ec.ECDSA): - return False - - return self.elliptic_curve_supported(curve) and ( - isinstance(signature_algorithm.algorithm, asym_utils.Prehashed) - or self.hash_supported(signature_algorithm.algorithm) - ) - - def elliptic_curve_exchange_algorithm_supported( - self, algorithm: ec.ECDH, curve: ec.EllipticCurve - ) -> bool: - return self.elliptic_curve_supported(curve) and isinstance( - algorithm, ec.ECDH - ) - - def dh_supported(self) -> bool: - return ( - not rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - and not rust_openssl.CRYPTOGRAPHY_IS_AWSLC - ) - - def dh_x942_serialization_supported(self) -> bool: - return self._lib.Cryptography_HAS_EVP_PKEY_DHX == 1 - - def x25519_supported(self) -> bool: - return not self._fips_enabled - - def x448_supported(self) -> bool: - if self._fips_enabled: - return False - return ( - not rust_openssl.CRYPTOGRAPHY_IS_LIBRESSL - and not rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - and not rust_openssl.CRYPTOGRAPHY_IS_AWSLC - ) - - def mlkem_supported(self) -> bool: - return ( - rust_openssl.CRYPTOGRAPHY_IS_AWSLC - or rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - or rust_openssl.CRYPTOGRAPHY_OPENSSL_350_OR_GREATER - ) - - def mldsa_supported(self) -> bool: - return ( - rust_openssl.CRYPTOGRAPHY_IS_AWSLC - or rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - or rust_openssl.CRYPTOGRAPHY_OPENSSL_350_OR_GREATER - ) - - def ed25519_supported(self) -> bool: - return True - - def ed448_supported(self) -> bool: - return ( - not rust_openssl.CRYPTOGRAPHY_IS_LIBRESSL - and not rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - and not rust_openssl.CRYPTOGRAPHY_IS_AWSLC - ) - - def ecdsa_deterministic_supported(self) -> bool: - return ( - rust_openssl.CRYPTOGRAPHY_OPENSSL_320_OR_GREATER - and not self._fips_enabled - ) - - def poly1305_supported(self) -> bool: - return not self._fips_enabled - - def pkcs7_supported(self) -> bool: - return True - - -backend = Backend() diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/__init__.py deleted file mode 100644 index b509336..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 87573835b43547fa0b495a4243a16a889b6704a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmYjLK?=e!5R4!wf)DAz?m-a*5ntfN2ZY$JO|(rycCE%AdG`x`!mCg4=E?M=12eIUtRb|FNJj?^^=rhE3)3^CPG*L8ibu8eO3oV21a7AxMxWi zS`3meR{G!yB!av}+d^%2^BMTa+SzHo05XgduZp9pke~?Bv#WygI)YZ$MseD=rLh%( Xl*SsCGWYR0TsE#e)wt?Dy%WV3_Z~c5 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust.abi3.so b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust.abi3.so deleted file mode 100755 index eaec00e94570f5dc4c279c042e40e960ef855a5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13808528 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

|^KA?6OPn^mC2{)jft)`az&(jS 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 z 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

kg6;Z4pR0gpdHo#hhZ*%_x;Ir<$cZ1 zKZfyTxO+eEZ=ODV)*oDRCh$12IWzcuKVYA~M{v!V!)M=Yb7J@{UTga#aLrl5SGTb_ zEBFgvZ*wxZ=B(lQx7wT>p83x?7jVtl!t0ycoIU(~x3NAYTyqZa(NkfBY4{f8d%khv#2m zb7J_Vd)p_0Yt9mWx`EAE!5{ZK{`>>ioHac5IeU2OUpFq{nsa~$Z?b)A`u*+sxq)lW z5kC7{n{$He^V1HlIcIqM_ckZ^%=p|J{Twx1b0+ZFTWrn@uCD_`aLt*+XK%GRF}(EG zQ3+ggmhk$YY|aW^==)!A%~`_(pOeG&b%_G5Ia~PZ9k$ONuCGg!aLqZuPj9n1CwTo_ zdp_*onsbKN@3rsehMygu`~FFGA5P$!Glj2y!sg83@w;u#0M{7{>-gs)y>b5gkGtl+bU*qjagn$y7dPqR5E z_)mY*=5%n)Im7qAWpl!-#^?Bc|33Z%t~pb9{A)I64!^yB{cr)-oERSes?AB^pYVNF zaLvi!@vqpN9KO@*AGqdh;rTDxoD#nAk2?pr=2YNp3T|8qf6}V+QT)cgr9acr-pA{Xmc94<{aUH&*|Wa|6KhUt~ot?_8i-1@_)zY zd(i72xaQ2@@w08t0$#k<-mVy~ISG9AESs}}SN?NW8C-ML@cfxJr+~M<&lavZJNW(? zHs=7}`h8fzHK&HxziV?^`05MR=LFZB4t{#N%?Z9VKCk3WHYbE@&IBI#oQVEQHfIjk zoCSQgwSAWGe}990yh!1ivx2XlY;)G|?H7OT!p~Q4;4A+<+#Ig?1$^~WHh%}#{5||< ze0~Yn`~!UTlQzGGAD{5+7xr)9zx9Xqdh7_-{1(1?lFjenntz7>Ar;Cr9HfNOpXfA1IU^>YH({3U$r^H*@q&)`@8 zlI_2SYyJkF`}_hv`))hmExh~_+kXew{5^c_^AB*%ui$^;{cE`9H}I9uZ{eDMf?w|Q zJGkbb;Y*(%Ty1<`&2RVA3-?tB@1JA+CveT5!egHw!8Lylf9vgS{sOM~F?{axmvrAh zh0o^x`;TzV&)|7wU2^!zKdu#U&Dp~9SKFKtUi;4vAK;o(!SmPHoFlyT*J&+Wb58L1 zl{Tk`2bbB$k>Kj~f7kPj=7jM0FYUS+Jn_yETyy5|_*FJ1f%k>&vxI9-3ZK2g=B(kt zjcv{bt~oh8c)88l!PowF?cthJ!cQ-?IW>Iea~inj9O3oB=5+A6f80OAHK&K~|H9@> zu3`VF^PT(GZ>Mn0nZffvxBvbE9$m}czhb!NB=FTsY|aY4@!u!S;F`0B$Cuii0$%y+ zy)9gGcJSGYZO#E6`TbMDHK&FLFS0o;eB)o=KEXAogP%&96I|2&Q|FcW=Pw~#b0+Zm zh4$Z%;4}aFz#OhQ3;6y|ZO#(@ijVl$&ET4|g6Dr?b2jkH{p(#hTyqNe>IF7u5C8I| zy^bp3nsb21e{6Fac;Fw8j&RLs;j=%oIcNA6{p(acTyugiv;UsXH~2&Q->2}6f4(q- zYfc0|{ejJi;amUwC4pupXCKl%L=T-*NddVkcM5Wae=T{nYA&$HJX5nOZT@c18WP67`e;IDt+ znv=q3Z?QRR_~z;U`UkE#IXrl?&Dp`1{&wx*np470e`j-Q_})JbHgL^3!t1}aIUW2z z-ek}7XSn9{@O@)*CZYYO&iC(s*5*v%nlppvZ?gaX0>1w<`}`$_Yfb`R{f*68!Gp&3 z$>5r^hR1KTIR*T~-)M8TaLw7lXII#q1N>$Fc2#iAso}w2+ng3YxrMzxJi#@mgP$(9 zIl*=8KXqPPz5an~&IDf9_TP`-;XUpBVh-1w1$_Soo3n&}LvNi^xaO?j@qgHy4SeU% z&pBLk3V8f+o3n@i(I49Du@bI12YArioCbcqXW9LHglkR<4?b&i&hSS)+vfCe%?Yk+ z|2>^=@M-(sr|_@#pZ}b}H79}xpRqYH{Oli36S(Fq;qm8fP6l83=S^$4=4{}>r)dqpE~>R&*8cM{lEoWb7J`FBQ__6-_>6ytl*lH!Q&6xoE+Xf$(}a~xaMr( zvk%#v68;(gyNd_7=2Y~U+MdXaLqZvPw%%mJ-nIN^K)>0`@ie`QFB6g{XV;H z2H*Mjvm&_W%;Ecw+MEP_`USgxmT=8U;laCX&KmyH@3iOV4P0|_czmVJso|}^o^Rlq zbA+$H-2VOC6MX(ncK>v6%{jyO*Y|&i_seZBolE4e4@0=-OyH;M*_;`?_j8Znnlp#b zd`=8MzT4ie1g<$t`0Bd0&kDZq*9jS1bJpaf4$MbHRlMAr?$@tK6{zpKXA=C!}G7QIl&Fa_fL37dw&n%nlpjdH?=u4 z_|m`b7r`}W4i9`z41cHpedz?QIZJr_mA20c{)7JaHZ!>9tl{}hY)%e8+}NIf3b^KM z;q{Ge&K~|+pHsp$=Kv3UP7M#QvU6|XnsbEjzryx8!Ds)|?;p74oZD|fDd3v3h0m_CIeU2ZLOZV#t~m#I`~{m+!>=3L$H4}!IY;>FYpl-+zW1*uba2f% z!}F`zoM1A(e}1*FeL}eAOyIMt+ngDE>#u(zxaQ2^`L%6M4A<`qByi1H!cW(-IV<=p z^?SQ;%~`|aYuKDU{ENAt7yRcNyU)+?x&IyM=?%x7ukiPa0)Bp+{hYuKetfKX37`A* z75wDapWxa*ywP|c?LUWW{}itMYqM{=T+P z3D=whe19LCQ^OzqPu8b_Yt9j#-`nP#;1Bs5+oywT&KZ9CUYir#WPI+0fBqiAHD>~^ z6Pq)GfAfdz>n#ynbLQ~5aJ)gieX9?dw!RD;sUv{P6 zKXA=i!}pK2IXQge-!CZOnzM!Pf7s^i;jj1KYcAoMbAaz3Wpiry`~CBa2Cg|r_G=M+`WO7;4qS64@ckog&J2EwAGLiVxaQ2^`^VXw82%yu zxRby&X9?eDHfII@(6#OD%HW!_hVLJ5b8`46{NFVw;F`0A=c&!v!++HOUSA2!^RfrpxrcDgnZWb=+ngEv z%ByUj2(CGEc>V)6Cx%b_>+=a*bC&RYX>)S;oBZu6;F`0A@1JCI_V7p_ci@_HfX6>+ zb87hHH>^(s*PJ7K^;0(I1lQ*&9b9wHaDAQbc$n5p`0)BK);I;b-uGi-UT(8d$ zaJ@cn;d*@@fAx6JSH8&Z&n5g;e*b6i{?pcZ1J}QUyoEpbWY_QEAN1D=75p>zvV9tO zeh2$G>JxnLe_!Yfe~Mope$DvpeZ-sX_1hF)`1N!6Pj7Ai82&WBK81hRb8P<%zV+*K z_+wvY`)uLQ^y`mso!1Hei~f44hwHq;n~gi@-$9hJ@E7>?9bD(t!%M$@a`SOFo!1P0sb9Z>>%7+ROZ@df0oQr$ z;QDuv4{)7V4gY2Tc-q2sULE}4`v}4c%2<%6a4xbuJby=*M5Bmzv^c8_V(~6`}K?eHtweLP2k`DdHXoK zg6n+O@Q*#;9=Cw&e0OkNe}Lm#_%cLBf3 zuV2D-zAJceC)TxT<06yYTV(Y@AlVeaGh@i|M^$g^)X!M zyM*id46gItz_0K7Z{a%MJ$&NVS8$zg1HXx1e}e0L&+w^VAAbF~o6dI%zqwyOhwFS} z_{^_Q;X2<8{`G!+3D@~n@ax^y-hYp9o$m?$q@S|ud$`Uwy!E(){$27JT<1H7C;tAD zz;(VU{62pD8m{xr;Y+`M2iN(Q@CW+!HC*R=gr|Oe2iN)b@Q3;JlW!Pz)A`QeE5CjP z*ZHpDx45o9-@3Y0oVC1;X2wF8i&UX*j`5xdp-v+MpZQ(lKX*BMm^Nrw-zJt9##&DhQ60YkrxXyP2*ZFSY zI^R9~F@AqmaGh@h&;0rmT<3d+Kf$jLziHe@=R1Y3{rWjv=NrSH?ANDooo@!;`1Ltl z=evdff?t1x>wHh}pZ$INc-q5tzTr2IJLr68aGmcQuJcXcI^Pto^IgMrzBydyyMya| zOSsOrhUow&QL)zdnZRe3$U{V|Kn7T<5!i>wLFxo$ns5^R3`I-v+MpJ;8Op zXSmKc{MK;?o$nN`^PR(WzA;?qo5FRz8C>U^!*#w}xX!nP>wGJ?&bNo_e8by~JG{%^ ze`j!=?;Nh{6S&Sdh2Qr*_WZww>wI(gFZk>K9bD&I!gIgAhUWg&UX!ereA-6>wIhY-?jGs+ro9e9bDH3-!^`Gb-ok0 z&NqVVd>8PY@4tlWd{^-2`SlyP&bNT?{rWvz=X-#^z^`xMI^Pyv`t@hH&Nuk>akoqT z`YBxJ8^I5LeFoS0Zs6bI->=-lb-sJJzCKyOb-oS!qi?tO-xFNtd#3x>-@@-0chLDx z;n(-;=Wv~G44?S*DO~59!EfT%=Ww0x7C!asOSsOrg5TV)Kf-msC-}^-pItKUqw}4^ zuY9?E{+qyczA0SiyN2t0bNFLkYtIimxX!nPf4%Qt!*#w#c;wf2aGh@tzl~o%x&640 z&UXf%`}GUB&NqQy;@7X>I^Q*X;nx>%o$n5Q7r(xR>wG)-b?#yPgFB4hUY+j*uJeuH zI^PBSYFFC(?-H)_UBP4De*@R~7Vvxc^?SI^_W)1)`UbA^ZQ=Lv>(6kVZ}8v8-Ijj+ z6t44);1BfcW4O+D2~Yj{EnMfjhrjdJ?R+b^&bNW<`V(B|dxq=vbGR6H(D_c`&-2&+ zbGXhohVT9Q6t45l;4kp&bGXiT3orfp60Y;D;FtRKN4U=S1V8xoJzVD--f`UR6@GmJ z*ZHRK@3^}C{_GmA^UdM9eh1h2mT;YK4cGY|;g#>-!F9ep{4&3Oa;I?zo$m}@`}GUB z&NqQy;n%O=I^Q+C@#_n?&UXiYvtNIJ>wIhY(XS8gJbrt1z7zQKZ)YEWBe>3Y0oV0Q zxXyP4*ZFSXI^P2RHs5~_*ZCgctzX~3b-pe9O27UL*ZBr_8FxGR^;5XcH-dlAuaDt6 z-zB{B>od5{cLV>JUths>z771LPqgzr!F9f8xSpTG?;Ll~`A*?F-#J|88^a@i{hz{h zz8U;Betizt`EKEJzrKX)d@J}Re*F=y^F6^Aeti$u`G(&$?sgZyeg@b1&f&3NzlQ64 zbNFR%v-91-b-pEB&(Aen=X-?fd^@<#w};=u_n+K#+(G9%gC~Cd0(CS8$#0 z8ou=F3%JgA2Y;Yne}LI^P(s`6*oIo52tM`ag&3e7Epd z`1K`R=Uc%mzy1i<`JUjH`Sm?q=No?axLfVl&)_=WIs6L0K7s3eQ+VUo@8CM$68;zd z^V>CC=X-?f^WP4x^X=i9Ke@-agU)vbf3xqufa`n{_|dOl!F9fC_}l#Y0k4P572z;(WRxX$+g*Zc;q z^KIc9-~SBP`3CnKclZUrehSz5M)2IPkKsDsCHyIVeFoS0Zs3JqzlH03_wc9r^%Y#_ z+rYPeeR!{N2c7Q}e(-<)dJfn5#&Df)3fK8&aLv!*I^Qk)nZADs*ZEfPonL>1>wHh} z=lS(LT<04m<8FJueg@b1&fzcc>l3)nH-(pe{TiwIf??bo+(oo@%f z!mkg$Z`?=cJApTTeFWF}F5qwW>o;(nZvp?HfB$z6*ZCgcy1s$yd|SBA_YBwh2KOF! zIQsrmxXw3%zs;|Y;X2^v zDgJw-@a5J#f!Dct3SYTr@c8L={RSTVym|{CK z=S98w0-im^9(M)5_WSJm0{)o0o1fr%d&3_XKd#=c`9(a1>+Q z-G992>pgXK7+4(pAG!*A-leS*MDt$?%;Fx5f%7_|OwR^n}-c<@YCi=$T%mCwzJB{e}0(2)+%?7x4Y3 z?fo%<&;9*6g%3U9fqKHXpZE87cyJBdX9rjR5?+7I=2Y;bdqcmD&2Qn8Yng`+9`{^& z|0!JkBY5s_?*gv=30(bCxcX;s_20nNzkr`AyMK0Y^)KP-U%}PCfvbNDSO1Rg{d>6j zM-LhIKV5G7FW~B*z|}v6tA7Sp{|#LI3%L64;Obw(Ywusd)xUwOe+yUt4zB(^T>Zm` zj(Z-x{}itN34HDSQ@HwPaP{B7)xUtN{|>JHC0zY0xcWEn^A&dgv~czB;OgJQ)jxdL zxTpG0;p!jJz5fEP{uw;*{u{XZ7jX68!PUQntA7Po{|2u9EnNLO_`&=4aPfgfEzk{oP4_E*25#yd~?>~jB ze*{Ue+`fuRsU(mh(4zB(U{O|^U{)DT42Uq_duKwX_+*AFhaP^Pi>c4=i ze*)in|CH{pKQp-cZ{X@*z}0^TSO1dk{VTZocktNz_i*(OA2sf&{!_U6M{xCDz|}v2 ztA7et{|vtL{u{XN{{pW5JGlCnaP_a?>fg}4e+yUt@Q24ekFU4;e@ge)`4L?G7jX4Y z;Od{k)jxx){|2u91zoTI;p$())xUzPe*;(l7Owss-TU`&^^YDs?!WT>3%Kt81g`!m zT>Ue+`fuRsU%=IW2Uq_Rp6m5LT>Trk`nPcP@8Ig+!__~0%(&<9`X8?T3HfgZCzlE!R2Uq_duKwZU#yw}=e+pOs2(JDMxcVn>^-tmIpV7Vl z2Cn`keDB}ysNm|~z}3HntA7Vq{~oUXVK(lm{!_U6NASS=FW~B*z|}v6tA7Sp{|#LI z3%d8;!PUQk>-$YDT>U$^`uA}44VSB_pjjU-@%9PPr=nc{Lyhw^`FAkKZ2|O0VqH`e*Rk`)}at zU%=IW2Uq_RuKpEV{TsUXZ{g}6{@A#uzMnOPtA7Mn{{>wA6S(@PaP`mN>c4@je?j;D zJGlCnaP_a?>fgZCzlE!RNB90cT>YabjQgKnW3N9KaP?2%>Yu{ZKZC3P2Cn`ET>W=& z^)KPM_pjjU-@w(sg{yxDSN|Ta{^5_0dk(Mv;p(5j*WN#ctA7Sp{|#LI3%L64;Obw( z)xUzPe*<56{}!(P9bEl;xcY}bG484UQ@Hv^bie->aP`mNf%o6Q)xUtN{|>JHC0zY0 zxcWD6^>5+o-@#+=-^0~EeB!vL`cL8NAHmgs0ayQo?)_7^`seT$`@iE*!Y{vt{e0RH z{we==d}izM+x7YP+w}?jUvFtY@3e;Nad&V%ZVkWM2W)-^zw?94Cr=vhqdhbDSPx#OiKJf%7_(VP7L(iYONKg3C6F&5W4?W>q z-Jf*zgfDe}!iS#lp(lLk2_JgGho11Y-~T;)==tP}^n?#R;X_aO&=bDY{R!WyCw%A$ zA9})vp75b3eCP=udcv3L2_Jg?^hJ8Yho11ECtN*O@JsyP>nz~k;eQwU0Dr(E?fJij z-^=F&KQrF{ic9VK2(FJWOSnG1Y~cEMv4`v9MewuZ$GwgJJaz=Xt$%!3!u9rU;2-sm zcYF9V{O_DM@Q?W4BRa!B=yRr<@t*1s!!LiQ|6DPA{ssRy1+UNM6@2xd<~4kNm3aeS zebM{~KYZN0g>OG*euBq8`s=}e{ZB`KqPvMh? znn&>C?VfsJ&jtM8p1@~wyFP`lZ??ZMCxhoVH{Zaww=gf@^RG4E!E5&tzV$sTcyLpj z)6j2d-oo|#)4|VQY1jAkiFx#MIInN>p75b3yjD;6&=WrNgbzL8Lr?h76TVhY_|TKC zp75b3eCSD6&z~RnoTw*!=m}q|Ctdd^eCP=udcudE@S!Jssh;qmCtW?^Lr?h7lkPod zzcB83@SYKT|8;gh&*8QE0v^ol`WT+OC-9TcS;1%DZtpJ{T>Gry+GhjTJ~>?b6madc zr9ag6*};Rm*xS2@A0A@YAK-JJQ^7T-hHK6de)2gjeChj~;F@!WYo8vjIl(XDKJm9} z0@prM_~FjhXGZrqbGY_dz%?hP`f%7_|Oxso;m!mwtWhC?7oHXf86h9 zc>M(PJ$(Ko^Adi#qrKnN@RiSL;DKL%gwNbtcRB58>Kp z0@prMxb~UBwNC`sJ_&sGtfvS6^*yUmc&<+ISPq_M&@S!JM z*EjIf&oU%N<8_|Ox6_WLk}4?W>SPx#OiKJR3$-RMV&JnITC%E?M;46Qf ze}-#L@YHcaZZ4ZObGyoGOHZ{ESzuQl)Clh>JtzcD`dQ9)9|;dHA&P+qHF{!gYNFU;Fh7xbBmL z{sDX36dt_KJcG~NH}Hvj3E%#^&8gr+Px#OiKJlvT{`N(B!gYNFU#cg3=t);k z_|OwR^n?#R;WPDw4?W>SPx#OiKJf%7_|Oxso_n~S zXBxOZFF3>XJQM$~aR<%G;Ci0i!Zqgv-+#>BUpn~2{R|J>d-(aIHYeDQ_dL3X@W4HS zFTZ4S7Vz^I%@g?cn!kJD^NSQ7f8MUo;4}9Py!QD8eCED`2R^5S>%OYs`uW2KuAe7t z;q%Yh{vCYg9zK2Cx%O^TxVlAfbz8vIErF|B3Rkxbu5KIn>2vmW6>xRi!PTvVt6K$E zw+60m9ef_x{nNwME&SbaXLXyx)h&Xn+XAj`30&P$cQ=zjZ3kDk60U9y z-QVw8xVm+4b?f2k7CvL#S>2{^b&KHYwt(-wTLM?N6s~R=T-`Qsbt~ZNR>BY0u=}lo zt6KwCw-&B$9bDadxVnYUL}!0~o5FMN7QxkR0av#Ku5Kw@-7>hk74X=*?cnNG!qu&U zt6KwCw-&B$9bETY4_|q=@LA)|>NbU|TLf3P1zg<{xVmNVIY-f~#8tSGNv6@oqg_-NN4+cUHG4T-_qLx-H=9mcZ35h1cFKgR9#Hu5JZf-F9$w zE8*(a!1w;Tw}q=)2UoWqu5RJ~9(Pu^DO}wmxVkOid+(OO)h&gqTLxFR4P4y{xVr7( z`n)@Q?)dFpU)P@ZrtszU%p>}B{CN_-zP@<^UtQZgg~y?J2A{ZZ;JME!;IaD-uFfS~ zoh!IHH}K$Ewr2}Jf0=psym8NydcudEboGP}J>f%7_|OwR^n?#R;WPDw4?W>SPx#Oi zKJL2dMJ=K2-SN{mE{tLMJCvf#o;p(5kPcO6mH*obY;Of7FtA7bs{|c`D z4c+^<({~g``o@5DE{|c`D z4P5W=&^)KP-U%}PCfls`D z3s?URuKqn-{lgcGd#e8wuKp3-@Bal{{WJLK)&BemSN{U8{yVt(mvHs3;OgJN)xU+S ze+OTC{~oUX;h&6qs{a(O{t;aL7jX4Y=-xkttA7Dsd;c9={Y$v|S8(-j;OgJP)xU$Q ze-Bsx@K47*=iYw`SN{mE{tLMJCvf#o;p(5!z5fQT{v|x{{uNyP8@T$naP{xt>fgiF zKYSs2`oAYKg{yxAKl|(F1zi0TxcaAX_0Qnyzk#cNLHGVUxcWEnZDr3tE!|&NcX0LZ z;p!ij6X z|M1VoJ=K2-SN{mE{tLMJCvf#o;p(5!_4*&K{smn9cX0JD;p$(()xV*8{}!(P;fuyS z53jQOe+pOs2(JDMxcVn>^-tmIpTX6C16Th7o_qftT>VS9`d4uEZ{X_R!qvZ{d;cD; z{?Uua{bTRHfUAE3SN{~Q{ux~TH*obY;Of7FtA7b!dH)Ko{taCHTe$jnaP{xu>K|S@ z?m4{vhpT@AKmMiN|0!JkGr0P1;Obw%)qe+9{}QhL68AHHPV zQ~jrK^^fR&|1aR`pTSq&e*;(l0Tet^-t*DKZUD*0YAUe?*AQJ{Y$v|S8(-j;OgJP_4f=rxc;7D4_E*2FVNHb zPvPnx!PS2OSN{aA{wZAjGrITRz}3Hm=ia}9tA7Jm{}!(P9bEl;xcY~OaZmN1!qq>5 zpI&PB&jPOg30(bCxcX;s_20nNzo2{n9bEkzy7zD4>fgcDzlW=T_|kDt^`FAkKZ2|O z0Ue+`fuRsU%=IW2Uq`+?)@vc`gidCEA0O1;p!j0Y}`}*r*QR;;Of7C ztA7Gl{}itN8QuGD;Obw%)qe+9{}QhL6L0#*+;i^zr*QR;;Of7CtA7Gl z{}itN8C?B0aP=?Xx%c0})xU(Re+5_n2Cn`sT>U$`_wV8AAH8DSzt;Cp;p(5j)jx%+ ze+F0o4P5;Txccwl>R-ZF-oJvYe*;(l7OwssT>X2v`iHL^_Z(jT!__~5&tLDa|KSt& z44%7h;QD)R1zdlBYzNohA1mSd`(qVce}AljpY`>Bxc>fFNB6%!*2C35{L67q{r#~i z-T(erLVttzgbzL8v0uM|4?W>SPx#OiKJf_7gbzLG>IoluzUm@9>FNpJt0#Qu z2|wxngbzL8Lr?h76F&5W4?W=r^@I;S>FNm|dR7_4nv9xc(kp0pGsO_SwPL?j`)}UcraI`vf2U?h}0YyHD`p?>@nYzx(v+asQ?7 zGlj2jZ9i`l!H2*51lRc{@Zs-1!S#2a3i$dR-jlAL@Wb2f`U*bugbzL8Lr?h76F&5O z&A8`WJ>f%7_|OwR^n?#R;X_aOL_Oid{Rv;HCw%A$A9})vp75b3eCYYwanFf*!iS#l zp(lLk2_JgG)iZ}5y=MW}-`(26^>?>+@Yw&}*B-9FyH&#Vcef7k)jR$EhwJaj)bQA^ zKf*Pqg)i@F&jTm8=A7Z0)5C|qV|m&5d^KkR*PJQ5_I+k>&6&eBX91tb_IAZ^%~`@V zCxz?p+pOT4vxaNV2EP6-+b4%>P6^N7S&(~k1Cw%A$->N5kc;15#J>f%7_|OwR^n~xPwEh)*=m{Ts!iS#lp(lLk z`G$-1gbzL8YxRT=J>f%7_|OwR^n?#R;S;~lEBMe8KJkJ)SUuWpy`aVlok9+F- zEK~T<6TVbWxW3Mi!1Z;86t4amTwiC{!1Z;8g08PK!}WEB2EPA*-Onvt{X4k&_i*(O zFCX_*|0!JkBe?o6;Od{i=iWbstA7Sp{|#LI3%L64;Obw}^>t>r`gicT_wV8AAO6+2 zr}|If>L0Ufn#QSgH>R-Use+O6p60ZIgT>TrmzRnC+|M0KJJ?r<| z{Xd1Pe*{5+o-_iATX1MxC zSB(2Fz5fEP{s~JHB|Px{6fgX?fBoFT)xU$Qe-Bsx@NdRF z)qe_C|A_AQ{{pW58GP;iH*obY;Of7FtA7bs{|c`D4P5Zm0jeDy9 z6t4aeT>Tet^-t*DKZUD*0S~UG!`ZsX(Z{h0S!PUQqtAE&xd!GFMpTgBY zf~)@muKo#J{ZqL5XLRqsfvbNB-=6&QDY*JKaP@ED>fgcDzlW=T__yPp>OY06e?<5G z3%L3xaP?2&>Yu^Ye*;(lg6{oyaP@ECGwX2v`iFlv?y3G$xcWzM^y8pw!ANN%MDO~*{xcV>P z>Yu>XKZUD*20wcL4P5;Txccwl>R-auzk;iOL-+nIT>Zm0k9)@6e+pOs2(JDMxcVn> z^-tmIpTX6C16Th7e(?S~xcZlH^{?RS-@w(sg{yx@_x?Rx{iC;x`yc<+?*9c`{S&zQ zr*QSp;Of7DtA7Dk{~cWYOZe9NS9Je9-v+M!EnNLOxcc{S^$-66J-z=FuKo#p<^5B* z`e$(U-@w(sfUExwuKp!l{VTZoH}JLhZ{fQCJGlDyaP<%0I_|0dQ@Hv^bnm}_tA7SR z``70;aP=?X>c4}le+gIr3aV?P`gic9_wV8AA0Ed&)qe_C{|K)B3%L3xbnlF^ui)z6z}3Hn>*w4$xPH#9hpT`1kK>+m?>~jBe*{JHJzV|6e;W5x|0!JkBlyJoFW~B*z|}v6tA7Sp z{|#LI3%d8;!PUQk>-$+PT>U$^`uA}45C3`GQ~jrK^^f4{zksWM0zdorJyW>)XK?l3 zz}3HitN#wJ{w3Y}S8(<3;B)_eVh>mU@NMIs>OY06e*{F^ui)z6z}3HntA9uL{ykj%qj!w^FTMW)uKo#J{ZqL5XK?l3z}3HitN#wJ z{v~|t{VTd&|HIY4g{yxDSN|Ta{^2{vJ%_LV!__~AzxXt{@N+L2{PJ6vZ{eS6%};Rs zow~3c@1uW*We(Tlrf@xO4%fdIQ^NJ{#T?<q}|7OpvaxaO2_{kv%gxaQPw&1vBJxw0c%b53y0 z>EQZz)6Q_s3Ezctzqlg6)i}v-31U~z}{&h&WKF`YF`aEj`*YivP zKlna7y8m2R3D13>3cmV+?b*O{_ZGf(58gfQsrUB?uJ`vGuIo#|7#veN8_v_|`pv@9%Hdr|{VW%rp4JuiwD;KVa7v@VWaAzVi7cJYU+J3cmk-^9G)~ zxA5WP2z-5So72PR_cRaRGw!@}pTcAJ7_Rfp;5y$eT>q|31^?hJZ+PM3(FuO_kDJH; zI^J`5T=?*~aQ!PIwykiQT90+&zNN+!t_NpTGmZ zK85T4&)~;DwmmoSt^a&)0YA9!;CuHP{_e_N7tP)`?x6cKf$RQU!{7ZJKQH+DMSfoJ zyfp9NbN3#u*U91g$9w8^@)WL*UlCj%zZP(P{7T>x-zSCZ^OOv(*U1~W&bNT;b@C3b z*U2SapQpq1I=O=f-oJ;dfB1oMPxYU|)jxu({{pW530(bCxcX=Cv%g<&;Obw%)qe+9 z{}QhL6wA6S(@PaP`mN>c4@je*r&w{~cWY zOSt-1aP@EC>fgfEzoYB(bh!FQ9~$?cdH)4m{S&zQr*QSp;Of7D51*&QhtJdD>R-YS z-oJvYe*;(l7OwssT>X2v`iCDL_Z&V?hpT@AKj`@ruKpQZ{Woy+FW~CGgR6fDSN{sG z{tbNV{adOY06e?<5De*stj44%K(Uq8TC?gcz>-@*0!&Lv#G z?_9z4`_2tqzwg|__502p{G^XxaQ(h>*o}Jz{`<~TxcWzM{XYJJ?!WK6g3m6so*7)f z@4SZV_nkLz{l0S!*Y7(QaQ(jX9)9%mD&gAa0M|YhT>I2;?bE=uPY0jB(fai8iF^2O zjl`)uIrTkkJ?{!+m8`>i{;?za-I z-*2tp`u)}uJpUW()4}!ot!KD?zqN;Ny?^lUg!7Os7EaD6><57(RnT>DgT&8gv< zbA)T37Ot<0p5U5uhHIZ5t~tR+$M==yOyJsQ3fI?HXK>A#!?n)>t~oJWbCz)Jlfw0N z+7(=L)^P2!foo0<*PIf*e~aDE75w;S^9COLgLw--x_9vX-`Vv&JpX(1@MGh1T)I!; zwaf%7_|OwR^n?#R;Rp4kt0#Qu316!xeCP=udcudE|9O#~ zaP^Gg`aWg`*Y`1NxV|3P!S(gP$$7kw<}cuyzk=)gqy=2xPdUKv{YZPi4*$>iadn?e z;kr*ExV}!Zfa~id30(I{3P1jvzhA@kez$?^J}KbmkJy|YT=z){*L_mKb)PhFz2CKP z-6!EEF47Y|^n?#R;X_aO&=bB@Px#OiKJSPx#OiKJf%7 z`264f`4c|$gbzL8Lr?h76F&6(%td;_ho11ECw%A$A9}*K>Iolu!iS#liF(3^p75b3 zeCP=udcudEpS?&=_|OwR^n?#R;X_aOQa#~APx#OizSjFYeCP=udcudE@S!Js=-FSS zCw%A$A9})vp75b3e4?K4p(lLk316xweCP=udcudE@S!JMJA#!!>6C&;4;@xaKV3nv=qVyV?FLy3b$3XYL#L`ai5s z4%a?gxaREO@yBh>9Z1lOE1TyuJO?%jgVU*!IQYt9s| z^P16pegfC$Qz=}}4;ehayWI~Pc{6zB%KKXv{4?o@8ynyHKJNW8*?fMd4 zf1h~;50>`*kp{lMpIzU=kBNB)Ke_ktweJ&NHSRyVug!_zd+)Y@Pkz&`PvC(%!)x!8 z!B5^{13&xz1$^(<@8IfI!dLgVJuA4nHE?xn;RnATI{0a6^MfyrdtT?m_H~ujMZAXp za%4Y0*1$ja%9~yIxYok2`YHc8eE28*`ZN5C{&V|1yz}eB|2y9QcvIVd0&o5L82;&B zw0$zTI@EAo-@$eLl^s&S$1A6Jb12o2cJLRyoVp2 zX&weIzHmO_h5t7Q=I&GYej>6Exg*ev${>;>K4J(Z2?!e1g>r=e5=lIbt~Z87ub32;79io zK6kI+6ZZzb|6`lq!YA$>Ja_Nm+CRMdxbxDlkKp^4`+W=FzQR0#$9{bZpSfr7)yr(o z2EKf$c>$08`W;+vR|!A)<5uw4=Qr?^`w4!PKkp^i7X$n zd*O5U9Xzh>`VxMw%qw{Pm*x#Tc$IkzKl=3@{N&!l)qi%)ai8D4wmm;5a6NCY;eQz0 z$Cn-aP0zFE|KQ8U^Yw8gg6rc>4!`-|+WZ#&2k$YTUu!&n_gdS(gRgG&tP39rdieI1 z=Ha!+bB^v)cl`abMLT$t3v@-hY~*X4i#J-8u-LJwD6gC=-{Wj+uPg2kM}nZuRHF1x~usV zuKOW^pYChdFW~Bsz||pxpYCOIHgI()=>E7nc;FpMx_7AH%kQ+uZQ!+cXyNM6!I!>I z4_AlqdgIRO5W)A}VF90f;MXtQhY7sCkL{nrPv2vn!MAtw&UC*Y3i#eT?BME9!e`#0 zf}i|8Z{S;hKkDEs@6f~5A-w*$=gK=w;k9>&;4|;AfG@p60?)le3Ri~=KKFe#aCIo) z>QKUG-l2l4LjynF+s?Oz@4Z6@Klt-r51;t^Mfm0Dtmg-~Iz;fj@3VlbLjqTa41T(& z-?#AmH=lCh{i2}z^*g$EDB-bpsNl!D*yA?vSkDh|b?D&d@3J{Py!QFw4aS|%-hT$y z>;D42tZe=czCM_j@bh1oSMZ~I1K+y0@YRcLP6t0+YTm==SDJ@kF@Afue*F}#o)LWe zTAQo@SVUthvcud?eaxcWD6^>5+o-@(|_{|>JHJzV|68;*Ob z{}itN5q$j)>%V|6d-H_u{ZqL5XK?l3z}3HitN#wJ{w3Y}S8(<3;DPt=;ky6B8;yIa z{}itN5nTNjaP?2%+kdvsDLntQc?O?*{|#LI3%L64;Obw()xUzPe?#~FEnNM>8;^U= z{Q4X5d&b!g%0 z(814tXK!y0pM2ar{K|3Xxp$bt)ggkbLjn)HLkd@i46Y6vxH=SYb=bkxp@dHwdwVN* z{O{%seBvEixH@!jbqH@d?zw-d&7Z>6A%d&J0d?d0A^fUwXLXpu)ggi}|H|Ip1$_TO^8|kO=e-oJ4jEh> z3i!!i7wzEcP{P%rf~!LVSBDm^4jp{`277yZ`0;(_;dI>j=pCkTb%@~Vkic{Akiyj= zgR8>^t_}rU9d>YaDB)Xwf3M)dd#ytQKX`{0t_~es9fGeO_ndvfJHzMh6L{@DgKJI% z*PIxx?~i0~eLtm!>-r9^>*KHa|G!-cT>C8Hdb=|C{94bx@O6d_JeZpo@Z*=6@8Adb z5+1u(@WVB2P6MC$^(}ljclg=oOl~&rvrp}RpTocWj`n@1B|P@)*YNlF&uQ3h2&BqYtIg@J;SdZ_uTrPQ@Hkw;DLI=wPym?o+(^= zW^nCUz?bR?*PbOjS5LV1Y~b3ng=^0au06xA8~2>3CtQ0*@cL1Hf5NqA0@t1?Tzh74 z?ODK&-|zP)Tzi)A_#u9O()Iia*Pbn0dvlB3g=^0au06y5Htso5Pq_As;JNNk_|OxsJyW>$%;4Iy zfFJMY_a|I?mheD5;o7r-YtI(0Jv+Ge3~xE^x%EA#aP1kv>&N-~J6wAvaP67GwPyy` zo&|iVo^b71!gJrVf@{wPu0310_Uz!=GrZNf=R`f>+B1U3>PgqfcewUU;o38UYtI6H zyszJ%aP3*b1NDRtJ>lB3g=^0au06xAANSn)o>RE?jNtWS{r-e&&jhYLQ@Hlb;M%i* zFVz#SJxh4*dscAm*}%1D3)h|w8Y&+B1UJKjQZ%Tze*P?U};0X9m}v1$?QV zaP3*bbKkRqYtII*JzKc;?BLon{Kj$5iF(4dX9SPcldk&{u02z@_RQegvw$D(?e`~K zdzSFnUx!q5yU8Q&j=pq^%7j?p1`$d3fG<)TzeMqrFz1( zX9=%Y*1v*l&jzkNTe$Y@;Mz0%rg6`Sdcw751kZiX1zdY3aP67GwPyy`o(25)eSUw! zwPy*B)swFK6Rtg5xc2Pe+B5v-anG&qIfZM_2p*^>eCP?+o+(^=W^nCUz?bR?*PbQ3 zex%=@aP8T^wPy?0o*i6!hTk&oIZ;oz_Ke`U@40|$&jhYLQ@Hlb;M%i*AHUb{Pq_9h z;jwzsb$`OOXA9S!9b9{cw;A```kqs`_Ke_xdcudEaP67GwPyy`o&|iVo^b71!s|!) z{R!8e4P1M+aP8T_wP$$SanFf*!nJ1v&wbAYTze*P?U};0X9m}v1^k%!{R!8eB|OmU zCAju%;M%i=YtIg@J;QGu_uTrPQ@Hkw;IVqr^?C`eJyW>$%;4IyfG^b(u02b5{TRPL z;X_Zj_H5zWvx95T@OI;#6ZM2^&j=oIv7L z4P1M+aP8T_wP!dV_uTrPQ@Hkw;Pu1p?OMRKX9CxrDO`JIaP3*Zm+A@Eo+Z52*OTGe zvw>^R7Op)zxb_UcZQOIBo^b6M!DB!71zqp&aP67GwPyy`o(24PPrpCm+Ove`e(n`~ z=n2=JEnItcaP1j>`?%-U_ngADX9N$_6RtfIxb{rp+B1V|&jP+wPq_9h;jwzs^?C`e zJzKc;?BLon{El(YiF(4dX9TYw?eFjKp(k8>rf}_w8Y&+B1UZ>Iv7L30!-oaP67FwPyieswZ4~mhk#v*1v*l&jzkN zTe$Y@;Mz01{kZ2uJ>l9jg2(Df*YhV_d!}&hnZdPZ0YBcu?@ze)EaAC&!iS!4?b*V$ zX9w4w;T^_3x4!2Tu011o?jJW7aP67EwPy;~o*7(w7VxEd!nJ2fzoXxuaP8T^wPy?0 zo*i6!hW~xsbE2Mb?HR!X-JfvnnZUJY3fG<)TzeMq<9GZ03D=$_Jl6e5_xGa)u0310 z_Uz!=GhB>&Zhg-wTzf|FiSAGM&=ambQ@Hlb;M%i*FVz#SJxlmO_a|I?HgN6P!nJ1y z*Ph`W$2}+N3D=$xyw=a#z_n)r*Pba{duDL$S-_8X_xlsBJxh3?`xCA`8@Tpt;o7r< zYtQgbIv7L4P1M+aP8T_ zwP$#janG&qIfZM_2p;JEglo?Pu02z@_RQegvw$zv6Rtf=_*&1OaP8T^wPy?0o*i6! zhTl2vIZ;oz_Ke_j-*W-io(Wugrf}_r=e$gJj)z4kS>yOyqWvbzN+y<`4J;H;3 zu*dD;OMl$yUB_>)9(M-U-$#nzr{A%+cMjLvyMpWO-N5y@Ib4rh!1cIWxZd6huD7>^ z>v2zT{hg=|KHJ*cdxq=noyFsxdV3deJ#Gxw<0f!D?h>xIcLUekyMya-_wY}>%6{*l zgr8n$Z|?!FxAz2({l4np^$*$m`x(A>@8R`le(}QlQE<0$Pwg4PwdVw`J_~sK1luQp zYtJQId!}&hxq^T4MmM^!e+G~L%%30Nx;}@;FS8B>eD7Yuwf_OG{VTZkui@IKfouOG z{PJ(L`{xAL{vBNVhj$;JulAq7wf_{Z{bz9PAHlW%9IpF$1=szY!L{cau01z!?U}>1 zX93rqTe$A$3aBpYQ2`_I|g3$3I~n z!+-Pbc3&m%;8pgxOSm34hwE{7a6RrGe%bB)`4Apg{(K16v3ba9yf*SaaZuWzS!R03|_y+9(N7bl+zPJ8t>N$aO?!JAcyO6L z?h&rX4ZdgGO^-W;>v3oBYtHQXIfBQpv&Wso^|&jz9(M!RJ*yEnzdfeGP|NosAa6N7e|L7C_{TCiwZjZZ!>v40q-rgNt zkGqFI=uhnJE#dKB+2bDIdfXFSkK4olA6@qyH9c3B{eKXFs30RMMv9K25|lEEV$heD zu}86tf*KTcUPKKbF!V?r0U`9Ehd%Vs2LX+MFj7MwP$2Z72LT-rB#Py?e$ROx_geeA zc>IUO$IafyKF^(U%~fu#JNc!sJ}>^7tsB8Nud{WhaIL$5Yuy~KbyslRp9{F|&uh4z zBQ<<|W4jNxaIJfQ>;Bxqb$>q6_4No`>&97FPpvzH>;9a;b$_12wci}BbxXL`-N1E! zuHd>qZ{b?Eg=^g&u60jv-Jb`z?$2kq){TETtf$sZ;aYbA*Znzz>;Al?dw)x~)~(@M zcL&$~xq<8cyoYPQJzVRKaIHJ}m9Rd#KSyxgpQmuGo5Hnj4%fOXxbDvdT=(ZST=LD|%^Bk`I=5VcB!nN)OuKRNZ*Zp}5 z*SalS>-KQ1dxBr$L;n1QPaf^hU$~wNvtJGCIrsZ>3g2GlaTk5Pxqxfk46b#TbX~vj z^KaR6p@wVS9sCylce5M#>M{QOg=@bjxb{23weIBC!un|42(ERfaP>EZYri>M>#pFR zdyn#22T@TdHYz1Jo1Q*Qg6 z!}a;V0>0~RchR|B!cXroFW?jZ{>~b{^7C23Pgh@GH2(&!{1sgJw{Z3A0N?n!9b7q& zaOLdb%6Wn-=KxpEGhF?RehBJ&JPllV_Hfm$hi`6ebvwhAXM`)yWEs}Ke5YM65qxuRtIrg! z`Yhl_ufr0qJULu>R&eDh;L5Xxt3EYc_1VLfr-due0e<(F+4b3zZur~ z;Psipl_!QP&kU|S30!&RaMdS=t3GSE@|1Ap*}y;lWII0Ge&k?RX zJzRNCaOD}`%5#RRKJjmb{Zf7AaOFwi%Cmsq=yCQrQU+iBp5K4q8oz?;d9;S>c~rr5 z|J=fL|E%GioNKtwZ4E!%%AN}iTsik}Lx%VZ8pYLq%X*0O;Byi=Q!*!k)aOKb7%D;pw{~E6R zC0zM8aOJPy%D;u{JRjgo-EZN_)5DeL1XrE`t~_VB&TahLVIL=cZs&02N#V+~fWOwC z*BSh91Ha$GHGU1>{hXbjEqt$^4}ov~+{W+Vn!kZ7&mOMxc7!X>8Lm7dTzMwH6V_RI zBDnHQ;W|GH_{`7G60STsTzOV-htpzT%UjL;QE~Z1lQ-Zv)>En*Y_hvr&i`w2dIlJ#qVub*gsh993`KEn5pH=q1Lc;4ndKBD{hDSTJkJTZLk<7e>m zV{Lo_U%SuYbN3WJdyLJqfNvgYp26pjGGD@vk1)^SQ}-2o=k+h(+lSdaYq<7R!nLmr zeDhG7r=t75ws7sMhHGCt_~9Woe*>Sm@8R0l0j|%_XMY%;AAKKT1K0Oc2Kek6_WhR; ze!jYS^he?R=WCkB@RN^E;M2s$FW~z5!xt6o58hi0oTvbt>OAPx)Of;MceP@V!VP+f854z;re;G2ClEy_Hcc@ z*24EcXY(H}#*c7)U3P+B>IU|?!3h7@!^|iDFYMRvyw~2tW4PYmX7q2ipPNeIdjDL& zpYK0cwuI|_GKcHEdIfL)kL6#(w|`__!ZptZehGhX+``qb8m@VE@Yw%O`yQ@&TDayp z!2k0%E&ma&d3w0!Il!!@O{Cze`21&XYM)t{Kvj8_|)gG z;2Y0V!##n`AH$VDfh&IsSN;sX^!zz|=J^Zw#PgT%b8Gn< zxbnAflTV)%^Ys zKfTZEN%#CM{P?#vet@g~BV75T+l2K|{ur+O34H7MQ~1I2XYixv&*2NtU%{2XhAV#q zSN;~R{2hGh`Fr@$?>_^4>Gz)zzW*Dme{$Qfp30xXl|O?ke-2mvg6`LE3Ez4BEBL|d zU&Cjfzk@4(4_E#HuKXih`J>x~^*R2io&OlV@%#yV@A*^s_T^Up0#6)HT=_G&^5<~nFW^hBe+i%ev(>qR zFFbz@KYq~0cW~wJ;mSY2m4AdQe{`p?KFi4J7Q?5WKY`CZe+oZ-!15PxW%~^!x+-==n$Z;omKPQik~uxbhe9g+ISa`1I3W zPx##P*YM2^>>PG** zD}N1F{sw;d23xmr!e@Sd za`?jQP{EbIhAV#qSN;~R{2hGh`Fr@$^AGT;=O5vR|FZoi_YCW){3%@dGr02SaOE%P zp1*`|2g_5z*Z%%i!xx^vgDZazSN;L6{3BfXqkDz*IbPcC8!>$C`4jlc^QZ8`*KEH9 zT=`45@>g)>ui?tyzz-9@|HJ40{?Ne>{`~6U6Muh*?j6=g`D3{9CvfFY;mV)EH=aL- zPd$GD-+TTNzW9pOzkw@%3s?RQuKYb*`3LycKR+Dd6Mg=(3G2Dm=Rfe>-tuQ~<GXt3O{)M48HXI zIehbC+iwL|{u-|Q4P5zKxbk=K-~a02%0IxBe}pT4blQ z(8d>V)xU%*e+5_m8m{~e-LKykzViBa@R`@Yhc7&Tbic4Z${)j(KY=TM3RnINew^F+ z&*2NtU%;oHzl85!VD)d{%HP73zk@4(4_E$y?&oKO&pdzhS7ALTo+MCw%7jpAo)(o{di)5Y|)qQ@HYHaOKb8 z%3r{@e*Kp4gV(=;AHDuH{PbMQ-@%o?hb#X8SN;*M{81IwXX*K4_|Eeu@Pp@1;Y-h7 zz?Hv*D}M!7{u-|Q4c*UA3*UJD4!-yNJ^avE{i6ql^-=y9uKWpH`BS*^XYk|q`u!ii z^85vS=lM(c-19eZh4Dh+Ug)4ssSNec>V;w_53OP_)ObZ0ayJ? zxbjzU<*(t&-_SjO3*Wul@^tWp=kMvBKYCbLALWnX%AdfMKZPrQ20vcg@Bi?L=P%&r zf3SU(@clE)8@TefaOLmd%HPA4e}Hd2{|KMx{{Qf>o@?Fz;WN*l!IeLUD}Mo3{t~YI z6@2OWYxv6VKMj25`CIt*=~n*%uKXih`J-)EALWnX%Ae3Ze+obN^_#(ue*Sa##Pe5h z<*(t&-@ui>g)4stKVHl4|L~dTAK)9$Kf>2fv-&5G2Gyy5;b?gZ_)_Oa7he}pT4^n|cJ${)j(KcV~QS1J7DU%zDVm4E$`!zZ4~uxbhe9t>-V{JAM8G zKj{4*etMkc@8HVc!r{^&_zeU_d-hEMeQ4}9(UQ~1*J7jWe-;mTjZmA{57 ze?#~DEqtZVf8aCE-@^}&wfaX-4(p@*F9tNQ&Pe(?8)0)Eu{KYZ@_ z8@TefaOLmd%HPA4e}Hd2{|G<$^&34Utmo3N-x$7ojMYDbD}N4G{sON2C0zL{_|o&& z@R>gUflu`L4}9wR2e|T&aOIDl8rDboW4Q7sbkCo{H~RbszW4K=!#9t%`d4t}ui?ty zz?Hv+D}M(+Ud8YK@RMJ^1AOKANBH?smOt5r^;G^8uKXEX`E$7P7x1m;FX0P){sW(S z{u;jW{2g8I|8V6W;L1P3l|On~Sf8cmkKsFg{sTYg{U3gOq}9KGtNtZi`75~c*Kp-; z=$^lY&-D2ZeB=3h_`>r?PY>&({4rel6S(rHaOKb7$1D5&AHLD&Kk&Kk|M2}Ito{vL z`CGX1cW~wJ;mSY2x1N85pZx2W=ow)>PkR4{&pdwySNN+C(jD&sr)Hi`7^lk=WyjO;9JjM!Y6+Jso-nBerx#Y zVV1vxD}N7H{sFH1BV75TXNUD!dj1%`^7~H$pXvS&UwZxmuKXoj`75~c*Kp-;=$^lY zAN>05;733IJ^b)ctAF&Ius+Hk!<9dQD}M@C{tSNnZomJ-XP&=+Z#;hqpL_lWuKX=r z`8&As_i*JO;9Ji>!Z&{XMon1Hx#y4JyN6i)Gr02SaOE%H%3s2jzk)A4e+@sq-SRYa zzyGxGsplWy%0I%DKYDIhALWnX%Ae3Ze+u9E*Do1-q0fKd$0yl2tl-LD!V!?*84yF@I;#@d0tpg(C|M2}2 zEPn@A{vNLU16=t>xbjEO59_n^{4xCCU%w>qrRPuKyT@Dp0H2cLNU9=@$DfAoT|KFS}%l|O+ie+pOr41WABTQ`Sq{QaST@Adu<-#pIdY2eD= z!j->+D}N7H{sF%A{3CqsKR+40Fs$d~j&@&-;p@j*{tT}CIb8V*xbl~9<*(pN&tJo* z`uR`z`3{!9g|8lC`3Jgx{XW8#KYCGEALWnX%Ae3Ze+oa}*`KHIljqOj%ST)O3aWqbf28H_;L6{_m4ARM{|Hz9Xdl*R>G@;$*7GOuz2{HivqxC|0e;wBIp!a|H`Jt9SgDZaySN;O7{3TrZEBMm$ z*YJtwZ{Tas-@;E1vHSyE`A4|&M=uTQqx>;k`4hV5PvI;7`YVIaJbw;9KG^bCaOJPz z%HP11zlAG*2S0v?t=q#7{`J=YKkD-z_~Ah|Px7*`p30xXl|O?ke-2mv0>1V9C48;> zKYXYAKYaf{%iqD3zlSUT09XDIuKdxe|CQy>;L4xFmA`;1e+gIq3cmFG zHT>xL8~D=mxA4{dEdM~)`#)Uyqc*IM^2c!HPw4*hODTNk_s2M?{)u&pEfp6@^@i9l|O|me+F0n9IpHY-Oo=6UwQrt zzVrMw{CIE6-@%o?hb#X8SN;*M{Lw4I`W&xd>&Ebf=TG2U&!55%_p*5kxbl~9<*(q% zU&EEZfp0y33!i!Z4!-gHJ$!#p%OAZmtdH`?aOF?n%AdlOKZ7qle-7XK{ilF0bpMC% z?qT^GxbnAf;k`4hUIpA>%Z{26@d`E&TRwEPuZ z`D?iHH*n=|;mY5^kKbnN_VAtOAK(kmKf)(>wRw_PhxJtc6t4UkT={dj@)z)}=P%(K z&tJjkp1+2l?`-)yxbpXKE_|)^4 z@YU^Yo`&x4pDkSZJGk=qaOEH9ett&y%=1V85Y}_z`D6HUZTT~}>Yu}vzkn-$30M9K zew^C6HGJav8~FLv{`o(AaXXu5fGht9SN`a=VSSW8hAV#p-+KNOetN5a{!jP(IedOw z%U{8jzlJM+16TeQuKXQ*>G^y3+V4LDeCGF`k$xM?pS&)tr}C$8<CpTm{EfN%Z! zE#U{Re+55!{cHH@)|S7c>*qh=%0IxBe}pT4^!l(qOV1y}cb-3iA3T2w-`&#k7jV_T zge!jqSNC!T+VZ&x-?(uMU@{uHkK8C>~uxbhct zKR+dW>-j7A`Azm*uHm~swEP`h`FptX4{+rl;mRMqIjqm|TW#GKzV`eH{N(vl`2J=# zPXSl{60ZCeT={Fb@;C6U=WpRl&)>n1p1+4re&6y(Zwc$8{4rel6S(rHaOKb7OV6Lf z=bpcSA3T2vU*6R6H*n=|;mY5^mA{88{{Y|m^*h3+pR;owy)~@o-v54k3_tyj<C zpTm{EfGd9qSN;mV^!zpa{LhxZf$uzj3*X$t@(*z3AK}U$y)CSd^2c!HPw0MrQuxvH zXYj4(&*{Hq`75~c*Kp-;;L6{^mA``@FK6ra@V)0B;2Y0B!gouXCwY5VPvuYH%AdiN zKZh%S0pEK5lJ5B{_}cT=@bj-*{tmAEJzV(*xbly1<&WMG)@SMYWBA(hC-9Z$PvMJS zv-|~I`AfL+S8(O8;mY68{rYX;`%l{S+rc-w|HG#@vi#9I!}=(H3|IaHuKX!n`7`+O zhiu&(zV-YCe69OGeDcdSPXkx}7OwmqT={#r@(*-BKO=nY`J*H1>G@;$^p`Au23P(Z zuKWdD`AfL+SMcLyZQUBa^!yFo^SAKXFW5W-T=_@1@<;Cq>!bWJT=^6D*7K+Ex#!Q| z3(ud!*FR_ZE4cF4aOH2{%HP73zk@G5e-EE}{sBJs{3HDEGnPMjcUVv5PvOd+!IeLU zD}Mps`t@7F_n)=G^B;)bls+z2|S~AGP`qaOEH2${)QqtdH`?aOF?ve*LEK~uxbhct zKR+ei^H=b>=da-t&)>n7zlSUT09XDIuKZCS*5~-mR{t1&{*2cXKJ)x3eEne?U%-{W zge!jqSNG^Z`-t!mm ziRUljOV8iHmA{26e+O6o9}u;mTjYmA`~5 ze+6H9{u;ja{0;o%`CItR^AB+4AK}U$eK4$#^2c!HPw0MrQuxyIXYixv&*9sDv-($X z<*(t&-@ui>g)4stKYo+n|KW4bKfn*3e}qpwfAXQQp30xXl|O?ke-2mv0>1V9C4B1n zEBM~?*YNe1to|Kb`FptX4{+rl;mRL8C>~uxbhcp2e+yUs4t~6?)vbpwJ^w)W{3CqxFE&r|v9O-XpTd!Ii&SH(Z|F3Ogw)KU+VLJx<3D>U(fOvaOE%I%3r~i zzlJM+13&n`TiwFX{`~FWGp~OSpFG&kPxOhfKFS}%l|O+ie+pOr48Faz)h&mg2g_5y zcY6PaFZ|zMZs5w_!j->+D}N7H{sF%9{3CqpU%y134C{IJ>or{^(O-eUv|jD}Mq%T*C6F@TtGQW$^Ru zEoTnj|G3Rl!Ii&;D}Mu5{uZwM9ek_%Km6=}CuD%1JpTxvUf1#`pAPG({3%@dGr02S zaOE%HE6-oTkDkAxd;S`JexUWGgDZazSN;L6{3BfXqtAr(nfmn`!}p#)fge173Sap3 zTfmjSge!jqSN5)@&)>oKp1+45{=@1Y4PkwhKZYxR0$2VNuKXGNbQ`}O z;cL%dz;~X%girkbvxEQQ4X2a;|NlDp?GN8}k)Po|^0Lcc}u;S(QUz>hwE2|ql; z=5OH2-@=u@gDX!DUwYjJ_}qPjZ{3s6fBkxqh?))@SGI#_+kXo4{vpvUM}K*3IEsw}5Ya-4Z_Ybu0MpjkazB*SalS z>vr&!uiL|?zU}~@`MS}+hIP}rF??p|+s61dh);aWF?pI&J5RBg8^ia$ZUUeAx*1&S=5VcBz&E~b3E%m; z75%k--r!odg=^gozVdZ@_}14Q;In_Qb)zqZbgMal@VT#>z-PYS46b!^ zxYjM;8(+7C&wSkqzVqv-fot6su5~;3%Gd4TQ(t$0&pN+;zY^9>>&9@co4^;oZVI3H zx*2@;4qLZ?YuysAbu0MH*RA2_=i2-YeCF$RaIM?JweA3)__`zf*KO&(ZU>+Feh0YL9pPFx`YP(?>&EcC zubaSUZ?-yTaIKrewQd35__`&0=j&GR+1vcQ!L@D+*SZ~iHvRx# z`1lTf^8c>?WPQ^A4fCr$Te$i)z*V2c#BynV)u)E5KH7)It6#bAPp&+Bxbj5b5U#5{ zE4cEsaOF`Sw65}$-XFR09O257eB;;8vwO0LV_~Kj5YxvsdZ{P>d)6y?v^K|g}H=6hGrTYM1xKF+*ti#=( z>E{G~pc{;fAB;OL|nO@22nZh^UZJxnr z?m2uL+xP;$axdYF@3Qd~eC}SuXYL(*>G^y3)_s60{|Hz9=(1sbls|?me*#zj6t4UQ zd~#K*LkZuxSMbGEYfqW}57)j1xb`)|wXf(~!#ZnU zF?{X$6Zqcyn88=qu{z}N-POzs`1bqFOZsnlJ>i@0Gq2%mAK$>YKE8$T+z0sf+BW|P zSN`boVcnEJrhA?QuKX!n`7^lk=Wyk(;QMQNec;O9z?HwHd;Sit{5@Rx2e|T&aOIy( z!+L(xr|tb`1HbL}m^bkH()Rp4!r$_jHhzTP=DOyyZ~OY|X7JZu%jRFhU*TTE*I%~r z2ly=_TX%rJYGvc6R|xamy)#eY`uU9peqLMOTln!V<{f;0XY(FDEzJk`_73JFe19|Z z=-b2m(_5Oy@U4$e;0N~%KK~1wCx>fa1zh_o;o4UPKi|#fui-n-)4(@>YU5kD_SM0) zuK|Ac`j2q!EBcPGp4wLo*S-?C_Lai5uMDnz<#6q*fNNhBe5!iFwXX)QeYJ4ytAlG_ zJzV=5;M&&+*S@0f4C}0YC2(C|DO~%?;M!LX*S-q4_Eo|+ehw@6>W}^0!nLmku6-Tg zkNK?MmoCPqR}Aa(?jN`DDO~sA6&z)BWr`_wdzUnGf*E{mn=C%IAr$9Om5J*T%>2`Mt~&_+(?A z!e>4{gD>1yaMh=Rt3G@9>?P*gS>LeS8LAxUb-< z=K-#I4scx;)2oH~^>thd*Y&u9>+7!yKKUs>&+zH1yq@rbd-MZgp3~oZJ>g3qpTH-t z^Lo->X`aDXuQt!&Qy*WzXYL!g>VJZ({?QMH`%?YqaMeGDtNt6f>fgZs>?3xciGCgin2Z1)sU^;Hv-R>fwG>&jhY| zF5x%-g1z^aaNVDG@cIKbzJpi4V(0%1*Lld2Fz4Y@UN`ve^IkXj)V+i+eVz(F`K--T z!%v?uZ{U+po44?@kMH1eDQfZ=L5X+zD%zf=F!)K1^hU9!bRVgEa~5DUcqPXHGJXoH1PSQZJriB`(LYn z2cKTT#`o~Kk00O*_sO-w{i-i3xcXATbG3FI~ z^?kPA8b0{}^9DY@n%5IPxx9G?KYfRJ4_{o?e1OlcU_Qc^K0dlmxZjf_h&|MH&;t>OB4q)8gi|7HKV(+GZkoc-M641VKl`Ew0^^6?A!v%NkU{OIFX@Ta`r z?gIsUQd^!1zW!Z1KQ(;w$L0-ueRJ~`esJ&L>zmp59zOjY^8voRiTMbh-`G65epvs5 z=a1p@TiEyo{HeXwzkvVx$NlRa`0my=PY<8m&U~QX*?ffWe0=m%VgC8;ZF~%0___&v zTiEy%zH!gsi?xl<;mcc@Z{Vs=16O^bpAPe%?&-@C*C;KjFSM547t^t? zk6*!co;&#ZZ+yS-Y2*8aFJI>Sg&!Ve9{t~Nzq99>$MDG`%@g`F%v1R4CFU7?=JVw6 z^V4m7L4SgI2|s#&EBN^_Hok_Re0&36`S=z-eYDNf!H>SL9=`N?4)DFNJHoeKhvkQX9so+PSzlNVxXZXa=NekCG>EJpiJzVEx zp!+!);W{VLBCNB{NetIHN#HssDO~3ygX^5+aGjF^u5(htbxtby%==iwbsi3Ief}`O zpZ*Sef0+JESf3Am**t|m@v8P-x`My(V>bQ(zpyU+!n!|uG3&xFtPB6Yv3*~!g6lnh z57*ZPJ^YIP`wNqw3-jpfsRaJjZ}9IY!ms1+V>|d4K5BKF{Cqh7&-|=;0)MuD|9T1k ztk=1O|IjCFo*i84c5r=8euh71YwwxyFN8U-|DWay_=_)LbtvGf=N7KIwQ$w#1lKu? zelg6WzRck|S2_G?3#-otUVA+U_~w^vy)%5`KEfBjY~%I+*Y6)`-NgTQa;>X%F1UaH zqQQ9eEX|+V2Uj z{YJkM)uUqobFhKyIe3KYIXJ@g9Gv||xb7AG_Xjh$o`Y++?msnL z_n!k?_n!f-x=oj19@Qs>t3E5Z>RiEfKiR`|KZ$-bTzBXHeF~rXe~;-mw*S5U|GGbG z-3;TkuGZ0b)w#oX)%grpo#WpM^Q+DaxawTMRp%{Sb#CFR^UU|n{25&N*Kp;p;mUu2 zEB^pj{^?D^Iw*e%SN;`T{i@*V*9rc?OWFJ08U7ysz1_)ghk35~6?^}m!Sx)>;8(kj zy^pQo5BreKQ^SAEe~`1$=d zzJhQ6!@P!{zG~jUk3LTe-+2B3uJbU$bsnOdhV|5Wh~YX930&tPh3hpYZjoremp^H9Te9vZmLLkrh==-@gJJzVEufa^SraGi(f_rm(?Jj8IFhXlU&^N_-I z9t!y0&s7Ouf5y)z{Os3n4c9qo;5sKQT<4^Nul?Ni@RiOpeE${8Il^_WqTdhex$yBZ zT<0o*AN@X)!l$}Fz;&*2_{_%_aGk3Xu5(qvCm-_r1AP8Lzdyiru3EUxRR`C(>fu{I zR|8zuD%@L+V24W?vLC1*!2H}dEWO`f3JgI zIM474=NW$CJi{-X=bMM?>g&)1u5-SGt3D-MecZuy&O5m3d4{W=@gIjdbJi0}gN9TMFSKo8E>a&4A)ZgbD_+{Q;=ivzdsQ!K$eDA*pH2ae< z=Wr97Cxc(ZzfM`hb=}o)U3Uk#uDb!Q>u&m|VIEy~DO}e@13%o;{`Y(M%Dsi3?qTB( z@Wb8AJNTwFKf)JxG4J80JDQ*1EB66@xPy&9!)NXzd~tglKlwBJPkmi~x~>0r`0CHi zr|{D)&13k?|GWNE^Q&JO#_K$+;kvGCxUTC1T-Wsg*L6KD!u{&HPT{()S8!d|6Po#UDpX**Yy&vb6&!A&eb2yuR2G!3hSUc&*7?b4p*HwaMihitIkKb z>O8_#=h>~poT_sMSDn{z)wzbN&Ih>aJit}wsb2@Gr|PWhL#}gPVZ7?RhpWy#Ty>t@ zCai<%oWND*C0unb;i~fvt~z&c)%grponzfUF8VEs$wYNtz*Xl0t~zhws`G{Wlh3bu zMz;&=qk7Kas%H*YJvVUGvw^FgN4V-a!d1`NI?SnhW^mPW4OcyDxaxU;tDXZ~_0)5K z=eF?YgIxEGEnM@raLuph59i7Jxg^&-Yq;jo^G)M*eGM3|d8YoH)OgLK=ciobtBV=0 z=di|W-RMqXA61_@T<0@~>wIqDI-d<(=ko~H`5fUopR+rMIdwiWxX$MquJc*Lbv_Sp zozDTT^Qre8)l+pV{5?pnx^3aATMJj+PH@#Nx@%Ym)ol(}-Ez3sIrgsnPp!%e6)n^4)eJZ%>vxlobJzVvf_}3ZAulgi# z)n^G;eM-3MqpxE$zs^U(W`3ZGrhJfr(OIsD*W!56--8m|5}@Qv@Qg&)0c9sHzv!Y7_* zfUCbFT>XtUVLdlj@p{75-vq9HrEv8(gKK;aU+Fx<)!!1X{#NkWH(CCg?)`1(Ubhym z{tobo_jiP=ztLZY^_+gY*Au?<{U-3)Wo>*)_wgBA{mtR(Zvo$5+2$|le*IQ(^{a-f zzYSdDTlnI;ZQTy8{`PS7cYv?H&*mB7x_+bkg!P|!e`C1%o57ElwE1(m`diSi;Pr$b z{5q}Rvv0BSHT>-38@T%0!qwjnKJoi=57+fOz}2r2uKq^%4eP1#F?-z{RxZY1HxZXqd@W<=tcJ3dptDFg3IhSzdEaA$zgDYnTSI#qBbzVFm%&B<_ zxaR5LhpXAS>fzHLFdyJ6A0JiWy33!i@iBb$ljaG0c3txnzV&r8dSc^q_|C@{@XfVt zd=T!aNR#oaLu!LaF|oRyBP1_T6gx4uRqV`V!VNC zo+DiOXAk}Q^Jj34Z{U+(_45EfT;IHdZ-3dmhcDd+`2Oc?{0QIreJpxdn18ph@iAQE z6ZqzaHa>+ff66?A?|t1Ie)9YU{OENk;jo-V)W$dPgXd}CNB04K_H{?N z`V~Dqtf%@F!_}_@u70I()jxx)UpZXk3%L4K!qu+|u71^U^{auaUoG9wc?Va&dbs*E zz}2r2u6`xku>L3SR|;3ZGPwGc!_}_>u6~tp)xUzPUo~9g8@T$_!qu-1u734!^=p8u zUn6|#{fZtD)>Hk8;p$fcSHDuY`n7`VbG!VNSir&f$8G&Ea~F-N5z! z+`yId2-o}S2-ov#^{6nX=BePCXAjpr(WAq8&bPDsTMR$_u6Y7q{hoOW-~XC<2A|#7 zJcl2Ad;y=|+{TyiZDC%)kM1>mcWWEpz?Zps3qN|E4nFnz^zgISXMnG6Y4eZposW+m z6V`v{`;FmS&y&DU?kQa33;4#zHK2G?_K2iNBzlgEei=y{jG^}Jic^}H+Ldfx5e%Gts7+&RPboQj_i z=2ZR#-TxkY0l&(_?f0P$aOD}`$}@dpxUTXP@Xf>R9G39qz0E85>Q3f0e6}`k;QRZS zxA3`-@8HL~+4!D*NAm%`xV!lX-`~MJdQw=2g|8dKC-<=N3Ek_E!qY; z;_DXhz0Y65HNJr_9%=KpaP_N$t6x1_{Tkrv*9cd?q9=#-RKH@n_bY)P9%lJdxcZgB z)vp|`eid}p6Rv($aP_N(U#LG^{c7PFKft$-u>Fp3^(%TxSWopUhO1u*T>VPn>Q@F= zzjC_wtAJ0uUnN}qs^IEZ4OhP!y7#Mvt6v>l{p#Tt>JL}HM!3c&PYvsT+WPr~t6v#h z{mS9$R{>YQO1Sz}!PT#t?)_@ui--FC0j_>^aP_N)t6u}%`!&MVuV@$6Q~iqJ7wQjJ zzf!oy7x20FtAwjx6*~EOfouE*uJ_djuJ_d=T<@zRT<@#1XMX)W z8C>s&yNmG-uJ^{-v%>k6KZD=Z|9;mRewS-lUuyUzT7SQVf5qR22e|%D%kSt_~r@bQ4{8w z@62QP>?!66eEul&6uz&`Gx+97<~e-*X!8QT^La}6`7t)Wf=@k94PW{A2EKWs&C|k< zo~MH^o^0cL_}Sm92l&?WjPQfkA$o3D|Ami_;Y;@nKK1_Q^rv|};d>un!qwl3u6n}N z-v+M!w(yhhw}Y#{JzV`A;Og%PSAV1Dh4oZ_W4QX8z}4RruKs3l^*4vBzXe=<+`x5z zXy6y_=kN>nbNGe(`SZg%==WqZxc)t$HC*?f8vb$rdxi)2?Z066;Q@aC(e9tq7le6k z_&OV(!f)sI&lUW({`Vm(_}zW{9{w`_dyhT*k)CJr!Z1(kzh|1jf6<>uOZWqP-4cES z{oP3T-=|co&Pgj=RbZ~m{aF}0oVC2;5z?XxXynI z*ZDueb^fE5hk11V=Ww0>9Io@8_zlEz`9bDskxcW7~ z)vpn*eno#5)>Hk8;p$fcUwXe%xcZgB)vp|`epT?pUt7Owxcb$=)vp$=esys5tB0#! z16=hV;p$iPim;v{VL#xzxDeqT>Yxx>Q@a{zdHEF`_n+!PT!Eu6`A8)xU(RUlm;AYqR0rdu$~$p!_}_@u70I(^(%v`UpZX;D&U)!`|}H~epPVwtA?vz z9em^c>gjrZ!PT!3u6{*_u%7By3|GGrxayz6)vpY$@i|=mD&Xo@30J==xcXJY)vpGA zewp>FrR(c2xcb$@)vxFu!g?;eUol+QR{~eRQn>n+!PT!Eu6`A8)xU(RUlm;AYqHNJQ@X`zY_S-zn)Fu>Q@F=zjCa|d>em2Q{YSX^6}>*Jr^d%{^(%p^UnyMu%HZl(4p+Yl_`>^D!qu+| zu71^U_3HrF_ss{me!g_^hOj>RK34(P_qn!keV?m^>-$_MxPGrBdSke*ehy&{*UvL- z;2Ph+H9mS%IRE;U_S}i#bN2+kKG^sazIV^yQ=cb?&wYFWU;mxIx4^gV6@24f!}q@K z0j_^1dVuTScb;}(eSYDI_I;cbu7AgT2iN=^{5}5f(j_`H-aLa(-eR7^ z7w!do=JS;B!<%iM3ch)*c@5vWH}I`{3t#xYPH@#HdP`Ub)qf6G{d2hLe}HTL0j~OI zZw=Sozr*VZpT66?fKQI*C4BWx^9sK6`D^&h$2ail+iac|zVLNB_{_)m@VWcsZQ*|P z`^yPj_roPzec8cP=MJtqCvOkeJ%7OVmBN?rH_zZx_Z&X+c?$UPpKP8Ie*Q=Eithcb z;Zq;qz$fl4eElAq{{&Z^qj!XLP@U&+)j5Y>!oOd9fUEw=JHz>>AG16ueDMkM41W5! zc@E$BJOzB><4gGVWb;(;^#{#s`1vE|4SeI{TlnfjHvRwi`QlySy2`VJ-|biJIkJOm{2uPR}a^I2e|e-!nNP%AH#ZTzcF0< zP2k#Z3fF!!xb~aFwcic==lwmQf$JO|;X2PFT+hwbKZX0%JQZB$d4O-eY<(Hw3-{ItupJ%S& zcfY>f-zNRnpFe?Xo+VuKH1JLGq>KLEW(%LXckt7-ZF~=(&dmq-_Uh&%eB&OyKit>k ziZ(umZ!T$`z_;!xd~y{VpTXCjKZl>MY~u^~{;K9BeCqR8@Y#3T_!_?RoCmm`zXM$F zMbi(2^?6$DUuVJZcq#jLrC0F(ey}~SEBFgQ{BK*HBfNT^%`?L9=hwyTLt)M<_`g?@!N2J532XS3pKj~c@OysV);++l z?&Alz>OB2$m`8Ok;LG3la|J*Do_PhI{h^;L_~I7k4SehKwD6642iJAi!*$&aa9wvJ z{J69{(MQ5M?Ek<#h97)<0^j|njZfhxAD_W>-Q{pycN@5_y9TcJ%p+Xa*9ceNXCDps ztG;jGn!kbTIy%C29gT2ZN3&D7uCAjDuIp$G*L76GbsZhxx{e08uA}M4!aTZ;Qn;?8 z6AHBlTU>8)OD1=b=_sJ*2 zbv1ti*LAdn>pCjox{h{mT}K^U*U=fS>nQ$Im{Zr$0^zk4m3sx>-qX(^eCOW4r+?|^5PtUgJNW9pHok{1-3R#5*B#+|_vkZW z9nSZ%`D6IO$0zWKk5AzzAHRa@99D3h!#!N*FdD*~+Xs10`0gR*34G$?Q~1W~mcb`J zPY&Pt_yWFsu&rCdkG^gNU%S`vrF#QE__{58dw*NEgYSKO51-u6#t-nLk00SD_t|H| z`hV4b|2KnQ_FL_Jdkt5AYq_FV{XX*+u5~;3!S~z4&$Z1n!1vEJAK{C~nn#}x`*n7Y;ZyenzIwdPlfsuizJRM= zC4BK-o2P=SUp0LC9vk1lRks$des%EEKiWJ!T>Tp8@3!$HTZ-6>Q@d|zY4heRl?P;2Cja!@Xfod4jo+m>fy_yjUV8u+Xz>`qJIhNIeVwg6T{W7 z1b%+IjZfiPH-oERIb8iJ;ObWiSHCK_`c=c#uLiDuwQ%)ofU934{O~rbL-ema|c>Q@g}zXrJa zHNw@eHk8;p$fcSHDuY`c=TyuM)m^ozz&YL8qDDJ#*CSW@N?*2U4FSS1#ntm`>0H@O(3HkC%MRu@dU z8W(8}=diBFaWE+6aMEzl@Amt=Uaz^`=5e$BIJaB(+v~jMJ zCpqMBo7V;&Tp{%p+;VH+Hm}|vx_J&Rmp*;C&1(p+FO~Wc+>Sej+q@=lo7WU>^P0hJ zUJJO*YYDe`t>8AVHQeS^!EIg*Jo~KV(EHzRo;I&OJYGxv5N^4R;5M%@Jp7FGnZRvc zQ@HnOsh`2^xC^+=YYDe`t>8AVHQeTv!);z0xXr7A+q@dM&1-mlH-DSg2=07Jau~yH zUK4on38|mLEw>rm=Cyz)mq?!_+~&1{M<18^HQbJy!);z0xXr7A+q@dM&8zpvZk{%; zKHTOtgxkDEaGTc@Zu6SK)AJ;U1>EMfggaWlf?LjOczB`o&*7QAzTUvoi=@7Shb!?0 zZhd+;bn`5=e;;o18p3T}Be>0F47a&V;OPftom2QgUl-5dh57=XsxRTO`U)PYXYf6) zlg}9|_|xAh?l;}s?0xSk+}?+e;nt^whbPGUHoZUn{r(=@`YhmApD%ru@Y61r^{?P> zxRZSTyM`bBBJmu4)3d}k@C%L?ui$q&PmbHb|KmhG-#>TH_ebh|_`c^zpCSCJUy6_6 zga49!HGz9K=zfD|e-NL+=f4wQ!2REdFX3@1zM|jtee%5yy7tN8;a#MD1GnQ=@J!FQ zfjd8z_4NL)o3rzK@jiV1eeogO`+@if9%}s<9_w)@bgf^&ZC*>bcW23A1-E&v;m$uw zeGa$WHgKC)1uyO-eHwVI^XmPjn`d%Isqe$>xI?(jYXrA>jp;hC3Ebv2h1%5k5o7W0%^IF4gUOC+6wV~_0dVlNYY4hsC)7wZ6L%7Xr1fSnp>c?=) zZ34G>P2s_ z`U$srP2lw{B!?;7<~5`5E%ghy<+g;|yjJwRq|cge&tLHH=2E|b+i@$n&8vaiyn4<> zJI|l?@0GXDUvQh(5N`7t!EIh+xXo)qx92ao&1(tw_LLk}aGTc}?(8A;IoxvFz-?X? zyx3j(G;n)-^={J5Guch*`*1t%5N`7t!EIh+x;=lvZC+Ej&1(j?c`e{JuO;1{zu-2n z4LsUaa;V@ouLkblOzL|#?dEB@_2D+JA>7?X`i$TE>zk>cdkX&dk?h0=6TElH#Io+PW;5M%cZu4s3Hm}~zy7}9@`gD8#g4?_%@cREG zhbi3VHKYGo>KAa!Z3(w|t>}M}K5M!?f5F2>>NjvZZUwh_HE^3(Z`W>~?eiDh<~4-d zyhd=F*BEZ|n$UG#3%Jc|37=mlIjrC|uQj~5R_b%OJuWuzw3hk`9_m~gcyztg_jc>% z>HSu`54S!;c=R)=AHi*2W4b+m!EG*6xXon-Pkt%KUBDxq%M$MD>+Ti2*7`NPP|xA1 zdI`7pyL!8K^R)MuLb$!(wSe3ET`Bxd`tJp7;MU*ob&qTBgH7SqCx+X4)^O`T+@ssy zzmGo8!ox?3kKyq_`aBD_`YGJMpVZIb$pPXEc&zJL!i#~_ui(xj#MfIqhubIoyAU ztaG!)D|qq*%@bZfP`r2ZZk|@(hlhtq{Sa>R8o_N|V|cQ!^qIhGo$mtf>;7NT1L?DZ zC-)Lx!+ovK;e|dfHgKC)1-E%M@XYq-Ufn$Hxcx0YgtvLZ+dSd6|0i_a{|k7VC%k;D z<_T}}gj;tDic{VTYwe+{?w=Wtv92JYzkd$;c9lRj0}--p}! zhj3f}2yW{i!)^T&xUGK*xAo89iSC~jJbRw3e+_p}63^k$RD1*XpDkX&ixb5gc=|8m zz1wv2wElf~pnZn$!Skih2wv+t$8i4zQa^!P{S@wMpBcPZuJ%1)yHE4w>kE1-_6zN-(gt5?R}mSZtLmwyT`TlcyL?K1a9k@ z!)-kkJbS5J#~S$jjpDsKcGpw?QoIk3-ylAO2ikuGcYh)EV|em<@d^FM;!}9`I`J9Y zj=O*t=Sck$o-V{!@a%o!Yj}B z{St1+UBPX>Yj|8ppB!%U-N0?W72M|Az-_+0yL9un`S$5L-yz)QJA&JMr*NC^44zyg z=evO0e3$U_n^M1mTh42^%{PZ?*eY~UBYd?Io#&Ef!AM?^R4K5f7QSpt?v!Gd0NhWxXpJ+ z|Ee5!1h@H);e%Z2CvZFN6mIjK!M(3Yp9S3JyM)_(S8$u}8gBE=;Wpn5UFTcDZN3fM z<~zJwH-DS&2=0Gb&UXyA$L|Cld`ar3biIF`!EL?^c=$!>vxM7xSMcZyQon}Vd~>+X zcLSeaC4DNm&9{Nue0%$J^R)T);WpnP+~zx?>wL#>o9_f}^IgDgzDsy~rJU~yZu4Ek zlT7M!xaGWo+k7i{`g!Toz-_+0eY<&PpOgAN+>Seh+k8j#E2PgDZu6bMZN5{u&36X3 z`7Yo#-z8n=yMo(%*KnI}1-JP&@bYpw-`;-RJZ-*x`ejl-gj>!dxXpJAceKw0Zu6bO z-Am=TGq@dh0k`=s;e*dgpB3EZyN26*bGXfS1Go8BaGP&K*ZKDL@8)mw?Za)pW4O(C z0{7N(zEil(cLw)ABlQco<-CO3d{^+`)6!=RxB2Gq@KaL1f!lE_xXrhLN1v2Fy}Nhw zwE6boHs2xK<~xGhe8+H`?}V=Nox*LtGq}xn1-JRG;qy<(`Q~t&?*<-UBJ~yAa&F)@ z-`+jCc_ts1K7G2rzcGZTsnn0)cHA-C<~xCB7fYWhUEjZ&!EL?^xXpJ7xB0H%Hs3W} z=bOWAz8kpBw>RwOY4h#Fi;v0q4&gT65xl%e>c?=)c>=fjPT}>1(q{&@$L|8}X#Emy z$6di~zH7L9fgCr7+v9fwxA|6Zn{NZR`SuRz=5O=u({;W>xXpJ2xA{)tHs2Y1@KHJ6 z1>EMlgnQ>p{R(b5ui-Y|9PY2A&jxPut>D3VQs2<^zP)$PZk{&ZK0G{E`V8SV-x1vA zJBHhQCvcnZ6mIjK(RIEHxXpJ7xB2F9o9_lbKU2=Pg4=u>c%t>adv)`)x%AtBdZ;f~hN;DH`@0gpc-eU@;W?+R}7UBhjTIbG+tp}$G7BxWxnbKYT!b=RSjPzv%VkkZ#W2O{ISy?)+Kmhw!2iAHi$&F}zft z!s}h-xHEX0GrY|i-sTK%bB0@PIlRpoZuJ$s%^BY2eBUiO!`qzUZO-sEXLy@4+;=r+ zc$+i4%^BY23~zIWTW&eL%^7a>6}-(E-sXJ2Ejh#6oZ)TG@HS_7n=?GPrREH8bB4D$ z!`qzUZO(AZEr+)`!>zu8w>iVxobSISXLy@4yv-Tj<_vFhhKIM%oZ)TG@HS_7n=`!4 z8E(1d@HS_-)mQK~XLy_Q1GeN0Z*zvXIm6qW;cd?FXm8CK-sTK%bB4D$!`qzUmRk;Q zbB0@e1#fePw>dv>OV02%XLy@4yv-Tj<_w?jr8(2>egod-3~zIWw>iTtw;bN)47d6U z-sTK%a~^HU8Q$g$Z*zvXIm6qW;qlEiXL!4x;cd?FHfMO7Gu(2^;cd=vtFPc~&hR$p zf7+5Wyv-Tj<_vFhhPOGxlRY(Oc$+i4%^BY23~zIWTW&eL%^7a>6}-(E-sb$EEjh#6 zoZ)TG@HS_7n=?G!Lvx0=Im6qW;cd?FHfOlymc!ee;Z|S4+nnKT&WCQv8Q$g$Z*zvX zIm6qW;aN{}hPOGx+nnKT&hR#8xaF3^+nnK6U%}g);cdiU$ z-8E-;n=`!48Q$g$Z*zuQZaKWo8E*9zyv-Tj=KPQ?Im6qW;cd?FHfOly9K!AWq6}`| zhp*uFeR%hw-Syk|;YV=$KKu$EA1w1-!^?xjbGWa*fm?kAkMARW8hEDOdsuhEc%<+u&pj@vt;yU*>o1Nd7XF8gx<_g<^#1y5fs zzJf>UYk07Gvh%q~4v%}{8+da42X^W!xOani15ea@kLsRppzGQi{Jhn(*W?(QbOf@iOhoY!#6KZjfX8@T0P!7cv=Zu$4d-8?P-KHTyj z!adD@1h@Rhbj^PPxBRDY%YO#9{1ywvqKaLd1UWH(RC zzYn+khj7b(1h@RhaLa!JxBRE@dM=OO8Qk(;&^7-h-11++E&ny#^3UOx{|0XP*YNZV zS$_kM&lGnb)6L)N`|$8zrQU;E{Rm#_aRa#3PvD6@Pc7i}d*rxFcyyNd3ht?|;kJKr zxb2?}+^(M$+^(Mu-1blJsBWIFuBQ*T{WGN7^B3Iq&lqm|X9BnVGlkp!nZa%Utl)Fa ze+{?%bGYTdfm{9+-12YWmVfWD-8?P-KHTyj!t15%lM&qVAJgsm3vT&O;gJdv%i%Wn4cxmz`d9GcGVunUsP`V<%`^F&)c4`G zABOPxrBXkFN9tp^vx~fLn!pQv{k4F%dBWQ~;ccGqHcxn)C;ju9C%nxQ-sbs)Zk}_? z6W-^3;9Xhqrmc+dScI zp71tLc$+7@%@f|{32*a+w|T7@HS6)n;D=7oWpD^%cDMZ>e9ygP)1#a94c;x7ULeJnqT; za09pdgx*uTIoo|gA8zv%;gJ@yT-oV@Y z@hLn~pTR@*1m0e6;qCPn{@?m}MF08S9Dez) zay|Fq_IsQJ-X0g;9vA+_3$_0Xy2mX?lEWCD-B)vir~f1#!b9Cx5xjVU)X(6F`U)N# zEA?x5ag2BlkJUGDdtar3+xsdFyxpJw(#@y6e!|=R36FF=BY69Ghuixq6S(c?DZG8W z!|i>Q1>N4)h1>foIlO$L@bUib;<-dSi{!6&!zk*x-Yq;f~)9rm-xaHrAx_LU9e;;o758<&r-r<)27;gDb z;FkXsZu!sPmj43o>Ux%N%YOy8{MT^HKZjfX8@T0P(d~U*xaIG@sGEQBB)R_d;mJhY zgIoOw9z9v=1Gv>s;I$q%f?NFzp6T<{ihi~ncMY#UD4xSZt>3_X^$K3RNBT5yU%mI@ zZl0-nAMOP5`Q{Kl*ZMI$Jx`81fd?NIpVGB{2KUq#@cLZovxEm95nsUztzX0KymEM~ z^&7aa{VRB+?!2U%=O14uug9nG>>^p`3?5w~zJP~Xzl8hhD|mdN^jX8R3&eAHr1cxP zUBC(!UQ+GVviiy;6Jx_q2WtProAd6L|SK@hSZa;xl-y^$WP8>tDjX ztEA5g9)3+cgYWSRxqlv<(#@y+JvH2Z{~p0#co*rjgfDlKeU-tlI#7K0((ZA?Yh;}x zxO=tu7#@E^d;*_;Q+!JQw)l+xb@2tCHT*A{Lk@qq{?2^^AKm)4JAEp6@k8m~z-Q;m`g%^#j!Cpk~x&pli7had3*@frN_n!^JAwpVEW@VWM1 z!EexiUv&+ipD(%P@XKy0{WtJO-B#9F!QG!p4h?*@ugt4=YB&Ewza)M7@Y_FM^M}7x z_sIwzeMsuZ@F%}jd;-7S!^NlYpX%Rvn8Ekc`UU*!ACdJh;roZue+55L*RzH%_3vQk z@E6`j`fT7|)5l!}cmG%SKl~Xwuik0h{3rVNDEjb?&V2~~t^K>b@b5lCau~xOdaULT zf05=eg}=^|J~Q|Mzm+}<_-Qwjzx%O-->COXEBHO{Abr;G>-9R2!*6x9<_~|sd&DdF z89J{9-rT5vpX3$Y{CE3r>C=bbZ9nlLeEcbSe2w7$qH`R>pR3o63H*b4-I&5}_I=GC z{$Shx@aq~`=Mw(vzsNdQ@HgL6>eq1pRdU=M{+*@x2L1|tyjSoeb-y+6C+l^lcX~Jf zmuWtI_=g=i?hyVhy`GQYXITF5nLh3&aOY2w!xVm|u4e{!PLcWr{0!~CgdcsetbYZ6 z>HeBO{4;vKIsE1e%^&__yZ*o*s*kS*eyr}F-YdKLzt8fAA86Nq_}7k?^^D+O*;D@x zJp87=mih^N_wUO7oWeh;_e(SQ9rSUrfIm%hUc%3~i{=mih5r4kHGHYh*E#&M@5wqh z@ay#YT*331UjO0u(e?LU)y+S?r_}f1?t|s|dI&#V?~6w8gGy&qn{kI;Rxgg@s>%^!ZfKEJQwqwh$44xb(;>)F6ppA@g)Z`SKl1OJ%r z^WMCh|AjjDKKwWO_!`1bvg<$m%A;icWB3(%zchj0aVYgu_*J(5;kVc4sRjI4z0NP; zv0e{X@Ei2J*6?TR^&yAfRqrP^@NeqlqJr;I$ayvJjpoyPbvOUL^g7&!zwlJq&qMhB zT0eq+(60aRM|@BEOyGCX`-&+%((B0#e*Ia}X8}J>`zLVwenk$q?^o1te|dPZmK)_gQfonZuy6B%YOks>0nt;3b)Ux zokjP!ww@u}`UG(MoP7qr>2-445^nu_ukRk$`g?HeKY?5SIehO=%6v<><==Zl_qetm z4{rHS;FkX!Zuzg^c3uVC@^9c5yRAL+Ns~bgTIKE@V!rw$3+AGygnbf zZ|<(&>WAhqBg|I|6MZzo$k+Tsa(pzF`zbM+j)*M2gW68^`}{NqkO4Ltc-vg7Vs zy62nzUUKWh!+U;sr+xsB?kY!jpT;aU;5(*8-kt|Cp|Q zmhj?0>7T%D{cE`Yzq0-eUTdEm9v>wA3-}AyGOr45dG_DhomX_eJT3-s=PdCd{I_~v z=fiEEPqugj|G2Jm0l(z-`h2>@*Kj+p0&drb3T}@(C+_C(Ontr9ho7$Rn|WJ&43GX> z9v2}zxVg-03itNZeFz^MEIxzVdRFk@Z?b<QPbHM~&I;H7#F5A?iBxZgKB ztiOhrw-ImPsqSaz-@0>|>ibK5c&zL3;PcfI@fE`> zeI2*j;u-vB_CCWFui;P8*WJChb@RDM-&Y*KkA0Bdzishgi%;Q~+4DZ!9(POleg35P zdvL4I;clk)OIy6z;_lnKIar?|{DXS`;KS{4G}+=2{Ca)AZUKLiK5r&ld=0mCR`9`% zvTtj6s{62kJ6i9&139So==YI*?!tY&&h+7h)(_zBPvmhlf`>in@56&##mDe+H}L=- zXrBqZP!Hj?_L;)x_mKV(eDEt-{{o)ePU>U0f4$6Q3HQ_!xLwCq@VzgPeV)P3%H(>o zf!p=AhR^l+x`8_%lIQFGJFy==Dn5V@w0;P`QunhDKVBcF5qzNiXYlC5a@_eAPvD;R zS;6PpC*9%&Jk{&@27dReBp#nNviGiTZsvn6KHB2J7N2hMIs9B*=Mrw$pA`NE zz24^VRPSd>c&5*@6}(oj=|7SE-@p&i_cPshBex$&o<2O(=j9L{sZZhdI%o;c^gb$q z@4kyX?-cMiLOdszJ-0t7pW%srwxUFXe4>Y$F z9_#fjhnJPCzkpkP1uyT9_5Y2daF=d5mS^FyRh51y#I@JPK6w>|@Sto1{|$rfL4@nVZtaC@EQyr-L|?UO#-?yo%f{0w>C8Nq+4_pv^_Q6Iy@*GiuN zp8Tu$1it6xa=i`VcUGUm4_1%h4_2SSk5r$-pRT@uKVLnDzf^q*f1`Q=Pt;fNi`7&3 z73ynvp`OA2sGh?Qxi=bTJN0Q-JkDJ@4-K$ z?!r^`KKu&x0etf|Swxy)&hc5C5~)kKyj;B>w=uzxo93sfX|*)Ti)c z)Fb!_>NEIr)#vcro-WUW%PpS5AN+mEA>ZQV7H_t=``+$;_?doxV+g-k?i|Y!)-kU{6F+_WaoX|^Sb4Q`n(3W>+@iXkG6OKx8qK?_O^<`ck=R*&E(s?Xq-L%hXTTRhw1n=M{%@!kiz=WFX3Z1K?+ z54QMpi_hUF=;sd0EuL=ie2bS`yxHPz(#^rvGu-0-7N2bKXp1klc(TRUTfErf)fRU? z`1jAZzs0>RKHlOp_~qxy<7f{5pHzGSf8)o+W4JwjS8%&7ZQ%cYf%GZiR^PxstlzhB zKh(`2lWx$S0BSY^#Fb^^$Gk?^(lOR^$31{ z^%?veJ+C=D)f^V^zkNe;OW^xx{}ucY^%Q;=^)>ua>N$L*rHGJoth1nZUhY ziihyQFT|(tP}dp3f2Zq7;Ld%|asL1RGPtXr!|$Ts(=NAov&G$2H#h4u+~WQgkKob0 zW&Ja_t3HP(kC*xcULPX9g1^{4zku6)!e)!tTfBFEHwWu8*y1DjBY!LJGY4CI3ctlS z<@sp7#h388elC!1@f`j<+Yj*PJXY4(Y;pIa-5j2->l|)zA8vD*Z1D&l{pg^beLjN+ zw?1{p=WtKoXI{Wl?K8iyyMA9k$63JB3*_^l7@k}xzJv!Ci6?OXW8y1#@F2Mkq;Tg@ z@in|Y@aa3}o54SEN7?@c+<&0dZ{UO8Y^P5NuityZj#u#XJnr4PIma@(XJUU7|gvV#RU}yhN;h8>OBD(gU!3Uc29PYea z*13ca9wX~X;Lc4XpA~%mSgB9p{$-N$8lFB>9`6~v)azajuOBDe0#cQ~)-oQic<9xik zZ)>gZ!6S7S9_V@X;o-h=e>j9kdR!0gsE^=tJ+2Q=^m%6t&;Cyyrvbcpy*xio;Ni<8 zw-8=@QhW-ZpCZp|5xmy>+ZjC6K6AM9Kl=O*cZYJ^6+F`OP3eD@^DW@^yt#o75~(lY z>HEYhczCvW4UeBD-oPEb-*YbM?yLDRQs09+pA>iD;Y7R-FFznYfG0l`AHoNZ6!+lC z6U0Yw=Xh}+?w%+L2OpI6%;3eIa$TCk{SQn1 z0`BTuV)*WR4fW>&)QE>2lm0?i?vz zz}>UuxEpxih8c z!_t2MFI=e~!sAEE{_*G!5Ff$o&rAM3+}Hb@G2GL~T>zioPx?>bsjer4m$9sW3in7T=cE5!?Vq_0y-_~2La_^sgc{bepSeDDzQ1|Hl&y!T1$=ifickKH}L^{ zuJ=nrc&Phr1h@MuA0BG{V|aX++1+!JVdU; zGrGR6S-_(!tDgWdx)p-@*}eU*YHHI=NY_wu>Or~8Q) z@Z>|1^9CNiSLRaE_3>N7vybWignJi@JD=+A&+N0VkCxm9@cBn& z{X=-6*KH48j-~&IuE+J^#gAoQjp5Oi(kFnYUw!4y^=ASPQ>hQ(-X*Wzsh`5r)hl*9 zf+zZZ!VDfBBK_y^cqREP;MqVP7co3NNct?{r9QtT@aSIp`U_s1sQVlq=zVMkFZF%A z9A4-?Dd6$vWStwh^Lg;ldF!|S?7rUd2t`^eOU4t!^79gbt8b!A1(D0c%UA_qi;wK zQ}|pxf~U7TVQ2j_xWAY999~{7xh>(vH|2fQ1U~qvzE2B}8<~3w_ihkh!vn3);Qqs8 zU*+&YAYQ;r^$mRRXsIvZ$!_8myuOKeP1pBB8n`_VI-kLQ*5|<<+#O(RfxaGb>H7IjAD-yvO#^s*gycDd z7cZ0bc<}P&;v=|c@0-C>^)Y;)@4p4`SnDTnSL;LgTzv`;v`+*t)Ms#C`^@2)`T}04 z$M8~p3HRPAIVW&meFYEHQ+TNBU&BlF3?Arua(JTk1w7XJ4ZKz_;f}7ef)CVdc&OgM zU3KTP-Tfb__uz@T3oq3B@VWW`o~jSwrMd@?)kpA5-G|reW4NpDV+Zho`ULK&hw$`m zvahD_Og(}RZ2!Yct)IgS^#$D5`;8dxyj|9_gh$#Zf!FFQc&whn=jv;CsK?FVsqKIG zTLol;ui&YA4Nr7E4cyau=hE)}_tkswK;4DAI^RCr*ZnhqCz|IF?rMJz z9_i~!AD%RFzcGe;2g?1!1U}H$O;dQN^%4Cx^11d59-Msg&h!2po;*i<0r&NFK@1O$ z(R~Z|e=XnlNZ{U02$a@-0Yc+#ha$1f6Z-~-LmxvaZy1N9y}RCnQ#dLKSlAJD%oIS=8He&4`@JMWV9 zkKpsuG#v-@WDA! zzkvJaiO2BzBjQVVaK3l~FU}QT!RwR7Q~3P3@;F+<(@Ug2gS(#)&*All#0$7{qIgNy z?*mly+sfQ)cyUK@=ko4;_Vs=59^C!4)VuIV-$&}h{d-IO0PfvSd!Bo$Ff&_xC()$EWb@a=C6t@WIXHdN_jzw|u2s z&*7fF54nKP_muh=9$zEJUBZLc%K8(!_Fut0txw_go_alp&-HzS3?5uA&x1L9ey+Tp zD&T{2q<#ahkCx}z5*~kAyn?&xHN1Gd)Hhq)xdQuN--qeJvzzMsC-CGgvi?5YeWo0D z01q#a9ENcJByo>^viJxd>gTFHJbt&VXAJkADIUN>o!5k}pW}pZ%X7NLqb)vz56+hJ zn!_V~KY0OnUL)&|;kAB_yo4wEd2Rv^|5@g;f+zZYi4zB=tEw)6bO( zc&+cJZQ#Y;l1~XA{7G`C;Qrp?H9XPJ(a!VE3ZA}0`lRse z{!+h&$M+M@;NIENCx-|3mhaOR@Z{CCmm~RnDu4(2 zdFTXQYM&79++EIV3Xkrj_c?I)P4YOM!RPjUez>!XtbYM_eiAOZ7Q?uD*aL>M`8c<1XQ$)+caZeFe`B zmHnK-i}S<__$zfT8+dw>{2rl%JFk>ER&YO(`Wl|<=Rpm8aI)-Y=gRK>4D@@CJ$Q7g z?oW8F-iQ0AOZ@=uJzmy1gvX~zy$4U9DEB`jcyXk-5C4+Bt{lVt1LgTKfF~c4$LRzf zTq4)`5MHEGKZU1SAHjp?NS_(pSD(Yf=gB@H@`;srcW-@s$N|0&^v$4j3I9$hSRsp0;6rM`hD zdcWjc)!qM2BK1A`(`Em-a9_O-Pd*@h2JlkPcL)oZ#oc_;G+}XDac=9~)n6A&KOSu09c^oD1 z==bt?T*0$Hh^KJ(7ING*JUCVEdoy@>kle@SaPN2G1>AXs-fzSGAL{)!+&fYFRB-3Z zQeVRp{oPOlkI$6+oiB9vf2N7yBmw9mK6Y{&}5j@rR zTYUKZCDMNkFW1s1fID}Q+$QkVWgpwwZy|iGK82STN&g7$CE_!9t@U$wda=|m;DZl| z$M7%}U&7rB#1pu$$6dkWo5|xbg=fc0o@;ori_~ZELib4yPj;310-oyk|2ObNzn5OZ zL;W2=Mc41Q*Kq&!azD_(YyG}`?~C1iKG65)U3mQ-xo-5~#i4Ru1GxV<@gaP0w73Va z_5N@KkM;GG4-fTs7GwC}I@!+wJk&fVa97`-4B>@-4|xjr?e_@q@Hok51}~@Lb9koj z!^Ch$?`INtp}#{<;py+?^~D-)*O?6No+A4>huinN3b^||c^oxxCzbCHJ74PVpY#jj zJ-G9y(|4{XF5K16XZ!H@dU-#80I$`D@bc5A?ezEH@%iE-c=8>2Ui0C_e~ORc$v?<_ zQ~-C>Cv^RNcL>j3B=`AKxc3tA2%elN??=tx;mgJ6@ZgQlm-_^Gyqna=@Kk*XcTbf* z2|Us3`3hd#TprgcJlaou4G(vb$7u#1UMkN!IeevFz=!&Lw1Lm{bLSFXd|LK@1^3iz zcy^i8H}HY}9SP^l*#F1LeNhh{yh8f8@c2!VLm!^LPJ93l-YGtWhi?)0;DMgk2p+5Z z@JxLSclC4d0G??51YW;VatPsbt)Ieu^$1?7&)|{z93HAK;L*M1c`$~@2Z%4>=^2t| z0*_uVzJe!@mg{^9FV5B9*T7@-jIOVDa(MAB**^t5*-P(};m*zUJ{exTRNt?I&viXD zd~l4^H}JXU=6nVF|2=Zt9z0r#yKw(y(!UQ+ZYgsaz#V-bcnB}V0_nGVw9IK0rKxXTO#6n!t-|#Y4EgZ#;$X_ig#Roe@0L@72%f_mjWlG>69{@dZ56 zzxx!!%LhsQ5}s22gb#HC+$>Q0`0c<_AbGk_;o$o zK7XUQ2lwaVBY33sK79Tvz5js^c9r!9@bKR9Im-kdmvUYqJkZ}yP2rAx&kCNsMILuE zxOT7s>hIj)n-X-pQwY&c_T~7}l>-*|1+<&F? z>BHj>ix23U=aBwb$>>3vJp8SkZv!unmU`!F-Tm($C3ES) zi$kT}g-80mras)=OYeW+=^o-kcytSK4?gdSkKn=X;y%3GQ+y0}kC*iaaQ}`{KY_cy zlKK#y{Xu*RkFS)RBY1Hush`1}TZ+%&*>$@A;n6=zeGD(|DZYdc?kAqW!%M|i@az-f zDct{}_!^%6yLbjKHP0L#JwkFW;Dc+Pw)1%3z>^<}m+--_#VdGngLn-e>?-@YfhV^X zcfQ`;|AT?C)bEa@ZfCepTOro)ZZ7wy_-vY z0k01i-@qgNyHzFJ|DCL-fxG`B-n+V+TWo*d8=jpjpW6=T?-L)wBm27_@bph|+z>v{ z-&s%L<-_EBBY667@fo~0S$qkf+uwnKf9BW8&f|0qZw|Y7$1`}WpI_(j@(q$h0S~_@ z-$&ZO-7iah2@k#`_3k&jbIJ7gM16R%hrS+x`+JHH;m#jrzj^RNzklV^wf`6%s!!p` z|49D`9_sJMXK-JCZ$78%=lC&v{wJL;+|D6%X;KG*&OxF1RXA>27x z+=Ki2zQ+jeU480KZa)1A@i9D_p0ZOPz}?|#J3fKWL)nKReJVbM7y9=hBY6C5-RJOR zaPrP^=kR(hIV|9VPm9O!>@TP9^jX5=zltaD=p_u%Ol#a(#t zEcraH4-fVGgai5urG5zaj}!OcnSPIP1b2^@{p`cj_pxFaQ}AV6Zk+qgs0kP z3eR*s5xhQF`p@8n*3ao$zks{9kv=ipxxM%j9^O?vfk%4W62q?K6UBTJOUX?LUUs+9!bf+GheEXrBKk~h>n!1p zuBU=W>NPyn{tevus_y@9clW=m-h&U+U3jG4htJgq@K}8aFV#JGtv-S~I(HwQsE^^E z_6gvL`ULK3pAbIReKm#q`^a@Nf@iwVXYktgKfF|5z*AjM3@>#(OZY&qs|mc;`W4*K z`V?O1de-n**OS3Z+y8J^k6XYU^$k2xFX4rH1<%xLc%bWS;B$57Kf3!rQt!bNy{~ZL z(W&x%p*}p^PkaEcUoAd_yZU=N51zeF>PK+z&Eh`1eyjKxUg&WHxbrHhpTKMN5T2eO z^;5WioP57Mf=5pkpTSG@Iee~t7VzMO(kF)3Gw~(dIY~T$4_++3g8S+zd~l)Eui=^g z?lOZ%50d&EUg+;G3wWx(BiO)$dr6-XUjJ0?lPmi1QeVTpi^Lna|0%ux|7Umqhv$g* z;Qn*v`sTuumD~sR;hFjX9&4W=ywG|NUaF7a?)h?DA3jhY!|RXBc?Iy~eDMi<{t@vI z?tNH%3U_XJ#m?){2wtBjK7(g}me<{L`c33@=mH+=-yw)cRs7Hf8o*F zWj!g})xVFrhQ}|G^UC0Z7t8u{cpQg2`E20MIr4h8gxC7_D|+AQ?$7LV&)wMgr{*rS6PoDMmojx1- zv&Bnz{EQFm)YtH0|JUre^WAQ4!M^f7b`S18S>Bg(;l;0|z7Kcy5g)+Q--r+4@wMU} zJi4p651;G58#sphHG($UZ|JwY#{5Y;PHOqHN4ngyn%bii94I_KKGv`-h&4xiMw$3<>GyK{TlHBJbAOY z5BK!%evjer`k>@FfoBJbhwv*NCOJp&fj*9A@Jv4!o5Sz_Ug^Jpr{{|&@Uj+P!z2Ct zD}&G9BK0}^j=Fyec%q+6mh^+9Pes?qMGX(Gmi!xdeLKm`{a$xJMEZE?!)tw<4&b3) z_lEFN`*`rd(Q@1o{QZv;_u=O}R(uSP{wg^H@H;L>6_|9#jHKL3&QnZnJ^kD^hZp*|DB#{B zFW$MXZs6{n<$No6aXF1AQczC0nZvgjh5TC#c z{rl%3-2Y!WuPHpbUiSmMK1j}M1}`2gK8L6J`?Uo;*59wi@Naxnj=O}{`tOe?@KV3m zUBZLCWsVj6U3&ej;YaCxP6Kz;ogZ}P^{k_0ojrJ??!v$FM5*t?i${nL;P2A>G2dUaTUQZC8z^~B$A$<2Eq<#uN^hx3o{8h(@&)|>N zbNB`=fIMDu_ux?wu|5lk2;E zetwF(bKDUAs-gG{KG41!_~$OTxdrfZj+Avq@Kim97mtzp6rR0B z`WNuSkCOU&i@P`LuG8whEgrzfdS1~MkGFWb#S8e`9;fSvTb}N&-Sr=NwA6d>$EyeM z?Cp|Uw8dliaoQ(^zfiq^+rFydpVE4Fx9<99|EBw7_pUo<>N?@~dxD&A41b7v3V)}1 z0snw{4e#rE++KG*uYaQE41bGy06$AT+Tt<%BU+!rFHtYxm#NqAE7jdSy6eAM-GhHm zJ%ImAJ%V4S9>Z@`PvP!DAE$8ZQ^WT-R&sXt?5^L|)2}V?s2cv`;ZiF&(}FT*1k2oef-{{+uz)SfBb2ZLjb=*J%ZcyFox$^pTh091>E}7 zTim^6cm3AigWu|ST|eB88^P_kG2Hs6@I9X{{WtLR=MUPMqw99pX}NiDTTcMD`e=*C zTYP-m?s0F_`|SX3`)3L-^n7CYXP+hKn{M%9i`QG+yvi>a|Z1EX9-aK??|D^DJpQr1D-(9_iTfKXS?mF%H#e;j= zCxExl*YG?3i>zn$kKO*){7zoqrEuGCIXu#J*KnJ!d*^O{a}S>A{a671@k?Z#5q$PG zd0vR&t5`gR*V?CmU$0)nt=_#$cm3AigYS8=tTTXH{|IjNG2D)u!mYl5yL#LjZhhRl zcGrKn)_Yq#*y0h~`p58>YyT8JS1;h7xAkvvchFt`mu&rT%Q=95Q|lx6kJMxMO;3?I zrtrvKFTi_RU&C*$?%u7t{)yf{cM`8z=TrEbwZ4Gcacj8M_xJ6tKmLTjbA6t`=bsdh z;pGp+bNKwb;-me#{f9r0e0;cFKPT`&`>x?nyh{3HaO<;yyV}Ruzq_8~d$LX+?hFod z{{R1G@UK5v-d~!-y?>GSsbcuguak8y;RnaEf7bB(t8d^(t2glD)%$nvp4Z^ba@-Mo zs`V52$?7xsL|?Bh;V;+vHT;OT%6V19)+Pz8?sG*P-&f z?8BYAJyPZff5+QooeTKlp&!|)U%{<@4WB+t>Njw!ui!JS?+v@>YxRA2rS&7Y)sNw$ zhs%1V@X5R6d}nm6U&3Fj^(**P>vOo(Z{RbnZ{W86-T~bl)>=P=Tm1;0YyAXn^;7sp z>lbjVU&8y3kUZCLtIy#Rt*_u#-@q4I-@j)!2df{#*IGY@Tm1x{YyAvv^$U2V^((m5 zui=f>Z{W7yDtPZO$+LH_zkj}cc%$_rxUFXl&mXD#A8z$Cc%}7AxYe)Vlf$Kd4!8OZ ze5Umc-0FMx?&h%6`XSuvNAQ)_PvBNRh4+q-^)KL7zl0C9ehs(z=J1i$S8(g!z$>lq zAK1;o>WA?4k+S|V-0COrO6%wFXdiiA$l(5G#hrt?>zQ9FK7#-70Dazpdq>OjQ~*Ef zB6(h$z(4a2xjs+fxv%qrKXfVeOZZ41FKhVKdOgqKBYpf<@ZY^%`Zw_Dqhvk(gS+|I z`iJnLu73=-^-thSyI#R<{R{X?ujecH31`dt*YJ%#UN&&6ui(A0oNv$Tp0CyS;S0@Y z1pn+iWj$l~M)R4%t$qd{>waFsZU3*}EA5}dt$qV<^n4q*)%Whx&0(eYOGCKTkKjYy zpA)#%PvHxl*8*xV-pK1RY-0BzbzV7E0-0Iix zp6!3Q)mQMP=Gl9|-#_0ze5CawxaB#9Z}fbpa9hs|KGXh7xYe)VJ+05-R=V+jcpt;Bd#T(v25>Ku`^FId+&jtpPE+`Pn!^k})93vq-0tgE@TuN+<#4Ot zz{fhr25#4--amEondo|kaO*#UZ*)BqxYbYL3%w36;8wqcFZH^#hFg6OpX&Kma68`y zp4;o12X%A!vA*v#gjaT-0Jr)Hyr=tW2LGq`$m4VYUu!-qxV?T!;lT%GA7*fS{gT74 z(fjQUystSl@ZZuPx~ zc5~?2{)b!r2;S5F6S(Cwh4*wnFW}aH37=~JHQefRcw_q?Zr9ZYKGXZL{=>RC*!|KF zzP9}jx995#e5}vcGr09%z;o@tg7@|Qc1_p)u%T;x1z%`BJ->Ut*1r!Q>EmkzxB4-B zrR$l(t$qfd>Emk&xB3-)sm~)h-0C;*O4r}Ot-km0ZVn5(Pk>wf2)@$wPvBNRg^zVT z3%J!U;f?0GhQCDbyK?wi*I&V{zJZVR^;iE9-5l)kGK8;nKab&8y;ANE19+a_sj5@!t*Yyt&-IiLe(n2QKIiWE zbm%F@p}B--n&p~sb6j6cc+?yx68_Lgo(|=NM?^gwA>5R&A-r73Yn|flH|70=hs}14 za8o{q@Jdnc@(C{x>wF3c4+!}%;ih~k;hARtpK!CDj}V?C{5-33e0(#HiucZhoA2d= zgh$2vdl}&a_i=wHC*0IiMR>W;6D9m@Q4ec5@phJqdOnkIQ$9d=K*Tqfa8o{?@ElQZ z6cfHgyr&Kko;5<03&M*;`Kl)T0kMvvhHx`|pi6vw3q|_m5#Ch1kH{z7)Kf%wAcO0z zCOl^d&#xN7O+9c=ygh--`R`1^ADGGOlPto$@9^}=Cj7l;xO@)b-S6b~1PQM)>qEk? ztm5+dgq!2LLc)theG(?z^oLTyGetkYl5kT#LU^X|&nV%VsIRoH@#(3F@}5b#kPi@^ zE97$tH}&Teo-gXFV!{`Qetwwn9CO@6xT(LAaKEsphHz7VlyJYW$A52pI+*#DNqEHU zHxh2j=Mr8cNm<%QYu)1GYs&ix&lUa50O6*5 z4&mkIxQTExzJ-K`P5&p{lrJT`RLEBnZq7ec5$=7Qm-lMI&H0BK!p;7FlyJY>J zZf5^KlkiMoXAa?}{#?Rq%zg;rrhGBsQPEE*CES!RCp=TwA0gb7uOU2O_CxNAkFWXu z#ZP##&>tY&Z1-~rFBkJv`GlMDg@hN1dLT@=DPKysChVys+?0N$si%PO^hA*_gq!`P5aH$GcLm|0 z*E_}XJ?o+Pa1*UOodblM`h$cQir+x!lU9hJQ*J@oaXgg0pXW7k~x z!p(5~zm2!wj8}kgGaYgXKbQW5oAC`dz{?5WbO$dl6@-UY@cN;O@HySQv3^U0aC6?c znsDz(uBVo8bKV%9iBE^TTXSOi1B9FXvD^lDA>mgp=lK$DfR__~t&oop{;vwICrWsG zA@BcPy!}fA4-mdt@La<82wq6IsV7Xhsi&Oq->(pUNVus#+5k^~Hr{^kCp`Ug3I9~I zzj=fQKjQgYK=`P4xt|mgzSrD`MR;fc*ApUqhFCunCfr6h--~pJ68_SyJl)_qk}tElJzm0_?d0-) z!be`oc{<@_39}xBj2!BGPPd4G9KX7}3gg-0n$tB#JFUljlU?f9*{K=@G+ zuR_Al^*;#@it-gAyqEC9FyS?8dHq&S_zA%yglp?Wy-j$s;Qklm(=A=_0O7&jV&4bh zrags(Z&=U64HJIVCSgC}?F5ey9u(&hMF}^<_5Uf}{^3GTfN-;Y&nCR~6XBnPo9%lp z;R8gu&LccnB>aK!!c{!o3JF(MbH6GgJS6JL5aCaVau+7tK7#8nA-rHIx2KHoo9^P} zw489W-%>$%ff(;s5pMQdB7}doiR-T>JoquUrbRgFLDY0n}}B);lanao&v%+ur)+zhVAPxv2%J?Vtk7IQsWguf}$GeG!0v)w1WY9`kc zB>c)h@pQ-~{2t-wd4!jhaXkfuk232G!Y|t`>Q%xs1urN3dch-vKPY&V@Y@9U|201S zI|&{jyh!j|!iNc7Ncf)x4-*b=@_Z~Oe5R0(5bhQ2QIzl%Lf-$kc>A{q9w2{Cgh`p4-nj67;k@A@BrbH1Ic-{b8!{VhOvL0@iXF5&5Wc)k}Be!bvf!aE6GPI#f<5yET4c{NeOUla2F*W&GO zxtH4$AUsR(T*7Y?ypZs&f`av3e4^kH!j}pjC48IU{(r>VZ`u)ST{huW;(d3J z@IGe0n($6$JxO@*Sst$f!e2DY7vY=4IHHK~;BUB|5aBCCdWH$tcky&CA-q7muPh^c zzX-RS@UMja3c`cSxjj{cUmN7%MhG|OJ*o*0iur+B!p(V)DB-3aD2~s^TCuL)OSq}W z|8~6m=b|1+C%kq7k5?Aqw~yuV3J^X+j1#j7uYH5-2@?L6$oE{rk1r7QGvT2(xt;>T zBceSmB)p4gABzYNiTR2U;U%KJsv`VxQEx{GH|w8T!lR;m1_#Bb^X}O^-Es*x^%M{u z5aqUt@JCF02sicA5?(Is@rUB=`P>|j6P~q}r*jtJ$3;CBAl#fk&nCQVkjQt!JNkIP zH<$2gD^H(1!h>_Uo&v&M$HaJqaK}*YKShKW{EO=e5$+N8WX_LIpWvtW$LiHm!V5m* zJaa+3eBNduPk7l<&dUieTE%%K;s08d91FLG@POEtk-IQH+>CWxzL4;0^PD}xO+Dp= z&tA{`r!k!S}r7v*% zBZPMo=~GR(_B5BzTpDlBZ-jgn;jaq&3kkpbH6Gt0!n4M4{gs5D9L3{XMR-{%m-jD= zx935jKb`QBzjFC}!k-uN1%wBMJ>`T~z0K{fAUrUI>(`dY+oN^n{^=z=PsryI{!UY_ zKacRN8@c{c!rO}cEhD^8*dHal%Mxx6tcbU>O87$#;bVk<1__TG<^CBaeARK`|AYq^ zx4(w)lIMi~Q@)nV2Uf=0>9KS9Y{E-Ke2WR+e3r*IM0i<$u0KNf?73WjHQ^B#m(N@k zZ%?&|Zx-Rjk8t@y!Y6m+`ilskB=WtI@Hd2iRuSG&d^zE}ujld=gm3wl%WIYK_B>?P|AZeA`I1Zceo?;i2nRP$&r-reqMj)u zymAhgj}ksxq(7{Vw{x*b{~W@<7xn}RpIyS^8zy{>@ShUG^F%t-5dNsh$6CTOg`Wr3 z#M`-3=+7qn4?<5d;g-?7JcbBABm5yk_^(C%P)&HAD8HF&PUqJ}nF`sa)PWV6JS*LjYR!(@jkgp)T zgW%fwczX`D;QGCUrwf11C48G%{}Uc=CH$Z8Bf=lb2=6cIjVR$tOKuNrh_^FW#5afV z8D{-Yc&dN9UT6A0;gOwOKJZz*orgsGn@xDF@P}f;-xTdai14z5Tz`acpU&e|O?am8 z&&)0H_S`7aCyVgRwp@Q9;g<^kEFv6sarsKZ|0VLbityTRxx9aCygl!WdM};uQc*wT z6TaW<{}5g)%1b%nzZ3nd3c@SJ_(IzjZ_gRwhhD<-l6m>fC47%4?|FnD7rd14r$zZK zBYdFn=P2QugnvRL-p*n%9?2nmlF$<*JXf^WVZw)ta#2D!yv+TohVbp8eyAlpEb=|@ zdAyycM1MP*@G@b4G2!h*yAvY3NVInm!V?b)|0ldw^lvk_$J^7*^nb#i7QB$~DI$G} z2+tPnMJ3@ci~Ox3yrPxx|1aY0sWAPY@LVx|%qRR_kv;{4=cRN1EGIlu)DIPeXNmEG zwj>3ujlzyOn86cKOw>+ zX8liizB&Ixcu3fjxjWvT)ZM)QmPL4x@V7$3mz(2X!Yf7oRucZXkgp=VQp^wdtK;pt zU-aM73HM*Y(Hmc95cOe*@Ti!-iV)u0^nb$BPxJ9$=2!9d92Vt0 zi||sj|3i3@DDOp-i}tjV@aCf3tRg(KiKzeg#oLo9(m$Q>9MONvC%n1vw*taz=5YPx zgy)EKs31JtmCI}UydmiE1*Ia)o;r|ltY#HJC!XKi9-!95K z9Ei6wEaYcRSZ#O?XiFTjs%dd&Y?IMHb;&1=n9l`15A}pK$NrxO^qy zFpt|)MR>93pZLFyw?}Ku_2d)ooy&PS;S)vss2z&eQzrE1624>!ub)c^|5ns9WrV*r znaf8Bze&`qa5z5P6cOJX!oA<{b~Z?ONYp1`!Vj6_P{OYj`fCXP!JLODJYD!(;7Gik z$3?rAO?W`$V=>{~M7SZsD@D5*A-tmqx0>*P@T<(D@%Ahi{pu{j(~t3byO8hh0_XcroEmiGEh}Jk$2+z8W^C00~p+A@M+qrxJ;YA|cLc+@g zFCx4`*i%e+kq9?Lc$JV36P_*XDJ8tNE4QRc691`a3nnrlm^gqSY*-LoE zT+aQ3XA7QAc-|Z?pGkQ3JkGNS2N7<7@TzHCKAZ4b!E*@DUd`q62tV^KZ-4U%H{)AC zc#()#A>n3xiwHO4TTHka-w@$ue8YsB@hu_TjBhF7W_+s%ujuqrEFU9;7YJTMcvWXE zUrRU$`6%HPcXN5~=^3$bwAgN0m992vkA`=zs>)f_RKlW z+l720pY+$SJnwzZwP<`khNf}uB|Kfo`w7pxipMLH@ahNCV)4zQ`~}W) z2+!*ET1-Ajc&*^Mga-vLBD|vSKVy1|2`>^nOn8>yC4`&urG$f!uOPgiBJz>&kwCJ3H>#MPy3hX{}BEgp+8FagTLbP@Lhbq|HHv~I^lgcCdAS+ zlknSw{w%`XeRzBWg#S~dLpI@Emvi|X!UqWXAmPJ=J-LK`vxnQ6NBHX5oaYn%nn=$g z!e18Q78Bkl%F`!A`0c{}FySu=J4*=vlL)tz@YjWW8R4@Z=HZqTK1A44L3sHqJUuH3 z?i2f1J65FQfo3KCu*^yCu$?E~DNJi<*q z`IHMi1%yxfn&(#`;ijG2!#;rUN;UQ77dg*@CS z;Wsbi^4gE_`ErYsx8q*Ihi&6}(g}a8Beye?@Zq9<2oV0h(34I0Vv!C(!ncX|<`P~l zcs}71MSWX9c#V)RB7FNmZhtZ16NLShgpcdZ)2)hd`%!mn}&uMz2%OLz|#sX@^vm>OL)F0 zFHyp;DdF;3U3@;?A-I?Djb`~Gyj?|TYD#~3k;jKhER}l`Uiel|)gz%aS9&R<^ZNKLJ0Ptb#IkUa4 z5PCGiTQHtJUcyfZ{aJ(uYq>oE!kaGV_GA-YRLbqiBRuOHt|y=HfkM83@F|D5{t)5m zC%B$4;WI>fmJohe)Xx=!mmKGMDhaPJ^M!CYE&QMGiep?)lyLj=Tpn0_zPv2v|I-Oi z7xrWlK0}n>EW+mt9wglREw?9^@Ee4mUJSglB6aM&RJUz<^H{~k`-<87Cr(7*UwZyNGc<#J< z`70%!C-JK!o-gsX5)aI;*K@VRgA%_+;&~FkR^pKb^?I@-9+miY5{D)A^6eyEEAi_k zo>@^Z-(KQn67L}Ka*5v{@k)u`C~^Ptdi?>3!-{%-lf;W9ezU~G62C>_r4qkY;t`48 zCh=;Cca(UI#BY~)t;Dk>p0l>z{;m=aO8j1l=SsYr#PcNHUE=u?zfa-?5)VqeP~!JX zyh!2?NW56$4@x{F@rNWHmiWUGFOm2o5-*kbqY^KZc&^0DCH|PiD|4HIy5`RhJ6%sFy zc%{T&mUxZC|19xZiN7LoSYMxyf04Lf;(wKRmc;)i@qol%m3X$q3nd z=Ux)mB;H%%0g1mU@u0-}NIX~KeI=eJ@nVS=OT3@ND?PNa9~gyjbF2NjxO+eG(5#yhh?B68~D_r4p}|c)7$G ztG`hpaf`$&C2o~?jl>fr9+h~8!~@&v^YLAo+rpG9muIT;e{7S4h06#49D9CGjeW%j2Mk z#N}~NwZ!FdP>sa1CH=J$zeD0tiT_ICu(Lkh?v%JD@w+7MmH6Ef_e;E!#M33-S>l-z z&yjeR#Jfm5An|)7o-J{?f083{xt$71e6*w|SK?zNo+t5lC7v(wu@Wzk_8jlFY%DX<#skK@rjariNq&Kyj0@vOT0|ta(i7a@lr{?LgI2eUMX?89j}u3 zR7p=n;?pEvEphIt{AP{BXGrq368})*QHhsH9Cp?F|4fN%5}ze;uf#u+xL@M4C7v$v zITFv5_*{u+NqnBf0}?Nnc(%kpmUxcD=Sw^&@dXmkmH0x5=Sh5##PcP-SmFf|Un22B ziC0LxNa9N+UM%rt5)VmS?gxe?zCw~Ok@!l9mr8t<#LFc9iNwn#UMcYkiLaJ;rNq}r zyh`G0B_5IZI*C_He7(eLB)&o7wG!Vb@uJzOK;lg$o-Ofa63>zNB@z!xyt%}4CEh~fc@l3a@qCG=OT0kh ztt4J3@zxSAl6V`57fbw7iH9UE&$omnewid+H(F;_=Jv8Tc-i{Jzw4N{jjxWu6xOAO z0w-8&fV%%4=15K{V{k=DEH-tc(^ztXcMyY?uK)~T+IYrBF%Q7Gc%?C4g77YNQWeV_t^6m6u!#w*$^g-waK9d*Bj zx?cteF|CBLu&kTs!8TOB5OwWjwyzo6TQ4B;_-CGv<;j~0>|i>k<~}1GPcp5Ju|bM$ zjFB^Od2%6tL4TNuw!DkBEN1#f#y*L+uSS?TCt|NuJ;-IQ%5iDV?=#;EQQCi^mC;kRyMU}u3O=9q=M+k1?Sh_^vb3mTuF|Bd=n zueKFHyXFA*x%xABMeohnKk8GD1nJcQ{J7#l66ek={* zZMv9r_-VRoon86xAkV}4{Qs$3d{{rduRr7Jjjj^Q9$t20{`owXsJCK1dLH*YU%qQ? zUELtS?fLmIF}`VVKfwK-(G32k_lPCdFvi}hPbR}h&-t`rb6bFO`eW_1Df1`;GG#-n=f5(RC6qJK~$S%0hr?Qo_4`}*FY5I zew+wHQF5qq#UeW_Qij@0?u7`-M3{b-VT0H)mf!!sht~miVOs1`2C`2b@U>+g{urk= z+2(+96{~f4OG}*RfU#O%+gx2@Y5$+F zE$NUIdm+AqR`@n%+fZwlfi~Fr|FvzGfRPI&N>Z&AK2l!Cgtpj@;-zI1COVeSfB!z# zw$PvXPFY|K!=4I^vvi4C(0y79{n)#~D#-Vp1>TF@pJ?fF#sWt!^8Pij9G_p#lBzY> z%DzYaRaW0F4fa}V@Oq8i`<(`Tw0rky@Tqp6@GS!@9eR{t!HXx4B$bfUf!@@QnT!_D4xB zrsHOSoAtXPM}LgnPww5TKMM~h0px3itbp9J+a3g0cYw!jzh_U8dw1xM!#()i6WWXH zS#s~^o`Z(~9@3wJ-)etmfB4CBoxpVmKsVdt?17)$YtWX2+id@WVa&anvGGO^NDRR+ zU9f-ts%Z#7|g(S5wK^yjj=843RBwXC#C&X$8pGuD)u>FL79Qf6F;ak z+RKYibE8A5-vynuN7;QOF3?bZT!anS|GDICrhm*}B-3%|IG(its9>J0jBSwnYes+P z38VX*uf7g{!szs6o_84=7AJ%L)nHy>IM_A8kyn`MID8vtgtLTswlKCnP6zhK{-9$T zzk;2O6~?dyD}tosj2)DugpdAASWUee4h&w^akN`xgfy0UW-~U8=(w6)ZnyPR&<_1a z2J4v~Wkx69gwYAe1n8%v&s5mt`cc=pa2xQei%FxKSbOYX9yFXt{ffaPrs9x!I#ahZ zn8S>gcM(&o7}kO4d9|$F6k{MN=XV-QdRG4@6sU#RUA0YTtRK75^g6>n>>EFz{}rB4 z3*Z^drhj;bFxH>M`(pFrYId2&wur%Pwsj1C)eEcUmCQCoK}UCm71moZuKOt|^})x& zPqW*w@Bf0{hrwSk>4z{+DPtw|CdBHO2J`MVcGG1o*V^EPj8!)Hm}M-rL0=_fp$)bu z8S`u~!ICk{2FEQK(`~TCno(+lPi@`is_Z=#Yc5_=4gHC^`k&zGWPrcgdNTIfxdg;A z=gsi-vOt;A`ArL)R$5`2oo~L!DC-%%$qKAxofj%FL}>~zP0{8mY>A?6RM;o=nG&lP z+8A>w9k6_0E_QiWfwvTGgo6DJtxRF1vMkQ?z*7KEb(zOtK69>TY-N4YVESF)enYnY z$HKpkUES7qLctDQ=YAHLujthZELYM2zErd$3Ol7Zds)~(i}O7T8)2zW*9+N=>6w0& zZ-4@~{oR4N=~w-v`Ig-uW#a}+kcK8ens9}UGj!#7-k8;u_Ra@HBMYowx0P#EUa zLWRw)R~pNsi_OpTg>^n=_{c@4`!A8jJm~1d9#2o^*rLEUtjmuIEKtzFBZ{_HVTTmQ zX`EHFIEGkQe>o3+K^P6iC&TwXrso(;&&{m!#|lhVw2u_FP|?;YY=xYj7x2?xk~ZhH z&uchLDT18`P?uc zQ*D*v+^n!2iu0Jl4#;tcmGQSRzBrhM1+4Qp1qLhHXoXEwwAqFiN&fvGNZViHD;d7A zXxC7*3oD?R3XD^-@EXbuH%g8pXCrVcQk$D}^0V zv>%OpKNodTS3U~xXy++L6RIs@Y))KV8mr5`Q{Xh~jN{P73eMYYQ1tx@98|Ou3j0BE z_Oq}d7Uv`jdsnt6<`)-P_hT5>`63E-7`0^zHtIOnc!YI1qQFYU`KiLbP#gyoR;xIA zT5vpb&iDq~oQw65^QQkVvHO?#bB1rJ0!LZr&lH%WwBv2&mBzIB8rB6%%{$8FM&Bcr z7H1T=a|!xwPo+!90_zohp8_?C^Q6MgDvtgZ_KwAIp7g%hc>j`m<^R^N8cN$+eG3%m zjx)fppLN-wphIbu3frV;dldG$l((_A5MSfG(xsAN@pbGph6d-dp4U+q8{hNUaz19H z%P*@l{(I^@v^B%G(rCmwf1<$0vHljf^&-pHFZI(R3rtr!_q4#bJgf`Vc^A4Lt3!Ty zf2iR+y7>Oe#rnwTD_90}0O;VGq(Eovd*ds(&hr&0RUFugEm9n`ziPz!A2>GXg405u zF~@$!c2WPl*f#XM@w`Bqp7)uU|6aULX80~r_5!y2qWT1F%=F1V9V8m#M$zQz1l zi@aXZcH*!|t^2yFHDFpUn}WAEn!j?QuK0UCe*8|iTyYnNe6 zBwXvLVwN6EtzbAcgOe8@vIM+b&Ya&fR>kyPj2(zwf5S5kGvEAIH~J>lwzZ109(UTy znPmi1zcgkin&GYhhBGm29ZNv4pEc{JupZpSrKgQ{KV}0?XPd8)(zV*J%K95<3Gj%V+8D_L$9@BR)ww5Iz*vFdHFDD>2 z#NzNRgS+e>GfOx&w=&jv{^MBO*RupnqXVp2e}(mIAP(2JRTo&{*-^@Nt0iJlr&?i` z1z%zHx4Q5$Z1o_XVQul5m94X4W4_(0*I3bw>&=Myw$U&1IITT~ z*GnCaRUY`t;hyG!;||=4Zp_=(v1@QypRu&h8O6PP%=v{4rYg?$Hrz9jh-9l$g$mxc zWeikdt?d!8FMaE&bVNzNFW3X76k&P-uDlJPj2At}xA^23zZ z%#DeLouj+4P9oDB6BA&D;^>0C(vm-%*! znb)iBMqW>|`X z)jc&0hNa@>m`_rDBhz4f6ZeQT_^`DIL%1@AyJ55Ix!Cg;Z$o$V zEj;5v*=^aI1ie+q$|S6A+>?@Er|ORSps(G%#|M+`*X;1YF}nk0zO#?T;6`}8c>RGF zm+iwGU&iJn*zTKVWHI_E?)k+{8-RaFdsV1VK0)5sdfi492H38fufjqb8aZCor>jt= zUb#bM`&7qil^s*hC62M53UCiM{^_`Dv5$fkUCdwcKo>mK>x#V&RO|T60ecnqLI?D+ zB+qxi2+I#Dz&nnN19<3(i`jnjYL--`;#SL)!z%8Z zOgx~%DW%Ci72dL3k4FMn5{KDgljRG1beihL>&2?~lnNWvXT|dgopjv#^*h&Y1quuY zHqrwb9^&zg3%78-WU|cPk5^`?Fxt{(j0#^_@cf2ys|_!gSZ!a~V7@IAZ|=p@os8$3 zw|#P(70=pwQ#oOU5{t2AVY$_Z*ITSu&UhFpkPVQ1!y*fwS9Qr)3+||&W`rJlzAfM$ zQ2cB0whi}sV>5Wz(qx7WdRd>s6Y8v9y!_Vcf5!#`ZGRH-MpavBX)zKr)q?V0SetyT z!Z+5}aaW(siL6)eJT zz#?nnemCZG^RXT%vODLwVUc}{@_`%59G%~D!)eD!H2kp3i?`3Zyx1Ov+-|)4uG=`M zN$8o22{hN1xWR+Puz8;Z7@|4Hdtf6T+c(4m?>Rg7_rQMVag^WY_Tue>ZtoW!IOBHX zb+HFGv>19~br0`Y{B4IF&M3ZPb{K0-{nm~x!*Gla9y){9yY1RRJ3C-+gZlwAZIs4_ zXy=j;<8+@mOKA}6n}mnm3`gC)Y=cPnrV7P4~*8Z5Bf%rBp8j_e(=E*)i|?iu`_GG5Bj^j8+@fl)s1TS+j@=fS&6d~Up6=fh(#VmdGEOBdsBbu4owYmS!eWmrVE zDNSbE;HdIFhEZen;`R4d|417QIaj7OVmvlln!l%_pWp*~tWB1v5H-rw37Z!$-&Fk* zRe1M*R++-HL7FD4uwtLN?P@D-4mS=Knq~Fk^)f3Kq}^8Sn3Wxnnr9==u7On;*HxCb zUuf{Q)w4>2F|l$q$L>ZlPV*kq;3Li8OaJY1)as8d4_WXqLTnn3vnKm3P^=gY)n^uO ztp)4VCk^+G*|d{ga?A?fv1b5wC`|_0;DlmyhZkDCc)h{u{niTARySTBvBn<4c(eh- zlMb=L>;oM;5NRWIm}=RDuGdfZAQ_=&aosm#ONy>;x$%2EXU(z)lW4TsX1@!zsNN0O z+fY{_nW{UG%+U>RUf}W|U+sEO*w)E>{%bcrKMf`Jt8KQrp~UW7?8e%s5}!YzJCOXS zzlC@EyS>NUFvjh{yC1sUc)ig5jL_wWDwL?QT-VD1tF1%WTMqcbwg(Fb#^>kmWiDgQ z2itHofv)+P(qyI$4#j+VpVf=kr>*|sHW+lym)Bt!>nzQ&y*g<4@-AzWg({phe7V-< z#mk4w?7oMY>V^~WGqEY}^qjJjhJ z)*WBEvX1!Romkzm!QUTEH?A8^i8JTlZoi zS?a>me|DgP^)`L73%<6cOmx9S_13;Fs5bWO!2svg$jhBrmkoERV_j^F3(qop0~N(| zbzs+u%pby{4ydsh9pHtwl;aLKZM%8117@nTP|KGN^^k)dbl~}~;!&flW+uP%nH~G1 z2_x)yVl*B{1bb93k`tr6+9qpHiocQ@s6>;H;NxC zF^glkg$*_K7MiLJ-3fqUT{}*}Q!cBN)R?Ugv*0-9`@seuvChWv%)XEc1C@!WuFT>@ zyugC>&RnZrZJdRK=i$9=%jluP99uJ#`_!hR#Md^*DH|K3x@W3va{X`#?faRt;9~dM z1GIPE1KqSI*u&?#I`~{eXUieK#)W6XX}K(TG4e+E82}jxw?VcRWI6IPKWCc}j`KX{ zpy7V$i$0qT^*4Cl+{K)qbsPKl_ljQ4T4$(ucJj5hdo1lSyYJC)#^OPKl1Z~F#wyRV zM;6z+{coQSZH#~8`+;+Hd1HBKtPg(Se*4Dyqp|*ItUp9w_`jh3bR;y3+uz^#yD>fF z^491NjsDQ+5B2qLV|i#S4~^yFzo$GH@8^5s++I(sv(g5WZEjpGQ*QI%^(q@qL*g8q z2mS)^7k4iPJy?oi6f!TY!U?xk%#CNWZ#F107vuosxF3aw`EM_NYRvfDm>UnBA9hX# z-%LE?{xcMC8SQ%auOJ&|dhq$C@LPc2;?Zn)OtBkRL>yx}UPsS;Z>cFf3-D~i_g#<& zkmr60UgY}d?@MEIi7Kvy=#XoCkHd)vLk>{fxU6cFqT}@h1=l#B9e%*q=TRZ6V*M!|&NO_u=Vr*BWmjJ~PgP zWAgXx__x*?{@$H2hnZ>X2v_47@OL;LV)x4Pi#W%Jhv&n&?>#y3Q(o`#`L>v4Xisbo z6kk(4s6Po$JJ0hC3|ubqfc^yJIbUHf$hwWW%SQkn(VvFjIbUTj{WsjZ-qr;I7|(m1 zPq9bk@NiBPhGIO2G8Iqy9L3OS_cGhN#?k#wJe_`!f)DY^hsU=eyKycXUl$s$47H^y ztT0{@^tKIQ_-1>B+WM%<_DeI%M%oQ!Y#^Sthp);GSW?b(gC8uo8VTyW-dWvYRpNX$ zuR9ba%|J9G-L<$o%umNdTVZ}1H(r0zW*HWjemA)WcZXp&VQK7lv;X7naOmdLiQS>c zEnm5Cg-mA$3eLILi+tt1x1%lH?nAJ-TLMO}n;RcI+s!$kI~&?v8{3_Y>5fz9qJ}kW z!?UL0X@IBQJ5-orNm-}DbgPaFJLX#Z;2Va8sp9LyO|I%8~AIO#E&ibH4dyQjDInHzV&qHv+cs` zoxFe_Xuv=3e50o2_24CVoT%}Ygk*fVxtg6qw_2ilx2mvFz1qwlJVQH}fS(YGu(Yo% z_;wo?aKdrrDkNJh?z0y3D#r;6J8r=TM1;_8FU-YdW^*+geg|lQc4sUuSHLFJzsY*v zkW47C^~OqQVzYHDlnJ$$oOYmhUfvXM^vE<;kcznDyIFW!vmMgm9qr9?Y0_Q1GV0B? z<7!IFd#LEUv>F9}?775n$(2_uW07p=d)2ZeTxZ(RJt-TucEk@3!m-<(DD?g9=$ieq z-FP`X`!^!2bjZUx-17-8M`CVFrVth~n8n(@Z-ZT|4zm#BbSI$Sbn@W3wG!s-=fo4Z zy>$*eZM#X01Ewe#$0N!W2qKmw6q%^H-f`jrx%ctet@?|2z1(3e)&ak=K3N00w`u;Tqv7%r=v;4~@e_P1i-cE}#d$3wdQS zI(Lq(5V}2WLHHSy;nG~ z@%xnxzo7Rvv*9=V=CFigjIChT)hBZ7OyP@upJsf&vJjxqhTlE?=flSF(^`CUjp>iy zBD%T_uE>4D)|bI=?*{mQY4eP%J!hOD)5NLe!L$^KgBu60uvS6dJ8V_O#RTpDlE27ENq{}TViD=E%lL%y^HqR zuoIJFtfD`|Y=lc+E2f2 znRu=C54f=ne(Fl=gR%XU@Ima;cx|&VJUmPvYZNq^?W%v(9czOddM{bWlCIY<+dA2B zrNRC90bqFSg_vJI&7J`K; z0N0_|jgPnu)iUZdSf|;()7T~rQ>CZwcw1*eCy{1!>{VtrGVM@go?`)pFtf97=A+q&+m7i zRiIMQ@p_Zck=$OzeIPgE7-2AT<5GvQu`z_l0^@cR$A4%dxKykg&i zz%^)CrH{1O-nX!^7Az>DgkiW%#QO52!^YPmF8vxi0J!Xf+teKD@Cy4+RaT5o>kU?T z&yqOPipwF4H5P^puDfXS=XtCY4{ug7u&c1mlJSledRQHAS=n%_W4x7>ST8vj9LnSO zv|??N{sz`J&e#`C&w0I}�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 z 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�g1OFbIeZx`dlft+ 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	%wpzxBLHFdgeW@lLPFl{n%2L_aqon7j-x
zIGghJuJ3bGxcnPHZ^@{ftX9t?9vONG@vYawjf%fSUjvwg40Rs4aSHTl#Kv6=dw<2j
z8N6?t=b%Zry^f@bSPyHTPJEz*&_7)i-Y2UO0fWQLjo>r>DM=2abGtw!t)=wJmk&w5
z!iL@$&Y@?<36Cg^M?@HgxJx!bu??i+rRWA9j>xVjM^pE)4vq
zU#dN#ZsCPU5J{3VVA#yp0@UpVF)~Va3FK5!emxeqsEgEQ2Iv2$ntd++Rc
z)7lu?cUGD0hsUZ*7B>Wo>H$bzdH!=CtuXX+>*bD36=bmve2);=?1TuI22x*^z-|uN
zxc5Z_cv>=Fa8o
zuJULQ>EvVXGFix@Pa`Hx#E?vjK8Tj~P>P{A=ea50AOt@uE5^U6A3kl6eJawUxCQzvV
zmo%3aaJf*T%#w!@__gcMxPG`c>1m;RV@h+YlC79;(A
zLJhr|gN@{2$vew(v3f{TuL2KWI%@1C++myg)>N8>x)M(i*27R|J
z0JB)Un{hr^oy0vo-REdnUOE9lSAvZjJf1v97cn8LwwZjVqOc6|i1@;@qexuyBo~>H
zK9R?U*2_7ZdD>nc{M2K|m9^be?N6)=xMOP;wO@W|{Ge`R$??#-2zPU(EU6J+bSRd3
zmWG;GdGld%P-dzuoAa9QB-8JtFEV&By(hzzGZj6s+9@${^3{R$CxG-q3@*nP=Qf4B
z%|NOToi;6cWm@#+bbso^zdNw)jdKkc#HdCoSKi>TTN-b57O0E4Faq(^Gb<4c^Tsk_
z`~TRT5?OTxzge_L8z^daXFK{jy}@@nmnnFFvk3a%>ULxIj_wrYO*!7h_zVkjao($Z}0_%>($Mw&&th02})4Zl$AA$o^WSb__b
zdQ%Ul6a+A$rl}!7x*R_MJd}3sPJ&Qfx;*&o{M(?w^R$ylfm8X{P4Y-$L3Cl=3H#(t
z)*@5$C6hgbb3|8!%W?D2^1i9XHXf#n7}9rg-vY+hr`Ed*ykU<5sXDr$w$N_vg^=`^
zf^M$XCB};#!0DnL3oC=s&hYU^#5bcW-IA1(#|(h_j-b9B6_ZOIbPC@1^9+I$eGeSm
zf*JqH=G}x~8ItegZuv!W+1DD!px!CIjhr!?xq^FfIO@|Rwhl*4Es}L+)Rj9_>}HQf
zr65KRlT0$yC#?G!O&=|+?(Lh(=!QVJnrE9EA>9nb{*Z8e7I0Z(
z{PFt9@*p&{i;OZlGi_l?{_$5#Hf4P}$K_Rb=tGl?=Wyw37nN5hHdA1~&TOL_{LKk~
zbA0?J!~V1WDw?y3KqO+J8~?Xn{Cp&mZiUQ~#EZe_0`UPS$B`g(s}n{mzaYe%=q0Mc
zelw7EF{J>h6s*vW
zH+kk6J!4!IBK#P1R7l4>+ZwH##3W>SmTzRqLBeO~--!50i}oawOD*9b-*KhbVr!bq
zgOnF-vb2HX`Vo~fmTzVsr8?E*vw_kUy*+}PgIp$zUlIMLT0p`Nj#xL;%Wbf%R
zT{|iWC{Ij^>uAR=(^`hMaQhP*GXkt9n^~2?M0*1)2)$s$4~7~6&49^8SK^{RCZHXt
zhcoWh^AIhS`x}!oO7fv_a%fwIOG(OI=0Nd!tnspu-%U>^?hkgms-F4fD8fmK0Q6V8
z6ZafINR@B~og`;n~n8lG0d!Z_HasvQpt(#O`o0=pZ*ItHqEid9)6q&NvL+BJk}
z#zRxw5JUqQd-j$D2vLM2yWbW+RH25F)mvLasUMO&&^@zm%gmh~^+UMX-GPOk
zJlBECUz1d;mtG2a=?87AYdX&gv&T&l?h6<5v3eBb-mjlMj;{)pi;7dr+q3#{IPq??
z^j$znT8#+H>Gbg(KeJ}jB+Z+^MdVx{xR*O&|C72&Ws>3+=C4i8LBrYew(k~hr!f0G
zm0MuSxFp}7`~SlJD%FdY3!UNjU#z>${F+6F8^A+SCPTMFQPgXW*R@qJMRSCGx>Ob0
zj|hQvlO`T4rJ$`4?8Pm_H}LrpyuXwO24=u74aCX2Fs8sB!(^*|dHh~PaZq%t9ozp5
zd8QnPLK61B@tfv>onYz7PtpLDg^Al2v>)X&19hCtjdM
z4s)7j4XeQ+;-Dn+NQY#TV>@J#Vmxi3+JYHLRlJM$sQ_IY0
zP(`whXseNC-3x8Cwi+`j61QY7^KJ?+HGKXK6(|tXIeX4fL*OTZ3gyT
zG$8vaH=l4JmU1mgMayEpkn)WtLoWO?pZNkZ@ZDZ*2QWLeFJ%nR_#wM{&ynq(v`;Zm
z2XHT?>=U4MMJjP4Jf17C`!KIpRW;>t=XZP-HQE|*Rug-&?Dj=2ApCsa8C~d~zR_66
zP#X_K>q4ME~^%Z0Vo8h{f7^9N}gc+MxWe~
ze`dNvp+qV+G}yG2i#@zpDZR(gOCF$*JVio&<6&?=EXa~kcO
zWu*bH5UE0|jMjVL#zHvA3fFcx`d2IKs#83u2WN^H+q7j6#ld37ozSxT!QzcO(rYFX
z?cc+;eX`Y?1AUU(LoyKY@UkzNbH0FkpjG&&C!ZhACzI{>-kWmAnZ2Nh4J9aE5@##d
z&Txk4CQEp<(;LGd!Rn?FzY2z|IxDIGa71>i{R)K{
zo&QF`)Uy4h*1a|9oLqjelqKkHG_N32o;MFlt!2F9F^ga(NPH#|YYcJmOqFr@X30?%
zq6!U@$Ih{+BfW-+Srs3KE=BpA`7f@b>I^hImEG7glP)fGQZ*)R@P>u?<tZdAB9!tmIjs{sG_i8_(N}j$$Soi5)#jrO126TVi*!U
zIElBKTOkPvd^k4+vmP;E=RWYxFN4Jy>i05Ok2Nq+HPw+cJRRVG>PXr_?xh^Tq)*R|
z9_KX2;qiJUy(%%K^iv`0&9CE{ULye4gj}6(gG`L{(+C6QEi;J(Yo@^OX61>Q(+y!Y
z7Oc@=r0)3Nz@i}gv&)3VNJ{63w68!=u_n`)fpaN=K-Z>!bQdZVVxmc9@oc^)E*kV#8pQ
z6Vyrtmm>6%i#wq3p4m(G^hCiIa~x1bNk$m636K@O#>I3@Szc{mHX1S!a9AxO(3m)}
zgyGQyeriloN1$6}3sprc9{NY6slZ6^+8LBKG9-LcDK=(^DzRL#L3PydX?c4Z|qeUKq(0YGba9I$xO&#r*#<}JyN!_E>i?ePz?vhKl
z3(RMoV6wV`?r?62{=|Rdx8@UW#q#gUZ_+fLl^B~vYn_N@s~06t-S55Nv}f@FgDF6FZImm>p8y6QyUr!jtelU82gVQfVg_1tKPqp+w-l`gzhx2RyJ
zFID5-46SpnEkpwlVzSOh=l?hPu6uasMKzc)-lK*!g^Y{aM$P)m+abogZzfskLga!R
zN1Zb_Oi`njt<7R_w-GwIdJ;MLWp_AC1PWOnb-vqG}L^uBQb2iXBX{TC|@1!$I40F0#~HOCwu~
zl@;>rJtf+p-%g-zVBlvF8+Gq+@Vl$dZSeMW@lx}&_Bm*;w#46#gjt!W`Q1~nAQi%S
z!%5n<(be1VPlk~9$4Or!T?H@LvX-Z6P9Ehz!<}4zreVV%#;3eDJk?szR>v}kWgXfR
zezuDd*WnM03$%$zy2pmB$Wxn6?7j6V1Uhn3*Y~a_$`EG9PDu0
z0jU|&ShFFBDYZi0?pE${hC*&5l9jVtKyh#V7Bd*p_koVRTig2iV%Y*(3|<{@Bokm8
zzfJD_4r13e2XxWC5&(?!!@}bPnnYDJr=8-S#5Smr^xiC1mk@AAUn*#i!qABS*d=jc
z-G;kYB-)RZhH{@MkGqOAy-V4dwdxS-V9|s|j-ngY8uZ989OdAvN>3#dMT=NwrI*n9
z0l$6}U4af^s6L2ER^Abcx?oM@ZF+iwZr*UI8T=PsBoyQ;S3n^FSH?5gKXN`cJAri*
zn=Ym1h`S(YYSnevaA|*jzxMl4tf`>Z5*_II9zpcnFc^%EVACk643C$8>v1MdW*TKb*QM_zCIE10c+<9z_z^%XZ^
z(OMuVo>GZ;DQ6xfc#i2Bgi&yEGOQdYeN!0t^$_&8ep{i)lOy(lZ#8tpYcWE?THM=`
z^{@2XtYF})#*Uhh{y2+J?gC!dCr4U3z2Hf
z=EGJ8mzJlh0sg#Tu^l;9DLbbGphcS)N3D(B*|^n6&<(7=!Y)01^*XCGuhV-VE&QTy
z?G06Ck^uCd6S>tNhd!He$NLv;mZWo~PO{Q-3a8NwH)&_G%EjU|A)jWy1`7q}Mv&ef
zwn*vwSte$eQ2R5kbWCSqbH6HvOla=
z4NGei+h9hui^qBe8FnYcey}C@2p_2sB=+Cf+`$2O(?sb=m>)q
zV@Tb+%I)!k>=thT$i`i1H!MD(hk6A{@K(1fn2)rk09AIVL>y&k&iYb90$z6E3sftm
zyV9T*#V?XinKWV=Y{6U&i!8=hI?q9pe`Xu~VQF43mlvS*3&#~)l3|r#O|&3AQrjN~
zHye=zdk=4o7Wqi__k0WHudKmsY1pZRPzr`6#EQD-32*#Xp3+ER&|8dxU#?Z$UPEiF
z5p)s2Z1pFlEHotjUIf*Y4Scq6H402DnjOaaxX640ivGsqV&Elx1NFb)u;9&%GgOgr1$g&ebQuf|I
zgDiIH!B)9PE^h2jqz__cz7*J_P`uc*D@N6ta90_r77H90XevQ?9RAenjP&2Yyg>u5
zX6OTO&qchp8>A$P>TMeF!X!-48WjgrXnR}QebUKd_V3JyHA0pyY3&D#PsNml4Gm4m
zJm+{7Xed+vRS-^lTAA#%)xb!jRGKIhRh>(}ch~z^rd6Sv9Z7^5sMl^700~TCFe{nV
zOTqxXA<>xHp})j_$W2p!yfoZ5boO6L*P(tLxR$|a2-2p2lPJ$PZoSLn3C&jhwxtC^
ze&TZM_jgaE^=Rr9yiz>0{rRPO3Fh#WZ)g98D?=?VW9iMLuW;n;$X-8+4t*1Z
zF%qNt5d^gB&wPJxKfyVo3)8Qt8CQlf&TWE~{9(`xnW8*Xd6@E;#X
z5nE{r@VXVgi8E~1KE#&3mD`R1SV4J^^s2t{Cu#@7p0F(yT~rq2j*x<0E^lo$auUR%
z;dK2mLYAD|751A^jkwNcPA8%TcFmsRpf6s(#B&5XXHF<&akg%2-ByRVGI_b^VLpEG
zQie|Lq{QJqnH1f^4vc?U7w)RS^NJR1x$VRib?BP2zsF-`HngoEZ`=B>$B
z^`ULI*dAJ!l*@{xW~AQ`f&vDt2R;Z(Kiv1vV{>FlIEhGlWgk
zk$5y&J2+
z{w!;1I00b`sCd54brSE&+UKq&vek
ztwNTqAzM0VP_1}E-_oZ7nmE9F-rAv3;+STL8ak|V!Ntg)_RucDC#cj)OI+9811_nPPH&kE&0PAcEeW!3?&*NUm|
zAHFddzd*L{psneEFTLn*k-V>Lp##B`jNk}^S%(i7Pyc|ItJ30K@&U3%yk=x(yhF3~
z5FoEu{zCEc3P3Io-%DSp-oJx1sp`K2lhCp70~QF!l^dWgmk_!=$>c-nrt>(ot&+Y+
zHfF!&LU+3Ww3kAHgK%pTUqysffK?8ip4P|l+|Ed=c5Wpqf#j)E6C~?p;IIM&rw7E3
zguC0?l2m_Qb&ZMDhhGa(f87PxopbhHwWG
z>g`w%Nls)-9m+Vi;}CU%99cME1h?{xV^CxMdbG&@V_r=g<{;uaOB^{dlV-TDm8FI4#m%8=KmLcLd!ND8sOegnqS;CB6f-fEcR31Hq{84-uLBeR}|My
zo;)VP_y#c9Hp|M&OlfoAs~F)rw59hiHWG);@l(z`Qf;cjougLqZP%Ewaq`8SIXyUm
zZ(Cu!YwkYY=r~2CkqwcnICaNZy?D}CyuIZyuB>CZ-%8#*oE8F8(jSPii|vW2pbw^u
z?x2?cSd^KeJt%Cf10NK@)BgHxjX-yHh!tizQx>2zpl@;u>=m3m+E$xvll=?{^$NtJ
zu1inj@hK6~+v;gF=zJg^N@r2b`5rsSBs(b{vY43=!z$5f<&I&X@r+)o?8;;O`)3
z=rZxWzj35yVu>2&y$D!>g*t6{0_oO2w>;cY(HUZqigr9?GJUP0g?7z0q#`M@1)baD
zV3wlWe#n$$$LrF(-;u2FjeihDpjYcnb1KopSsy1t9mT?>d}wiB%X@hR#!w&2uujv~
z*$(X~>%xOZM_c~oMtnq!IyWZ
zVt%YA?tpGm?258jCg$eh@czlOuy|o(zK~yS;8J(5&r#0q7_aPG?B)a
zgX7|DlM*TG7Q;eX;JRRH8IpI$(V2B?M&nJQK}lV=s&vyy@E=euh6RwA&vbd~4%8N(
z6~Wle3x+cg!_Jf-$ePBs40k&~i2HV#4Ov-8Yy#>X{n28DM!T%Gg`HMJVZ_#a9f|Ol
zHVPTTeWBGzl`-|k$g4@$W|@(FAc`E_H%Jg=88m1w$PiS1E&`Oks6337!rDb)moZ#m
zR6S?`0d>GXG!k1`#V2tce2SP
z@eg*EC_%r`DrHRt1rVZ=)KL)%-wzQpaXEjj4-jA(jFOd%Vl(i2CCHI%2A?p_qO!=y
zOCTr8S$nemF5^fDrRpQn9$B
z=D|Vnb7PQU<$XJ~m6e(6-nxy2He8;ivPZj&Lg@6|vls(rdP}+z%^ViJDk#YKtJ<0K
z4HL5NI%9_wecd?P8Zl+0n|IS>$nJGtalvG*b_88KC`6GeaRWhzDg5G)k*Jn{!t1jm
zovzZ;*3W>Y+t$61Y#*@2^S9el+@b>E)ZUKf@NMgvcUyQDdAEjhQOv_8j-(f4h}m8=
zG4Iv~6ZXN9)n=D8&-#1pJIfsi>f?=q!rzvxw<#*``cDxFJ~pU7UXX`J3lN@t0!t!rgTZ
zV6~~U`
z<1JmBo+JRZ$*4T>Ah;5VuakF&6oGlj>>WSsT@vOQ+ISI>K=82#IA=TA)0t{jO{>
z)RX1$J1OOO6aAPCH>pB+4Y8JAmcNwd1jdke2}+GW(fS
zSlDC$x2~vn*}7+Y#qJ0#cey?t9j>d(rbobEyJSk`Sa=MAGkvD
zt9D6e&5-@De%>ojlJNbfE*Jc6A1@-3o3;ixaIW`k%2^~@?iW(1oc4)ltcBd;UMnMC
z7Uk(k#Xb&ZG3%ExM@~x;Bg*`$6U(3wPa+e7q&wDoPk#z2%-8y_VYG$yeTNr7ei_oAw}l&n-qPv^3Kq^-b(uqK(fj;V|8
zTd&b0ebf2mUIClB`PM%P|HCw@Hh!BT1
zW)@02|FIwvU7zCRO`km@HM@dKb;ivYGh+u%?fmAW$MsVU>%Cv})xFE;aGEm{-vM0s
zf$J<3fEf1=dP8u%bcaq%YT66BktnlYZqkeK((BtCBGst_@g|iogx188Q83Ox&F>O+
zCD#OtAg-KmHrm{|Y=v0xBu(570C_@%zvl8}>fZ_6l@jPZZ1S5oheR9HsWtI!Z7jA>
zXZ|h6wBz{H-=E=-_OKSjHN6u|jS0CJp3AruiV+d4K_~|B7^9f=^j7nUFJR!m40;zZ
zeq-Z$H)RuHM|TM{DuV^kUi-2QPc8(JJN;f?%J^{Y#{Ex>%&9H43teR79~}V6i}jY3
z1#%Hiyzt0UgrJz?(x6KH-bqgoI{sUMUtWkKKSbr1t2#sInU62`1m@J_RIvcP|8wEx
zYF@L@EplX$NT9M;$R2ixTV^~yGB~I`mlNG3YH*Jo-tD9kZLjg3?#B*k5rLh;Y1GQPx$$kpqE3oHGx
zr+_-T=rinFmeV?$vp;lsVU32f`eL;G{Atn8ucqLf*O|1__&+V=@f_S$vf;zVY@YiB
zbfjr-9hT-td$UO8%sT5-Nd?q|LUoR_Pa8CQQK~(R`u7WI>?mn3L2S;3BeRwS&8@8v
zRUEzn`TDg>=Vwm9g_&I8c=ozHM?%U_MIq6QsxaN>dZZe_DcT&&&&MTW!c%K=f?G7}=8eoN+nHH|W!@WQ!rd
z(g=I7-H?~gy2~4Hj+>ES?bd`!>-oWokq402@7mQ3szFKk#bW(u3gj=cvn_uWqFdpY
zoXRMUkNl#&RP?zwqzwgKF4uV@SL;_jm+4;nqU*Kk$~YC_qKsq#ba^uN_IA56w@W|&
zxD<~wEt;#>Y9dWiSn2wG4G938!q`!VIrXIrEhe}+-MsvYI|QBSDJMBsI+VPwJ0?-@
zH7SN5lg{d&dx31Q1N@$2dcL$~vsB<89(tpM-l-)&*<9Cnt?{1owZURgNsqPHHZ)fM
zsrhto=TWcdDgPMv?0@MM6Vo(O3LGyfvErzA^1O4b99
zlGD&;f*1Z#fGmSN+ccZewBw>}T+G~H%uEmpF4kQn{UHlt;T@}|BhiyM3$By09OquK
zgIBlri$w?FBM(nov+pxQDk#%VFXfh
zTEDPXm%YnFotv4}TRMZVnB#Km@DwI+`02x08t|houG4rq(1uqdSG9t*2g?-~%CfUE9VCE+qUJqJ%^p|F?fTiTA~(1kxhJ&Jkpv6=Y^HuMhQuxaT{N>Ov)Zet|;VNqztjhs|$JJEVtT`$XDRv2Fxk|c|nOST2
zfz|n$r{2jXs{Z=IsIhYdr3EEBRj+9jBQvDd*A{&u`IkMdJogqeRdf>{wL8C3d`^`K
z>#shQ5hQcn?cX7%c|{!*A()c1HPkz*95N9!6=3=os#UYE4lm>wO7G{i01!7>e91~+
z7@T!~aE!#^Woz4|#q44~l@y{lbFp{|lToq^$N05qJ~_5|E;3WT(#v{xlYz#+Y0
z-fB!#OH_K0PVxY15TZRX%MDVeOPS;mb(@p^a9t<7rfZ9llITlh{NUx<s=77MOZ)
z{u5mBXH^tnN~JL2s_Pg?XZO-rt<$O~bI0e`{by3#n9Q%kh|C#DOU<|~uxc)|4PrO25471^YjHxXY}2b986f%4=b4{35ha$x@g&j;o<+>F_Z
zsVse@31;>69vw%&psi%`BWC!#wp^a7hXxF{Y#cxr@+5)DH58`QUt@`ZrjFUEueguW
z_))?@DtxB7zC_xhhh5ExBUGECMyWU~pKAMB^LYJPWDOLMu))@fJAsBmggxj*;a_Ei%VtwlI}L`?JBb0n8H5
zh4yj*h5-x59XVJVBJLHrB-zU?z7JX``Mnt)!hh~H3?rh)0^j{O3KH)1!Eo4yhZ7V?ot
zB_!}AiDxCZLqwN)lre_vQp`d7g6Ir<@&{bCO?w0V{LjAGC4>=rj4
z7646LZV>@!#Oo)Ves-Z9p$@uUS4;p$QWO>bw{s(m_HE8OtT((}{@=rO{3XfVb1K6<
z3+`nvLCATw>%SaDl`>j!DVlEgXqSlDN79P2f6gH6c}5;&-=)v~Ityx@8%6QBEA=T5<;$6|W%
zgT(-<_E|RGhUTgv1dc(E~Ne7Ce+ee|IWsyVmhPNp0hU+aGDy?ippJhY}SArYxM&*OKs
zn+G&H>eXwEz%SrnIlAT7_!|_E!_sZ>m>Up)*>-ZZW)Cm8{euX0^Y6n;b>7#BK&!%C
zLk6}3tnORj-&1bQ%_TFuV(9Vm!vjxuA$bqo8_ZHgA#%!>a-Y#0{%Q?c>-&T8+!YC;
zJU}diKug-6LR3P&-HvlI8qe&t_8po=@Zq~CLjPJzll%==f1NckD252|HR6k*snZUy
zx(~CZzWB{^bQ8ujmuJPRMqgYk;)*J`J^Ach@cU?~LB2hGJ%3ypgGD{k$Ek@v4bN}udD?Q6=hy*rd_l6Xb(;Wb6p2CU-u>ZpW^U)`A`(`=LAS5D9l
zemw;eon0{Gb^zT=qVQ)QxhJJG>PGCG@JgEJ$D4~~p+{4(buX_qZ+X&dHN;Uska?A?
zU1d7MqupsHqe@YTE<8|OLETd~Hxr@Xcu#c;b4CR}y(M8ucUBm`YyfpP$RhyznRo*_
zF9#3$SL#X*>$W07TGD2Cc3$2+Z>l#)_yp^=xXtk_8d()nJZMfWK~MW_Iv?&xq&|{<
z)vuxj_t^xNNJ;8IGfEx4FTG5(^zlVoes#=Bc7v~9_m9?NxSG$WOF$0aX)o4_->gElh1@l%4_B0V2$RF6<^*b89&wd&d<3@4RZ>l5d*Q^iVE&d
z(LASbopDK0NQYGY@IDf#7Gu^)I8^!Pv@OGPRCt~Z3DPbu2L+#A--+;lc}R0OJpt%HW*Re`$oxWI>0N&TXLaT1W_Slf
z7~A~$&Vl#Ibm0=4+8q-(Ds=;jqe|E%;tUK;37+6ZrMte8ivVO5$AogIF|FwLs=Mcx
zY_!C;?DVXcv!^0HK(?q}0K_H)g_4#|rj;^Ya8{(IS-h$uyh2%DOmQi>?Se7-y=Y;Y
zx>7+9Wu_J)Xk(JL1C5YI`%w~FblCN&$0aAns7H5}p6LHE4bPO%)QK(xvsesLgzTF!4XR;NCUzz&t%tmi0;6xp)dq`PtI~t~MyyW$
zqJ^iid3SGwycLtV1*M+v7T7V*h1}N_YW|TUGiw2~1S=CS$Fv+6<9}2sp;ZB8rr2iN
zZ)w4;;n!ws&~nWRljZA}HFO)yP(|`(?4`N1lM^G(`F#f4)FMhF0Gt2Hm7v|2!N~w&
zpmn?(mG+#I$f;lzUy|UNK5YQcS~ntNmP*$xy7g+cYDA00@wB<%gC;3ZqyOp}v`oX|
z!H1QbKOh&23^mc}2a;871eSmM6{2PxztB`?}`D!GSTGwHQLdwAk6}}w`g^B$maI|d6!jn@Y1XgPr2wg
zb>sa5uk)e){2hpO*r5?#@ABfoF0iJv#ij+uyDL2zEeo16?*3mgMu-faB&W6~%4fsz
z91jKLeY_9Jn_9@5G7zERqQrBfsgnb(w=zPuDXo1LuzpwdvWmBq0rLbFi!>?duav3_
zLPKRi-Prqgn&V`-r4F^)ZpYKmJf6bTWEs&`eCFDKFUQu>khvt
zEap+6w@ssOfityir~{OuT;MrTF3qQuv{CkNY%`e#(f@H)YKfYc%+gkdZ9Ax7DeH7-^pwbOU#OB_qCm;_o;I2jN2W(t?oBRzIK52!~+_;c1_7
zvH63+WP_f}uOVtSl{z5o9~6rQZC&hY=>$)iiuWzwZc%Yna7`V_=&TkMA0Uv8t+lH=XjC?Q%?Px}-To&gBIqcK4i$!p;hPj);
z#y&1h?F0j^Mo9C;BA1_Rpp|x!3LL9U7ju7Xi!N=Q4wRK*mwca8!MGUHg*b7S1TsY;
z{y?OtOM{I@Zh5-DvgIGx7V&Xy+hijZQ*O4kS$vGUlA%E+8^#g~{ipE!0!Z;O9bgxh)NkvOr)aVW_|&>**~_@{H}=j$j0w@5gLd}+G}sO
zmm_SnOEG^K87S>tX7x+}G);Cm1Xt>*2}cNc7gD6V9ujd8aYaW4akk0lv3`542Xzl~
zK)lb|(R;1O#@LJ(IC7@40pSb3@)Vq}XVX?Sbs%P?F?dT53g+2)yIIOuJEv)-l2gP>
z$@Z95=u&!7RoAVqr9EVYgd12Y)eP+#auctBg#Wa;A6>ff6ERFAF^&24zN}p;D!g?=
z=p!>M-LaHaN~@z6etERc`-_sH8ES~+Me;i6N~g7QM%8(VXX*JFye9XcPQUx;QZdlk
zKz(qx9rf1F;O6#Y*@Q4-uYP7#+?>trZ`DLDEBUu`6f2fawmB~Qzx;9bZjV5HyNOB`
z+)ZQ51-TNQde3vf%Pl;bY_$QsFp8QJ0hTMZJ|s~
zC92aXpMgjIiqGHpbuj9lC75QFs_=xO*gt)SP@?>^9%-E>Uwd^R-le#cAV9+MrftCM
zSu^?5Gn{j>J}Gz+<%ZV0aOb1aG!>N1^hs~04jjkhYd|**9taou^}xswEBmk~
zM+Id->cavdr@zCB-(*EumaUyoGawL{6N=ICKV*q%@LK%Wk-hFU*stpPY6*=8nBMc=
zL6fMrI;ZmNjcy<+lo?fymt$%MqEn5ziU?{tsw5FDe8%StJQ138amLO_`e$!X({r=q
zdvZ4YdDK-@fek#N?kJ??D`qCnt@!nlikO?VI+hNFh5Zvp{RxAC|

rc@p5;KQf%U55vjQNL7LEQ{qA*Nv4Kop3kWoW@?s#2>)8t;=3WX?`MwXc=H8dU^# zF0gBA&A28DPD|8PiY9USnW_2Zgx;qSCB%-v-D#x#m4H@*qL6HCq5FGtF_T9ME5+q-7V#HBtkGe73Z-vZ>-91O@`=@D0(y*jRwP{HtW0yALXH zvbjTv1n)gN6xr^O|8?g~qB^UEK#;t9%G6(A`(4N4WTiBVV1+dhO3D90swiBZa!`sb z73;@L{Gb)-T@P)K1*`Ark(-{;sYk2ZOcizlMc4j}4c`7Nu2(}9@1*q^-!KMJ4>p41 ze4lkCS6IJ@$pzcCY}8n69o82qddndFk>vOkKm)=NdUA@kw#$64Z}^4-Ae!L*%*Kmc zHR^u5O8<6!dcGCg=j*+v0t27eRDhsoWHTATsSdwZzJ7yZXGA2(xIx$;i;lfAPo=oq zNCkQlHUhF^rcB*~`jIps7)No3h*FBGs>-WP$)O{!iVVz=3=SecYAnYzN)$2@-wVRL z8{Q70+CndG6$PMl4Ddn3ON>i%wxveDq{&u$1C>BmMO|3rVN!FSLgqAQ?fNm2Z0>Nr zcA;1izX3ITjRx^G6=Bk%0Qv4~ah>YhYkbN(X_^cRQ%`(1s*E7HU>0ay7*IWn+6%in_`z&xR=#0pP z+w0)A7uEqDJkFydtTS^~j$uJCYukPmkNwb{xN>;40!Q~J;a`1aPiyinKt0b_3U5M{ zdIqLt(JFp~bZVIipxJcPToEQJ&1$6S~31S(K}>?=OP8j^iZkyeL@+ zO-qlu>;eQ`i`BFMy3~BYdVV4))&GrMZ#cg(3{BKwO>bTkE8K?U?+}#d>tYFLwTJ-m zL(?0khKAzec3`J!afrE(5j{qL|7yp(!}TW16gJ@d-Hxl&?k&&2n^)_|L9RQ=6-)rk zvZL%eU9S5^v6>za&ovTf!G*$}G^zWofXNo}6VTp>!3&=ExKFIeH=>vO#)+Gv=hz~d zfVY>nwMDtzImSXUsl$}u#|C>ukZdM$LN?3IMo>7Z2(3C}cVv9EYm;oF#=K4GWQ!k% zd!~`4V*Ai2^(NWDf#5)$T1(jS_UaKaM7Cw6`ICtvix`6}lJ(0Bm*Mk0t1x@`sJudU zF^grm7Y~3^e=P$VMU=mJ<;ooeQ{tjj?zpDwl2%C6t(=QozUhXE4y3(=NVE+vq!w+_ zh(S%EPyon|s(SjE2Vt_ZPO5Y8}PQpBOe3s(2#9arJGwU&SU74px-00;X{f;nqts1#~To zalSY=o|A!ush3R}8Vd=v6{%bBqh)Lnsz~Ij(>jJB)8(qCc_vQM#KGkaJpp!bDYgZ> zy7*8nyYFUh;;X@P_lijJBDB=+b)`FI0$mW~SCpnxiwd@WJC{Yt2mm2s#tx--cvL0( zET=aL_mTs@dXC{soS~A7slI ze7g-+`>SS4hBA&F00{$G3~6}bG7 z4w{c_ealAlwd}V!!6o)cxEW#`0qDBABQLBd*>;OQ=95~M-F&`Vz#Z+{XV_%tsEPpif$5`jc8cNBbkR)(YG@fx*)5Ku8MiURU0 z)QqTZAE2bk7+8KK*p)u^7MoGD5c-bYzYwVn;B$%XspJn_chE`g9`4GwUaUH-SK9Qa zjfpc5xoKux4qOyMpem}th^E>?T8JGQT)~`T7ihQiz%ExMD36bvHRKY5kW`j|&G-j_ z3=yVpqw{Z3A6Aq5u^#($D^gd4N01C`#=W>}1R>MUSFM1|qJ(HIH@2yUHT)-h&FJ*4 z?Ydz!@IrE78YNa8^uATe3DSTIN3g91(#itg?oY>Fk;~WcM7j|Xbu&=XHp^4rUUhMn z8&zmC61Ln_q$QxpteVzlMf85>#zyIDl;D-A(MFkZ*aRNs_DJYu6EPlY05dP<1LYl1 z!N)-r-ukTc`pK$IaSP2vmsnU1cg;}>Y1mIxZ2>U=?I8SMXJ{v+>;$w}lS%V5%)|CZ zz2!E>2cUdMM~g*#<@FeVk7j%1a3Ua~1M(E^&5ZQUO`HE>u8a92-R+6RHNdP@L`2(U zuM+1!fYi;tG}h@EikC2{N5G5VGY2T4>?FS}vIf^IjN=MCxfhT%TPgutuJzz@jKf1Y zqi+{i>Stki+<{10eTn(y!63NL*!o^;-WX8TlaLp(&Q`1oGJUN%fe!pE;384As-4*O zVMcrr3HoHq;Q=i+-A$Z6PMa`lu}SKyx1X2##m3?gebTYCdfu-i#KK{{Sks1=_!MUA zS#)oIYk^%#dk!`UPoy#AOpyu0GN31n*yHWWiq@shl|KqPW%g(`d!p-n7L+!L>5p>c ztsj_)Vl@ehpvVGo$RS-L4l#hcdw=`B(N$hhXNr{)5eTWE?;nLtY7l2 z#-B%1sqP6HLg$(Ek(jQ6X4t1(5V=^ZG&|cm;%6yXyuj+rM?|iP^=kEdd}f@H*WC4B zu@~%`ysgUJpL=QS^=C9jLGzdkFB4~}_wk3Z80$(Q9eVzd_c9c8Jg){7#GsMo`DInR z!y8YucN)|XmflOK#jMlEa`7S}0(F&ttts=-(Z@d-JwW3TiY`Hn`6_RXdHpF%7a zag#fBLnCM}*PI_;TC~b3mfJzVJn?CTL1^Oieo#Qm7g9}lE0 zA3?NN({z`)wp+Fp^u5T3E%ENc0b>IX^-Q{BNuDNUYfwd)-tm{{D(-~fN8$NWj(4q85^zk3Cf(M);*&3=n78UYl> zvouE$Xnbd9w;iD8Pd_JqUcT9h?+BO(F3Tm-2SJ|IeWLgA$+;1NVaKmiS&@O}XS`tp zCKLyM3tfgPXC(*c5Ewjay~=A19?CmDype@K!7H$#IimY9S?=E8(UHBF(Zc-N+u%c7V#7eXvFe4_#9mAr!YIG<-OdTm?kb^N%3E5iiQSnH> zfmRrMS%2lsLex}9u)#Wfalw(|Y2B<+!5fAHeTz=)OiwjB+q%xG7&Y5Y?9ibGU?uJKI^ zPinOJr_rqpZ`}hJv!)KTHLmJarB9AX7EUfWRec1Xm<(<&;J3BONhWrc)6yGj_M@)H z=T2a$miWePC;vt^(YjzL_2=-Ll1sFFA;^*~g2Ab-W6t%W{iRfqv9F@grX7HlOh+zA zOTrPh&~llk;MCm?$Dj=GA?YDztUM-PWj#3WN6%TWp?ho zAtPS>#0HvP@A$N*Rrr8%-59C+h{mpqV8W`qLJvSQ5Ad_2tVP{D-c!xReMBbmK8>m*7xB6Jt!ppEezn~Kxe zf{#uYkrUqM0LGUt-F3mCP?&JVHBhcHph1w9YY3utJ5&A3{^-Kj8>hS0XZxKA=8n~} z*@a35Ei{Wd_$DL>wM8AD1ctEc|4*UebEQS%^ zo-XjRv$vt34_*rKfb2GjBc`k{nho><1;0G_O^PurXvBd=bS9h*7*KWxgDi)>`XDkAdp%bStU7S7WlMnBN@Z)w!DEa%rDR6hm zq|)cSvuk?qS*D`jC~^k4kED0lm^01QKM!33kNu>+D}1glH7TjtO3%e2xbnhWferLI0An+o^9dq|BXXFx#F>Nw?f&=(D zlu80Q3}d+8Qj{^5sFusBe1@a#VL6J{%KyZ7u;N$@`WdNBV_j4|i6UO{nzniG5UY!T zJw3csH!S!?2QaJ1ie*ZCwm2ujf+6QXId;UePvn?~M!t7DU-+jN@_hu{E!kOK#nd?@ zjZNn0b)?+R7Mse44b3E{{tZ;6S^eZSvG%;=82`ce`WR3tg<@@mNy%d}TxLH*2^8|7 z)@`Szc~5)HG$Yd&N)B=cA~DdR)xOz*9cH$z(G}Yf0{hnR(nq%+)f&-%D|Rz5S@}?_ zTCeZ>8*zRrzbo%QcrrQ1zWMeIM53SK71Hl62h5#wO)i?`1T)IxAk@AK^eg zy=x?mXy?|e0SYrCyFjXFps!BDW<-K@Hy-?wZ;+ar)ZRphJ{v?$Ii3FB}hO6ak+LNs#uCZ8?0E@tk& z3324`-j<;G%j|B&^?Uf511a2V8Pz}ZH63A%?zu^j>TN!${1+j@BN2C#J6NLVqN51S zKWR*1)$)(u zXnXBkvem$(S&uNs@4+`^==e7~CTh+l&c^HBo0<+6EY~Q9Qh5X2yi@^&RSsK3do!nl z1`d5oN%HLf)D|=zAGe}r{|c5_m1LkP=OiZe@rqX7VpJ8V^W)TRWuJG zb@U6N@#3xGaW;)b`XJ3HdxXR-EOJQ|<3Sl&RUXi7%Zw5y>b!3bVgm0wYaSY|1L0JU zEJuv`>{7sTsK7aO>5w#9X>+pINkeFH@!>xdmz&`-E^@Rs{|cCpCz1u+bk-A|h@4y( zvHfdqB3s_4MoZhivbUvPL~csckpWlL=J!vcE)Dkl;Td>mEjdbI=qXyNeoW_kKVQgW z&i+uVH?zt{sp6un<8LYwhy!qcs01pA1NUj$SM7SwU6Xg3Z^)62d>|Izn3?Tkt4Yc) zmfwA+L|hW1azHdBhKk(`yj|{V%f4TzeHNNT<-o^@R(&=$`4|cQ9v<%t}K#kPVH+Dtwo3btLdTN^>J=g zhm^t|NFH31FlCcXY#|Ai+oH*ZXE4ggZ(!(aQc2PU#^H11M1 zmba`g?1ixUeJ0%+X}Iz`Cq!(t@<2t`FlErf@;>M21lpQ}s1x}g$D+^l|GRYjdq`ljwhU+%7x9|+p3W>A64SFDpfsq#gETeHN3YM;0IulYbOwV0I<6w2B(xR95K?DS_hBjnOKK|O_$z)d?zP|1<>{2 zycW>J8N!uazV4DFoUvRTlCy73K*22;Leq%(GSS?GOofhnp&!;J-UxJj6SmxD#M)+} zHn!I|nj62qg9gj>e&ZC-55LRJ<)CF*_H8$+Fkb1i>%xfsU?6YqW?>8cGobK6Kik|V zh>*rs3?!Y3za3<^-K||FKr3czI==-gQk#rNvHl%xMw>>26k=&%s-KVF0!an74NUNS5Z|7243=&~P|du?-^iVX;LdvKKTq?^S#h*~T^{K84=T7GwI z9sb=K+D!x7^Zc(hRa)+E*ZolTxd9Nnq?gYP&*U$nW2jjO-=r^LAOg$5V458Qow1Gi>ZIUIW zs#3Arb2A7->6$SlzA@S@`RAyW;EU4t1BD@Ym_X<+rMykTDgN4RC+lQ-9hOwhfI_|< ze~Ab-`hJJH9A{CvfTBcQkv}( zM6_9V)y1MPJ=jO)AKZb8_kQ zx|c^`yRCR}lcLXiDdNYfr<6^j_hm@BB zQ61D_I>QDAU-2fBZzsMKC@wty#uOY(i<0|6&7nmiSvHAGo57B{91d|duj7$^ zsN*Q-A7NcPw9Z*K?#G6aVT{LHiCS{G%LzD~@gGZc-l`$Kz-tBgV6Y<6rxE@> zvR7fgbW?)X3{NYoZzb39OJC|Utq+xKPvVXpoCdFVql)KFRN)h$l)H)aROq)anKafB zk4HnKqN=B90RRpHm9NxE9SahU;38L)m4YJEqvw&w~0NSy+1<50J$H~U9e;2Aic zvMhmi`0y7x(vB0YgbtOn@PI^nZQy#=FZ8ac-}X8)QY7j=jm%nIv2`E?4a8f4y`RU~ z#`0{V--!Lnjc|~vIO5BUkj}3)y2K)fV++4({jjJ#TER8L$t)$#Et`3&W!~`Tgv)Z8 zxgwka0qUw`S`6Fy`hEm3i8-m z^eh?<|YqZu?sn#mN5fYqY# z3|lDxTz1S$9s3kSQt^nIMbeRWun!Rp_hT~jck}tHx8S9%Wc5r`TTc1Vul^G!{S`W) zwDfcgC2oD2xkXMgAagH&2?&Dvuh=(Bnf$6L+zT7S!+&5pdQnEFJ=Rre{=vB6*n);Z z$Q2lFahDy*eSb(DRDx-l#%V^NNG?#OgB7cs^Hs2o=AZ#s0@XM(x>%Q1^Mv{;?yA7Z zu+d^=`_qMKPkPZV6BQpHHU4Eoz_ic~QD*S5+}aNm(jf!SnIrd(k`A?<)-BkUmtpehDh){d{xq(vsEtkq8DTb;i7`i8;`S^Yxybb zdKtsFOGbJk7o&aA_5h5Q553(}s|$z>0PLqdpiR=6Y9y8;d(dF)0RaRoVews`5R(Ma za8PxxfG|MX`?IOJ#+5(0Fc_450CDVe3?G%-Ze&##l!C${e|VirUzQP#vy}*kw|veh zqVqjjyc%TlYSded$ILyOJqsWLcmy-!i!wjQ4Vt(AVSU(sgpv_wZBCb5_z(6L-U<*D z9+!v1m0AtUMWihPo4Pxa7;fn2yP4=K@4shYA?^?rNX6@Q^k`yA6r!;IsOjdAL>yT9@*_nbXSwMYFXQ| zKZ{}J^<{ItjSi$9-|yl*q26RUqN2H1I;#+jN=^RjX)>BG*<#dB$Giq-cmQNtpB4vaJ;< zXj93ATg*{A@zxi)Teu3T&EejoPGD7GOUS`e3WZLKSHxepAeE-E>c+DRsyt7@V3c4X zxQav%A~ZeburcoEPpePmsd5Ei^rW@t)ig6nz%fYG29o=Ug*sJ(Wz6+(s^v*m;z|j5 z2vSA_5C=t&%ugIt0&Quq>kx-=x!xZaTJ@=P^Vq)eIKjO+y5WMw$j-owkP3T6{Nh14 zh}3@=nt@YtI5}Iwj+I0BmIduoC6{PyZ((*^2@qD?OI*l$kpZ)w7vx`vvdq1Bi$_() zUztXp<&(&tO0SvXJk9WbyC946t+VM{8IRkI(}$drYPnGwvYg5MRg*;;a!gxkE5fRd zb`_c)?G*WmbR5@X`w)o{cpRgP`LvD_n{yK>fJ(1O)J`D*c+-tRRV(7s+d_hw(+xcP z?JDig=o(={+RoL3dAM&x|7TCkL$EXowRn|ayz%-$ zQ2G3*inenXWmE83Ry)>2V8eoS=%5VS3<;D7ruMwDzYji{jQm`fMH#1L{JQPigMiw^ z759DSD-z*KfZp#tqF9zp+SA}xQQa*75|$g%U5T!a=1pQm&x`Vzi+YL39ta5F3U2oj zX9JT8-Q+zZP9k+9mZhjRE3ri+8QGIL0(AfRtB*>pD)f8vA-yZT_(?+wG+h~JNZBlq z9r3pPX<;`& z2_Q&0-?P36VMP&bJL(ZZfK(<}sHq+&wqj-GB<2;CVVteD*F{NHqF>{`nO>O0+4jv* zd%(G|WLYxtiJSn)CH=*cFvDNAO3By4FQ%A9L%GmP{C`# zzZ>*0o9x-k`Ob_J0M?*gTc?)qR!9mR>_Ye}m`J#Ov<+}S>@u$2X5fJlsw~7qPAaOT z(J?C5q0aLJz-UGdM0$$;MLR8O4P}E8`{Gg#f(aYtCC^{1DOu4YAivTK7!LXCp>ZLJ zsevIAe1}YY`F^`Sz$C{VpX9rY0cAG?u2a!x2R14T`|G-#B-ZresA!>H*+)_;7fN<; zDcbs27ioc)9Z@=ftQ+8W-Y))}DJO}kuooUGWtBt$AkpC_E^4)Pai6c?dX=9`)_^MF z!U_fo+57nqO@)B-y4xpeNzZF{+5uEBGM*q`a`w*6xVj5!LpKk)VMzdnb_k(ACeK1O z+K#!tk~o!w)k@LSqP(H$5@?;9m}oL?Ut9;-VL0ZjnW<_lHUC2ol2uAh-WR}g)=CuQ z|?~W>&q?+^!ZhVG%cJh5=%;UKFVsIt0agEp=Jkc9{}d7hDp^Kl0!J>2-)1 z5sdbpR5~4LP?nZtpGu`C3tYC{C1Ki-#oc*=7aC~Z`Lz&>KfBW0KqvzMlvV{6!24-z7j4Ot2OE1Sgrv6T)8|rZwy0J>cmxptQ@{xLjQr z_?=WlhGpW2n)V-ORAR3e_XCEdUmGOUOTcq?<_o0z2I)sAYSJ^=!Eh{|X!ES~^fCRq zM(41qlI8YuG^%!uc{CXmliNXN%wAI-(^q%m$`S6uhqgn^1p1!>E_Ie4jVyZ10sCBry`Y~1R@WV0ym;jUOC)l>y5#chK=z0kI&Dc($7}0LRy!?M(Fn$&IS|pY z4JHBh7Bm@+Rx__u^Jtc?1@c5C$v17@8PzvfqfF~{k*$M3=fmu;K+c1)zIs0d>Yv_;Yi7D<{v(|!4m2;%lVAr$ zkrVm+m#JP`^xECmi$e(DTTSpk)dfC`HTNFrUBk_Mzo5aMw!ckit(Vy!fbx8PHkF0k zu($J}3@)D?p9n_YC#Qnlx;ek|8b~CDWqE2fc~YSH^+h9K!1+R&6NwLt8vH;_ghK8< zwP<5oPUXL_lbm=YzyjSgRQ!9jLF%d8kl&ayB;uH;io29bi8ROu_I8`e!k4}Wy8@HK z7-zb6WsIl;=gjYUJqFRBw%5*C@(W?!$Xz;#56&avXZsb!=*4ZVPNu(fcaL&hl9dnA ziOz$C31$f%de^7&la$-;qDoCLOqU=i8!aezz}n+N2zxD_JEL;h#Sz>!8f%vUW2^4h|v>PWIoB^#X8Q)h$AlPJ$0j; zAmg^XU&uVL%zj9**8>l^%pa5x$2cmS`t8mnXCpXlbt3~U8CW8aI*tQg>KWxwv5|E` z$7LwG+%gA=cz+{F<=M3SQ~AC_#MXc`>!#R*n1-=PFrl_JiVCUeWfn)|w7>>1WeqsL zMLVwPPYr@Uk8wMim!LIDB>x7@be#?Xp{(wstl!5MoGYqhfYWTqbpI4abF;*ih0J0P znaTj(qvbmc$`jJQ+4bp+---u@ctk|hT;qJQ-Q8`HSY}E$?YI?ykV!3z6S#UG-g#wg zhN?@~AB zU42(^N^HB7 z2hwr=&pikw_pjVK4;gi>ED)1&LmcX8e|Opcx5vmw=OP+*fHh1I?1TG1TCeMsgSS1l zUV&NS(qA8YE4 zPa!#(4oiG*RL4JcUL>P7V(B7ap@bi#WwP7RLwML244m&wEkIVqb978Za0r1ypgjBi znqKkbXy3NqTSH-`NtZo>U(_4CsVW>1>Tp@>yu`a{vR_4OHey}8=^kF#e1@Rvq=JL)CLLIOoQ`9iHO1T)&poavx2to4?nm$;_$Db49dsH=P@z7q2)6t+}^P2+}CTEjb{8(NG4w*!h^?Hc@0f?o|@D6mfX@wW->C8EBae_1TB9NcrKU~Sj zYgW2cjt?FA_lj+RoG4c+sPV92J5*=alq~~5M#ePQN8YtQCsR#Md-tn|DR&n@-oIwf zx3h6jaWZSVpO_jttt31_f|IT2;Kay(TaAXRU+$V`wevef=z zFw%`zl|5}4uRTA^ch|E^>MMATxdXkWLJg8620)CJtjPRU{7e%#xLz(-iO)>zhTwbT znqG)6E<(4~z; zK;lE=PHmDY_5q{lkiGFkV?SGgK#?@b@B3zt-Xo-f_*b9X=k(PQIwwpxJc^_HeX(H1 zZ~aSq+3>9A@rN!zm9`M9#pfo2_c>rK`4Ays8^~3d87p7FH|!Q>6ns zvUq<5PUk`4Y}t_HiNhsjd3Amoqa|0#3kLll5|L-c9@YzsKs-8bajEO;==W>QF>to# zzNTz4r$Y=0%^ZcFJ%~9h@e_|8R^)q2kZKD_Py{gDJ}^n@bFlN zB@f*E{qt3#pVGYHz#sd`+dvp)ByQdLHN2X|rG#3f+&D?f>~A?e5Gg-*Ec_`O^dAravmtZg z#)+EO(CM%uM8v=Gk{poaN!bqJ;g27y2Dm0E+jmvdgu;$)H94I$%Bk@?G%`K5aIvP* zHz>W+kF;fIF`S1~1fuU)#P*++?myfHm-yUa1TITX7UHmdbI3!8FMuW{3HIhicf5;9 zRIenSqWW``HKB*9a8$&@{LVU80QE~O{bd>5C{9sZwv*$NAE73NKCALm`Se?m@9_i@wFY`g@b!fKUCHT$xl*QzwV;D610N9#il0 zrGm9sOh)o2gV;8*zaaB{O{%}6!}26xxmj%4>@x&Te^WXs{19%>S}Qd{Q^Qi`ul+*< z#eaHN7%h48Nm=u;FF^kgm zhh)G`hW&RUmXR$v5nt_UyFz)Ywb_~HN8FSE2%DjcAdFc0N`&$fg%4Nf)0%np0_J3{ z%aW8!QSayL-v5}w<(LmJFdsH}Hojr?7Z#e!m=g0Z^^nwJRlLJ9V#}iAlA#s)dl^wS z=F!g^ma$WeEWat;JGw+Dg5Ly}b4zu5epvggeYwd7sF4RYBT__ABgu&C=Ytn4g_h}q zDIJK7l_}*)-8_3NCIhZ(0?|?nmXnchI{R#Cl8_IW&`}8U)r>+POfY6oDktsVl%z;q z{Bk$-P0nC4lP_8=-KED&)V&o!S2|M?y$!OaOUYL-B)B~3Fb*=_6lzFJdE}N9^3K#H z=`mwz?3mF}`7eQuKHlOGn5&eMI9YO}&}OSU4z;2?QExD&0R{qql-~c6%4n~SMcKK(4#vO z%`Rc6?(AwoMDTD%fniX0FvGS@LeW1V7STCi*^ft~7^Qz6#vxD)%gnt6sNELE45;(g zz2f(mU1yd62DbDIufY%7F?wQ=RMZY=Be5TJeP%qGxsv~}HdSA{>5VumQFn!NDP!{d zQ0FX)+edp(Y}7_mIG!J4G4I8OzA1X810mXxzajV|dzSaH!&I{kchUfT588SD*gI_e zkCw?L)j*71%qnC5&mEaSMkpl_XN-Q?WFF1&0(03i!lV+?9n0#6&i4YC=5vfpZoS?A zACLm?65^)L8&1a_l)EgsJS0H1&;^~3e$=_2fUYW;@>yZ=J2?s z5utA%pz-EXzsat`J(Xz$?-2(G*vYW$`n8wm>@p|i1&@ht#@io( z2*hc-IfC%VFZdq*i#S0~7n7ss$e16E)g7&<`&<3ezs}GhykQOIZi1SF3sWM}uUK}^ zs8pW}{!BIqvQ$1}CZFse!oqmEp1b>IZO1vXgpS=jNPT*LaP#?=3Z0HI`#PBAI6L zqI$7u%u-Q=XqCDVm}efg6Dmtj*Y1wPKL1L>#^~tC-{&&DNrNuO+F}43+)g*wkSI&R3psE?eA9Fop03 zkm{nVO>K-`38^TZKeWv=S_3dB;@Didg)>KVxf#gTyn|PN{5bW+Ddaei)%vnYY#0!} zJHebZXyp!rAsq}!%$K6S>F&h&Hk2CPNR)E@Slld+PN);xs=7TffuO2hQP?dN!f3Q> z$N1Y*rge>fHABHlvC+iX>u!mZ4^jUR;hJ5 zCY6qou-g108gGNP&wSH6Kid=?Wn@OJw);0Y9jla2|2VZ@eDb(|Z4$>ra)(k}s0`K< z?;G8?OUJj*7#V_)a^}DJf~!PPohwftLYVyAV4yK-CZ2cw>e#^Kahe8=9V+*x&o}(S`cXSEIxPSF%f~Mv< z7zMacQ5BRMSC?=s`JOnE7?n#1N{+#4ja*4vz7oY0a6D268#dd3NBU$OEY2BXFIo^R zV6cIU!(ijcT_8_StI}e9&w|O*AW(t2Bc0+lAD%yUlJE7bG@|AeoDyZGF6WvoSLV^?UqDb#n63x!_up}C0Apq zrepKht@2}jTi@|>E`m4CopB$zvTC8_;XD?gTO*iAo={!<_Ke3&*2za$d3&;Kn;T+KY^x%G-}sve2OZi@!0Tf8NESR`;q5Xf(NL6{ zTn`SY8T_;C_ujlv2hisR@G9 zrYB$(guR#BYjdC0^D#Dq7MjrpiQ^m911?OXXxJQ44m(&`%cwHJ{rzjsnParg|Ek)o zKM0GXG#b2%WsL`^@%RC#65ds~YWcip6`M73HQ<_P%nEq(#uDUx=d z4uzPPWse6xWA9P-Oi9#-`Y`KfZ zYg*(P0yJ}fDYkh%Zlo?#6euR z)OCnc&*UgvC*V{r-JKdmHH%>d2DPn`X(Y`yd(BIWTNZNjR*X+7H(=VOrgOcJ$nc*` z+@L)OZ&z+p@RUvA^h1K|s@fjz`RDlDi|j!XS0)|=3vq(mr9kliX(X}As`DF3%v_f9eX-0dcH$eGX8QzXTN>$W&i zQO+v0vGk+-BaHv2S|%EKxx*6+{}zkY&DtUWmfq5;SCU-S+ZpB$^P{S&JN+Jr4MrnN znkrs0M!*(iP}CS)19l!bk+2td^1f)hvp4w`QNOsq6+?+8!G@(|e8{31gu`6oabxr~ zgT%1bpAHW0=sddcOZp*{#>@;~#`1KE-T}<^=G8Bki!o({3$`}@KXv4#5avaGy2Z9d zK@QQOgq>{!UK;uL@z;>vM3SZ#175+I@k$*UmFqp%$wq+pkxwGH`Y0&KbdU>H=lpnQ zs?H?nr(r$^w5aPs);wtq|2Xf=U3%r>d`7MD9f`-niTy@{2_k8rgLlC%+HzfSEgjFc zg&o&zd$64Pa|&$=#;Ns-GA^0Z?ShOfgV5c8!%)AVq7c-A(c37c**J8aeUv%%%ITo7 z=zN$N4*uoV-JJys83W(Ate+A9gEBgBQ~f){XkvC_A5lQ%023L#yv3;Xdt%Hlf!c-p zDPNtIKj>LUX$s)ua5JVWX{zZoYBQbxZ^EuF$YLu^9TGKl`>U;b9sflH8hobq z)nJ0tWpA?2kqG-@Zq|`~T%`{l@6B@CGrGs;N3wK$`U$*z0X$F&^^g^lJVL5#VPH?i z$`7A5vVhZUn^9rMBMqn1m&U1LnEckAUr{eH60%B61l%o3gZ-dh18stP%wo9aNs#3H zVuNTsu<15_vwBJLVv~YJ##zo2BeI$=vh#+6k?d&@*Vf*8I|> z+ELxBnB|KWjWG&@**u~pBj6Bx&#%vJexNGAr5NA8wdUtyBoaT&po@wvt0^jHyj@7$ zXwxijSyGn+a*aLDpl9knU2!I0=7AatfedT{6hKN8kA)Alc5OO!yrk4zWauH>#CQW8 zQtB-x#cvz|1rClYfa)1c3%i`58|$POtA)PNYaOqAt9~4T&8}16Bld22-J{!~S zr)5qR9ZrILZtmx1nSuHv?hTT+1*l5wWYnsVEiFbwE!BD_-<8o#^r5y!yYX>kjgU}? z{S(t=9<+C<6ZHV7GwZ%U7iU$|Os@YuuW?Rq zeUhdY*M=iN@HdMbGM#l@3mWk&C_KjUfb#R8z|2uf~Dy=2qy}{W=|Tn zFUNi4UEjXKmyX#od7=0j0w)>4)lMlorvMUlopJ%fok~N9UusZqqSK#^(n!r6oiWXj zsI=4caKWzY3IL7#4`~w`{Wy5lS3ttqxnaY)XeOPKMW$S_C1B7jT1G@iZsCJGOEgg) z?s#>q8bL1}$=3B4q>I)*A&UGqX(Un#QSIjnhEtpH-ZcYeV~xpq&6g+}WHk>F0pU2k zDK{C5WI}JkdGutFof+lYWOKr00uUow*sHN(#ls-F`C9k z{fD{Ai^ojI3iYDwTmc;OMxG&yh*{gNKmyJD;Wx|<l6}B7F@;d!2`QTp>60Ji8W}c z3lL4KpP#P5rMT$5Sko`ccP&^9X+yptB0 zeD;E`$SMoYm)PXdv)^2$!+*%v=KdPEXq9V(HP|`A)2|YZ0Tpf_0SIC&E5?Gjqf;d0 z;MHOQrK4~}g({{OaCmeT2*+0gg0w%q7_C?oZ>~8YnW0LwCB^d{nt@V1?NpHl9ooUw?A>VI!`<*2)(Z%UrkTHG){2v* z-js4<{up7r}-lNu?b z+@^(p@gW)||47w%u@yPrq)RvUhX~fyFTdezRsvDueNDPtLgLlMSdU+HYu_#sWA-XQ zh>4n*JMH<9F;+3U>xa|RN~LMU$Jtsq??h~N;rNej3bSCyYk6!giqh*g_GM?-2pWMKQS42Ld*`hjU@eOGZPLrwM zhzJq+D>fVL97%@sI?B$Ik;RX5EqyXH`)uxCmp8DNW~F&Rz@S}7FRY>JFEv-+ES_am zy&y!Cb_@x2Lo4HRc^X+e7U563hRX1k!R;DE5Ea>41WF%6JF%>V#->72CHp*`!-7)Xk)s90XvCWLs3VqrCx9c&~rfor=TqOPoYPL}T2lvA9pI zGa8cV;DT*vsuLqsTx^D2M*218-imJS7)l~Myf5HF?WRcA?g-6v)C!Xi=if^5|Lmqt zcS;RN^Bmsd0~*hYyvOa>@SIvHXah4o@_ngB#b{sM`mwC|maUgniQ?KDXVppFz4Sxf zAt=@S78(>8W)f7SrCQ=(!@suajCdMa2bEDm=JYZbNT^oFoqDx0R1ZYJgC8g$*YUG( z#!=uk(GHOXBIhdw+YU?7-Z|=M#V0*`Y3=zx`p&ypUdR*=E2y+MF7BgbmN&Bj%E!2k61eE&1pzH>gz_SnkBh}Dp zh-D2G(B(IosmT-!Bm*TbsYxx45JmZGWhYVa;cDGyj7?T3vf&^-rEFCD@N!tY`h=8&7S;Xv8z6VGq*b3 zu#2=gnT(ta%cq#CT3k28fiPbXbq~q$URO}=&c7Er!e0g+vs%=))OFHiQt#n)gm`=qH_VRFAZ98IS8F@}tVP(+o7r{wBA|~Kx<(8N?~Vet zc2Sl=8q^YoBy`4}#8t02bMnM$TQ*wmdtzP`2DL_4=LcQsGro8X#BCoQ9OC#dBJVSJ zmaTx1v}(`oONvZ-J;CWWYhdT!ZG4DGC%juasv}Va_jHcCdnNKumAT);m$8Z~#8iP6 z&#+0QRgwm^!RJV4t;@^BZx48NC&<^y;kbaSPFBs^KjGSGjLzz5nftWnM_S7Tr-cwN z09EQgZA8i=PG|*z^oE?Sw0-hoDjT`KM~uR{*~zrtU`)g2eU#XesC`(JL|KC7PFspU z8cyL(k%a?rD5^dYyUDZ_A-My}fziqci8wtLe3};+su-aX$$>C#h)~y_;K~;DCi>%c zrjajmj`yrQb+o8GgX$_-QL3oEOfU2%#;b_K}ADP6aSoRj=2sSaUU#+mQ=Y4c*ybv zx!aNlq6uT-tR~@v2D8bE>_;RDw6@r4NF@8?pTQpzU_U#K8qfSDR+RJ6Y9fYKPNAi0 z84a#_+WWOZ5O<8<;I|mFCfQ{aMd>!NdR1cB>3n?(i?+y(s=j6c6}R7Y8xs_LEy?%fkeBr|n6=j8XXwKSsQL8NPr)82)!;XR zukL(kgxp`NB?)Y@rLorD#ZY$Y$n085j(+g?Rbi*4mSfl0FFi79T3+F3yu~<;*>63XOA4S(s zKHeOs_q$t6i9S=zhJrBIY1zjWX+**mSOqPrrsXWMNs{I6u7*?-coUuDi7#)r79U(E zI`!x_;2X?q+w}=YULl+IO{zH$El{$Ep+{M$6}uQAV*2#p{SQ*VE;;33NGYEVqz`|! zBI{9VdrD-0ez`N6g#MNA9B`t{**O*FgBO<%|T)O~h2I*N03v_pyT92B> zN=V7R)&%%7D`v#zGL@2YvvZtTP7iIBXv{HO6`v$}q)sT#;SCSiBmu9BnEM@q%|~Xj z+kF}{=3u!@2{Wy@9;Lh+$vDb9SypsbCXK90IFMvZzzGBTK=#PC+SW{imtW(&k4$Wv$KG0p? zu+G8ldKM*f<=Mu&Yo@AQV20Gc$DVAOySH-vMv40*p|O92ICL*lYhH&s)*57WDTcB^NTooi)*Ouh7(}T3U_?N<-h(0+kR$ zrObs>P(JlT{e9+`-KjJTP;43=)?z)1O2$S@TGB&zB+$fZgfry#h&`dRD@jQsMI5lN7h%pnWH>fV9OmU^PFuuu@1b7UK?a2~u4elCEUA6k zI`w$4n7c1^>^J^}*|bOjTK;Ix?rjrzEyq=wZ_X*V(!|UyBgFfvko^sQqCQ}>5>iA* zmK1GpYf;5^s1nqvY0qC2-!z;@Ew^>6;+Ov;8g`oB5)hp=U6P3t#v)&X`mV=OZrQ~A zz_FaCY2n9ASq(LR^?9pMGh@nmFiKhfniRHgA}gj@Z367CHEt~J2J}Ymn^&5XeKi-_ zSbllYj{*e6M9QYlTzo!-*k8?Gqm58yKTiu55yeL!IT?E?sfYJ z3do!B&XG0Vf%RBPaEMRuIV%VYjr2*7j5k#{8@AYzd-F)?TWh`Iwq0^> z*-b@^mAoRNH(|dCh`Sob=Z*136TE-$MjQ=%=z4lq`+Csxe#l{@gqV#d+2-6@3gL77 zofAmeB*P&?1-2+PPX?zhY2N(y|2}?IuNKhX|2(XN6XdYZj-b6Z{%UKBHNR;->320QI)yaCz_GukJmRSnJ!gv^x?NEj$k&ji3w-fmbIH}sN$m_bmL(^&TRMlaBHw*G# zuHy&V_^1x4sGY=iwjrCMgDd~Rfp*f^Dy)|>ID+|!x-Sv|Fi7MWXTFrz;S+8?e1a5g zB=5B*UHEQfR^6Nih#m>`fH>VtaxX5K#mDGzgtQgu0;%#34GJ>O14_ky)Tj*rXUyXFr$(x@*E z@d5IpVj@tv@31oNP*CbwO{j^dZ76qt*u;{Q_s^o3&%#3qayfEW`OvwLIrU5gx=M)h zl_Th=TCbpZ0`2BagA%r8&l6DKwccPbVeky}Er0Q-ATphRuRu955 zQso|*4Ry2Et5Ml9hBf{xO=Oepm_||fc!Dwv^YC*Rl?x+@r+}=e4S$xHQ=E9mI<*hl zy?>9JrbUI_Y8Q9g@&Ro?gAxCy=MgNYg)=yAdGTjTlb+B zd1m#bQ+-MK)DUR3mt;nBi6N$x1a#Wr_-Gsfjgx9rf?~lM#u>{xA3hDOtDO4yQbX#u zv?FCT6(xaSu3@bfT7=QAPk*?)uwV2kP#tR{U;MGg3kP;A)Z_fFXihRj#zur)Tv;6% zj(Hib6L)|hz{i}WJ5}z=t-68BqHAsKApFnowi&uo34FM~muM~VV7xG@oW#fCPEP;( zm$x`_c9LBiP$4o<3!!r$Y0GDCG4ZOALZpHACA3UAz$`n}5xQyR3Ab0sx`>P8{R zhYXF`1x%PPrA(LhUUPlrD&3|+05d?$zc9b|cavm#WEsE*ps{C{$_$zZsruD&kM>)l zfjy2_f&chtAa#92MUYS-Vt8+=1qIJ9!oYVN?Q5p+Fc3M{3m+Aq@-ca1Vb9`D0WEIVFg50};#JYs5B=m?6UCnd^VB*gW&n3|2U+Px2og6ehi5yg#`PpJ`9p)?Cf8UN9|on`R2Z|;4Bzo> z0l?l+J%c{-qrw+3y}QzZwsXKk!#c!m1TP_EafN+;gq+mw7YUI(;o-))p<})7$v>GQ z;D2&zfe#roPbtF8HDkWTMMs|(AUJLYFOq_{N9KzA$^za=F2c<0!u=*T z;lUiHeo0jw6EoG`ey^U>X)hb`YTh*T!gKm{qok80rA)%bGq`+s24Bx{ZayCgPJw1- zbc3mbb zIA(({bpCLp-Ws35e_K?zRN$Bf9l9DgHTiU!o_Q^+Zd57vNvRH=BbHhPkZ@~EC(5wN zAdtgCQGig&5R_HcKj**>DP_=?NQL^@4 z17*3KO>e@WQw0fCsJ>PWv1}3ALZY`<*+^(|D`(x)q!w$b0)>2Iemy%z4Rb34$0rnO z6XX~xz`egRj%S^g&$mY*60J+XFw zf9!>&EvX(}ln8G^Mp%7oHdP%&eI$vV(C0|MZ*xsR3sHT&gy+x$pnsN?{TEMR_a)ny z%Qd0k;7MwygD!iOWi0sM+s%#IKwTuQ3k3zlxbh=Ns={qT7>TE4gQMNE>MD@7k$e{y z19BiisbHDb0E_Idp6OjBibwsbU~gY)Wxum`?p<}u*WaC!m8G-SFFJ+ql0&nmuu3wZQ$Yta1^7(FQ$CS~k400h2##zY0H^;IUBBkW zxKiB}5&@(%f>cF7TRknETK|wikV>}h|FDaHU`V8_qg5(rpfFr!y^LruSVG`5_=kh$ z_Vep1+5$)-!3AADc5D2usAZ2gFmlS}=yA1xy^|y*wzC`rt5YsjoNN;Xh8t#1Qq?R# zP3SjSfAe!Sf1{=R59|D}imX(nWhtz7Mkj3b`xhYB_pI4#FD_kQ+Nc}8 z7)!*EN#t2R5U-W()yH9ytc|Cu=L{L@V^AVu%@M=KxNMXo@_|67Psf8ccZWHbqInfEv!`lijoL?W@- z*Ob8;#6uTCraLYVMVx*^)fKTq;%EMY zSW3cE87#uRLs1}!Ui?#wD^v*XoSLZlJ2nVzNW&0cHv-adUW_|bHz2e?R$|P&32{3t z#)}>W!OQ9*u?a7N3s1usqq$>)(rvhEv?!(~_nKVK|}@Ll2p^DTc^R zcE)lNwxx_4dY`E$;ljzkzD~cF*4&HFa2Gi%O{9YBL=KVH)Z{90X+IvF=0XmFYOL185x-0# z#6sos=d~P^okSeywAOg&P*fJZa$QucCGLviVQQ7l@#d5uCo?~17!3{c5_M!0{94MS z_cD8zyK7cf2`>O*BB;toZ&+z_z#6S+$O68s6UIfj@=iKva006c^dJvHk2-syeWF3+1B`e zfd8N(k9R%ltb%EDUR&t05c_@Z7$|^gvA{1H9LebgZ_tlu%H(o+0^bey zilm)jnqCACA88IJVeZX>-Ko$DD}LJwLsj1 zR)rDEUl-o&I0KRul5{s#p!qSKySW`E@w8b~oKCkX6jf6nr*3a97`}4_#ov6eqtir< zzGB+1p_|iXt5VC-&zk}mSE)zU5#LHcq5|#%lnHT)2qE+abV+fp1W*Z-N10;75~z3} zw7o)vg4hqEaw{C|wfraDIw%zYq-Fr(!1wQ!vIs%uJ3e)$IN-s3609I&T#WPYopMtw z4XM>G0J`lt0lzBdd3?kbAIs?~# zyY~sC&(ro8Ek+)A_;8ite`tUy*t_#-R#`Gk?{33|elI&PsfL@6m~kOS&R?~xIKlQ? zlUouJW+i8R>M)|Y8s+r09`AU32Cj<9hXtmb%6B{)&a+qWwNy<#RVu=sqD?k}iN_Xm z#kmt*-P=bE*eq*qeZ`S;p8n5Zw16JNWBIF$WSIRjP0Ta)`Dcg5_x+tJ^a`h50Slv& z@>M;nAm+cj;e^DhzI%ja0s+cng?{YWn zcl5Crj0qkq^=6B61K9gm?4G1*=;Y_Es*#cuwWSy48f$b}#JeFOCu1p5EQatX4t}7d zAv39Yj|z{-K~Q8CZQ?pUBU1&qaRm_vQpw)Tu+hJSi#+Y*sZ|v7{-HU&CX_2bxo(bQ zUr!q}`76^ND!QrFLQNqPJl4g>Z83>TmeNreQOX9Ebg zSed;0g9=fw?qoo`b}$md-U5ut5mk80jU$-o4JXM6oKu|7^ek?$(>PwX45z(&<6~w z#}X{gQlUw9z>cI-MR8Nqokftsv=|VvWP231GU}oSZ!V?3ak!g2E}rEQaklo5szl{b z^7{smQ@yzDdiQUpa?zUK3_FJr#rW!<_U)%l9(3$yy9Gr<5ePC5-$${Mm%9hc`c~vA zVvp$u;PVfGqCr*Gf%<(o3(p2L6`++PQzKdjrvTe+J6fe$HO;;5TyKa zSovB$Dw8|RP=|e8C%2u(9JcAQSuTqfp#PJ!%Wk|X1IpNfkSx>Nh8?=~j^bwv9M8+A}RHO9|Ld6cdhTlkpt}!StkCtGM*w%iQ|4LqiiMfn#waaHx|VVfQUy9A$Ft`ie`Ls||6xL_R*!Gft`*6e z|D&)$4Qf}@FwFI7^k|m8a%+L#n!aJwI*|S**&G{0%F2)9iGI{+&-&#p`0z|Lbw_r7 zJ2nJubaxhZ75GFl(h0M{iziWM`%>oHb};atA|+ z&-xxi|7A6ar3bJ|b!gFH)+BbCLT??;AAo7+jHO?wXuvDVUR_jN!|l;v_M>knG3sY= z{J6eO7@)4OjU5{DAP*8=!&YAjZP{C*!uYiU^zF6;k_EYPw;N33v>D>+%TQW`pg(|} z5RQ+X9^7F5a!upi-o|QVZ`iEZ-#neF- zi3w%Be{GHr=o+xS=DuGdXPsc!#D7^kLpwND=##c>=0q=s>Elw8wfF2YTxM5Mc-v4f zHm=w2FL1-K?+;x^R5xA2*G6l#kJO}?H#Rf2aG>Ux+mF)oiLOl1V`IpP3zvP;t7jo~ zfr%lY)kJjE_nYo2$I7oe2(v_*l)m0UmpG+QYE+1mj$_<=1fZNj=0D0;>Z(ZgM{pOb z`$3S3DYgZ@>j@sP)D#yI;2k5_dCG>4G(+4F9;=e?~sA6a6+>gVW!I5KdINjBy zmRj~C(;?J{)nV#$aigMhcIah`cT)&}gd;w*x&UJJvg>dYeTJt9!G&RjrZ2b1<-2h0gDG*0hjKt$J4H&J5H(b%|_Cp z(}Mx!LVEPyLA7X7OVzyTBTg{SBtIlJZW0#wheKg)3p)d9q$YfKEsI6S8?T(_eNwss z#3i=7VM5eK6As5qdnil9mP;>IR8q&2gk>N~qPYG^`6EB2EcMa;>laf<`@FszX`5Z3 zcw%e+7goKV$>YT|8zgEKgcmL(Wc=S}U1={!20{_QC+-f;XSrPq$RSZT+hw549-}-~ zdM?Pq$P7lmc$}kJl^7Y7Ls}H$ zx4 z@Vow$6|hrF+JXp%+xn4bQup@FbbBp>o&+=sxx&nWHKYu&V3W9>V{;p)`x=kK9tcn+i%Z^|KS5Lg~pBD!zB@jz}{x zxkKRwaj|CgAM`T%PGxeDo<^fT!a)QNNVG1Rn8C0vakQtLqLUB0%RG!i8P*hBAZ~^h zWV2U!+mKF+tVJDZG6YZqPWG%>rw11$mzI$|*ybQ*E&h{+NCKV(C< zTIQ>Giqo9P?KQD=e7|V*4O1?4*gb;A2;+82T=+N7isrIanM{SRGOIn`M5UATT%z^E zj!Ww=Vj5&8k4;Iu-0-URw0m2$yKwnY<$dL%ET81_(9iF7TptOC-7n?i z(3$S`xVvyKuFFvdxl!w=s*?r0#P6B(9o>nB&5osK^CGC3?i$5(g08uR)RmmGFnvYT z6l{U-!MqEp{<`g=S)_U~UwkJ*^iFjUApw^3Alz>4d!fx!n1LkZ-wfw09`~3sc@uju zzT0>(A3Qdh?sg8s(QP2AJVIAX?jsI_`;I$#!%CoxAMNWnM3bT=yG~eUR6cKsX}}Jz z6~sNHTAHxkKEd|5p43ku1bT25PuKjt)zDZ4{8onImp0zI&H-_AAP_64M+T7QhhI+x zK#$Z8j*tU5g?ZF7_Nh{`C`y_<(T-#fMjv+eE|0;&ha z56(=LqEhF=;e5L>CybplpctzNmh)^wH8+iAdaO??nau|)EV9(k4fO2VgHAr`IWNA) zG>R^5rLbQB4DUFA-EL|hb7FO{JWfE@Ay*sj?)woHq#gwf9q)5q@6k1Vz;n^>{z8+K zGKvbIFy*knUh)37Rb3iMBGWwJom4k6TXX{UwfDB-wi=?NGB$Xh^$v-;I}MsE<;g>2 z{0&DGV{)06#~raCzOxrO1Mf&VII&%Gk_>%)-N2$L{K06@K0ueYg=E}2$*QxezY|ig z?hUEN4M7zgWK0741F*yd#aoP*gcEmaN`{97WH;J(Dk8=knFSH+M_yM7CSoi@8}buo zugB?ANvp}M^CDHzL5?CxlTzPztsqg3($=~Hai$1k?du4n|BDncECeu)ri#Uy3H?4%gA{x{YI+Qh zExL7U%>PumcpjF|+Ej_JsibddMfU8NtOh_CK{_CMrXu#UxIrey-kA>`3oYn0zCeVhm~Qs%H_*<02Robgd4h z`G3Q8o6mBBG))#O`T}j$S(zHvnY|V%b{N|kPrQJv!AVfge9VKrM%b$BSxreOAgSD` zb%&`;A8z4F><1A)iMn-I>nCN!EM`$nC;*KUv<+)IHG-6-GODVo$Js}mW~E+>QuY7E zBQG%mBJ-i6|7v;^=;NT>Eg)PyLi^Mkhij}9WIc)&8l~ZaZ&*lFu1Iml61TWMBX-eC zE}E$vfp|J1hyme^!S^9vJXMCWd$LjFf_5qCQ4X^<&^}MIoa`GRhxEwrBn)>#2@Rw- z_r3)ENdqX|Oi|LE9Bm<$+A#k$!6|PGi}wgcZt6S~jAznaZx>}A;!7BW6bQsP-{)LX z_a~&WigXDMw;wY^{$8L^x}5S__Z6ncMtG<`=U!JVd@7nm3O}S~+>=zrs_pryckkXU>gomEj!6|>e3dD*t_W>7nMs;0aQ zdZ#V~J|a9{ks3>f#c2fZT^!oMwsUv@gARIC*!y&&r=A=-lGEci>JE$ZYS_Xid@jRoG=`d?xspf#)S+^XCKd(G@rpB?S^Le$E& z)3O-WJ`7AHRy0&L3_B3v{Mvd3=lvf&#E0SW#skDs-Ln~Vbv<#Z@p0L zVPYTq^rTYFYe%hBP9zI5eFO!Q9Ed+Afnn8ysT}UOk0(T$PBmmnZaELUEv??OXp*8j zKXRI2;O3g591T)J^lYkTNO|ptuL0xpSqo8YN`L?5G~#|Q++os>cBmiNlnOF){MzA+ zlLmr9_}4xLMgX6b~^2H-e3N0kX6?sz3vuorgUF(u8p1>B7 znl|_>7|)V_QVgu%?J77KS)Msb!)yp5lCoh#qnTofojm4Wkil((fjnC50ib`i{!6-D z+@QPllj(pHN^%K7h(`pP{xYj+1B$qPl8j)D2I@gqWt7i1U%%?dwgjRA)JMx%@@kdB zQALaHckSnKi)qKz3G>i<-@VF!=QJ$B0b=xCDNNY+1gp-d6GN18lpOv{%95<)GUa-y zr_g|pbBSC1fTf6x2<%aw&O*!{D`6_#U$Xr`n2$O5=K;WY+B|?%;Osg*Yg85q(}1ZN z7bnCZOjrkTNks^T$6I)mkFQKBekX*~$0+3gqKIb~;QXa&;V3m~P~1An`Fddpp$-TR z`U7D@(jMoO)}xZD>Xvl8Q14AU^uV-D5oC;|YR=RT0DS7`7=lEIUl{vcfvo$hR~5^U ze$C(Pzpqth(IZN%TnHa0^MFS$=Fq2_!++&S3P#Zx)rcMtkJ7}NRaqA3n#$?ffq4Uh z!V_6nAL4Svk5;vp<>#F9|0=6aZ6yc0+d7G>g@TfXSt9izria0EIz)>%i;Kn+|q?@SU zAsZ@q<|o42(oQ{)FKB};JABAlx(+pyewJ&>>8S-GdSYe8`@+z3jqK=+48o7?J|amw zHmHLo;~u84!pXU83mRO=+mO=3_ere5^d6VH->9p?$7M`Sv#*5e#p34>Mjf?EJeM17 zKZ(SpTa@Y7&7+M!EyN-R%>$Myn0RzgTSm>t#5Y5`T3 zl$qF8v;NncqtSsZDvaq$ljaXJM3348c|;ufj1(rRQ4e1jKyyZ`33U4ak1w)`;(+FO zeg)Cxh^QvSfI>v!arg-U1Jibr^r|zn{-I023&);2ShXNuX_a`supPA$ z(1{Tkg#1Gm_62hC31lcSh}CpK(?BzrL1*=rk=F=&JBCu?SzrusRvZ@?+JwYDjj~qm zSXZVFI{_VcqJ6pP#Z*gD-~E7HFeLc;^nE{empZ?}^;kk+X?*cFuch8NB}y!!%hUiS zq@IC#%8;;$K=X3`kyihJeEjhmlwjpi>ms7So1mKToT@}}yTAsY6@Y&S zs5TB(+})m-T#G{=E>RZq(ivj^2(47b>Hf;p+v~Pfx^kRmJd72PM!Hpt_lc;BpFZBI23Oa9Ewg3Si*42jUw}L2^d+^yyu%G3NPkDz zC9r52fKI63%ZCK4uXK>sV}2_v?L)ZDBLeWdw(tJagea~&>`$a6Uf1T#UIuZH_i4_Q zB5Y=cO9WqznhlSgwih_^2~hXi-^Kp;DLlkzuIrCdXOJPf#V|5fI9u!*-5(k84ODnc zy3bpJH_ucQvA%%$?{{Xf!C;Z8p+Lu>iTHqt0qEdM!glE@#kuqjWkt@s`vu3EqKXg? z0IqPv1W$5tONb?0yBXsB)O=|Ogy<@=cVvbJy5ekXo1>V6~_|7BHDSh-TOLS9u=8eaczWaU`sB`m-$Pz zb4q55%|1i^8=8vLXDSIOF&yHl9|Im|YRyWcLk=o2!@ko;?^QWglO5`F>W_&epkA`C zHK1g(M}kbXWm2X9gSAL;EOIYqhB6>b?6hmwf4BYPKM$ubq44O(*g^HXMfj)+!CuN~ z+2o@#;zPGn08Cn>_&2OSdfbm3*dWDWLOcMg4zN=+OZ{RnZqtU3)OG^@L!oz4Y+^3- zcCX%afm5u`2V{n-XCl>d<#JJD*ZS))bGr8$hO1YGjX}rAp`cQlC?Lxrh?uPy%*-Ms zb9pD=rtytG->OYD!WWY)IQNOR7}yMG;ausy?AiRgo;9put{j|bFhh#N8pX8bT(#(q zBmU~&A$g@79Vhs{ayb~is_4f%LO$c=qeMTSuvcbHM0>7=s9kkKmZ>ymAZY*4oN1#k zYBlKLRGSBU;G4W>$7U%2okOk!6PI-Hu$v_O&SZ}OBO_E zaWD;O^!6l3;;7GXv5=y3hg9^D@j@~4zM+?@N0QJO^l(R!zDSM&2I@|U``hy(G2s|X zC(ibHo4((wSjy#{q=iv)ND)|fl_Z&vle=N>9TAi^(I!flY8^Wz{L{{~bVOdUT}Aju|R@?R4^Nh1LFKrW5NjriPIc zq`e8*ER(?9#K6>*4u#3We>C_a^uWt&2ZqGHjOK>YY|X&H=lRMfUk}?&nPvZ34XFEJ zROllRU}hRf1^@fIp8R@3WyVtdhjnQhSFq0SNsai4Qj>@VLh4}5zG1J1rxV#ZCbE#v z9yTCijv8ZRP$l3a9{_nPTnb&AuH?0y6xglJ$?GVmN|T{vF|+evo30M94t4$eoSR!= zky`fmMen~{0hixVQNN|cVzlxYaj-$mtsyL=KLlG;4A!gRYw1*~A^d>qQBE(zOX!VV znm!IC_ zueIe9SQJV9+NdT%v*Ovre`tU8e@rdO-||KqA3(uBP5`UPFch}h{aTmlI3m+Q-3zWl zfI%>Hl<>>M-Obvq`Edu?EyWhVkZ^wl;weq^z1gM_5F3F0@#c8ktl7NGI<{M>auPM- z$Ir-WC#Dy7W(@c4*Ww8`4Lm+uXqpBq-CAW`>J%;0IyMH?eT@bm;P}R>v~?3A>d9s_ zH4XVID(%Ck)9JN&okL6Ww}GbR4vuxY#2xjlJUEL$_@@^(`fU@Eoi+8RkM ze8o&rhO#963m$NmcGx0`M+AOU43+*X)8%Oy)X_d{4Rvx9yf8X{;^6*yHjfPMrlj1b zWRD;FJ!3bS3^97GBKO{3MFdC+mOriesNYj%>y@evZG z2HZYe<4cpS0_vVd4C!r6%H>@D~O2yZCz8H*I)KuYoZN$r3o``o?2#dE{QJPRtdJ8?E!TL2|lJbgk zK7H%3Y%0#e9EN$^dXH5pE^l^Y0W(q5#9@$-)mnfo{n?>5xUx7msO2JN4Sb+MTZQqO z!F(6vZy3v(+5P{)Wn`YYbZI}rUU;ACqOsjMqgJHXX?9{-y7l| zDuzajz}I7~2pl{x%tm`&giJs*RGIf{^GLP5j~l0Rf{c>Gf?L%!gp$M(_XvOkGkNjw z90y7T+NdNgOvhYn#6tmc4$JfJx4?Qc*9ts~tQX*Kxr{nhrwQ49(~au8y+ll z86Ivf{38h2Ge${~l?bURZl|Sv?S!1224PXHyj{-`stejl7?x!09?&R^J+B{Mx06Kf zq8y)3yjNHS-~cT$CR*=zqNzigL&IYkm!P+`xvfjp zeO60STEwBj`f~{8IR5v3>5oWHI6u-zhhR?$hQyQ?SFqNo^NXWYl7=M?3o+4+iWJ!Q zqnbaTtC=pq24{-KCkbp0d1-9twIXacacp2xGHh37?+K80rBgc3|Ls!vV~tgB3Ooeu z(zKqNQ4-#$I@_973LeDiI9=jLH!!~_6^D(%we@`G2%;nTYs!e65}lue0>6J5zr2(& zGAA(bo12}boHL7B1v?;>W)Bi0YqTU^en}snco_j0@TzE(Nt~S3X^W5%?s9p+^sJSY z(~C&Z435qo;XW8|)*kGJ-s?loAJ%J-T_R1_zUbBmt6aBQg(rVuSm75>9QdJawO|3 z4^m-6_#FyV9AaH<`f(w50}}uC^$$^dJZ|&8va6d0dV!|Rl(M!jSA#U41G#m->1-jp zTnX?J;2_%YW6&GSuAt=!DeyWR!dKj!&PdOm)yMcYQWO^q{!ll%6t~mBL!Qi<7&HzbeL}$E7Uoal-UY!_81BgQC7g3AG>@esGEGv+ zC!kM&2MF_44Np2{BEki@D9T4b9+pc(b4sxI11uRTajS=CmP|tKPliHl8O&VH4qMuj zzQI|+F~K6AeW+Dd9L5eoNp#C6~JArAeZKmmN)3b-k zj53PA-EU!JGCC~HI|{nn5ZIl>198NpcuOc6*!e+O)#R;Z=skx(I51xN+TNRs@lLx+ zL2qbM?)pON>7Ghjr8gF;4<@;jUjY=Q8S9ueoSxF_*HMlaG8t{fKT?F|kGTv79Z*;l zN)npB57s|xypqUaSES1)Z~j^(qy?K@+8##4{^rmz zciM4S)R2=lM?$j{g0cHPQ1dP?0OTqf%YBO$ewmI4sGrFy7rQp#%)p zALG300(h(4f1@XJa5HnMullR<)@2&`<`KBXB{d6EMqkOWu6A{%lP~sPf#`XL^aX^L z?52e1iZxcX%WZQwp5by7_6ok1_N8(|GjeeIB5&$fUdE8>Y?KV6jV3A^Xk~|rY7^8% zpAX!DUaeYKMl4`yn((pFN5o{2WYMw6orlOaOFK*>Ydd=v)F9B=Fc$?SY6%@vfbY1u z5e8jJyJR~{kh*#lqm$Ixk`YB!R+`+UFrN}~@NUcbv5*t|hYd!Bl_|QpeZl`eGSjF; z7R!uO7|Xo>Nl(-UqZovSE==)Q)+lj|pQ+7Yx3&*97>4%iOm&_=RK?$xQBcZfUC)iH5hg^LCH?d+#JjUT4 zQ-CGgADD?AR8VUxO#Pve65Ps9-=-HjX}|;W7XeOS#In%1nF?bWUnE2V5j){Kp-qn=t~0XBrBbAkxvXaPl-g^0aMshP5yyo_({O`ohPY6_1RHtxFtW3(K>l+YO9g*&VgVPuf+&rOwwp79C8CN+$+=a4^p40w@UJ z*?9%k-R8fZq5>N23$=7k1~*rIGN)y(Yd^doIr#DQMmU=r-(Zn+!-t=u9W9k8`%FA^ z(N4;Eq!7kO-99j23_0F-3XBp{K96wUg&x`~(9D8m8>RzX$JWv74*VRFVh6wwP}m~~ zP17IGL;%aGI@gNlwWGUPLHj>%g5~$ehav$Q3s^$;>PmS#LSS7%fbc}2-lxqXCgE}< z)>)QG>PZthA6M^@DYS}Ovh@`55C)H)w=jjptw*9|pa=Fn4*4|T;zR3Q3SFusKtwcJ z`%{0P3~OkNVyIR&R;--DX`Hr4&bsR#BUZ`W0b5P+6Ah3o={ROftHdM z6<2Xr`_n`mj@kGjC+p#xIWmV}P{6p@dD#(FTH1hT^~PP*eslDv#|;E94dMeDl=T5~ z&H_64Fzppm?~z~Fl0dIZFt7gvX$Ns6ocW6)TxJll9vK^<*zzQBZPS$WltrN>%gu}J zEl7n(-P+ixSjk7V((!&r1aMIG3M%jRMG8@4jW5mTT7~a#2Nl7H0fCn?&8x}KQNrs8f%IpIOs+8P&KT!y6us@dhRJ&H)cFV=`h(Su z*;@P2tG+(dfOnP=JCHn4Fyq9?d!(M;5xQj1!UEbfLufnVjie1W&wkj6kP39Pp;t_E zHvc)KkMgr{Me56fr1I&`>!pjMxxNQ8e&c9oT%QNI ztLYCG@=?{ymP4j(Ge?Yw03}1tZ<5)bKR7Tc+62eZoq#8@Op2EE_AoeWrE`A_a1CXk zWUDjkB^ZF;I1@FuxvGElW19^S78Nw6rYBlCbS2Fi3UIa$R<(hanf-J9Bj~!}v}_+; zk=mmGzHS%+0}ain{E5l1Pjm|o+WFf74VQ1%F?nRg*a~X7S@yp-SFz`Ww5aGancT*y)JD+8b`^XKMeON` zmLDABiM1FPc(?*4&)Pz3%gDwzlBj|6Zn=~ECKDxi@U?Ah)m1IxNp$Kix~u>&JY#x@ z;B;}%%hz(zY|Fm!Y{TAxo-ms^u3&A7p$C5D+@5(RY_mZf0N?bIxKhUQp%z`PgxCr< z% z^Ts%5@^(RWCgTFj3FdrC*_hcMSK2V@HvR~S=&xmf^FbSPmdcdDeeqK=k@vHa&a3UE z2pOC3H$~?{5cM8H5~wsf3+%kk_4=B#rc8(Z4|77(?*i>|`*7QiT-W(EN9$3lc*0j9 zAHl!=JHIvdS;QY;*=w}$A3Af(AjBgm(aEC~DLmrynm#}@9JF#Q$lza^1LNg6QWv9@ zhgFJ82;pE{9?%^MjWPs^c+)OlNeZ7D!Dbf!*d^AI)}94l74_s_LQe;wPnDUfis|yJ zYSD`Lu$G{U&5&vWRKbErf0fc!uTnGz?o@gdv_({&_`Ga^Qko$z5IuJ;wmE)L2x!=v z7HJ_=;*wZ}V7qbHA=jJ#)b_6H{IaGe- zN~Og1Q%;?ZWbTl){tvwN`fA*&z59y$JF1rFiul={HPS>KpCIB)RPzJfXsl`FQT<2S zc=MM4$Sh#ktKm9sJ2crC$|J5D3bg2#2S{f=KT{XS@X`Fu<_2(SiA0Sqs8UrBqKw=O zMtFty%CdNI1LkFryzfyqa9xh?EXAdPnAxCvh=LvLAi3I| z?0h?oKJ3Hj*U(3Ys7#f^TSPTA)t}&^>g{!O$ZV4x8%Di@BW>bRD%nOgkk?tuy!sNc z6g^?55n&Sc)wBMD6ic>?L7yuZD6j zVzuJAIB=>b5)OCzAgpt;@6cP9-+7Dpe}O(wnHh%iYlTMaI8Yxo)wFJ}Lj1*23Uogj zyDSyEI4&tPs2Bd3>%(-rX5I12Ps;r0<;~WF2Z+9)=d>J5$lWie6}=5nfQR8Q?18WG zyhJ_+VG5{F9u%&JzDF2Wl?`%3YWEiurfAc{2gZkfe)Tf*Qd0Q(It0?BQWYWL6wI_r zO}moj-nOI`IH1UMtF|dhId9||0E9*RmDfar?OUZ)pSOK(GFSZH%u3)qQ^^GSlR2+E zM^ni3J)x8926=Df%a`_1KBxH19>EO7IP>C?jK6)Ob&_oQviJMM*StU@Y+ z0G+q;`5mUtuq{{~-a@O=%GY7LZ!IR(ZZrw6FB+98ma{HlC47LTs4tLY^?cd{t}tOa z>JA7gW_3ph2tCF12{!iBK~gy#2+Ly{mUj?106##$zx%ZOX1gkcSq#EO@&fsMsz5y+ zYg0}(C$XGQ6SJAxB-&oD5zt&|oV~Aoj0ndH;})8qI0rHiSGHPHdO+uYR0$iaZro4T z`644t-Y|46^76o`sf^~9CO8>rSdNkL@9`G|LT^|#wzcCyL%ctL`EC?W?Ot1eET1(U z|OY@iNC0izbN!?Ps*&^wxY1v{ue( znD_gb-YvjP2|oGPEbi^7!{F~i{b;hl|MQUT8YBo-{ilKGudx8wdaIRE4KY4ea1ua6 z{MiYy-v85-g&NV3T=>YiZO<`S(sVA+-?ajxe4K)YJQQiZ&xzyMXcv?PWE;?3g1-Zm zIS@tS7tK~?;ZDqXegnFL!lS+*b)?yDz#2{jB!#c482-5bMPWOG~mh{+H4XA1zYouUP)s+n9_thc%ZcrBsy4 zCcbczS`F+A|W`@>jBVRy;suu*m{?RG^3P+Qk zfkv2~f1=`PmTEo(Wgg?A2+$-7Xt$it&ZpZ$ZjCcR^{?#A)j>sb-S<|?h`g5GCe*dV zqSKyhPuWPEC-^SAqf}$^XBZ1xMs?LuQ6iQ9u$k}J07dzTo#FE!)-B^`GN_WGNqAzP z$v%;Sh&L?y{n+jPjBoBf^Omors6X80H)p^dIvVsle35>{4;JCh$p$ zbqw(zF$v3;e}nX2#8bz_0{h+mK*;&Ffyx->qxi6z&~JpiJ#**XDi*P}I&LE%t#EKA zW2Lh7+Kl*mynLA%hx`R{Qf5n1)GS2xm=?EW^9OidV0)j^7^G{vEIXhNups?!I8@p< z%07rBe?#*>Le4h# zfhO9YLBqu8w!UdE{c8II4RCFfxllS!p@R&qvOvi1TL@IX2QpV%e*OvLg7{kDr$9TT zcy^WIRxniEODz`)Jn;>*CL5dv{{{3MhAF#>I!sk$D z*O2;^pwz>At8nIf>tL>J1$#MUI%5~A5>OB`AEJ{(hPbN>H#}yU72+b-Hs6tP7Iup@ zs5=<(JCAZ5>K-_3Zk9Q^@v^y+R4L~uN=AHtYqALn_tg*I3E=zrp{uE_hnqGcAAE&Y zrTjA46nM~}HQRFd}2gW_V))NZh#6Oy5yh$2_C$Mf7?2rCxK zKHcCk%dWho6EEeweHU=~Qqezl#z}6Wf91_HR7oCVd3-d|P=p z>`73#_i*#CMcK|xEpf)YLRJavwJ_gqB$h~GOaq(IyO8b{z*1Io+x~}dV>s&*rZoXa z_%dFDJd@87vjYd_M}Hb_w_DH^B%G8CPhNuf)=+XHR-RTq0cd49>*>4vL-Ha&Aia%B zb3(I}cDG&a-aSIAU2N&aEgS5B_J2GzuMKf}Ar$k;r6$6}I-@PTq8C>rsmPCp1U zF1nu{1eJ*2jzgSD>fiiCy6us}+<12IP`cuWJA3dOjFdy~h&aJQuRsyhS`)&j(QcCS z1W}G(Y4(WAFhueo!E0T64cRsU=(X+qeb1dtB-M0i zvRq`MI*v4X?kAzU9bZ>d%!)`J7UqD3egl=zP$nsZlI2$xf|C@PedeoW5RN}flz%)V zi4HTijF9a%0aI_)kM0O*!T;CQw41mM5kWULt}l;TX%&>TFyZrS*gi zu7N|yq_2O|6InFCs*wbOfRQ~+CTTt&hewmm@bt7i-KoCk)2%*d(51cDymJM(!7~7C zNTOYNlUOC^zN>~??upA?E>j}&sNj!G{C#rp4?(uuCTAj8ott6DEh~CyR>EEZ>pM&a zE={jirOtZLBO!%)NQ3wKaFh<~vt(8T>Zf(O?Pu zS1J4oo&;ncgy}l*TJHmNp{X$Z~9wLx{!dQjZrY4A^H z=5~ixQWSKxYdo?n6n1WhiaHw-2lLxD2t}AaHs@e~Z8ot&}UIP{LnjZ_5di0E2OPM@5atm#%!yE=0zz-qc6JgwS}A|G_37=ZSGI4QDdvk`HvPd#s6i}H^rY&p1H zmzNwvuBoxr{@LZPsC%8Zh4eI^@QgDSB@$%J+6}z^anuD8+EAp)*o|UPVmeGWSSis1 z(Z^{o>jyYcK8d1{6tunG;o;Ubf)id_bTG!@8fHkI5R%ArCM)Xe=NFB&)+ob=59|P* z|9S95hJ|gdUJ)5SB;Rb$PpnHmIpG{z@+q9q4wfthia4E)O}<$x_ukNK;6@EdCp6$) z+atL>N^O(Ps?+zL2@4C%8HH8vmvDmk>!?0m^;FQ?QXkE(SpL!#?^Z*-zBy#A`=Udz zwDU_q=(U31+U7Y-y_aJMWN}Z+>>ht;<$VvqzyH#q#bsDgWXnwY5kmJ^C9}YYiZ*60 zf!CVCol{%(_Bt=ngOpd!PLr8B-y=Ww}s_E99=po|wv+FZR|c$V6%kd@4){ zqXv%(%b=K`v!YI9gYLd?dsJKz{wiqUKpjS?z(IR@#}A%1T@B*>uH<=RpWQMbd~+-?l$l+ zV#Rc7ns=_|ii4}j_`g~3<~W;~%7e|*?mgr6z9+k=k{AGQZ#CvVz2ADw<~zTgtkE+Z z$jh$WVd&-wx&Gt<`1MnyN1~8dZZs#$3dI2%%o;{6Bq`33ikUA;A>9Of^19Tq=^iH{ zXTs>wCoq2H+#ncSWYHmsj5sSyIMVGELi@aFHUAlQ_L4J9(P$RyX8J>4riy&cohBu$Xa+wGRLmlcmV&97}Q(26C`$2@-%vxWS{oOJcl=}MTo8Avv4Ag1~ zhsv&ry81(%iX<%Yd`iZ4dSh}@0%8`s(YPX!$KkHBL#QGBnD_9pTmX$t?c`RziVYut zcV9IoBT_Wa1bZ1j!9x8Xv-v?ilMl4A{`X$gx?o*GZ!#x|&ytL?&3*#@QZr7`(5!z&r+!)+-t~l9xO9!T;L{I2u04Eeqm3z`SjhUI6 zj`Os#ioU@X5Wp3`TeXWYtD+9Hay0kdXg&8pqh-_U;ldecaT>rG7X~ypp7b)-wAcah zS3I`>ceExvLdXMZg4m?U3mq~z=Dx&<0+x~d|cJ>%d!ukYun7r_#&oa_5+Z<5uJc`vW z@!XwBk>H1%&(Z={VwWt(eqG$%*H8;?m`7wP5r2U9y8Vdu=?btag2`CmCp~RYxxZ>p zpF)aMQKaY+W>wQ1*9x+b{ts>dJlT{D7}*^^vn@QEYlduM2RHmq42mDwTx zg?XpW907&4L5r%~ zSCP8=J^@b$HGlr1#5k%;ED;+;L#CTxYCxe2$dhR^x;*704bR{=S|hrg8?gpiU=o8y!WNje-Ap&v}nSCg_0mH_met-({iwAv*p~??k7T6IIXk z=karEXN-o9i5A8-EJTdQC>&>fF$!K-<>k+I^igma*g_IQH1HIr()w2R&_oKnXdos| z-)_!s&7$8I6|Z4*KvazO|iadekgT2xZA zMpX(eSWpo`Ok#k%RmJ-l#KoTRNf>vn+=nc0zt;i9GRd&AZV`z-&82G7d&*H-!g$j$ zK5m}cpc2N=)rz)Fr56Oa?ZzTX9z_7oCn&TT;J=@ugp;}jC8;mLX{}^#S-2slH9MF| z%ukPUMs;#vHwoTt{=fIg%oHy@CX`+OYgQ*P?DH+g>9n=Frfxpf*YT8_UdpN(g}0ZN zJ8@ParHWDZVG0$;=vOmoD=h5d=R$Z$rD$knum6pK{Al2Uy<^!kcadd_T-szPb0mBJ zkZ_Vg!kE&h$x9*qe1KNEm$u{E>SRR%cpUG=NrAM_&FI|(CQVwW@N1N>I2CMvO%*51 zA6woqlFXHYPljgc8HLy^D6xDR-6*&^mqxxOc8#F2)(Gc7jjwC-v#w2{A6Igi{Vnn@ zbFqbu5QhM#0jr04Ac$G0{;H}~2k>e5GRVyEJO4Hgl}(m7Mzip557LTXSl6|)cacq> z0YC3xmxIqm#fXBl#V=UVYY`KhPL40{AR#j^8y@*1-4`k(hgQ!TosG(c5sygH-iO(J z$MUTtVZ>nYIWS-JmEdu83)kfj=U`$`hSh=v(NOoNUe`Hf!@6~`(DRHb6VM?|R;Tl) z(o!$Y1TPp`R^Q^96y8twvY)5yUJSUG$lW4)9Z9QyEHTCyY}c7r8l-AHUk%EjV^h&3 zb0BfTQnJ2fqAKXZC^75+N2`=cKRAwJ*mi8|Brw2Gu{PXktlCp|ltcR?mdA}sc4+*v z`#`i^nTA^p?#0Z%d1%(ti>j4Ei6RBTb!r}^KpM3d*ryJ5d@>}LMRx~+0b>Saar&3T zzWvrn56Khzoyj0$@@{BzQmoeNPWJxX3#G;~{QZW3vWLz5KFvQqq)M`yjtICkz$V@5 zMm@dBP4A^|YD|h)o%y0{q#Z9+)2rRl&H5V7_``B|1=N!6P7K+UJ7UTow2RUa++K7M z2mDZ2b;vz^t=XMq9-XxNF=@{E(2L2Upm%Jse6MRMrnzDwE%(fkUk1-{kYjo2%mZ>S zbIbXKNUjO<6oc;UJA7V`DeBwpiUu6)tbly+fzt?ENigH+YqbL{h$52mxc{#Ai?77? zIRBN5eZ?O&E#pw|M6?%DzBOh5c^9R2QqcrbhlTb>yB$t!c@@SYR!3XEXBcUR1Nx@W z#zZJqU4QL;N1_9p&ojo>AvY~RT)y_^X#MH8E-|m+d_m{Zk|!kf=MI-~yh8sTq-R`h z-1HwdN6=k8c{WV%bqFe$tI43m9F;68@* z(Qi4?DkeULD z+CuN3EdvSU4fuoJ3h;TCY$Jhj+Yn+Oc;G%;X!mq-6Xc_N+V@R9RiUx5IIb!io!#~# z;)oW9WQ$u!RB2bL-Y!cgA&p0Bm4zOqkAbql@^?5B`l?Z zo$0~!pH=w47sjL3r{M^vYm6jA{g|_qHz?7O-TrR~(ka%`S!#+7Q;;;(LD8v+Sx`6_ z{Psfbl$}QnCBF%fCxWxF(>fv?m$;L_CRuD^`uBBy{GMQm*}@)eYSu-PCw-V>)*?hJ z9kV{I%5zHQxh$i>Ds1qCx~`F5TtwMF0dcR@q4#P=$?Xf}7J}xWaC6cNqs#QnAq0oN zuYq~t@JWFu$s%1PS&VawOBFu#GTb6iedeFz!G!A{Lr*>Yhm8oj=iI#O2gS5M8Mn-UbK?3BzbQF?|Of@Q76TZr|q%VQe zQXbXlA2Cyw5OnNIQDnF^MR!m5NZwm<)~&pKyon)mIB>~|?g_`9DMelQuUdrSekjo& zza86jh#!5{hzyyFSVrm-gEoYkWV&FkL)Bo;%l*}`S`C3iZM2Zg<<|uH*g0o2d@~JL z8XN*ZeCB9k5vBki3ZFMSLGP87tK#VeW)l9K8DB4ji&tk8Nw_R21HkpzeOEUyWR>@b z{>3TuD!79(!M)8U>KmM%GX$K5pr2UZnK!XGl|BPB(3R35i~5Di+?~BY_ZQzZW47HQ z(JS*z1dD~Ii0@UGD)RoFnooc&d@-Gz5@-*m?uF1^$C>C9cw{#~db+A!lS+4E#`Rk^;|zIb^Qla#AhPDdqZAp8#Z2b z;8cSFmBp3WRI>7gUvlhDE43_rVM~OyUqa9IRE6yl^Z6=1aA&K7g7iGWPQy%IaEhEI zs-3WePkmd^(CN{gk~rIB@Agebx*@7#2W#Q`_>-b|(XqzAsvy+@w)GEsIXT0ea5;myeGGzb3G*}ZfG#_9MH3i3;k6ad$&<@G3@?>(V3vPat>#=A1feVW8tVX zi^#17*@^jTA?P##jkPHtjpo9WTIFw&9QYAHZz+!|M)4K$Vm<10(-j$gm&gI5Wp|!{tY))`ZT9JP{+G;MXZtR@wxl&*9`_! z?AMifd1Y?R+Vbu-f}rB_8c|d|>PjD^N-`dCcIM`BehyXl`cl7;QO&$6#ylbx(}4J0 z>oO~TEIuCwB4~kA!g3xSb(;3^OHM4ETp`_`8j@*@na zYIop=&85@Z=n~g*f8)-LPWL7a$0+-t0TZ?;$Kd}|Lvqt-Attc+qQUn)BI8~w9<=SVPp%{`nk_YAdVuvb_*nJII6z9*V>TCfo3gU zkJARjKUF?ZmtUQm+kEm4Ta3~w#f3hb!$(rDl?NFpXx+W*F?duY^nyw!q9^m6_(y(t zoRKyxImbg8Ie6s${uU#uxdHLg2~ZrIp4_}egVCH5>Q(#4cg~|R;Y{%j_NHKH8|U7J^kAvsDGc=6Np+fyaK3_cm}{A-Xwov?nhP%F;%+ggW=`M<&D_k4R)ib-YB?h0pW|Cz7gT z-{e!(0UC1cY_wfb44hGp-gtkEC4R z8o$fJ!%$+Zx zk#7dR3H~YcUXadFV>hU}CGLrK+$sGc-aaZ|a`86VF4KP|K}#rT&#er|AC;#FFG6FP z;RguxBr8^sM6Dvx<(&Ssv9b*i8}-5s9aQB16E^ERfq*6jN-VwB2pd*irFv3WRUoGh zr1+`q3q2%nrS9XiSpT3GIE8yB=4l#bKYg~=wP~oiyLJohBWF~C>#w7dNL4;qcXT$FHD?QLqydinBI~$7%E+8vLvvZ|ZO(jQNX5@E-IX=?-4Yvq3LecBI=!UDOOA%N22R^Fu z^bV_u7ROqz**O7(qx^{QN@RA3KXYX!X$o-&s_H{E`)Zn#~XU!0IasJ4YM1{id);{OAvFOd{i3 z-+t&0&t4=wVIJ$fcnvC~rmJz7WjS zD|XseT-l1K9ogv=A}$qlJhFUp4qKPsW(=utc3u5b{9huixV5#e(%$-W|81+CzD#d{ zXVvT1OIK=1ve*v#fvAE0M#4dGoZG_%NLG;vD27`IE5X-$jfGY5(X1aT=?SlVbdz>p zLYf%5+-W=SWpkFFj^Yc+^#SOz4lq|QHG|b^thkf6vIWhFAJ3x9K+H{an+$yWBc-iH zjN|@I%$X4EO`5dEY4B-(H(WCR$!tf?SR~!YDQ)nhD$|H5Xr&FXeMc={FHkFEbFPFYA59P?uNi}T`Yvtheg!K<7ju$&afQ?jhBof#LTrgG z!V^LLP4Lj1= zdFbSklv^mUudk|Ja7-SEzMuiC%GoMiPaXe1BYMM1nlx?}Y8*;N5**K9GB_z_Yo6J0 zRBc~oLp|!7$c+C4O_w%+o#@Y@No>M#gPhuJ0xY!BX3*L?0c^_d^Q2ZNa*z94lTg^~ zd9?_$;W5@sr@=Hdg&C}t#uu4H=7#pzgs(QGB9 zlF;6Q&YYdcx07ypS#HcHp1U!UaOB~jDW0l>FblUt=7l$P8W_L#39XK0EI;*4(SVoL z;WZPyW*g1mAk1mVzu>z!3TK<`zV9f3+*8iwrY3`Y=X4BXnvS^A-~={EBHRV*C9@y3WgY1+{3LkN`=tkWkSG%vQfD+t zgT&y~pY~gIc&fJ3-4mu}*iclQ!FYdxq=b*0K=ejA;{1>(86BUwM9#8kL2LndSwqM0 zBjCCj4&xw*$WpPdZ~Eg!79^ZtK7xe7m0fceQ5^Ul%I(MTcz|-+-lF&vg0-0VizV+dx8WK zFvLtk6avN*p(4#`m3$-`)-TS=zEaV138h)o7N=toT7zuQ?R^;SRb;~FiOxyjHuWd9 z42jG+g^(DbDm>V$35hV%JGUAu6w~a4tM#*4zlCbXq`vZK3Nkz&RHSV<#f`0o5yZE! zPV?%-mwcBg0eBqxxqij#zWHBx#3INf1x=zA)Eq`C?2i46MJMo18Q%L9;Ts(pQ~$K| z)@DfAbogV*&>FH8P{%dWNvuZJ$+f1bdJ}^Se8)mKS|Vut0MH}{>ESQP&tngjA4J9* zu+buqM2_qk_c(pJv4419`ZJr~SOFQK{oIrZN^M^`vwXxRxKi$1HBV~_lNyN_0I0L~k7?Er9CIP>R<5Ugq z2J%W^)JSl-eCc=gh-`Q+fMl%US~t`j!9LaD&znXtA_hkdG@JaaqqN0WyF=%!MekXv zv;h8y@$Fe7@1!Z4XoIx=E+jx=!a7m*({&|s+olZ2HvseEONN+&&iu(OHc0{h5}|}~ z=}H`eb>)?8_*|5zv7{d_N&*WsrzJ&TgENm}i)`mB^X({;^*>1L8jC3k>F8%6nr(A9 zv#Oj4Cy8eL(g|Ea9a^>Aw3Z~4LrUTr`}LE-_NZ@3P{#;g*agYL(dx=qt}_Ra_t)u^ z-F)y|rpY8RS+%5`HHmZgMSeE735WIEdVb4iFd!coD7VM|OGJV*fULSTJ1_^Keml|R zOn_F`g zTz^*5Jo^>>32#zG?SBOdBq)Il@ucXD{VV^(?=q7ysx`f!cTOP=r1}(dZHY35@#O*R zXLxo#fuR@i_^rv67j#s3+HA|JQJpkx8&bFFxX0t3T5I*+mY_1pgpbUWV$*yyRy` zIYafH^p5GCR>a(y5~T@>F^PBBC9tvv(zJn+SLpf}q)PVpy4S3aB~U&~hL$PYOz7OC zUq~N`aOR>~YD`nMD~qx@olD7U?58o>AiUOQcOe~+5q5^`warRn5O8xSV{&Ml!YCnp z?j%iU*q@=(>vF(5-HqEENG@Sg*kl@1*Wt9Q#Ky#|mG1yXYznIF(l!;4M|VSpKq+Am z+CMbtC9hQS)+POo+4-L}h>J#iuSN%_&JJ_SF?yGQO3%W8YYC-#!&qc9Xqc)roxP^> zoAPQ@*u^uO{$grgI}^7A!{$&(Xl{L30k#CBzIj#OmeNe|+U{J)TH_G0#k}MF#l!^p zEJ2Bi?)jAu>$ZaKS(Gf@s=}3JSA;J9{3p|{gi3dI)Mx`DH_6yLiaz*ASG^7Ml_ZUp zs(GcGZb`17mRVE6y!p53zpn?A(tBHN+`&3MG9qyQELl5tJ_?+e>kYcgdKpWfj^`Nf zHf$*n-W(x!+Qfo#mgs)kHh86Q(igT1R=1onoXzl%{#E4n%l!fKG;@BtJheaUqNbvtaa}z;@*}`?n%U)o^PSv1j`MJCvM`9S5)$5A{UAfK?V{w*Fi*p{ zWUE%AF|n&AU7Xp>@OOWd9hkp2YK3NQ*NbxrZRZ&|k0X}Difrd*voNT>f~3Hiv`!2E z>bSRMNc&5?gUya_ck`mREE|{Kin#Qob|JJzq#wTZePOxM8w1S<)iR5~7`9V=)N33g zc_M0T^d!V&*^=Gf{{wUKtF>`>C~@f>Ru%X%rbv&`Rlw8rkMxC4XeD(g6e=Ra3^r$= zLD{BX&HuPoT5*wib zSehMm)DGe-tEYI?;6a*x2H_3rBTz73KSwZ^eVi7Z;5yyS`L55Ty473*NTg*8MAuy2 zWb;RAmJ{5;SA#3)D|-hjeAVg2w6P36Hva`O>r8s@sWr+?`VjNRXn*-qv$xw=&jJfj zJ9iA(mLEJJNG|FX7~t-(SF`^)fb!tYB+0qt`=dr$$u+&2 zs|}|D6K8+?jKy)O621JA%izAxn(xblwZZtgpgmVm)j;9DYxO%j+s91$&cUvW{SvnSJX=9xn7LI;FV8nWpPDwUOX) z9FiZ^yCz$Ep5n}areQnn^^SUe93Q$vfbZqnjTIOdg6bCe@Sj;Ligy8P`~-p5BdKWf zPiflUMEYA2e`fdFnQ>2fDsSZWk8Qvm6Zq+^-n9sP&a|spno$Bi>?*Xp5ck9yHl#YL6wyvg>@GL5hI55F(PW5+$zEBwD57uRJiY1@cMv-j5@PGdcgF5DrubKld zG+>l-dh$4mUwJ=_6azqY7@vJ){l#%y*mC6x7s?B&)5M)rUL~);VI52ws ztkgq4mJAo~)7@A}ffQb-+j5?Q<-Mm+ho*0f+Gz(#0xnlFUr0NwcS_ zEr^G8r)O+2w{D-Y(8cc>M-a=h2Dsr2bu+YnuCZ55am5)w{R8cLi`>9Y8N4x1Gy~nW zAY+WDQf#J^{kG8KEXa#N6JN6dHR1R|KBOhxRx#yVxUNlp@~zXg-tD`2gB`eMSVJyu zR0|tm-KFc4>mZPw%MgNL5!pA-@sV6HYgtSU1PcxisVK64iT_1{E%3S`Vfp~(d8{f| z^)`+dh=L?m!#)u)9a6dY@$VHLhDe?j7u4Vq)S)W4G4WFaV)$_gl+i!hs15d+osB2l z7N<&(9L1>jF-18XwVn0ouwb>Vy)^og$&aGF_|%*f`Xunv(5WN$F!fwkn~dU)d;&=DSG7QVH-*z+Mrh4u!vWwYIvC<>?HC&=10iGBIG2ZlNU6O`$A_kw zvV^8c%)8MfH#>$B5pS>f>5MG2(L-spuZ#)1qeS4ZjMQKdBkdb*{DGj~uKZA;kz+bxg9uHbx!X5%^a*nHp#&WkdM0 zt%01`#%mwcfPGuTiVuVue>n6Jm>P3{Xce{798i2`i00o1O3I}mq0V3M*dy_t0|(Y| z4!a*lMLNwD;&3aGKr&Mu@X|7yu?iRn|CYC^#8*6qde|~2n#8xSob4)@4P!B^UbCO0 zAU<5*jE*zg=*?z=Vex=A{cGt zrlB`$uNu&nRyV(9t2*XX3>>OJ3D{1HHWV=3&To2F(B@~KSC`63j39jWmo=h+dOiN) zY6*SIt6|?*}-lH_u6L1Z@i6sx=PKQcom(J!*);^z zR%Zod@VIUcA^5h7is;qq*`Mq!@eT)Shs-+#m4r>>OhBhNQ>PMM+o8DONh{K=rN0zW zARp{DkAk*&>$qmJ?O->f$c+!Nc~=USo7HrP3xTxVoDa2b84*Hdy>Wj51ya* zjlxB#;n(~gW@sq!NTdJI==6NxIE6Wc!qjUShMFjmpcp1|v2kW#Zh7xA#*mQZMown? z_+}o|Vt}JgCvycLN_1?L6DO(UXM4~f4%}<9BN92M1q$o&lP$hM(KbI*EcU)KhVZUa`Is7W%nd(SQ1=SAW@9o>Pa;@0a++<5h%=Pcg?i2_Wl zuQ{BEV&kr>1Y{I3e1zN>cW{f3zt;8Jk4|;f*zuJ^@=<9Ej}G zDpN_5Ojl9fMtieG)UhqtpCjLgTSUh0BpnrXuNcQ!Vm$Pu#G$VD0={t9<-kDlGaGXB zkVR_h1mFJq@gyPV??sp1JmvV=M(|}a1mWlA$I#@CqWr@fJ0*vjGk%0a=0i6~Q(2qE zFVRm63Tn&DEzl>!Hfa08yl8rY3D8&scluLvE2N!GN*xOLX)K(7!;@N6cX$~vu9vC!J1$n-$kXDOiTZ32hubF1tg)D z$_W%B4Ek5(DwG4mt-@l1WaL)xoqNVsV{>C5yIQ4EyivuN zz>}*>=3lY-Nh>%Rii>&13)hwDTXG11)k^CH+_wQ0a!KaX$q+Dj0x$m=C+KpO46E6iVl3R)} zrTILoyPmGsq;2(kZkRR96E*)_Yhyay_n0xd_zb&-Z}CAQ1=P5|rxV`Tbp>{Tp?aSd zPWLt(?FseIJ~|eWq(D3$*6M1i{OI5Om5dc{q|Fm<8=0fft}iqdBuII1S!-tATe|bz zwraAx=29I!-3W%~p^J8gWe4gi+b~J`8rF(LhtVe4%?2P66 zccKg`!~*9N)WEb5z*FJmRd>#bA;ptpibjwf@vLz`Kg;q5j2pa&zmH&KH zw1|McOzvZf44#_zGJo64M2MGOr=jgdTaHp9>4_<%s zHjZHqlX7Xkdw?UjcYG^Q|0l}@B)H{bkT<>Ki;KFFO3p1EdP~+fE|s#ya|#5?t~k^# zC7ue)JDtO8l|$WQEi1DC$}t)kdO=*cGjZ0)Li8?>M~={d30x)V8q1iUb4n|LW7tcf zMM@swFLJ_**WlYKX1S zhrt6ywsE(LhZbC`ML@@I{C%+P$^dx3U}G$!a>=>1TPY;EZJK|2ZpLYq3 zozcUuy_4AArq)-KP^Z;ZVlI{W{`idlikjN{e5O6k4Hhga_9IO1>X47)#pX0xU8boS zRfaV^iqns-io^#eg$7XCuIIOElaL%E?+GkSGI{8>{_HV0$qxH#ABUh_gH70I`|z>m z!5xM^@J)36@ zn8(ru6XDV_Vg)mAdcgCN2`Xx5sA3^ zf~Zop4%@WkMN`QC!>56!0=}bZ1nlsPoQP57Dd?qX69b(=ss|SQ##rZYgEF zrH{POvbFYmCk#+$tzL>Hqmf!&AVxu?CW?d zDMJ_V#Z{{;PNIrL5pQ<1ykB7Wbl8*|02rm{@MWV9?*yH;USRGeO^v$E6**dRG!eD9 z;lM=PKxd2SB(Td2PaW=4dI*VfR=D1w$#EVsJ^O&5u3e*n z`}izo^0w$|X^@oYuTgCoI)G7btiFMOkRgVDOVZ;!MsMGp{d{uhPAGE9WoV4=^h39O zi^ww09nt5Tkdrs)>+&xm`Iys|m*nL{%5W^PF%iotnN8n$j)*0g@+No+blCAM5jsta z`U)quOgI3QfV4VW5@gE;QP5&m!cjCuSe2xGS3TD=M4!JF3|Bd0^6ahCs^8ZF;db27 z*u(KQsK!)SN_Sp+)RI1Ow$$37me=qPnSQ`_fx&)9rxh*~1 zU0v9Dij3qmf3Rz($_MGyuAZYhG}~AtSFf!H;HD1qGcwX?@eSaAW6O7zCo(>4&!8O+ ze2E|3yVfz-^--pF3?mvDuVLLvUaHM@p?SHqN8{V>IIqGs3W(3@9H+hg5XP2cgsL*BcRBD1*@lHbcDIgqZYe5MBs4!YdV@lP zhH=O-#|dhX5XXJn7PwLSk9So4-UhGizcXtKw~~cl5Ip`AVcKD&{Wtm7Y9>rk<`X>V zI9Y`$sAJ=DOXZ!OUF$Bn`ph5>JGs6k8s;TmyZ=2s3CtQpUS)q_&SW_~%(e_*wCUxc zgR*KZ=f|PNhu2jCzpdU!{Vq*tkVUK+0_YL&5%X~-b_{`2@3u;f?-%<2JLHok{YS4d z2ILDr|FvAB9p;V(acEQz{fe+|8Dw{l3MugIvl@ek!$-?z8R*JS`%W0n-q)%Q5lKh0 zQ~ccdGPX=S@|b34fFHTm8Y;vJ7=&USs1~trG6CuM_3i6K;NzE{OegZmpU@E?g#kh% zZjR9xU#3<(Xe%`;9;Pmos$N&Tkqz*9A}oH&UDfM52P?b|sW znFz%SIW1rgffI~rvyr2wv`NkoVp5v9%1zBB*y20R9|c0CQ6 zuex(+HpYLQ4Es{voC6Hq$%bfABeGSQ)hl2Vd<-@Ms|>J0l(vDq7PgG;JY2N^XGlSK zqMP)AG6``I2c=}3ZI!Koeu`s@@?n+3-GEu&ToqJ$ByZA|O53sk(T7J)PIsNsH--l; zZk`%y;0j(XJ~kXwqtEF+NRxDpxpaTCJcM>fX|~jnWy-pY3PuE&&Qi2hk9I>w07F2$ zztS*h-xB|Q*nS!G_s|VMaP{-|d4FSVPK05;J1ClXyz!9)^fm~HJ*?AmEkNanqh1`UJx9#dAtV_atW3zA zn3)S)xOHxvEl8-a;v5+|&|#TlFnNP*Wym|)k8f@TQwEvJr!&!HK^%sJK)z~pb}~SV z1LOGX8r8J7T_p-45i+y|Zk|B`EESi@>MsmqwnzVV-r651cZN|=3oDS%y10WfJ22Zf zwN6Woyb(}!E%b@Zo6!l~yL3IYP@~(5$!m0FCm9^IjIT~M>~gITmSx8iAPm&_AyEV{ zo0og)x0x+%%{%+%bj^6p{`=2{o?7G)_9Sp)^c<#ml_F3*a>#4Yh_Z}DRA@KxhJ`OQ zp(fk8p5X3F&;LI2I{OT>&BWl>$h4ho!MF)+-`U6qLK?b2ZN^d@_m$Ld+GJ8EpB4`L zVuO9lGA_t9^J6tYPo<~Yt2itIt%&fQ3e!Kk zX0XrYPBrlF+G&wOY~v&~Quv&J9lliovrlgm5~sT#0k0-Vp`mL~wD9n5KBumCF^iJf zP9&;c@@l{0OSU&c5>E(?2mS2hnZAx_*j6oR5$0Cnb?6s2#2eRyI;uu3tPIS?hQPe znNrX~&K9BOLM^cA{&knGwp>)908+4W>a?RVeQ!{_GMl}Ncrc0OmnyO3H($KSakg_x z1`Gge(5GK^BEPj0a8qg>@LPacnA?Cto#Lfu;~Z;uZ;?|^CidMkANEgi1JQ+`jw1#_ zYr-HbIX(yBYVEa)gJRF{`jU^Hjl{ko=K`o zA9An{YbyKW)u*#)9fguQeF=!C6G?CBihm9UypuW_bH46^8r&M9W%Rp3{SE`~q;Cts zyO*$s$E12B+II~0GRBRIK2jsXYQp<(&v`{O5&!n2_D}+tJY^+VxuP1pehJ;OIy0a* zlaq)CINP8%abEQt6BaCae@I9sVe-yDHWSd=Dej@qD#YBZh zhm8D)7c*;V4QG0UCbqm}9zrwmwcy?+$T+61Y%~zF3ux!o)6Ue@mq2ge3!@TsQWTa6 znx%>5{b$(ofWgpGPbG6MtaLmxqu67Ryyq0tmBps*?U{H+OGf7|)72gdJVNgr6L!pL z>UMr17pcwXAI{7t7C(uKYXR62Yfs0Ygx=P?VNMkD;ul!@Ozt5FWI;6_k{QMewCaNu zpNDcC_R5fSvgc~|^Vy1-_g4|5P#G8=emdId=Hb_=U%4iP>x4I!5GpQIZtdg_dmeSH z#Y~;Iy%9qFa%B0F#!ueJ($jK`Wbj1a^~-5{;grAhq711$;*==y_$5;s3)UBTY=1)v zUCYUqh6LxE1zgfp?6=V0Pz$k~A$&<{ zOD530mTXjv6g3I_D)ifV`bVi)*VfEQPK~s{fK|PSEU=INvUAi2=`~Wv^NJXv#Tu(m zz;0KUyrT~TFMWOs=tjxt09G(?%*mxdv=gw%sbGR_T&TNnPcUc$5!0Zgp$!SG!R{3# zaOiMxN9tjO{x!P4I2q}|ngMxYUqSpD^Eh^-4-UG#yIjULNGwhR`wkWYDs{@PJ^-xA}2;$e`dy7gA^4p|I{aVyqXqkQ!T_XXK=RTYk`v7ZkJF{P)Q zgpLS&e-xVShE>xCHp57-t41hbc@EDEGW{TP|Iv%FmO1u5OH0OP_^&1XVG)}wy% zUt3@mZPAvCYj8zNNf5Jp_$57bj*Io@b^!B-TjaIrT0I3_)<~4m1PUS3xs1#nX;S;z zW7NlMpGd=J3b9!}8y;k3jCg4mIJj)REx1#PB42GI=GJC#Zc_+pVH~Oh37D>C4cc+Z ztS_3xYpAmUdgqcbz#xP>R<&<^0CNQbhYIw+p|U|~D*spp2xAKrHmf8wV?%(4nc`7b zQN2?FIzF64cFkMIU5AfXBb`0=TAPOF8GpszIEm z5bsy5gKAqu4D_aM>vvKNWiw-lYw4dc%VS?SAI1+0C(*qkgbXD?!b0f@@l(-fU9BO& z2n~{8rGZUyMpvIAnKHUtlDPl3GB82jp;3%cOxZ6ycmA6y{q&JBIpWRBp{>@_7Cs3> z29|bM^La%WTw*rTv#69Tj(tO1z_}u6$n)9QBjidwqL6Sd!7(iNy;W-0^Yz0@k@;$C z{0Jp9z3W^X0C7?c*9}D7&_GAH{bB)lLHLez`})S;4*uJyCl4_91>fK5$xgcdUsVQu zm-;21gKxzWG>n_m148(B+wCPW<{OLc#hv5!K_tIhif3JF=57zLnd;D2&u&G!Lu}v| zSP!n;s!LlBCq7pWp~Vo5E?rVOpb3yWT(oS`NOYavz|F9>CVVsDcA1=%6mmwB>*EII<+5 z?wVwk1l;FD*uj2YRicbZhJK)`>So6~hJ|4B%lftr$XUX@NhRI7pJW^aZalA*`wHU% zjFM`zxQL1XtyWW;ot_=f@ug==&e+(cM=n&x%(mZp=pP1iL4jwO({F;zT2X*Ju~_E- zgHT98M>76ub&9UGxd_V-;Ze^@jX2M^*12J6U{y*q4E>jCxOit8dB7I3A`l=CLEevL#b(LQ9bhMZeZ11B=L;kM z;p5D|wf{2!YyXrpugNlj3B{1uXm}nr>#)SCsueBh)83R(eQT~GF1=7i)R|N2jxpLl zfQw_1`oD?UEul)G&?KQ=M7d`+nYghZYE8sMX?g6GH(}^kN)+FbM69iIAl6@z0XV2x zEpq{nGp3+AC7oC7oYmIJd|uuL5P<0fu_A{K811Kdi|Gy-$C$(`WJW-2re^=+6=*lIrRc$c$nF^84gTLgLx- zxA=tPoBjQiYm7o;RABXGr3ti=Rix!6nq0AcBx*mR{tP_SGz7J=m{J8aIO12kgDC}=|>T0FcQc3^7U-iSNo5XrWuJ3=RM4dO7d@YD6 zirk)1`@I0rWaMw=d0F|!;Jsn`6=6zH8l(R2ak#TqR2stYZQ?yGzf(tpG5^~khMgv9 zNzZ=fkmes1QfU`@U)w5w1Xxi6jViX$6-#;U=2YaW?9K%6tZz8*eCn47QK$UT68~a5 z>;!rn-+@6D>_=GpO5g|}a@X5Ijuc1HR3?-nbDu#g_e90%(=eZANdZ*IBf_Fm0{cy4 z6z-{A^J#eW@J|O{%sP{!jfd`Z(O%Y1jp{1ag_^tR{(!oE;A;PZN1Zuw88rU zB@EqmWrzjLKNNONBAFy^@>&XeQ`1mtK$P!_df@P6 z%u62O`jASYI+=1r)KLt&4B`fNEoU+nFDV1`f|G(F`a4%rgWFp>skVD+7$c{oz-8J9 zUk2-Asv?cWh1L}tY*`lD?lW18d1is^GD@DIWrUJXR$e70T8o_l4lsC@4$F)*snFL%<{Z%)6I4e`N zSY@GZ_ipK;iI~RGNRRDdIy`rrygD+QKsseBk=Nny;RR;mdKHICWDwLv7UsOmw|JV5 z-R%d&sze^oPnKJw*wNjAnK=mko-;m20%&=T-o2D;h0#TY+Db55%eaek>O`)B4&jI2 z<28z6 zyAZ3`;owms9K~U2mYfpaXb+Krq(*Wd@{uK9?nJjPS8-xqKhsA%Xub0y$zp9yR``v} zOQs-U-v?cLz{Z+7gO~GuSd}ZOPn$ZcG@&Tr1urGB2Z+Hz9Gkj;iO_!h-KjFg-o}lr z31}o$@0^0a59m%?Pk0*;0~YbNyG5D69)Qw8zMZgFs5Et{FCeA+6qb9zU#{4HHH0vD zW~K|JO^k-qeD`vdu&UQB{d?~W|9N~Y2#%HKiDonJj-h zwILlQX(`ul(?GTe1DH5cp%Q4#a_kZ_aLDlvSH4()5@F$U$lS!s% z$zUDwT!%sB3|($zGs4rMPWa&QU@ZU!S)g zxSO}seM(^Q$au(7`v&N)=(tCX5l<8}RFI#PEA{PiS^*~^PN@9r^Uk-Nz|c{U$nI?^ zSpMjSbPWMPh=H;*Uql-hgOdjVOsz42;~~$R=!ZGU1>)a~kBlzKQb9lFJ=Co*sbZ9J zTJV6$L$T{(Xz2z! zaME>iGwTOwy@n$Cy}rm+Mk`~)tkM(5LIT#WdP3S4Ms-}tw`DLf-lG@4n3yB@AOnL; zKbE)i;{!5~pn5EX`+73x3d$m{wh4BYk}%;o@mO_rV*9vr!Km!_G3diQCl)jIbVL{A zGy=rK%87ZW;DMk-p%?w-YAFu4efyW!oN*sWFe^tZQjBl@m?~oqgu?K}7SYU!Vtkk_ zuZR%!&*m*m+RQ5|`S5x6{+y;Azk|AAsuN8b-eqXM|Zuj0E_qf+7E-$ zS5HGyoFt6*t8EFGMRgxbv%vU|lyARtOcPE;J@BqH#eS@}^ik3H)u#>RTDi{FxDGnp zu#&W)V<_FTX?qoQVm(2{PRGRJ$HZT}_n$Jp+MW7f>MB};hs#BDt@Ri2dT$o6^cRD! z=5*}N_v6$1{Y!`7tQNKXqw|5r8DNAxupkzET<#JJ0mWl0-Lz=B9>r*8GR*_5TgwYh z_jzI}5M1bLuxY&)rqlf$d1;h#?2891XfmMLQi|5USf<870678bO zQvEOX>xF3$5WkmKPPK66?+W9^2~t2y>9u7;AbQCXlOW?C&PGNM$*2c8_D{NvWzD`>ma#Mea2Po zaRqjcEt<>m3AdF93DHn|X+sSe2hRsW;eQgufqnuzX2t0`t-1KArMthZQ3$bG^;VTu zNY+QE_j{=;Tq_sMBs2QFefQuMohOENm$yZu(*uCxfHZPisLfxGpA(M#{afz6#8~C? zcb`Aw^tx=)DOXw%s(Zc2vmOVHB>84rNJQ)@7EGE)pC2*TRV$ggs zF-msXGJ~HPj-7Wf3mdT(20;hd*siX4pQ{&njvf0bzMOitGumzwV>K}@Y^ZUgX>bbx zx8_7=q7T_bL*ld6X9yW+NQ?wooz3Q-I2Ci1D6jyzPvFWjF9s5zg3y_hyvPTE;u7CM zO2z0$b3gC47g4$t3okZ->I)_!Aj}vV9wzFLHr62{pP7;&ptcd?6w_qy^`TTdOddej zx}v;qgP8#tOZ>l&lQOMFK);4J_R~V4{5f#8CcIqhdDJT3V1dhp0f6ysp zi>mAed*uaTgpLfTk+k}`LP$iaOHQ6B>PM;R*`b>Ryxz!zf8_Z@ zj*A~*{-JmJC-fNgYC$gj!@5opaQgqndufSX>BLw56ZWdHtW(haMOs+u4V`Am zdk9*Wer_fX*=5QPxsF$WxJ9oP>WL|SPFlyxEg?8`xHj)kIm*X4YG(q}l*CYmNPH~! zW?HKzPDVP;CbVo$LHKejmYDhY$XqiTk%Tdf+<<87Z^JVGWWSttBL&wzyh= zhF}1V+7iVo{lN9SYJ{Y0*Ek`p*iq`QL)1((MRjD$K#+aCkM1c1mYkb`-lAsiMAxU@ zCG7cByCD~6LZ<#N>O?~k(c2kMi@Xi}HbpQ5k$>zds!&S-O#ueG{v!Of;DY8Jsbkq- zC&z{Uz^h2#Eqrh;6S}Po|E@)*I*nl7gV?X_i^A~*AKsL`-YzygK|Wa%onp|9uWoI2 zZ*yJ>(fN$_5hJO;R&{y7hwu5M3BmzZA6nNCVRNtvOg9{5t`NcIgIX+o@>ytvKZ3_m_2bOBWC-^|YDfe{FmUW5(3)m4*e zAbE<+sCBc$Z4Vp~+~86DYrK{HI#P&eCTb8$ZJ+_m)+-cEm$SL8iPFD$6gh_Jl>6HY zruJYKDWcdZEd(4@*1T$e=>NkC>zxA=`y++yDCQfWD8r!)13{y1j*e|#PUbvA@%g5@R34bdfK>w-X>XnM!bO5FCd{b)gSVN*z=uEfiWH( zG>xk{8iu4CN~#%K?B1P#W|J~aelPb~hfr-eK|lGTPu6GMoO8cGSRrs`1wu)*c;T^g zzGXbaQ(?+Dd}Yneb{Toxno;zZIUjD#DSv#-GC4ec`<&i5g+Fd2^hNHaK16aL`ED_P~_5(F4F|OEfk**(VztwBUXl0*-_2%h^b7v<6wao6Sgz4024q z$<_#O1H9#IK)(>Lm#OGB68{iBAuU3KlqA8t>(eHC)|y7i(9%G%TcEEnO&g)ahN5fT z&PrfQOork<0A@%SzU7>ay4Gn}4f{*~#b}QWbI$-*3n8DjHNiJ+I%W1@NLv3|D?>g1 zX*#-cxx|4D@0l3->6(Y`{mN=BpyJ26nL}nAY(Lr7T@%Y&;f*LvzkI8ms~rP_@b$Yo zu>K?dh05*CW+WS*j8h335Vs2yT@evpQRs@Sp7jH7Xa8dj`${8yQB_`b!H*z*PTRs^ zT}z7c&RLkM4+F0>{M6RHu^iw#ZKA}{e4sic{7<2q0yR*wsncBftCK2y2E2LWXpPF$ z=@|SzDnYw|>{vAjXsJb(K)D0iPX(r%w(yyxzM3?+JXeb#9Q?E}<+G|gkV#U@x_Ie_ zfDYfxP8lRMLd;8jB^PmGx(NZfn>`BY;Nc?^SKS*snH8>H)tipDc+vx&Mz@p)mtqdr z1%?-ZRd~sn_>vbFTx+QH?vt|-Cr^mjf@SYWU%DB;dUHg*#$q6(Ox~D=RGiLXfa`UM z^Kt&y$5#&3IL?>6kRdb`V|(yT-lDxxeYg%FuC5Zg_V~1^(lz0$oY~g;Wu0LJe3O)U zr-Nonn(&lwi;Q=Ai5sUNBZg3nWsxEr?J621nL7BYmE|in$hu+`f9}7Z;}<|&xmfn< zh6@rE;Q7ZLZ%qSC-4jpPI56t!H`hHVqSl4Y2_}CTcLC=5MZ>#p-u@C!8v_rxYZ#&j z!q8RTTHV|vf8(#QK3hk$*Mwh>?*3}yHKd<>kB$DZ} zJYvKHs#edlT)V}B(|%So85l8Stcm1{5%O2;OAw*CU5Ozm2jFC2b;u22{?H&>KW|cw z?pkD9cgk^Y{}2vF?{gY?3DJF5x>PPJE-Lk{W#Pen8S!G;8gZt5q z+Hdd*<_^Gr-&WZ(C6bKkqR72ZHS-=1qK=!lMNzvdi1NR^MJfG2w_O<5#7co`nqY*$ zZ=Ev4UE~|>QhU0|bS%x}4bmNnu{lA4e@abS5XW=47I(pB;KV~HLBU&IzqNk37f7tt z$CV64RIm8J#Rh~ipg$YQ_?Mll3N#Eh5!RxR2fbJO<@cthJgzxI5Q^(BD$O69GIZ+4 zsmv>v_I7|UOp*&5rA%8YN`bO~DLe0BTlIJ^PeF>oN_05*h6+89uIdrSRX;^47QEV& zd9v>m+T-%(Jlr6Y7hrl@q_y^qFE}n~korI^;1ym!7}Gsuu7h~UbVpQEO36_tzCdykmxJzgPYI9UG9=Jvh?d!+lt_wEIarVqanhji5yRVz=p?Th`=0 z`q5(zeG}zmpV+AaQoxU831dT0bV!LvVcMA0_%N>Nk*|w^(Gb@zAPj1Y2A+Q6L~9xx z``joV+*hpDWXn2;aR0`_jdC@IH6q-_FA~;y`FG+O1JLy&$BgaWB~Ivm3W&{Pu&=0* zV6SvF#-~0%LVw-@gxvfLQlT2NFL}^n&IeeELrxoxewq;ElQ<}?+MU&}%gGGGlYosq z#x`H}vN8>(o<=d>$dQ3QOW%|3wccAb#TO8qD5@5Qg)w5%AsWNp`GYL5bJf{uBa4if zW#fCLu7l}QPJ?e`O>=1Jn=qzbkLov(7S8d(B&PEaAqhmvqMj;vwedz^Fe>b})1Z7V&Dz+=y3kZ;f7qkj z&b!#0RfulVs=Wf=|=P4CV^R~b4~3(87wYO(nA4ng=)8>>Ri0zN;0Y3$nss0jmqU(mWc_k}yCe;JOgb8-pB!L4Ud4n&v07XKtQwyzFz z&c;829<}+`z)C(uG7Y^a7xHFJ*_y>bq=&;7Zxb_YO@M~$)wn}Y$#Ys~5(AfXwrOVZ zG24%W-F=Qh-L?nC))_BHlZ}WuP3tENz9z1Igt)8w(>}EqPp$zg8v-Z%f`&-Xhb~5l zhb>+q?3UoZo8m&!n(8m>DEuL~Ut5@6(kdR@m*LWhV!AMpxMsCg#<4+9wL$&kVQs0o zF044W^h1<3%4datK%@isEn=94-1Op)Hey&S&Re-w#{kT`fTnF>206f9QbHke<}Ma_ z(vql#V=EIwzhg2l@;}{6LZQ%{JaeU30%B#Ay|PBb=BUZPll=5D9G zo!{t!B0bCz*zfk-DYZ&F+MEag+oL$WaiG(YCAo6%z<;Sub>BYfTfv_U(~dNx&6i?Y z)IxmDHLExc5Uc)z?~~M@MH>-=!cmj0X<_Fb49AL7&So&sg z>;4@QDvYiQ}v7!nl6E-st$JR=y~x-B$?=+SFBjENDmpnr5fWvmX(CMQY&S#_L|YqnAsU%fIWq>cCZ~Y_+w1|@yPK#_#;{2Nxwer*S_bK_ zqw_P?h9}AG6OL-GO2P=_tCu*R-amtd6$cvFehz>`U;IzBM&k(H;PUUyOc<1K(XL(= zdpP+?ibi~QDPdh>*e#4x(a#Nxi!f?>#*0dap8dAW8b3|h zNb(`NTXU(Bu?#OiIgo|vc*GL+WpFP80kV^%5wiJD^4QetGRwrOs-Po31wic;x2-zr zV}7Eqq<-gdB>XrABta%2X9u zCDmJ?);CHaJbRS~oAA|0$(s<@%gsju=bTwEyX5&m?9yuV1NtSy?)l@x&t~@kcSSnX zXl7NblRMx(VG7e|2x_!<>Ve#SnFdJ5cVt@6gZ49KG|Q+%U_3UGYkr0sj#XeE6cLg` z4n;vPW8J*Xiwq+$09aH`#8ylp4MphkaGIV+Q8c^OVa(@PfoaluNz=0I` z##^xXW#o>^+C1n2&*4NEJLB85N)dv};{B^mX@{Q=;(xL@z_B(--vXqon>Ds$tJ`a3 zFY3TRoWp=+i7J_#(XL=B6^{;J-$}pVq?`!rn%P1veLW+b`oe2Wl|PMS^V6;2sDs1Y zNTXy=Y78v&+uJYzZx_8PULkCKqXFejykwe7AAAr>SAAk2^|JVULLQLA~n7pQ7->lNF< z*sN~(W4?9-kskN@n5`dVK&ENkStVjA7+IOO+?he%rP{^=v|d!Lm)y#d<_zd_o5fwwW=suffbJcbk9%LqC9GE16mT>2%1u(N-Ps#N^_c`;g*^*of}#D@ zsf5otpp~k!Rj}s-U>M&G3P0m1Lu)@mwRA2B4=bt)x!!&uRqD%wH9xpma9tR@P40!n zl4)NaJMce))eQ{K%(=O>P>P;Tj_#^_{n}|_dypCV+|kOxEUSu)CKh`O~C z^1X5^#0u{&+n2l?mI z5ZHjwUokH{=pdDQ-RUq9wKwnz;`w;MOc0zN$1cq{lKyhUXhUcZ@8?Hi?X~gKA^vSS zsWUCJ!lIf=^qloZL4FVaXi?2++B7mt587EjzMfaKH3AFI$95!bCA%DL2oJ-Z<~ImW zm~L;7yLCXC(dS{uG_*S<5U+D?Ut})c91~v*U_hFg6hBChkt6TAJJC1M{M{{WLOOKP4&}{MXMWk_ z#ZRM&<&5AGv-R;4%ChjMxIhJ{1t^#Sch5_O1nN5@{Xb>6$+WNnhlhKP3Kz?oA0~As zZ|bH;4quDee3`Nrk=qaD-+HO`J?o<;3q!uklxj}Z{e*U@Luk^IM2r9 zs%k)Q6__^B2L4Q|#!%JohyKqEIeq_i$5~IEt+w7#u~Q|mNq2{_q?sdu;RayJANP>X zcWx`Nreh<+O~y9dzE3CuVXon)F&@ZthN!b6UJTy7`04q z3X}E1F)b}p-eoR0ui?sCZC(?~Ir1t#BU0cR zY6g@YzIC1e6ZES%$1%!m2${s29o7rA9=zi9j7pnItb=cq_r+}MD69YL{FB-z#mFH@ zmP|3~^c6g)?VaR}1Tgb@AkSoa5Po9G>%Z|uVBfh^CI*X#GYed)Jls!Sj$H%7$~Q{o zj0^IBsm+Iwr}(qE6{xa} z6)0AZm5=rTRMoe@jv$I?Cmxp){51d2mbUoGjBz3o;!T1eO(>NNpU)F=K!O$A8+5JW z&pZTF-=^aZvl2wun@9f^@QTUb;7-T(`_lYUpB9Rz=`hKeMu)E0r5E8zSm-kypLHZ= zwETf}9l-5dPh?QuUKR7o0A1|9U*~hYtY$4|+W`wF#@M-rd0X{RgYQYwCfL+1>Xfu@N4f;-JG(N^6kf){|r;)^JUu8{WijiNDJ%8Uwy9+Ij|09 zOyMm}R1QO6r@IEgtBEq&*3hC5S)7;GU3vqYMA;Uh)AP{;&4USwb0qSgyUK&eI9uW< zm5HTCrQ2xf-|J3y1+{=I>pPW7aXWVI_UA$tKO!zrBIng%LAK;?7E|xru*El>#|ty~ zaP1WVi6^IZ=1`au!pzS9?E2Ry_V?LOV5k-_O!nAJWbBf}QG1;ykk_JER#L|w#UJeq z7cfJQ?TTeS>si_bE|g&lA~)O(qhLL{hkq_~(Ht>+ZX2-n?*DUSLd7a+PhbOs(~)~3 z;s1H?z4@vYV?Op7`$Y5cW#yjvnUNvZA7&kj9OR7D#yg0N1le>vj}c`M8;h?G?uj^Y zzO$i$k3TDypkyb`Md3V8_w~dm%<<6TTbT354Giwy!zG^6z^(LsfS_l@Aedo5SX$3v zle`W@0M;r(rYUz)rfavcHwkRY+$JDRg{v+a3a;516<%?%CZNQ+nUSsW4twecxZkri ziR;-uZ%Os-s|al^|K&1?F(>$SP29jc#ryC{(4d$$ z3+hL=9x06?{=*nj)+xb5wFI~|7R9X5xLL^hXy(?HeQ6MEPW^TWk3){bgY(jZ2gC41 z%QOkG?7}=C?na#~IV6v2d)~}t8$)aHZ))c!7|r5A*Mu}qkI%@tN+cD7{cb{Jqu!MK zM2-p^u%Oo3zs<-r?>rF%KscO{`VUDJr28`cx6fU9_K?w7uZviN0~_%Ez`-BNV;yat z$r_~amOmF$JNFj4DnK18{JHsz6cDp7zxQrL4(3rUMHe2q8v-%M)S2#2Bu6`)>cPeO zwn)lL_nPXv6!rCRIw(w+rBxqw+b>1S8YM7pPzLi*Wohm)*+?~$2<5Y|Tko*+Pnwjt zz4M4XCWDJ0iJ2YSFnkoN1K-p{{S{^H#jq~tbuXb8+iA}>ZFyNc7z}4t>Fya4jtvKT z_dzrM4EZOc3lngg4vygpVkDzBIHtfxBc>rB)UYnb7g!r5lOlFZ-@LzvWF6Mc1+|Lz zSBSyL{8M_26?GIAZ_ZPu)lz-xr8<(FABPxR%Lzxqbj-7J$i7p3#MIIK|4JrVf~5^4 zevwsG4qA^?+Pmn=;k&;(y6O-a!>@OCg_c*YTnqnm@nPyoA~}3dcvNM0?~cYG%{SAP zxte$1<>B#YsAj#;Ja*k>%gkTiZpmJ?!M3dFFocrTTxpnKI=R}Kc z48f(5qn+b~2?UR`kQB@}g5D}DLm8C<*rJdTgNJCFx`GiS6n$bPhi!^ws!+9VC3Bq5 zr>X@M$w-G>E)+-6;Nb03Pkv*6EUo_(b|=dCk!Sn5y|Itw{F9HrBa9UnRYpn*bF&qH za>_#3(yi1v1!LJhkwYG*6utmwzMQaI_WZusRGrpn&pQ}5XH#FK_up_cySGwtTT&9g zs(Xmf&EwJ5-FvL(kgffJcu$cftM)7nR*z%PWs^dFUkc$-p& zDflC7d1@027$Un+mIRIAX>6kbYD3Se&PU!uHfJ5lK_=zsZyP=K#hMg%h@G0YKY%wlv*RW z!meKf-LT|$VQ_s>3bI}igZ3?KGc^8pXZ*&^$K7yfgWiV=hy`J>zTL#x%7isE;!AZs z98VUrl*s16I_)tBOpt3&?0qsOGR?J@-o{Ct&F<{Au3dvb{@32w?NDRJ1c+yPT)Xay z?CFkMw=dLD7@<6l-Fu?1?Q(6B8Nh?LpHw4Pkj^D;(8ULAy^wx-Ci9=YC7&lN173nx`|WJ#D?@R8ag$ z&{4Ho1P@dRrqe=6g^8W5JRMtc*pIv^$Q7agOgFj3$h}rHxl70PF?m zlIM%eRX7~Ru6rgaJN>~}okIWXxRVQvz=qf&Q;FLxvH)Jnx7hx}7XdTR_5qxM`o@~n zRJ{*8y{6i2&!S0yXfSksfD4hhZrOj%D17sl4fi0tDk%)5NJPy9sJh7P2^0 zT6S`FJO*kCzqv;RWX_{EGp4ba$eF-GVQKCK4S=h))~uxwSwEKXV-O%lS7GkD3L%!I zNv7F0j1#9DV?)rcb}Oi)9DRY$>1%-V4wi;hwQJl7iF~$t>*r4qpy#YoaGSi#7vZPxGo5DGsCXz1qqZ5))it>UMjmfKj`&== z5y4km7A=vXc>U`cA^ZcFsbqJ+o*W}jRnS|v?uIhi-pS^UeMPB*knD$G6fA9PLLBhp`@X z6pLBsSZ?N-693R+%0vZkU!V}SgvamYM|-V&u@@=#z`)A#AnNu%x40eh8+jwlWi{E? zv2d(?t=daz9oj5tZBZi-jJt^I8|&NOv^2)V>P_yna?150AxKi@Xro0CvKT7`KZ>61 zn)G40u`GX^aFzgj!7lE9ZF*25REG^U9bdIg5!V}5ue=K~%$yiZjN~2P&oqQqDDkKd z4zTfRJXi;b0-d_>V4wdo1VCDIGtXVZw&d77?@Y%+77ruxt*Ac%BX$wkZs#BMb|`{2 zi6zz%%n@jc7*`@jWq$m_&D$@?pDf?ETOfPgQcfK^6y%~uc$Ag4ND-;;lh@=0b(Svu zM$~?^zuCzIxtMSoNHBRDfhZnkVdNgLW@(|ZZ*){C2oqAgP~LYW{GbWR?@_&d9JCAA z1xYDW?B`pkmyeZ$7+Xed{Xl5@F!S~n$mRhw6tb@R__Vdm57UFMOYChXIai1x-)F>o zd^WUEdeTDJ<6>o!rWEQA6lTlc*-Uftu1z`Xn7+Uf(&g$tWr0qC5$)!&9L_7{yoL}N z+5}ps#!R;qg$V|Xh7r$We1E+y-bWAz%0dawi#tP39mf9HN5s19FC+8o;?NF{-7YG{ zo)7r{+h4VHGqjqm5ezQmAb84iMjIvOpx~@+Et3sQTx-0EnxS0@cg;97`@KkwIjJNs zw_#;=Mt-!JDl*Ux<^X1MWf+cQv3#Tk0ALf#EgXE3Y2U>RHzQOjsY%ue0(`TXC)@98 zJOuE?CtT?phnd}M(jWvmF$slfr0;_XtU#P8t*$w*c;^K=lToBY2t+4@pb@8$xev{2 z7pqdA$dVOC)^0r7v;vc~XK)QO$K4;rG1XAow!XTQ+PSBu4TKv~iQG#-9u);sNp#TA z0piUYnx%F-i>D{_8ya~B&Ou1{9PN?6z7*5zLn#-(Ow(bGlDI)tQN&#xRGyvuLGFgJ z4Pn34UNoPbpUSNEU8Z|JhLkp_dU)EMQ@XW|x7zs$!y8D}Ga&m~1RNm#ic0p== z+^nTG2|aY-CU>)b;&T0FH=uzOPA2;Id8+h9-aEaYB0hX}M*$w~;;ZL^dHErB_%rrJ za@_72I=?qzUKN|>PU%iT&J(Sm8f6X~B-P`Sej?5SDsCF9%6_s+mlv<+IZs5r-bPd; z6L!E>Au8fom{ce9&ad7>MhX3A%S?k1-)=xhAgru{Gcz!X4zQR}#5j~f`ZJvb$vX%g z|7UNM+AX+Pqt>BkxGg@c$f}qZt-j`BjKxOY5157gzSqcUd6V|1>@|CXCwWyP3=DbT z*fXgHUG;wln+|+}faWH`PqmyKbO=*f?^CQwN%W)4588g9hg{qd$N*&h&%8Ln za@yq+(}0##eqlgGg6%%Zz;z2vSFt_)TL*??LhBZn7A$*#Twpl{0rKSW2~m*=J8a5a zD5=Rc0LcY48hu}~#DD~2Abp?f98el6#<<7BB#s|iJQ$fj@Kw^C`WUhOrec4>kc+Xo zk-=^`_cHhBtA^(bku6G6^`ONH@2xUjl=dZ;*3?s*iMkL4#&#+LL>24nqmcuI!#dYK zjJUT%v$$*}dag^-63dk18Wrn&sOG_2&}M7BzXuNq%g%7@iFK2G?L-DA{>&X;JsO_w z(wJLxgbLKKK}JVTSU>ne$)#Z z3@ktLF;#@&F}uL2Yd=g1U`^beMDGdBjt9-nX4cns8-^g^_{N)%% zHvp*b1zwV;6=`W95nUVt_9K|c)FVXk?}T0rh?W!0ZCbn|Ws8?Q5&ZqE(LiXnyXa)W zuvvt)avm`B_w496rl!=I!kLD*Mq!Do^-xEZ4s?0FoyOAnWQg7&0WKqj*+P3+E_WA2 zQ^mu!Rr|S|QAg!dyA5C{gr5O4@fvx7;C3-bS_lmLHDe+^FR*jca~Cj-vYPK9cXklc z%sJdpwvxh31zrS*Vctd}X3@ZdYx+`4kVehvmuK=Vr{pDFs& z0(qN9U`WAt3=~W?UU+;{sDX96v|mZ#@7F_s7$#61j6yG=o2#nSlO~D`E>Of*s*8KN zz3;ERo7S2P6c`VzB|@raAoKgt1Y0Sw_asQLq!E#V6p>!NGm`P+EOHwzk5wIdoI|22 zFoq(N{#2E|)U>C3Np5;n;J6{^xZrc;XTCTn`%A=xK)D@>1;xU_mU9y^kxN8a*+2U0 zYQa@*<>}mLdiLrHE{B-y7DEB??h0$$LawSl5TD zd3S#(L>SV|@W3n2waxZ;$dLgM+Ri#SKMk6)LE{L|{gCx{0YHChNtx6&3t zgO=$prgNIfQyayBTi{z*hqqD)zNoKTlBXF>sQvn+cGLz^Sb|xkISxFqUbbqRN!~xa za#VSn@zQ`gZk$_dsGosCZ3uNYR4xu50(9Lo!tkFKmp-|%ONu2rTt40xh!-}>Ed6DHFXa3mF#x~9MPk0=9YM#H)l%raixF#%Az+?vTC|PIGDY6@P2O5JVXMl#LA@p zA!(?KRKeQc^A`wh)30A>^dHyQ37SPL#lB|$j$R{I3+Jvc7%OoG0kJte?y%haz#lUQ zQMyzRrQErnW`cH|G5Y~gvhFXK3Mnxuutc+A0=db-QTlPyzgvs|4l~Ml0vz3D*s)Wp z<)(ITX3wG%V0pLCIyZ1`jQqD|5&W(9Q-!@%?-*aq?TgRGA!4sVARfm+xlD&rjyg+U+o?4fA;TRTFp>l{ zlpuzcDQ#rZGXxZo?@QLO7W7^`n(8GVop>xYO6vgfASkrZODvy~Ln&?<$7g0`rAWS! zlkmcld2Y?%p1pjjs=vv|Jq$6hQOhEq-Oq}DBZSq3wV{C>yNF{!jP-?GjZa7ZLRwmG z4NhGnIA$k-=a@2XNoT!c9LQT2KMZDggH7G97m48nO^gPpg#i|*GKHG5lHuf7+dGO4 z$A(*`=sQ55m`-mFUvMMsX@r&%2qx}v2)!`eGzD9nd`RhBI)@CYLx6ioeR**X-8Z_4 zKoJ-Ow2=Y$MWuUmm{<@#9FpZ4ZaU$_n4X_3=;k&?)I$(D!+f|MaRuy(s$&vEZ>pq3 zCk+z+Lz{PZt}ltb(}JJejL8iC@Vv3b@#cSD%5s{LM1rPc%$nib2@JaG$HH@5YpsPf zFE9+{3QLl>in=h1V|vp37p2v+5Hw9eukp;9D$)nR2|{9Ol%K@f6++er*DBw`uHZ_E zKev)3EY28Tx8?Jl_0Y;wkJ3Q5e3TOK#QTM{J{R}LGKLJ=7fe5tuUmPH>(Wtt_O(Ca zPDz=FXmxcM?~4|R1G2rerUQLf>R8h3#DXw%RV#R7I?V_#$4rlBZ`h6HWzP{cRn5Qx z)ILr-)l9)Rpea7yH>wg>z!t@}hHw9kvp(81DClcr>QXELzW6uYVT>a!DceGUk3UjW z4%h{112(iC|7VhR44b@H$=p0V#rOmpMcQAUh4c3pdJt1`j=6 ze`MZ0_UV*NDzop~B8n&Ymj3X+uRVDKHL;+sfGN!eUnzhivdaF$j#oZ#Wm9lIITVA# z2E;UHeCtuSpdJsO#Wkep(v_&3UQ&>K6yI_nmmbqiFI;uT=8oELp;%=Z&;KT9#+5kq z45M}$AA1SIgWv?#sSXY~W(k9k;s0L9vs3pArBMQ>_TIgg25PZtJR5+ERAPtFqy+c; zH%@H#-|syO30RTKX^G3|heOU@nM4PvMD_dG3iOpz_$|n=PsR4INzcsptrfi4b+F-~ z-`3@$fquc8Bt+ynj6?mWjs^Afs$kaI|7+5{;#O4_E{HN~cbV#d#81;3S(O7^6m z&^DT}uF0N`Xtck-$IkH+*{1r!VLY09c@mroYV4brFYI}iH4mMZwO|CB2R%~H>u|XG z5C{Nk{hXt7liJ)aKQV+>Z>RZW4UCES0(`LP%c&ur{_CwVc(5tEppQYZ0o-Im1|=|9d!hG2WcRO8Iv_ zhr(B7UqLXaHU>aYXKWeob;_0;n?QMtu-=10^A^J>5k!`te*c}LYPGWvwTw-UpQ1gq zS)WTxp8YY-r~y1M!6v>S4#`LE=z?(=7y*H~ecOC!+4fK2p-m1_dUDk^h`I=vLSwc> zNe!laqvaa;qp9}+`LW|Ro^I#kX_nJz zmcDC@&*I*gwZ`SC-Q~e5XqEh_%5ppnPDJV}ciyV{7sv?!tBgYUUKa2VMtbB-%*%mN za=#L7+R~~c0!VnqL?~`0Hu@?wZUlUzlMA~56qdaZ-J86zVz)-D4ePB@a#8Q(doH;% zeVU>l=1ZxvC^I5L20!5|OE--TGh)!zHU*%JvK|ijUXFGaZJ9<*7Z>u2Vru`ypAAV) z6_i?VcY2vEjVRrgoy2lo&e+-FcTaH~!KB3ooj#!Cc{Wk10*mqw1H!Y06Jb9n`=;oE z{`5g_XiFe&xLw9EaJ-j6?2%wF)q$2s?E>EV(lh&BLTs_9A%m1tYX33@7% zwemgoVy$@z-Yz9rCNY-gwLdf&Dr;t2QUP_0aXQ>U>S-;cCXWHkt|G03+)D6pGJ9;p zCGB$hP)BXLMvjW*lf}_DY>WsD5-~?PqS}UT%VR>m!#L0;aW;KHEc%Xbi^chHTQ-Gp zH>xihXDi7$wZ_xV)4~H1quCp8!^ux$}Noe*M)!GER)u6Y%fyN6B4kJgPJ97&!4Fc~Nl<07w&ivP4a@_ZTk&xh7s zAVfM4SfXd`4a1hVSJ#?%p=>&w3&jb1H7@=z-)>6B z{`qDFj6u+}TN&U<0iI;rQOtOE%f9iX@o5@(m|Opb*r<4HcK?5%r{t}cl(Oq8^_ zF19MP)f=v>9^yXUe^*KM$_cBr6V=uA<-RDezrf-HAW#O1l0#@mXRJDTkf0D3$ayZ5 zUevA3CpJocRSa#U?H@EnGH7H5YuZ>R2rUheqDC9^iQ_UV}YP#Ut+oUG$BC2ed&wXUM7gRaH~D ziEmHV&V*b+x9ZYhNYlCw1=5?_U%#b=X3XGI+mmJMpE1BNxEKG-Y7p~>-4I+=pR4Nw zBV}-YD3vx~l#DflF2fOn_;>;P?zGvBP*R4vEe1EDeC4Z00HejKVzZ|ni=fhBnuQdL zu4Ai})R`{@hlCGwIO*DWM~EXv{ft6$2Wk()&!8m#(ylhUMS9~`L+o-q^bBlE{h8ITsCiaHb} ztq7jA35~5lz6yp==bH`IH%vpn#t5)eY=G-l6J0@awb9 zn3yH0?2)BR22VLK|;UTcIn8#gae2VsHZunM;uSJDNi zEnB%(wV02fv8Ju~KIQxD-KQ)th0O&qlye1B4qYXwAyrLPU@Cy~@}V!IV|92(&9KGD zHK8rkYU)_@mn|e~>ws`AgGSE5`CqF<-33DEJz>a|}t6s3BPaA36{WI^0iVw_2?o_>CVdL%h1ey1b_ z35>w5bn;bijTw?F_{Giw6fTxLN#`&x`WMOF9&kyk8V=S`>^u>Td20Ugs6w z-lB?P+;T|rbd$Sbc>cuc)8Mj)VJd>uR{18F#m^UHww@LUBxwmI%7yrz#|EAD?T-_E z+=?Fq04Ddm4(3KY5DrH%VllXaLJIwbVQX>%~Ki)jqLhn`0Igy}e1T!;pDG zwn2{lnI5iwaJ?1J5+1j!8XHfoDGps!2TkWgQQ_W;$TnjpFno4)SO$~wC6*a;#&LxQ zoKY!N?Xr-D$g~9~g)J;kCoNS8PDG8ru+ep8nCreMc2P!#e>mcMKx_Otrb#ef4kb1K zhS@b-=SCLHUD#Xm3_2$!Y|_rki$Z5pwH?nc;)@2J8kg8T0mTVg-khye3(=4$f3l8>EDbw z|1r6@17d+*zgq;kw?;e}lWXLrq+P#G9_LS@LtrYD`724Y{~j5^DFxmykVzzFpDn`^ zXRN1^$1IpPx7do-309;KgYH4`ZE^J0<~g9jt}fA-5f8eu z6s+a$I$)u}>&|4k;5JAfKxRMCPnI|2E)qYF-APW{KNt@iWLC>8^4gLLPo)X_plt`Y!duC{bJlT>OyyD-OZUt#PC%C5i%^2kTX`jYn zP$SrDU?*PpYM_z>y5o?)R8+4p(-}=K(kjFA} z?rLM>$3;J)6sp;g@WWY#!$5^Cv0Yx7N{U&f^XxmNAeE`=u@_5IRy^PYzogvLo@ip# z*g95hap!np9i(@BBc1?IFpn_uTCxclW(O{I0*YvUIu)dJk51i~()=`T>PhJxcTCj01Th?|JX zzHVHEzm3U9%kq)*R1zu-dAc77ql<74!g&4m*B4&itT3!;rPs7lXwa7V&{VDoMzu>F zBs`sXG)FNtoIZAVgv z+F+P)^rPK^BzaNMI`D#h0pk!s*5nk_`Yer-6eKIqE?8d`EAbnG%NrCLNZR#*PjJWM z5`lyNpXFVgum0EPsYfdt%u)OHy$#d z6uN#JauoOMu_`g6F_`du;epk})$GIV-tz;zX~AVg&q6f8{B|>MHY*3NgB>)=MX?L-~Yg4?q^0aUdS~+V&}3Xi}Zz zCo{~!URj`2JC@$`IJ5n{@8uN$4yKK}P1z%T7p)hjm!e8?n2uGp{ac9eFqWE$$BLr& z`4Yh`hscVq(pkjAbIL*n`qs$b=YeS{6-v3aA5cWiXE*)b4)Gkv4#(Y&nzQcZ$0$(Q zfjy3_0$t;4fV!|Tw;HTb0P(o4Wa;!p~Ffh#)lHHyD zlLwu#h0}$GOGVm;Ea^9E*C|}4Z?6HHwen$H-BQxe_C^Gs>(-p{^ z3WAz&c%?61hh%B~x3#~Ro=*nMCB@G$Y_X|{@-_#*7= zsJ#hdxr@kZ&EU!5v)hdNWvq^kO7$Xrq+|Irjo(~}gVED$wOPuos4{}{+6y(v5T6PN zrL!LvD>_^DI%Hgbz7aY=mpMRnEU%Uu68CIkl)^rkYQ*OqL-#$*Qaas$H#?56D@G2A z;;xy}QLT#Rs|X}|Wcj#0V1WsBT-F}O6z5Vi#S}!dh;Gz36P$=NTF5J3`Ct_+VLEz% z)Io$lifGy-QkR|$Xz2j!!-#IpV0FW5nvSV;IKoubPbB$(+y`{WY85m~Y=H(sC6DUm zp;)8`MilxRRQdbYmU@1?T}KL8F&l+yWcY3F6}p9<1HeDD*D<1>(F6{fDd>y5ggWpI z@-``*D{|BbhJr%{Bq|_Dkp#N7cDLtnHZeFHvJme5)>$yw-Eodcc++~MohAGHp#2@p znN(?MWDwq~LjJkx7yK2>6mkjY)8u35)+`Y+WL$QqDcE!eTLA!Oh^~$ZELs;SH`KT= zg08%;6L~{lkx_wmL=q^{*cwBI@N~JD!c`eYHv}GW`0%w~kQkko{yM*Ucuq-bZ^CCG zIoc7$C@l?o{4FMGw%o@j@$mg){gu1K`9|*(If-QfkPTp}5j>~TbW*FepS^igFK7U_ zf232ME?3X6xod(X=sOS&y2PU~MvEE3V4`M;`m2Qh#rUt4tRlW{ zEeUO;wcECv9F0%zQ`%yXLGSOEyU;?Ad%gAygMjdd55}g*Zko|yNU8xZAfeiz)7AT0 z@^lsvu-PE{8qd}MZN(dBKmbr_6PxOVB;2q%k*s0wo(AnJA0VE2Z5M(Jh2Fw(GB;mA zlMq=?Z0QF3S|Q}=#NSeiXxpZ#;-gzhFpDPnSUoTSMo;jteyt5VzHO6ML{M_1PUq7< z)0l^^j0iVF>xqiZ9Ia6Ohv?(~p5MeNYgP&*zP)}9%9#C6>~3L5=Q?os2eWCe(jSCAj@mfe8V zUOno$wa_j7KEhpWHYfU>ZUy5n?c$e_Zj$JAMO`XTs|lQO5kDax=QgfG5i(ye%_;R`mT#8kW4#+-7BO za47VjcY2sv@R;eoi|1`<%<_!R_Oksvl}bFV_%_-FBH1R?(Ltht$3OAFv#4TI*A6y` zK7J}-)EN<&$Dx_LsQScgp^tXPaup^8)>ZWGxzP3LO?QqfrCCMwy`B&3R%hh!y@iP zSfz@u@80Cy+ohW(-oGk1Z{NDrF^*@QFsy^=Q%kxHuMWM5LNjt&w}TwU^#Swvk8c3KIFhirv{*< z*S{YEn3#Gt4h*MukixfO4;8$jzC#24FpQ=}CQregX?Xgtti<_yMP!*q^nQm0}>6cuwju=u*ZY>2j?+T zT@_8~!V{HG3+*cM&$Y17YTbw>u+`kq5vG@_ z@=VR+FGGfdd^}^kw97j4;2)n8J?!kMv`HUI+|6mu1+R+v^%fhQq3_@$Z`N_UMbrJw zM$MmiGs-~V&Uh(~nOCx+6#M#3UHG$@I6Ii#h!4|(`7?x_D z9tVZzkaY2eU5)umtK@I#h0_a8*F@9B%Ae!?ibuGSy}WIdkc@*G{#YZl_1MV@V#VgF z1q)ivq1Zbaj&l90O>qTrkF2UJ7)afZjn72~1p4kujBP%-^9sYpa}gl)7V|+8nRldD z7I;g_}-)RUNG|0a@azei& zpphm;6e<7}Juv$1g-kN{UfT22hg4;kC58;O+`wBeHEgLeNU$eqk4*XURl4Dh(E3G7 zG?{OiYF$ODsEx}r;rGFfb?hMrU1$5{c_68$YhH4yaO)p4;Wyazef7+MP$4e&e;we; z@*(H!f->iK91~FRiBhB}9zNq)!4I+4zyj2{|unZ&jj0d*A3k6M6TRS!u z4ioVn?t-3~w0f%GCqXPWc`d9R&aiB|k&q0MXC&VvB4dqY9w?74UM~`kM1Y zX<~&krXm-WA`tv=LDfChfo(3#u8*Z(pF5g;=Ou@1w&3f8W9nQZ5lZ4kSQx>m2CxQy70Z`$rM9$%f#eC_3L)p{#;JBp4ViB9^S^3Eh{r6(hkjWE1D9KdF`-O1auIK#( zEz7>#M`d??1z-AhnvwOrjdE~kBqdu=UQhCq%};57sXVrV17vTsz^&C{wPC`O)0%vcwQyH?0QFTz`w} z)bHVdKae*mxzg4v#AaPalYwmEK&G7W5KaMQ?NiO&YwfXV%1vk-_) zfN&OnAbW=*zL8R4PKePBo4>-Nm)z)DV(5mOL-$Tt2>+Pa+@+9l-aYPEAV6#=Cc&|X zUl+2lJ+*Br5OGH{%&`x5FI4HB*~h;}eXgWa13R4u{?f>5E(+&nFa=z05JOsPoQ#|0?e)gfQm)C) z{KKWzFz>0rPa=Hm?d@#Am4omP8Qu@xl#lEZzB4o}g}53M4UrOXg?`|yLa1Rt8QDI0 zl!c`9*VaDhFirpN`Dt?Oo&|uN3|YFYkkPq$9$2L8Umj{u9Vb-2kEhQ$B#taAqfQIm zb92FQ7RFSdL==LeH}O-8P8$k#fu1}0`6NQXraT^J&ooPT7?ioG&C=|6s|M$b+qzB^GQ`waIF5j+oqt_LX$pK>SKf64wk#CR}$IAB5~t=1Q;qw8N%8 zISr08e?v1L9<}FFU@L?BIn@-NVcG)cM&S1D&C#r!g?#{GMCY8jW4HCSOr=PxxaZwo z_0n_3p4#vFjC6li(d@j32x}WSM#A%W;m(&tY0G9}9^)ltUK3<}X(rw=S(DUQ4t(GE zhY~-xSkPXsu}#CE-h}sP!=RCxg&?8On`k_S%(sXQuw_jjJs!avI+InX3g_TB>gcY- zeV9J+H?4b=yk~~f5H9XED$WOvbFBP##m#Uu$qh$>ClF*LcEICuJ2pSHth=4=oT!%vB_Iw*>&xrzAsfIZpV;kB4*I> zWux*lJTA=qZ9YarDq%NB+d4(Vj4Nl=WrbkO=ZE}0-pkg0C$CN;X=wBE84G|5To*&H zn&PHyi-~+5A6~~!xfMtIY{D2ZMPJ>J)l8!oAEBM(6jl^kBRQ)eR690MFF|r+w{E-o z!z0!edz|ES;;}&QpbCbumP7~jT%_f%X1_mJ)|x(k^biFkM3vRD5ko^InOEP)?wNEp z@de#;K4C1eJSq^ZeKWvF()BrarxQ;V&qA-#Bg=?Fzt5rMGPcQNs`Ch<$fyU5?ms!` zZ<$FA;W9cO=|7r)56ELLfE;ZJVLc6XS7H>NDC+)+n0^)p?Fl)V;Nrl^)y9fYR@k8Y zMuUzUPe)*akx?f~ntF#UPp$su%5ng`aX}fX2F#7$IH>BrV@yj2TJ6Zr!8BRc*1ZF~ zs-Cp$rWJ&W-olaIs^B&eY2WX#&y_T*Bko175j{qC3y9w`q4Wk_fn32Oi8iER4fV6m z!`iWr=p89iuX!P%9dvmG>LB<2(u^V3utkU+j>(w_Y}eW?bp&-4n3syCp-Wp;T|3KW(TI#M~;(XIfMALgFWW$Hf!3(l)ExoYM?@&!A2xhHHYa3G;wP zc%$BO40?mizjK>X)}8*nr~-hfV<@7EaJfYt$yAzpY*tSI{ku3C-&5GSxF(v6F6Zha zH>1u{Eifp`R)K9z1rfxJniPF8quSn0{r+NxpeuP@wK^3l?L_IuziPoXaPu4&05n*< zwzdM%gR@d`;z+ng21i1rw1pxa3ZYhkjdE?$Mp10<{--ol zOvqQPoiU!%S-$0h0&Pefa)I&x?M{MNyb!M&FfjmE0IH@ofoR^{9E|s>RZ=;|S#gts zCa+tRmHw^xSW?8xSL{fEHVEnyT>^>i{-Ae%{*U4arxi_-ak8aj5!;#kMt zO)KNu(P=@$FbyFRuQR2(cvGo#x>WKwq;5PDJzMV^AR1FKr0mye_99*>6&1CAHDpgW z%Cr5W>i-6Wil{9=-$>+Y5TWVFGmr|KkA+yRapFZrBNXil93(ObJw`2*dOm#$@xIB` zKL0G}WW*hx$ z6nw!?s|cw!zdTF|FF1J5SWDySDjyr6Kb}$%^tAFymv=VgAv<|6!j6?7eDgr)7KNw| zanEPm#rz=){1{h2h({LH2)CZ(&mY27*&j;XR@J2ym9zcbMZG#Rw~f=$##tA(?Q8l!`IVIp#%`%)X|Slv)xu>V@l zAyc)D9doEeD42vA85V9z2;!AbGM2sw@S$DEZ};wjU0#Dd)O8LU|4U&*Aq*mLOFe>!zY)KxQJl= z+P%BR&p8d!YeoTd8gdZCn7w**jG>P9y=CW-On91s2+HM^d?9&Q$tkx;&wb3h-d}ti z2}x1l@C0-yZ|p?PCc;`f_zorN&!#f2h{fv$9eM=CYJvAO)U;6L$I^RpT=E>NVXzhX z9I>rSE+9Fb_Ux@q8~zd4V+8OCB_mMhgf9bLs9n57F7-SnNz`S&dER%S0Pnq*cVZa6HNgJ zPP|3itdR@0ggCo2FCLQUD$-9%^x~l_iH;~au(E)`v2+2Yorm0$7G|q(Yk_nH=gF&^ zenH%TobTO%MS?~tQK=1y4COXQKhr5z3qf0Nu%5?2BWW}wPR@ibq^WUQ1T_Jo`L=I+ z(iOD7?{CdBog?b&CHM+#s)*aJoR)9S*_wXbQ(Cd$QT_RsIF5K-j`*=0_3n_=;i!A; z8a&Hb%;1q(CNZtUpNwuWpRAxjP;LP2UoLM)`$JHj$|HK}zUT&=p<}z+4gpw((watR zX+J5F+t`kZjXBtqC?avky9VURhiamuF7d{3hEtf{*VgzgX1U+oiz*!J1xA{JL93ZLybMd2wA+VhSvL==o zP+GUn0@N&0QYEUj{4R&cS}<7U}|)eZKo;)x>a77Hl;q2?IP2$K@lp2C7*RE zG(n#(3Bzv6zP)QDVrGmZI(iY!%S+-16BrlOS#N)!6*BZBnnG&K{z}?y769$&v(yUqs0BM7)Y>QB< zfQf8R_2(;uhomyaYdvPIr^p+rc;`KVXE}00!_HyLUD-5g#qfMQUy&6VC^-Md5v(?Bbiaa(DIzxj8uf@`Xan9 zP=cXy_1~$zz;d%#VYqRdUkBZSD_J`8;4T9rl{F_Yb~0K}#385Qf1f~>_kuoddrGs= zHNbm8{XQ(%uz{!T>0n*LZ zCYO@`Lce-PAcvAFDYM)JpvRK1clKPt-3110fMkR^2(XvAJ#gP>O3;131w~F1oQ!|Z zj5$5#q_6n3L4Q%^rp&>6twNKFs@ZCA9stvQ@`x>QN>U=S*T(X3AR5+5z!; z6=$NR5%RqK#0iF+#6a`i+GR>$=~AEMm(?nMlaS}=oADQJG6*GZgxtWp3wi)JKh_o= zu|Hq~&(-llbl?E^)~n;-X3+;$M@K-$w-$eZf<1^yr{m#Rh!E~Ef(sH^Sk4}bW9#RD z8>Dlp##&Nx%d8_rggxrbr#O7B_y@qyUXlTHJzRRQZL@9TUn-nlzD7{#c6!yh)$$;^ zj^{G0R8ph4agWLo?^vdo|2{WfFlV+tf&iiA|I#uS;FR}TC*B`E9G-^K1ZJIt^{ zTvyCC%Xla8YOW>31}%lKaGM(n3O^84ysHZcdMG+&AuVLc>P_LgY^Wpv*Y})0+E6oRv~(X zFa_GbQt>S7(u}#6Vd=!=;BRuF_-qF?9X%egEn5f%Y!tdGCfKQhl^N9i$#Cqnvr0!rqV?im+g7K1JiBfR_}E>buT)_9r=Ah7{2|ZZCRw{=1>^D#;#bjGuUBR zc0-C%&PK1H?j(tY6D1iGcV#~?id}MjQhSf{ z=E=6+Rr_%Iu~)WR{Qx=#*bnsw`T!-Myr()Y_YHJ)nO%vG_G&7wTwov(FhWR&0vK|= z0n>Zre33XpJ@!PEc)??4ra0JgGS>x7hQ*a)`uQX&;xgJVY(H6vfkd^0v59dFGZgpX zy)35hd1D&O<&+$EH8O)7WVj|sFI4Ex$orJ206qq@64`(mUij4#$+-QEyL21Ri!*OcMrAN|Bg^s&3@4~#Qs3c z?cpe@6-2umSOlDQ4ce^gG~TvA!rt+qE9e&C*;S51dBYAMiB{^5P7M33n)iQ@j`3C0|M<&rH2 zPG>s?4HiQV?YWq#a7M~%Fl%#4=f{`YPxAZl?30ZbKFehfq=iD?76djW7UF8f(7U?H zu*1*A&lxKNb5-8TcLDI#JIAFQskeQM|1qvScHUMbgOV2_HQaS>_M%lv!|F02T|K& zd%zE(bM!S#^m8FB?aH0Znw=C@iuB;dnt^!nnC-O_q_5r&HvO;wqx85X2Gb%kTWZ(z z@wj$>SP4;YowfZJBaPrri~+|*divhKa_+L zF4YGKP^UD zzKo+@##YN8WPDA+XIIDKsi*KIEJ6rlc6x~#n-8&EGf4MxivOf(MbQ^+Vkm5 zfWt6+uu(@w>}sz`p7USUiM#JZbTkhYcA=d9+88n-p+a5vAF=RqkdLdkxo}eq>(F%lCM#lrq57n-{EE1Fj;% ze6P9@I}+%4x`g7Url6tDBtHd`gOLu}Qaqz&)Vs z`Jh3b+N)Gr7bmAX0T7K{>X6Y4%Bhz9mB3Q!g+Mu6yq_CcEMHBnE9BI)Z<_`1{*X0H z`jjFP^@<@7YSB?ws2Zqvn&*U$sd)wR1hwUtNx(u9{^a2y$~z}|=be)gl<%>~{CY^x zk^-X+;{K6KDeT)q6ps#TyZ%ag9~i@lXmsxY7h?SJaKrz*^~#*bX|~icI}J4Ur>iQw z=nCN_r?iT&uuuRrt^rr@L}|tF92PK3x>1_p`-7jNS}t`RwrUln7F)L% zp6%akVGDcWKEBm15l!C5L>Ytf`-BbV;Dzjk)_Cr>9WZ_aXl_kB0L{H+TWXr(lR7r% zGi-Ix2w^%~nM)I|FI@O1*CTi{9rx|V`n0$?1W>BEnRVc_;smiSawbW9LzQxvNiDdk zM&!WcvGoR^SC=u%&{m9q*L@G(^KzH?QIAc1R-8< zl-D&mog0BF{Cp+}ZGZv`Ry*Z@_ZiWi@o8dv1_^v3@R{|lTr-7xmb~uoXhV`)73R8^ z#Pu|7&2Y2MY}3`)9r=5Wr+LNdDq?!JaD4$~U1vYV7fWu?4z=9Vms4Hm-S?>ukkH={&!i}1am*IO8>Jx zDhhN0hl+=X3o;i5S^+;MZ2=i7qs}l?!Wd8$+dZr6_l~!zW0UrVIs`bM+GyjNG@LYK zq5cOCN2R)Ag~?1W)$NWj4Py#q{EmJC8Sg)`f6{rleLv)X@K!Zh-*}7W`;jIu6wbn+Z=*70+ zC}s}T9U-{#&s3c*DPR{UM_pBdIOEnNH~2V66QRxBBH($(@@Q8oZ54>_KrMbA9MXFt ze?#<7&@`cYNK54u#y$VycE^4fqi>D4Hue7~BT*f5zm65UNusWdb%=qJ0!;t7T5ZMc zHCABZGkFb^eo515TFY&Q0|C%aZ12sJNLP=eAX}ls`jF@I`)iI*dM@hMZidP_yie<6 zruS0~2&EndB0qRW_2%DzBpzf6TH3~o(`AX?F3~&*`_EOhth7yKiSDi8CYrxILDZBo zH)J;-DgJ|iWLI)|071iyAkzf(B}49@!(NVBWB-_#XUglUa8^CWT}Solo&Zg=|7LlZ z&I&OmUKwln`KXL4ID}L~p5!kz!hy>>C2_TMM6k%}r1*@j!4h@3!I!q+nVwEN8Sq`` z0Tw5nll|&M&9h~)PvROL<;{H_GM2E|77q%Y2a!(?vR&5ALsdm`Sk2 z)MEfpa2_fYwguMNrNcp+e8-}TFE9K6yeO(?d@t)}336$8S{AkU6QH{h_7k<%mM4LuppEG!f9zrq}q$PS-s1K8DTcadFfxz3i z>sj@w7%QBz?RHl)PA1|}e8|mQB(D@=9#C5Wvlh;RI0|6JF}nmF!TyxHVQHYF_wS8c zf;%R2-?2D1!@eI%V3~Y$t!SClJDN1fRM7^h#~g1^GpvseR&0_}yK_W2J|@2WC}cEr zI2_d|7{UJ%OFrRC&^&x*h%Ncqs>9D9fh73cEyXgGI4UlQT9}|;xH}uNwEJmd{Egss zQ~Bzw;(lzfPx~KDoG@-eg=a^x&e+Hon`Km03b*c_WSca`Ypk`Pe`_yuZXL(spV^|j zI*nrI<}jJJm#63E{uoV0mc|V>om>*$zb8oRy5rRbGV({;^(#^VCLJI&Z7-Vmk3Um( zxEENYk2eg%S5Y>(Pc6m87j@i>QRb}oBJX5+gumv4wBCvO;F4HH2=&wibKlrmmaC2q zA^#iC8@FJ+Ki7*xqN(1r5nUh6l|`L}HAtE=4V+ePyL~MU4@ypolHXpA1IAR*T8|-? zLdlXXKk{NUA(41MxnR9t*L*>et z90~_ex9IX%BjB%w&hID^lIm8txH0@^910Q{Dg{}suH&Sh2DGz0pnu}lGBSvL-49!i zliOYV%Ph^(!2}OjI+6BKO~ov;<7BfBQpk;p?Z;ief-uA|SQDKh4Cp1W~c_UUYutB2|awqi&NgJEBRj^{>b&1WhI z0!*J1K>lUJE|tr_yHcw*m}^27!E_n$ja8mQQJ*I(ajd$e4I?C47**pLiBV9Gw}jpN z&P`fOeWbDv*{7ZW4zs_StW|T;?sQqhFa58N>f20$Ew{?z6Ge0ya?UIZBsda=K?_i% zy47fz83iSb4lC_f7wgr=`aLKh`&&Yvd6=n05pc=f=o;>oRZO-!iwhyU&OR>hsSc<4aW+eA%NHLVZ*osY??-l` zLurJR8yB21@O~|>q){qB#E~MBPzbzR)UP!iresm5H8B2`@Hi*H-l24hM#s9`$4}=F z&*)QQp!7ihHR@*FcZ>QBObZ!Ye%?}rn|Ev_z`+TIvid!A)T{1}^<+EAY zdQto6*pUU%S7hjbnhn237Sq0}^Uf>XIz^p92c`)Tl*xd~ zYrA3|r~30T#0L|M6*PLpE1A5$N?D&dcAsppEIs)!`1*JSun)xmVtGp$C{-e(;<3QokXoa7h_S5T>MUb)juLm=i8W{92 zp&&O<&s+7r`}pUYRvF4)?{Jb=#zY%UY-0uZ6Ni&m-5t$fPFLI)g!v~Owtl*PfCia z%?Ude*yN5b2-ENB4Gv)Qk^yWa;ZF+gj!RGhkRKa4+VO$f8B(ex>i5B=_IqD_u=~H} zWzlhl=ZRsHQ{x#ztSgDE{G+R=y71I*tKa3q!Q#Q%N?J)+*g!E}*KC22vl;3?CeCs! z0|(OsXv@fG33<-dK!5Of>D;}B-liONk2X(yR3)A&`(^!w=CPa?xgKvbY0g4KP!cB` zU9oGR5xHDO-?z>t>2!n#xoLZvODa0F#9 zwZfJ?@)#Q;w&S!?Qa`M#15cK<#mC(%$OMg8dK>+nG59o90BC@f>)5qbir#_BTaDU=s9sGADkT95Q|O_f>NWnf z{~KeK>DaL-*eZw3`IYr<>3s~Beb)>vyGqOXKGQR~&jaZnA&UWgRItX;ZlwuG<}b{c ztimK#eakaGIU2xn6DlDEW+@!((a7n;db0!@)AM|8&R*Z?nxa+vtPhW@0|uotqTPC1 z=+C(Db-kaF80G^OznRjbRrOjWgz?F*LmvV@nlVB1+T1xhkOS`*vC}cp(Pb0bmEblEJmI`F7h2)|9Z3j#DCBc{b=FC@vxAtQ(XfX1ndQQ`%s8TKoob$vZ_g1kP2 zhbMsrxVKElAKe_;M&HDygXha)9NfCg1RC?X(OF~%+?2WcSTr>|NYDivWyVHbc0{E zSr(dj3^O96w782P=x^%7<8}UcZYborbiEon+1DHB;tQ@?3f(7e(0%~8=xbP7A95($ zM%dArfa?=gJ2sX%RP+qza_W=~@*a1`UR zgi-NSx!yp^wv;BNgi-1;JODRS@c+kjSs>kXqgoo*4NFuwcAD%*x!!-$oJEo=oJC=Q z;->YE?scdS0xu9_urMv`GO;j4YP^|P;lmn5KdSyyU)-#$*}@}#JUWZzCu@@U!Y-eA zLf7YRMradeq94>vGMHnX!o90)+@e?364$CX; z{}$uikjV&G#YK0)$n3zj>O!jQf?2hxo_UV%2ew3_UG^;eqcYAWvWnbusea`_S9C6q zh#+vv09^5${YB5?+b zwlkEMtOxkyV#ayP2D(u2%pT=b+2r?A2ec9Z3B6zrxs02nUu$GU^(jK!7$t-qe6;WK6@qTGmdh zxSq!zR1+V$9N-dAY5m)p0*~xzbv%QF;+mm=ZKj?~VWkoI^>su(3TVMky3S3p2Mob+ zFriy09Em*6o_Xth#>yvt;6bSnxhW$tQjie%Q^}bQYWwN@7qr8T`|d`7k);5XAOfry({tsMhH?); z0O;)}nKMg)edrLG>Q_5W>62;uMIyE}ivKhXAb;0WI0WH5We;c`4@Y@ppjo{Itbr*E zlLNw1K%ti>ye75!a%*vC@tGD4XA{v#J|0p47XWznt+xT>kC)V49MqEg>{X?Gvd2f_ z_+JLLKLK)rQRh5*R4?V%Xjfl)0brx*B)gl=WSr#Y7;6XKJrGsKCBo|Wl69_fHvFN3 zV$gT329}wf)#OmdFI2+kKq^UmwX0R1+o%(dl&r&LM6iOEOl=jtXk_|g(BpoMF<-1H z7p0Z_wx0HV$RASnkp-wm(POG1mRR?=VW^BWG0s}?^;z1c4MdSMW{;!)k+rONr_avo z-%Q1+d;+tkPDG^zj=ofaji+f&tBSbRbhJ3cLL4$AyEg zidKUoJI7>hmJVWvebGlW>q)C!pp7AT5Z*R&YXPc@Jw(s4UIUGPIsIf~{) z-M53vc__%{J=1k)21r1))4PgRJ8amj=Ohx`D=m#wg1q z8$DZB5{4*J@+X*X=ID9HhqeB(UO?#s414EDwG}YX@cs8{vpC>(zNkP9F;7ac+Dz=q ze)K*fhhiX;Ig3?bj%P+j9>AtQ{$XAkCIf4Rg2YNBFI>1q&)-8!XfIKktB+<1BF9w5 zmiLdPul0U#kR9IO+fSDrLM$)5F0Z4_^u#3oPRl)nub{CI&78qkxKji^O_A%-$=&N6 zcVfH9-g|+n#gVFal7g<0BZJnB@p{UH8pjs%Ko?1jukM=ZD2XW7ByK&YdhTo$E9b%o zP)r?)K<&j>&tC*~1-3b!ai717hQa|nG<_{T5PnM~$}FP3G4ZK5>*lm#=ZjBbKC=@v zjs?-=o+|nU*k@^Dj+WQIxP6-%Q8s<#exT}S9YB`Ve0qE{qbyH>%xNOpNF{U>b8Hp z99iK0JtgLl5gAg-}<`j3WC7ze%yRmS!@E29j|fV8yQ^XrOc(D7Qd`c(DyvLWH{ReeT{!MUXfj%RHki*inO9Y z4p>&kiSN8vQglg18eZ4OKlOb+S$LbS#lF{N+d<<_tSp<;qXZ=D z!Km-^_yaW7w^KY32R=v*#4WC4i+wp=N^UDmXn9Mif>msyEn?I&E0c}zyA4tHH1$$C z!eq$@9U+_CTka3e?haU00rzNu7vCu&aSAm?Db$QVCkaU8%aen=6OZqeumFsgn1^y1 zbi3!~+g73pbDiutU0PP`c;zvgAB7tgVL7y(aOGWbr!DZS-%}Sbe}-9-)U>2rlNcbFE<8VE(WymZ(uo-AXK>{H$AFSFzVB~y?0&lGskbH9}NDAp~ z$*a^RLX zvF8^xD}mrRb5D86eTv&i&{FBn9wE4+ZpcMk@Zce<^~) zGMm1b7CHBJCrFj;+8NDt|+?<9j zCbQ7b$HqqsoR-iO&eSMj*jogK-~MyXKZfamUgvTP+{+ zoh5C-Jdq`dk5*c5qTy{@ycn*T^!2_Iq~C&?;w`+q*N3wmBk=!x{|_#m&_jOxGh9B zHA~76%ze_@kjdAwMtqCU zE&{KTzdGo#Gcyz%No+h3%n^t`-GGQ@mj&%I*(vAQwDoO^!=l)#g6Z(w;EP97l5g@; z%4M#A0C0b&JVaIz6WE0LQS3r#E$Oc5--Y;!pwh~QDov%?CD#M_7xj%iP>Y7Hi0b^agmULbl)R zIB;b*KZpL)N&02zMBIWU@z8b628`Y#TrC>%LS{c+Qw@H2h(qWV>>W4%OXCc}d4-HNf_MEOljIrxn&C zAC@Ab^I5RK>~lCojyL4}f?71>OUE?Nx!CfWP_Cgwe^*BCVM^=X5w?tUo8W}F_w_6r zNWg3QtYLU&Vm0O=jlUSh^fzs%1+p<^*&@JmK$YQz`!{E$vt>{I>b!!bLcaIj?C<7l z1Z99={L`u1=n2RZugU+B6l6!3Y##S94AUh^S34phDy+J4>$m4w2=A;7YIi~jkRcSq z{su`P!uSxpWF%?7UWez*`ZlxCOr#Nta04z6tHDmy^fKXe}XQAOs-XmlYvZrcH$`|2AwMsP=2tKM>3^+@JfqM zblrQ&Kh_8@p)j3oVs;u2WjS|*qaXK28xT(t+|(Igfjx?~ZnBlGX%&YU`;~~{&BI8V zQ~7)I=~Sh`2y_Mx5U{%pSn3g&9fDR2<%Tsa^@@vWzuQNhz29>j+ym;NVJY}sYUlVk zJs^5;?`>#0r3lnT?i)z^?j|;XXgo&a&a-JGFT@p7JVs)HH-Roq*cqQRO&rC;*CNGP zJr+b*mSwKatGHH-8PC;Og<>1~v2Wv#zXt~Wzl%$AXEa!xB}UWm_ciJ~mDuqQTh`+2 z3m+6I$Mdta)%S@rwLF#T=qW~RYl9|MHcH-47wQoCN$4SebM(6}#(u2z31X|I+t|LX z`K77XwIpcA9j5mveQ@fTsmcpR5qHewk{nGJd%7*Z)EH)~OFVhfi|c^N@VGZeOEQ}3 zO9IL}s4^qusr&8RGNMCPV{W?0aV2MyVVNrfw^Ud2$>>VeLL|DgHu+k{kb>~=VI_7~DyUIUD+M2Y3Xp=D zjRkTmCXtdN;AI2f4!ijz`IbUxApXc%`dlEVuU-Uj1NN5P*BG8@Fkh7W|8mcswVXY2DGG6XZ$(15-9HgsQVOR85VUY8cfR7m_tc}J!S3y403z`AlR^; zX~HE~o1gjU-Q%ck(f1>oQNXfw)+pmrX;1!?zn+RpDWYe$i}LmJ z3jR$iQH2d^v6-lgl^CZ;b-D~g!j%=~YoQPu4YN$QzlE2(>*L#>R2cp|C!>7o z;`VH%tAiMBr&OY9?}_$i>~jU9xzX3H7mb}8uD7|xS*c11%xfYwWQe&b)YrroR?K`q zqviqH+NP~=PMrsOA;x@L!3h|s8P-(DfDS3M2I{%z^`*`cNEh^Fe0UJU-)2;+7BgwR zr%rGW%pJ>0EWz1*Kpq;6Fyxo1uaSIMqv)l#cdHU?De6)UJZI!dt+iSR25_>n`9Q*M zzlT8ckEo_*Fix=phL_@o*J+JeJcDn|O9%~6;k%P2Jv7(o3NI1(-hA@4|Ey2BKPCzT465Ej^q^r4?{3pMu_qT8 zF8L_D*b2Aa<{B_TQNY|do~R?r{nBN)?tzu~j?4(|62Sxu z6_MXDkAb1Uj>pE!+_xk%0Bj|^I~McNZP^9b?Off0sx$Gjet%D{IugxdVxsl@BNx@{ zU;tfBe;==->aqb`obk`Bke3vj%Pgi!GE%J^oF7!*M{*_wAY+1W$+|-RGFODdp#dLv z{!)Y%0I@xxY*clhaG~x_YqfHQ+tsN>WhVPPj~U))4UEXc1+v}l0ZM8C5%ol#~kvs(EyI4A(1cw(1_U~cvjb7BsbVjfi-kmh@` zhnpX~{UkVr=YV~}tS?asyt`UE6s$QyIR-=-Y&SqkyEPFN+GCU^wtPE^6t`iK(y#8K zE>7*)`KA)m4Tz#F+!d)g5vCJ3JdlNl4{U9;rz-zo9FTD+&NdR94dE!TgT~V{F9V{w zb9Go7qi6Q9sfQA-|MVKsKK+h#vJ9H4+=CY1Z(SJhIf6ksb#k1vXSz1aA;VR~?kmoO zi$4Zd0f=wNIE{mFL3Z6!iCL!{PX#G-j!qEaIms_iky^9D8k?MtOXt&G<2kS|8+fw4 z-q50ZnJtfFg%z33FP?5>OPqg&fF6MmqG&3$LpDTC)doYjjtygNjou1s6hdPaGH@a` zs$TLYsEdb(6NbH5dLlO+C=firwnI7IO|`qPCSzYMZ`+DqPITc|@z0v6vPh4Shwq?| zJgHoa1>RQqf+2dIZx};H>AvI`Y3sWXZjg1{ZWFntnB7UZnjLj-o_! zLRPc(S6BJ%_^eh%E`rU4qUPdmdMofc->DJuW>`eHMfly~-9SlR4iP3dY?yZ<7xyX* zXmdoe%nT1txmTx*LoH`=|GoWVM$Zw>(Ymf2_t>576PTvjAC{(aGW0hVZM_)*|Gsz` zHZYM-y#D{*K`)hhvjVq?JLa0DL=I8;KNQ?oGH3LFXhmo*v5`Oiw(lt~QfRFi#@MtRFJWK8sU`S_H#FXHMWkEf81iK*eiJt(8c_DsVuqNc*vPL0_)j6=r=vTU=?%X zBWq!<4;@+Lh7i3Jl$sWUBzU2o>hQp8l^Zym8^e*ig?qJE???-&S`2TiJFjW6-rj{a zH!X9m5atz*x&q&DIPr1!r;N7kHv?<~EVf7YtmJ`CxwdxIA=!E_LM%CC$lI8RH0@$j zWBbwkTf}Ha2!jz`F)QQASHp~3E?YpgbFrkk0^u=flzy494}0s7$QLVS8`gtbBJ9g{ zJnqP&2J>zoD$^qt@jO=PV`yZn)#fH#09?LIiaRH}=A5M|)!c8f)C5whuf&acBY7rD zVz8@!Fl+X0<%O7*@+&-vfdT_|&exI^3oQC9T=NTTSbFjB$Q<8lwbqW7LdAx}nhaW^yr zAXG1 z53S1wibZ=^o{)+R@YICb028ccM72oJTtdIt>5#s;oV5-cLq6LU7McI-8dG`^s?$5% z^jXuAuaPO*Kk1Uf9-F+8ed!l$yLRT`tgm0$33cOIg}z7rQ#N%DXb&h07;|jGw(cAK z?sYaoZML8C&7{~NSZkN5a4j}mL?8#^K6-RpOp7G#SeinE|}NzT+k_T z9D57mScmdqo>m~tt^X}dR9P=NU9eML|DVD27QQus)vCB<&vU+|dIK3DEMlP6Z)86^ zH+j!^ISsX)0uDEz`;<4t-;1V~2V#fT`>u}DFuf}{r9WhJU0A=*Cw60`Oiu3)GqPjM zW;KU$@4NsBc+bkxVbOhpR9iX4T@%I|zb7sQk7I10-v{s{q7d34Gi_~HbLo#P6(%@W z42yJNU^FUE?+1DW_n_#1{(uJKpy5)18a*OX+KAXg&obu!0$*RLiNEU8YJjAq#ySU1{(61M=D zdthy;Wk|9%c_Ymm-6fQCL10TyFEd9W3O8sylF$PpgxvdGe@PEszB0W`$DMT(pcl8i zb#$?E*igxLghM^n;s1Gf#?EkzSJ)I_0Go?zyLhOXt;q&B`w@-+nP;=gM9no6=+8v6 zPcMQM?xO3aKS)qCg1AX{EM+}1En-`tu)df|N7&E+99>NnJmjo;J`UM|)qnWiB_$cg zL@PO$uDI(npl9UL@}9x|KM{ZGpw)hM_8SUJaRXlW|5xtmBML4;Jfg3I4^%B{U)`rh z>Q#Qi!omm=DrZJQYwLPXW3Km^HPLP?v)5cpkf#SgqW3;Xo;psvj^jwm9d9> z6g*cBC6@SM4Ba~W4z6A@jLKeg0PS!;|Lm3)kvtvLnlWX(taI zGU}F(Bzkea>WSr7F*MULVw`PMJm2MYqmya=Dr!TMZs(53X5j#l_{5VShffXtjwE5~ z;E(FF4z6wld7TY;iLZ7E?rbd&WlhQ+2Sb`&lcW9%J1EK0{ATe5W@)uvW)6+hOr-~1 ze&^3n*+U8i?vS-~hB}+L?b1d!A$s0b=#3Fy46wIs z1+wIYn=H`#uHG$)P|=N=^8iy?+axHlSKH@DbrDK?IYj<>PYEJx{G@aa+Z-xaBg z=`3kb1k_9dIGe7gW`ysxrsV+V5V;MHs71N?_?oPIZRF zonDR}M>kcpJZZK!JB`iPFZ&1o3C|W@G-H<7r6X&)5SdOk(dRXg?;Tk%_Uf*ltmqttA({P*iV0gUzB=*4S=r?Z1AMLn3V=yo~8rD+bZw7=^vJGF^yIC2t4XYu5`XhNbi$}lh&GpQ6@cgWmj_7-8x#YJX1= z?^y*^J87Yp7tO$HCQvP}xAcCr7wSGp`8`|$#Ma3ed!wJ7yNu5ygiW0N%aH~(9INq2 zaNDB>f&w38ub$5Ky(RhchWXqGOd_>IAtsRwwSlw=yDLw~sH_RsZo#Mwg|eLuA*R+; z%L#h+jcueE2~gnn?vYn06AytC_K=GL)%Zu=&YHt9aXWZV^*8{i)*v_ag8V7h3 ze`z#fE+W6%{HtC47TmZ~8xp@RkwkpLmLzmGl&r8O{2y!=qmC@U-V>}O;m}UF2?$%j zia#%KeABy!LBFM@78Gfq&V(F@??ZVEhL2r}12~EwF+pb_Vf?@@jOT$h*II!tO-YwP zU|9g3%(S{JVe{;YRsWvDHlBL#zBRc)&)d((MHs-Bsjez!16SDg0_6T$l8a&?*G;am zq0mbl!~=D+N1sB_kpr88BcKY4J5a+#P+#Q`z?g_8JQD5(x;D(fPBIM4(mfS1&iWte zGxNUlWV5g`=qPjlitihQ1uX=vn;zmJYBk^E@IroK-Ac;~C!-PPBGXubny^X`?hm0R zyhkupc78gEn=30=?reKn_2_4z(wq$$xY9#`ZTnUOOXO`@Wo%rxvhES@Q{^(h$zdbZvKRl z`t4;# zMC{>E0E=y=GMnOTNAPAdlpnOm0;W^hRCNg`Pg16=HNNWGPW>qoh_++WwKjXWm8>;zc1XJa8VW_gBYg$e4ed>7aHNWQ%R~LQa-=2a()_C}3NN$->W&)}V(` znmaSvwEpggJQbLgcwf40u~J9fk|D9dBsJ#1@7|L(IOJ}pUPhRW8#WOaKzYj*8uIC^ z`K9Zc?(bt^(sOJ9cjmK1sLTfL>Q@IV5^Ru`@D=CWg15;J{4Elji%`a&*kwzr6_5|R z)z-J#d0wJgcWm$>@MNLv$2ZK_3Eu{#FYjj)cACcSfm?Q@OzpL}yAU?sE+(U`K?Z}) zHwVldgXxMWluR||Wq{7Xe@Iz2ySTG@J+UA`UWGp2rQSpW>xFZLp}C{r&!?k~8yb9u zuxA-@gF7HaHk}9!UXA1MFxei=+)}T*Aiu}XyYCRKV*;!E&zXvk(fnseVG>V^?X%XfUFsPh)mw*9~YKqHd>FoT+DhKbcvy-~jvn?t*iRRo- zzlmbRJtlKzIpE3PQi!%<^E#CX$9gL?FI-K|oV%`iEwy@(fWOeZVIj@a^OsF@VhJ<| zTe8|6I&7tmvBei7$p-7kPX7K%9IcSJhqoGl-VTzQ&Dn=`>B|n`s?HR75YYG;jp-uK1S!FmdL_PSs@H|;Zax1r6NUl1@)Ux4IQ9m3)nG}XaR|XIXEGy{kJ{)dpC>I#uU=K$w`6V_A zi7`f2T!35Z{#O9@K5#HFJgrMKIkk52OMWT8Ag|&* z7&kkNTKTot8%jML8Ah3wJE&LkhkM<~A1H`*5L6Q^j?pWKW-M;Z%IFW|(A$O4LlcZOs>($8*X1f0B$?#59U7Wl zhny|cOxDQmE(Bjud$Yb@7JCWQO-=Lf2IAQ+GW>qww^;%~?tK8tHiE!`q*ZmvKf)4I zh>UwF)&&MwaTPh;j`xm+c%V{V!~@_lYn7%md;isS0!Ke*ehfO?)ySA7FMhNql0kK; z6ihU>H;asj5sTJ-X3*RvK7c-q4qi&4hq>I)N>A*@{LW#*`7_qM-*A+r!cU^?iOH+9V0!03GIuL+}bhFKFP;4uK(MtxW1m|ZAan4OIK zA^ZzIgs>I?1j#W)uxY5Xu~RVE*M;y&7TxG4bjyd#JG+CB>|8a-LI6@!o}h3|yKbvo2*2o{RPpbJQCno@d=Xek4d@xl!yf1LR(E@=BgFcQ2W zfvx94mN#J_PDC$Y$0_TdRjcK}Q%q z7E^2{&kO7!0>CKmo!X(1OvUk z;y$^M$--co`=}HVB{}{wP0?mE$I84VzcyS+r`u*MR>_MrtwtL#O)`E!aMlcBMxOyX zbK~*Us1D#H!>}^dmeb7_!vhW)AzL?l{$C({4GG%PM;H4(e>)k)PqklC%c35aYW6Y- zB5pv`hP2;c!QEvv;Xg*~&wo+D5)CY*gfbH5`;qSb{Xh3M`;H~b9eNu$2Inh5Dq1{R(QLJk&A$WDwcE;%5*0)D8Vo?*5WqBvr zND1vVtLb3@aG40?-Ho&|%mz5~9tLFAFK_MX0>T3N1{RyCo07qcI8|xifgWCrLc}Ty z8~Ls%AkIJiJ@6w6htBQj{|bjJ>}CKAO(;hD1+qx`&P3<`UBB0Mn4zdQ{I+8#w+KwA z&%RGLb|v*+AlE_Ohlnx_Gk`Ruo`wwH;9VE$Ryd*D@AEwAM0G94&#Lp6C4X; z@|kb9f)OQtUMZ`5SaBKM)0Mmx) zY1S^wd>|+sT#xtr8~RZ5x}=E0}VdZq2Ll#3uZW(;PMI{1&i zLYqas0RfjBbjRzQy$2Btca=m3E{h5!P#;vbcNEC(V)vTm?-dS^TgI2DMwLim$%uSS z3&XP|fPVR01QPFMK(4*$%$%<*%WoxR&+<;XpdS*$a?4#3gZ2(V665Nm9iTAi*lc%( z;%5gx`6QPf;_&p7A%vfiMU(I>`#}-hHxckvijOa`o0gg``cc=&GGIivRC*nwo z$7Cu8ML2^#C<}Cw=1GzArkEVEXc%agZn=(-sIkJW@Hm}<>mT>euaH&<3n7D}6`6@h z@ZJIjsHF+jWPJIW4uEfOnYarrIDsdAl7UmY4oQLm^-3~3#zxL!t<%|GOn5ejuJ~{m z`s5{RM%TR1$xdZlBikCj-Gqo1JQnUnCSFIU>i`bW3s(>NixMfeQTk{*9c;bf{F1SF zXSUp7b3VJ$VO5JmMBH1=?`icC;!`U%1OAagZ25_rEKi+$=C8c9)ol8hUk6n$`@jpPiLZ?Zfb;Umcdf*-fZ!@nlUf#GoUFaefx89E(2i zXM9FwR|^4**vqZ;oK>3fDh|7MNC%RPBB8;4aUURwZZZJ4yl@04F;849ZtPM=%0GST zYCc zwzkHIZF`x0LC#0HUx37Hk&DCJlS?BrCn2+2=5lU`sczl6!Mug;#Y+(|A`ax?j=^-k zVWsi$yr$IBFLsF(BbB73=1>bz3!onWmdf?beO>&F30#G0M2s#iPNrf!AD8jG>AJWt&`%*;po_~{<9;~bCdX!$BHPGSP3M_cf2F^x*$cBr{7nb%d2}85QVhdi#@XV%s5btC0*-)kOMPC8 zDx)(p=n`RkXKE@iA#2qWLxD7-BzKQ$MZwfmRSIS1xcZ?j# z3IAOOIYvx^U{HUtM_W>RC>F4yu2`^+&CnnSGf#0Yt9lwX6@7jmW41wmfk<|RGaVNj7t8|)2~6EUuZ^fuv@A@SfY8gsILP^WGg zo^FnM1(h}d6D|?S!lM-p#xpj%-x< zJXMqoC5l2NMJ1(4XjIWiic%t#G89n?5skjJardaF=lQ?i`#X;J`+oQFUdM6Xd#`=1 zwe~vKy4JAQ-dsCftacy$Fz-=BxS?ax&MR8(GS?O)&J>bn60%8Gx#tqQng8o#n@rd4 z6O6m^=GoN<*Vy|Sx*kX=_Brb|_Er1%@pe@o4lGo*xxFVMJ)wL4q?7R+&-PESzFL2N zBilXxvQok2PZo)|#q1b7+k4wxxyr-&`{D3#MdQ@zWdbkSJf6mw&i}mh5yPAbEBprE zEbM)v>sY_|%l2wHg-6jTzPmTi+|w{;iL!&4j&T})?(4=3feiJvgNiC=q9=J|TFq0K zol{enFwfR7+#xHq;m&q(O?G>WG4dK)3(5{{T%*pv68xY}hv5EfuXNWfSZ@Er<0A3L!hFskDGTO z75@+VA)O+L^$+?0r$8GAA1_~jr+@$_M{?@p@95@j7w8o5hXVW|e|t|i?|)48hxpEJ zPM(f7Zr;Iv$o?P8A7JBU=iy{y=j`m}?KCRkAM*cm#E~?Ah(A<6HZG(VhI9Yd8u-Wb zR4xARrFZf73G%gZaCLI`Fc9pc?bDYk^Zdr@eT;|4{`{!akLAx z`RJAltvcdy`sL56^B@iR%60t%l0i~m1 z2MOE$c8#VReN-iJM#~@T%h%4|&TDw|`=$M8XFv5$-hb5p%ztzt+`Qdr8D-@WTRcu|k{qe?f5L7O zhlSuP6`#OfMad?FG!v~aQDJ{4J4agisIWtzzb6%bUTB5qMOG*x7&@oIf50}PUwqaI z8ssQKK*>*jR9g+%pQEddhoiGikjIdL{GumqEpPKLddmJs)ILFho=#-EAi<&DLh9Gw zE!b&z8XLOv@Xzo0|DOI&df&gQ;b;CXPTqgZd(>@yp4z@7;{<_i3$Z5xF#-@YHj{cM z$Rda$uqDtY5F-FVX%o>AG!jG+(1dD#FUP-`9Zfw{zf1IOsM;NBE{YE=?Bg3orm~+= zhfYT69i0M5o!NQ1h0~0H#2BUjgLYW2@8;qZ5V*oG$jNDR(x3Sc>kY{w!qeQu@bC8@ zrT=63hV`p_$z(pNWW)K4)CbiA$g~vbmI3 zfi{VHh=5wFPbLfPLu4^7N{(6NNZe;5n;gZ+@gO;hlj976nFO^2&k5=X8VDAW43-is zA}}E^A}}Q|CRj#bNN|i`0YM%CO-e~xP7)9!;2;R#P$0j<&kRE+|K&d=Bm4vj4|?Qx zb%Y<)hV;lUj__k4+{6edvsDBa`K2HG+&sdMvQK*Cw{e6YWuNrOkAIYXQg%vj_Q^NO zKIxGk?9S2;q{~%cc>2wDE=B_(hKJqm3{0#&7E=`=mIIr3M!w z!=udb`G528cCs%(o8KvZgzk{g3%_l2&hI2?D0*(c6Tk7JZ9UP8edZA&RKF7&?sh-N z6?)-!d=x*5C+UtuLNENbjGEu+aehb|89%A@3q8&c33Sfy80lzKU!&LdJNg?xdYd1P z5Pnp@quP%Wsx2v@9fw2zy}!Am_|fD15I^eqh#u#M#F6on;zohqo*%Z-Ilmmz|ERHq zUfb{RZ~W+OemFQXep2m63DuUA(2m2Q|K8t2qxexANp~C)df~T*u%X@?(b|u7m>%7< z-&(?lYAcE##gp3OrG#GE&w7LljUW3EJNn^Aec45`PwL1o6Yaic(Q^TXGX{zv0SZ}YwDC~nzpW{9jR;o&GKOs zKZ+*_4hg;RqyA`=wtq$uqqqHC>TlJlwxZgO9`|?2pX~m^kKXooJxAJ&)_(N1zx!om zeI`bDQtuvo>FoRRucP=;Z75Gb3B8P;$s_YSHMUR~GcrNY3%?z7&TsNayHRaN2?L$A zpDe|RfM%aebjDBgH-7Zi|E7#;JE{#C>8$-ejqs!GFLBe^-@or189yn0^f*7H&^bTx z-|Um#<_9gpkD4E7_DOH^!~Ea)(cAnWGs-^caefdR;YU3?P(pA0Pm|(AKzqKWxBjQ` z8$WvMf3pZbs^8JtkKWd2Qlt2h)1S}nl+DtE$Pp61^uG~O^ukZ_H-7Z?eoTV!`=$TU zS^L?K@T1<_Qap|5jNg$FUKBTa6> zzoV^R=xuzl8)-k1oqv%$y}7D>qwSL2-_f zvdUalHT8KK^N01c-~ajknu9%qTE8Tx?*CVTelN*z&VQBX_mT|h2M!Vc1i8dt0YM`H zjuIaR1lk0)1W^Q81f>Lx1UN?Y1lj~yB)-^T;(vtzImBlLIW`hJASflsC&(h$K@dgY zOJGZ2N}x@F+#3Xq2d(hr2#HS+Phd-+O2A3*hU8mHu$#b_U?G7R!2n7BfFSBO{)qb7 zKtuHbhA3Ktjf5GaMjDV79uqa(pg+S*Q9}*r zEFiLw$RZ*}M2v|nCbERcQX(cqOo=QbvYf~YA}fikBC?u@84+_L7DOzG*b%WO;y}ca zh!YWKA}&N+iMSDQC*ncGlZY1)Zz4WKe2MrG@h1{MB#=lDkzgVrL_&##5eX+EPeg%; zB9S>nl!z!3Q6Vyyh$;~^BD09hCi0gp|L<7x=pp(4rvHE66aIftfB%d2Lb?fE^%FTF zl>HNbI5u8BjzPq41f}&P4|1fg%aik;X-D$^r*PvVvKIJ2@+N5PvBCv{-2|Zo<^=Kt zoCICnWNs(OC)h#YOEAzy)(8X_2zC%GB-g|UY{~g(q5J{;gKMv$Xp}!By+x)AiMPTb zA4|li(&*$v{*p%PM_gw8jPqN1%9|eL?2P!XatU-Lu_(R%uxqd(he^MCBpRjvqeCQ0 zZ!qjS>>tyQ=>IXj-jHiEQ#W5H;z`qKD4So)|BL?DY=-##q90+iXxK;D-}NJ<8PSib z|3CV4`duGD)!v^RKaG@_ich%-bMf@CxAPq3?2d9@Na9d>vdpmy@(diU^m6idaiX%I z^i(5_xYGN3)RFtp4z&1xk4Tjg81|nxTq@#8&&|Q+7x#JK6eIt!h(MlzcHT8*4Jf=B z0qtJYk*d!je{v)K)P~*d{S{-VzW=gUsw#%O)zM=7E&Z_fPH#J}A^N}OPgTSp^u)gy zm2Uv$IE>0~By3L{-+2sQrQL0~K1ceOU4XZOO`y++zqS$2TU5=A=!gBdkqAQ(|K^!% zIL{&ffWtWvcalTpAf9EN0!iz-dAkhP`CoSjbXF`?uvuwgYA_U)GzsOdmKL2v{8j&} zj>>1KzH|+!N*r?KIpoB0)D39*;XXte^{+kH)L3tYvQ4m}4e_f=xd$ZX>lREolN;gZ z>){ZfOjDBj9+mab>2P{qdnb|uRp-Au38b~BA{9|}xW1`8RTYQ45_&qh*g1?Iv4-l8 z_!^}Amk#+SCAt31zoNm?VgIa@js50damb(KXgyUbhu{3O{!RZs_-Fmc_#^%)N9%v{ z&-#0P{f*yH{1LwYzbfV5GRS_!<1k4y5+05_5+;r>ZD51!Z;(B@5ujFXEawH}~vLMwvJQNN4VtXhPRoUp| z_)AYK;V){Mo^rseIJ#bFu}0F5VnovnA4&Zg=-E&XUx(|ExJn94za$oSem;nThkUY)e85g zL3}486E~bRcH2f9xt-!bg{Ew`c5jDB6*vs%c_FC;DK6h z{!NewYAuYu9tf{E%PcD)OB{Y5x#~v)2VUR0oLXiW1)-+eUN_d2c&vA(HZAfY-UQYN zan9qwW{K2Sb5fhYma^^==k9wrVPFyZa7;IpGH!di<&;3}=swZMkB;JEY^uRs$<^2| z_gJK=tpiW$CI^LPkHzepZi_eHkb&CRrVp=6PQdbrf>N*8J{0B#I@Bv~#-oTh=b+d7 zVYZ-is(_n53T`*gE{+ogQ+UaXo1Gju;mZVrFSEfXBo>->Ko0&tZnAJc6~NuqwPo8@ zt;d$0bq-bHc%N}a%dn7W>-^a?+$7Iy7R)(DV0j@On_%BANfL0%<(@8PM3FuOye<5>F~=)cM8$ku&@3w{%< zytoRmK)bf~s{1uKagFUfYkLd3OlxnQG!O#kXHK(N@n*c;ma+db_dO^tO%_beGlAFa znk`-n1dt%|rF`zE3%KCO685kx9<3R-ubtlT0UcjM&0-$Kpzj=qfmNam-bIS8eG#%0 zombSin3XO7zv$x_cD+f^;BYjESd)hIS^Q^aMJ&Yi_mdRV%l6=j;n=cnb04qQ>1p-gx*v zbFI1{m5%v7=sX)5jDRa_`!4ief!DgljSJIfAmq-C6vrnG*u!?HAC@Hiq> z9=EvLPutHC!NUZX1MzXoPKm^n%M*}_tx39C(~c)S*4kWEr8rl&vtX{)QarmYEGNJzh55V# z#)Ho;!1?X!OzjADoc{b{y!%8=G+8-5dUbOnB!jsi9QD5J+_lYjf z8tT1?^w^ASwM6%C;_j&LnX>YF!U-r&3kaFH)C;qAFpaYoE>)R(VixD2N$bEYo*Nx_n0mXL zBjYQ^&t8_A!mNizbAedaEJK6_M9tjXtcfqLc5`RmQ^NZ~g(YwG)A4}ADec{f(>P@} zS7FkY6WHqO{jk>Y4U&r_x2{`q6p;n4NB1_xqkUVOp4aZNnC@lU#U0gy!bOZtbuR>v zaaz)trDiSs^;c^j%fE=;Gw<)M-fEyqWQPJJiKe#z2ayZ89iL@vOs~9iBJKj8{N4ApcHAXB3u8 zTL+ePe1qG)p1xI?TX9QR{-u9a8se6uw<#+2VS!p(_%?q(gfg2k2Al3c!I|hM_cz|f z(||)S^0-W)WV_{EXpB1iyuK(qvGw47oTcca<;$Q@;hH3JViq>?EPf{0l8>pU9-mKp z+>OSfb*$#EIv_qiV`4d53Jkfm10p95pw{f{qR>aNkPC`XFuuZwVqNt;4vqzwaVB7< zuCEvhIaISMgq2W`?cBgCv=ZB{y4PwfyM`sZ1i2d37*Nd4a^doEN9ZanVBC~nh%r)6 zr+%1m8<82~6>gmBLgf?xK#2lV6ium-I9C1%QzATi?gepT4wC>+fk!dIp4vYYUeu1o zsUh@O*RgKhtJHinbJ&<&iCG1b3P1=3@caUN-L0hbu(#p zPJ>O28@B>)KSW|UCZ8DOM7om7T#h%+$hYNSIN95c{)r1%0?YYu*g0h1+R09M!S9#3 zQFSBcO*IoaqofA!Uh$Vn@*l9`dxlaYBrIzEWuI1O3&T8mq3m;aw)PwC!-n(S4XJL;?_UEKiTcJ`clu_6F z9^cMPn_m@_glT&V#^hNafx(%juF?1E5!iX1&)aZm&s(~E}0U{wy$&-Qo8})X`*fS ziYBA^{gG$Zos*Hcc-5J$wxO_62|nH!ISw&uqD|)MU3m1x@yhr8{HQ(QwLT;M4OllF zO?q6Zj75=N<_n%)M*NPrg69nyFizbd==+o(m3b+09jjB3J}~79|M6|m3VJD%zNHYQ z-@RT{Cv~8A%dK4>+D!2A-PjB5TW29BaQc?S(y3UyxMp|KPD$+hbbK+7ML*^lC%J5% z>51*J)hCRE!eO^S_w-c8PBK4h%<&r-w=M;^jJMZn%Rk{b?X3pskdTo)gtkOX*^(Z3l zUY6n#I0>A3YUJKa-fg^2n`tFH2{DS215!WqaHFSbtJfZ9e0I~3{wRM7X72ZyWj~if zub$6!O^yl*=kNJ2IdL1dEA(#{ogfFceA$bKqn}`$T8nV#+S%|bRW3N`FO0l>-U0hx z_kdSuOpCd(F!Wg(Uw@fbhvhb3ozo3U@Ipf&r?1EkysIwWs7cX-WDxV2Wy<5>XZ>C~ zeh(0lps(H1>IHA>IHnxosnERoXh|#qpij9R~O+F}^=w`K_uM&~{ie?Y+J) zn)&39&Hbc}_Pn!+=M&~&fjG~Rf@EH_Txq>uJ2e|_v6t*_h1=kM-q%B?)=q}P)fVNn zrDJi`f4b;Ly$R6SJ!ij&)dTGQzVV9b2_LW)pOT9ytHh)|cKJemCWu+Qp7YI~9k4TU zzagbL4TdrwboAMo!J5r5JwN9IUK+J(ZeuUOZaIU(MwhJ!4FA$|hF=IbDnD({-B<^q zJFm^EHpSx5c<}~Su6uBZRUOQGQ-QMV24(f#YtcJ5Y5bTo;rOBWpig_tD<~AofB3B8 z4zn_IwXW6-fcMy25y@EOwMky+e~p~-eRA;PR_Q6Qz031a{l^DPvfa+(8_|TdFZNf8cz5Gj!S@x>d#%y6 z`}RVyd#fPm@3iH_%}*#erB$b7x*Y2@o_-BB)5B#AMeY?HzWD0)K;N1(9C@*2UWu2z z@NU3U+dM9@&Z5$Y;EM zD&Nr{UDZ&xJQ#Y@vm-iX>d_V}8d7%b6e3KNccwWQVgbj|bI+z9!HOAkna8rLqrTMO zI1iUD!jIcWcNx4!n%9yDma6G^yXV0Dwhc$%I@l9bz+;B_%XE&akoAe2pH#lZyiItw z?a_mahWk)cchJ(}OeF^P&etsribj8EJ^$H!HcVt+rg1k>7fXw!I+$0RBiwZie~HRm zl(m>_TfN~X#>Q^m#P~o1YC;!p#2wbdI7`+hrf((?yjXK+%bmjrKcG7yG2|#*Ejcan z85d*lP^RrXCw@$m&908%e2n8FA$zy`7QszxjQu%>V(|G-kdpZ54~dl97FPN~Xf;3L zW@~aEM^tvjEU#Drfu@$aT^Ajp)W^Ix!|*N^WbRkne(pZnZeM$P;dvKw3RU}Dj`tww z;#L8Zm8-CAg|+L!^Lxnur&t%UrMnp|PZw5|KUF9D2e%#vr?5c4)9&*Z zzKcQwWuDoumV$q_%CcCSP;l)xRXuTc5njsFj5UztgUH0qXY)s40IZ0<;l^afaXTMA5x5oUYcgpTp2GDW(?Ddy1q3{f`Z4S4) zfjSAd_8a31;O=WE5tW+_eMYIAu}&4(l%6bm&QJn{$HHYf)p#MJ+p5NO`VGd;ntir9 zz8v*B-zU1cSm85&Ut-U$<+%8bTWVU^Q6!3Z?X^!}g=MU1l*W}WxD}?#X0@Rbl1dZB zRTcT5dq9-)#5!f1H_=~NB(MdO^f%mDkkSWPK0a4Au_IXdkRev$Fe?HdWvsFtBLbDX zYGNu5L73GNm{=5a1#k8!o#5*efThT*!CaDGNv(OybJ4em*y<8-?@|K}>6Cx;jo6CC zTI+k}rF0`8bbBYyG3>h4<#U(~7TSPD66p`#L7_9nD7JM00%%ykhZZ zJ(iCRx5g`vl@^C2SKPyOe$x?FKao>|pQ{E*DFxouGUL%A zqt7RCUkBqNpYDx+kp$(Y=E?0`{J7|M*!=Lt@2KXS+qhY2HGJjQrfj^YK>n^`Kt1A) zJ>GUs@6ZhRg80jCo6Mx%z``fvN8fmNq>N`W9IVNLsp98zo$HKXcH_dT_?Oi%f8fJn zsNM#PA6^Y?Ul(Hj(n;G7juAz0qWsP~en(O69b8@TOde}jsaCUjnqysA@_v&;)!^On z=D}8N2Uz*oJoSE$gNg@{n2KfCoeql^&H!2+e9Il zwy|Ew>=J~7Jwxzq_ocY&#%f>vtpn?ml`1x;%b?9GEDT*M!6cD>>+F|$L~qq={_(&V zSE47*YV|t{ENol1e!2y^ZWx?XQ2B~ooBKoB1+%~%aox$cIT?*kejBf)1w;Lk!Mdy3 z+pziEIz{P^Ss09xcA2%^8Z)=0 zNXla|?u|_@J-hY+?)RLiP!OoaEr$KJWnHqEC7K}SZzqq~a|I?pc#0r?kdalzYZLn0 zT)f97YGF%z5Q7z?6W%(7ay9H#0oRx7r&0&390jageJf_?1CC1D~~;C;6^_GXe6 zUhiN}9J}!}iqq8uHDA32U+c%uoVCaBC|>SeQe`*}ajTyBQm_aLOtmtFUYp^WxXtWK z2m_W~u9-PuJrm+zSF2t!KZB1gVJDv&xFaI|xW>hFR@|6>aQ0y`K3AMM)&JuhH*(MI z+8E5e3pKSM@w#AUmZlUxG_~ZdV$VgO*W%0!k19T} zY;0w$wA%v}mdWbYW12Bpcx}d~W!9+dROu+XXAIY#_u=kW-H`kEO=d%{1C%RL~OgoeI_92S>f(F(ncH({oON&Eb2xNIo)h?bWhfKoZ#U%}I!DbnjweF-e98LZ9 z&fohP_g>a~zHB=lX^A*!rC%nH9LhFP(C+g}Of!A4Fg&9k{5$J8dS5Mf|JcUQ*h6E%6z4k_62Jp2fR zgL2$>RxO0P{GrWLrz+rEt8c$`(`Jk{H!jOAt^+scX~~`mN1>#?`R$tWEnw2ld1bZo zCOkJN+fHfPgCl&Y)hcRJ;4Q4Q`Q^?Ke2Mgn6&$w=G207lkL0&w{EHNG*A9KuAN!vD z(2NmB%Z&;c5;kBiPsQ2%kDlZkdKJy}w%y21o^j#Jc{SY9HXj!vAc@b0kG@+b?SW1C z2}jN6=TWQ9u(0gJC6q)32^>C>gwQcsnyJ|~;H?cj!TQPu3mQXur%96M5ZkZJF${-M zo+py(=N*CMsv{R>7IEXe(TtEI@1l@#WFF&l%^bXGZkT`c^ldCX!(6EP=?3hzbsWQ$ zjc`ZSJYh-wE1XZ|@2^l3KvQD#%t?COShr(S>>ZDJsNFN=>dw7eQNHK)I{PnSDBpZZ z>CF9n?A2McDa4rU+nL;~FEn}yjs3!&-WCVIA0YX%G)xF_8OiFYqNcdl>nu5L-aTmK z@wO;=&&QGw@gO#l$4EGS`@L=BE^NY+qGaxe5dE-fR`rjo5Hz^cC);oXtu+_8&*U~j z-Tw*8>bF98cB*jp*-O>nxbv1PfNdIhBCjUTx;7U~WoMswHd&!5{%EDJpe7#N*7}Ai zmm#)a;Y&vJBOKVl6?@^725LSo*)}(!1ADV`Qmtkb;_OS~W$89YaHc{p_v`*b$bPrK zu=^4}>iphw$D1<1h^u2lU=SN52Ns>1aQ`jFbnKR!xJ~c$mavY>19()_%GvP`m|m7 zdXKS>b+wKt-3 zu0+(DEz=R#x9jE%Mt7X&-{aX{DGNdSCfQBq)$oZK7oI#%0MY@Cdvil8P*YVA_RXpV z#Vu1bw@SvrYOtzzV##GBXRz)P*_Vyri5`;< zX0T~{KX!&^HYRV7>8LQy#7m)*C1F<{K}KokvcRXNIJ39l(}gSU_|X63aHGjVd|f{_ zdwhTcSk5HLC~V8Z)u0u)8hsYM^OtVj&T$z1&#bl^ozQ|{olM;1g*Etb>e;@)@+Anm z^ZK!N+dYVX*U_CK!Vc!jrlKaVT-dWef)jH%CbC9GaCx&~@0Is$GyTfZ?_)FB^U6eU zm3T{qgsEeK?QOSuZ+^T>xa0OpHxJI^?lXThe~yHM$DF1tGRFB;TldRzl5)l^6Xf(i zhwT}%XVM+-~dsV!yH|~zldx5lh=tjlUrOHzpe#yYA!T| z7-*t&!ZMqVC#JCYa7^~VH(iMF@?HykFb_*ZTq6=Dt;Qi9PV2RDlF(|aE0l@!Kvt^` z`@{xgNLg#I8yg^i^ecROKF_el>>mPbxmNCA+3+$%h|3V?&mAb2+PDN#(~1kCS}eFNUxB(|B7eTLVOBDGx4qhKY)9A}Z|gsVE^LzzCRp8xJq;Z3YlMDO9JTe~9cia=F-DO~=RkVdX;C zS+R<_b*KJnCzQU}W^_k=4^BUOa5!e6EH1g07TG3P;Ja|-)vN`#aGLwR5&x!CXkYz$ zv%=^!gt^sj<$Bt{IkQAA$a@}YZdE*%-`a&^x6*Bj_q4#7ZJ&0QK_E(Js2)&Ra|F^0 z`wuUCsDPxaAC`O+aD`mS+IpRIN2C|>A9r@F0q?7;W6W-R$G}vBIePPyz~HEL>}r|- z+?K!5wd7z$=W^~#+)^%h(dHFV!@!Mn$JYCoLtJ5Z?Qr_{m1lAP#wFR_73pA`7TVGh z-46fVn*|3oPhiLDu98FVyI^hFATCpP1a9POe(C5*c&&X_Kz`#9RK^tgUD3})1RKwm z2e}f6RpQzE?!{6Zdy|&zUt56QDh09PWASj|dmb0E-wZpF$G$z#E068#Blp#w$%0Q* zrq{hI+DLuSIaizP|JPaT1ncz_Bi+w((1}S352l^=Y)dbOnito=v!%w!yUWra8#5WE zMoEKjk|si;)_Pa=>jtcAG-DO{){3n7@5d|e=wRDQtCD>E71(oc?D+>~GcbSEjxo8h zeYl}ven6ry2(NYoN`#X48Ui7y{rkEmk$omb{f{2^abL4SQsjygG*r|S=M83{wBI|- zHJ}OVQ_>qJCM-v4R!zAHSzp`~UA|TBzyritys$pbt*TR4j!u6SLXa$?C&q)YQNyz$+PMJH=Kg|1uSMx5znTjke? zTr|-)es?fV?)G109R3u+FLU;rKNKSE#c@?t^8@zUa`P;8Jcg&{Qzv~&F@WKQ@ylLb z+XS*QTCq1u7iJ;fE$>>1gGX1`vM+NMu1Xsj&inQpkM%c(H-5ee#&ap*c8%p|{8DjZ zr$!QND+*HYPAb92d3Nr)&5I$<`pW!-r!>0W1V4McdNUlFWRCBvP{jS?$t4$hED%4< zPdw|o17!OpPOq{XK-SpOBL%yk;ikHqyN>q>NGtZuG}{>ti5FdBLBVl2dte&3_NQd* zS>)K&ZORFalOa;!tR}d!V2^t8To35Y~_RH#h5H;s)JUr`3636?6Pu-mX<(xcn~f9(Mw6%wkE-e=iH( zpi|Ap75lK@L0W6tEMB-z9V;?x=1C-+*YED(RfDU~`-FznaI}`&Em7?)L&249+qcV> z;)%FnUYqeJl(Nl!SCURX!L%qV%oA9TTL~vL+I9-U%Gve2?HFE!e0Et>vGp8YSqeF4 zurOe1TZ}lj-w(`9s}Yp0V8_<>IPSQmWL_G+EZHbN#X#G?wJ;uli7!mehCIv&n{e6 zRA%dBuYyOn?7@Ym!st#odADeC3np}NaHpiaffDkMRZm`zs80h^n2t50E$wx9^kR1u z`bLfGR`-MP1LrEoA2(4~$SU_ZH6Kap!gsGG1fkS)Tw>Llj|kA;owGG=7M?FzdHztN zJ$~?4Pncm+KI6UY9-SIdya)NUwC)}_-nU7mk!UJPWr z!#0X(vp_i|E>KCz6%PViN_=8?Am!-tW_I=!6nLj7s}vPuliIPU@=9))PpTBRTBHH* zgA!VIUZ02gu8S`><>{leeXuemD+2-ZSPImQvtcYUq5rxcBQAJaAS4CmmLg!9PpQ&btydV8?^d5mw%XNk7l>D zjUK04VUqVv={au;M3?Y4biQ_m>ZWF&bz5~XRVHo2$7V*1TakWt^^`8Gi5rtMd-Fo* zZDe+B&o_fo^+zdr*Fn7EKKX6>sZG$GAT9pAfeR_Fxk6*ezVr5sB$dOOf=K&z+J5!M ze8jJ-YRhph!u!^7LHRqMfkEoiCY$&<5GuMef%S7NEcNc%h*;O-bF8UHXEi_kmb^Zn zH8Tv>DcyW#=Um_+aC>c#&_Qg!&h5ddbs3r$e?)HK@P#4!EpM$0Ti|_YiE3-Q23Up5 zJ66osg>qHpN7wP^A#-tMp+(qxRFn(F`?dF?eemwg?nOIsWc^+Hi1(I={bs`F7*dbt zhQ*hp9F}8$Nu6p&yBvDGeRm1uY=D}E_fw{~$6?Dkeeya359};+-m59~1FyV2zcwb$ z#m>7oF7DFNM2bX3ROO=|;5nj^t4G$Y)0#6%>JG3W`l9TMF>B|cf9VcG*?vpx$vbfK zY3!k-Or40}7h3?fTtAvPnOkJ4vPJ{6r%6+#mH648g#zXR<5%KnzrMhS$7n(+|ud*NxFc&*kQE;R_tl>T=@zvuOg5`|)M%0rN#zIe(+vhl$@X z{%j%!=wQzDi-Sri5){O)jFouR2>Tcnvdq6wCOVH-RaYW#^2Um1N)ZkjfiX z70g(W@n&tzcqDUdtT}%x3EwN7)=%l1g!RYxzdT)BjW*88iLI(Kxbk6Vi(%kFG)&1g z++xj++1t5a$h>qwykN%auvkyX23V)u9JGMXxt>&?_IHRl$TK~)?H%?nl(SIzCJpC_ zFAi3l`QfG46RvBSL6}$^WhNTWjkH}4)ywad!|&}3p(_`;(PjNq%rbi-6eB6GCUdLr%n}GmJ|n;2cZU)1!NxFz2r^ z;E@0I1q^E*DqQU9hD43B#^SYi5oxAZ5i^hozgLGm&zOEed3<1#`2ELzDH|KCuwUIcPA$F=X5q&9f-0Y};r2tDGEGewEt>JoV{Hj? zW?p(LMfR7MxFsoP4g}()vY$ol;rD1NTV=4$j=R!M6Js!ej zoOs8oXcO`pR{BtrU@f9nPvDD4OvJ;`f|XAe=ORl}jB#4+WW=WATvy&X0G(xz$KL77 z!ls??RW3{^f?kEZz+>fR>^)L?cJAFA71|}T(-L9VI1=Ayu6UyQi<0eUVd;(Y(nzV)a0?5MtJ?+ zG@(J|3;LaoE{Y44Lx-I!*Nr9KXbtwiF`bvZ*X9=e*7&dupA0-bF27gD9rVp(KI#XK z6&|}!N*JRiY`jLRS}%Nix#S<;@W7ksS#I94W58aS-Ybzl7WdL`cC{9H17ZqQt_s0qeYV$Fvt{81sFr<e4-z$#+)I4Zq|q6`Bp6 z;5U(ds!1p?vT3$VdX6itL8(y!Y;ae(BpF81w*;MR^xvQkHgCOnV@6Ia(>|xaQlk^P zAK8?yO^JrGm!aEg$2*wFVtKD9B^U>$-U&Zka{vh`2J2sTiXx%M;F}?n2AHR6=J7Dg zK(x0@+08ck1>;35f2n#>9I8;_T2;G+eLHe)+25;K zsf%41#tVDH#$&>*mYD(kXTiGaW{}ePDX>)1>v&!85Y-XPx~dv?;k`@j3ESrx$O~mw zE#O)QCIOk&cPsbf21A7o$8BSbVYl4tGSvWuah=bunA}F*lmM>Dw%TyX^s!nXu@8JU zai=oROCkRTqgJPn9p=fN{-kyv{t-6HEukM>R_xN4{dP-CT8cczzZ6vB%E> zwck5l-pkd6K*!~^-FFt_aM6*p*DAf_Z|e~YY7ee5zwEw}GYM;Q#`rB#dxx){Pfe6Vo$#K| zB-4-42G&mXXX`I6#|^up?1*ju3v;HT6gC^^k>5~0fxgD;jTWI?n`U6hXaqcHm&yMtqvD7pL&F0nYnu9#1n{ z0C%3}g3D(d0e5M8m-@WbnDoqmVP4Q9T$|6dPu0`_FDGeFJGH9=tHWj;*u_2z8qH7G zLbYy#@3_bMo5`>g*#>FBqEg6R2~(c2M*z%A zCRpfq8bXxKq0l05GV;=#6E2bc?tw#I1+2D-VmfH>;o%QCIW$mG6-6 zE30%l78oa>`1ym}Sz{Ve{%-ZLLtb^58PgK@Lo5=3!L~9ILQ*JGOsvy3H&7lhM#;A>d874JnBO%+ zdYa4wTxZwrXDD5W#8j>*6>%AyO%qi!&Do8xk2@UBMad$jj3YSo=oCEWIk&Rvr7$F? ze(`%=BZ@T{B|?Mj)^M~O_g*CG21>LPna(~C#m-yB&kr0QgNGMF8JIV{M9h?_`|>Uy zgxmvTmqXKUC5Wcqa>DmFHJ5TzvtZaW*02u1|%-wB%FgYAms!=gC$DnGI+VZZKuO+JFoC=J634 z#yHi@eSd?d3Np9rwXSHlNBimE{D6CsP<&bxopm4|lUI5gJiJkcnqB8^i&|LW{_I*I zZ>Q-<sc(exI0TOznZXkAqd3&H`MN;YoX_@AOSpK|@#>hP!UF5FNbHq85tMro;`^OUKQ=I; zaNn8zN5T$5|I(U*4*daK6P~hf%H*3cOzv*)m5o67rN=hPZbihtzFDRelakZSeZ%QkJNA6 zc;GG;9eUyYn(VjSk_a9kkF{i7KCZzhEgRoHb6+^mcLV7O+?5~tu7F=tZiR{AWNi38 ziN&OzJSS>bai7ZUgztOrfWFn!FiEM+dxKyOyyrdHB=@)#xx3^Qbu?b0J#(qPiDDsM zmnaJt>~}@t%F3$_4&9jescrYYxF#IG*JZzBJvX%XUssq^XM`E2W;dPqmV?eHe~YtI z^i{Lm$;tG#BVPq2UaW2tqz=@QQ6~NFSXzU`VU^H zjb1+&QY|OP#`hLMP>e6(>0=Q@R)`6^oHhW{&DH7`TlQj)vq3n!ju8r4SM9V@XM~x* zYP$dPeP9~jX0+tuDvZr{inP5V17|R+|~c~Jz~WP_}1z^%1AawxN%86ON=Bw>aPxq zU&x1Dx-1$g2IZJ~nc<+26f@jf2hOte8sNv0^Rd~r?Fh=+ew!t^3Fkv};wE1t-@C{p zmmTDoje|QZRr9b5o5dG0uygrg;A)RPI`2cyxmRRIj}nx2M;>W5ng`B>?LHTe-NS?9 zA*Yz9E{A5D_%z+JOUSoZpE%3j8SYlTy=zVkpvA1{`KI-;XqUMsbDU=bChUA9nAN_Y z{Jm1qy8+*5Xi7KiWjG***B7t2Lo$&Dwk!{5uTP4(3s zu=Ja(@W7gJuWtjRxu?AokpVdZ%k-D~OKIeQ~EzU^Iq!2SVVOm|m&SAGWT8xylj z8?yaNwB&i6KKKsgWfj*;AuHsL z*4!D#Abz{C_2%*nNcIUX_wVO?eUTbAiOXy`U+?_aN2CvP{h-}PVy;ZUmxRKKk@0LU%1+M3Szele=)GShRai(#ciH3J%i}5dDRp2{a*#3XVvQY+C}*L@ zJ?C_a!$%0;S9oRU6^;Y_!)vrQRHDeOMOvb18-6ahS)(ho4Mx?MLm%6iU_e|oONZ;@ z%m_}9X-lg?>Q`Bw+RH0&x?H9@r>q2WfBAoDr+meY(q~RW2kmkEzW4R-hr(dF`H^&w z(I%8m$qShCWd-&GH0{_cI0=r-p(5)UIbapKjeHZW@GRc!;xUOdBsyOEv*zX{Je#cS zTUxXme|{{TC8c1FLQiO@+0pzcyRfQ zs71vS=e8lfvh8c<*k&jOF0i>%Wrpv;-vqDM&P4b_y(gLK!2E1){WiSE|ouS8X~1&;WfpUQWQRtug`w$&gJ=T`2NV$$6jrusFwy{AfXJa2eR8F`@PYEDDb$|C_E1GlK~>iZk9I+CqNARexX1k>601wlNK? zpyBLM;Tu^0pu_D_#1m96v-WB*3Gp6FO?*i2|D%(6cQ0diLzO zxcFenR<#e&_&Jih;Dt*%s%|`0n;RvG{pWUgpr$ za)Jb&YkKMXMvDX2LITYUryxf0wN7^GHpCoXlvi-~F$}t|J@w_E07 zGo#!S?@r;T?YgUDZXxKf)0KL9Eg91uc=H&wOCiwIAmio5AGmkeV3$tQK9p_C6}%v? zkGsQ#*#-sz82i;c^uGBQ81~|@gg`FJ58wU1dW9}-I;mU?2|bT}Z?0s%^*f4FH%59( z{}aG|_TkIEKOexCWchEYuP){+vQ@B~aRzaf4)7gU#+-lx{`&>H@G{!}ZWz7CMeV_R z!etLpx8w3^)!P>lf1`W;1TGg7?DMX7-SkpiSScoS`d=~P_FmF26^cSg*i(o8Gh-Ox zJ9V{ir!Ef9yIBUoo4#V=(vTaN_KsVZgL2=t&gQ}G@uja4 zdBPAT78v6F%nJTm8!b%Rm0-C3%g5|94UlTulfEoB2k%Aoa{ikght0mO4Noi^kdZLQ z^Vp0El(+fb>X4O!hO?mPrB4mmsaa#a@KirO+1ai8>-`f)N^)1eSQv=^s^XrH&x=Rd zVn?2s{qDGOaM!R^OAtP$X04G-wLsjWC4Jowj-qbP6Zy~F{;7U5vuxHfZA3*b9iDca z^9j0NPO{o{82%;udIJhBAY#Md`)8H0xKmcrz~kkFS4vm6Kkc~>f3=mL7EWxy(v_m0 zr;Tky!KI9(vp)r3e%b4Z(nn+DNcky?t#3#5e~LPZpB=y>KHQ>^eg`M4?u|6HUW1x` z=Ml#Z<*?6MWw!f*A%sqXKr4|pC#HMu)kcdb5~fl^D||5{d1{@R?_Q40J4rdRq8D9D45qn6-{ATp{&`b> zOatGixf`Rs7#vZmzrM+U4;PkReWkv*60dU>e_JOy0e0v9>^$r#h}!#|pJhiJ@X9`W z!!^CPkox-3i{EEHmOJgQ{xJI&>Vxms#_VgshSs(7Q_fGq_wKPHd$vj@88L;+WBJz!H$y;!E2q0&+X}u_&wIQ_ixAtheY|YjCIme@GEzTY z1esHbugk6rBV#nHFE7>^fi;Jxm3173sOI#vnH6#nt~n4T6U1WSmDzrW?-(I}^1S%h zrG#S7Wg0c^9}%H(Ry65`6xxEr{`}4##wmV~yzq?|})04|k zW>qvj>MU2UG+Z)~7#>B1PN~@<(kiYK1FelJX7dfg`%8SiE3cQ}G2HiX9WS zel&thdAy6*mG3Y$HF~+z)LnQKsm6a(=raob%QAJ<{{ecZ^sk5WZ6Dp1FK|5T6U;vdvU|VyDT}LMbTZ3%lLtYG8+%*1^`*|M@X<=^CQKjpuGGDg zjdB&Xq<3T|p6opLHo4>|gzXgvK~i;IGGeWNeEGs(3;Ey)9jBzZ^G9H- zjP)QNdQDX;Uav?-YN6SsWy699G4{?ZcifA2!6q{o6er@|1IIU(?yIr0b!M2)x~XVh zp~YNYo&_bXiqzafE37Y82@O&chL(5huG;3cjI-1yQ%EEY~)lgsz&nLv*JM$Y(US){ck{AZ@l)xGLwttLA( zxjgaXgNs9=VfI43zrsxskKKnptIeK|qZM0MDwXeqf2`pZS+^h=bb03`ZGx0>ZEnDqTm&!N z^(B2%8|GWa=}u5T30s|p-UX=@Xj)$@P|od(1!C)uEs~2unQghcOhY<$_q_NcOM%c* z|0n*#!wB;?jU9F6hIfZwmr46sZh#4o#H2&rci=VeYRRFu4RC7N z+4}ryJJh6j^K7&@KWOq-3D4QxSmD&Qq2cpfh#Bzfe@)|Zs*VrT=3VrJ{+4%Be3#0A zEp7g{qW>bc9a%db`l=RcO}*ZYe;#41wmE;K?>G$FtC#3`44~gY=g%n52sg+~ z<#!+SeYwZ^5I(N163~hqf`Vp?Y_F9&>=m6q=YAK0P+ZQ3=)AA^qiYi~J*pFlO#_$I z)0g8~c*4&T(K#rPTW6ui<&Wb{HlK{Qea+>F_E2R)H@=LWmHWu8x2Y4_Z`>_BhNEpU zMd1Y<2&vVw7BP`Q=3v3}~AX{eqW33yo<|3&wj$|$px&#vt#)9 zrf^hxa4rTO`Spm#1j5vPXWQzqYxuV6Yjc0CEhd@Ye5;VO75~lH)-+dUB|@$x8nKmn z*x|KJbM5k_2rn4#UG#M&oKGYbMdYziifvxF>TED-JfoWXPc`A%di}`ecULgKn%5vO zc^@jWZN?4VEAh@_?eDOgQebKhwH@ zX~Xqcr&lPhblMH891L@wt;#@0J<}D}8H7LSalVdaM=;adoi}TDhKlRTw6<4kP7>>7Os z+DA5YWo9cwf>&Vqf5L%?$xmS%en?`uN1=olTMv`T1xkEI`(Ylui1+4G;*mE)98@Q`0J?$!Pn17l3 zhV!|IKTDL~*c5^oi&gf9+L5R*ZXej6ZVE4Fxw{Jg*5mUepS2?*1*kg^9`oNJeGC>I z|Euyw4dS`C{`N&oMVHdi&2usvAs~M6r?vY!nASXP-MXk6mlUcWiuo+Uz+Um1_@|>t zow%h+jOJnF`i(UCrkT)RJrc81rW{#!emv~kJ%T-o#R2P|IU+ptW1Z-X227hU|8ApO zD}tZB^ylIFf700tC)e8o*?KiTwfbD1F0t^+7r}ZY{Hk7+9g+rH>2v|-RiB{0A=mbK z!FiN5-P=Y-tDx&19G|??1>PMqvqe6+VNUn!Q+vwC(BZK~uWy?XczUHjJ!;s9V}?^7 z?7UG2y<8E=0o6}XJusu*uYV2h^}Fg6>x9D;(Rl}Rwqq4v--7YLe27daE~(oogngZV zcAu&i!>eUp`g4o5utQV4QYbM8D`X{S@U#u%?XR7ZgVD}l&PzP^Q?Ns0X@i2Z+891R zV&-g(|A)uH-^Z7~R|lD#I&`1YUAZ(<-JU}Ykm=&p{Ptffyh5&IFL(Nk=B}~L=g#xt z-$uiuGKDqRw$60rQ1WioyN4!I{hsY(duwq9#OC)dK{^$%IsDJ8h;{5+h834!N? zo_n^o{`hb!%J5>q5X!ud&qtsMYryCeF&U|$RyuGu$5?;?nNk^N}wQ4i;uXR55&axZD*GEo{ z#DB-DM;rQtV*8TCqHgm3@-K4R@TOR_! z1#7*0AHd)Fi17VsTwd_VTjTIo^(aZ-99gGsg2?KfjELwhgsLiE*L2zi7u{*Kq@M#% z{qBVJ4Z2wWpVQAL<*(3xEW5OOcscTCN}g!$+=fRxlH2`!($H_gJDPKO8jN{DjaI6v zaeN^j@k@iV&=DAUO;onoo&8+-&Mb)R?EHnTOJKS}XAe4V^Q^Ix zT@QQjZQTj-Uvc7`>E846wxIWSp56&hQGC$%dfW0b4#J{3e^jb@Q9JAR46?M&M*0^|E=?i#Qm6T%2#`Rl{t=fCgiQLnvM3{-awrWH>fF! zEm9lTfrXd3NJaKz^en!+d4|Fd48Lf2`Qxk@j>*2n`3Y4^jCiUL zZ5VfIfl(383-lEP-uVEw+dM_Hjnk|8n_7(Qq+mQ!DE`_-7UC1Cf@C&G;mGr4r*1WK zzS9eDo?QCA3zrrti{yQdgIbb@q~p0V=xfTnk>PxQl{fV6q#aF%XTqhGUy`2S`RCYu zLJ6<%wQSz_0e_B*;r{RK+`~=S;oGZM zZtMt)>>Ac#F{Mxar{y0}l#CUP1rGLMeOrL&QC&L}{}<}NX%nZTq1F=1sc=d?9<_Lb+=B6dfDvqhq%P8ZQ^2dW) zCnBPkTlD+EH!;Zc-}Y~u&pTT8V&EHC-Q2pc?{p`QyRT^B*LO$K*-iJ{WDa69M`OKB z?F&>z$w+Lhvq4<)%i$E$JnSsp`!gnS9FbqdwK9V=AypjXzwxdEEV37Q+OMyMu#v*e z4C$57p-{c41D{c>Aa7uA#-LO4Nv478CDf#Dnd5L=5F2*#%v=7!A03$vt8MDN5jSL{ zGZwQI_p>h_>|1&o;_KZl|J^7-V(k)>^`CMPW>sxeJD7;ud}BMSuNcBumr# zwi!D)UESD3aBd`*+n@ipQM>=C8M?FvjiXN5|Z<#<~8My)@w9d{|YBO^@Y# z5Yht)o+spX;!xe)s{SQmxVCqx!xecK*k68?F}NrP{e?U-d8act&QM-_gNrZH{zz(G zNgIcucS-(^Fpg)U_WG1O*FWoi{L#npdpf4S-y0rmc>tx2s~s}Ad-TNhM@cud&!Xqf z*Yb8Q*EhQ^{CShT5*FXTYf}}y4X)D#iiecBe&V5)6`BUq;rXLEQr^S>zKttwt)zXR zt)x(DIq?ddKgBkhMg)OdIQptb9CatxHoT9j!~SW}jo+HBATV0<%J^>q zTr>?eo=x;Yllh`_mx1Rfp0CwjQ}_#K#yYntuUdh)#s|}WPt=C&k3C(jF@|uuu!A?w zRU88|qgTI_2t(wosPO;hJ;Kc}InM*PIbUUX*Nv!If;g=Ferr&)3V7?Jw*E|Cjd&$5 zNy)+`D7o;~^8JEbl%`JawEOf3)0WSB9{i&Lrh9TsokHisdVzWP0Uj^Z`c}4yWpKPR zs}i}?nOUgw-?3~+e=D|_SX$gW%L{{~0+aOddQ5K#+u*TL6;u7Y1sBF$p^|p|=ZOED_wMKZ_6hREA9bg#6LC>2Jx#MQ0Hob*#nb zjym4$i;PG-XbHuSCC-l(xqaQ#Ib-$WZkUAc^wKx6LVk_8wvSK`X4NN*J~>hX&4)+y zGU8uiD8SR=n4Ju~bBB)??{LRr9uk!2^2@U~$!p$LScW0hedizi{)m&6E>lPTti*>( z)9>fw%kXn|wevF1dD!0bZT>@%O)v^mpWr(CF78b|zCPvc59p<+YS^hNBiQAUkIx$~ zd@LLGy7BxJo<1&Lv0|nJ+F!X&O}gxiLu=>hTKWIO1a-R~3Mhuk>LsdS{Vs56e^(&> zGY{W}6io7d9EN-ZJ9c!c7Z!&PejZbm!Jf~59-EnK;81|{nrEdhV1{@1`fGAIMb}TW z`yCx1EYxGMSA7=LA7zh@!l*{|6Wq47b z7t(7v8I3WUWKz>PPSyak|1anBE?cgeD$K8mppz-eFHK({=GRKT_f<1dE20*dQ@IcC z&s8Nouk1&0%fAl|PaZ*(Z)KO;+7ocuDbe8^#BnNXuav*P-UowE`Q-DvODnJ}2kBn#*x*+5mo~3PZ`2j$Rv%cO&93&^`q?OL1;8yLEOAPHZExwX+KTH1ko&*tWRQwm&ifUcoA#fQwa6YK_>aw zCn)TnMmiFy$gf+0Z}(l$|67;QcZ|R~tf#P~ZE!y8%kJ_oK<e8ki2%k1B~Q>Z%G2Fg0Ia9=HrU)O7?_QeNgrN(+p zGoH)nR<1$$$qVdVPf2<(YayGiQb9Ju-uUq8DngDwWR}dALirp6=DGM7w7yg`ho2rs zZuVma2b-X|B?g0Y7b8IUE&C_q2`p?sw z40&cZGlw)dPfO>5B~;&P&Q>ipr>SftNmSL)n`wcxwbq3M@6W<(-YV)-JI*T3dO;&! zN|+O(zWBE@miTqN=*(ghQf(ik1`B2OUY#IWnuanLUewWi6)%`QUPYBo|8VI?6mst_ zf%l)^aE_mV9T}X@E!>3((y9P&+(k%S6r_)SlQBC~nws8*Ayi;4wXU1T+Di>%Ul7TY@F^WP=VG#Sy<^@gh_{ltNvPRaxQ+Bsw z2JEFAnVSO_F~R2pJ1apDk;xjg*+Lb2)y}e>V`nMub2OJ(xJ@g^;%JNaWV({nNY{TU zQ}*{NDn&M3ONl~T$u3M%lwv>B^pop&3;THc7qo~4F)3lENv`S)d%<-8CtgUilY1?wm17fJFmSTJP=|WS4rE$D?lr=9hz$s-rHo(IWb-j0(lnxX8ug=MH%Rb?RV;$*5^0H>r3TevQ zhm2xz0~TmkGAcu6=$TXUho0VsEgeA519oj|h8H zGY?uzd)Y^ui}9+Hk9o~2O5y51Y41fIIIa0fbBtEgqP11b*%>~x{i_(`ENu$j*A6r* zErKq!Sz^M6nKXYejcNWVN^&1}vr)f3;kfM}>&Z?*%hm$svtS=CSl7_rce}{w@Kr>c zYeKQp6E9{Jkyl*-d+16mBz8DJ+iHY+f1hLD-rP>_U7s_9yTs5nBu5e#&9UD>hi%Vw zr1uM)*n>B0X_og0vaf6;^XLbR!!K!CqHus=R-41%s19BEwGKK0oab}SH+nTY0xf14 z*reajHdhDH3;rQCR`Dr{ds5-Kxe_(QAC#}Wfo&#)6#Y$0dJ z;{$AiZejQf4|_Y$pPXdgvRMYbBs6z~*{iBe(GQB*%YOqAvB{Y6HEf~5qTi6MdrrqE za7?OeH?g{T5A*$<73tpEN#2%%=-je^0e+g;@y|ARs3z_VpfbZ`SEm8yqmbI96C))*&P*}Z=YX? z@>96Jr{58T^q%BX|6Qi$ebvO9d5fKY z;yHdO#*p%G6j?^`(9S)CVJ99eny-cla=qX&FoJ`P5)RzXLBWb5dXiHA1IvCM_J8z|!KZ+35#C_U}xye991V5UBWUFot6c7~F4mrsc% zj&j+9+I?J(Mwg~5w$b;ci)l#%AI|wZpeN7-A5`*a_AfrlJih~5XM9A7$W>Nj{Z~3X z`vTMb*NSF_ZeyIE7Sr7_FZjx+;e&-KWbNc3o3@R)laa*rJq}};ivih9HfK)%E}-Ty zF(fxHq44l$v~I^fxbRuydrLJv$$ZBcCe)H}Umfn9ID^f*`tjoWKg>HUhc>$e1buBp zyG#YX&5WhP^LVL$$^x1-jSu1f=Cd>92Pv;EfK@$u3HjV_I0|&YoI`_DaQ^P{%nHP; zcnqw=*FxOTzlZ5alCMwN^avz1@ueKh(f3IP)j1n-XSBFV>u0*w}_KZT#Fp2MwX4Xr( zlKJ!&T#WRi=Gq_3*9yW>{TOucU&EpqF^nbChP9!Z>^j4EI&XOgvv>YR*|!Do7U!YI z9)gs2VjYz3cQLbfTB7M@CyAT_nE5?{V@1<5_%*bBHZH?RAuL4q1+Yn->rhK!c{mo?=I$_oJRA7CFm!` zF^T)OkyoxH?P}f&y^km1KDm~z#Ga>Lyoqp)6Tqy!c3>v%#Ik*}=`WW7Qdm(;Di-IN z#I1uc|FWG4lj+5pRw>x*KT0EM{&;$P7!zWCuxo@)!D7i|CRZSt)`W+U@?9Z{8nCDP z-SzbLati&f=ib>Hud@Ql4s?&35n(ca2hG%-%l5c$q`AlLFgge4;c%!b;zFg-UA2i- zJf*_@zX7aLM+o^$JV3I-{`gHTdbCXf@`rU`r{Td&p1{xbamtww zL-#OQGm2^b=m78bM9!-l4C9{fOk2AkRka^u9P13=b=rY(`cpw#LMqIOz4>tT5@EJ$ zyrrPG>g*c&MA|FGC`fHP^-X_+qz=v>zOV;tbV_O0oA*qP$W&}EwIR3F6`1>^k5Mf0 zhhm%rRV{h}p@3v&G~o&HoYchh&7QRMXg6d2T8W-$J|WLv(`n8^DRQq*rj0dnloG>B z$N3bQy`T5fOY4WQ+Ma`f1)9i|nn!Ch#u?p%FGy8y6YBTgC!xjsX#Hl54{mSReyIS= zFWSsj2t2^)`{M9gQA?Eu_Zc2jX-qj+%c|+UCqq+T6irWtd&(h9n&yM+H7#rse*+yH zv}O()9K-#W8`xTr`>?63Vrx$r;M>0$jEmkC>LC#-bzD!IFNGj8=>WdF-=Qns4&1Eq zb+lEsjAkzoA$Q+U;_WHI=x`v#Je9-3uEVsqp^1|1Zjq(b9X9Uh8j^`~WcdR{5o0`y zS@3-v(%NF!z3vqymvrI4NDA87Mm+yeK`Fy6EGedf=h*-gl)VDVKUvzA-wR&-73@yS zmGnoiG165!I4Ga(xLa=)*(Wy(@6w#6Gg_?Z&eQK?qnepOMZQ zz?M5w?947%h(sP?((dNdy;5r$TlEa#{w1)S;X>-MqfGPpZCL&yk$iu*IFT%XGtsDj$<|7U&=Q&#jc?$JX46EM#+AdM%b}GPaLIbRhOB$uci{; zwBtzh;YIG$bJVON0*U1@>`G~2Z0yu$-ufTMJWlg(a({&xtEQ3oOs>DatRDMiySO|9{S34UDUeF38`4s^{<#A`lajw5E=t^tf&MS}dsH0# ztQSpOu!Rx)%|~{jSJ}GpG&1#X#o$&e$jHrSnSIUl(9scNO4g7p(;(~Bo(TOOMsqm+ z@Dt1LWWnhZ-8=Z%)!k=sd%+UsqN@*0o!Q3Rsys*gAJ$RMNsiwT)y4=n+R(wPvlzEs zZ;^HIFmtQvYVertcP!!ZE34Q`Q!8Q4YBJs4pXo!AG4tBi4azScvloqK zBeK_+8lq3pVik4vm2WlnKDb3mEj(xrJi?~#NussQBTQdb7^0&j=uX6XB!$~hyN@mD z%sfR#E|GNQ?;Jdf6Tw&Q%dD!%SL*#DNa0yCY1K+srm;o{r+IHOd!E!{!ss4S?YBVF zYbi*@3&V7+EtQN)(D`YXu+Z`Xwpd?eB>x#h{)Ge{*Ob$-Z#S9Y3`^YH*u(~gIwDbM zGJ9*cELP6!WDfY|kxBACrskXwC3dGVbleI0QwY(h&N5dmsI@-9Q$RTaZvx$i#_glSsiK*qpAS(MdCz z+<-$ckamsvl zIIWUuyky`d+DT4Rm6=kG1IkvdBSEJD8u)V$(hi5{owpwfyNZyrO^9hwcA;xF*YV@K zJXJn?NS9vx!=t~aF*IX0{EPO{gz8IlNAxb>vY!qM3NQVAXl{7eC4D1V~_<8=6$*OQa&1Ul*A!gd@yjdxl{*!#YFw|!NLOU@rD7q zIg??XeEKj{Hbi<;edu*!Jd#BjoY`{}_BVWpn=FIt3w}ZH)-7h0TP`iMl7flI0z|eY z!g}Ian)2&0gsK)%-iv%DT_KYStv@ltcbgz}Zz0AJV`7-KCKQ;mWc zcKTiJT^Gd8&@`f%Ho>fFF~^HN<;5yiL}S;TG*pet(JoaLc1x!NDyJT&8a+SyJmWh) zmj-eE(Ol;I4j=SfRic^(OPZ!4$wqM8f-7fu(ADft%=8+%Sl*34#{^lVS3`S=GBGrT z{^Xr!(SHjwtWM$Re{-?5_#hi18B5pOyJ?trH4R-n#I`xxQH$*md-s?lS-pya>@)$2 z2(zHgtDNyEMvK)6Y{wUWj@coYi+9U)n3JpwViRg`a=8sErP6_}NED9mXLkfBj*FR?GG3|}NnoRIMnULaJA&1w6Lb3d2fMp~ZJRfC`v1xUjB~>VH`>enE@y+&h)l3z$&d#P?Lo z`Fe}f<}(T1=D4~1HM?mE=c`=ulpXC1Lq(`H>;CB*RQJnmbenbA>GWOJ$NQB#FQfh!1qTgI(fBYW7>Bl}?Jt|6mmKLme@C5|5j4{rz{J<1a;QNiBgYHa|&IEFIxy3Fk z2&BC&Y0RqjOmwxsg5lvt8XK9$)IEC(`In*WG4mI6Cqs$VbK8W^YCG6)W(VS(r10Bs zIgRms1HbMxTI-$3vBh;sBtHNhURks)r;XHp{-Hk^?d*uyETp?%CaWI{>F`bikm`Gz1I-+ZXaWDXcJ-S; z*pwtEb3VEaHq7#27bKlFg^At(#k_SPX}($HroE22TFYr$k9A3^Q3zV5L#)^(OA?l{ zgc`@0QR7izW=2NSrKb`QOF4zX^^aNKvRxF|=z_(Ezmu?R9c#8=65YObioK#z29t-5 z^jagGgx%Ls_0w^>tFFdGaDC-EZf#EPx{e)6UhKpeQ|Qzmqi^ZDdcL~>9J2{&$ry`&jyG0m2q^PXYWy0YZ%UP!0bhtQrzZ}Rffz;00myi778 zvz9r`f8)-0u=^cdDldjwn-HnqJOn|0JES%?A!i0y*$ZQIp{k9^Iqd@ZWG_4rYNC+I zMeIBqjb-}1!IYf}%=8go$|gA!^_XyHB0r74&?Is524*6M zDOtY#0`oaQk$$YqrqSE&Xv>YctW37OVA5v z4~UcX#C?}+}BEli1jg2ZcHNQ(^HvAfd|Qgx0QxRqhL18km;*_PQ?vRnb?U3 z5bK8pzrk>fDcvRTa6B0I>;yUtEF7eI_8r>T``A=FS2K0{)p<-oF?)AQ+(u@}=c zgP|FLI`n*z7I{gXgG!JdwQo;m--j%vaPv&2z~?*}x;0UQ@F4vSn}qdjJIdt)m|pFF zB!4oPCPXZx`uYdV=gGfl?9yWL-(*IXfp^&>v<<%hK<@>Mdyq!VY-+bZJqyz@hDsk z)?R?E+kc-{W{9&%C9mkGQ#6Y19iZ27VQi<BDng+TEi^YVs$TBI| zAu4af%|pmwCC@g{RzW`MSjPu9gJ5=<+$;zj`pDdLJx=_OC0K8nG#ZJBCAUAl$oC1x z!I2-dJL5HzjDL?UKE_*1_typUu+<2N2UoOXFKY9Afzn#rE z;s#FZU<>sZQQFreYE^Kj#_Oqwy_$>$;fqWu$7Q)BbAzptki+g%9i-c}g+emkl5<`> zIYf`KJ7zf{(RCtn8{??=;1PJ#Euz$dL(G*;ZRFrFpWZL!_JfW;3TIxY{klEO6uDb8 zC#Z_~@=6BJI-jxI;(uVMF^}0ZqlhXwFSYgW7%sne7}~cckj~*r?8?O*bfu^br?!OA z_QDTP*z<+T=H)QksyUyc=~a?&kS51#&P=oK8HzqwMPrBl((Fo0M1%y9z(ap#<0@B( zd~s%bO;2+7SqFQ;cNd+nCFaCa3u@vrAB=bg)GuFTM%G!P;@chO?4HFK9#vt~`)x_? z+fI%xX#t6HPuR`j`n`EJ^z!>GGV3_Q{#WS@iD6qP%;3q{3H1Pxz0KhR_fOcOPLyCfp!_N_7%@V@2!y4>2`S@mMGDfsN$qpnJL* z?84zwsC!Se^peCgOYm!RTwJLfwmAp1E@>K<)g7QEA70YNm4@(;)WYCs zGiGGmhL2D&i3k3~{zPRmSi1l@PdDJ%#rMoM9*Ij)s*Mq8OKuJ*Rn*JU3rdyFIREb-*`I4u=vM2YEQ`mT`9Xf$== z{oe01&FCwoE_%g;bn=qUyFIY_b%riqZ(@Jndr1GDe`XcVexyc`2&S*Z7BWh1?2PZP zu=Hm$4e2Z6tms*aUnY%tzqYayx%;(Ns+XD5oJrT-X|m$NFX+!~UG~h>IP~W7vT;R* zxOJR|l+G`v%e_tT)jp54SJjv^Jr}UYd4zdBiSu8C_2c6lNr=C>!DP(Lr)o}jo%`V? zJz^8-p0^H)ceb$a%ndmGZ!XiQ`4YC({iuFcg{L=eu>W!OOIX_h{C#YM&vI_;>a?3M zSd<0v@<|lg`Vuik*Qn`Fk7;nkn!j=wmdk1d5-lIHs(RcLf5gpgC?|A zYYx*qp%tzt9$>YBBbLg>F%{{}G>GZyV!hm%(_JE{UN5~K?j$YNoMcQTLX`+Hq4VgKYB7{DU_Hu z5Po=*hB;mGMwc^V%sio*g{e%`h2@mc--zic0jQ1iV@y|UL`A|wCf0c#u6Xj&oQc1w zf&S8cqZMQ|xSIK!DMqukI%r7aA6-+_WCG%sl82HFx%ON|*i&CR5SmWnwGHflTRzYj z?^0};_y!ZD^JsbDJd%@`juTOzrGx&2U=c8bNfd}SBzjl;5<9jah00xJYfGtrqbl(CzPU^PFE9W zvIF}zQH!J(BUaaqJ@L70aSZ6C`z~@kQ$P<)0$GnICeUh>$5>_po~`L(e$8z~&36GN zjPtGBI=qg|inl=HR5>?G$pI<)=4?`{8X44^(vjjQQp!2XRxJ>q%<9ja=4nQ>Hj4Qh z{td1hLYS$x<~VgS5#AgRPdzFUSMJ4=)4WYsaa99zrg~9Bm@74xNwE(WX`#g-l#YvV zb0c5ep%>mC$iwC%^SYMvV@&pATPh4`*8W%QKM#)E+{VNBF5#z7MeA9wkePV?x|||U zU&eR6`?PeSF|O>rL(TRKd7bXSP3e48xjbS2gzdrRs|%Sj*I4Wq+Cb+HXVRgX*Wi7V zho32v*eAc2p~qK@bvx!xY2`0jjqi0R4ACO@J4aCPRFOF}U7bcxTEdI(7}aUzvbVm? zhI8o-cD(Z)O*ANH)Z8@Cq^wAHidC@1zlga$?=!YqhOoYsh43r=O%I-~Ay#7o^Y?ZE z)}IhZ#erKiD*v3djDJJ#SFEHeNlQ$cD#ldXS(C&27Zfym_Nfl9`%tTph=#S=ZxF>^Deg+TnMQ z4%-o|Oe5Z#8UIrpSDJmn@cmdv`?I>4e=?77VstaR{_$~G=PpCm@qBDs6vpn8ZO5l? zOPFcyR=|uTgbGiGppG7iI-Wt+Yy+%MJwmPR-|7EQbRLdazikx1?zE^BO4>t7Nkxc^ zBB_*$hO%jCA%!FriH1sKq)BE(D3TVxNKy$6B@H7|6s08hdGGg6@c2H@_qwig&gb-5 zm;j%h5YJTy{q3`WRaNH-4&)Lj`KHqy$8vISnTpA`ley}xXfn5vr+`cO>1K9UtSuTYjkGOjRp$Oq!0) zRfE{bbOY#cEx|J1M+vGPT=tFw>XxWe@lQJ{irUSL$InN9!%KXFoE0S&?uM~eE+&hv z!5v96XwBw3Y`Dc(r$}_P~$B(J}mBt3wk!z+EPSSSF7PxuYmMuTfX3N2WA)@g2dql41KqQH@m(N zTt0i=C3sY-{ulUWyDGG4T<0&0RpG2Ol73!TLNUb-LWdZDym_bTiq;?Uip|7|!To5; zl>037;$`GCx{_J_5G>Ff)@JErzd7-`H4eAXn|`g|1?Eckhfp4aR+|TmwyA;&1Hf^ zFnSR>j^Cjx&)zW8==nI>p@y?#*ORZQ`0Q8dL$N*s2EO??v-&n$w7XL92RnGsb0tL1 zp2}?Izl3!EHTZWX0o~8sptp1dYWKR(b%%e@^cctEsx2^?jet^I0^-&sbNvt#+)t3D zt$&TE&`_ONmMq}RpmIhL%UzSmB|V8IZ&t-y=_iP53g#-zQ~V$PqfCp7IBK~El`U2X zQQXUi1;tEv2u$yRKrUCwQiXVI%EYUF->6~;A=V5!1?X>iSlk3FP-kM|77*5nM` znBvUj?|ndVaWFc+Or&s~a)^5#p7B}T#BT|yBd7OA6po_GGpoKS-7NbMBX#XXioBT zP`Ti{=S^jcVl7DW+DXVQ$;T+&M5dq;O(XB#rQ^5#sImDmzR-4P8D1p4HI4A@j^O{A z4x-3qGFxG`0LAjUd`ov5hV*}iZ$@{>s;Gp0Ox-W$l@ii!2q3mPhqm9HB7B}{YWikEVbF=G|1-X!Bs)KV(pF4S8?g-$pbV$LafGTCBFjYqdKmn?l$_`P9m&uvK2 zs)}Ww+=5*jg!c6J9j=!4CcTKuv?z5dT3wdo+mbUpCb*Nr8|ww*P8n%&UbJK8OY*Dh z!RL-|r>(U=k+!86E635m>>kfrZ`fG|bM9qBi&{Il zhvfm1t2l*>Y5%C+x`WL>@Eav&TC8tBNt|&=psJTw5qQ4`qh~~S(zdeT!1dz3-p;Z& zrciVAOghoa2YN|sS(UW78@=qsDiS$O?Onom%L;XD$4%UPe~gqfym+>cmAJoMqu*u) zG~&x{`b;mOJ83let~-SYV`Fx_<`13mDTmAcDAbR8$%5V$ivM>H>VL8n=96#J&Sn0v zlL(-w^gQf6E`@#fv(Rr-5ry|wrMIi{Sc7aP7G_70MA1zgaQna{Sr^!_%q?`*^)|EH7fi3lv@o;pgXl%u zFs8I1iJsiD-i%H`P1_Grt8b_v8T{^ z#7-On6;3ws^M=gFiaxt}gBOxDMu+tT>2_Yug4jl$qf66o-+#UAAY z^l7>RSDY}GqHg72e#v0^@6dl#GgI_VrP#3?L3f$^M3$XfAvDt2oxE$U3)H37@R=&F z$*HY~{fgW{DZ>9$IOZYh&6U_>-NDrD+(1#b(&%UlN=N>)Wm-;-^qrD$`u2Vb+!{$sx>Lw1;68=QYtaWIE#7de9+R>k z(CIFJ7#`fl53oy=td__h^3&+*eUS3FA68iyQ0CCt-~qiT?!_d*TMy+EHO+B0(1M;M zw!lvHIs%kqh`YKmt;JQ8)$oor+ug&^_8F|?)MHHYoC1&I-NdPeRJznjEBOmsZY(%6 zkK6gFK0$)BB)V5}_mfj!KPV|KM8$+^raXKtCCx455;d*pvEmiKesMF+-dRAmc5OlZ z@3-*t%%_sH9F`EXkRELfyat`1Y?_w&b~Wk@Je@`c~*izYu<=|*esZ)JVUM$nC_f%qKW zNWowCQHbP2^j~&^hh>*QZhJP=DnF9x<;RrXbee{{&7}N%Nem3?q=;I7Dy6qfq3sE^ zlzBk@ryC8gA5RmP--eRvQ~urRBSuL~$CM9C=vI58=u8@jUNe2^Sdaqs{_&Pl>kpyh zr8<4?_YC*;tzg$LU%@YJ1(q3C0f|8+%t^-+#}BUM<7O&Qd$={aHKa)~c^+3Ay#`q$ zCLlgIhi2c2q%~uR7AG5#(T0amc>R!hKNv12DTNjJ-%*->5OxDs(;MaU zBFp%ks4asw=KiJ&+jo&tkkCQW!>QVcVYOZ(4Re@?k9%U-tGpy!I6sZFQ(~#{`v$g0 zUXo@?4uR&d7F3OH+OI`sTy42S`LcxSFyd`M-Zv*j%u-gJZtU6NNFo(wb*eJ(TDq@ z+Kla%nU7U*ck%d(IVq`46m!O2IjG(R!eTOCG#Jmy1&?J* z1nkCJfnU_&)rZ#6v9Rl0VQ4N*))|dEj!Q(3)_Z(Norv)U_Uv=WcQV_ukI#*=rcq93 z=~I^`zEt!=$m1HsU3t4|Z)!&dC zD;c6TjnmIxq7O#B3^8;5lHT)H+M_5((&HLfL*04Ea8uLL(t;%`*w=N| zH0AF><{&FF7d48sj62-)i$a9ahNHJPNnVPJ7cN!J;PC|)C3SA!Zl-yTYVc=vb6v(Y3!&$F+Z0Ighe_DyT zp`&o&!a=q^-XEz${ot!9zVG?6Y`9uK+(>)Gf*wg@y<9lGby`MK)}7=IGy{d5E4Xv` zGBmp!<`xI0!f^5gzNSKo^1SoNDexhs+|J_V{aRq;nkq)`hy;UhtY6s zHWRO8@!1`RT0%BLOjfd0*?nl5rmfKMV=znXE2=kdQ|QR4JlRT(c4z)z(mwmq=f^{K z$4DJTCpYjr?Lj!MpuiV9T9Rj1H2bC{?)ah4aPUC~4$s}eA{%w+`R0CcXmtkcB>RQ(y8@1RQh^3PmM67&iV)3*=G^VoE^CT^}ginqeImt z_1M^1L93-3k-hXewSJ7FEd$14_aYet&TFC-{08NGbz?K;9>kB=?J&&$L{ERL=j#I# z@U5hfW(_c>v3oZ{xh{h|Z;WA|F9pIYuY|<%C~8mdAmLF2J=;B;Y26flwYE}z$f$wF zD~(|{-ImkXneqHy`z)HhD3qT~e1i4PQ7Gika8>R%wMdmvYh)YQ=}yA;Q5zv;6OHKn6RBZXKPd6QS$Wd(nGrP{5&05Fr7}W z9!o`SJ*aZVVP+$GDH|d;GlzTibaeSW{{6K-oK$-Aqz7u$Eo;p}7I~9?=p;7BSphfW z-T1y{CtCi(2|jw3un7Le-tWGOfklDrsh-HcezC#07CFT4IKi%YDbXdB1m0@BnYQW| zuwgxog)d706a%(k{H|#{$zIIGl|yOax!H8YZ9b3K9F4D!&ePD!XdJev<)3ul!9M&x znR{wroXRUE9kv*2&v|oc*<}<~c8o>7F~GSseOdWUCk#&a!NwK!RBgD6Mf~jvn-kR- z|Jw+qAG3I*c_b}R{)(e>45;_A@5sr$L7wU(Xin{Y@>w^Vsed>NnUC*z^#?OZPxWEP z52Vu{aYu^K%|V#sD2gb(LERG<(5Y2k6kU9adK~D)3WdESZF!QCX8vM(BR`|;dm-C< zHChw-9r7%F zj5dm;_@AQ%XW|nba6N-yt!$>ZXCThb)?r%eMU+x83R{mR;_B9i*dCKlYZtcR>CUzI z%TMr(5<8f$Ri{3ijWCRZKb|`j%WAe^Qs-j&u~(g1qYlx#ADbyG(urQgc=I;3Bh)mp zlTXPRK{ve`P&M{4%DU><5rczRHdm6{&DcRQN7Z>gyW*d*MCOs8%;TIiFO%wX^XMz(H7dwY$ zPWu4&8OtD<{)uWN@-h8VBVfCkOHXN_;YTf4naFvLn4|=!vi+DFo{e6ApHrURNUk>Q z4U%^~ftT!VI=3qf0h-$}KztWmRwUB-w@1)h!XN61qoH?kI{Xft=XMfzNFu?QR=j^j z5mp6kV3Hx#u9%4@DMrxB(_>K^RpAx=k-q;H`dMKnjxBhPQj0-s^3y3ecmEw;`~1Y4 zH@V2W)rx-gxWQdIw? z7io?zr=xwV`GQ%AwD99<=6Uxv@%#-er85_DltO#UF^IzkSFW;(VlNV$ZE+PGBDkZJ^#6oSIc-SAyTbcgGc9>04T)hzY;yApS~cM%Q?uEQVujH>>Fa-VYSLcz z^}lekns5{IR$UP@`EY)4uQ6KBDnd*2#6OVtfZD((r0`)B+qWZxJceY`VYxVajaq5QQT>$CY|Z}aP4=VGOVKn566idE%#B;+EYkewv{@~F0oNf4Tu=Bn(Orw ze7=bjcy2^H>MB>TRH2(ZN#+{tSkxXUTl@IV@i|j>~@D zjuTslaNpqpxHd=^5szlm)8t1~=KYD3Q>781ZwGCib2zSd3aZ<}(Q@i6p066i@Aoek zz2CMxYEUG7%&n&5%~QpkJcKV8J_ZBk+VYXwMU-Lihh_KuK?xg9W2yNe_|?2(x0C&Z zj_gQkZhEMy?;@{lM`@Cr4?n2ZOaUuTk$=N!3^UE6Uca=E`}PNuEvUnfl8v-^M+u#6 zUPePCGjWc!Qt@eh+WEU2YVU%?KGK&dPLm{aL!t2rAGPnUX)p~QfO4Bu9yW9VRek8@ zJGWiOso695+YAMqgC2_xYoqQ!OVV6iPc#0j!I*S)oGagrGQ}Fm{>frJq&DDu!5>^G z-2i7^h-C&nDKm8ga|rE%q0~9*aU@>kK|fQQ$eYV4j)F?eGSUt2U|mMnsCb+Nmb;w5 ze=#zwPGmfNrk~;gJ>zIzS}G0eb|*_mOZHdr-5sopG0|6-8GZMQ-1seN-hHG)=#w+} zk`}@r8xySiaExwBg7t|jqbCQ8nB~idbgq&%nPGYGtZ!ImjWNX;Tg$wL?G~UFY*oi#LNtx z=&S!Y^l~u}y+LB;+96M;2Cv`+F`seph8|Tt&p`d@N-lBmCV6D!v60eaaBbsqQePPf z-!URja{dtHvW~G2jl*fY#}y?0OTnV!Pr2V;MOwJ*E32*_jL9Wev2IBVisV0FThV`* zaNL1?y`YON>n+LUlgO)osiA0FFPOT;VV-pl3^_Fp8()gKzhM)<+>t=GzjyJ(4|?EX$>K)3FqO?im$6h+)4pTWO$e2S4^*4G-2#K&+Av9VkA}(w1z()#UN~ zHA{i}Oc^>{S3oWi+I&mLMUuO@3=wAEadvquk!CVRMXn}eyFp~r$Avq2grn1}0o_u; zf`?(l6+N42?F=0zubDtML-d75s(@bp(dW7@9ppX4oF_=s(U!TxF~2boZPl85TJ4k)I6Fp_xqmhA*iVa8;EZIIYcaz+h ztF*8698TVOOb-sMLDQj680~u%kG83k&w5?(%M$F}=^J=?SclhKKZ0j#v@mj97v{ax zVC7}&$^42Pol@4M53ZlN;>e%)^zc94BGW)sRdGD|{5yIxEtWleb{X4t#xiM#Jb3CY zp_><@==tXbd`jFc+&VLpze~wR?1`(?JUyTK92>;!+(3rXH;*{_nDide?z?a~s*Nd(y+XcDJ9v`Z5|TMz&ChD|B01L> zEU@~At1jP3s>mDN_%3#;a(Y+rihEy{!N)%9=&o8e?UX#k8iyan3*!Kq>a_=1PBSUo zY6~q;Z-CSpPh<$Te!S%qnkDiAErQ3r+*7gSI(VB-7T%3d<=U}o zSRn!Icy|Z4ht=^xYt~}H$RaK;6OMLoj;$r@Ao*09RZl-7dZs2ZN3{Zk&n)D(X7|HZ zl}1+FTN*bG8S-~^Dey7)%xb@6Vf>v+{!?)1?haVa{MRyif9NVn))c{LzbPfYw#C_` zB4%`o$av#4mTDDEuMaH7CFPlPL1qNo`(2H`mRv*R-uqC>zf1Pn`gA!=U>o9RVx+PR zf90^0R-byq$4n@}YRO*YI=L9%wmFiH!Bq0NIgqLT*hNvS8t3D0)8Byynch@i7*=;- zvHDHYv^s##%L{PWZ$BF%n+Mg|;`0t0PidX~xZ?3q)M}i8oi4Mf z;wG+2PeSM`!R>v&o5G9FqVm}(Ht2@nF^{zb6mO8%`xsXI-VP?cZ{hyDRZvfkqLAS} z&~DG-gN+Z zYoZEyAJJ?4?_xY!muf*_&MYX^*wMF~{&-qiPI8kv_-ND56try=%i2lg;kkA_11QCh}2lYHr{<2ek~c#8=65Skhu59R$i z^uVkMo_^)H64Zc~UPaXOU6Hyq`oLr33=AoaM%LjB4DBJo!u{9cpUg#OqBopEw#v}; zyL!;h)`iOgEfmT6Azb(z-w%nxQTc5AJ@P z9Wip?J3k5E()am1(sel{rhP^2wyn6`W{4bf!FPOm1JlRf5dOalY{6oCI;X6FjpgQ) z@~{rkg6CeFzLFjY+oY5Bi9K!VK{|Pdxz8O*Jo4C&TN6s@^RU;neCcMA3-rV3$HsKr+?W4} zFUHG|Ac~xo0HtPY8Zs?f_^u+Lc;-5MuZ?0VPNVU9PXn4R^(UR&{`~unKIkPmh!3~k zM%#-XQ{OOU@(ZlP-doCWcM9MM0Yhos{HY|_)`FXwB6IGy5gKFLdD#16G52QippZv6 zK2e)R>ea$((K+@wHIJ4@PKVu*&zNve7ayPBfa$9jytii-&In(uxFnPF`GqXFHX7NV z262avHrP4%3h(`QDg9Y|6`E^%gRXnhLXnG~+xIC;JM^A%4G!UDKPM_2Q${I?KOz75 z28(!;OTUvHS^Tlzn7%ulZTd5l^yZJ`!?GUG-ac>m?5*Z>v*{fEnNAQqyLoinUK2HT z@qC)TCOy^NiRoYe!nD^|<`><9En`2Ccb+~Z5`OS`S5h(RbtZ;B`bXU^?NscmL)-5= zKx1bMDS5Z!k@h$$5L(k>;f1|2x`9uc(@hgp|3WyL=u)K(Q+@u8+Q(V)Zz~_6QuaKr zT(=)pPJ;B2+Db`}{Bbfr87-0d?3MFmYSoYDJtW#l{&5D+D3uo(=ofrUzsaDB-u%)q zcf<vOF zzdnmwulh#em1azPks7TQ-AlI5FVXxb+4yOtLW3t@%B#0fm7i@q9dj zbW134{Zg9#ehKC335_PfhXwSHfqt3_{Wm{^_D{dZ#!p>JI$tz|saF{tb|S-8cYySk zegHX?<4pQjx;SJJUEleDAN;t5kQhi8`?_JbaRIJ9D1zsVB-kc1ax31*Ocg{g?(v@d zguxs-n3V^!b7$eTI*zWCg`(_GG)|wLjo96d{NIbS^kcvjvQs}uSy$XBcts>;d97r@ zimf=KI*)x#pF~=bn{Z)@As(~_@zt7-Dco^7f2}A36A2TxX@V7$hhL?eGX~J*w^cCj z&G7EZHr`Yw`p_PA^3@X*@jQAot9{gk9(NM?dL0QGa9}bOu3s!}G0ixYCb(#S!m(=B zM{+OMkR}~V`pscb znVZX-e5r3ZKjcD&nA5wbf$wJ+}lDks|MXr5FmW6JV8y-Vb9pdRv)?nOz z`lwZ;qyh7|@DN@wtwOcUb^{MiE7<%s1#wnRr zULw#69FHmAO5l4wX9Qd~*#dH6CE5 z$2M?}voy_mAS^{z+OoEkRt#UkE-tC1iz8kzg~)B>5t7A^JhvdFi&C`n&?CWtJ;z)g z*g{9IiFze&Ms#5uIgG!ButO7B^}4&n5?5mIsT3+G?Be!I4~bk&J3iVTL|)(nygqY< z276xM!NQ-h`hu7-&-EkVWpZEVxP8I(V0Bbz_d9$OEH`(;WKS?vvBTVk>W zZ}TfFKAwupB2(0KT?5~{r4hS>L#g#B*O-<-KQ@fx2XCDt*D?d_wY!8dshr%>v~hdg z2+TX$MZU8Suyavq$n5_c|5jcgi$ZChTD$@iCrx8po+XmPo$+)qGlZVL=t(i3%4y-u z&2UuB!_u4Yacxu=ExWWDyC!Cmh1m;cvGTa^(O0tcH4pL2?l(*I+>V6YyL9lzZnEUI z2>iYXV}G5*vDi&wu9W3frEV1Vem69w+9@G8f_#@3LwfsLSifQT_isAier^|bs_kc` zmK8W%Qib8GIwAclkS$r8j5gH<(sfFO`=S88^sE{#h|W{BbQKKBUWxOY6vpfbT!-5YD3j*J4%We+4VTVCTLBi=1&)JrRybf%_Pauw2j_g z4##&zPrP?u!|y+ope+*>@F>O;j%(Mk53@I6!^1FMqqmN}4AW&AK_h6Rgf&lk-Awh3 zhsjyosiq~h(4>3wXz^unYj$*k_Uj~;)btOEuJW*1sY1hxEtz$96qRV3(22fgv|K8k z{d>5C{zrIu)``r2 z^uvjWZ1;xJ%*A-L%AZd){7X7v?L1UP7i&jq(zulh$eJn3@0hHhe&@27Q=k`J5FN-~ z(Th+#Czz`a7=Y;eJ-GS8DKza;E}!ZqdKzAZv*FjA$#|qC`>K8hSqJ{|r}_7gU~`0P zDz{QOE9FU773p}pDx09b9Ru46PNVrL`A$(9DX_NUQ(mmpw& z2UOcO(fk_&A@zJTNo0A`kH$C5=iwTWr7U5${e|wjp-lWfs?w5t1!h0|2jXM%Xo7n% zl^FHHMC~w&>L>Ejs~Yh)sFLLhU$9m6V$A;&O6soaWFx9U^zy1X3 zo;R8se!YSinOA&HdN9q}-;1~-%vK-D?7V=0ZlPsiDn!aC1 zdXhkI^F!N14E zFFn&D?S-98TilDJ=5FQI8#M6o#vgVJ0n~6xhMKg8k{A1d7s-(#za`0Y2j0WgP1{-8 zfG%XN>BC3p8bfMa5Bzb|rQxGP*|jh!viE+*Zm&_GTszKp&U!=&>L#>Xvp1bE3Z=SF zop8Qi!>$^?rP!MjaB|}joELkjuc{L@+kWKQZkJ%PtDT+coCUv0GVI6lpJX|I2(znO zgr!D?D5w>Dy--VB73=`FU2pkorG7Yg>k!#h=F$4;)+9(NsF8ieuNrSdZQU{`y?a5I zYa{rWyRvjCs~?lHvO{&+8oFFjkB5gf$lv}Qf^UE3$95cmN6J^ORy`QHgHuqq{WcB$ zIF|o6D2;0QVHPxLGewv^MS067npGLVTXpu*l>%FI4*Cs+NCQYkO3|`onb_S{Lc`y_ zAOn%R3K6&JhH)!kuKJpNFp!~_RlZ{172k(zTlhiSqu6dR0h!)H8~bNM)qf^Z>6%UK zfY=GY*7jjr)QX^|y_MFvw@`Jd9b1&gXl?X(T3Qt^{LY<_Z0N?5pkFlnUmvV|GJ*y6 zaHEMA#?oi&Z@71*6j6O@#GI!_`3a$Dl)Hh=Cp55W&F48 z9#=7b;%;6%e>siW`-Yp2xP)6G1G?bhKXNv|$YhEqQHB0}HoV1}PFM9OUF#R{5IZ0;Y$%a74Zcrlo!UR125k>}Or*No4FiMl9 zX~6HBbfS;wKPVoGHBa7?wVwut+!{?M>&n^hFMrT5e+<8ND+n!5G}y6aDkO8QijQrd zM{TZ6G*wX&weIGu=YsxF+I)}tc&NjC*&v!@Y>4v{TwwM?0-sd7*ok3JX}8aFHj=lX z*MWVou6c#nf%jpqedRbxcm7U2rsqMu|8Xifb^}3woypOr236sY#OLXWWs&n}&xtn(|J6!Irxf$$ z6CJVFEfEurTEc%+7=BnTMX944%Xlu2-?jVsI?h3}jd$u*^1*Tm#M);L(%99yLZ!X0nMX`f943MMv#~$=jaPWTmWU%!T&Xn2a zh%S*StuULy{w_1YoS)0t<_#UBe|R=)v3^0)x=u)3X+|;u)3{E0A#x3F(vrE)C^fx| zr<+csqa!N#Y2N~pT5C>8k2gT&#dFsDON&M;euCsa6Z+(9$Ip2ThRz>1)-Yo(;%pMw zhnEeQu=^y<>Z>Al#$RlUQ#_e&-NH3{YQZWqf=TT5!Ovc6nfqUT@G}<7Y@iJ3v{*6w z_YL$_V>;h-Iu72?CNSASxmY~dl=Av*plLJwAm3UJv#)+|H7kYwLPtET>cW&)rF7`j zBj_}QvgY+gqGwH!Zz~#%>}BP!*mRgWwq2v~GJ23Rbr*U2r8wU@7~zwXXtwuAT9y@v z&)z{ud+vnxJ$ET3;R#jlnjt!dj1XIs&7{4C(2Gf(;P2~@6JJD!?#`gSW!vGEz6z4h zz1fTukyl+1$PT}qiEQiRTAW8IypS^tu34V*{`?5pG ztT4ypg_n7LQank=J>;WNN`?!qS%T?C6i*RZl^wM(8d^s6uh&DNbvQ{i8Nf#>lMSDc z2Cugdnd;@cG$?5bCFm4kIMg8J-9bU)sX|JqPR_trSj1G{zD($bG>?h||(wgJ<^deEc2 zdvUz~8yb)xd`Mk_&h&RLwww+{_J9)6NuEemQGI!}zbc9wz-Ad*!uFmcckhy>v72q! z@Mp(K;n@H_M12Nso!*5Cm5(%Wd@PSEp915d4#3Yp3-#mk{kKHI#^b}ie*v_U3 z-rP@dN3@G-gs!c~NQ6}j4RHV)JN+Ln$+^RJ>m+y%s$jWZ&r$n!KVP%?D`H)SVnTuo ztiQg4(U)E1D)*C1H4Ue+IlXz0du{aQoF<>FXM&`!uH>D&4=pF2Vb(qks`e}6%S(lJ zG&F?2QQn6AC2{mvXm~v?5KVNrjr(e*w7n;hYoZjleiMYpMpqG0Aac#!f_b*lo1WZr zAqg>E0J@>%qiX+YwAe>$p_$yYT$qsC|BNlil?2|Lz8O7%4iu8t(v z_zv>iX^jIb^(ZmqFZ1yoeC~xkoA>e69jDgpsPpP#$ovlTKcH%n#>i zA@oZIg>G1lsXiy!xaU!H-)b^nG0+z;QZ49JatI9?FrLOfUyqftovcviE2?faklLkd zaP@S=H|J(rrfb9JclLu~swtE6G^U!p@wjfJh}CHwq+;rdeIct+_r;ppUMTSSQ=3tJ zU6K0!>4S~aZSeicM(k)vVPkS1p`gPAdt~w`(BvV)B_iN4XA>DZ`=C-wj`cpihE@c& zL!gv27z@>? z9KxU^93QmVUdMQMHh(wH`46c%PvMAX-rM%$;+y9N#R z`*$;rq-jENNGTT7zGRISVo#q@D>CdiQPlNM%opNTvf&^WCgo8;kS~rpJEG-g655?t zBIxxe91HnIw~s`y<=Vkmot%h*rNdAya~(1R@&)Up630J8lG@L7@foB;Ze28kq40N= z&qCWz3H+4~rwePUaQ;~!?`j-L)6R7vMf)aNX9{n`(SySG)Xt)2GHbXD(HNgh*ugz`2DeBo^;it4W>$vw_eFdjU0fY&#(B;=wjjZ z`bHH2(qupPDP#;+n z8m9a03mk?GM`OAp`g#B1YZMFU?e%}$RPZtXt6juyy2L=ODUKb`oK6(_ZHDfD9kJ$C9ZsY}F5AD#_`DVPz#G$3?RRy2~lO zKo`dauXg>VpVUyMO}fJt^W_BvBr8$OFJ0V80VjVmS6dy-{??BL)&ybC9RA1EceFM%pA7=WKVHpwcsxY4S++- zICkN51NQqFU?$38aQrJjKTG&5C;g=RxBrU#tR^|FG{@D)`aDd17D}7%kw)Q9TBB0I zN8IzG+n=M!$UKH@@-MN!wY$k@)+f3tvycuYNpbn0bC^7A6K0gmrd#3WxESQr5Y*G1?k-ZV?~jV(_t=4-!;t)W4_`g~4gzw9Vq#_lW*+IL;-zCqezQ9H z>k$Q9w&p`W=h6LTt#p249PV2TW(qep;k)D)Vm@&=)I=z0Ya_i|zeM-pLwwkEf#37B z#)s9<$a~^v)Jh7E-kDZ-H&*e*ZWd(UUx&|pxf!Rc9oa*t33Tpxe=b$2K~+L;tGv>P z*Mr49{BMxp0Pp8a_`ky^m@usek6^ircymewjkx@UN`gcmv^{a3bGDRYu$YcCXH)4% z;N`J$^w`-Kqx!p&#yLjaL%J|AehlyLUqM@BHTjfv(Ij1^&tLbmL2;oQ4^w(b6aMYy zTa(Si-*OSp7H_1>=?`cs`%b%WUE>3smf+joA7~7{jbeunR61rdl@$-5As-!(e(nMN zF55>2H-GXTDdx0l=LOQ5s|vZJ?i94(3Dr&yV{bkiQTKC^_Z@f@y$5>oK@nxhl~>1V zw`W+q;}x3|s)C*$<#_E-13{L1$yNJ4fn{MNFSmGwUw?k%z#kL(_}h}KcAL*>)%byoRPhtg7V&}r&M3Fk&r%{xc5+b-f=8`k4>l`Z(uJi*=3fbQcA6x(UgPWKCl zk8)=F)_sEK`JZfS@gT~#sweN>Yv|lqTkiX#LhzW*BR+ZvZhnx*Uxg^_FdIX^Qv|;@ zqZArPPN5*%oj!aCCn?uW?2%tjYB{l#Gg%uKAQ!Hn` zynGZH)q8UFlj|rXIh=Wpj-t%I-mLFMS+d&D0KZXQWIUlCYs{HNL*am!$@!RbtcC_= zwG-A4goS1h9nlGA>%L!sd_x^qyKVt}3l(ztRYebd^=X>uSvy|%mMSjh(=6}JJZG>U zC3{`L722b@pP9zYpxT!Q`09S`Siiat`(+#meU%|BYNZ|S z>iy-do{hqvHIeODvK6+@>siRtp>T5ZB?4>CK3T(*=b<}@5fHR0Lma9m0v zvObW4-XrCBKiA(hDK7#?8^g)Nz!-C0-$wJ7v3!)yB@FBTgC*(FRxCq-jX_ANo@(LCYPs)8hN4tiRPK#B4EUW$ych?h0-?+!VjFBDi<3 zp6KZmo(Sa_#M~BM1;Ze;?fgdu(@W^OKzsPl`bP0Gw;+{VKE zd*WLhFq4JrwxP`W{$kPVDvzFD4TQdWhSgr>^leW7+rRb}PFNh^|5m1vRaORTe`$$L zda)?;mqtJTWAxPTE$ph!qqU&{yLMjWaa%<%&zm0XwQmuEOAhdU_QsecY0J~j^hRl_ z1I@qWLNAom_=x2%$kW%IOibos;E6>zxF;9wgVnkJH)Sfn7|aSI4Mkqri2mDWMT1(t zGS9q?kWe^;y!j2JU1-Bz%(uhxqxI}*p9ZRNZD7_-UXWbdhxKq`blUU~W_DahU4|Q* zePoucZ_TISquZKU35b)nU2O*a`VJ7^u)>yWpSo$xNeAk;X)@*bJ?86wo8ra304fig zDtg~Xu+yUN>#X$!rnNa8J(iy08%5vvfoJ=<#@?^+U%7zZwO3Hom1k75=hPF3LP##xB+jAqwj{Y5{0DZjdJDaO@|#)KZ$=y9^0B%5E6 zL`o!6c=ZcO)8qJ$&}TH??>ZT`@1PLPg}h5unufY02~A)bTukhFnso@qJ+;S?$$cP~ zcjkZG-34?MNu&7f>L>{Tf;$A)K=9x}f;)u8Cr$z}B0z9=cXxMpcM0ycxWnSIz;^wA zHJM3AN=z`=zt;MT^g3d*^~$Xtg-u`1T(6@5ab+vw8~8%Y0tu z*IkR1*0P@6ArX`IsO+02vzXO%rnuUPYoHY-%W8TPy?=|DA}p}F3~8}Y2JgPCH5*k( zRFNHJJ*Qpb;`iLzzU33-qvGlH0kxiqtABRYM@(!jhm_bL_U?Wt&u1DVZd~F%w&uI^ z(cf~5Tpq`?;j{h4g0q?R-HR?s=RMVhe!i6OYPDayJMdo4>^D(+v1pNe;&WZ|7~W6p zn{rnxD~ib+h4yM5BmNNUkL(n_53b1m^FL}2)>jb=o{!VE@V#}<8Ev)P0U5=FtV{IK z{I*y7tg*snvaKkztGBEk^+a}DeoT(Pa$9bmlU`=6*-Knqa6?+TR+C+tPSVSa^pn5& zKjmIP{*KZPO|En3%lGjXYWX9_N;mFx{KW5(*si;ySC5=6hgVpjHOoC*^!v71dv()Q zWXQqy3MbbWf9@TkrQLf#-W_*L*2|Daek=D{Pm?m8$bPAtex<9sTsL`=^zP>-G9L`p z3M}d*j?ev5&oW@QJX30u-f>A$S**uPt8EMNuL(y zOB?jF=MD19{7jE)ej;=uL$}1^G?09O>gns?}>J+{SSHk_e^s0r|0t0yB8w- z+X3mty>|hXO3T4(=jc6L%gFA}o%Q$au8L0cZ)w)nFQjjy4tlflPlWBGr+T?8cV##C z?plT+np}PHm2iJIPwt9JFH<~TC)|n)Ei!VMw5$I>o@x70jC|No`?}U$H0b$R?_r%% zHt%^%j_BnpC%wC)g&t}m@4l;}T|Kc<`s^zyOLkr-{W{dsyFcF|59WKWXM5}-fB$ie zbGf?mILF+>0{4mVKYa8jg`bFrXFT*1PWQ#KtiOwHo@M0t`B}vB9Suazd(ry5^UuY> z=zjdB@lctm(ikl+e;N5KS26Lj&Q|H+K1pAhj&naPl{`^;gDiXHlfL4DkJw+gg2>Bn z4L_SuN!!_Auh=zis_x<0UoJd7S#FrVUyOKqT3@_vq*&PRyZ+pzrl@_6zX_kCfanJEF%w{h}|A~S5otm^e; z-fewE?44;cTig|`$Qq7`=1!8KgEEM^T~EjlfqS_QI#DmtCPt(<`%vr;`%8un$e<7N zDkDd-f4-hKlN{`PUdB#cB_h*j)|NHPExWz#C7x~mCTfRm(J!v*A?}7Ok>{E|m)Rdb z&@cElmrZNii@`hn#j2c(WZFetWyOpsHUAS^W&aw>w57x1M9}gTLR-?5-%F^h)hRtd z2KGp$KeQXpZ+&i-3;cf<+3(%b=5;(QUyL0ooU`aTCk6J4nH*WTx{bDFgBkdG9b zTvzJH?#~v5++yVLE>Xg#;8roMWDVJJ&}02`!GWT~n^}5$zy4xjcpmx3jrVf!&cj?| zo+pb;yD5gO94y+l`k}3^Ge9o>dRo^?Z;^c(d1>GI-l$*AH*(hNZSqdPp?ZTjKUrgP z59#N=TsGzVUeU83$=AhF>z*T1%1qzhY3+NBmuLR`ATDRCBHgxa(A+Zbm#6tW&$Yo7 z-Y3)PpB6unJG(^7migujCqCbAmbaR4{%xIH8{j2QPGWzL~O~j0V>!N<IwBe4T&D4hS+RHa$`TQ)hqWUd9Z& zPi`DKNX~0Ih0jF_XijG{%4&JTwAVrFWwRmSa@@LlqSfOqdhq5k!sBZi`JBI>{;5`P z{buZCS>13`yE1g79KWrFbjy)ae2g5cU0B~p&fPjq?s{x3m&^^}(y|b;6yGy3juBGE1?pAI2yHf*1r*52=3_LG=(zMhaa_kXr9F~YGXSnXX*jMgI z$2}?AMvKtOJ*CZo?_%Y}x3a*R4*HZ!pXBBmWyN2qqQuU1XSK*ZQ~ABnwW1im>E9-# zn<$&Fk*JwnYl>06`6TYR7i|Ny@$aD?zYvl^ti}b^5$ZTso#k$vC!p~4d zSi3umLJK&5>2g!wS-X{NzpJWVYy4Q5>fv+reUN&@6ey+D;69v`B9D&!Ii-?Iq8qzN`J^{X`U;F;(*&$@||@a`6$e)`h|H$Dqve z)_@H17}uXe0#fol?nzoTdw;q0RVO`1Homi%iSLF6HWjB1Jl0NZxF(8te3WN*G!e^P zt7{AL30c``oQ!jrAa8Ygto6zsA@&A`N{{pWu4DfSn$?42qIjbVV)~56@?z!^+R4?P zviPN^VqbxK^3#!Oa^=?FW!_6^`HcLie4KBFmeI4Y-1K0fn6mkxxOGU^3ZE?_pLY1B z)#Cer8K=Axt2|rC*mO^2he&I&quLX3|Kx9cX1_>oeScf5-F-)UP;HfT?{`CsN%c@} zF3$CYv9slbJ1xb_3+F}Av`e+`&4-FUpHAvNm$Jx~SC@%d`5olflKn-yTVv$H8wK^t zldH>`t)^(_tTpjuSX-@slV0-PY)!V{cSbhNIWKo*EhT@qzNkH(woiI-FJX~ZV`cr` zt@Ms*r->fvb7(G^uE`vkgx3wYx z1LSh&PNL)0uCjYQp*O4gLdLG=_dHg97e0k1>)(!)l1n#->38ewmYK%&)n@T`*1B&f zsyVKkDduzt6f06Kl;fRU#J8hc2Zb9OPh$CGIRbh^5TnVyI+MneX$r0l_>(?$uil_Dq^p!J;%5c}uV%*^2a&X-^ng2mb zA#%Kz_eWikUrJopKUr@VAwL>uXS2D*y@;3^+ipU4y+r^cq)A>6|_VSNWQ$)?ld1UU-W95ah(K09^w`j9) zjc9r8iC!{%x^OL6RvY3PCq@kj)t|=t-bX9z-rw_xg2(G?9&5hHm}qzTC~Z1X zZB%FN^W!D*WA~GKYnS;lH19~w>(Vaac<`X!>k#w%BTz27xmtwWSg6fgl~-&iIa}NM zD5Xp>M+oPJ9mQE+sa2YlPdI(pq1TG3DW5#D(szY)mzC1bk}XzNlab@2 zv^Pge%e8I?4jV9(GQT_P;8;$28Qs+@2r~ zyX4T;G`E$?}wUJ!o_$|;^-?Wa|J5GX1xw$YA-myxbb zn`luN9pz1jta9GyWAajq-Fma3Eydh{PqYt1hsnYtoJHfVP33m44%)`JQ(|%5$#RD0 zKC!0E9_`!3HS*H?Zd%*6*`!C!a6NiPQL(U4c3HleF1lQZ(mMC?;d3runfs}o*mR($ zp614B*=Jr;5i#+L==yDY+b*J z2~I6UZte%V|E7mrZogOVel$de@g3q$#pAR^Wsiy`d*104GmI4 z_7yz>cWBo8a)_`NH|2@A1M=j=?jj~`k{IIRs~tELE4nQFs=aR0hu>hxCeEyGC%?K~ z*TxojBKzFBDWqM@?h-8URqmh@oSviMNCHX<_T75E&+E z1un))`$B`nxNoiG*c0c3gCR(!{J2gGd)7}Z*Lv&D2dBzs&);ZQ>O{yN(F^qVzu%T; zydDbsos~rQFV(f^#{Bl-rxSYhbOmJBa?kYAcP{ZgD|_9lQ!%lv+BSVblM{0Im{sEC zjz?mBxlwwvN{!`=lU7>wBYA~wt{r0ahFK!E@>x-k?`f@R)>s$Ari)#9-szqGx+{xE z{tzMkD$0|E`Rws=c3J36W^HSK;_#o$UVEMnCbXpzvJyUUS|wO>}b~Bv$7R z=5M})$WleSi0}LklxN4OB11)8EXf)!+U;p4<7|$K!dJM?>peua8MQ@!G^vl=@%f9W z5z|`!6?jqCWAlrVQP#3bmg{0zx}2i&10S(rTwP&*VWHUDs*FDSTRm~5)l2F6`#tf; zl<{&^(Q>j0e?xwkC@lMK>?}R+*W_=dwb2@`u@fs@A8O9|>&Vhp4s!ItOk(`@r}|CL z(&Cl-LhZ`nqGHs<;`)fkg=MMg`DE3JpJV{v*M7FVo0t()P>bDpQ^bzGr1#+dxEgzJ z=({&Bk_&b}5!Jq?<~Jm{82n|iykEJ!>{_>yd{;7$RyyXDxV5pm{;}O=k?+toxwlqn znR)m?5wy2}+*$FE$XD&Dy!|yqI6d7Y#y4xP4el5qCls>MtsBKg3gJ^8BP_KD|k-@>?Zpd<_=`LS{-2J|7lss_AW~OpyC)-_za|DkqAZ zek~{VJ0$NE{Yz%`o6g^@zpFKfDkbgK*OQeuoECky|EWECt z6?yk~I&I>JIpRmmN`2ykKg65NT}9~DJ@QFJDZT!x*YfH1hqBr24B}AN{#t*2$D~Br zquRyQ`DGjHcG7+NSi!BmvS^bN{QdPh+Q+^tL|pArTAyomL}1MmdfKv&M9l5+`suH| zg?qYna@X`Fvdpvd+JZ-X_M9`TR(oG{(e~XY-SIKMKYORBo-4y;(PDtLaJ%q9^oaG4 zr610bT$I#0XP@woe@1-6g4Ft@lf&e^EaOH0;Bvy-X|Gs*?K^+(Z-Cw<;J(cD!$wSU zTKA9bxAkl*helo!d&4ryG>%~>a)?GN-Vsp_#qh<}7fMTHmw z{CXPv!b2lsq5}+F17bx~Ky*N4r05(Un5!B?m&zT*+bSK!0Zf25+>ip-DO-U7Xai?> zwr*x<*3h%9!9O4}xO;%1C2`9Rla&9hK0`4?1O!AH0(u&oC8=)+4hxPpm#GQ?-6PZ# z0($xd83H52Lk&J5ox>x8qk}@@m#W$~tX=1yhGSg5DzDY5jln-A;-_?2Ko4=RWk+!y z9<7-l?s;_-8!!OP;DWcUSU;EmZ@9tyFpkeZFxj!GI_KNd7T%p`2Z8e)JBkJ9iF(L_ zXB|3<9Tdpp+3=mL5UUqR_+rO72G+@5TUk19)By3j*K+~hem`)#t$Q+J9F>N z^U#a+h8c)JGq}N7rK$5ZmhBTeFatf&25xYMs-wK^$@<0yOn^E6|7#dTAMS95x9YzK zoU1*SJme$fFcE)Rl?$-5%;i2|68Lm47>+2B$>dkGQY;^3FP5o z{8tFRg=c)I`He8e|II-o)BMcar{(V2|DK62vJzq*Jd&B;fPc?4 z{&A!WncG|>_xk%4=2w?(v)4bo{(gn|)nRV2|M2?z73Q~qZF3G>MEt|@{lUYO_iqjs zGq?FjZvXi!%umgs2F%CT|Murkov+po?i>&m-I@yw+z6HAk+i%{aF|aBbrSPia=Mw= z=;wTM?c~bim**AX|I-=t&+QXS{lg8M*LLSZ#?NQas(y1rsE?m%5$b%Glp)Y!oQ-SL zioecbaq&d8Gv_CcE`DAr-}3r}Ijyc=oS(+|C){Ro{)zK5xVC@@c)%I=rgQ#_0cZvn zm>&t_OXk{&s?)4tt(N5s&1!n8t1!XcIi6SIwDQ~%ui&TI1r*Qp546T1A>Q5-VG7m!xvV?-wrh6Yga zl1OcezmOe8Kk9_&9mQp+_!h!7mwje&M{T;xB^+^o(E=;5upE^ z<%b3Pmn&7OtYtc3D8`7Y$9RnG4O~N&y7!H=Y%aWzEZ;L)i0WB{LzsihUoD4(ZrXl?NPl08sF(G zceJKusPg!Cy5wsZw`cbDQGSuJ5y|Y(6SnsVpWw(I!BGK8W{_BJ+IW&oFk$@hYtUG# zKCAEz4m0jF)#c!b$nfsL>e)`xR!t$Xef-9kw1b4@vyrH4$_Z(80hYIRAJcj;C)wxx zbOAh}K063?{Wc+O-eOGc%|Svrl>;IZ4;|FDm85H9lZ5)}4L#I9aXtypXH>L0rZB&O zCCoRWJh4o5_)~dQba*6Bhz~1;jo&!gpO&Y#7xTbP;ZNmiKiM@P)DWKdlKi=U%41l5 zd0rs@)IO*ypN5#X`XuA?@%Jxf2=|Mo8)nJNBS|^S|DVd$Isx-e_#U2Z=p;^H1xCOd?r_H2^_|3dtiS+x!vk6Hb{%C{ zfdOa(H>AM5wVlKcOh5#h!41whzowJefVZ%GB&qBji3D0NzA`{A0K3PAd4M~^wPvz#NS!{m^%lY|b zYkb}kHmSdVinHK!Cs8l16W@1YeZw2h_)7i+sBPgteE`&1?PM$-fq{O8?mi*G>MX?2 zsEIIso~ttBw_8JCOh`yV1==MokK(hmkbuM*K^y?_HW1+x78M-MlA5+`*~n0jXFwe= z^NtkY!!Dc!#+cqF6U$9IK#Q@dXkxi(gEf^Km*W$_Q3Y?+Kh+D5P%}&{kAKrl>?bNf zoxmB(Y3h@>>oNA6STDXXzFxQ?G}zxigfSb_#?Ln62a;GnJ~J_$ut5cMGmTjVKbISK zAU~C>=ihh?X+Cfa3y$KzBbg(gq{}xguavS1!Sa_J9>3I(h3k)|{9NW{WA=p1YM{O?g zqc?4D#+A+cVGo(U<7(12yIXg?#L2D zAJMeM4!E1lAmlhrG(&O^I1Jr-k z1JW47lmpUCN%i;tj5SmpYZaT6D)GNTss6kFES6|JF;(J!15^EX|C!r+hz)BE;sDO$ z9^OK%mM`n#`kPO2 zSJ$xcfSv(L5}GA^#Q8yP&C)UIEn3DKs_Je#O@4`Ua#o7DEK=~Y+M zYSFe?tEQ%lKc-_&%W)XD2jjU!xbYn)z<9{Td#pb(E*Ggit`9F)4wj62u>l7SVgn{% z0Sdz%_0R@AQORNf=0T}rZA1KWEK2ztR}*3koPWxV|9saYN#4IPsgA^y{7DASlzHX+ z`yXnn_C|8gpZQw%zj>DVt>Z`Ukz^9T%JY}UCVpZrzv%p2O!M*SR*9o=zXq`vX@0n6=f&yIdK`(V=a!Qk1ChSlBo=GfeW zY2p?-MlcrlmIR@-@?9#o&$wLE&7LS~i zG`;ZI{zVM~v#p32-SE)j<{`(Ern5eqbRoap%&SAorT!SPpo??Tbf$w#vZe^BkgHLT zdWE*`*-$oVdb3lGiVap>Z_@PCoc15WO9UlN|1oHMbhzKro*8WZ*t#+ zmm$rTd|CYGzV|)59ZQf2v=@vt^U|uC;2` zD%P@Ijnd`HyF^6?a|zldFg((wr+axr`Le}b;?LRY)@a<)#W&WaN>FrkL{z1cB|CFh zMT~C=&KOJjhex~mM1@x4IuXY=>b=kfPUzv}#=pPL`-hKde(LzX@2Ux@mHK* zK$7jV`!BYA`X|{wf3^AfCD}fIwfR-B*gn;3&=%_PtDIkyw%9&@#re5fY@fg4{Hi9| zJ~#vAuerj&&VcssyVSMht_ut~C?NiO~SA6{yOESM- z?e$mGV*C6RUw{A8E32oiw^)D;IDqrGhqn-R-tpgm^b6&?dQo9NfA?N}r>hiqpG5~) ze0}e4i;Mq$*FUyT?7vMpw~B_At(vy*R9_1$W$+7#G~Pp{Sy|iI+S#XYFn!SBn9?a# z>NH6{^{`0BmnV$FtyJkUWy_VX;9jvt&04iR>m(GIBF6Fg#sroQ3h1fstcVJTFqR~f zWz09$kFQ&rItlfY$uibAe&4oPjTSW;8)`PHo#bX5Y9uL-h=~d^-2o91t-iPQ&*kPj zB#etm_$RsgG0}nUhWPFh>X{?|Sl`rra^*Ff@NIMd_#TV{uGz%gU9#h~C{DKAKb)^i zt1rv)NN#!2!Jz>L(-(Y`D_6Ho{-<)wTT+s1Z+XW`a^w{aI9xe|^O_@{I}Ro;P*RgfG9hWqJZF+N%=F zn{N!^k$>N6jNgDa-kYP!)Qw01k@0s}|80JW{aI{#Dl^%JrU@n)&)+s(wfz4@d&~J4 zm!Os(ziIz{?5aX?%eQ=`S=f;Iv{A1DHJU;VF&sfXc-nerA zb9-}@pW4T8pG#+MC5*pQG(K*zc)o9}Zqth&pXxrzc*u(H&Uia8sesNFH#^ahxxHF= zlJ=&opN3=Ee`r8tXVYHrr}g;L9pG!`dkYVwz=?U@VnPypbDvi`_fx6+^`irNCSAe& zE2CZ+N(I17cL>-F`xY zpX;mJtP_fik)O+xyF>Kn`WsGi%!VK=zyypyPq^a%{?jA=IWpbI$OgmBOWcsfjjG)F zp>AV0w@nzAX-MjRAa#qcdJ4>SRQPj$>IM()KQ`WX8ec1+AJdJMKi4w9)`Ipe(F$H@jo;7)W3i5Q;|RyViu%@=#XQvuS^X}?OXBSa zCsMB;VH%z%XQV|sq(@uYWFX9lOvsE^w3|em$;d*QpE4HNkR3UY6Spt4iP1>U_`RX-p?E>tag5uZFa;do zh?HMwXo99_ zhURF2mS_bpw8n2}gSKdg_UM3)=!6i2A`Ia$z#BgBg&+J8fIxIc5Q5PKUC{>vFc5vw z5B=fFb6)}_;f7KujWQ^Uawv}q_>*nq16Csj1$gcY;w)a{51b~-!V8T3BCg{M&f)+L;wX;b z6fWTgZsHuy<1((`Dz4!W4&xY(;{;CPG~#dzw{Zu*BLdwJi6}%P2Hi0TcX1E*@c<9; z2#@guPw@=TQG@kb6SYtqo~VPmsE7J!fQD#<#%O}3Xolu!fk6BQcX-1GzVL%T0?-C+ z(GKm=0Ugl^21KAUf)I=@=!Qr{;T!AyBR=6XzThj={YKphZ3zpZFp8ikilI1MQ4($_ zh0?fy2Z*EX8JxvAoW}*QS@2sk>|coYC;XF)Z&2^uD`~e1tFZ>_upS$*5j|M9JrRpu z=#7fZp%N;i3aX+Ss>1_a5rR;JAso?&L3i{(PsE}ZdZQ2eq96KW00v?Z24e_@Vi<;F z1V&;MMq>=dVjRX}0w!V-CSwYwVj8An24-RwW@8TKVjkvW0TyBr7GnvPVi}fW1y*7e zR$~p;;yde@pN$uPL5IW^)^%CdWf?R^6EsCLltXz`fIBLp5-Ot#s-haI!vi%?6SYtq zo~VPmsE7J!fQD#!Yq)`%xQ#oQN`EtOkNADe zAwCbi@rd*b>|z?(u^Sms5@Z|ip{1J0Nn$Z!F2dY!K_0B6a1{zr#xz86sKfBVtdA8~ zgSA+P_1J)o*o4j4g00ww?bv~x*oEELgT2^?{g}x*orT%p&tQwWn1}hu%6PINJ8~cu zd8v^G&Pa=NNRJH2h)l?gEXay%$c`L%sMZf2V?hM*vMg-{qnNpC?B;yUdm1no6g!5TKOg&n#g1cz}1M{x{A zX<&cJ=8}7 zG(;mbMiVqeGc-pFv_va-p*4O(8?;3`v{xZxDZ)mzljZKhZtOq@$~wXTZ}`9$e(*;C z0x=$)5rklL!42Bq#0<49VKz3gnm3~>N^VRb71vZxB5I^eP>pEZ>TKP_fOP!Y}EIJ{os!PcthQr;EQRP zj+vN+xtNbWSb&9CgvX5Q37(=a>6e5dj8T2!k(ziK*b%qK7{;pZ>#Ttx%zrv%6!>d7{U>OZiqw_q7j4c=z*E^Jqxoj2XiqG^RWO6u?UN?1WU0DE3g)e=wmUKU@0XLF)*=&mLop1)u|TaKEW%>cVV-rNeoMSQ8lWK> zp)s1EDVm`<)?h92(pNsTAl?$K;Dy%s4Q6PCTNP$ zIK_HAjX0daS)9XpT);(K!ev~+Rb0b$+`vuT!fo8aaQu$DxQF|AfQNX5$9RILc!uYA zfk4LclJFH?;}5*STfD=2e85M1!e{KlZtTHc?8AN>z(I__AsogL9K|sl#|fN-#=087 zb2bD+v6pe|!+spVK^($i+@kJ0!ueQ$37CjUn2afyiq#l~;TVCD7^UKDlOvImem1hK zP1w$MwgWq{3vVcYi+31JdJM*5Aaw^}Foxj>{T;R;36&| z9ew7dpM1E8OGr;%e!|PRg5Pl$4`9QX3*$0vuiz@K;W}>MCT`(2?%;Ra#Xa1|13bhd zJjN3|#WOs|3%tZDyv84RgSRTp^8Y|J2*&V^;5|OzBR=6XzM!wdJnm5MI&R=5zLNhZ zzTrE5;4kQq5Nr##sW*-2bj-j^%))Hs#culDgS~KJEO}r}o8g2bFcPCM8e=dP<1ii* zFcId5dcU0twa@KD9|nx0U-jPHj<`A(Qs-tHX`qg8)P6cAg2_|od+K;61>t7O)qA!& z4(f^!sO?B?Q)=5%+m$*uJVyR$T);V;M;y-JEC$n$I)7B>W$GMKo#(0ZIdv|n&ePO6 zp832_o$Hy;{RC~*v6?#9Q|m!(o9gwXwpF#ws_j+1uKwHg(}8}}d16PX_w9bnS)JpC zLcN}cFwW}q=K*!D*#<+&?@Ty=P`ziV_fd8JtIjQ5=|i0_l!Q7iQ0EWoJfav%A?dM% z<#B{Mt}vfp+#r4v#ZemO^Nk|J-B1YX9HlVS`HDI}S-|oSz`Q@V+#c2b<~DWipeWR_ z-Ui0L4(qWI!^oQfb!|YMPfwuR#!&k%wa+r|%hWN4+Ha}j4Yfa0`!eIcjZhtn_`x6Q zICUiLr=S?=del|#I}K15m7v~x)O%1xR7OM8hk9=s4Ry^zT@TnqTpf$3V-s~;qK;G4 zamg0)Uo)OlEUORo)H&@!@;tE!VWj6^I8sojKY8t_-#s*FsV>@iZGp z-MX}CjC$yTCTNNl_zl%j86K#Fil~BWsETH2jzC1B8=?>ab$&UBiAzB@9)DB;_K*N zomVa=K9%r1?Y0tLBD@N9+^^09M$>*AMv`7eTAdT@#|q->=|i0pOe1}PHrog<6JCQl zFIY?27}}1OuVtz0 zR_1F|>iU%BwJpo*S?c=_=uBVD2saaMLJs2UJbNA1 zV*@rqoqw;yDy+sDq@->y#?ym%AFLx?n|Y}7Cv|>z8R{HQoo5|{`P{D$@!>dvXxh|5 zO>{#Y85Cg=EzCjV*1EMm>Vw0gO!x6g2wCU3CmLF#upJwnL1DH3wPobQ3;h%231i7)le1{ zP!ILd01eRyb>V>;sEJyr4NufTbu>m3G(|I%M>%|DTz^5w8+?XfoL>md=T@JHf5Z=b zha=qJ@F=JhX!bdrf7*4sE7J!jy6!&On*aTc%d~~p%Ln$A+9o?2T0Fy)j6#?x4nqV zxP-!tPo3x55auVGL7N}=4jUXNuLNOHJSBb-6^K70e2$XDi=#Zsq72;OigI{Dof9ZV zyc9~qnX$ML4q)C{2-6`Wa^N9#AL9|ylFp9w$bf9fgv`i_6lf0zc*6%BU_eK#r+<6; zu_bPWR7iu=aK<#&c}l|0utr6^r2Y$3AzmHTP!%4ij8~LZBCLrT*v~Sq;U?}towMJ- z@3;-~IsPBSUqhYiKg3hKg1Q#)5)begk8lfDaUGYTt~tEHU8w5-_XzLf0MvDW&-em$ zEx>$z;3M&a_=iWxZ9K$WPrQ0|}{2TtnS(bAb_i!H<@H?Jk2Fss{2gI-78D5|_d5;Kh;UXU5I%bnU z4|9;0zVjhJN?-}k=_K;cF!lh_0o1=i`X+SZuPOfnTPX`C9E!J;y`ugw;(MvH8+$N~ zI<|ysC|`>&#J}PbW|E$TkHqH_{z>>5g@~s?TBL?EGU5=@BNfsi1MaZQ+nCF8(%>HP zW#li%5=_H%EXG`{z*4-X-X*X&VGoV?7*J&VUDzPP6fnRWU8&fPxmlqM>G7n$QU6ao z!yX#$#XjuE0UX4A%GOd}U4!pUyast`NxvkXjxdJwE#e{cw;a!jrzY%97)l!l>a0Kn z9I+BpFaeV>2~#l3vOuL?hy%3Au2qZ6#wlTzeU;^<_@(vK5LwfS;pgymOB|V+833xz!Hu?Do zuQQjtgx3i36P}@bK4tAyKeRiDLpY2hIErI9juSWu^V2o45tb@8k3)9mZH3kP<22h+vk}jWTQ4p&$C95Bg&u24MhfU_b;y z5RLALK@=hphOX$0Aap@6{NMv`_#yy-@J9}Kpb|164JxAwG9wF|Q3E-V7P(LpwU8TC zkri!F0?kko&G8#rqc%L@f;`BJI;e|!$cOwWfcnUWbf|{v$PPD@M;Ww4E0je!c%cCr zq96*PFdCsTnxF`Zq8OT@0#c(C9AOU!q(E`FA|*1w38~^U&$lQ@x;v(z z2YMn5_t6azh(r`ZaS!2eLa4JCQ>dTx+Qd@wN73I{jG%lG>3xJt2-nfqMB>YdPbExx zO=2baqiHt|BPm}-dOzU`!u7OWO*oBo(rXcG$sa?T@fbz$f%s8EN%#(@h<_pchQAO;`ZPWgKS?N%^c=n)d8sHGi-oMy@1)f^ zd^qvp$W8uW+UFviKsXUOiMyZ}s-PP3;GfR9n^D$>zM=_hq8sX<7K)Hxops^?b$;nb zUea^PzSPM}em>-fI#zqd7}arDG;R7}JMp26Z5S+%yZ$%FRO&dY4gK=J@wkX?jmJdl zSV$fB3}GB2F$KkVZC4~ejJP_k*@P{4O}$ezRL4B(IOjFv`2*(T8S}A>`4~nWyG(&P zmZ=SOe4~zO7Qz#Y&>!j;Nga3i5?_V__-~IB)bW8j7Es4~>R3-5-+3bl>bODeBWpnI zbJf09?Pt|KRqa33{#5Nt)xObu{E+m$*u2kH`)akHPHrD<-ao5-vw454_Pbl4_Pzh@ zes>RJTn>Ny!8)`nG&x70; z3m2HLO-B&lhpy-e%WKtBNsnWhFPM8I@kdbCt{)ScuU&s4uC85gWLfPHNqx&}*rAl? z#7y#MVK(MqF6LoA{@ZJjDOk=Q^wohjn;Fv4z(#DsHf+ZZ z?8Sc6WL zvlvbJAnF|>ei&U5g2CjKMmfwxXS6{y{T4(4?7|Lg$4-2tufuqQO&A9A=K{Sc@2dJC z+>A}gL3%CWI;_VAY{Uwz#44=D8q7dH`s+d12kU72-&_YAL7OAUOPhQcz}yC5pqe9w zVmO8&Gvy1Yo0TvdvLgqw;63GTEOQ8ANDrmn2lC!w0P!{CyQ3eXN&8XfEMXw!oe_j! zbU|Cnj#BmlbEy9pVM+4NqZnG^5-!6P?@$8g@B!~p94(+eXBk4DIf*Z(uUv$=;etF^ zN!co>>wOzo&N{5eM&u#y3E>S~L@f1p5vCz@M@3XZWt2fxR6#YAMFliRJ=8}7G(;n` zMqQMG2Wp@uYN0kfQ3uu07){U=%}^TUQ4WRRg~DisqDYOe%<2F7THyft?T-u?h`|_y zj2MDp7>Z074m;LWU&301b>NBXtkWB~33WYj1J+?ZYEwR%`eQH_PNaj;1wm-e^S6T6 zus!i6Xom)9hNftV7O02%XpS~$i{H=~UTBS0XoR|Gi2v=i#a66eFSN#QXn~fPL0@eM z+oB!X;{bCzh(kDn!#IYcIDz9h1@$?v`ixh7zN49#If-f_Yb zghla`_(@bC{*3TBN)j)Q@+gZkaEB|(;R$t4pcwH|C=F-UyBpyE*7Z@!jzE1zx)GbO z8CfV#hm6R9htzqDM@UOLJJKTqvLO>PBP&v1H}!U47mCndJC@m={GFs72)*Hh4ltl2 z)-xV^%58~TAr;afHJmYx?P3OIVDB1^uhf^S59-)MxnW^LzE#{cfnw?Ds-_RRa;&2!eg7x$l!FT+Cj=ea7qd0}rIDwNmj$`=0 zy0-d~vGrzbeXsxvu?UaIe}bpzOZqY4ZQQ{vT*O0M#|_-XZ0gN}x*ofP=Xnz0WT?;S z&oIwd*N(8EDZB!`ftgz!dvRRB7ZOO-PnU^v~P(o#J}Pb zW>Rk!J`$f#_$T3K+@bAl%%%Q4!ex{##}Z7#bS%bPtiV#lQSUV_;VOMxLlJbvHu@=p z{*-;iH~fib_^0crsaX%HkP=Q9LHpqthEZ6Jkr=`H8Hrkq;XeJXC2tmK^__-pq$i^u zd5zEjmCzJ*(FB#z5cM${jj@vU*0i@m4f=gaAC}i`pOfy62ady#^E9l)ag*Vkbu(*7k4JF&cum`Z##f`|vh4b!MI6SFWIb1)b4FdqZa zie=|xj@_w0o%T9;n~@7AaR`BwO&|;QqTG4?yKqmLo9jU|u&jo%e{KxDS+ zoA5ey@)BMn%uhI<{Py&9fHntl2#0Y5M{x|taRMiC3a1f=|Lbe48e_7;AjTEOm_`xW zlD2~ltP#w32O^5HZj8YicIbz`=!5@?xT@VaE_`n;!2tXkGkpmv6giJ_-%BX_O$O327Ku)AZF4ROVY^UR+r@2^ zWxF`WcJUVKds5xW8%%r(b-XAue_v`Gc`Zo4VHYxE?p#;hz z0;S;xe|WVXPnOK53SdO_^i#3>!*;t10n1)4| zf(e+2shEVxSb(KifmK+Il^BV!7=>{dgVBgY6e_@*?ZFp5IL&rZ0O`pe%C^%5KgeIj zw$+3D{%mU_FcPCM8e=dP<1ii*FcDj*A4vP2w68!|3K7IFke`wM!->ZbUq;`{aTibV z49{^7_wfJ^@d%Ic1o>&}k1w>JN52c;$ub@2*YZ(xSiNCiQpNwP#RpbarqDJ%w6-x7 zYo-dCW~!lS<|12jk*&3tmyMT=wU>>ZmyNxbO$sj?M=zU{UMUh9+nai`H#f02_hxTx zE;4s(ZyJJTZ)YkpSFzTLrM9-RQ~x-qf9%yiX^YuuHrl`{_6Z}jwo>`&)IVwBd$2av zOkwKI!5o?g<6s_)gLz2~=D|3a2jgHKjDvYD4hj7^cn_txnRBeo5gT*F-W*9`jyRbksZ0?oTd$m6Ia7P(OyiZ) z*(+ySubk<;a;EpnnZYZki&xHk#??06OSAGyVI2T}FPoxXHav~R93~YUIr)8Yf33Jz z&fIEbJh8T3HcnnP#%<wDZ@sG86ld(=%Q_j{Y zymA&`(YChs@&8(z0?ia!nL=~EjVYai&_)|n!Ai@R5X)qWIkI8ImpWRjcB-DEwRv6H zXkIz9d*#gNl`~7R0Ln}&-6>(?bTW@qbJENkfK$R&?xdMF0VmD84LCU_Hg-&G?U>ly zF|oa4Vh4^1Jvd}A4Z|U$Ig-gdGKWkF+hb;Po~`-iYMVN~J{!MrEwZNL!-O`bZCP2%%?PXKM%cewpC#JsKOeu5H9GagShoX#u|IfM`|1mEoVXW~Z z)Et}>A|fGXuH@jHFkol%N_TKJcje%0Ug-|b=FvMii^Rqvv9(BSE)v^|#14c-4+$?` zXOXy3COnxA&IwN@(Zqfeo=kER`%Qc@owdY%wZwj{631)azp_%S68p7E9IsVkzgCIk zwMy*Q%A((dJ(#nV@s;=`mFm~LJ0WV`#Sk@bI7AbkbZ7I9Q8i0^maNhyJWW>V5~Jx8 zqX}EBvsJ=&>ui-Nu|np=XqLoi*2JiJf5?KfC+6lzjH9ODC1 zrfq!6Eo6 zruw`e8{1o(#${ugr;TZOyq_4$ZA{CvF}1fbwYM>~w=pfx#c-BTHqFP*G#`6Y zxxJ~}-c)XHE;r5B-ZWo((|qks^EGcY_NMuoHyeA?yzEWSpS?ObVym)GXA0AsLiHZ1 z^3^-23NxF+Eb(Cq)A$_Bp=q2Brg1u$#_3=hr=zK!qp6;wsh*>$o};N=N>e>2b7-pX zWUB9G4o&Uc%+H6L`T1}&KOb)9=flnXe7KpP4>$AX=w{v?-OL-Ln`T;LZdyup$f9tZ zTCA8_(fqHdF{yDF$3Uox)cQAWq&C{j$81u0X}0`d!L;`>57WFn7H3@3 zjvOJ^^U9guD`y3-oW{4$s6hWF)MYbg4=;|LZz4 zvpc&9>+`(j|9#)@eHZRIXHJ_lXU@6q>%M0uqYx?X6O9-WiWm}y7!rgS67NnlQ+qn5 zK>9fJw=c1On#VoNBmRLzktdu3@Wr>xx#L8G=6)iFCQb!sp zThgjnVpT1%YL=MQ;HYUyt7VDRw#0laF<(o}&l0O+iPg2l>RDp-EwKicSVOa^Cf7C> zJ*-E$<>E(NO>#1uYM4#_G1X$KiI{4Jm} zM6gUQh&#jsk{gl-k{6O6QUFpA;t44PDGVtBDGDhDDGn(CDG4bB@q(0wl!16d%0kLP z%0ntZDncqjDnqJ3szTWF>W~_cnvhzM+7KUzFT@X02T~VO4^kh}0MZcB2+|nR1kx1J z4ALCZ0@4zKaS^Q`0g%>^Ku8-%TSz-ddq@XJM@T0~XGj-FS4a?~8>Bmi6=P_?_!%&M z28^EpV`sqFIb(cXDad!l7`vj3E6TW{j4Q_273Ew}&J|7CmxsmD2Frp=+5ltCkr^a&fq^e<6>l#!RQds4Rg<+tUMqMc4!W#25Xk^}?QF((#d*7Vmhr7h8z)wJOzf*M}Uwgz%BFf4>q0mH?{ zm77xBcyW`98#iuBb5n*JZ*IzRMYqBHR?^#=wmeH~F|J#!Yc z8zVRQxhcR+1#T*GQ;D0(7+{lu8zVOuaf8X38%zd+$(0*7ZgO$s&W#5*x#5BlX0Nhl zulm)-x=o$m5&9ph-x4)iqbB20UuUBsmq85+t6^0&)bfj|`!&?isD?$=u)5hRm)Wb7 z*~_ci*b-Ccw^p_w6mk!QLJ3{eP$6t^;K_OErkKTa_{dqvh&p3UD%JF{nnVVxd1{bO zEpiHHjV2V=A~ogZH7V23q)axGIz3I&-~*FUC#Oj>^)%a9vxc42V`+A8QCl2F zrz$61jG{rc@kTHbY;wt%QEp9gtE9NgxTo9}lH0;^TSRV)%5AvZM#ybmgAxcClvV>J zv5c};M%|OgbtXQfsi@gh%xo%dHkB}&N}5fj%qB0hskGTt z#%%I7o64F^<;W>TsiN6b$!w}@HdQg3YMV_yW|ObkQ7839b9s>AffI-GBA<*Cfs8b3M^9*@qfxNOnURfZow2BPp zhdN0+-6UhyG}=o_8o`6Jqp6d`4>d|^rA9Sya#6v_RSk2gp}QKEP{WdH=%t3G)v%Tt z)>cDbHT08*y4cp_f%%Gi4&10)Ezm-)19|H}3A9~KcqD6qnk?4=lDP~RsEq)_J&7TlKLePYe9=(r9mGdMNvhFD7pv{XDv(7N=R|l zQrxsiE-m7&MLe`fZY`2Wi{#ZJnvWb_$lBGTlB-7zGMmE8rf{<2EyIX~zU9*j=T{?^gDUqfP}ry)-KZVi zs2$y?9o?uM-KZViXiCjoQ(T+R=^qwLz(VD?%An_Lc3}0%|x!MSFvG!3_B^&AD9E<-m!g zt{*Un3iyvKP+S?<#DL0LB1^Iueqb$X)RIs4g_0)yFP5maS)^mxS_|3KpxeVzhqT+e z10rqRu^gGLfl^y@pf;>K@cLVKa#c@~Iz}0tF*W6>8&qgOsEh?73U*-WswGr#L4uk> zx&e&Run|!;LCd$mkp-z#FvP&oAb<|m?lL&#sd7BfGG(1SwP{_*f(vAkDnh6iHeH!E zZmQ$fO?42usg6!J)zNA6Qm2>7HjQP}eQzbyEGv@=a3<2XNJ3`hAi3dbMGoRgMGlfM zIf&RDIY=p@`tAu=*1Hu3>n#dHc?;Vxs1shb-3+Ca4j9x9LPN^+Aax|xg^%WERQ-NF zn)QZ5)wVY3qYOu^n;Pnvv#-*ipe{p$B0>!#mC(e|MY>6aa+3<>CKbw^H7BUE=6ZCt zn36!f8kRmdk%vo0RTs}$nZ!qUV&J1dJc@;lL2i{e9>8L<+~UEk(VzIq4T>O&IUxfS z;vPydP>ShplR2s9JGOvA&nLW$=43(e)zRTxUn;dT_^IQ;Q6y(5E?w+OOie1R_+-a4 zDC}Z_Nr#~f~DhQ_VP7*`I)`yn!OsCy_%W5nwz~^n7vw>z5LByt;}8l zX0O&}uRya`8?#qivll$F?af{t%w8R>U8tjsuN$=<4t%qsA!f8Q{xfib7$GJI(_A2K z5D!QJNI{4vL>9)flu=f~?F6}%72)h)3M=Dk$t@dkl1E@^Cl+>c=Y}mi<>n?2H+i|q z$4!22cuXfA)QLxRD#}f9Zc1=dlABW4;3!I0;7*ZyN@w6y!Kp9@-VSV->BcNLJFsCd z-Q*dvk8bRu3yZk0hzpCj$T46M7Z!m(1;ZdWELVW#3Mv~W7KC$#TP20{3&IbB!DG~u zB|KTcllh)<>^u!JL5`g#+(b-g4Np0Co^tFw;WA=MF1h8Hc^Wuqo(7JZr-8%fY2dhd z8aQyC29BJkfkWqMkQdCr!Sgf}lH0=E%1hztB#$mHhNqJ}x|2M*6VKSwiKp!8B#-VS zk1ns6r@UmI@|te>ny0*Mp7OeR$_wWyubij6be>M~=uXPfi^!IFH9eh*$t^Fc zr@X43^0Io$>+0#`CDTjGZ5g@smfNy&TTX7v%WVa@t*BzONwbnonhVLK5g%g#jg=JC zA{w$A3u!6ZEd!%=%fP7JGB9el42+t=Z`5otqh^a4HCxQ+r8QVuiEVA#BGJG6>QV z!t(4U<4os!oaqpjpNePD3=qZ_BW#IqF2c{8un%GSLWE1y_#%W$)%fQKm#J~Sf5so{ z7SqLxBhE5RFM&AQWV|HeY?JX)h_g+`%c<{B#L0ESa!gUbVW&CRh z>oUF`!n%y}9YEG)obN60x&AW{zQ4fd`_DpJ@B-n-u%#Mj$aj<4K{yV4N2$FU=etTB z)Oa6+9o6{z2w9%ji0{F$JmY*HhUFO#Mac4uYwyqUUD^%mvxW>es&R&!)HuV4@&2k>iGFaEkg~J_VMlD z(6~r`^UW?>IlgRB)((wG8)8#L)>rZY8@~8-U07PW4j*iepAnT37j4`Bq=?ky(1ftG zh}h7$)YNnoh_q>6<}2qP85JKDgAdBd0=o3LNZs-D>9ReW*6<7~kEirQo{;u6N?p25 z4c+1Bf{e2!^0v5>YA2O_E)wq z2UR%-eVItVxX_@E0l^J}QskEl(_I9~l*qgxRDu66Y5g8idb9$38jtaOLz>USgM`r!$TT zJPMz`)K%2#CB|9X(jAXimP0AOf2_5YLw;ClgmNhDIQ)Pr%V|F~U49NWJRvN?H#9kX zU}UtPmY+N@A{EyU`RT-6i=NQc)1_L*Lq$xREZJmGtIqxbzL*akTetBGZHFD@Na}HT zPBxX)@={SLJySj+tM!llXvpsQpyN@NVb!wb^=X*xs#vnM>lf_bCa{%%TlEv9XbY#^ zkfqe~%$DB}pHh8iKKg@inUa!;J%_@?wIgA|`)HV03@LUjOqi~PiT5GLDZhk?_^S$r zYwb0Vng)6?C8~$L24sI4NZ8Mo#p<%Z4MKz4x9y@Lvz-!G>Pzw+85aX3FKbyh66YdP zl`h~j&S7cz7J?(cdMhRYUR(`zIAN0 zJcdd>>ywPhIib&1^KGuT?0~giM2cR4=+Z&r;-cdsz>st;TJz<%yDfS_NheIC4NcZn zu%_b!&uKV2wJjw*BF*ODmh(}O(6Vojn$`{}?O^%)$N`8-QMsFvo}FST^G$v|JZeZ> zDnAjen|0cF^4v7D72hMb^aJZcRk!MSv78=W@nT%KIMv8j?9ARAT`K^94TdkjsG3xrK^+4^J5-9mv-_V{-u6BO9e7kRS%lav#u9C4PB}V8b z6WX%P$9zIl`auc`4HqpTkHW*n9>@$xe~1r6Ku(2)i^Y&+NJ~h5$hH3AVihDA(h`y% zat&>)hmgm1_wUj=G*RhFR7P^B+C6@#9=td{DPo{vL-15BdOzr!?TeD zavf`h6ifZ6#ISHc7+cp5k?aeXS!xu}H#I3eB_c|{miqUH4 z(7sw%o~LXwCPjYmTrfMc9mZ_~iQu?D70!-N3*Oq+tLC!%7m66A><+44Jmeq163(UuMieLg0AwgUS6^kkfnE!^1Dr#pk^W9>fA2$VG2Sz8mho`YzJ z5f8X-*?>|@t{9yuW38l%IjSEXmu9mzbk!`;9P4ueseMQdi%*Mpa0WK@rJCglB!xvK zhsKA6N9n19<(T@2O?{ldj~sw^*N?;8C-Td2h6l-B0Wn`2#spnH%M-4UAC;oJAhNfq zsqvx7(rDF~zNL%y`Bvtk6tU(jMy`DWFpc9fFta07&qKEI_6=H&tVB5flR@7w@m04R znT2m?SO37E(1e(1zBBFUXIYP0Bcy_MP3Rd)_TxdZ>E^sXpH123X75S1<14;3r3a*f zp?;wuoq|=pjf<3=BJCorrGKHmR#b-i{$)RuO;Nd%t$pkGsJ*jLpnq;37ejx1yQbu& zlKCJ}fNp7aI5>V#aB%i3Y$>nk1NBnoSk(6XQj;6{_=MK0AFfU#6>GDPh;54Hc=q*` z^`cz2@I<*Dsf&FZ)(@=*wIFA`0^zm|+U*sYS7+?_FN;3tw5rL6JNhSieZH$h`lb&* z=ru0#%F8-WOlQCOt0k-$vUJn) zrqx{<|I+7yu}Ctv%uJv5o_M?#4&HNv(V6QTY<9-n-}NI>NZz zRI6OMpC^xdvuoSi8#SXA-Z)lddifzo9#>D>T)uAX^P9ati&)z@y2A2-v;NGe_@M2Z z$-7sUNfT!lezeu^aFZRr+fz?{zw5%(tA4Auju_nV=5K!&Oq#hYtyh6v38i1ozI8q= z&7)7v-31@^Z`UGvdUI2(scGU*w?{SfoAadB{UbdtzJJbh*@olA?>*XGW^%JNLC-TT z9{6U;xg{=DZY+56u<)lVuQkZbce>y4LKl8*w|iv5^y6zn{Ht$tJ=^g>@19xT1bXG$ zHR*W$k;7J(e|r1Su2DyR@3p9u#|+<=tG0~EJ-1Em$_)Qm$tn|R9SI!SD8X@rqy~m z?TYErzMYqDcRE|`=$)|@FM1T-S~qrfiKf?|4JcN5|GY|lc6^tA{-8-e-I}xn26cH|XwU_dhQ6G>w0KKXON@t82@eSJfF7WXe;t&Q~?RUo*M)w3Nd6onOr@ zR_S!%-v)egcSQS78Wk(r^OHZ1Rljnid#9vFeGhDzzSQ;p(y^5n7$@W{R%7s@8%<8s zuhpjC48IX&iyd`~PkU^d`)!9V^>W7~%$bwyTJ_wbo!!TK_jnp!YR*^7E|>2cH8%8Q zg}19(6p5RE#$2j?yNh$3cSkJQHbU%c*5~H^ZqZfR-zw8_M1cyQulwTj4|~5J*znjeLu@%;DZJ$?zHOk?BK|L;Tc=T-wfQ>Eg_-auU#7y3Vo8`Ufri;K;s`a760Uq zUrcqU4R!0#t=t07CM$M%IHetrne5iZsp^lVE@w^&Klpv!eX(ViUd(qyTlZR6q2=-a zo&Wzk|NqC%|9QSH|BHYBgYoa^>Bj%7fBp~XpVX`li^>#OneWN8^KVjaL@h`U3GJRx z{z|=@!#=-YJiKN0*4LNryr{Qs(3t(FRz02DquK?x{liO{j(=7)_=GXF%fzp54g1YB zqjLYSA)9JHzx29>@zwp)>6M4A?DxUB^%b_14-9EH_{F4Kehd4QXj62e>-N)+M@Pm7 z4D-^e)Gx%~Y0v+@-y{PbX}3R9QXvPHYEK@uZP)4>9V(3& zyY8Fge|1Q0b#v;d_zwbV4UU@d{WlewovVGR@|?PjJ~3QPd_MKF>doIyDZFIiFTovK zbjf(L;lQQQV?)|D+q&b1$D;lV3Vk?q`{50BN1u8WbAQBSr>mE5mz%%Syfri6#i_+j zX7nsvby)wK9akUhcI8;*M004@(9Xw;cMMzoa93uhFXuh;`r^{g;meCosP=fnu*!|L zf8F$tg*RO8?Wyf`@bf+a8Dsx$*zN87HHn`-J9f7Ap7<2!rr$n@z5ia`=;-HF4~#E% za(LAR<}vO2ZixHp*|ZZ|&xeF<{^?NPA1{8`-|PMM({4`L9(4V}xog)B&OGngu1Ui) zqwmg1yP9@BBdX$OoqU%r@@SfsJ~1q%|Lp_QU%9`i^V#{2Hhs0-{p*Lp-Gf4VwDJ!Q zglCHPF}nr@b_ovd6q<@B1$ZM)w;zWmu2Sp`UR^$(%8E+KP<=J1Z?kV_Hd%Iu?u!sU zkW+iDQVjb7k__p}&IE^a?H(8!9O&OYpdBB{gzq2}x4L4YQefd*ZrRB;b>;b7kMe|A zFdUrf5p&EB=-x@|P|o>*-9sGJrvuetzI@h2mdLUFAph?EorAS5*n~Nj@8aJ%5I&C7 zh?KZwK4PP*@y_yU8T)+tBz421A8$E+%-0Q1&iU5i$uVCyJUQoEhbQO!cMngt^3sL- zZ;TJmkHxhi)Qu0Hzq5C@>yO8W5cK;|Lz1H`_b+p35BEduZ^q(&?zISU?bisg2eKHF z3F!}M3Gs#q$TgH{3E@xrgHqFyQh4i4K1L_+Lt5^mYRA<=-T8Ft>faguO zm6s=?9^X<@m!D&6*~bGjK-ZNGbXrbs+`vjjZC&$%g(Blp1bvMWy!*u+{19lj81==`A3UkTa)9~N^zZ>#Q8uI2 zvz|{QIX#q8csK-_0HdyX$#wZ^mQC|Qm(Qcv)MZH=R;F?A*(je^lyxK;>Yp@K+O^HM zJh`ZK$F9E2mwB>HdE?D?{>k+2f!*lbg_GXWj&>Gy`HB-?%S0&i6@AG&dP*y*uRa2g z7|49BZS@|2uDZ13 zZ+V!*njY9QBovP!%I907hTt|cpF)_;QKk zk^L|^rnc#_>vAKH&*!OIwGRQW>yG>8)=b1w*+1sD_pg^jwqSkG)%F3Q0bRSGfPecg zA=H zzm{ya1F%wOv$ac1$KVBaX&u-)6x|6m2m80Ruo3X@tVpp9!f=BcGENy`x38sZVfsJh zYvtY*no%DYHO2aXL~>Xf-dm8ju+`_xe0=@t)U8*)LBmG18i$2P;8Az~RspR8+h}K~ z%a=(!-}XWNXtfm|9kQ%Htvu%q*0elqL>TVw#tpO4Ct5izWP6wnk$BPy4+B~ruhX)H zJ})3PiEG@Z*&OoYQq>}OW?%4GXZfy#`g~QGJRat!IyvL~QbO?#Sztg&XzTWE1A{}9 z*9k$#INOt)Mp+d8AtBvuRz~uy zDB(RjO3eKvN(@EZZH^KKA)Jf-#E8)J6n@M>{johspL1Sb3Lk725)#D6TyPIGU41}O z_Q5tuwy2Vq(Bz0Xg+r;wA)X>l_CKg=r}hDO0wt#f&HkwQo&AG?02lhzj_(xQi4t#b zM~MfJUm)K>GIjEm8rMR7-v4d!AJA9e2k4pweiXh-+{L1Z2*Vv+EB?y0L-gc`@Vg4{ zL1>5a5v7q3eqW?KWDw+I$fvlOIUjNlav#DU*IQ_ixqDDoxB#%~lvL~1CLf)%<|wh` z=TTz)pHbo(1@Zg{dqOfHr=CR#AEY&X6(vSMmP0l}jziu+3cW`BWt1p|_~N%%BX1Px ziTEVM88Yn}(-G&7^T9?3stgJI0F=@Kw@T-*<$BeZw`8ah`}VZir96R~5Ef^%I+f#V zycCZn30Y2Au(CzAr>d(PC_cXpscz18EDX11Se701=Qs%14VUkRKrPA^dTC z@w`rGn?U~%bN4_iUoeNXX_y0Hi1SNT_{2N%*Vm60P7M^9i+HBGKcil>_*X=$n^X9& z)c>z2qrZM!ui)1T5-X2h>$5dJ%n78Jw6ynhB`otXhq=LGmht?j{J<{e&S0t`fwufh zg)&Yc7_T-eLH0u8jeh_l-$tU&)7-Yv0No63B(%WAhYoPWk%BKy%7Zl4hnd z2zL3BVLPZV^BvSzZF^XiX+tD-+O==Z2Z>-0-kIM;A+pR5OXJx1$~Q!4C#zYO@w3lY zo6a#`Ch9hl?+>v%h%R3}zTz8`JGSFWX0t@in{H}>y?=-StM ztLvTGZ>4?a$0sEXOs8$3tCzjMl7Qi{M?7)tko=+@zOx5kplptAgS2pK-`NpM299o> zG3sP|XTEhtIe=eccQHVlOBqS$nqiG%^>I)37dV%Y8LE_7PBDxcSVbxkWG-akY$hskXeu^kg<^A zkW|P(NCc!0BpA{W5&&resROAFDGwgDUh*{;gD3wKu83n4gDUh*{;gD3wKu83n44 zZlm;%yqWLZ;E7b6Bk|V$lq16u(F@HRXKi2z*PGft<)8|u<+rRUqR#i+ZMH_2P z%TV^OM_~8%ZF+^u+jNq0Sc}lflXIESIQHA}ux}J?39COyYax4GNhxHvcy}h}e66;6 z{iVJL>=M$w7hQs(+4zVq-%2=?1tHtdF<;RU)_jgD-)9?YJvd@ApNfYE#?`g=zskQy zpuOs!gTGnkE1aMstevPKc4cJy%6yk^`^tUgRa4Fw>w1vh6zkhWmU>Lr_1M~9z8Yy) zUY>_iUY66fY1!Ac#i*q{bq&}%?4@5s@t33|4Z&+wNw^`VyGxi51}Ae`99RinxW?GR z%^HU{ZRt1G9&tliU{uhu{Ih3&FG z@{hp8!b8bpOX4HX8iTC8%A5UotgqavjRM+a&zD5W@^?TI@rqhXyjB0`x+bI9>nmfW z`~jMOCU7~|w>dxSO+FkkdwGJt_1ff^?}Phv3CbTx$)2y!&)0`yM8ktIqCI3e$rw3Aax*RA-7ScBSQX&w^Z4hRV4RQ@ycyNLMlrr`}iYHDvrv10C0wy zpLr4U|8k62g|MY6L6>4gEX0j@kQWf=0>Kt_`8g|qf z#mLe1zf(11#o}7AVg}>_;@2RLAWYYbKz@FRH^c|h5)uT_mtnj=(vl&Wkj-^t#caqk z$XQ4lBm`0yahFWS{PWblOPv>29t$w}YZ0 zh*i+O5t8+{5N{#;am?P8$L_o<&*UJ_*+HHQ@_0RR>I=I6&OA2pmd)Ij8caT@WL0&-zd7cjP3L)=Z*P*b3yducUgyeMY zMRj?I%6Z0+zhaO*5Z2?5b5Q#gXG9%OM)i3mu%8LZ>3AiPzULizrI4<*X+P(^kd?{o z9Qslk>DS(oR|e^s5c_q9B;gI&1Ia0`EYjJRobs5?>yT3(|DJ2+JMx?yZ}aylNW2m|tRs>eJhf(Rn^=fJ%Cn7r?*ch5oI15WyPv{@BdnGpNqAxS)R(56p) z;4~yZWEJEEa5xCz3`k}@=mG5Wx41>D*kdP;{B6_LtNY0aeOlS(xgjk+C{}#g$yO@Z zr*&2GN1$B18rSN)=>k29KUJXq)hXF8?(3b2+|TJxJ20IVBRn67hi4Pwnz?*{trr;H*`#IN3!JJ&xwxY^0y_YJCgHz z!;d-=Bf#9%#o6THp35y?-aNVO_nF2#mSJ9SJAYqq`3Hb%hVubCZ+P?*Q=^ko61=hT z9)drQQNL~t?||;Tf=4$2>=4$2>=4$2|M-vfsBKKl{_Q&v!uqO<0zCO#hpx?%1bm$$9eT%dHoD zrop5a*3%1lj9&Z$gXM*64{VC}#$L@X?f*M3r~UP_zh3s&$NqZ!(|F?yy0otu&?=z1 zoVjp?;}wzrGgDQ)M7F`)+LK#3l8;+A801J!zTUINk$iD!%NSa}I+6)(cm3f=4ldlA&ygHolDmQgl8{vQC`Yo>eL#jIsdZ%EXh$->M#@Y_vgG#e zrH-Uybct1tBza25eU4;VxA;Sjr10+&-yr$r%AP99m&Hn)6*PDQp6WS z97&-ehsQY*H>X2W9m%V#T{9fXz4)Nzj^wXpFLybTCqo7ubR_ot#eSdMfcl?0o_d_R zn);YJmwJ`DllqZ5ka~`~jQWZ?iF${+h5Ca!f_i{hPdq1P6PJm-#8+Y{agta_yd$O& zw}?%|A7Tt~gjhj5;F{;U=Gx`@i_py9QNaDzi&U@_WSnZZ@+JUJ?!`GuaEt{{q?fnx4(Y& z`}Wtu`Dk>@ z@<_=aKL zJjQ%>KapIm_uShX_qh!z*L}vd9Y;my5xyVz7&?tU{&xMF4VgcP=0V4%|GHp9>*v)9 zB@Vm#g(!dhRpGP6>i_X`tvq{=|J6iP802wq*0Ae8)SmmT`OY`}MAcv2TTZ$c*P;BF zwTB~?>=TE+ODdXh`qYqBP6vkVUQ<{M*ctjo+Rc-%>Q(puaYpHBxSWFaFfOSZ?PPtN zd0M(wj%Bns^NhH#w5UBWDKtx4pQfd2Y5KBEZ=PSpjpc1yF1zVk;^nTsy|@4E zCF1Umy}YG<=-|=|pRL{JUq!UNxvX!A?SH@A<<)!njh3!rZ2c|I2JiDPy|BvKyK$F8 z#krvIWsY{8Kd;k~QWJvlWwH)$wyu28r@-Mcbw?&uob|Iff27ROQpR%=g1XM@G=F^X z?ctZZI?wT4I z5uqU-ranRWN(6Q(P};vkVG-rr|JK+W6J|gD_*qKP!3D+n3G;)ErN$rWG_Pw=nR7=) z`=9QAShUHWs4re`TvVf9ideeg*45+hebA_NwMm`}5}%7>2P^#b>Uz^Ne_Sb?r!~<(w$hxLPui^ib91Drf2(q0 z@0zS1R+w}9HSaZd;M17dqUFnx!FMNm)@(le?Dm8;hlE$_S^0YWRPeKD2QKs)-SOzZ zyQ+G?aSgv&P*h4nI-U~2V|jGC=o}QagM)(u>(ub>95*n^yIoj9czQ~Vca`9@Fg$;r z66tMD#GhZrQ;}&yd1nI8U&ya;gvJgIg=aPq?~38C?!Z-U>6T4?wp>fGe>r0Bzq0d7 z?c;q_{_Mkjb_JDE-tyL&5H01mW$;zP3QBq=Z&Ts7SbddfPdjD*T8I*gUzO1NtrE8U zSqb|eP{PcQm2mM#O1NjW5?0e=K#haBYRf;XYrrdq+T4j@~ZLI#RYW*rhYVN4< zrdIRXnaQmNnNkm?Od8xFBX`<~^cf?&k1F)R`4Mx6_8wAd*p=anfWVOr)ix}wJF#(Bydja3;rcq zzTaw5z_pNa=E(O}^tc^dt$TdXx^9np`}IldwYBGqzK!1>(Qj9%_;ug4ao5}2aJzN% z_o=^ixtafu(+_9g@A076?TdFlyVvio_uK1lmj4}{Rpr&)*I&L&eBtx-$&<~GG9EX4 z_Uie!e~tXJ<{`*(ev_VZtvSC;KQOH7IIR;JC*eidYBAQJA(R#I*Tr3>OSf# zv)!+b-OowHh!$d$$P!tGEMt~yR=%t8Ae0R-WCIM@07Evw zkPR?o0}R;!LpH#W4ag7;$Pf+45Dmx>4ag7;$Pf+45Dmx>4Je^O4UKB(s)qU0u#6hE zP(xgAwE;CWsG(5}UDZ&-g)-`X3pE_2hUh`gKl!|fd?+I#0Z)o#*gS-TD%tYwKEszS z-}d2-Y|m%d_u?PwE6)zWI~lM9wCz- z&5?g`NXyrTQQLplu;rX@9YrnQ_Oz^HlXJeczWpWVzScLEVtuAL>R3w!`}XakY}vA6 z$PoO2#h@V3s8J(v>Cz?f>#x6xl#~>aD_1Uj3o%?YZQ4{cZ{A#t963_->(@_An>I~6 ze*9Q0Uc6WwKYm;+TeeJ8t5!{Td3lM~uV0I;Tephy=g$joZ*TGa_uq?;KKe+E9z9w_ zMMa6{&!3AAKm1S}J9bPgT)0pS9z0kaJa|yN_uhLVARs{W=+Q$IEm~BZJ$qKPY}rzj zC{aRm?%Y}I*|UeFU&P19iyJp?h;P36MjSqTSVTrfiU9)#2)KX5nl)=g!-fsT+_`f_ z?%cV>vuDr5f&~l2g9i`9s8ORtxpL)1Mn;DC`s=U7FTeaE8aHk%JUl!^&z?O+OiYZJ zG-;A>ad8p*_wN_=>eUl@^5hXPS;UknQ^eG%Q^mf0`^2qVw?t@YC?2SF5)~>`5b5dZ zV%Dr#A{wuOmo8me{Px>#;`;ULA|xb4T)1#S!8~+`fHVz^)NBYSa(~ z3lZ`9r@#4ir`}Xa{ci(*{x^?R&=FFKR9zJ|1Zr;2p zR;^kk{QdpK#fulIgvAd({2*YPiU|`Yi2C*Gi(R{RiLkIR(YuU{{A@7^tzFJCU2G-)CR4H_g`w{9)kv}q%%SFbMKym=$;-Mc4}l9I%^bLYgL zfBq>76)GhD{`+q+V#ElMoSZCr_wFq|_}~Na_U&6yyLN5-VWVPV?AWoQNRcAqi!Z(q zAAkI@C{w14aCUYUpM3I(NJ~o-t5>fUd-v`Y@C}O&9Xg2dXfKetCsle zv(H3gVxp*0rHW|Lq6Gm>JbLs1z9kH&(1iVO4;F5YV_>Jb>|8(4Ua01{&`ITm1H z)y6=B$7f9hnAF8Ym?Gb2y3y}IR~Z!P`#y^i;4U-fbBbg zfDsqp0O0b(M4pUEGZ0|W7-07?7C`|_5PtwdS4?ia2^@17fN~cT=u?2v6HL;Rn7}6h zSdTFIHUpGy0q{~W!RG)}zQklo!@?;CApISa@GF2%Jpko+ES&2Ay_cBm4KT591L#U& zk)#70uL8&tF|peMJRU=7lmMU)!UFe#vZxA>H~;|n5DFm)i~AdZdN>qLUI5SID6@M2xt##urck(J0bapSYV)A5!vN4lp%kkF z3{3#ukx;}t0HTATJkLYXRs!(;3Z)$fur35(jDVsv1LVs>x#xx=`~biRjdUGI)&*KA z1ZesO2s9hoY#&gs12p(?X!&qxyFAdO1Aw}1pz)hR>vo3bn*uHKBeZ@$XrEWmwvo`> z$Dpk?LwkJ+?Xe38T^&gHEj0OHAXzOVCLj>&475^lAYm^c>|QVfFKAX5Xd-`Tu7S`% zW}w?6u#tJtFmXVzyFkFtfZD~NHP%7XM?eE!1=9TvjkJ?%1}K{fEgKDn@fsR#4$!U> z5PLkd+)Zfm#$YSCfYgCt0c(KN`Je$GLi^^2=C}t0t_cP(3XI?xG*eZe;+H_`lhB@D zK{I>|hVl_u&=4?+!_W?&0JUF2i`0hZJ^_vS1GKgqH25$ugh^l+4WR+whjtkY)>93L zT?Lx4Etu0KXz6W0v_^2+f)o+S?bJw?3FxSul^D(6a5o zG7Ml<)1Va^Kr^L*75G8(ABD!e1Ff+EZ08#w$6BzO+|Z^!fmMAErqlykpcS-kC1@*G zu%5a7F;T%5eg*^E3U;?0+MobfR7+^7`(R_hf zd9b?2(0X0L27{n2%Rm!)f^l31lequ}wg=jO5t!P0U|=`ElJ-O64F{`>g4S*VM&tyo zHyuo|Ihf9EXsn9R{xiXdegi`&494{fwDViAyQ0v%tD*6CgXNtCyOqaHuD8oK{K$~a$o?Pz}jAbQGW>5bp_065Eyd_Fx;=fvUY$i zYytBgP3lalM7m9yLOMbUNlHZuM)QDFmo%7^i`0s=jntHsnKYD?ko1Q%i&T^}hm?>s zg*23uos@(0nskPAj%LIjOdQg6QZrIz(nL~E(j3wjnh>Osq-mtjG%ZL0NuNn|NiR*9 zq@+5e#-!(@cci(bbEK!FYoyefxB#Tzq>H4}q-~_=G-XH!Nxf-O&;%mgB5hoZ#X$N? z>PfSOw2JhVW(KJwsVmJ3(rx}|PIzN6k(QFukv`G{p-DqJO*4vgl5~uw1t}qE9_c(y z6q-mhb!gU*s*!e*Vv;J-te~kvbBtyeDIzI6X+6!XmRQWBmZa4*pJ?vTq#_li*+rU9 zla6Kw={_koDK}|9O(IfTQdXKUG(SkQX>QR>BXy^VN6JaFiWHru1?g>n01HhxQev7Q zG^J?rk@nJTB2}l!K{JKaoF)KGMVePMDX(GT($t~JMH7eS3QaAVP&6lKT9M|GuF~Wr zT_;Va2}9F@l$YinX)`H0O-h;qr01mZGz)1u(&Qr@rm0DjizWz7E}9%Pb4jB~w>1h+ zvy0{@O*5K=Gz(}Z(6pgBMbnS8nue;h28bms9F!C4_* zHDj;5s{C92w|j4G+Bd1k`fLqg0+9a`1j)k*B;@B@Oyryd4f1z_4*5SpkGz_IMy|(+ zOk0PGoqU`Vh1{N#hBg={E$s;|QgU-nTykVySlS;1KH4k<5%PS3H*GQkD!DBIgxr`5 zmYkkoN}GgWKzoXyMVpJ0l{Op~GVMSvAlf>dsI;fJaLAbnFyy;j1hjoPp=nQXfs<vkw8S-jbK5Wjmn7pn!rKZ zjbKgAOM9E#mJ5lt3_+ImB^48G8iE1sN-89BZh{y2Gr^2@4Hp~j0xCJ$I0Sy$mIQoq zb^&Z5Dz$ZCold+Gt#WAND@GMf}l=Yo(he& zErFbN4uOw$ECHYP92G0=K!P0o0|Z*ykpzF*WCSOe0WKs6v>^#jvb>iiCD26%A-`ODY4}+ys2u zT2!v|S>RIlr~OW)PP>)>P5X+97?duPikp59DstL{Bn`9?Nrq_m5u9lU6QF4mQ;E^` zqLQV(O)#b%NU}iNkYG<6l1h$t8Wkk%UMg++JE(x^f1vWFO;3eRp8yp#?SD=o+KW^~ zwAV=v=+hygqP%9KvG7VlFE?wHkA|Y zRVpUhxm4ElzmQDPPeQ^%+m{4`_A`kO%nWZ51KQLiIJ99&BIw^C!KB}Zij#IM35qi& zDaj1&f07^C<5Y08c}eEzgCaqrZ-k1H_AtpI{Q@MD^fizi&=*32Kz|OEI{gPEb@W$| zywER2(nx<1i7)MUDth`wNQ~%XB7vii08>7KJ_nKo`g^F9>4PB|p*>BqM85?UGkqr{ zYV<#mRMLkY>1&I%RGbHEq*^vOzUqE6{UkwQaeG(*b z^zo3u)4xK3Mc)gFKK*Va^7OTkXw!E^l0&}^NecabBscVBkOb0aMj}Ta8Oa{~DJ1;# zwUPMI2TAfsUm3{@eHkRX^wW{h()ULrfWAB$5%dF+_`<|>B_X13gJh9DLmD&mpONU$ z??(fLemxRw`ZYJ^he0Sm>W2VWjVjh7tXnG&1Nf!jjLVZ;0fL{!lDW zw$_mL27MUh^|TSm;b^DQZlc{yK1$o4T$#2wZ35b1(0Aic8mu_96Xqjc8k@ce~-2p|I-Ge z?}_#nePr~5&<9F;p1vvC*YwTNo~ECV{sa0;X~WZ3NE@9#N80xEQPS5!KOb#H8W^`O(f-3F3#b0)kM=kHRrJHqPfH&I{iC#j>HneMg}x*DQ0N<_ z%}sw0{Q>l+(w?P%iM|uC^l`NRF|?o4ZlwQ|eh~VIX;Wh9?WcWDA20na^y|_u1J+=m z{YoDhZCU#L=!3wJx1+60A1`fHEcxxUYw5G14+YRNoOV5i{3U%a^tICOM865oKl%jdccpKF{!02L=sTw0jJ|IAK@=Z%acZ$P^kvbXOy3B7 zxb#`jXHNT{zG3>8=yRuEihgwZWw2D=(3e4gk@RI8R81zb1sg=2@kmQ`E)$qo{N7vMSE{cdyk99)&K1G^?8ij_usxe z`=LbyU)7zE%6p&)hz-MkKcD}i_ZBSk2Y<1CsBaygdi*fA`fWgT-8%m)`L<7JWv~CPC*{~$ z_TN9%&tAheC42pMEEL;nmc4(fZz=fyXoS3gzjuYm(w0Bwk`yU7s)A4Bn2TL-Ce4CS!`3{y; z4*53q3*!}A-)iMcb#Bw5VO)5hkntl2Coh>lYwCAfzh3q8>0{qNfB5^g0`A5)H7k`V z*1lDfx>5b!3mQEvHGbio>65l^T)X_-i9>rH-@S1;k4x5zs^v-+3T)oMC#-jHrw=lc zV&~1AGH%Pdm5YBoy8qh;x2|5u<@EYl#nMId`!}vrqi>I{?S`fdjGWe|&$&~rTFvad za^+o@*RS8csZ-}<)WnI`k34(UY~YnETe|e@StRk|#m%jQf(jk=@Yp+P@!~2)|M=s@ zXY1G3C{U=7^TaQ|tp0l8!ssUh2FzXe^Us6FtXfsA&8t`67RsOBbTVJQJx*)ZtO_Ym zATYF3C(m7T=T=InSh3xr5+%l!E>_ItZFKa4`za}lI^@a~kl)|GTZJ=c{yNvD&8*m?%n4Uym#;Al5^+M zHZ^bl(f&7YS~Q9~UVyF|}Ejk#ym-Ux*%jAJnpAG;eXkBj~#pbXOkvBc>VtSD;UT9@gdg2 z6(>ws)_?5S8%1{P__Atx`ulZf&Rp?VV&c4;r%u&PiH$8`Fq=b)Z{7O!)h=B=es%b; z-=jTye9Hdx)1Tk^`AthdcyLqF^y$~)($c(YUApvqz?3P!&e^uD)?|10%)jT&i@9FC z`jKm+M~Ce(8ux#+e0kNcr%o;Jx^CU-Ms@4vDbu-g_l!o3x}N#&yTsA&y?6ebq@)Y? zE?;iYt#IMiD~1pMCD&hn{k^qu$h9cj3UmpzZbRPahl~U($2euCFe3=rH5GhYz=}9z6I;rzcN#jeYxeq`7tL0^h~N zT&yu@P~Sjj=avy8MwAI^*)qRhTwI@R5fPWlRjJ~Bz}0o%^Y6d+T~)5!WZyY+R=#Y| z;KZj79t>;$=byXhZQfjS`Hw%Q&j<)O)4N@}f<3Qa-!bUZPj5w@KD{-0-@c7sRjM@Q zhcCW}J=U+^C*f7Ac5Le7llw&P-m};K@=L~qmoG;>{^XO$zPE1etas?plbRJOGc&yx z{`T9D9y@nFDF49+{SLl((R@m1=-J1Y5&&== z0MHBoumu261OTuZ08j`3uonPO1px2@08j$};0yq$4giP-0L%pd3?g~0DJ@hXaN9N4ghEa0B{8Wd;tK+0suS$0Hgo_iUI((0RTn=0D1xdngRfd z0|0&l089h`bO8XY0RY4S00sa6#sUD=0|1f%08s#dp8)_L0svkE0B!>S@&N!k000I7 z0Nw)td=3Dp2LLDy0H^=}$O`}n1ptHt0D1ucP6GfI0{|)l0LlRXJ^%nT0RR{P0A&FH zLjeHe0RTS%0J#3!0swjd02TrOP5}Ta0|0^n0QmD3zV!hBP5^+L0Dz?cfI|R)V*r59 z004IY0N()sCIJ9`1OWI00KNwRGz0*A0{~b80C)xfcnkpe0RZp{0MH)*P#6HP3;=Kg z0PrOM;C%qV3IM=706<*;KnVaq2ms(~0Kmrp06zeL4*=j#0KhZ=z$O5|H2{DY0N^yZQ0DuAjfQtZtz5sxh0Dv+8fcyY}J^+AA004IYz&-$gF92XN0AM8m-~<3* z7yw{50H7uSARPd31^`eH0I&l9a0>vi6#%di05Amr5DNhK1OU(x0FWC1FdG1n0RR{U z0Eh$t>;wQj0RZFz02~AWBmn>p001Tc0Ez(so&o?y008~~05k>wTm=Ah0swde0EPen z9smIP0RWl<0L}sc4g&xh0RY+q0Qvv`S^)r70svkE0O|k$CISGS0RXN50D1xdE&>38 z0015UfW-iSKL7yh0RV*n0AB(C76JeU004dl0IUK4yaE8^2LR*)0IUH36aWBp0szbf z08|73lmGw}0{}z=08#(|xc~tE0Dv<9fHnYt-2i}a0Kgppz;OUTHvm8l06-o9z&8MZ z765>a0Dunx0J8u9CjbD+0Du($fXV;>ZvenD06-4_fD-^<6ab(*0N@?~;2Z#;IRM}d z0AM}|E{0Qd|5&>jHb3jnwP0B{2Ud=3B@0|4*@0F(y+3fGXVgJ0Dw~f zfLH*4833>q0MG>ha2Nov2LSLB0Kg9ba1a169RQF90JsDIm;wOU1^{pe0L%jbR0jZz z1^^fV0LuXYQvm?$004CX0G$ByX%0Dy-8fWZKOCjfxA0D#s2fEWP4 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�t^L|S!wp^t=b!)U-k}Kz+H3qH! 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ð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

6hy8km`@A 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

tn$UsB&2f)I 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∠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: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%0Dhm)F>UDgef*Q`TPspe_ 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

03zP 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�d^EhkBfl`Jy7rF=f+#iP)? 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 z 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�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 z zek+c(*ec9PExAI4R9`y0lBWEs8jKzKRdtZ1YgOF$sP$8a*XP==Z(U&HLO^8=knEsm ze3EE&YSwCbZFws>v*vvN#$fQ_KuaBj(eQY(6jZ&P+MA2lG#+3b`@!oI3k-SzJ{A{r zbB6divGPswVr*K-?1R-)t?T6ueX)}uvn>#|Ql|`mwF=Dk17Ph`SwJxtF&aC!ecG-0 zK-FK$4H^6kA4coE!q%B8Q|$KGdxu=;&F>!lKKVu`>Ue5tbRCi zz3S)Qa4cLb1-LVY?-$L(>sr*5ir-Cye4d@chZEKBjK)Hy1qmNGe}MDpp+6<}CKvihSw!WXj zCh0HM0i~JOX5<)?Z(l8XK9MvZg=Yar>UId!3Qe#=YZ3#mW*LYs`yCX(D@kAKfIW1J1|y6F)MG|LI4Y#eeQ1XYuC-RxZ17=Ki|qhhB6E?`OX} zv0!-g4Y?d}ElyuE`h$B1imLp@CVnY2hQmL;1b4N^ zSLX8Nebu>_{As2q=TnO57o|AHYfiGd;lr19#xVU=JH`{mXTx859WFaxPNsCpZ6HUlB)kIqss@m-1EeN?MR`BOoJAo9O!vas~aNTMFy#a;V1S{K? zacfF#I=mAQr2ZIat+t%?Bfk|awt|}y%Pz|bpC3L?ex37?aR(bt3)5~>;`hn{hJ)>m zH^`;<>xj?ik4_(-xqhBaLcAf6zVrao_F(o8Af`vlKz6i`{in*Kk^G5@y!fRw;%@wW zopACh%4%{;!Vy{MmvfGkfnj#%New2v*i@M>k!{uhF!U9SXjwtCot~@|h7nzl2d_D| zX6a#;Z z!eUj%a=Fs#LcaTaV0qgDjwsegeXBX$E5I=NcXnDmInPZN4d znVb{D@7}^{evAS(JU1ywO;{b?OmKK7o#M(2KkX8Nik_xuIIQKFpa43x1;$#AHHoqr zT4WBRsVvX=JbrTv1D@qK|AY$~zZpv5Tz=CcxVO!3exW6xZF7&%te3m+o7qbF#{A|d zR`34`ze$Ue=gb;6^}f=q2?)6T&y4t1{AQvS#4q4CN3K%C|7L!3vU>Z!#BUaB-O0h+ z*X1{h-(-G?%YF{O+5IWi|9{PI4qfT^&CV?Wzli{nP00O7%I7yfIV#I<^g>s_Z$=o4 zv?G*fQ|N26oCn`vs^aLTl~9tnt%MU;ki-`KC3&QH*ypT*_R_I4M%fgd_9Q?U*Jz?< zafY${CSMC!%_XGga5b#P;#mQA`>I@xgNe1Y>?N-aI2)c44)*_sbtEqcnoB)F=i*-x_AbgKh2kc)JAF#OJE0AS>Kg&(~kpfxvcPT-2a=M}e_BT<1fc>3pIo2fh zoG$ivI4x$`pOcUMD~o03O^1J=bwiA^M|mW6lr9ItWpWBa#2FwCy{LBM;zB&PV|{la z%v-RrzNJ3K5p=N%VFfd{U-x>$Y6GmoaZIA$?1GBuRg%bnG09QA3lIAPt~WB>p{G}D792^>4AgA`Qp|4 zDj}4cu$xOLQ-Tz#Oo?tvXzK*ICNNeX;95TG5@4~Gd%4`{aH)vNZ+ZOhmbvThGxaZn>3+M}KFSV3Bk z*twv2gqL364SA}Ct??DCv4zchq=q)c_SWHEw!c@T!$TQ_RFA4vY%iG8kMm|5CQYuV zlSxWbhZ%`k@wHodyD_EG;j~tJ*}9`+at>Z{FvQuROEczEEX%q{%a`PVg6k)`J*vWM z5`UbMLw?Txd=x#rs6@yZxClTq#K}jFeTe(f@Mx}&pV2+ixxU*m@&4nR2S=hGdC_M% zz=8h(^#?xU+)p4-CI7zzk}wuxo50v9y{)Hv#3{P0jSbZ3o7^iEiM}wVF&(}~R*kkr zCEU={t!12!;mGjXqxmvD@fGr)`0Cqx1(UY7Uik7l*A;ucpYnQlipQ5kqQ|jCGAai# zk!UZWVP78&?k=ZKmopN$A4uRGvf2v`WAg6N5WUFCx=Wraa_u49b91w1*>Lmdzq~Qy z(LZ#^6Xpp0ijr}J#-0ApkHO0OnEl=EjS8{;z@c)-!U6F^fPi5n23(Lk7Q%ZTzH1`U z$0N~|zKP(!@BE|tSFiUQ*Ll&Wy{A%MeEU# znBlYjVO6LX(_>UWjzm|pkBhFT#tT~_P?9ik4J2$=1wyt|~jW=XrsQqEhmL)xU z4do)0=7C;Ynzx7Uu(;v93W@B-y~u6pZlQMF{8+bSc&~2uraXoUrqGM*XMjw!sS+NV zjYJ2y+d#&VDn4A3H)4HnwHvKCaPUtnSpsFI8pY$`oa}+hwcWm8@)&zjbZ&Z57Nouh z-eenQ6+hF6!eZw;b8W#2%8TC~X!WutJ%Kpj-z}mSWYBW<@h~Tp8l|PeDMo!s?%iCh zh>Sq%Qnx5noR=N-F<#+GoVPfxwgJv^ptDss3|bZ$!l*yp5ITBwr0vrl(*_KWeft3| z=(?A%ZFyn+kQb)ymO6mL$;o-d>WuQLY|`{_=>GmadTqa}sXM{6A#D^xl!er|P4})#?<^sM7kX zmG!aHOT1X9zVHQrEshj+MmiVvjZ{7A>22H2&a(QdWetTd5XlR*oedTru8&ftYFUJ2 zk2~t9uehGKYoj4fMAk*0s%u+^#rT!Y^mY2Vb_j-ad{pXVCvnEt=dYt<{d-2LUaBu# z8R=Zmm*yi?3uvXpHO=K1Pt_N$CaGVfY6bDUr`uT;saoh&fw+!hs-E_Dz@Y7u;BUvl zIeXQ$ecWSO_~_V9Jq@GLPVhN=$nt3=sR}XnAUu87(edqj4iDYGQ?ZXpp{O_4*DdQd ze8{rtJ4OmSjt<>7*dfz<`VFu5`<}38Sj(``dTzUqbgr$b?=z~#qhlVoHP%sdc$ZcJ-fDNQLA_DiZ5 zr6o8}jM9Ed8dKr_asF)Gf`@5m4X$K>dA~SVKAnHF?-^o-vR9Wl#kHhme+*?sCIcaf zwJ(CP7=wxrVG*B4Wv_!x^w3Em9-qhofGSHn&$soO`7fj<2FK_fZ!^B`C{+@E#ri<`LW zYc-KmKj-}@`o)zG{92XM3CWi@UcuZ>d`MDckC~80daYclO)TQRP%(cta^Bx4JFu3; z;CNej@C2=J^;#Qxn6fG~Pw37l<&_-0G*fbgR8uFtZPn)d&0Dp3{|d2UYje&Q zlzeTO)Qr3~zZ1)}d19s{E_$(J5pN=;tydPx?+xhAG%}+0BRr*^Uu73Sy)8#*w z4&O(a`Naku>c~7oT9mt;;;uBe#pO;{tvm%P`R-wy0bU6I=71- ze4Xxm@o@O;HQScpUj)Rd1=$gidtcl7vEry;wm5NFCtGY7KA1w%IgxY@QbHN@tiF=+ zMfO~$G>7VA(^!Eqt6n!>9#&={36z$xaQ4jV;rMx@@$)wm1=cp(HZ*OH(AG3^_VrXF zys+b>O{HzVqhk)sDO{(IE{Q!*!X_5-7ZRkdije|^F+wNf8c)e-TUgkt{~cZXKPc!w zKzvdEQB;fMFjk@uIJd7CRo?CEk0SeJdQ3|V< zwE}gQ7PcIu9^>uE4GXeVU`Efrpkm108n=e{@ZXIv)8W@1)(E6l2P5w6&28(OG9&(@ zN4DAH3iNqZA|sf9XbjLU{2L8arcSDRWEuUa?|w;1tZ3DFZioKo;zseJhX{Hx7MJRN zfZ*eB2R^MvdRJE1GFTPEcCgB9wbQkA@0y&TfC`=S>JXvRE1AUOYBiJfb!-`bMk4e> zf7YHpUVg~X@Mn2+lmeh2+;a&l4}4FHVbS$Y=R@kRzGt#+HXn48Z8lH-soU-@lbNNs z?tu~tr^6>upWCh5SzSY?s6LvE_P}2{d=#mo*NWsPY+(ebw_nY+fZj{y3-jBc_gnq) zUrz5kisro71I0%0*J!$ZF~JA+j=;anb~xkJ4P3XOjz+x=KBe31N1wQ7cw3JAf9#zLoZZ9u|92%zl+D@T5SP?qu|aBskRa^l<}4ds_o!f1 zlDY(`Y*5#g?2_Z;kXDpm1<|5uMH@tj29Y44N{CzQw(jRxB(8Bk|M%ya`F_v$Y<5#p z+Wvm8e_rhO%zWoN^UO2PJhypfM%}J9zQoWLxY+WSYdOD%V+e(DV5yQvf9j~{3YOLw zmpe$-rOFYy!&86F`LiTOfFA5q!J9x;w4ImSsn`Rv&%AOg<{9`249?#&TB(wi$Gb{L zx=LF~x=JUjQqcqJ@Eun=A6w8Wy*jA0@t{=6n;y#TU4@T_Q1-Zt3OBS0Z@argC{GS5 z+&`#rLce?r?_i7u=9(OpBQ!Z0G&#oU&_iY&Hmq3L0cF{{Z6VHv>yymGH+$^In$NfV zeis}X9kGMZ!EH2S&BwU+%TJ8H@0)+WPqg0muL$eiE}Fk-bC};fnt$OlVZK{#^YERx zD9nG!oYnn~Er9Pa+h)9c$V3U`CClcfw(C?)~kkK=JTgCRk6L3h=sPz{z!l z%OUhqtak(u*B4LNF+yEsK_FpXw)jO2Rwf7qamNla+u)8!X4^o$zC#)(R_`u6B!Vel z(2@L<_qvEN<%8zRy<$Iy@iT}Z2tu9hlm;L5xt-qA%{PA%bQAr%Uw^h+XKsI`*wpiz z?})0;tK5Isb#!#7_n|&Nq>s`y>U#a$==&e$-zyfG_j3-8zWSR7V6tRmgGmH#TwoHX|N%daNd8$6e{vu%`&3`DNaHN909q1NK!Aj!drq-6-`eDXRf&{~3F3Eu#q4A#C#?^?)E!-KDj*lf5eYU7k+~cr z=qjMfyNz?(K62}rBB-neV`B)!yrGu2=o%5kb|mHqtwNl@%M*FojptaN>q$+ufD=I! z3m7K>D6Kv%zN>(g6+S(~r;BJ^;UY%!NKiNu z)Y)a>6t%820VC&s^9?2BdRvbYU6NgiUmU4r6?lYv^5t})*_OXK$`5T>vGx54N>6pI z;F~URkpXJpk$*iWZ(Ln+#>MAO7hXumcvNN^DJFGmbKwVhd z`yAzizwHrw*qqW?J-cq`B)tx>6Zs#_-bSmip1*Y!4g7_aRO#VWHVEaefq-bUX|G$+ z&G!^vC5S}#Vluh-C~UL*h4*5YY*yk}o8N&1hmYnJ?J8*S6^OZT&KDH~pG`no8Q`pH zsVT>frWlXOoc-~KIr%2w3-?obVM*gg0445}sn3^G6rwGXA?7pBt@Dxb{+^lc9Dkj? z8C^yuenNv-Up=>L&E(yg$SlYm&Z6Eh=%eJK-#Zi=foQ53Zn)xRm|bxrJ;t`SesYTo zAbI9s7eI1;y{Q$;$@WMvjZQ3Y^FI*>QKhC?yQ}t>Ut$@KCqJz3CSTu0zP<})TYbML zyX{YjbPzdsf$AEC77{(saWgV)jmTQ&PEWOZqrTiL7az*goJQmw#BZUc2aN=dq=7!~ ztAkt~!_hO-ia4;@x21pkGH-M7&t^p=a)CU$i&3x@+Al(~t|to`?KeqFTrOyO+fT&6?xI`}QD`@td(|#m+C}s^->PPF znQmkBHrAmhBj;}P)=H*9i129Q<%hBJU4ODl)up$6p;iaL?*u1eB$nT- zIUv1O_gwuFh~+mORg-+cUeDxp&7?1xyu*xl^xK4wMgQfQE4KU!kVb{^p7&5d@~p~3 z1Bp5DmWP9_BzEF)Lv}Kt1cQ-_@1SN~uV^V|QZg6==11p)(ECst=}jc4Ra-7_%GIdb z%_5p+XB%u%f>gZ+7u4rqu>LLiBm0@|=%UEaTlhJK?aJvNi~b&T!Jq$dL&kj%yse$Y z{`=Ua!)=s78T%Ua`DC|AftlPB9<+I~xk8soB&Ss9ltJxyxQeI1z=(C@6>NKm9^Gz3 zMxln-hOX;+DSoBkUokw}>}1dBF4mLE#1~>cyt2^4i`*X5P4?;g87fb?GM+YSQg%c< zncqM5wGL%Q4DnZ?v_xH1gP18smlEGq`bO+Y%8Hnqk-D)Xk*>f}5#{!jb*^cnVwyIZ zh5WD}jSC-8DzA31p74)96bh&(Nt=LL%L%AE=Y|5RHx-35xrxL)uusmZoQI6SY#5WU zL#fAq%CX3#$LR(Fy9Kt6`xGuXrbr{ZY^EF8+lS{z_A=S?W=H;wx7n>sP?XNQY>7gO z8q~gL6~dVM%Qmsh1_}B-*9|wyU&#c{y}+S7i5eVsAvmnM&+C%e%$pTiGmnFC==G^X zq=~YIekFo5EcSL-lo%Qzy;&H9N=4GHXJhZrP69ZPE2=`yh^o*DHb*yL-Pqlf@r@Y4 z2P(CMuWd`65=K5i(qOPPSG3wor^M_13ZHKB?~C-L{8R%H&M3M9?~c$67ia$7wqObE zBl)QbwRc?v?SDoG$TkbxICAhOJZqBBCeskgXaCgha)HHUVxfrR;D6UpZ9)l@`L^vX zfDiO{rAS*3)9+zupWH+W!c%Zx=E6r2AL4GAGxZBI`nm%oKju+Lri}gjXY!+*PQsh} zoL?wEl(v4~fW+-b$oP*Rn@ce#~6= zyOSS}4vxr=Ki?RY9|r+(f&4gu*G_&M;N-`%g97<+*rtW@W8s?1kGE+hFF#&0EdG1s z$K)GA`Ed$AMef6E^W=W%%WlYs$K!{IpLnnLn-AlqRHB1<(n)i*iAszBA%DHXUu5YEojN!YdZ z2S~+&G0M%M2vp}UGg0$Tgvb@YD-qB-v^MhpV&dTy_w1pQT}r_c@!gC4a!RT9+PM5z{6`Vy~$Imi{|ATm%H^Rr$Ee)HgZDY^qXD9uyf2XW4UF#bkR< zuei#8uNkcRX8LrwPm33;{wkkd!c#b`))O2)r>DkF(m~K=hAs3427!&IX_o;8hRif1 zgJ8nIn88ycTdfLalQ6EYR;&cQPzf#i1?Ghct!iFqj)vyNBF9782yhyB)Q_cWpps|) z{^4h^88HdYmkM(iDfeq~&BO8FbQp=d7n$WD&H=fG^eyHsv2XqP7i?^Q41!C)@9rGdtEq-RFh=^8~;X>I&wwEPvy z_WI^#2b#XAH{M?%>rt37HZ0>hyc7<9#Z0B6k~Q#Gd zv7^1sB_c;irI?}f&6pRY+F{oavhaT#@A;#ifO*M2c{E=tG)o#25&0Y5dnI@(My!3>FhuLG06z}_EW zL)sDlJ(>Xvdftxz{wDF=@ZVxcCBlD?2SjJzC*YF-|1ER;_odzP{FlqVCW9q}#1iGE zORu+w8yM#>zVoy1lK=kl3P-U&-!nq7#(y6({?#V|03rXqn$o67!hiRrPwn~dA-p%@ z-Pk_vw_ybO%s%UO#DCAEl{zugUlfd5`E$O8Iqd0g)z{MR|6 zh51#aYdc4@_;0!RZ>9KeRn!sf1YGEaHvT(E;2|b<@L>KR0_LS-p->StQ(!aRd;V*p zi(HJ4uH=3f{MRo@pujcJ#Y_t^5bC|Oxx9IAj04rIid-p};u*0X|GIgvd04=N=U!gO zg#Sd^nDF+LbiC#8>m$4+;wbK%314_($b|3xl_QC3_lS^0z;wa&T;97Au!MVK!s7u! zOn7(Cgi{oOjwc)}&9~e$V2ZwyN&eN_?Gr{O(ipbc_X^nPo~kGyv*!QtY_vQV@6C(s zeIXnDU}?Zcr_G3TRr1EJotE|-7|pkNUJ5~c@k?rXyB#k*A7DeH`F?foh*f#%JiZKh zX<25_osO6G%=FhUcxl7#;-zO(%sWqcbZRee_y-qOyQ;l>KNYNrz5G8oHdnQmFZV9c zSc|upFHtdXFL$S@sJ(n?Ku7n3#lT*^f2!HbKhbwld-=$)W^XUoM{1tKM^Srux1i>z zz5Fu@nPC*z%WD;i=I_Q{&eF<%%w8UwZ~WhAFL%Gp@yt&yb@TX{T|2UuGraxZVJ~ld zduJN2^yq(!y?j88lnL3(e|SA_FCP}>Uas8GUcMp?4~f{zr-16Hy?nINtJup&@RjW4 zw{COx^3J3KdwDPW{c`4uz6JJjK3>}yLSNw7syCp9RKz5iLdV(u$~DK?Q{W8kvxbbi z6s)GZ=3wQ$tSlGZUBaKtv$HV!F^j60HkHK_?7%6%G)H{Xi0CE*0`3$G+Scd}Ju89m z2)(YkfBEKkWojn9RXjoGj*VgVn@8Z9DY!gaK8a0RP}6O3S5{H*LEoL5>n1}v8S3gnwdVn==uaim^LH2S-{MptW;=(TM*d?@qPtDoV( z_$0fL4vzFeqwlAL)t583R)NU^efLx8G|4X%OW51lO?pb2>lkavdi_JQ{CbqsUx_|^ z4|-oS&k%R*Ky+WSizm<-bIa)l`a+jn;b}{%Gy8@u>d$d4rJZq@`PD=T2)7~~xCGd5 z6Ki>t(((=T=UbVMD-0%Dm3v8vzE5UarV?6-p2Z?)plmr7*t|7>a(4P%YPc>oBxA^2 z8Tuq;yEQM2c&mWY zj@si7!GQcd6xUsEA4$*~$1U9xGg`n?r}I^*-lf*(RgT#rw-)fS+VeCsX5NFPvX6t1EKzqs#96ciZBL zmUn}x_oPZsLj5Du(>4+plJ0qvah8rV;TB>2a3 z%1=*o(+~u;k}poBk<_hs!UQWBnJtec7|<0jnXtabwv`fnA8xC!V<_#;7oMsu9}joD zI%=#h`AO#dn`H(`$hcWHxXO7_{0=aD(}T+_Vp5K0zsc^x2gGJ0=8S4%J0J&9FTO}f z^vf9w0J1&rWYlIWn^Bx$Pv;I-4Vtz~r$q=t3^^A+*H<}0UeqRiARAL*Ee+_52uj1M)L3+KKxI~ z!(%V`_VVx$bu^HNr{3_L%ELP^5E9p19xg~n2*Sz3vA)Xxj66I#3edVH51&6@ef*B) zVRx%^b@K3?^H!lx$-`^5ZYK}j^+s}QV;EL*8w3jqQ<9)HJUJy*vS5qAveuOmSk`xv zQJ1PR)9Pj#;)k|dB_ySZMrpZ4)rn@fPaH_SWj5F6*5~5;kehu%=~T(Wu=cfG?eikF z56{>Bwj_MZf(eKCnm^!`)!f*i9BR#w({?^p?i*Iw!&SL^q{`3F4FSH=Rmo|JsBf~< z8-3ls4(g7z9Hklp8f^mPRdlw35EK=ymw|Q`8FvZo~a_MfUzK2#+xATpdUKs+E2_w3ReRshUf1oScV7m0H1BFc>utP3uY+v`Dg$Vv`B@y87L0aq_e;4SpJpSZR$aGou{o-#h zt2qJww*MlJzeD;N{+hcO{_Yvx5&o_`YmM=z{l5)9D6m`R+GC}&o2qswBgq!pe!@d} zF8%^dXrkH}5dP{cM;tYg)4$Df%$^8?iOuB{i+K}9j~_Ssl+(s*TXE0CyyH$Eed_3+ z{bH<=<%xNxoHpvz<4!+ql-qPXZ~W-SU;K2`=td>0YoM`fsMxz9Td?n^>PSx=vW8!!oI}_+rfs1+pN(VMmbydL9!V5G z#4CL^7~v_Hzn??8mVRNtpdda2i`s#@+&P7GMt*q!rrXo&*N zyHbFKWA2SSo$Vh@Uv-H!YrP89`$1d0dYJ?Ves`^?*>k_LSj%FPEHL%q>+E0oO&lKI zMFZ4+McQH`hFa65V=n~7ZiDyc`WV*VAYReHYjfA0z|%;59Dwdt=Z5Vp6Cuup2tKA# zL>^~#u$Xf!ub>fwdj8M#gNsdr6W>>6*2OAtw~Pq?5yxkw8w21hbmLU2v5R_!T787j zjHV8i$ z2ZX6@U$fk|EH_$xSZkvc?@ZmVifQrqpg-AN0W=zgHbj5`TA2W$*+(0MudbZ0U2^LO zj>-|S{a)P3sJ#0ZM&E4-^N=4G$IWh zpKmA;X{gaPbmQmN&`U#BZRqaPd_xniGzBF44C2pzj|~1r&-0pkxF*|ftDax?I3Eduo|1c*5KbAY3X~yK zWba0ATR%4UY^=sNA@_E|+Miq(ZLhqu_Ky9=?QLtCSGx3?$sjVd+x@WkyY=(q?Elr`qx?eI68)*|}D;Y%ae{BoShASRW%*qZ=JE<75++TErP%89*^K}D-r?z zK0bMM_*?#10sbTiGK0To{o(SX^7uRA-8}wY+urck_#?yLihVo6-{Or}I!2AKI{EK9(og!~*o;lz_ zBsbp6VJ>n3Y1MIYb(f)i&gi?iC{cgF&{T19=sK~vHC-nUU2pNw^+z8!`q;%oW5awV zRIjmo!@^mqAW6QgH8cO$eWDYUtRzd%mHLurl|9eJb45E%bVyd?Sz1?Bqbzz?Z}d0lA^9g_jCyJxotF74+*K1Zb^*noLgb&nxvnEm;qCQ~NC2FCjy# znR3vq5^GyFz2JNcEg?!*2|}b|y{Fp>s`|5l{Mt!h)x;)Utv0c4xh(#n&0|RfT9F@J zyp}(K#p9pdluU+d3m&XAH}fs4@fY%t^H!)5NJ5ojEv!k>{e5}{<@7$`)3beggikN< z=@Wca{ez7FU;Ot|d~O zOGPWOx%+pWoG4BGAemTKDppl@I^i^;bmD`Wdn`HWv-M*aB`Iye9Eo|OjvYVx_|r!> z?w_pdQ<9iB{si1Hm%t%E_xs?u~xw4keVo2IGaL^V(!)I7dr7zav%(>o_7- zquFUjv*x@>9^N&1AU8Nq2?^E_s5=+T5$7=cxXo_MV2@$d`t68v7#>6y;KVs%HoT4) zhuN?@LcFL+qffC)LCztwIvq==jcXtX-D=*Ju?gst^M^-cv}|C*g}w7rQqlR|T*l_R z?7mV#@pJBbOwrxd)UGRJ*f}s($^L4!oyFlNmcIz!wUDgl8H1zf zEfZruG6KoHmjg-bEzco&G$o?zEidqT)%BLg$PLz8whn9W=W5?HQu~X?TZdKq*{=3* zy=7uhbGY7e7CE-wlGAym2C!dm`GkxB;7jsVZttpGb-iV~pzc`9AOVG~kPyFXVz6a1 zU^w8Y)B*$>n7-rnmW4kRsr7rlSb9e39D9TdD5pH+ye7eV%NdZ4t+%}3ir-OKe4lp3 zZ&Y!ux4h_z&n+w-Ygc?t)?1z*FO4Yv)ZVPO+z7hZKMn0_Hn1Z041LS~T|h*ZRh~Fb zboz4Umuo|l1@xFI`P&bj{^2X%C=e_x=_fWWP%;Qw5EQGxU6 zJNJJceo$U{-0Zcy@_17(0TSP%!j#9``*ox|UeXXMk89xnbo%3=I`+OA%C!rQ?M!Ku z2uW-CkEZhM#{YFt^lYDZ7f&q^<77Ul$RRn_G6YM7>7F1X*uhW-bhW8{>_)2hgC zRiU<_;6LfAJnaQE?p{_hZ6o#AVx#jL#3kHmXtLhfG<^?+h=wju24|ErRP0<~&TkCc zm7)}oyEG-uzw%BO07V4ZQ>;2F$;C%HY-;oVFO>VuXR?$BcJOO2Kgt8)Ytt&;G`Kw* zK<(-#aM-}!)1K2z42exh%1IH}Pn(hU&{-qf>o|o?SYQ?OWrChAuwo~8_LVrL=-^_O z=g>(G*@{)nDlO51(d^YW2Kn{+1%e@6()h-5WQNm|n9t`P>rO=nckT$wTzqS$L@xg2 zF?i?X$MPq-eni^TmLpX!4WqHRQ(ajcEb9C?*DVH!qFF2=R=daG%Eg22;J<7aYC#m) z5yY=hwRR+pp2QVbE!%Rh#kgaX&?~`X#T^gBUVWS{ ztHY4^fMYdDT$TdYXHY5r-J=T!{)>@*;ICGjsAMzsw6S;Y=G6{=uRS^%eny^q=Tz~9 z4~X0NjR8lyYf=0`?!V%F+W;>Bo+gp~tvmZ5Stiynr(ywsWFEMU?HonCh@J?11f|_J zF=WSY^r->{q!Fp%|2c|=ksC)AVaxdw5L$fRP?tw+cX$gQ_oZ=j*trz2uaEL2H+Lna zeA$9&nQ6GDH09z4`a+-NMtU#fcfen_`U1F(?Roy%lZ=4BzVnkjf1OI}?fL5sypQtN zLt~xu*M#0h`Rl&Qi1OFD$m4&FzkVrr-2D4L#a}mSE#R-Cw$ZdRz7_D-g^W%vKK;nT zX*P}Yn(){8yLL3e3i#`VRNX0mee_e>O_$zi4}(+TIr|X3ES4A?i1Y3F>lSMC{}g}S z^QG1C*WrJXAT8jpe+LDt^4H%TQ8@5dleU3hBmR0%-;Rdg7}afuQ}Jr}>n=1L^4AF@ z0{&XNUWC7nx}^jDx{|6x{<^0=jq=w4Y8d|d+2Zp&RgYha0@#_gqb5ThAx35eY5IIjdX>`9E;a0c~rU9mFW~i z;afyTVC^hER1ImPojZ1GKj1OiyUB3I;aG^rvnizY-dwzuF|p0Xxtf&^QKH)fZfPDk z$oSW}l=8W;me+V`f|{Ly+gN9in7^e2%dQFA8JNiL419$Atjvbsi}w))rnQgjL8k(i3f`T0?>pND4Tr@;DjV_y?sq_h!ts(Fs{ikdbN2 z{HW%KMKx9i3wgF5#*lH!A#_4pC(r4ot1iw_bftNH59I~3OT^~27X=MAjy5B9zaL@5 zN=M7Z4;A632gbW;uuv5;8~%|AHN(6`1Gn_KiOg4jAonmSDH0akcS!ZwgA~TXmB7ib z4VG69rYh#u^(#jf`IAE!uD|-+6uH4-CeL>E@I6TI$a>0~cQ`6>@r5J;3b~QmI=6@a ztj{zjTzsL$$9;Hvfl2(GujdUOBo60P+;yJHo5YuQ7cB9LxS7N=w(H0wKJ%cEO1^D8 zOJRK6*PX`4&8G=bQ@N<_za&0x_J#jHJ}$qHZPEiB#K+yTe&Kw$Ejk}a1oPpFAFp;k z=(GHMC}GBDUYq^>&WBy`FbDHt<3CX#)8*rno*e!y;*-*R?cs0Y590CRLNolgfI2jk8^eYqwi3%T|bdKo{icd;f6=8hR!AhpK9qd~8XYon1 zPFa0?(hUM65;jzaA2^Zhs`#WHk2xw=e9|>0G2=gq8I}LB+);TnK55bctHdYmc5E1* zbP8_^uIX#T%O1DS)PBbBmT9`tnZh9jo&lRzxH@E&%YL} zEm-1*mKwsB{;(td_50d2=3njbcMGjW^r25?Mez4Ni2#3B&|>HKyHB6x@wc||fAl*k z1mD+wi(Sp3>hz(NkL2+;$!>m(Z?wMQZ)&fO@b|OC8sje-uePGIc(p%Mzxw`-QL8KV2)3n>NE4M=G)}L>_=u?+PdkrLS>_w zl>>JP3r?kA_Gy>v&Xqi7h>1lx!x@0HNJ$d)&*mLCqkLXPkca76@AJyYE3}v1y9h3X zI!H(bOAXQeL{sz)c>Qm(mzo;?zrFNN?4=iTrd7B2_4GGyjL6GZNCfh7^q|$r%RlS0 zP+n?3(RBsF@;hHo-)@(@vhm2Gys(`6wI)q`*3Mg%>Z(qj0>f z$j0Z)F%;ghRYxdXxo?QVZ|i^gC-!FA4&Cb9-rTmD0sfcw!@Px5EwnfPCOKPRZ+=K0 zCBwu0Fh3>Z8}End1)SdAyoB$f_U1&=QG0Www$OfKd$VFwH*EjJ-fW=}vo~k$qaOwK z=4Z!#V|()$sxf=BpVf!_8)@~eVsG{$yPdr`5t*&2;qA?nO@zzd+|;TF?afyQ0%2;~ zWtRI-_rvTB@T=Povzq{k*qdMW5x&gcy#78%<+3-^CN$%Z-D*_+_zxYGJA2cyi46g( z-F}#v6tmOFa`CVBZf|d1o^Pmsq@fDe&}i4tm<}5HBUM>L-_qV(>*$W{&CR%yK~nzU zS7dLFrS^#XxV``Q#m@@(*V;28{HvHmz`sUQP3QdU@#_ls7s_!_=EMK_e)-onJLUP; z;(PM^>vmi5jDPfJ8`+Py=!k#qvDX^&uc-afdY-hQ4)zmWK>gp!UivlDt79`I+TOU% z+KYYT_5ypU&tajxw5NUs_R=-f)G;6(*h{U9v$L1nB@uN=R+=7TKfs>q{xmz_O=7K{ z=rHbr9olz6=Bo!jwrh;*b&c^=d@udmue0^;TA}3}R&usIkQ(3=%Lj<+98U;11C@=^ zVQuGDH0Z=O4r_Z;s}}Vl`F)ps%r3sYD-^=eP2v4#P=Uhx4}ZxtUUzNc{WNR5@dVx` zChf(oiSsQB)%P&6vUX86p-@Ce*H!E*2oKV-({X|>h)ADeXU`>)DH(POIaUlC>r7|q zw^qUU&1qu(=7=7H>0=O9GdQ8&_FWIRKy{Wvs1$s)FHv3us7sBuD0Pef8eBZN3zkMJ zmF6uC>%gD;1MQyLx~K)d>q)h-k3!KfnWx|aZ57OaGRe|WK&H57QeqqHx%imO*Cd3v z?OqhGsHSXze7=jBJUsd6@Z^IGvu+gcnMi)j-qj(ox#t(xH09Ph<2;>}SEk(>0uR;e zz*+i5RZABUwbbb8JPe?WB0Ci%kOS$-9$%}N!ieS%p&AjylLGr!6Po7kCQgLR(%SlaopiGx$Cq!+x z$Y$47z3vD~4Qq5Yk&PQoRG{M|*=Wd6QBu_ILy$!xvC4Ki0vG*HV! z($Q<3m0#~GxN6l3bhw~eWrk!=THmTUsC_l3Lgo?+urN0CCUwA0iN2|{y$NM>!@|s% zzS+N9(IDP$O2y9VI}}?hMs%dszfX*njjZ@ZfQLL@0zCOsDGBTo&57eU4mGLCCq0w0 z?GrPV*JE%)gh|zlgR9v@@(`|LIn8ggsr2=8y1oF`^-UUwSdXLFMRN$dXb$M1yH3Qi zk_RN(_K^$Y0G*cGN)xr|^Sj)w`##$2#E(_;lMm+N6L%v5Ve${h)Fe+WhV6+5g>3KW zMPu-#Jx2|>_%4()@`r)t;yaP@G>y{U%5aD&O$M|v+M+%tdBR#mU?ftGQ8jK3`Lczr zs~<9Am2nq!qmD!}Q4}F{Q`Zb4o>nJ)0}+;`4uPoYZVMPO49r99sR1leNbFh$YzNnh zJg(75_uERj>C(@i(8C8UtdlwZ3Qn4)K^MToK?hWky@4-aWVJA&y5u2UlLxT*s7`EO zClL9gZX|rGA`-beItlbUIys_~CNiIle~l2~ml@&PmLr?iEpkd`ca!TbRdS_3&i7|W z*PjcmBc(qn?9b)X3i{KmdR#NnsHACr_D!+b2mtQlLoOQ5{t%}1AL+Y=Jgr|vS3};m zn<9J}#3~<0yEbpLTawA$LqA!HF+S;modVD9=R0d$=bMm0Ctzk~Ho3Mf*R}&?kFm0k z)&*rBTeWQ4HElH2T#*4^9MI6pqj*9sn1g}wTN^fuG(p&RSf(do{EmUOLm_^9)2as3 z#PH;s!YH@&GRt&k5d^MTW(Br37>o|NU5?z$l2boK;~86#uxpt278(#Wl*q+LV^!)^ zgGe>u#2%%(##$=)lIsS~=VqpH3*M`~qigmmC>Uu`%OKXlTG~j`Zia`^xg-fBcN!;W z#O9)`LgPP2MXTi5$a6=L35RRB-M#9zcvPrbkXHRBSA_=BM(30_w2(GhCtdE}8@-dR zBCWyfMoX1+V@DL9ZDk$TqU8oV3tQh?V{D;l z(0kHqOj|0(kwze?_Xrci#hi+dNO2Cz`#ch$rid~&1+))ivfG9MlFC8gHc7vA)@`Ik zFYaTzYV|3s*D5-oYmzM&OnB8Jgp}FS(+B#YgE@a{8bYsH<*QY$$6(kBWZ`}{=(qKu z$6)S^gZR_|fHU!1J$XkN)9h9LYNs)N!)(f(X04#~Wj0F^Sx#o&nNrJ#RJUqwcfN&)k5eFjFMLP4|=^q*sF2kXbK1=;+JYsOC`RXhRve`MVWE=VozGJ z_?xRVY-_puOxb@N|uYyFFWEQ~xyl?o|+<>z7d z-m!A?{ek)p2PV`qBbz^jT?OV7R}WA!bMb-2MOj@Xlzo7@viIrF-THF}e@x5qdjGH; z;iEIi6u6a^8QEf*NWPufd!rI;^cS?Tl$)MV@%K;fy;mab$4?6U2GqgvICaU_3ao&O zKL1d}_AZjPs3hF{iUGy?5OXJcj_-P9q(O)mn;^4f!xC_c;b9GC7gLcKy7YLdgDz&2 z{Te&Sa&Tm*eJbj@jQ0C`JEQ&j$1vI_^~XGy3(=&?TwZZt`fN&e)$J8ny|0m_8;h-W zaiv^*Dp^uFKjkyA;8@EB5;d?X9jU{a*;cJW05%+?L@W8~sJfJy6>Wjwo;2j%3?TmWP{nxJvA$Z$T+>s{@rr zrMEOF?n64{QX+T>Ic|4Se%lsS&e=7MJE#UH_tE-;?Z@qTTl}N#1?tP0>5mqKyB6LL z(hZd+a7J+a6;n3B1rj6dImbAxJQHiNV0_K4f6eWG{Q7q#itpEf7>v8qhjXu>hBZ7y zTUuUjZlgjp${#BuU0P`m?PrIltdr@Hk_U5SMY(xrorKmd?QYq>=(AKw=E0zz8wEnT z-?Pd{m(I3FSkJ?k6xQ|MLtMIh2gZH`$k8vH`!yeHJ`*c_#ioJ)hh3{)qKTMU(X?2d`-6{l2$u%Td zFG-}%=~grUmoQaM5sNjC1~0kzyzN}kBP^976WF7UE?P!BV9Vg9^u%&JGo$NoA0F0n%szEJP#V>{xUYI zBkf>+WWS(?hSqytcDVZSHip)lNQP(~Co~AHx(1N*3AS}bi!8MpsVG`^B5i1$Oid20 zulEblI)JWb&jz+cy4RlSL25@1fyl)#t$-7z_A#!$3pLp8vhyg%MA!Raysw#G4Bchwy?96x z$6)DxKcXkcZ^Y4LkK|sRS5C2-ImOxis0wXhQ)K2Au;E?#fbX0Y0e4;9booG&r(Tn1 z9E~b5LW$W_;cR#k3w#1wha+Ds;l1mmTYdT}VA1;(qz#K>w?fH?o#qUSED^YcBQ$~6 z0cmUs!i_X!AbHa0!+S^r#%H847D?_%vZP! zNtl+da!%-}920wH|NhD_GN=SvzSec0Hu%__Ht0PDRdb{dk#z?*aKz6zmDk|=V}ty3 zj1oTQ;-rr1#@Q+d0cv<4m7fERo7AR`*2~>^Nr%Gs`I*>1ks6^A8$>_HfhnaW;=r6& z4L5Dub>4BHlG)L=)4Ue{YwLLzLQie6c{M(x$Gmbf`aa)QGOvM;hW5p?HpLw((3|C$ zITbV2p^1BJu0dkCf>d4VM7I2wzO+L)5w&Pg$(!7(*fQqiF7{tu@b2GW@T;L&;OeSe1ne1o!p;YO`1T^loOpJL*1+j6CZekpWAbLTV z?yPqf&-Y<3Ravqf83az^#xZLq7e7x-P2m=8DxgVbF?^rr;wS5kAVuHB7Odllp|cMB z+^o!Un;k@Bf?*Le2e9Y{X^5E(JMP*oxejImseqBW%XNz~RN46DETHV-jSRxC?)DHi zH-c$Yxp$P2E`87*p}7CLN#Z__p`TG#ww5pGNvdS(vraP9!V;rXR&Tx1Gh3nD-Cz5fm2*hIhMp9F4`V0o& zq~YhRw`Q6+;#`Ct;7J7Xt?|T~l{$I9XdzV+pYNe)eh{RCr>@FKm%jKHJwiM^b3qhO z69#9mRq0g8O)6%Z_m}STE9|?{Qwu-8vf%Sr^E3AKNDVMnWx$w}FvV(tQJLp#OG#u) z@h{kr9Q}+NlA9gf4I^1NB0)CtQgrS3V1%w$ zKIXgAvJ-_FllREDR}NZACq^UC>#^cW?IuRF&<_xU$>c=#iDE!sE>Mpf!81m zw>k9#dgwQ&vW}`NA??En?D_094x%7%$fOtXYD3vDa7E-fq?&s_Z$mm&e#C1+6bcL(1MN#ou!~wZ2QFb+O2> z_0pjAT>RHm(`i@dsYPkgMFmZN&@;)f2p`eiwTB;I(m zrh$*;oyB`M;gT;I1Go91&(d;iWzfUSvWwv7Z))bG`|WpE zzTtE74fhNhUOUq8uB&Ufd$i#fY+A0;@K0#CZ5*v$e`mhcl6E&sv(@5p<|93#^om=D)RwfH8q(8NnL7)u>GSTtLPUH(ol4Ry^J2f7e zgUwtYUX+!C&k&Z2_oojL#ar}}i|%3yTJZRLdsE@hi>C&I za23V7UfI2;xTOS!TQ$mssizchF(1=`t(;e|P-)$Fc_LNy0g)OXY2HYD}s7wO6OD}1`lr;7km?Uj>OugXZ{_L5A2v8@ju7LKNpM5F{} zY%V?n+$WMxIP#~!IQx8I9W}{XtpoCLJTqm_hjSs;!rp3X@waZKAar?f2+G3g>CE0l zN>^wyBUKw!saE_J<#IvlH}O*&3fIgb6L6aW1uhcpCZcquzAEOaE=^iwAyW+oOrPWU z3|YLEeZ4%lOyjl;UkLk*0w+7$Z(TPsV|%?F%->jx{D+z{<<5$OZZy+HM^jaG(#6K; zDf&_Gs_i-7n4Pub|FGo4n5d*v**&0icLDk8z)WgX_m}vzFeooMpn05Vc}WR%E5=o` z>}f*W1gyv{`6bd&hgwS8m(F>cIbzGVbJ;ThEnphzuB=0MV5qu?jarAchi=a@+ejE@ zk6}GyJr0D891iz5hLE};I+Jaf#o0B{0>4iP8D@`RXPJd0*prtUw-DMUuT3epCNQ#x z2EjQ%K6;;nKf8P&cf2&(0QEng96|l(YU2L@>bJP$ZDb=WjT%lE&19Y!u}7ChY+$E0 zQAo2V`>K%0K=l_#ecYpAQw>jVQQiXOK#3aV5a%gp>?e|!INWu<;z zo8SB#(B3W4ghu_m(5mbA`OU7@o|&^Ie(CH&x3JOtI4BT;E5D8X?CrweTcp*Y3ifk6 zqb_}y3?NI2*`#MI_(IEE0P<<6hd|f$3eUD)_-ZEcYwve3foXkVwFRB?TLKk`u57*O zt8gCLkmRit<0`jamMptpK$wjU3lftm$1weya?QH#x1o*U17zT#598kjx{h1-C+xhT zVU>~^qbUiWXV5=%Em=@AjZXiO>3?TL&Rit5Dqh?BGBJ z9=3;v)ux~js>x_`Qi|NNc7*@#N(lcW1JO*U!zEfZOmB!JaVv#HIzyh5kVuJrErW1d zx!c(&^*}YvtaVPO*N9uolk8`5SeIGDnIEP?%OlpZBNNUk(}AHS9+)}l7a3;T4JKH_ zHM{1O6c+DWKoP~7EVXB#O8qnEm0K*&?u?s5xVCnlJVEU^0gjcUJgl6&myRPrNaIxXih%Gt4>c&V9-f52O>0k4b+Gv8hVmO!eaS|Q3bV06T* zd^({g>6tt=jwAGhmhbZE2A^KQ)1W`h=PP&%;V{;Mn%%~PZJ_1@Is7ye=4O6`$Z!7Wqd;3h;nIBb?v{RZ+RVL4pLRLj-TgOVoy^MK!~txdDZfZw zIx#@*fE=d#>8f5_85yiq4r#S!aCvP%gC?|CSNPi ztBrDJF|2;w$D5fTLPmi`@+t!nMEkTGm|!mqA%ncvz^NIjhZ>-eejo~iHMu-{GKlSX z+6lNSH6@Z#0Fr6tpX$LaqFJLW4_+B*)l}~7 zV$~rKv(NBHjJ1lVe1Y4YuAN?iIUex^rd1OITAqtvQnDH)?G|1lS+ZwK4yF5D`&%zx zGVh#KsEfTUPyuO8bg>N#+8a#MVSB4dvgWQZ0M19m!zW5rht$jd>R_tm3}u_z^R)E1 zbjc}X)TR%F8E`v=TTIAg2O||D%Ls4$3m~2;?Z-({-Q3PTb`#MW)w(*oklAAQC2K-;K!S5^*#RROGg*oi`oU#`^DP4-5q>@ zw{7uJN~;PL#R_E@#^$r>2aIj5457-2Ty^TMLF&{T>r`G6cQs;L(@y#2s@|etdMIU9 zPnm7j)9Gv3IQP2)Xwn_8AobQe1AP+%Jzh>m$dP23tG3$Y%Hhe@%&2=kbMiKVqB7Q$ zE+3VuB>@0>^$)C-3hTfxErsM6?>nJk&WCirB8)59bj&9Z*cO=AKO`UI(E1 ztmZDIa`BUj5rn)giZxF{YB9S`@BUYLmnzbxi6@E%^%ubSMmbgC}-1wRt%R4#tI^>|u^>?oGGte4mMJZIN%#Z{n4 zUBrvpYYwS7xIQ<>;)F9-9suN% z9w7Y9SBzT#W5hw^Y!XvB*8%EKM{5}g#(OE`qi*ed!j8~8o3Im0gqV^a zlTn-6Bjn6K-p6xhPyY)6bxkMfrf}xrEbSN0n$epS%$mpEEtscTH)5WCdXLSTKkL-O z&gbdEuRw;))0PoZRHS$gPkxnOj*YeaqZJIj#-F-mTRT9uC*~YZo!Pe?v=XaW&-LkU)Co7 zep2^fGD!W)T#|5;fo0t(4_baD?Z3(bGX^^7 z3)d+zLe78kDRmenJbL#B33+B{^b8JrC zaJP~2Q98P?^Eq|u=i!{{itoZmB6}e$rd^XSZCKFceuYi8x+X7NYE5pJZ?dD=^TlUj zlU>3l2dT;Qz>EJR*m3A&N)Cd-&wod`0Xp6W*6a=|1SL)=L+u5cDvyem)y0UjODmNV zU+W4njnqO6Zl&xw?^+YD-x8TM*VSXdCRx~lma;RZ4=8yz1UdaUG92fV3(-aDcV~u*e&aWm1Lbxs_ih# zTA4Mgk@V4|MI7=6#+q$0l94Sp$6zl0B;RGvq)U{_%Gngu+P1AKV{MN5$I20HdO=FX zRjgh9c;%l&zPobD!E}r=f9~tnrf2PruwfGKi>!+brC_*xkiAX=x4HkUi+eh@ET7|6 z$^e-5PL*}lSXW*erm~l+lBB~KUe7~#%TmRopNMPcmnv-RHMryWFf)vE@pRmd7B7m} z%$({qUFG#!e94@pO%&9xUKiRcA;t1lfqsqD3W;0q%ql{f^-Bs0D|TcdgPtJGX6Uw~ z+V=F=a70<<+j11Nby$6T6Z-%<=+2L}3O>@F5m1b?@QaVh5^>wf74IsgcTzPQ49ERh zg)yiaH>^vIV~@$hl(A12@WZXmg)y49kQI)D>X_l{a50#d7Q9X_&kX&I-&Rs^zJvZ7p;}VQBsiHRdrB)FH5o^0=Xe-IWV%thG+qRP60^ybIBDwo=Sb?;&=HpDO@An5~ zq)R8-<6MqiNbBUkzmAZTZDd7%be}3VYYdn8g-*+}yX&)5$)K>F<<2?K*VXfb!g?mP ztEVKa=K+0|D%tZ_4j%3BTflh6ntPbm*l#PnV88S)^>EzSfmUTzy5IuTRIx_@R7ijW z@I_bgR@2&7Jk3?yO)t`=uNa`wil03~eQsaztJLo*)*cJaa!i%Hgnq(?pNvC;EGwL~v@>&+wTAr_oO?$95RqbR3vFM4iL~ICAqZpaAk}7Gj zimf&Ip%U~d*7Brl<+#FDy658S(1hx58mCex0qawo7;=mF^-le^*BWqJ&cFLRj4e4L6CRTNVtNJhoy> z%vSkcJd1wn1KtFqgfC(KzKV5qu}eZ}HQfuxs`*Cq?YY<`+p;FFNj*ih0=tx_Z9Q$^ zM|il1MPr{zE49g&v$v?_R7q?V(mBVC@FzwyrH`*dIv*d_!3Z~x;w!DX3P=H+u;(lX z5s-}_Ey$X{neDhafsD2jfZ)Z;97b7Cb1grr4DPS72Q$Y}?D^JgIGLJ%i@_MsyR?96 z1#KiGdhzV~%>uqLZt@`PJo_#^Hqu*!>=)@(Z)YPmOR7M7(p&z1NP5?H`=+FKl2zP} z^qz373@dB}(wjmPBE4N0Nh7^4RyfjI?*<`Y71Haf><&q<@AlS_w%-+!-p$k(CA}RX z#XRZVPPYQmJCc%7(yJM`I?~hTTrpma@wXwp50@M1-QFeJ(nnvy3E3wz^irYUZA$t~ zB~ts^rlf0t$@X5n1zGsL7q{}>c3r##f3jT{x)QfMbKH+?>qS5h@RQ%<9tpN!?8x-Y zK4QIfEpC|3w|Fr%LTodZE#^RilH8Y0=dO}ZfDKCXF7^9ys@w*p3ykw3A1n14D3C}< zq`DyWs1>zP*?(?Az}I zq1Ni_^x41Iw~SD167o>jw`Y~X{z!Wi_U#4?hK~C73TVpqj`ZySA;we60M^rVTwD2Td@pU1r*zBj*Cla@DhH~Xi)=}DB&xX)sQ_r(%JLrEIWYx zur9a+bICU0TZTu%Bk$M%|IQKb743-k%T(b2FBHTY;FI-P$0+&6#QSV27~rgVl>0rT zjCARB_9z_SML+IvfSVWbrAJDgkiy1l;h_*I!jOat@pRdRr3m;T6@76U?8fMv1H~r2 zcSE>dofxp~WGASy2EI}=7HivT3B(e((aRM+J=Le>F_B=M;nQV4Emx+>mj?`CleW=r zQ<ZujxqXm&V#^EA8cZBMiBtJZ=6sz&KSHSXymC1OMCVJ_25 zw+V>2E;i(S=`D|4r*T+Ccq~@7CS=Q#+faGB~&wB~A@W#9DG&3!OuBU?9U!Wg33s z${;#L6|%2zn%A7B7^!Js)n+J8d@Mq+5kdNmNKzpel7R|FtJjn7niziD250S%Vf3I` z_i-jdA+`+;X_Os7`JkO#{K)L+f~~y=k+xCTf{j0J)9pc@g@SE&h%ozp1W@9T+Eq{% zRPa2zR9pqmeHvEKUlq)z0+07SDeW0nKT%15vvP_+TdN?g%sTCk1+%dfQxtaGbG{wJ zAVMxu8#-6Pl+tdbtoTx8^SYp8X;i0RN2!RdqaCHY++#aR zwW_gz(r%;WSro>jYfQ7#jh3oWv6kUR%T{GnBJS+zT*x~4%^0CVDk2*#?LZlEM69KW zO*EW6Y6nsG9E%n=(X-+W2s%}goaDGsK>4z!>eWJXsgourr~v!M?GZ?m%-OXPB#nXg z)BF}nU1w5Nv}H7#=Q7y@^0fe*;{;Aw@uI#G744eB^T0X}o_`GDuAbenJyaG!=?Bv-?-U6m9R_i^LKo*dF*C)Ij} z+(#U{fcwZa6}M3bRb1@_+y_aAi->(8uNeb+szk3~NR_0s&ylG%`lMu_* z5$@e8Nlome;oGR#H~izE;rp1E!Ir9%3L73@(C{makX*6t8h)?L?cFMQ@;p*I=TCa4t-#7!Nf<0^@kBc1E~5QC-x4Dhy{ty>G1v`1G>D zr-Kte3C?T<=Thr98@KNQN4G|Y$3usZhy^bnr9u*`Llme!-3~*6(`3%MMC*(s-Iz;U{8>{82e61QoRTXPlBED}_CqQI5 zx00WWuVfBczUK@_n%m1}1S~NZj{$o)j-IDE^$wiY3!S`eXK*bw)cZkf^$EB2&JRkH zV4{L=!q!A$!6163c9{jeM${h8P`hiCD|7=pi8|E%$wG$4JYR-MiiCv2Kd3MwL^)HSdI{ zDxT_7pvYDGv>Ft-i02y1Tk)d!C?z%1&_-&F(I@H^fvl{fIp{4fp zXAPpZudsA*)}RYXSGh8(SA9+XJINnYPo|O)${#V><}%JufJQ1YDtD|wBoc}`q=Hyf zwAEUE^;9+1EMT>&I>54K(Sk%DM2WJ<$6rp<;4h@f-;r3cd?zsMeS=a0!cyZ56cNjZ zH9EIbhCH^OL@*vE*EK+f zSE1OSU2xk2*8v1*rp;|%X{eEox$!s;u1?!3Y z0+qy8syCKG2#q5Y(ab0ESx8P^7@3LipHi@G4fWjT=rL-sP?EilUWOogieIh9Bck{| zZGh~d@l_%E&r0w>E6KjZGOdMVfi%(GF3C_GbD|1Ew>b!?-c~Qo!**LQBkwJg;UcM7 zPk1jgePacLrz&+l55?$6I!B<_#2B@iw27OW%k`TH!uU?S7@j`UcF|bRBzL%DBD0~LWSIxpo&MPIVvE?>Die#VO|mzzwvf;c zej%nhftny3o2UDLrzM+gbAEhZ{Vx7TY~n`%CEl>q&G$b=KAxsVH4Tl!#_T; z!yrboQccW&NfK-=8MlhqlOm&k8eCaKx%kr>YF)qbblrf@V;3*uYfg#NT^wb0kZ+PR z^*O`$z-6O#@rCMC9r|7%<>FU_-%I4Hy}I6?CI&2wU3@oHsh-X1ioamavf64jb)}|I zxbaDYsKmB+=4-bdo^(l;B7O-ri@1{qZExpi^_j%a;Bk}K+nIbhZ#g~!Tt-lGrdh{Z zJ_&eia4KixdOp_c%_js!uf_J5Z$itTi=eKFSY0fW$Ue91_7ZcJ?9Cpy?0#5X?OBf( zZJiVE_bS?svGqVV*zBgw{9|BLjc^x`m>RK_(H`Y$z&?*i=9 z5V-#eefgV^)a8$hq&zLfPa$Qt=qUS<%f*lK??qhj*gBGhyw%J#v4b(SvGX6YQ~LF5 zvDuGHu_3a5;oOM8kt~IAYD}`;=>~yGC7#ks6R~F3&<#!xr_{GFtxTi)<6|0)K%8Z> zwruP+5L?eK;l23mPvxphcfw~6(@WD=UPJ>!9j_y!Hnn@8vSi*VE!0r!gihqKg2&iq_?%BztmBHXAZIXV4^Wwi@(wez6=~0`s zbEN+usg?*Up~P}ri8Y1HkO7@^a9_C#99No2RqZ?YALXqkn1B0Mb#OR-wFjXzLIx#C zW!&l?6g}~ELSCT1DzZqn-R;8d<>x@->1tX?{IFkJ?ECC%eRxdGy&Lnjwwmd)n!A+B z#dD90))p4RIGeX;uOOel|Lh~Vw(+YrI=ryaxrL1`zetoHFB@l#-kEPS*x%+Fb^F^c z$v67ARJ(M)KhUTRN%l(tiO^r7t`>GX^;$uhe2nT8%s^$#cq@$~gsWBP)mJ!eXyg8Rr37Ua;rpv7kpxLv6T8W``#; z!?`uh?KwLn(>o3%lOCwb>r%sDd0v-tRzNO3i~i#NLs87PeU;@sQ&;?6Y~qn+>c(^< zXU%^je`baA0ue=G(*fF+qh92fd2*#1$@A0GU<78VD!kI4%+ouJGL0IkCZ5(?Vti*C zDK((+If1Obw;wJBQ22>OjNHrRh52p`P+1rZ771>tJg%35`8=*w6YGQ;4O5I&PO>x? zpK0YBu5Ay%m6j18`mcUhr`Avl5bgFe9gXA6O&Xrj!l?9J?_ZP)Jgh3)>Ju-(C~-BBl6yX)oKU6o(^cK^O8Y?qin z-|kqon;zJ5R={ju+ss9fi=AcRbTe+5Xxk>8Sxza6Xkfo3B+!G;V4XV83h{ z+Ak^Sg|=ZpLD@KT_1{7z2^ecxF8=01nIX1m3Bh8FZJDxC-lf3PV8+lati}(gtl82lUe`WU zCn$}b*D)skOvNghTjm$g);kOrD%M8n1(F)`;qmO8fxmN;Ux`sftmTiq2^DL4PJrOp zifXwTwCBd3u_&N|GZs}ueSuUGVSs?S6o2zoiH?5{h4(RPrfC9Zs@GjIPj z>+Y+dhq|v~3XIn|H!YSBktj>Yj>6+9QJ`tB=co3Z6$UIg(A)y5I%XIUjMjU%l|?W= z=hK4S4pt1pRD>Kb1Z*BVB#78>7AE!$_8&V|s)Ly&N1$Mnh&Px}Z`GC#W30;j>d9;_ zdlt!Hj^x)t)jcGBoo;GAl$#SdfblF_!|ci5x{6Bv9$L|#zav%59mi_#DNlGjU|Wh0 z-FX6*I!l1w#k*R%IGLvzWc`Ou-n&8zqC+^Nz(QaPkpJ%PZxrp_b@hbV~oVU%=@o%@pm*EwDi^o@l3(Wt$>E zp$Qe9(Eo(ZpMj46s}}EY8gtgf+wQ1_MDgK{(nmAPdYVp~#tzU``rHP=!)d!#io#NBbR99kA_ z^cCgSXhOCs2O1I4>&=K5N8ya{2|Hc*1fMudZ!{SKa#nh>Pm7?HzRIU(`t(fF0Z|Lj zclopcQM#U|d6BIBN)Hd`<<{`RR+0MhW5{GTz&6}qWe`|_J^f|A(3@vZCPDncm8SEH zJ$f&@!>#3NtjT4nscyLRZajjRP>$U4CvNp8S6vl|gnpLmcZ2&~rQhS+?`r*Sa=+PO zd!yo^8J;Hh~$YwKFs5;h-|YP!q{P-RRfbf6-`j6zwX*-0N}w%Bb0m zwxr2~jrzVT{5n$7e$fei+Xg36=Rv8t#?$Lk6WBF+Ip0>_QEWo%Vyh?mfi{rZEgfTd z6>cD{Zhp6MD-o&0QEh5(?%cH9vHgZcOL3QnHjGB@@}Qk|@Lb<^dqNB=Ffw!THmdMZ z5BGr$X<-)iAnZDh*Le(jxPGrzs`$V>?L2Ddpkd?kWBMsWxpa=}mD7qthTIWss`SPK8vrn`xq%X;BmzL)9|WNJi};3B8kE3`J3+ zgTZgcQo~Tok5p;PSZeHhm{IqNrS@3r{@w zoO2X);46~b25+E7Ovo|1HQB~~b*Mu7mCXE-jN{_8#JOKWXZK6kEG2)cCg*yE%V;6B zwG%6EIwlY+=N4sm_+pG|B(=chx;~R@MkrTCgZiq=b?DKm%ip?DNygOfTv3r7_*QCn zc}`SBQ6HELTiI-l_~Kth5OU-9r+)H=fYKnV5Bdiu-0=?KeH4>IH2`$TdZd@8-%6f- zmF_@rl7mnx4?v~*>PiVeHK7u=t9>guskb7d3VsjkX%j|z>s+I2cW z;ndkK&+8ZJhJ&}6nxg7*=0*CC8VLz_Kb8EM_> z0cv?;lQP^xbxHl>&J z{0#?|X@*K|>e5pwdgU%Zpc}@1q7#&UBR#TO(E!L}Do6_Lj>l7V8W(+TTmrupT!F^2Um^#->)Aj#Na^ahfYaRv3K#`}Uy zu~HT9a-AK{H6+LdbbhItkFv%Fzs7H_*g8OYt@G}0C!UYi7fD~qr=F)?*0G{I-4r@_ z2dh{ZZmc|D)`O!K@0+)zc3M@Y!Jpsidfa`z=Y6Y9)6oY=&E7rH`D@y~m4|976(5Y# zM9NS3+wx)quh$@lb{;(ZozBy8&|~lgzC;I*aJ|beDuPxzI?Ly97m$b(RL3W*8@XeA5$O{KRVPm0NFBlr>UHRq zimIC**hnr2-1G2hO`kWFSYl2HXOI}Vy|GU$fvzC=*$63#+1c)%-?&X}pSNuxjm5Vp zg&E8Lph&mT7uUvD*T!E)#?WTbh%NbAgK#`)cxveY(wf&V0`_3dTME3wupa`<&${-f005q9Q)`AU@Ef z_VaaP?qtQvOU^y?!?eh@Pb2aoU5&-ZA}h+HnN3ldw(}z+gQoC|!X&P^fX^^#f^ zsaMy2pq%brG;Kx%QL9y#{!~S7e{f9X_Qxql^@-@Et;^Z--%+|3*1Jm|emEVuqhD+W z7& z2c+vY6&)AQdv?0s)z4u|=~e{nP4H|3KMgg|H>ZJ5Z|b!HO|lxO@(t958>lDHIlU&~ zCdo#ynrZ}WjiBcI<>|W+qudBC?yZ4wrN36~XWKC5m0rv@)BS4|02NbbtVyTC94-gn z=h(`e!FPAEOxo*(6xTmGve9qAdh7%Vm+H~}qC-IY-Ag^zV^DHfUm#=v^{0aRy;8qbA*X;<9nFpUb)oq$DHHN)BIA-Kfk+>5!T%7guHS)nc5qu#HYX8C~NonbC?7y zmr{jof9Oq#STys5QiKwMAv5IEwUR`|H3T;?ii{?ieyva#661x`is$DpXD{O}hxMqb zd#C=y;uf0#RBQr$M8Tw@jH8^ZL&5EknZ)E8qWn`qfP z2x-{-Ov&R!3^_(PuXD%o$R^Ry%ypT_`2)&pzJi%M)z2JjH%w9-8bH*E&oW!{oPCx6 zv*nGn^w43?T&MM0-mg^ciMNXPgq6G36EDJ0{_6N^!s;8&N~iHfQqKIw4Yc6T;^**( zI%`GhT~+~?g7LK*;7kLQ>-QW^V;wd{hj&M-&=d*S8p8fPxGtSulyQ*_0IJUGXFY$ zb@h!IivAY-YAEgh|KwL|uKRBM>cJZ_qx-kA#X+HD9|nWd3&i>S)UU zf8R%$Ff+?{!y${`$x8nSJ0JiTgD62JGP8Bvt?Xf)mMAN<#`gN{SI+J zutSWnLmZ^-1ee3ILp+&s)y)qK>UD>B5Q*6x;-%c$kC3bR^Wwbrr zHgjbp&p-*%kJK3S z{&-{ok!uv+HgvGYBju5|Rd$2OCa!ey+~o*HTco4U{N6mey5(9;EMQO0pOD4a?D~o% z`{Z2`wV)fSYaTto&2>%N2?&&@6xX(;d&w%F8#>a-@D%>1XRnM$@Rbk5*r`@6ioU=PrLUojM)RHg}zH#tzM0 z{Ua?8QB!l*7LnG8L5We}5^vv4i5e@>z#VsLc0L&+t;Nb7)VoQAdq=B44;If>3KN4k ztivV9wHj!0tAV-+!tMRI2|{t)1fkx`_9anQ?`SQyFK(NBQy-F8IiGPioan~gdKJ;) z0MU61L&Lgc4V}DB%_`}naMIi^lI$vCB^?}28WiCc4tHrVNn^uFtL~%JzCnd$;iMPu zB58DxR2WVwx{)M_tw^`UH$H?kO1)Fis5W=?Y1oX&g^waJC~^-M$z`oB_ggpk+(Uze zKL!K+)0LrtzViN?z>xhZ3X%f$mP^Tnk`4=e|9rDV!GYEV>KlyV<;^kiz57UjMzqgp zQ1JYyL)$e$jvsr=?_*!NeYod0>y?0@J+5??e$CXhG|_+pID7CYskN4QeiMxuyD}c& z>^z*YJ@AMhoAj{^IMRA}0HoyaLPL1*?|ul_{|ms`N?4KF3@NmzbYGpq-@8QBWBlxo zE_VV5{3=8v(tv2vL$|v^wN@N)=L!eYw@^9?(AyFD^rJrVX&)IS^3FebAh)~7#zUzw z+4+w?c`fY?TSsnhCrAa2Bht}b!#%Ekd{sJCO*d`oeh^L?_!voCTbWKr`-bCpT}eDA zMTwt8H|vyG7eZ;kWj5gD6STL_t6n~#h>vC& zQp&G5=OFzoK}#!Jc3$dDv-4IyeVc@n=qqRQj6ntQ>F5dIO=nTqrTX~=thrbt+%fFV z%f+leO?FmgnKk@pAIE@JQU|Wc@eB)ULG9^S(0I>+ZX%0kL6hjIXFVo`>v-xlQko?O6_VcisbnHj!OJC z$TV?Driq~T`LG0WHnB7~n_2|@JNbx&7TVYCb0bCWGOyGi>Nj+HglX`N{QMQh`hty% z9^INvm{~}VmIMixWfRW(fD+dS31?;#`aep-c}hrBoO``T`-jjk2ApVdGN4&2(zIQ?Ap}_2+qXJc*yv$0o;6>ed%)97HB z<<+Ufp5^`OhVRPq_ByK@%X{0gyw`6wme+Y^hUGO~)}7_8x+Ki zx%mwK?HC!-LUsx_KZrd12shwR2yszW;Z4{c`gmGHrc$`jcxr=S!B2MeZMjL zj@f6-RBcm=S%t>MAFb7kLyz(35XYMh@sZ59r^U3Wf(JOsP`J8zaHmC>=vl=eBOw0033e1F&|UX2drZX-$x#qbx;wyZE?t zv_HvVj`G!oWS4jA+v-rFFnL{utL#EiZLgM(Eg+5FjxFNDG>?`1^zxC?-lFZ+%cf(? zmX9?l%1kmZT)@Wo9Ll(LpX=7XO1{ghF{u;OhS>T!_)uhq91QhxG^4>#d9p$L(so6; zBTyB+{=T`ZsvQg!UyIK3LF3gj)@h;#; zjjs7N;gB&U?H&A3QyiQ^g7H^3V-9dcuI0(BI3t080+^ax?4+3jF$JdilxYgg^nsZQ z%=UrV3d|uOGnH0v8A9eO42=}qcdlcV49|sMO>VMIfZ;;X5Qc~4*>#yPd8awMl}t}& z8=z~}W}feW^=35~L(Z&7TZ;$@zN)Hvb(pX;_-R*5<#Mf##(K z@mC~+9_&;+RKY=G7&9^6Ext&~aQ5QTsg=lhS7rwGNDC*|=+IQ|E9-8c+(pA6`?T@H zKZ)Vv5si)BVK#9M8`x=;C_g!#BFs%vhr_ny&0T5kw)muBT{Am9be@*Yiu?76r)?Pm zi}_-|QX#WnxjWd0w|Cabel=V8z*osx`&GI6q5(;LGU+yHggvT`gosU;15F`nCb(E8 zEQ3faK8YZqd#MuS_9fi&b$adXp%YQbf}2UVt`ST3g~FDo4S2PeetDP$enktL2iyd zIgk@#{dh!}q37V&NO*F9U(Sb{er|q@L$P{U5*GpBF?Sl4?ObJ8R^O*_mn?&Jh=$Bv z0}-)V5y6Hn?XJTWY&~mOKUJIV>6%7`nxJ~kodO`;*bCpYNoEj7#q~f!L%zoO++%|+pkYZv4V%`C9-1bxVW2$?xj^|)_reYDaqaqxPktax z3<8PuMN5PBAz}{o^hfhDQ(t&dIq?e5_TefYmX%ZKbt(sMDzPuG-s>9-PLZ6?U^x;Q z)z`#3bfGYKXSdP^TxPZmlaBv5v{AT-qLHRG0w}GEe`r;=8wRahnYU?{&2w3GA)yw3 zBmjJ0G-jN=pkLu`87zFgNXvujT65PxE>zX8#Xp-erlfA4y=r13#^=TE+^eQ~Y{{hY z`^QGq_K&T*B+@E~Ya+aL8UX5^XK2^V0qN*s6n`vbibQB#V3T}9X&K+tFZmNgqOgBW zTFBkLOo(nc5)2s2tOlx1&J+|iGzCl~>asu(>AV$mA)tYZ@f(P!p^6#=vU1f#C4#yL zwZ~K>uXy*%bS+W~V_Bh0h)DJR>GaRrgb-Rckplatqdz7r`@cSM9yWZ&krvEIB|S4* z$xoQk6fvXgHD9E@gr8B-uRIyHO!9|YuYqj zn!3mxwFR*=-ygp}?K5vJ%jrNmx(*G8WuVW0Lq~+@<3#m|!jz8UJ7v-#z?o;e)o}zN zcV33yCb~VRANmbkJNS)IbpBy*2!ct1CKxe8{G?zWGyxQ_9(^oY9Av6;7J!=gs&urE zI>6Loh(WFsJya=ErQ%q7X3914$gcac`EE@EyYEk8u=k)E7Tozvt;XOfE*DAiXY5iFre!-W&r znvK(BEIV6fD3V7M%)Ue%zf6NE7e194a4PmY+Ohd!&*qP&a+Mz`V1fNHeLb6>rXrrr zt2pr?HlM~-N}UhL4;)HIcbD3bG1rSQXFAEOL;a-(E2skMOeT4)-jJM*CMW$59U3o;#$&Yc^GJhZ|fC1|^jT1? z#0?(YZzZ?oIEZar7?ZIa-hpCZ8iRnZZe4F*JR|M9pmYUa;bO6v3beLR-731q-eipo zy2g+Bn$j-iC+x<2O=;4H-I%Yja|lXz!&~5o=lqN$ua?_zJm#BE{D96dB8AnY= ze^1YZvPM>*Y&+QkP9{RgdZ}Hm+5{Bl2L0iSs7U?!SyO$D&c%j<8 zuU-{D@zt}vj-$idEIBJ)j1x=^s}U~_xlZDRHZ^XJoosiO&j6sss0@wp%4m>Qt7*SR_dK{zso*0v=Hx&Z{uehIaDaI70NqqZCG;6~G zInc?4Aq1X#u{6F;Oumb!aOly?XSyCOBqX-$a5>n%k1IV`67;c>pidX~b!gpEdM?=w zy?Zi(>@I9w>JBD*O;azEog^~Af2jzW?$k-h9C~~ggQdNJ5T_ zm-MVq{4q9kE&Nf+D~^QBh`iTsM@@B%$9`0a9VIFT9O76cCki;iOPptsyX_n(7e>;a26&c&x| z-1itD+}WoX4X2+>4VH`_Y>Ty=XsX3o-)Su82sJ$ym*HX6#eBq2JB%r%qsLHVPJXe} z9d064ER}_Qk}~ivj${&w#^Bnv>;`-lx$-#}umA~P)!mWetApUHw~*cVs(y&C-e6IP zk#}599}@X5{#Nv=_2JG#$-#z6&oMr{->2s6RU~`upVez7W}4dP!YVf>VKg*bp~G(S z^1~gP)^lH)w8*dpCM&7@`Mxq~@C^iNTg$hbRj%fG9y`5Po3deP(2m;BQ|Ae8XEk^7 z_k+SZ)~M_0kFd~?L7D{B-~3r5((;w2qxrLek(SROL4K_tX-$eO?ydV-^}b`KjxULg zD39G|zibCSyKih=mP}5lQ)i^L5-=KMY$FvzktrY)31y3|4=tS{6WTmqePE?8*H~Gs zn^Ybd*;pkUbd~}|mdGYTfjk0+*(FBIsK<14Mvfm6i?t$4Ebib7=5v9F`{DFfg5n|~ zM2rsAJp>h*Y4CW=9Z&tKFSL8-lwQR?=|9EE49om^rQb{`7a{~h$p+f&<2zvUH z&XK-|?cN}y2CZ)V+?b!&SaXq`1>ovIV zTptX0TCs!Gl|BgmKS}g!G`OSVb^2t~L5POw=q)EOk<57=xsr#?6Ld2Ra-{WWY>TO5 z_#^a*Y1W#^M{`;Zv%8i+F3bpu8PPGcB8;8mHj-+|ZzSi@xb(^j(nIjyl5%?9bpOiEY!X3oI>M~LE?XYC0cL-1|sE$8rtA_L^{de z2^pzX#D_I=8`06uoq8~!MD()B2O)G9Ud=}`uh`S@^zet0Z~o7h>B#z>gF5r^`0w09 zeFTj#PR!3B^*5NG2QFajD4Q2Dc5HLO(9+Q-smM{Y zT{Q84f*NFaP>k~ii|@J9L1&hnwn=usD|gi9x7nfU6frxmUAEOtH`Hgxcpsw{agII> z^`sSS7*6|hCT$#PFKrV}yEv0p<}3RodFZ&$bkd%>HqOKiZ1i!Bwo$GMbcu*&HBw%f ze@^!Fz4!gY=us*vQA1$lY+tX$5jpzLGV0^h z1pa7d;mAK?5QD%Gr(r6!9H2m=aD;tKOrKgBNpA5}ms1(p&bMJ_(KH>cfy%WH05yAa zF-%R=lAg#PNM$u`C1z>enU3+$wXyAI_{~Gt4ddevTH3qE5nh9nt26>NZATZ^wjIGz z{wDVrqu;C^^rBj`Qb88}Q$cWmE-jgr7#-{6tzh)J&pc zl_C;__t_^iN3;Lt=g5t|Wg4PnNbo3#5cwaF;y$AXd!nR;)6QmVvzG{fa7(I$zVPM{1mxDE3RuR$1U6-#H7g-C=N<1cv^|bj6Z7c}nx4^vdDw zvC)9``2JL#&lOBed5M6(nid^849m_y22=W3k}?kwer#*_0akG1&fcgLM#tI?l<{-L zF&qU=KLdZ&-!mT&Ifr*=jtqVyuoxM%e1;W9#8H=yo=R+LV>9zv_!x!p`}1porjv6) zLC+WCs~D+2(lSJ{e;TJv zk$AHaCJO}l<_G!KQx0??MZ6s6GczZP4d?uqaF@bu`ELnt2<92uR9qLs0~#2X#1igp zmUJ`;n9|YvkIp57y9gT@>>*K{X)Jd%VA9doxDf7DB`FaNe2xoY>Tt0zby5GCM5K7W zuo7UG(G5v~ziw@xk86j08tbz(a@HD3*r7LxA=PKHEyybwbFco^M)uCaOY#;_6|~N6y+>odj)X z)g=1CLj)xhVD((uV;7kW0Z^eaFhM1e)|&-a%9N$5AlqzR?-|cqYh6zoX4R+#`K##U zr2aLxYpTrX z!jRCNFmn6kDi?Q#f>y!5X()@AF3ZbLEi>$(u5@%WgB)d{x)K&2sZ!NR(?M!Su6EFY zbDxFUiAkhfsOVu%n<5)zlfq@e*T1i8+vR zozYzXZSy~GIK3L*^XjbcdG<7>b3NxUX2$hAo7T7@HX2Lisdvf~NqyR;(=OazijU^U}cs2R)dgKI4%Dl@=g|Fdd;sa6DzB&B93!ujz<%EPC z48z;Vdu*cd6W_73s$U$g9^YdT>F5p!ijL33U*RInWaZ26n)1JdyTDGt;Za*j<#fKOT!n8LGtW>l^3!@z|=3;4Vr5Gs?sk!_x3tixxCcY}8F3`HWT`YAFjYo>|-`O0&DRE5crt$(Xo&%Gx1+FdsHPQ?Mtq_q-^ig0gGGI|H|bo5~utob20HrDbn?U}o(fz1GQo1cY=%!&9Y%x+?s*$L$8Vwl;% zoOF~*%xal^TS|3cE;Yrf%|A6iEAbT_CezWUwgBD6Z(D$5WcLfuieK0Q6lv8-GzL9i z<47QEi}Q6G^xVv#V}&;8=5B))g7Kan>s)Bit-2f1fSg?x0C)FkuZO%!P-TzoNzb?F-Y_SIpnOK3>dUVGlp;MHX4OrF0wn&Mn>5r%&K3 z5V!-zJ(<5SRf8(&jr$9mv=^DIy~uv-MJBQrnd}yT{SLJW;XOfqK<1olv>2HNM7tq| z38g*X*W+1BsXCOXSfPkS;qUE}p|pn|^pxiD>|z*X>N9`|Mr{d3y`xbT<$tj$h|v?7 zKO)*8^X2v?a(<^GLdfjqb&a?g(;zFc&~y_7m2aL`Bj>plKUaS4c~Y3Kp|mnaURw>^GaeoY2We=yr%{@7mO^fU`_ z2>)C1Y=_`{(xJoTK?_$iV0ZD7ws!48`ZmA)Mbo^JFj^ZCA5cEn#6hRPVvvBqZIHV` zVKPwI4=9{ilDdfYFhgspW42eP8U#jhW#ns()@HBePqv1#0+NbekA&1CiUK_fRDg9O zPhao<6N`*nDSJ*4akie_afkr>hW&2lH?Z4%leNRHTxs?QULE(cFiG1gB7|eJtsj@N z=!Rg|`X^$)8OMxwoKm2AE0(AIYL@)?Z(kq^9~R(i%WPdf#i}R3qRiwFRPz2SzS2!y z9@MgBiYFw=5YWEBEuJrL0d0cJq#mc0Tl#3jr7DC$v4mqo+Gmt7 z@*5xE5-EP8)|%@wkQ)h6EE|=8AXCiCNELv7o%+4K>T0T*;&yn_t zMSP?xmE?7QrFQPDxwdnM`j$_$Ls_sFlt-;UV$7-X9PqA6{`v}`xxaTZgXZ@*El)Qz zZ)7|EwJ5$Hgf0|6!%*CiZs0+n?AiS_RrmPk7I-p6qX$iA+IOy*AuV^ubX#7f>iRR| z0*u=TzcR_jaNx#3y%3MkRTAkh2@-V z4C6xSW#NS*>kT4g75#`miRp+(E4VG{3VMQ(R4 zQghG}8Y16G2AJ9q*hD`;u@x6t=j&J#8TY8hqS43V{m@b3hpgWo&xilb)^cLxoLbMf z8_}VoBocGGfMOKFHbGIzdu)kkHzOEzkSu&J$qJTh^U(QMfyQo1X9v5%K%uY`%#zpL z)Rj(cCxh45!5~EF-v|K4)Ob{kRZE;{IL4~oQDxP}PlQYlF(gyGkPN<7JZ8?s5~f*C z)(qVbs->8Cy0cKta=)}AUCOa=JMEa>SGg8A&V7wysfJb6k%@!oFt?=<+?)zWjKY$X zc_)dPyGgFx*B5)fxR%Z?>jga-E=DI=^I#wCISRss8E| zSkt85NB3k@DQ=`Bs&YhO2=F`J2;i^%AkZS00F-oe2{oEBBDO&&YhPuZV%1hY?h{I= zJ^9uRB>c|UN9D!ggeR0x{js%L8BSQNgoE^yT%vMZIN?eq)MOtNOnp;z3J!~i`2>@f3$V^jJNN0FLK$0Ht5jir=UCMtNVZWa#fPbQ zcSv>~-}wXImPU)eptW_4LDsrKm7S$zS=5KAF17|PzJyTr z@DwAo{qh4OnS|p#%NG!~G8ghgM$jpr9VksqR{sJ8>o%Tr^fPjVm3i;0s1Ab37{~r? z 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�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 )-baJ8OZbM);rj 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ξ&#G}7a#4c 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%0DpLSaRTyE3(4-!NMdl81+AB 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

QF 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

>eI>|iDANVe~;2jCvTx(jtD_B!e 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

+0208a<%EY=hbS(p&U9XGjgtxF2? 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 J#x-i({bxg!uZdhc@QmF|XH+R@i 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

>5+h?akwnAvi0A^7;@XjukzT!pRd~Opm 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

gWlP~-B$&CO3xD(i>#b`ab*gdk!97$e%Hp^3= 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Ⓢ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 z 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

mc=8HaS&^fC2AI4DSSf4 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

sDat2 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

&%3|u%& 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

=m?&*vcZsjfBGvgP#5xctW*jZlb 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 z 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%0A)nD_h8&%0;qxb6{N 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

QJ_tXD$U42i{ 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�#Z9=l%Z(dVE(>hXNP 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�qvQ$37d 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 O|NLicwp>@c;Qs@w%mRY| diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi deleted file mode 100644 index c3148f1..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi +++ /dev/null @@ -1,67 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives import padding -from cryptography.hazmat.primitives._serialization import ( - KeySerializationEncryptionBuilder, -) -from cryptography.utils import Buffer - -class PKCS7PaddingContext(padding.PaddingContext): - def __init__(self, block_size: int) -> None: ... - def update(self, data: Buffer) -> bytes: ... - def finalize(self) -> bytes: ... - -class ANSIX923PaddingContext(padding.PaddingContext): - def __init__(self, block_size: int) -> None: ... - def update(self, data: Buffer) -> bytes: ... - def finalize(self) -> bytes: ... - -class PKCS7UnpaddingContext(padding.PaddingContext): - def __init__(self, block_size: int) -> None: ... - def update(self, data: Buffer) -> bytes: ... - def finalize(self) -> bytes: ... - -class ANSIX923UnpaddingContext(padding.PaddingContext): - def __init__(self, block_size: int) -> None: ... - def update(self, data: Buffer) -> bytes: ... - def finalize(self) -> bytes: ... - -class Encoding: - PEM: typing.ClassVar[Encoding] - DER: typing.ClassVar[Encoding] - OpenSSH: typing.ClassVar[Encoding] - Raw: typing.ClassVar[Encoding] - X962: typing.ClassVar[Encoding] - SMIME: typing.ClassVar[Encoding] - -class PrivateFormat: - PKCS8: typing.ClassVar[PrivateFormat] - TraditionalOpenSSL: typing.ClassVar[PrivateFormat] - Raw: typing.ClassVar[PrivateFormat] - OpenSSH: typing.ClassVar[PrivateFormat] - PKCS12: typing.ClassVar[PrivateFormat] - def encryption_builder(self) -> KeySerializationEncryptionBuilder: ... - -class PublicFormat: - SubjectPublicKeyInfo: typing.ClassVar[PublicFormat] - PKCS1: typing.ClassVar[PublicFormat] - OpenSSH: typing.ClassVar[PublicFormat] - Raw: typing.ClassVar[PublicFormat] - CompressedPoint: typing.ClassVar[PublicFormat] - UncompressedPoint: typing.ClassVar[PublicFormat] - -class ParameterFormat: - PKCS3: typing.ClassVar[ParameterFormat] - -class ObjectIdentifier: - def __init__(self, value: str) -> None: ... - @property - def dotted_string(self) -> str: ... - @property - def _name(self) -> str: ... - -T = typing.TypeVar("T") diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi deleted file mode 100644 index 3d4ea4e..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi +++ /dev/null @@ -1,8 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -lib: typing.Any -ffi: typing.Any diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi deleted file mode 100644 index 3b5f208..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi +++ /dev/null @@ -1,7 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -def decode_dss_signature(signature: bytes) -> tuple[int, int]: ... -def encode_dss_signature(r: int, s: int) -> bytes: ... -def parse_spki_for_data(data: bytes) -> bytes: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi deleted file mode 100644 index a4c0cb6..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi +++ /dev/null @@ -1,127 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import datetime -import typing - -def decode_der(cls: type, value: bytes) -> typing.Any: ... -def encode_der(value: typing.Any) -> bytes: ... -def non_root_python_to_rust(cls: type) -> Type: ... - -# Type is a Rust enum with tuple variants. For now, we express the type -# annotations like this: -class Type: - Sequence: typing.ClassVar[type] - SequenceOf: typing.ClassVar[type] - Set: typing.ClassVar[type] - SetOf: typing.ClassVar[type] - Option: typing.ClassVar[type] - Choice: typing.ClassVar[type] - PyBool: typing.ClassVar[type] - PyInt: typing.ClassVar[type] - PyBytes: typing.ClassVar[type] - PyStr: typing.ClassVar[type] - -class Annotation: - default: typing.Any | None - encoding: Encoding | None - size: Size | None - def __new__( - cls, - default: typing.Any | None = None, - encoding: Encoding | None = None, - size: Size | None = None, - ) -> Annotation: ... - def is_empty(self) -> bool: ... - -# Encoding is a Rust enum with tuple variants. For now, we express the type -# annotations like this: -class Encoding: - Implicit: typing.ClassVar[type] - Explicit: typing.ClassVar[type] - -class Size: - min: int - max: int | None - - def __new__(cls, min: int, max: int | None) -> Size: ... - @staticmethod - def exact(n: int) -> Size: ... - -class AnnotatedType: - inner: Type - annotation: Annotation - - def __new__(cls, inner: Type, annotation: Annotation) -> AnnotatedType: ... - -class AnnotatedTypeObject: - annotated_type: AnnotatedType - value: typing.Any - - def __new__( - cls, annotated_type: AnnotatedType, value: typing.Any - ) -> AnnotatedTypeObject: ... - -class Variant: - python_class: type - ann_type: AnnotatedType - tag_name: str | None - - def __new__( - cls, - python_class: type, - ann_type: AnnotatedType, - tag_name: str | None, - ) -> Variant: ... - -class PrintableString: - def __new__(cls, inner: str) -> PrintableString: ... - def __repr__(self) -> str: ... - def __eq__(self, other: object) -> bool: ... - def as_str(self) -> str: ... - -class IA5String: - def __new__(cls, inner: str) -> IA5String: ... - def __repr__(self) -> str: ... - def __eq__(self, other: object) -> bool: ... - def as_str(self) -> str: ... - -class UTCTime: - def __new__(cls, inner: datetime.datetime) -> UTCTime: ... - def __repr__(self) -> str: ... - def __eq__(self, other: object) -> bool: ... - def as_datetime(self) -> datetime.datetime: ... - -class GeneralizedTime: - def __new__(cls, inner: datetime.datetime) -> GeneralizedTime: ... - def __repr__(self) -> str: ... - def __eq__(self, other: object) -> bool: ... - def as_datetime(self) -> datetime.datetime: ... - -class BitString: - def __new__(cls, data: bytes, padding_bits: int) -> BitString: ... - def __repr__(self) -> str: ... - def __eq__(self, other: object) -> bool: ... - def as_bytes(self) -> bytes: ... - def padding_bits(self) -> int: ... - -class Tlv: - @property - def tag_bytes(self) -> bytes: ... - @property - def data(self) -> memoryview: ... - def parse(self, cls: type): ... - -T = typing.TypeVar("T") - -class SetOf(typing.Generic[T]): - def __new__(cls, inner: list[T]) -> SetOf[T]: ... - def as_list(self) -> list[T]: ... - def __eq__(self, other: object) -> bool: ... - def __repr__(self) -> str: ... - -class Null: - def __new__(cls) -> Null: ... - def __repr__(self) -> str: ... - def __eq__(self, other: object) -> bool: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi deleted file mode 100644 index 09f46b1..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi +++ /dev/null @@ -1,17 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -class _Reasons: - BACKEND_MISSING_INTERFACE: _Reasons - UNSUPPORTED_HASH: _Reasons - UNSUPPORTED_CIPHER: _Reasons - UNSUPPORTED_PADDING: _Reasons - UNSUPPORTED_MGF: _Reasons - UNSUPPORTED_PUBLIC_KEY_ALGORITHM: _Reasons - UNSUPPORTED_ELLIPTIC_CURVE: _Reasons - UNSUPPORTED_SERIALIZATION: _Reasons - UNSUPPORTED_X509: _Reasons - UNSUPPORTED_EXCHANGE_ALGORITHM: _Reasons - UNSUPPORTED_DIFFIE_HELLMAN: _Reasons - UNSUPPORTED_MAC: _Reasons diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi deleted file mode 100644 index 103e96c..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi +++ /dev/null @@ -1,117 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import datetime -from collections.abc import Iterator - -from cryptography import x509 -from cryptography.hazmat.primitives import hashes, serialization -from cryptography.hazmat.primitives.asymmetric.types import PrivateKeyTypes -from cryptography.x509 import ocsp - -class OCSPRequest: - @property - def issuer_key_hash(self) -> bytes: ... - @property - def issuer_name_hash(self) -> bytes: ... - @property - def hash_algorithm(self) -> hashes.HashAlgorithm: ... - @property - def serial_number(self) -> int: ... - def public_bytes(self, encoding: serialization.Encoding) -> bytes: ... - @property - def extensions(self) -> x509.Extensions: ... - -class OCSPResponse: - @property - def responses(self) -> Iterator[OCSPSingleResponse]: ... - @property - def response_status(self) -> ocsp.OCSPResponseStatus: ... - @property - def signature_algorithm_oid(self) -> x509.ObjectIdentifier: ... - @property - def signature_hash_algorithm( - self, - ) -> hashes.HashAlgorithm | None: ... - @property - def signature(self) -> bytes: ... - @property - def tbs_response_bytes(self) -> bytes: ... - @property - def certificates(self) -> list[x509.Certificate]: ... - @property - def responder_key_hash(self) -> bytes | None: ... - @property - def responder_name(self) -> x509.Name | None: ... - @property - def produced_at(self) -> datetime.datetime: ... - @property - def produced_at_utc(self) -> datetime.datetime: ... - @property - def certificate_status(self) -> ocsp.OCSPCertStatus: ... - @property - def revocation_time(self) -> datetime.datetime | None: ... - @property - def revocation_time_utc(self) -> datetime.datetime | None: ... - @property - def revocation_reason(self) -> x509.ReasonFlags | None: ... - @property - def this_update(self) -> datetime.datetime: ... - @property - def this_update_utc(self) -> datetime.datetime: ... - @property - def next_update(self) -> datetime.datetime | None: ... - @property - def next_update_utc(self) -> datetime.datetime | None: ... - @property - def issuer_key_hash(self) -> bytes: ... - @property - def issuer_name_hash(self) -> bytes: ... - @property - def hash_algorithm(self) -> hashes.HashAlgorithm: ... - @property - def serial_number(self) -> int: ... - @property - def extensions(self) -> x509.Extensions: ... - @property - def single_extensions(self) -> x509.Extensions: ... - def public_bytes(self, encoding: serialization.Encoding) -> bytes: ... - -class OCSPSingleResponse: - @property - def certificate_status(self) -> ocsp.OCSPCertStatus: ... - @property - def revocation_time(self) -> datetime.datetime | None: ... - @property - def revocation_time_utc(self) -> datetime.datetime | None: ... - @property - def revocation_reason(self) -> x509.ReasonFlags | None: ... - @property - def this_update(self) -> datetime.datetime: ... - @property - def this_update_utc(self) -> datetime.datetime: ... - @property - def next_update(self) -> datetime.datetime | None: ... - @property - def next_update_utc(self) -> datetime.datetime | None: ... - @property - def issuer_key_hash(self) -> bytes: ... - @property - def issuer_name_hash(self) -> bytes: ... - @property - def hash_algorithm(self) -> hashes.HashAlgorithm: ... - @property - def serial_number(self) -> int: ... - -def load_der_ocsp_request(data: bytes) -> ocsp.OCSPRequest: ... -def load_der_ocsp_response(data: bytes) -> ocsp.OCSPResponse: ... -def create_ocsp_request( - builder: ocsp.OCSPRequestBuilder, -) -> ocsp.OCSPRequest: ... -def create_ocsp_response( - status: ocsp.OCSPResponseStatus, - builder: ocsp.OCSPResponseBuilder | None, - private_key: PrivateKeyTypes | None, - hash_algorithm: hashes.HashAlgorithm | None, -) -> ocsp.OCSPResponse: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi deleted file mode 100644 index 404a300..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi +++ /dev/null @@ -1,80 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.bindings._rust.openssl import ( - aead, - ciphers, - cmac, - dh, - dsa, - ec, - ed448, - ed25519, - hashes, - hmac, - hpke, - kdf, - keys, - mldsa, - mlkem, - poly1305, - rsa, - x448, - x25519, -) - -__all__ = [ - "aead", - "ciphers", - "cmac", - "dh", - "dsa", - "ec", - "ed448", - "ed25519", - "hashes", - "hmac", - "hpke", - "kdf", - "keys", - "mldsa", - "mlkem", - "openssl_version", - "openssl_version_text", - "poly1305", - "raise_openssl_error", - "rsa", - "x448", - "x25519", -] - -CRYPTOGRAPHY_IS_LIBRESSL: bool -CRYPTOGRAPHY_IS_BORINGSSL: bool -CRYPTOGRAPHY_IS_AWSLC: bool -CRYPTOGRAPHY_OPENSSL_309_OR_GREATER: bool -CRYPTOGRAPHY_OPENSSL_320_OR_GREATER: bool -CRYPTOGRAPHY_OPENSSL_330_OR_GREATER: bool -CRYPTOGRAPHY_OPENSSL_350_OR_GREATER: bool - -class Providers: ... - -_legacy_provider_loaded: bool -_providers: Providers - -def openssl_version() -> int: ... -def openssl_version_text() -> str: ... -def raise_openssl_error() -> typing.NoReturn: ... -def capture_error_stack() -> list[OpenSSLError]: ... -def is_fips_enabled() -> bool: ... -def enable_fips(providers: Providers) -> None: ... - -class OpenSSLError: - @property - def lib(self) -> int: ... - @property - def reason(self) -> int: ... - @property - def reason_text(self) -> bytes: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi deleted file mode 100644 index eb44608..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi +++ /dev/null @@ -1,189 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from collections.abc import Sequence - -from cryptography.utils import Buffer - -class AESGCM: - def __init__(self, key: Buffer) -> None: ... - @staticmethod - def generate_key(bit_length: int) -> bytes: ... - def encrypt( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - ) -> bytes: ... - def decrypt( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - ) -> bytes: ... - def encrypt_into( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - buf: Buffer, - ) -> int: ... - def decrypt_into( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - buf: Buffer, - ) -> int: ... - -class ChaCha20Poly1305: - def __init__(self, key: Buffer) -> None: ... - @staticmethod - def generate_key() -> bytes: ... - def encrypt( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - ) -> bytes: ... - def encrypt_into( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - buf: Buffer, - ) -> int: ... - def decrypt( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - ) -> bytes: ... - def decrypt_into( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - buf: Buffer, - ) -> int: ... - -class AESCCM: - def __init__(self, key: Buffer, tag_length: int = 16) -> None: ... - @staticmethod - def generate_key(bit_length: int) -> bytes: ... - def encrypt( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - ) -> bytes: ... - def encrypt_into( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - buf: Buffer, - ) -> int: ... - def decrypt( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - ) -> bytes: ... - def decrypt_into( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - buf: Buffer, - ) -> int: ... - -class AESSIV: - def __init__(self, key: Buffer) -> None: ... - @staticmethod - def generate_key(bit_length: int) -> bytes: ... - def encrypt( - self, - data: Buffer, - associated_data: Sequence[Buffer] | None, - ) -> bytes: ... - def encrypt_into( - self, - data: Buffer, - associated_data: Sequence[Buffer] | None, - buf: Buffer, - ) -> int: ... - def decrypt( - self, - data: Buffer, - associated_data: Sequence[Buffer] | None, - ) -> bytes: ... - def decrypt_into( - self, - data: Buffer, - associated_data: Sequence[Buffer] | None, - buf: Buffer, - ) -> int: ... - -class AESOCB3: - def __init__(self, key: Buffer) -> None: ... - @staticmethod - def generate_key(bit_length: int) -> bytes: ... - def encrypt( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - ) -> bytes: ... - def encrypt_into( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - buf: Buffer, - ) -> int: ... - def decrypt( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - ) -> bytes: ... - def decrypt_into( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - buf: Buffer, - ) -> int: ... - -class AESGCMSIV: - def __init__(self, key: Buffer) -> None: ... - @staticmethod - def generate_key(bit_length: int) -> bytes: ... - def encrypt( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - ) -> bytes: ... - def encrypt_into( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - buf: Buffer, - ) -> int: ... - def decrypt( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - ) -> bytes: ... - def decrypt_into( - self, - nonce: Buffer, - data: Buffer, - associated_data: Buffer | None, - buf: Buffer, - ) -> int: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi deleted file mode 100644 index a48fb01..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi +++ /dev/null @@ -1,38 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives import ciphers -from cryptography.hazmat.primitives.ciphers import modes - -@typing.overload -def create_encryption_ctx( - algorithm: ciphers.CipherAlgorithm, mode: modes.ModeWithAuthenticationTag -) -> ciphers.AEADEncryptionContext: ... -@typing.overload -def create_encryption_ctx( - algorithm: ciphers.CipherAlgorithm, mode: modes.Mode | None -) -> ciphers.CipherContext: ... -@typing.overload -def create_decryption_ctx( - algorithm: ciphers.CipherAlgorithm, mode: modes.ModeWithAuthenticationTag -) -> ciphers.AEADDecryptionContext: ... -@typing.overload -def create_decryption_ctx( - algorithm: ciphers.CipherAlgorithm, mode: modes.Mode | None -) -> ciphers.CipherContext: ... -def cipher_supported( - algorithm: ciphers.CipherAlgorithm, mode: modes.Mode -) -> bool: ... -def _advance( - ctx: ciphers.AEADEncryptionContext | ciphers.AEADDecryptionContext, n: int -) -> None: ... -def _advance_aad( - ctx: ciphers.AEADEncryptionContext | ciphers.AEADDecryptionContext, n: int -) -> None: ... - -class CipherContext: ... -class AEADEncryptionContext: ... -class AEADDecryptionContext: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi deleted file mode 100644 index 9c03508..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi +++ /dev/null @@ -1,18 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives import ciphers - -class CMAC: - def __init__( - self, - algorithm: ciphers.BlockCipherAlgorithm, - backend: typing.Any = None, - ) -> None: ... - def update(self, data: bytes) -> None: ... - def finalize(self) -> bytes: ... - def verify(self, signature: bytes) -> None: ... - def copy(self) -> CMAC: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi deleted file mode 100644 index 08733d7..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi +++ /dev/null @@ -1,51 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives.asymmetric import dh - -MIN_MODULUS_SIZE: int - -class DHPrivateKey: ... -class DHPublicKey: ... -class DHParameters: ... - -class DHPrivateNumbers: - def __init__(self, x: int, public_numbers: DHPublicNumbers) -> None: ... - def private_key(self, backend: typing.Any = None) -> dh.DHPrivateKey: ... - @property - def x(self) -> int: ... - @property - def public_numbers(self) -> DHPublicNumbers: ... - -class DHPublicNumbers: - def __init__( - self, y: int, parameter_numbers: DHParameterNumbers - ) -> None: ... - def public_key(self, backend: typing.Any = None) -> dh.DHPublicKey: ... - @property - def y(self) -> int: ... - @property - def parameter_numbers(self) -> DHParameterNumbers: ... - -class DHParameterNumbers: - def __init__(self, p: int, g: int, q: int | None = None) -> None: ... - def parameters(self, backend: typing.Any = None) -> dh.DHParameters: ... - @property - def p(self) -> int: ... - @property - def g(self) -> int: ... - @property - def q(self) -> int | None: ... - -def generate_parameters( - generator: int, key_size: int, backend: typing.Any = None -) -> dh.DHParameters: ... -def from_pem_parameters( - data: bytes, backend: typing.Any = None -) -> dh.DHParameters: ... -def from_der_parameters( - data: bytes, backend: typing.Any = None -) -> dh.DHParameters: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi deleted file mode 100644 index 0922a4c..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi +++ /dev/null @@ -1,41 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives.asymmetric import dsa - -class DSAPrivateKey: ... -class DSAPublicKey: ... -class DSAParameters: ... - -class DSAPrivateNumbers: - def __init__(self, x: int, public_numbers: DSAPublicNumbers) -> None: ... - @property - def x(self) -> int: ... - @property - def public_numbers(self) -> DSAPublicNumbers: ... - def private_key(self, backend: typing.Any = None) -> dsa.DSAPrivateKey: ... - -class DSAPublicNumbers: - def __init__( - self, y: int, parameter_numbers: DSAParameterNumbers - ) -> None: ... - @property - def y(self) -> int: ... - @property - def parameter_numbers(self) -> DSAParameterNumbers: ... - def public_key(self, backend: typing.Any = None) -> dsa.DSAPublicKey: ... - -class DSAParameterNumbers: - def __init__(self, p: int, q: int, g: int) -> None: ... - @property - def p(self) -> int: ... - @property - def q(self) -> int: ... - @property - def g(self) -> int: ... - def parameters(self, backend: typing.Any = None) -> dsa.DSAParameters: ... - -def generate_parameters(key_size: int) -> dsa.DSAParameters: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi deleted file mode 100644 index 5c3b7bf..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi +++ /dev/null @@ -1,52 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives.asymmetric import ec - -class ECPrivateKey: ... -class ECPublicKey: ... - -class EllipticCurvePrivateNumbers: - def __init__( - self, private_value: int, public_numbers: EllipticCurvePublicNumbers - ) -> None: ... - def private_key( - self, backend: typing.Any = None - ) -> ec.EllipticCurvePrivateKey: ... - @property - def private_value(self) -> int: ... - @property - def public_numbers(self) -> EllipticCurvePublicNumbers: ... - -class EllipticCurvePublicNumbers: - def __init__(self, x: int, y: int, curve: ec.EllipticCurve) -> None: ... - def public_key( - self, backend: typing.Any = None - ) -> ec.EllipticCurvePublicKey: ... - @property - def x(self) -> int: ... - @property - def y(self) -> int: ... - @property - def curve(self) -> ec.EllipticCurve: ... - def __eq__(self, other: object) -> bool: ... - -def curve_supported(curve: ec.EllipticCurve) -> bool: ... -def generate_private_key( - curve: ec.EllipticCurve, backend: typing.Any = None -) -> ec.EllipticCurvePrivateKey: ... -def from_private_numbers( - numbers: ec.EllipticCurvePrivateNumbers, -) -> ec.EllipticCurvePrivateKey: ... -def from_public_numbers( - numbers: ec.EllipticCurvePublicNumbers, -) -> ec.EllipticCurvePublicKey: ... -def from_public_bytes( - curve: ec.EllipticCurve, data: bytes -) -> ec.EllipticCurvePublicKey: ... -def derive_private_key( - private_value: int, curve: ec.EllipticCurve -) -> ec.EllipticCurvePrivateKey: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi deleted file mode 100644 index f85b3d1..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.hazmat.primitives.asymmetric import ed25519 -from cryptography.utils import Buffer - -class Ed25519PrivateKey: ... -class Ed25519PublicKey: ... - -def generate_key() -> ed25519.Ed25519PrivateKey: ... -def from_private_bytes(data: Buffer) -> ed25519.Ed25519PrivateKey: ... -def from_public_bytes(data: bytes) -> ed25519.Ed25519PublicKey: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi deleted file mode 100644 index c8ca0ec..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.hazmat.primitives.asymmetric import ed448 -from cryptography.utils import Buffer - -class Ed448PrivateKey: ... -class Ed448PublicKey: ... - -def generate_key() -> ed448.Ed448PrivateKey: ... -def from_private_bytes(data: Buffer) -> ed448.Ed448PrivateKey: ... -def from_public_bytes(data: bytes) -> ed448.Ed448PublicKey: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi deleted file mode 100644 index 106b531..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi +++ /dev/null @@ -1,30 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives import hashes -from cryptography.utils import Buffer - -class Hash(hashes.HashContext): - def __init__( - self, algorithm: hashes.HashAlgorithm, backend: typing.Any = None - ) -> None: ... - @property - def algorithm(self) -> hashes.HashAlgorithm: ... - def update(self, data: Buffer) -> None: ... - def finalize(self) -> bytes: ... - def copy(self) -> Hash: ... - @staticmethod - def hash(algorithm: hashes.HashAlgorithm, data: Buffer) -> bytes: ... - -def hash_supported(algorithm: hashes.HashAlgorithm) -> bool: ... - -class XOFHash: - def __init__(self, algorithm: hashes.ExtendableOutputFunction) -> None: ... - @property - def algorithm(self) -> hashes.ExtendableOutputFunction: ... - def update(self, data: Buffer) -> None: ... - def squeeze(self, length: int) -> bytes: ... - def copy(self) -> XOFHash: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi deleted file mode 100644 index 3883d1b..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi +++ /dev/null @@ -1,22 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives import hashes -from cryptography.utils import Buffer - -class HMAC(hashes.HashContext): - def __init__( - self, - key: Buffer, - algorithm: hashes.HashAlgorithm, - backend: typing.Any = None, - ) -> None: ... - @property - def algorithm(self) -> hashes.HashAlgorithm: ... - def update(self, data: Buffer) -> None: ... - def finalize(self) -> bytes: ... - def verify(self, signature: bytes) -> None: ... - def copy(self) -> HMAC: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hpke.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hpke.pyi deleted file mode 100644 index a9d8a11..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/hpke.pyi +++ /dev/null @@ -1,108 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.hazmat.primitives.asymmetric import ec, mlkem, x25519 -from cryptography.utils import Buffer - -class KEM: - X25519: KEM - P256: KEM - P384: KEM - P521: KEM - MLKEM768: KEM - MLKEM1024: KEM - MLKEM768_X25519: KEM - MLKEM1024_P384: KEM - -class KDF: - HKDF_SHA256: KDF - HKDF_SHA384: KDF - HKDF_SHA512: KDF - SHAKE128: KDF - SHAKE256: KDF - -class AEAD: - AES_128_GCM: AEAD - AES_256_GCM: AEAD - CHACHA20_POLY1305: AEAD - -class MLKEM768X25519PrivateKey: - def __init__( - self, - mlkem_key: mlkem.MLKEM768PrivateKey, - x25519_key: x25519.X25519PrivateKey, - ) -> None: ... - def public_key(self) -> MLKEM768X25519PublicKey: ... - -class MLKEM768X25519PublicKey: - def __init__( - self, - mlkem_key: mlkem.MLKEM768PublicKey, - x25519_key: x25519.X25519PublicKey, - ) -> None: ... - -class MLKEM1024P384PrivateKey: - def __init__( - self, - mlkem_key: mlkem.MLKEM1024PrivateKey, - p384_key: ec.EllipticCurvePrivateKey, - ) -> None: ... - def public_key(self) -> MLKEM1024P384PublicKey: ... - -class MLKEM1024P384PublicKey: - def __init__( - self, - mlkem_key: mlkem.MLKEM1024PublicKey, - p384_key: ec.EllipticCurvePublicKey, - ) -> None: ... - -class Suite: - def __init__(self, kem: KEM, kdf: KDF, aead: AEAD) -> None: ... - def encrypt( - self, - plaintext: Buffer, - public_key: x25519.X25519PublicKey - | ec.EllipticCurvePublicKey - | mlkem.MLKEM768PublicKey - | mlkem.MLKEM1024PublicKey - | MLKEM768X25519PublicKey - | MLKEM1024P384PublicKey, - info: Buffer | None = None, - ) -> bytes: ... - def decrypt( - self, - ciphertext: Buffer, - private_key: x25519.X25519PrivateKey - | ec.EllipticCurvePrivateKey - | mlkem.MLKEM768PrivateKey - | mlkem.MLKEM1024PrivateKey - | MLKEM768X25519PrivateKey - | MLKEM1024P384PrivateKey, - info: Buffer | None = None, - ) -> bytes: ... - -def _encrypt_with_aad( - suite: Suite, - plaintext: Buffer, - public_key: x25519.X25519PublicKey - | ec.EllipticCurvePublicKey - | mlkem.MLKEM768PublicKey - | mlkem.MLKEM1024PublicKey - | MLKEM768X25519PublicKey - | MLKEM1024P384PublicKey, - info: Buffer | None = None, - aad: Buffer | None = None, -) -> bytes: ... -def _decrypt_with_aad( - suite: Suite, - ciphertext: Buffer, - private_key: x25519.X25519PrivateKey - | ec.EllipticCurvePrivateKey - | mlkem.MLKEM768PrivateKey - | mlkem.MLKEM1024PrivateKey - | MLKEM768X25519PrivateKey - | MLKEM1024P384PrivateKey, - info: Buffer | None = None, - aad: Buffer | None = None, -) -> bytes: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi deleted file mode 100644 index bb37b96..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi +++ /dev/null @@ -1,205 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives.hashes import HashAlgorithm -from cryptography.hazmat.primitives.kdf.kbkdf import CounterLocation, Mode -from cryptography.utils import Buffer - -class PBKDF2HMAC: - def __init__( - self, - algorithm: HashAlgorithm, - length: int, - salt: bytes, - iterations: int, - backend: typing.Any = None, - ) -> None: ... - def derive(self, key_material: Buffer) -> bytes: ... - def derive_into(self, key_material: Buffer, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - -class Scrypt: - def __init__( - self, - salt: bytes, - length: int, - n: int, - r: int, - p: int, - backend: typing.Any = None, - ) -> None: ... - def derive(self, key_material: Buffer) -> bytes: ... - def derive_into(self, key_material: Buffer, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - -class Argon2d: - def __init__( - self, - *, - salt: bytes, - length: int, - iterations: int, - lanes: int, - memory_cost: int, - ad: bytes | None = None, - secret: bytes | None = None, - ) -> None: ... - def derive(self, key_material: bytes) -> bytes: ... - def derive_into(self, key_material: bytes, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - def derive_phc_encoded(self, key_material: bytes) -> str: ... - @classmethod - def verify_phc_encoded( - cls, key_material: bytes, phc_encoded: str, secret: bytes | None = None - ) -> None: ... - -class Argon2i: - def __init__( - self, - *, - salt: bytes, - length: int, - iterations: int, - lanes: int, - memory_cost: int, - ad: bytes | None = None, - secret: bytes | None = None, - ) -> None: ... - def derive(self, key_material: bytes) -> bytes: ... - def derive_into(self, key_material: bytes, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - def derive_phc_encoded(self, key_material: bytes) -> str: ... - @classmethod - def verify_phc_encoded( - cls, key_material: bytes, phc_encoded: str, secret: bytes | None = None - ) -> None: ... - -class Argon2id: - def __init__( - self, - *, - salt: bytes, - length: int, - iterations: int, - lanes: int, - memory_cost: int, - ad: bytes | None = None, - secret: bytes | None = None, - ) -> None: ... - def derive(self, key_material: bytes) -> bytes: ... - def derive_into(self, key_material: bytes, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - def derive_phc_encoded(self, key_material: bytes) -> str: ... - @classmethod - def verify_phc_encoded( - cls, key_material: bytes, phc_encoded: str, secret: bytes | None = None - ) -> None: ... - -class HKDF: - def __init__( - self, - algorithm: HashAlgorithm, - length: int, - salt: bytes | None, - info: bytes | None, - backend: typing.Any = None, - ): ... - @staticmethod - def extract( - algorithm: HashAlgorithm, salt: bytes | None, key_material: Buffer - ) -> bytes: ... - def derive(self, key_material: Buffer) -> bytes: ... - def derive_into(self, key_material: Buffer, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - -class HKDFExpand: - def __init__( - self, - algorithm: HashAlgorithm, - length: int, - info: bytes | None, - backend: typing.Any = None, - ): ... - def derive(self, key_material: Buffer) -> bytes: ... - def derive_into(self, key_material: Buffer, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - -class X963KDF: - def __init__( - self, - algorithm: HashAlgorithm, - length: int, - sharedinfo: bytes | None, - backend: typing.Any = None, - ) -> None: ... - def derive(self, key_material: Buffer) -> bytes: ... - def derive_into(self, key_material: Buffer, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - -class ConcatKDFHash: - def __init__( - self, - algorithm: HashAlgorithm, - length: int, - otherinfo: bytes | None, - backend: typing.Any = None, - ) -> None: ... - def derive(self, key_material: Buffer) -> bytes: ... - def derive_into(self, key_material: Buffer, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - -class ConcatKDFHMAC: - def __init__( - self, - algorithm: HashAlgorithm, - length: int, - salt: bytes | None, - otherinfo: bytes | None, - backend: typing.Any = None, - ) -> None: ... - def derive(self, key_material: Buffer) -> bytes: ... - def derive_into(self, key_material: Buffer, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - -class KBKDFHMAC: - def __init__( - self, - algorithm: HashAlgorithm, - mode: Mode, - length: int, - rlen: int, - llen: int | None, - location: CounterLocation, - label: bytes | None, - context: bytes | None, - fixed: bytes | None, - backend: typing.Any = None, - *, - break_location: int | None = None, - ) -> None: ... - def derive(self, key_material: Buffer) -> bytes: ... - def derive_into(self, key_material: Buffer, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... - -class KBKDFCMAC: - def __init__( - self, - algorithm: typing.Any, - mode: Mode, - length: int, - rlen: int, - llen: int | None, - location: CounterLocation, - label: bytes | None, - context: bytes | None, - fixed: bytes | None, - backend: typing.Any = None, - *, - break_location: int | None = None, - ) -> None: ... - def derive(self, key_material: Buffer) -> bytes: ... - def derive_into(self, key_material: Buffer, buffer: Buffer) -> int: ... - def verify(self, key_material: bytes, expected_key: bytes) -> None: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi deleted file mode 100644 index 404057e..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi +++ /dev/null @@ -1,34 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives.asymmetric.types import ( - PrivateKeyTypes, - PublicKeyTypes, -) -from cryptography.utils import Buffer - -def load_der_private_key( - data: Buffer, - password: bytes | None, - backend: typing.Any = None, - *, - unsafe_skip_rsa_key_validation: bool = False, -) -> PrivateKeyTypes: ... -def load_pem_private_key( - data: Buffer, - password: bytes | None, - backend: typing.Any = None, - *, - unsafe_skip_rsa_key_validation: bool = False, -) -> PrivateKeyTypes: ... -def load_der_public_key( - data: bytes, - backend: typing.Any = None, -) -> PublicKeyTypes: ... -def load_pem_public_key( - data: bytes, - backend: typing.Any = None, -) -> PublicKeyTypes: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/mldsa.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/mldsa.pyi deleted file mode 100644 index 232469a..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/mldsa.pyi +++ /dev/null @@ -1,23 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.hazmat.primitives.asymmetric import mldsa -from cryptography.utils import Buffer - -class MLDSA44PrivateKey: ... -class MLDSA44PublicKey: ... -class MLDSA65PrivateKey: ... -class MLDSA65PublicKey: ... -class MLDSA87PrivateKey: ... -class MLDSA87PublicKey: ... - -def generate_mldsa44_key() -> mldsa.MLDSA44PrivateKey: ... -def from_mldsa44_public_bytes(data: bytes) -> mldsa.MLDSA44PublicKey: ... -def from_mldsa44_seed_bytes(data: Buffer) -> mldsa.MLDSA44PrivateKey: ... -def generate_mldsa65_key() -> mldsa.MLDSA65PrivateKey: ... -def from_mldsa65_public_bytes(data: bytes) -> mldsa.MLDSA65PublicKey: ... -def from_mldsa65_seed_bytes(data: Buffer) -> mldsa.MLDSA65PrivateKey: ... -def generate_mldsa87_key() -> mldsa.MLDSA87PrivateKey: ... -def from_mldsa87_public_bytes(data: bytes) -> mldsa.MLDSA87PublicKey: ... -def from_mldsa87_seed_bytes(data: Buffer) -> mldsa.MLDSA87PrivateKey: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/mlkem.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/mlkem.pyi deleted file mode 100644 index 768a340..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/mlkem.pyi +++ /dev/null @@ -1,18 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.hazmat.primitives.asymmetric import mlkem -from cryptography.utils import Buffer - -class MLKEM768PrivateKey: ... -class MLKEM768PublicKey: ... -class MLKEM1024PrivateKey: ... -class MLKEM1024PublicKey: ... - -def generate_mlkem768_key() -> mlkem.MLKEM768PrivateKey: ... -def from_mlkem768_seed_bytes(data: Buffer) -> mlkem.MLKEM768PrivateKey: ... -def from_mlkem768_public_bytes(data: Buffer) -> mlkem.MLKEM768PublicKey: ... -def generate_mlkem1024_key() -> mlkem.MLKEM1024PrivateKey: ... -def from_mlkem1024_seed_bytes(data: Buffer) -> mlkem.MLKEM1024PrivateKey: ... -def from_mlkem1024_public_bytes(data: Buffer) -> mlkem.MLKEM1024PublicKey: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi deleted file mode 100644 index 45a2a39..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi +++ /dev/null @@ -1,15 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.utils import Buffer - -class Poly1305: - def __init__(self, key: Buffer) -> None: ... - @staticmethod - def generate_tag(key: Buffer, data: Buffer) -> bytes: ... - @staticmethod - def verify_tag(key: Buffer, data: Buffer, tag: bytes) -> None: ... - def update(self, data: Buffer) -> None: ... - def finalize(self) -> bytes: ... - def verify(self, tag: bytes) -> None: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi deleted file mode 100644 index ef7752d..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi +++ /dev/null @@ -1,55 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing - -from cryptography.hazmat.primitives.asymmetric import rsa - -class RSAPrivateKey: ... -class RSAPublicKey: ... - -class RSAPrivateNumbers: - def __init__( - self, - p: int, - q: int, - d: int, - dmp1: int, - dmq1: int, - iqmp: int, - public_numbers: RSAPublicNumbers, - ) -> None: ... - @property - def p(self) -> int: ... - @property - def q(self) -> int: ... - @property - def d(self) -> int: ... - @property - def dmp1(self) -> int: ... - @property - def dmq1(self) -> int: ... - @property - def iqmp(self) -> int: ... - @property - def public_numbers(self) -> RSAPublicNumbers: ... - def private_key( - self, - backend: typing.Any = None, - *, - unsafe_skip_rsa_key_validation: bool = False, - ) -> rsa.RSAPrivateKey: ... - -class RSAPublicNumbers: - def __init__(self, e: int, n: int) -> None: ... - @property - def n(self) -> int: ... - @property - def e(self) -> int: ... - def public_key(self, backend: typing.Any = None) -> rsa.RSAPublicKey: ... - -def generate_private_key( - public_exponent: int, - key_size: int, -) -> rsa.RSAPrivateKey: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi deleted file mode 100644 index 38d2add..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.hazmat.primitives.asymmetric import x25519 -from cryptography.utils import Buffer - -class X25519PrivateKey: ... -class X25519PublicKey: ... - -def generate_key() -> x25519.X25519PrivateKey: ... -def from_private_bytes(data: Buffer) -> x25519.X25519PrivateKey: ... -def from_public_bytes(data: bytes) -> x25519.X25519PublicKey: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi deleted file mode 100644 index 3ac0980..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.hazmat.primitives.asymmetric import x448 -from cryptography.utils import Buffer - -class X448PrivateKey: ... -class X448PublicKey: ... - -def generate_key() -> x448.X448PrivateKey: ... -def from_private_bytes(data: Buffer) -> x448.X448PrivateKey: ... -def from_public_bytes(data: bytes) -> x448.X448PublicKey: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi deleted file mode 100644 index b25becb..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi +++ /dev/null @@ -1,52 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import typing -from collections.abc import Iterable - -from cryptography import x509 -from cryptography.hazmat.primitives.asymmetric.types import PrivateKeyTypes -from cryptography.hazmat.primitives.serialization import ( - KeySerializationEncryption, -) -from cryptography.hazmat.primitives.serialization.pkcs12 import ( - PKCS12KeyAndCertificates, - PKCS12PrivateKeyTypes, -) -from cryptography.utils import Buffer - -class PKCS12Certificate: - def __init__( - self, cert: x509.Certificate, friendly_name: bytes | None - ) -> None: ... - @property - def friendly_name(self) -> bytes | None: ... - @property - def certificate(self) -> x509.Certificate: ... - -def load_key_and_certificates( - data: Buffer, - password: Buffer | None, - backend: typing.Any = None, -) -> tuple[ - PrivateKeyTypes | None, - x509.Certificate | None, - list[x509.Certificate], -]: ... -def load_pkcs12( - data: bytes, - password: bytes | None, - backend: typing.Any = None, -) -> PKCS12KeyAndCertificates: ... -def serialize_java_truststore( - certs: Iterable[PKCS12Certificate], - encryption_algorithm: KeySerializationEncryption, -) -> bytes: ... -def serialize_key_and_certificates( - name: bytes | None, - key: PKCS12PrivateKeyTypes | None, - cert: x509.Certificate | None, - cas: Iterable[x509.Certificate | PKCS12Certificate] | None, - encryption_algorithm: KeySerializationEncryption, -) -> bytes: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi deleted file mode 100644 index 358b135..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi +++ /dev/null @@ -1,50 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from collections.abc import Iterable - -from cryptography import x509 -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives.asymmetric import rsa -from cryptography.hazmat.primitives.serialization import pkcs7 - -def serialize_certificates( - certs: list[x509.Certificate], - encoding: serialization.Encoding, -) -> bytes: ... -def encrypt_and_serialize( - builder: pkcs7.PKCS7EnvelopeBuilder, - content_encryption_algorithm: pkcs7.ContentEncryptionAlgorithm, - encoding: serialization.Encoding, - options: Iterable[pkcs7.PKCS7Options], -) -> bytes: ... -def sign_and_serialize( - builder: pkcs7.PKCS7SignatureBuilder, - encoding: serialization.Encoding, - options: Iterable[pkcs7.PKCS7Options], -) -> bytes: ... -def decrypt_der( - data: bytes, - certificate: x509.Certificate, - private_key: rsa.RSAPrivateKey, - options: Iterable[pkcs7.PKCS7Options], -) -> bytes: ... -def decrypt_pem( - data: bytes, - certificate: x509.Certificate, - private_key: rsa.RSAPrivateKey, - options: Iterable[pkcs7.PKCS7Options], -) -> bytes: ... -def decrypt_smime( - data: bytes, - certificate: x509.Certificate, - private_key: rsa.RSAPrivateKey, - options: Iterable[pkcs7.PKCS7Options], -) -> bytes: ... -def load_pem_pkcs7_certificates( - data: bytes, -) -> list[x509.Certificate]: ... -def load_der_pkcs7_certificates( - data: bytes, -) -> list[x509.Certificate]: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi deleted file mode 100644 index c6c6d0b..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi +++ /dev/null @@ -1,23 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography import x509 -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives.serialization import pkcs7 -from cryptography.utils import Buffer - -class TestCertificate: - not_after_tag: int - not_before_tag: int - issuer_value_tags: list[int] - subject_value_tags: list[int] - -def test_parse_certificate(data: bytes) -> TestCertificate: ... -def pkcs7_verify( - encoding: serialization.Encoding, - sig: bytes, - msg: Buffer | None, - certs: list[x509.Certificate], - options: list[pkcs7.PKCS7Options], -) -> None: ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi deleted file mode 100644 index 196a3c6..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi +++ /dev/null @@ -1,312 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -import datetime -import typing -from collections.abc import Iterator - -from cryptography import x509 -from cryptography.hazmat.primitives import hashes, serialization -from cryptography.hazmat.primitives.asymmetric.ec import ECDSA -from cryptography.hazmat.primitives.asymmetric.padding import PSS, PKCS1v15 -from cryptography.hazmat.primitives.asymmetric.types import ( - CertificateIssuerPublicKeyTypes, - CertificatePublicKeyTypes, - PrivateKeyTypes, -) -from cryptography.x509 import certificate_transparency - -def load_pem_x509_certificate( - data: bytes, backend: typing.Any = None -) -> x509.Certificate: ... -def load_der_x509_certificate( - data: bytes, backend: typing.Any = None -) -> x509.Certificate: ... -def load_pem_x509_certificates( - data: bytes, -) -> list[x509.Certificate]: ... -def load_pem_x509_crl( - data: bytes, backend: typing.Any = None -) -> x509.CertificateRevocationList: ... -def load_der_x509_crl( - data: bytes, backend: typing.Any = None -) -> x509.CertificateRevocationList: ... -def load_pem_x509_csr( - data: bytes, backend: typing.Any = None -) -> x509.CertificateSigningRequest: ... -def load_der_x509_csr( - data: bytes, backend: typing.Any = None -) -> x509.CertificateSigningRequest: ... -def encode_name_bytes(name: x509.Name) -> bytes: ... -def encode_extension_value(extension: x509.ExtensionType) -> bytes: ... -def create_x509_certificate( - builder: x509.CertificateBuilder, - private_key: PrivateKeyTypes, - hash_algorithm: hashes.HashAlgorithm | None, - rsa_padding: PKCS1v15 | PSS | None, - ecdsa_deterministic: bool | None, -) -> x509.Certificate: ... -def create_x509_csr( - builder: x509.CertificateSigningRequestBuilder, - private_key: PrivateKeyTypes, - hash_algorithm: hashes.HashAlgorithm | None, - rsa_padding: PKCS1v15 | PSS | None, - ecdsa_deterministic: bool | None, -) -> x509.CertificateSigningRequest: ... -def create_revoked_certificate( - builder: x509.RevokedCertificateBuilder, -) -> x509.RevokedCertificate: ... -def create_x509_crl( - builder: x509.CertificateRevocationListBuilder, - private_key: PrivateKeyTypes, - hash_algorithm: hashes.HashAlgorithm | None, - rsa_padding: PKCS1v15 | PSS | None, - ecdsa_deterministic: bool | None, -) -> x509.CertificateRevocationList: ... - -class Sct: - @property - def version(self) -> certificate_transparency.Version: ... - @property - def log_id(self) -> bytes: ... - @property - def timestamp(self) -> datetime.datetime: ... - @property - def entry_type(self) -> certificate_transparency.LogEntryType: ... - @property - def signature_hash_algorithm(self) -> hashes.HashAlgorithm: ... - @property - def signature_algorithm( - self, - ) -> certificate_transparency.SignatureAlgorithm: ... - @property - def signature(self) -> bytes: ... - @property - def extension_bytes(self) -> bytes: ... - -class Certificate: - def fingerprint(self, algorithm: hashes.HashAlgorithm) -> bytes: ... - @property - def serial_number(self) -> int: ... - @property - def version(self) -> x509.Version: ... - def public_key(self) -> CertificatePublicKeyTypes: ... - @property - def public_key_algorithm_oid(self) -> x509.ObjectIdentifier: ... - @property - def not_valid_before(self) -> datetime.datetime: ... - @property - def not_valid_before_utc(self) -> datetime.datetime: ... - @property - def not_valid_after(self) -> datetime.datetime: ... - @property - def not_valid_after_utc(self) -> datetime.datetime: ... - @property - def issuer(self) -> x509.Name: ... - @property - def subject(self) -> x509.Name: ... - @property - def signature_hash_algorithm( - self, - ) -> hashes.HashAlgorithm | None: ... - @property - def signature_algorithm_oid(self) -> x509.ObjectIdentifier: ... - @property - def signature_algorithm_parameters( - self, - ) -> PSS | PKCS1v15 | ECDSA | None: ... - @property - def extensions(self) -> x509.Extensions: ... - @property - def signature(self) -> bytes: ... - @property - def tbs_certificate_bytes(self) -> bytes: ... - @property - def tbs_precertificate_bytes(self) -> bytes: ... - def __eq__(self, other: object) -> bool: ... - def __hash__(self) -> int: ... - def public_bytes(self, encoding: serialization.Encoding) -> bytes: ... - def verify_directly_issued_by(self, issuer: Certificate) -> None: ... - -class RevokedCertificate: - @property - def serial_number(self) -> int: ... - @property - def revocation_date(self) -> datetime.datetime: ... - @property - def revocation_date_utc(self) -> datetime.datetime: ... - @property - def extensions(self) -> x509.Extensions: ... - -class CertificateRevocationList: - def public_bytes(self, encoding: serialization.Encoding) -> bytes: ... - def fingerprint(self, algorithm: hashes.HashAlgorithm) -> bytes: ... - def get_revoked_certificate_by_serial_number( - self, serial_number: int - ) -> x509.RevokedCertificate | None: ... - @property - def signature_hash_algorithm( - self, - ) -> hashes.HashAlgorithm | None: ... - @property - def signature_algorithm_oid(self) -> x509.ObjectIdentifier: ... - @property - def signature_algorithm_parameters( - self, - ) -> PSS | PKCS1v15 | ECDSA | None: ... - @property - def issuer(self) -> x509.Name: ... - @property - def next_update(self) -> datetime.datetime | None: ... - @property - def next_update_utc(self) -> datetime.datetime | None: ... - @property - def last_update(self) -> datetime.datetime: ... - @property - def last_update_utc(self) -> datetime.datetime: ... - @property - def extensions(self) -> x509.Extensions: ... - @property - def signature(self) -> bytes: ... - @property - def tbs_certlist_bytes(self) -> bytes: ... - def __eq__(self, other: object) -> bool: ... - def __len__(self) -> int: ... - @typing.overload - def __getitem__(self, idx: int) -> x509.RevokedCertificate: ... - @typing.overload - def __getitem__(self, idx: slice) -> list[x509.RevokedCertificate]: ... - def __iter__(self) -> Iterator[x509.RevokedCertificate]: ... - def is_signature_valid( - self, public_key: CertificateIssuerPublicKeyTypes - ) -> bool: ... - -class CertificateSigningRequest: - def __eq__(self, other: object) -> bool: ... - def __hash__(self) -> int: ... - def public_key(self) -> CertificatePublicKeyTypes: ... - @property - def subject(self) -> x509.Name: ... - @property - def signature_hash_algorithm( - self, - ) -> hashes.HashAlgorithm | None: ... - @property - def signature_algorithm_oid(self) -> x509.ObjectIdentifier: ... - @property - def signature_algorithm_parameters( - self, - ) -> PSS | PKCS1v15 | ECDSA | None: ... - @property - def extensions(self) -> x509.Extensions: ... - @property - def attributes(self) -> x509.Attributes: ... - def public_bytes(self, encoding: serialization.Encoding) -> bytes: ... - @property - def signature(self) -> bytes: ... - @property - def tbs_certrequest_bytes(self) -> bytes: ... - @property - def is_signature_valid(self) -> bool: ... - -class PolicyBuilder: - def time(self, time: datetime.datetime) -> PolicyBuilder: ... - def store(self, store: Store) -> PolicyBuilder: ... - def max_chain_depth(self, max_chain_depth: int) -> PolicyBuilder: ... - def extension_policies( - self, *, ca_policy: ExtensionPolicy, ee_policy: ExtensionPolicy - ) -> PolicyBuilder: ... - def build_client_verifier(self) -> ClientVerifier: ... - def build_server_verifier( - self, subject: x509.verification.Subject - ) -> ServerVerifier: ... - -class Policy: - @property - def max_chain_depth(self) -> int: ... - @property - def subject(self) -> x509.verification.Subject | None: ... - @property - def validation_time(self) -> datetime.datetime: ... - @property - def extended_key_usage(self) -> x509.ObjectIdentifier: ... - @property - def minimum_rsa_modulus(self) -> int: ... - -class Criticality: - CRITICAL: Criticality - AGNOSTIC: Criticality - NON_CRITICAL: Criticality - -T = typing.TypeVar("T", contravariant=True, bound=x509.ExtensionType) - -MaybeExtensionValidatorCallback = typing.Callable[ - [ - Policy, - x509.Certificate, - T | None, - ], - None, -] - -PresentExtensionValidatorCallback = typing.Callable[ - [Policy, x509.Certificate, T], - None, -] - -class ExtensionPolicy: - @staticmethod - def permit_all() -> ExtensionPolicy: ... - @staticmethod - def webpki_defaults_ca() -> ExtensionPolicy: ... - @staticmethod - def webpki_defaults_ee() -> ExtensionPolicy: ... - def require_not_present( - self, extension_type: type[x509.ExtensionType] - ) -> ExtensionPolicy: ... - def may_be_present( - self, - extension_type: type[T], - criticality: Criticality, - validator: MaybeExtensionValidatorCallback[T] | None, - ) -> ExtensionPolicy: ... - def require_present( - self, - extension_type: type[T], - criticality: Criticality, - validator: PresentExtensionValidatorCallback[T] | None, - ) -> ExtensionPolicy: ... - -class VerifiedClient: - @property - def subjects(self) -> list[x509.GeneralName] | None: ... - @property - def chain(self) -> list[x509.Certificate]: ... - -class ClientVerifier: - @property - def policy(self) -> Policy: ... - @property - def store(self) -> Store: ... - def verify( - self, - leaf: x509.Certificate, - intermediates: list[x509.Certificate], - ) -> VerifiedClient: ... - -class ServerVerifier: - @property - def policy(self) -> Policy: ... - @property - def store(self) -> Store: ... - def verify( - self, - leaf: x509.Certificate, - intermediates: list[x509.Certificate], - ) -> list[x509.Certificate]: ... - -class Store: - def __init__(self, certs: list[x509.Certificate]) -> None: ... - -class VerificationError(Exception): ... diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__init__.py deleted file mode 100644 index b509336..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 3e5c60ba7aabcfc92bac0c8b08366a1fcb881cf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmYjLK?=e!5KKW(1RvtT?m-a*5ntfN2ZY$JO=_Ej>{_iyf8*UR_zAB*!J8-3lMc)b zGlyZ+XfzZN{l~bxM}KwUA4v@BNa{t&#a4`y%}s=^{>kSG+SLdH%+#6cOAvZVu1yUqKeGOf^A9=>D_dSVnB1o64w+- z%ur60J{2hX(x*Q3sS6b7TYpIZgkSfm=s)N~+jB@tqD0b&Wr*fC*E8R_j*Mb)IR~GG ze;$1Q@2y%4%jM;_`CN|WSl-U{@+6zaE3T8_{*+X1u^p7NJksXMi3==qdXNp!EnnW6uF?MCfz&Q$U*$`WZU_ zRF2Tk*%yGec!AIGSw6?-`2t_$OMIEH@Ks*qCBDWV@O8eyH+h+Fu`hoplWlgWw*rWLwhzjr7HDp=Vxjzb_mU2gW}I05w$4BD}CXD|8C5;EYN( zHSLVn^tV)UpPF32cuw|Y5DxnGt6tF!)3)31J8Fm!tlC- zO4s<%GkjRzVV2X871!gAly-%hF0|mm4f};RxP2U-MZ1QKi;ZWM^YF+O3i-l+1-{&95Cr@? zG$kC!@|}<_@(@{w4C#nUt7F(5Nzpd5*EG4+XNFefTdKjKOG3s$G=4KS9Xo{vanksepyU_7#jn;|M zrnn2)i;n=Vj%d%2K6v*vACT>-PHI|SmkaXgbUTCr-!)yELR>(hv&q{_Baec0-WTA6pA{4^3g*y@LmWaS(%$a@qGhSNNRW=N#r}xo=|U zSWP=ehKKE<6r)fbP%ZlqLS?oXpC#xFsiaqZ#|+X(6@?jjSustVOfOpuo&H;;-FWkB z+G;|mJgKV3+DY|Pxebf}^le=YhJ<^r^dUw&Om>ZHKILK)ebngt-O%^~2TkexByMCK z@Zz5Fo^nIj1Ii5FAZ6@-CxD-LYmn{)H(0#!QJmPxWwNP#mPKt>j@hlpRE-fn;r8jO z79|*)z4cLIYew)ogbF%6Vci&DEJ0w4&+_`0wq*wGfz6FP zFiHqmGleT=Yb=@d!x;qi5~YRpG_9oD2MGca9R6jfb&Eq#>l)S_fptG&Gl9K~X7(m5 zWFt+MObeL_J#|P7gcyjGG)O_G8?*=Y^SE3ZzXgTU)5OjU4mC0PcN0XG(*(&RaxP4%%@(aS zo2LzhDsO8LQR@oXL?Mrc&1Ybr`UxpwFQaes|J1Q)pYM9yio_HaCX}q52Mg?}f(9-7EU83zkeV z;XpL{bBwK>dx#h)4veBvSK%HqCF*^IL&doswK|R~IGq&rFB1&nP2gjdxrGd(|A5!` z;2IHDN7-^EohUK+uQ8?`-b0iiy~AoRX-BwyFUSqqf+SNo5;QgaZ!u9G!TUj(OxDmR zRk(gBI;|;fc)TV%wRnXc^a4Mcp3)Is)yQsgMx$Omt81j3=xJ%EDf>e!4P(J8vX_`s zyU_IJIRq1(JWX^))99NEwWh;8KqJpH$DC-fVMmE!Xa`X-SUYPdsyW znCQMMPNWRSt+G5fMS2t*)N~FOb zU7S*Z2`2cpBlsyn;59zDKnuKj3cNcBym$yK_XXCa0!u=H6^OvpFED=!%v}Pby1;lU zFk%Ue3j#e-pf8a1T2no4pxIQ<0!g%KZwu1q;xBqG>)ZU7h-4cct23pA(h_{H1y=?D diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__pycache__/binding.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/__pycache__/binding.cpython-39.pyc deleted file mode 100644 index ae01576b38f629d413b45ab3136661ff94b3eb5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3714 zcmaJ@U31&U6$KU`NRbpp$zSnD71W)!Va6d7+v83>o=#L*b~LpmjU>loxEc%yEJaWt zK<_T4P(wX5^lPU-AjypM& z8b0}d)jC>L)4rFT=}!)w&oxcwKcW$6fgWjH-O+W~CJ}LndK-?R-lk)!ch1SFx8+#s zop0Ca(5`1u?2c)l~pYL1^F4JqlmEh{%4eU*}wA!^FWK3#$TJqvJ z5uON>n6IHgJN^*7P5hSSZCpoVsPRRi9qT9BkuFG} z5A|{G{7W;%H#g z*iZWMC^WDS+BCL39Jx)I9feKiv4J$ki0wzzi^F)=?)PlWpIzPN!t?j)_G-%>Bz@as z)b4X>?6W~nB)iP(wFmY=DBABWFWR1fG39So6xcKfIpQo=2!-9GtpqDF+Dn*_W1ijY z@7C>g>E}VnsojHfc(uZaVgtC$`)CNeEkuvsZ8UbVbH7=~p&Pw{?=_~~YA9=-c^Agm zs;h3?PGY;A9M~d}JF_I{`xGY+dENf#wO*?k%)+%e=X|e++oP@uv#SEZcAD0HNZIF%~BS_1++zn;_NoIJOiQ;1>rS z0BWXQAVen?d2Qv%k4z4}E{Z`9OVyX+!Qu5F^u=>7*bRG<3(ueL+yGd(8s6F2sTrvO zf75wCfeSKsyvU8cF6FF*<$Q_k$tRD7{3(=o(2xiZ^b`Gv47DL~i7-am5iovio@n>A zoyEVBBl9RHa+ozogf9+_V{4cjX(!0`7mFf4)JD3rJF(Ad}615p@~p{4#|jmQW& z{^G$Cu8bQd?JS^mBEw5H(=diRhHyr}3<5cKZe$)?WkOd^2d1K%dRES)^nVNDP1(xhF zho#cX&3+gK?i>5eF`1yh#WX*Uhh`Ra3*V|<)GMT{7xeRlEn?i4lhYpw&(9^X$dFUb z0ev{+3FscgPC)7g%?0K?janT^jTCMN_n?bXtXZV_CQQ4MwQ}`;QG1QJVSrH^(zS7rT>FFgGq%HFo3%OwozvVq@gV8R#?u)(`$(%wj z@47+ayRHfa=+B+1>ljs0vZY7A$0MB)ZALxGo~ii=zOdiPDVb(z$(LyCQt)t~;>JFf zb8kwY4O{t{%0_=c^kz(u#;wo`eH0He3am}OlDN# zOc1oaeQJ06kqA+#p*?yb)_Zr8Fa`jk2&;v$lo8C{PzBHKd7@pnH?kTp)q#)u84H1! z9@zUK6S!`D|l*{o&@)#uv}rjiu$kEInLtzg*eeg4{#dhp-B0T3YQ&*`idUs;ADm zG3&YGXuEO0tF%NqH!jwb8AyoRxN&EJC+@h~Po}0Yr|QEcIT5x7@7itR|NI&rS^>4; z)HEtcZeo(3%^dm3JT+$k##43|^J(rNjBnjcFK%qEFRyHEt#7(Zo6BFUZm&GObNklK z!+$>eWn~Ac&mQlQZCn3A<_oyHsDxNV_i0r7m86DNU#T>gNdw4k zj?^1)_9=QyR?pPR3QSr!@R$_3JVp5i9DODK>t54m2JD>jw0LwbP50_3@3g1vl>~II zpP9|1S-m-yW_6eKfhWa2N=knAf33&Zs84GECTU%vD&u=eI@x8G+zC=ZaFV3bLND@! zRJUn list[str]: - return [ - "SSL_CTX_set_cert_cb", - "SSL_set_cert_cb", - ] - - -def cryptography_has_ssl_st() -> list[str]: - return [ - "SSL_ST_BEFORE", - "SSL_ST_OK", - "SSL_ST_INIT", - "SSL_ST_RENEGOTIATE", - ] - - -def cryptography_has_tls_st() -> list[str]: - return [ - "TLS_ST_BEFORE", - "TLS_ST_OK", - ] - - -def cryptography_has_ssl_sigalgs() -> list[str]: - return [ - "SSL_CTX_set1_sigalgs_list", - ] - - -def cryptography_has_psk() -> list[str]: - return [ - "SSL_CTX_use_psk_identity_hint", - "SSL_CTX_set_psk_server_callback", - "SSL_CTX_set_psk_client_callback", - ] - - -def cryptography_has_psk_tlsv13() -> list[str]: - return [ - "SSL_CTX_set_psk_find_session_callback", - "SSL_CTX_set_psk_use_session_callback", - "Cryptography_SSL_SESSION_new", - "SSL_CIPHER_find", - "SSL_SESSION_set1_master_key", - "SSL_SESSION_set_cipher", - "SSL_SESSION_set_protocol_version", - ] - - -def cryptography_has_custom_ext() -> list[str]: - return [ - "SSL_CTX_add_client_custom_ext", - "SSL_CTX_add_server_custom_ext", - "SSL_extension_supported", - ] - - -def cryptography_has_tlsv13_functions() -> list[str]: - return [ - "SSL_CTX_set_ciphersuites", - ] - - -def cryptography_has_tlsv13_hs_functions() -> list[str]: - return [ - "SSL_VERIFY_POST_HANDSHAKE", - "SSL_verify_client_post_handshake", - "SSL_CTX_set_post_handshake_auth", - "SSL_set_post_handshake_auth", - "SSL_SESSION_get_max_early_data", - "SSL_write_early_data", - "SSL_read_early_data", - "SSL_CTX_set_max_early_data", - ] - - -def cryptography_has_ssl_verify_client_post_handshake() -> list[str]: - return [ - "SSL_verify_client_post_handshake", - ] - - -def cryptography_has_engine() -> list[str]: - return [ - "ENGINE_by_id", - "ENGINE_init", - "ENGINE_finish", - "ENGINE_get_default_RAND", - "ENGINE_set_default_RAND", - "ENGINE_unregister_RAND", - "ENGINE_ctrl_cmd", - "ENGINE_free", - "ENGINE_get_name", - "ENGINE_ctrl_cmd_string", - "ENGINE_load_builtin_engines", - "ENGINE_load_private_key", - "ENGINE_load_public_key", - "SSL_CTX_set_client_cert_engine", - ] - - -def cryptography_has_verified_chain() -> list[str]: - return [ - "SSL_get0_verified_chain", - ] - - -def cryptography_has_srtp() -> list[str]: - return [ - "SSL_CTX_set_tlsext_use_srtp", - "SSL_set_tlsext_use_srtp", - "SSL_get_selected_srtp_profile", - ] - - -def cryptography_has_dtls_get_data_mtu() -> list[str]: - return [ - "DTLS_get_data_mtu", - ] - - -def cryptography_has_ssl_cookie() -> list[str]: - return [ - "SSL_OP_COOKIE_EXCHANGE", - "DTLS1_COOKIE_LENGTH", - "DTLSv1_listen", - "SSL_CTX_set_cookie_generate_cb", - "SSL_CTX_set_cookie_verify_cb", - ] - - -def cryptography_has_prime_checks() -> list[str]: - return [ - "BN_prime_checks_for_size", - ] - - -def cryptography_has_unexpected_eof_while_reading() -> list[str]: - return ["SSL_R_UNEXPECTED_EOF_WHILE_READING"] - - -def cryptography_has_ssl_op_ignore_unexpected_eof() -> list[str]: - return [ - "SSL_OP_IGNORE_UNEXPECTED_EOF", - ] - - -def cryptography_has_get_extms_support() -> list[str]: - return ["SSL_get_extms_support"] - - -def cryptography_has_ssl_get0_group_name() -> list[str]: - return ["SSL_get0_group_name"] - - -# This is a mapping of -# {condition: function-returning-names-dependent-on-that-condition} so we can -# loop over them and delete unsupported names at runtime. It will be removed -# when cffi supports #if in cdef. We use functions instead of just a dict of -# lists so we can use coverage to measure which are used. -CONDITIONAL_NAMES = { - "Cryptography_HAS_SET_CERT_CB": cryptography_has_set_cert_cb, - "Cryptography_HAS_SSL_ST": cryptography_has_ssl_st, - "Cryptography_HAS_TLS_ST": cryptography_has_tls_st, - "Cryptography_HAS_SIGALGS": cryptography_has_ssl_sigalgs, - "Cryptography_HAS_PSK": cryptography_has_psk, - "Cryptography_HAS_PSK_TLSv1_3": cryptography_has_psk_tlsv13, - "Cryptography_HAS_CUSTOM_EXT": cryptography_has_custom_ext, - "Cryptography_HAS_TLSv1_3_FUNCTIONS": cryptography_has_tlsv13_functions, - "Cryptography_HAS_TLSv1_3_HS_FUNCTIONS": ( - cryptography_has_tlsv13_hs_functions - ), - "Cryptography_HAS_SSL_VERIFY_CLIENT_POST_HANDSHAKE": ( - cryptography_has_ssl_verify_client_post_handshake - ), - "Cryptography_HAS_ENGINE": cryptography_has_engine, - "Cryptography_HAS_VERIFIED_CHAIN": cryptography_has_verified_chain, - "Cryptography_HAS_SRTP": cryptography_has_srtp, - "Cryptography_HAS_DTLS_GET_DATA_MTU": cryptography_has_dtls_get_data_mtu, - "Cryptography_HAS_SSL_COOKIE": cryptography_has_ssl_cookie, - "Cryptography_HAS_PRIME_CHECKS": cryptography_has_prime_checks, - "Cryptography_HAS_UNEXPECTED_EOF_WHILE_READING": ( - cryptography_has_unexpected_eof_while_reading - ), - "Cryptography_HAS_SSL_OP_IGNORE_UNEXPECTED_EOF": ( - cryptography_has_ssl_op_ignore_unexpected_eof - ), - "Cryptography_HAS_GET_EXTMS_SUPPORT": cryptography_has_get_extms_support, - "Cryptography_HAS_SSL_GET0_GROUP_NAME": ( - cryptography_has_ssl_get0_group_name - ), -} diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/binding.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/binding.py deleted file mode 100644 index 6a0cafd..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/bindings/openssl/binding.py +++ /dev/null @@ -1,122 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import os -import sys -import threading -import types -import typing -import warnings -from collections.abc import Callable - -import cryptography -from cryptography.exceptions import InternalError -from cryptography.hazmat.bindings._rust import _openssl, openssl -from cryptography.hazmat.bindings.openssl._conditional import CONDITIONAL_NAMES - - -def _openssl_assert(ok: bool) -> None: - if not ok: - errors = openssl.capture_error_stack() - - raise InternalError( - "Unknown OpenSSL error. This error is commonly encountered when " - "another library is not cleaning up the OpenSSL error stack. If " - "you are using cryptography with another library that uses " - "OpenSSL try disabling it before reporting a bug. Otherwise " - "please file an issue at https://github.com/pyca/cryptography/" - "issues with information on how to reproduce " - f"this. ({errors!r})", - errors, - ) - - -def build_conditional_library( - lib: typing.Any, - conditional_names: dict[str, Callable[[], list[str]]], -) -> typing.Any: - conditional_lib = types.ModuleType("lib") - conditional_lib._original_lib = lib # type: ignore[attr-defined] - excluded_names = set() - for condition, names_cb in conditional_names.items(): - if not getattr(lib, condition): - excluded_names.update(names_cb()) - - for attr in dir(lib): - if attr not in excluded_names: - setattr(conditional_lib, attr, getattr(lib, attr)) - - return conditional_lib - - -class Binding: - """ - OpenSSL API wrapper. - """ - - lib: typing.ClassVar[typing.Any] = None - ffi: typing.Any = _openssl.ffi - _lib_loaded = False - _init_lock = threading.Lock() - - def __init__(self) -> None: - self._ensure_ffi_initialized() - - @classmethod - def _ensure_ffi_initialized(cls) -> None: - with cls._init_lock: - if not cls._lib_loaded: - cls.lib = build_conditional_library( - _openssl.lib, CONDITIONAL_NAMES - ) - cls._lib_loaded = True - - @classmethod - def init_static_locks(cls) -> None: - cls._ensure_ffi_initialized() - - -def _verify_package_version(version: str) -> None: - # Occasionally we run into situations where the version of the Python - # package does not match the version of the shared object that is loaded. - # This may occur in environments where multiple versions of cryptography - # are installed and available in the python path. To avoid errors cropping - # up later this code checks that the currently imported package and the - # shared object that were loaded have the same version and raise an - # ImportError if they do not - so_package_version = _openssl.ffi.string( - _openssl.lib.CRYPTOGRAPHY_PACKAGE_VERSION - ) - if version.encode("ascii") != so_package_version: - raise ImportError( - "The version of cryptography does not match the loaded " - "shared object. This can happen if you have multiple copies of " - "cryptography installed in your Python path. Please try creating " - "a new virtual environment to resolve this issue. " - f"Loaded python version: {version}, " - f"shared object version: {so_package_version}" - ) - - _openssl_assert( - _openssl.lib.OpenSSL_version_num() == openssl.openssl_version(), - ) - - -_verify_package_version(cryptography.__version__) - -Binding.init_static_locks() - -if ( - sys.platform == "win32" - and os.environ.get("PROCESSOR_ARCHITEW6432") is not None -): - warnings.warn( - "You are using cryptography on a 32-bit Python on a 64-bit Windows " - "Operating System. Cryptography will be significantly faster if you " - "switch to using a 64-bit Python.", - UserWarning, - stacklevel=2, - ) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/__init__.py deleted file mode 100644 index 41d7318..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 8e14efb9f13e3ab707ac47646057974e5fed8ef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmYk0u};G<5Qgov2vk&w*T_I_09C4l5Kq9u#&UAwYwb3%E&Gy^z7Y??JD{vg%xp|J zo%p1?|No`a=~v6;LS!yK%Kc~7uPOYe$l*x{nQpStLd!<9@>NQqix*MOzNgz#j@QaL z&x);g>A5V%1>&~jE)rs#Uc8Gq&vIVBCosMx*w|!_YEQ(#lo%Xs856~xBJ!KV5PeN4 zLDiG%p|P9QJ%oXccX!nql4ZILsy?V4C8*;N*zckWW&op3tzytrM+%k!(K^eBRT##r Qht}(^p~s6{=O>T&1JeUaYXATM diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py deleted file mode 100644 index 41d7318..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index a8555be70f70580d119e3647869b77f8e4b4c2fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 267 zcmYk0u}TCn5QdXgQBDqgjV;_MlmkJ;C$O=z8FI{Wg+^Z!2#!>^Xhg(#eU)Vt53Uvv0RRl>axGG7#9gpsZ24P&M>P(pt37*o)c zGc*JF0a~|ST|*q%27lGuKz2-*QR%(fQU;yI$YGmQv?Eyc+9?J@I#F~C+C@t#1ETYe V5t}$pXSZE2eM@&IrPfaw@dr*cO^^Tp diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__pycache__/algorithms.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/__pycache__/algorithms.cpython-39.pyc deleted file mode 100644 index 2e28261aca90bf23cec533c14350281a3a0fc838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4855 zcmcgwOLOBy5Y|YtEjza3gzPSl0>pa_yEgk^AG|6dS*X3FD6()6MG3_-NtBgkGg1=b z+O2}ha-a%|16K|dxBLq@z>moSKiYU_dS==e1PqiZ^*>NA5vx9AkRC8yN2 z9E)l1X}rLT_cUGcFd>#A@p9Mdw_-XKu@Hy~vif@2F#ZQAjt@s(PuV~FP2eiT_OQyUq?8RQ}_rhoy zd|@m0gQ#gFbMFMb&h16Nzaiv8u-=n?ywOdjk9IWNZ6W=&UH7)wbt8WuIyCY4le_Ot z^a{;kT!YJ)V+eB{4*ZGjF{i){ZvMcOn@k68A_svdx0sMydsh)WI8 zhlXU5}o+KlW1!n=B z3X)AU0Eq(Rwl2@bY*XiYY;2m8Io}!#vODYy=o#%U3tPi)3;5Pi-xiO4%dwGtr9Y<8 z_i-T)`yz#Xv$QOqg2uu3D}J~hi1YBfov+0{d+j`>l#Sk~Y5S4QMPG`J7YlBCA-AKg ze!nMUd&ds~dsWy{bbH&7`JwIEYg-6D>I;MyiI)9gB9>K&x+Q1>l`Vu zUm4M6>ww}EJ5?o$kuQPR7Qq2|aPZx&o!(JPFI*YT{P0Zu`1Na_G+WJ*v|(3b?RYYT zAEU&imNd}m)R%If-3%{Z9qloa68K0`sc5GVj|dfwRT0O!f%mUsseXuSu)%B&RG#_r zahmf9kOxV6`6P{cn#eOmR8oyHi|o0IH_P!cy;+(r?^on=H1v5QFA#YVB&n=YZBgYy zzC^vWm8(U{Cbdq?=9eKQt0GDs%4U_%r;yJi>EJ!|(5^P0?d^y289{C&rkf?@a??C& z>4`>M#H?@ORSUP6B>tFc%G`NUy@W=tT5}9kK5QkT$aTuxJpK;`z}OOQ#UyFzQ$K{Pg~D+4AE?MJyzJ=2-vDqn+eY_l2dIJDa=)5uZw z4-q2CF@*Ai=i87TPeIPs>FB8v5y^&%KCI=a>flk)hqb(d#s1_x=KJRJR8CE!ph?*oq4F=&GZ9)p7V|*^ z{TUwgxIe@{F;`Fi1y5G>#&r!jsE~%9?&_ZD@2jt>dg7IpC5Em2wZHqO#n?A87Mq90 zL&ms%jT6Zv&so7E&S~!CPT@wbox8bL_>o_9zSCTKR!Q|LGwIVZGg+Kx`}Uoe zDlru_=S7mLWKU#c5tmZzsfox{xnt6Vj$LeXmo{)!v4~3+IoMsvrSpkPS9%}4$WuPr zKH5ax`@o}?YDa+#kZPxKpFiIG(Y4G5o1@`S!IU>^*&oEj*fL9;1#p@Z{v(of9Vdo; z=8_-qFAir1{D28$@`6pBE$HCx)CCuZsCVex_QWWiXM3ty7srB4oyOBDAI`pJa0Q*pJPM}81#O|=(r&sp^x-gAN0PbOU-J>G;io(=&){6|It zQH5oCtkAepO?DMD+$njBybANvS zo9kuVxI~8>QJ>aNM12og-aT>oZ<0&%+FBvZ6Vd+`;T%@gMT_#U0l0!E+@MpA1c27J z`b$)U!x7#DSc5=7QFrmWncaxj7ncUJ8)#5NR^YE;jJFO|vC=?#*!r}!1r%Z+n1#fe ZCq@(8pOyXtDrift>vVaq)m!bY{si=_d4vD} diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py deleted file mode 100644 index 703c8e4..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py +++ /dev/null @@ -1,142 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import warnings - -from cryptography import utils -from cryptography.hazmat.primitives._cipheralgorithm import ( - BlockCipherAlgorithm, - CipherAlgorithm, - _verify_key_size, -) - - -class ARC4(CipherAlgorithm): - name = "RC4" - key_sizes = frozenset([40, 56, 64, 80, 128, 160, 192, 256]) - - def __init__(self, key: bytes): - self.key = _verify_key_size(self, key) - - @property - def key_size(self) -> int: - return len(self.key) * 8 - - -class TripleDES(BlockCipherAlgorithm): - name = "3DES" - block_size = 64 - key_sizes = frozenset([64, 128, 192]) - - def __init__(self, key: bytes): - if len(key) == 8: - warnings.warn( - "Single-key TripleDES (8-byte keys) is deprecated and " - "support will be removed in a future release. Use 24-byte " - "keys instead (e.g., key + key + key).", - utils.DeprecatedIn47, - stacklevel=2, - ) - key = key + key + key - elif len(key) == 16: - warnings.warn( - "Two-key TripleDES (16-byte keys) is deprecated and " - "support will be removed in a future release. Use 24-byte " - "keys instead (e.g., key + key[:8]).", - utils.DeprecatedIn47, - stacklevel=2, - ) - key = key + key[:8] - self.key = _verify_key_size(self, key) - - @property - def key_size(self) -> int: - return len(self.key) * 8 - - -# Not actually supported, marker for tests -class _DES: - key_size = 64 - - -class Blowfish(BlockCipherAlgorithm): - name = "Blowfish" - block_size = 64 - key_sizes = frozenset(range(32, 449, 8)) - - def __init__(self, key: bytes): - self.key = _verify_key_size(self, key) - - @property - def key_size(self) -> int: - return len(self.key) * 8 - - -class CAST5(BlockCipherAlgorithm): - name = "CAST5" - block_size = 64 - key_sizes = frozenset(range(40, 129, 8)) - - def __init__(self, key: bytes): - self.key = _verify_key_size(self, key) - - @property - def key_size(self) -> int: - return len(self.key) * 8 - - -class SEED(BlockCipherAlgorithm): - name = "SEED" - block_size = 128 - key_sizes = frozenset([128]) - - def __init__(self, key: bytes): - self.key = _verify_key_size(self, key) - - @property - def key_size(self) -> int: - return len(self.key) * 8 - - -class IDEA(BlockCipherAlgorithm): - name = "IDEA" - block_size = 64 - key_sizes = frozenset([128]) - - def __init__(self, key: bytes): - self.key = _verify_key_size(self, key) - - @property - def key_size(self) -> int: - return len(self.key) * 8 - - -class Camellia(BlockCipherAlgorithm): - name = "camellia" - block_size = 128 - key_sizes = frozenset([128, 192, 256]) - - def __init__(self, key: bytes): - self.key = _verify_key_size(self, key) - - @property - def key_size(self) -> int: - return len(self.key) * 8 - - -# This class only allows RC2 with a 128-bit key. No support for -# effective key bits or other key sizes is provided. -class RC2(BlockCipherAlgorithm): - name = "RC2" - block_size = 64 - key_sizes = frozenset([128]) - - def __init__(self, key: bytes): - self.key = _verify_key_size(self, key) - - @property - def key_size(self) -> int: - return len(self.key) * 8 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/modes.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/modes.py deleted file mode 100644 index 1786bb0..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/decrepit/ciphers/modes.py +++ /dev/null @@ -1,53 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography import utils -from cryptography.hazmat.primitives._modes import ( - ModeWithInitializationVector, - _check_iv_and_key_length, -) - - -class OFB(ModeWithInitializationVector): - name = "OFB" - - def __init__(self, initialization_vector: utils.Buffer): - utils._check_byteslike("initialization_vector", initialization_vector) - self._initialization_vector = initialization_vector - - @property - def initialization_vector(self) -> utils.Buffer: - return self._initialization_vector - - validate_for_algorithm = _check_iv_and_key_length - - -class CFB(ModeWithInitializationVector): - name = "CFB" - - def __init__(self, initialization_vector: utils.Buffer): - utils._check_byteslike("initialization_vector", initialization_vector) - self._initialization_vector = initialization_vector - - @property - def initialization_vector(self) -> utils.Buffer: - return self._initialization_vector - - validate_for_algorithm = _check_iv_and_key_length - - -class CFB8(ModeWithInitializationVector): - name = "CFB8" - - def __init__(self, initialization_vector: utils.Buffer): - utils._check_byteslike("initialization_vector", initialization_vector) - self._initialization_vector = initialization_vector - - @property - def initialization_vector(self) -> utils.Buffer: - return self._initialization_vector - - validate_for_algorithm = _check_iv_and_key_length diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__init__.py deleted file mode 100644 index b509336..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index b78e5f956886082d52b733a7d33efe729160cfc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmYjLK?=e!5KKW(1Rv6a-Gd?sBEGJ~L*D&@pYZAvym>M`>A=h| zGnWyQ$(Th9A8CD${_4X&k{C9Teh{T(JC-Kf8*_dAlg|~TX%TYezL@|yia5_~c#c-BDUS`V`&aKs_62{DJzW3* diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/_asymmetric.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/_asymmetric.cpython-39.pyc deleted file mode 100644 index 817ed14a67aee4259787e9dd4f5fa456432c4383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmZWn&5qMB5VoDP&6e#-NQiS(aUjwX3xSZ35TaCw1EN}~w_GeYo;E4@TiY#UFC3OD zZ@>%iAiPAboOlIJjI&Fr#7MS3Pdwkud=ojDj0xK4N3^}i2>IzQ$2P#rD?+F_N1%wJ z1u1Dlsl%*b342SFr~EHO`M|cG8hrH4j7(uQr`$tj1hJ4R)uilpdvU z*sZy1!$+VfvaqW+PE{^kTW3p5yUuzI;55;zR7> zyX(<6P^|S3$@}g1XP(t1@KtWIk8%rOxdmf+1#2q|=sjp*KUJd9bqdDtcn{T{7y0Vh zQ{J>TtE(sRb8d1Aj~bbNkQ*>O)oo+zjh0Q;@=RWp((*>p&fr0ytpa&rTdTi>7KG+_y=-)w!{Dc diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/_cipheralgorithm.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/_cipheralgorithm.cpython-39.pyc deleted file mode 100644 index 874bc210400960873120130cc19116d9a6417c63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcma)7TW{k;6rS-dPMTgQL3@VGyOKjBxN_Lawdfiupfq3W(WQI2QMjAy?2&iRhn=4OLntNrDl{bLjI zw;rrF^pVdAp)$e_C!A(vNFz#h-^h%}z^9p+Lo2c<`GRnZ+n0pfV4T_9`PGaZ^wqeF zJ{Oz|Gpcc$*YVeQZt@M@ytE>h8&8S9`BI!o%$wbetw-v5u z=mio{P9g(Lu<%^Ujpvk`+`6Cc#C%A;oE86^Kv%S57kel zH!L`K4N4yXLkK&m?El2h z092?zsxXJHiY15%h*!u!Auf|3RrV$NFEXbbd$*;ZE+ zGsq>V@6%lUa4Yf-R|I^^vXpxRn0hjuf%LkCm=m~y;-$IQNtIl^(w;L_U(z)nZs4%2 z<3@3{(H$Hvao@X+d$p=G5%R4Nf44gRSsyB_UeQIQP+{+Y4*XaG_n7opj+hnnKrFE@ zGU4H)Pxrk?pB$_w!0RvLE@8g6c9*-ayGz@zmu?*Eki>D>h-1vaai;stIR0_Wvc-&x zSu+BmrlrX`Nx8*3n7u4fL%_u0qN!Qk)Mi_oRZd=!EVKypq})a0QiED_*S@mVJnFlS zJF+BW@(mgfaEGPFzd>bz$&Et-7T9Nw);X#dtIbl?yoSni%hqvLB!g=_ylPhEBsd;- zyC6yvxf5HsyKvClD#Bmg7-8mh^l5Jl>%rrF4?}yqs5YwoswDLh+A>Gqzv)uJ)!Mf2 z3av%)mNuICayyRKN@^U7xAjy@n|HLiugy&X)Y|wE|58sjsB7rp3GEek(fDRrU#U;r z)9xCYq^bhg(M|U?vsG0*#*QL?P)^V3p9Uq$ILGSDjTSj4XXb>8C(7dHmG?LNn&6C$ zPy2WKg8qW#rD#7bnztkwa0 z(i_5UpP=CZc#yt?ZhOTmpxZk98iCO?ZBt=pkZES^Y%^!))O#k#Hw$*5S+t8p z`$c0}mV2$S9M?C-SpHALE&*0xMZk)@)JIKw9MCaV0<@GuCjcF16M#;n&=Y{3V3UAO zrqD^2V<*`Zo8C28na#X5?USs?X8Xt~b{dc=c7~l*v(D|BY>u4=Y#L_muls^s0Hn1D7K8Oj__EPV^3G%K#xNIW zECrFbS@T;BE`~Es90EK%DE(yMJ||5qUh0tJW3|x2l1^dh%wg{I@N~TZMw4B5`NQ{{uT^7c-7cybrKT<;8SpwScgV4 zx&%ad`=Ecp2vQEvPcs%8Qz-eyA*ux`NXtmnni3qi=OF0ap?z*N|s% z0$!8ZEjRF)E4i~431_hX85rwPpm)zH3P#VXSMp%Y4)WtTNzp+j+X41Vj`O_j2K|vd zXsgAA>?DS}>LnBIDj1CGNw{qzVqy|+Rz7$=We|8rk%#6a{KpuS@y(=7*Wr;njq>KqE%NO_SP)71`m!C}pcak#)?mChX8(dq3t4>R|T zdf{UtS|gX&D>*TPhs|Ph3Y*i|prMGf*nEM_z>9l5rM@{B_!9nO%o;uQ3B-;?TjTqp zti0gvrZ^A#e!5nM0qi}kNZjsow2)Cde1~%PL&@}kt6FOOXj&;sG>X;>Fz_vIpQ079 z3b@+thnpll5%jmO+gI)=_dSCfsi0z{QrgG_jCZVI!9t<4 zO*Wut*)+u*^q@N0)Ww|CnXyA&LEQvl->kpGlx-V}%TKy@9)>}OUR(I#GQD8da3Chx>5&qCUcUI4L!Kn*KZ$x|`xJj`-pzspr(ON!4h-Y*Lg2{8?~Ny)5o z@QmYOJ>a-Jc5r3D!*$tMhM6&@K8=(i=js26Z*VPAa-iBU06MueQ|rEAnC8LTB%wyie!R_E4Z7Aze7v&!vs1hO=-%>UfeA!h#s)bCdJl0i%nZtu zru*EgLQ_XH^tu>g2w2CL7tHhjE5 z^(jykRh!tQbnP!tJo{7{viM7nx73H*P!;xpF9xgk#b6D;7%Zo!{z1Lm6H|R5BCDk5^%9vRliBj* OY@zozm7B_!OaB8(iEx+z diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/_serialization.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/_serialization.cpython-39.pyc deleted file mode 100644 index f62b08516174126aa9622c960e9d75475f31fd88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4087 zcmbVP>uwvz72eq!mlSoEWyh|ab!sR|_0;fYp_$=TXsSX#n&Y#t4R0R0IX(~F zyqL$B1;`705%Qvv7a=e4Wys5?y0-*rh2Md6NA)gqeNU^c{!II;v3w?o<0K2RFp1M9 zWUH5jQ3}S{iCYN|<3sTCyMYWkA`|kPM0SDwH&22v3icy0Sz2!G z_u+0ra~Bp~C6c$u{OBQ`tZb8&Przi_kY(&tm#djRWT%X?V_iPV0LoMLBO9`z=9^rD zO`|CZ!RL>6FXnYSy)<+8g}de^((NQtxXN}NV5@|HZkh#gOUPxsl^cGxKVAC=62u6j)V^ zmeBDb+9*aOUkl6lLGB$;;pOyBDe85h*_CW&2KWR2uo(uIJA-qg~JUM2D3R>AD)(=MT*jqJ!sW4{m*_2AZB*f0 z{lBIOcNcCZ`gZWy`&~VrttiI?@X>P#?EjZv0q!Bn-mEqzFq8Ih{Mrcz7Qu*e0 zVBUQ<$dFQxECpu*cadF;*K|KIi@SongGp+JY~W8mBl4USc%9zkORp zc5rFzI7P@0NW9`tYoAILRnL?vd2wSHrvqmGXYlduRxZk1UCmK*ZoETW-imy2c@2|$ z1syTUb17X29191A>F4+778dbakks2kyY$eB-Js%62%0MX`l#%q2|)f&9})8(r>5uC37b z&p{8D2z>uY+IemS`z^0J{gENbGu}tjs(SI=QQr?^`bJFazQp}k(g%j53rGI+=zp4iELSM1y*? z=&~}a(`S^=zhX*`rxT`>_RMpwT(Fropqvv^x_!9cKIY45Md`lxy#-2b{8pY;b~Ii$ zmYH@eTJ|QHFLqqjTs5wsws+pn;^8_<`X884%7mb_Oe@JMn}&;bWV0}S>H9!hErIN~ zYhPIh;E4z4iGsbS4(tGy`h%jz>I$4A#Qtum{08ZguqJnQv(#gZNUYA%0p#(rn#ww1|w$ruk06EMv1fsK62 zdB$Q8TVaZ{O0)P{n58-TQf><)-ms?nldCj5-qp@|(qz30XK~Ta1R<8K_d`=et|M>b z5`lK;I+36Jw~RCQtIYi%0bI8Rgm^~bJ_*Bb_-9VVxAHpOe$UL}?CPGbwKH{F zkGnv13-y6@(=6i32I~T8*8vu(YP|Dyp5Qg2$5{5G?&3-3$4Mh7V=o|3BXE)OaGAEB z43E?C_mk}X2(q=I|DZ1cNT!)cIyfg40QZ23J~}m_?;r%Z*@N55!M0DI$Z4kDyT_Yn zGFXB~lkVQ>L?b(#C-N7lr+${bz8W>j3GHaf?sGVamzpL;c7)9|$LcVVg7^9NLT--n wQ(g%?NvJ8~N~!Z*5*3ufEG6c=L+~)dt!l}DvY#h9Cp54$Z6Trt<4mcwaE(2fYS)SWSRL+9)9=ih0m56f=ocGyPaIVTe=Yb3C8t^rVF93hQ zt^;3}*aW`8ioivQFEZ`9QYdZF>J`*r#CF}5Z~IQm^~%8MR-3z?*FZ6Kx3j#=MPWM7 zpWdGj63-tk-3$!SIcs+IR z#}97K-j<_2elQE3{`~1&kiPq539#BLc)`qr*FJZdU2X8sI)1z3KkT?Qnn;j%WP9~s zjObEhr6nA{-V8BfcT|?^10`iT)ymE9v3gUu>9Aq)fTN9_qE#j(Nt66Pn~g&n_Xn2pEinoh%x$2u4rYQ`?n|wd!V}v-!p>w_JWG z)qlB7b#&&!wHs!&(W$8Z%gi_Io8QV@6iS06Lh6XGk87M8pv~n248Q z$FRF|;uKAWLW4L9awuoH-(TV-bDPoO>$Y#cavJa)POHt}L zp0}SMQBfc*_FD)FR6&9qy`TjNX8X1{M-!178U^}Md01py>`&zTVRV6?(sqR-ymXk< z9(xol(dw+!Wfgh&&PfzBVM2l^5gGV}+`Fkx8#?ias0t^dg)yc#k+3>Q%4l#X>p$x& z{m{W4MN9~lCe6&q%%<%!1RVQ}LzfH8_;=Py5P0liHcK z^q|NZurU0G&J;|fz21wSwT=)R@hqC$PVTuW{kE|={ZH7s@zh3~B~MT_kkR}xIGBv}FxB`H#<#wlO7Z*C!HSGE>G%A2Vj3LPe%(nuViM+F1X z6vm|DkySf}&fP3jLoRp&dEyquyse*rl*Mh(p~j(3Yxv??5bwxZ(25VVm|xg3!4Tg9 z*+&cN^f|t`7Q{QU79;2!q$pXNy(K;d5Fdf;qXBhzg)goF@s6y)C_0B4%rA&<1019Q zb@(y9xCX>KvIb-5EH%I#Ve3PHgI0k$Y~YJ)K)fSsFpkbr19+sI{y`d0ho9}xfOtpH zK*x4Xh%`EP4fw$v?Fi`!`#1r${>2XQ#5=NhBPKp_gMGwP>tF2x_cz=Itsq>M)lPV&71T!h70RY z)i=1pt|=n#>r4;v8^ua6<+-w%D0k1tE-q%XgWD03M>{<8R=C)rld^kdXd|=T!p#qt zI(a~%@n$l}I-cWtzU|hy)H%q!Sa0(OLbODX{h{6HMCDN{HsofM!pZ!8aK_W|PIm{# zb$rYEEs#g{R@AI&Xa>IS1nw>J;h@-SbwD0X=hqu$mFBLNVb4dv!!j6Y=-;8Tmo`rI zCB^kN#1$G~ki+B&${Wh}s8k@bV^)LAh1U2t_~fkQ0jrH?G*zzsJ8>$y7)4HnH-gZq z#1feQKbI1BF`T$h0*|_;i=2( z^q`C*OvsUxYvU=z461vl4sikkdJf@*4k439=@pky`9C`Z4L95&=4QnYNWxy8@K00@ z@dWRkc*4I(*mh6w;<028PY74}8BOCkkwcshWb(h0v?1$Fb-UL4u<_?OI#+bBId`bM zpIZN$)S$yNx(5=kkf-OoeB;p!KB_DqQE`~3_#j4{nJi%g31d-bK?3*VP;dA1u3ycnjJ?%sQf*Sqk=jNZg1n$mE4P;*n+uxxu#+M% q?u0L!pHK&H0c2D&v{4oG^wiAM8AHu#hCY?b4gEKXA8ICY6aNJSbSen| diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/hmac.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/hmac.cpython-39.pyc deleted file mode 100644 index 6b0a5f31595c0682c02aab41ea1cc3bc3ce2aa5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479 zcmZvYyH3L}6o&0IO>f~97}z=x4V~pd4hXq^knl(JiYchW}0?mDesoFbReaRd^_KpyG={BaH=ggS*acyMcGW7g*F9d(k+o(5YN+q z@^^K<`(Lefy3wRpfG+lxZXl(qYbm?9Y}DNK!1zl`VKKg>`ULM|{bo|5L zpW=SbrK~NtqL#*`QLR84Q>Jkro?V=s_oK`6cMca<{j;n0PF@|Kd^|Wh+CRP4qU9DY zq3fUi=QOKQtp6JOFAtX2hbPOOiYG(GgYi%>zG;Mo59yule1rn)|UUDbJ0!W-YZdF+q`Nf6_I GcJK>k*`<8| diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/keywrap.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/keywrap.cpython-39.pyc deleted file mode 100644 index 9a4baec205be6a09965e1bc0d9eabf09779cddca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4761 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 str: - """ - A string naming this padding (e.g. "PSS", "PKCS1"). - """ diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py deleted file mode 100644 index 305a9fd..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py +++ /dev/null @@ -1,60 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography import utils - -# This exists to break an import cycle. It is normally accessible from the -# ciphers module. - - -class CipherAlgorithm(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def name(self) -> str: - """ - A string naming this mode (e.g. "AES", "Camellia"). - """ - - @property - @abc.abstractmethod - def key_sizes(self) -> frozenset[int]: - """ - Valid key sizes for this algorithm in bits - """ - - @property - @abc.abstractmethod - def key_size(self) -> int: - """ - The size of the key being used as an integer in bits (e.g. 128, 256). - """ - - -class BlockCipherAlgorithm(CipherAlgorithm): - key: utils.Buffer - - @property - @abc.abstractmethod - def block_size(self) -> int: - """ - The size of a block as an integer in bits (e.g. 64, 128). - """ - - -def _verify_key_size( - algorithm: CipherAlgorithm, key: utils.Buffer -) -> utils.Buffer: - # Verify that the key is instance of bytes - utils._check_byteslike("key", key) - - # Verify that the key size matches the expected key size - if len(key) * 8 not in algorithm.key_sizes: - raise ValueError( - f"Invalid key size ({len(key) * 8}) for {algorithm.name}." - ) - return key diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_modes.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_modes.py deleted file mode 100644 index deae8bc..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_modes.py +++ /dev/null @@ -1,105 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography import utils -from cryptography.exceptions import UnsupportedAlgorithm, _Reasons -from cryptography.hazmat.primitives._cipheralgorithm import ( - BlockCipherAlgorithm, - CipherAlgorithm, -) - - -class Mode(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def name(self) -> str: - """ - A string naming this mode (e.g. "ECB", "CBC"). - """ - - @abc.abstractmethod - def validate_for_algorithm(self, algorithm: CipherAlgorithm) -> None: - """ - Checks that all the necessary invariants of this (mode, algorithm) - combination are met. - """ - - -class ModeWithInitializationVector(Mode, metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def initialization_vector(self) -> utils.Buffer: - """ - The value of the initialization vector for this mode as bytes. - """ - - -class ModeWithTweak(Mode, metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def tweak(self) -> utils.Buffer: - """ - The value of the tweak for this mode as bytes. - """ - - -class ModeWithNonce(Mode, metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def nonce(self) -> utils.Buffer: - """ - The value of the nonce for this mode as bytes. - """ - - -class ModeWithAuthenticationTag(Mode, metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def tag(self) -> bytes | None: - """ - The value of the tag supplied to the constructor of this mode. - """ - - -def _check_aes_key_length(self: Mode, algorithm: CipherAlgorithm) -> None: - if algorithm.key_size > 256 and algorithm.name == "AES": - raise ValueError( - "Only 128, 192, and 256 bit keys are allowed for this AES mode" - ) - - -def _check_iv_length( - self: ModeWithInitializationVector, algorithm: BlockCipherAlgorithm -) -> None: - iv_len = len(self.initialization_vector) - if iv_len * 8 != algorithm.block_size: - raise ValueError(f"Invalid IV size ({iv_len}) for {self.name}.") - - -def _check_nonce_length( - nonce: utils.Buffer, name: str, algorithm: CipherAlgorithm -) -> None: - if not isinstance(algorithm, BlockCipherAlgorithm): - raise UnsupportedAlgorithm( - f"{name} requires a block cipher algorithm", - _Reasons.UNSUPPORTED_CIPHER, - ) - if len(nonce) * 8 != algorithm.block_size: - raise ValueError(f"Invalid nonce size ({len(nonce)}) for {name}.") - - -def _check_iv_and_key_length( - self: ModeWithInitializationVector, algorithm: CipherAlgorithm -) -> None: - if not isinstance(algorithm, BlockCipherAlgorithm): - raise UnsupportedAlgorithm( - f"{self} requires a block cipher algorithm", - _Reasons.UNSUPPORTED_CIPHER, - ) - _check_aes_key_length(self, algorithm) - _check_iv_length(self, algorithm) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_serialization.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_serialization.py deleted file mode 100644 index 9c3c474..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/_serialization.py +++ /dev/null @@ -1,136 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography import utils -from cryptography.hazmat.bindings._rust import Encoding as Encoding -from cryptography.hazmat.bindings._rust import ( - ParameterFormat as ParameterFormat, -) -from cryptography.hazmat.bindings._rust import PrivateFormat as PrivateFormat -from cryptography.hazmat.bindings._rust import PublicFormat as PublicFormat -from cryptography.hazmat.primitives.hashes import HashAlgorithm - -# This exists to break an import cycle. These classes are normally accessible -# from the serialization module. - - -class PBES(utils.Enum): - PBESv1SHA1And3KeyTripleDESCBC = "PBESv1 using SHA1 and 3-Key TripleDES" - PBESv2SHA256AndAES256CBC = "PBESv2 using SHA256 PBKDF2 and AES256 CBC" - - -class KeySerializationEncryption(metaclass=abc.ABCMeta): - pass - - -class BestAvailableEncryption(KeySerializationEncryption): - def __init__(self, password: bytes): - if not isinstance(password, bytes) or len(password) == 0: - raise ValueError("Password must be 1 or more bytes.") - - self.password = password - - -class NoEncryption(KeySerializationEncryption): - pass - - -class KeySerializationEncryptionBuilder: - def __init__( - self, - format: PrivateFormat, - *, - _kdf_rounds: int | None = None, - _hmac_hash: HashAlgorithm | None = None, - _key_cert_algorithm: PBES | None = None, - ) -> None: - self._format = format - - self._kdf_rounds = _kdf_rounds - self._hmac_hash = _hmac_hash - self._key_cert_algorithm = _key_cert_algorithm - - def kdf_rounds(self, rounds: int) -> KeySerializationEncryptionBuilder: - if self._kdf_rounds is not None: - raise ValueError("kdf_rounds already set") - - if not isinstance(rounds, int): - raise TypeError("kdf_rounds must be an integer") - - if rounds < 1: - raise ValueError("kdf_rounds must be a positive integer") - - return KeySerializationEncryptionBuilder( - self._format, - _kdf_rounds=rounds, - _hmac_hash=self._hmac_hash, - _key_cert_algorithm=self._key_cert_algorithm, - ) - - def hmac_hash( - self, algorithm: HashAlgorithm - ) -> KeySerializationEncryptionBuilder: - if self._format is not PrivateFormat.PKCS12: - raise TypeError( - "hmac_hash only supported with PrivateFormat.PKCS12" - ) - - if self._hmac_hash is not None: - raise ValueError("hmac_hash already set") - return KeySerializationEncryptionBuilder( - self._format, - _kdf_rounds=self._kdf_rounds, - _hmac_hash=algorithm, - _key_cert_algorithm=self._key_cert_algorithm, - ) - - def key_cert_algorithm( - self, algorithm: PBES - ) -> KeySerializationEncryptionBuilder: - if self._format is not PrivateFormat.PKCS12: - raise TypeError( - "key_cert_algorithm only supported with PrivateFormat.PKCS12" - ) - if self._key_cert_algorithm is not None: - raise ValueError("key_cert_algorithm already set") - return KeySerializationEncryptionBuilder( - self._format, - _kdf_rounds=self._kdf_rounds, - _hmac_hash=self._hmac_hash, - _key_cert_algorithm=algorithm, - ) - - def build(self, password: bytes) -> KeySerializationEncryption: - if not isinstance(password, bytes) or len(password) == 0: - raise ValueError("Password must be 1 or more bytes.") - - return _KeySerializationEncryption( - self._format, - password, - kdf_rounds=self._kdf_rounds, - hmac_hash=self._hmac_hash, - key_cert_algorithm=self._key_cert_algorithm, - ) - - -class _KeySerializationEncryption(KeySerializationEncryption): - def __init__( - self, - format: PrivateFormat, - password: bytes, - *, - kdf_rounds: int | None, - hmac_hash: HashAlgorithm | None, - key_cert_algorithm: PBES | None, - ): - self._format = format - self.password = password - - self._kdf_rounds = kdf_rounds - self._hmac_hash = hmac_hash - self._key_cert_algorithm = key_cert_algorithm diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py deleted file mode 100644 index b509336..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 5eb17ae9c3c90a1c608d943910937e1cd77dfd68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmYjLJBk896l_6o5j=>2^8!T>L_C4X9-wK*r~P#LL%+AP+k1gM%jRCeOPG2DGb4K< zEvPE0Dk(D>4OPM5GCrP*-@5RQUJ2_$?ibmqPc`ms{#EMgmpuN!28XaEw%_K6C?LoJ z9`~XdQ;SKbE7U#amXJw|>|ro7Rso3RoGe z23EDqYKQMwyL>0H+DWYHtN~Vy%xaJCSslKYSnZ(|(>_+Z&Hv-OXH%b$^Nk;?4fIg(@_{@yEfVK%kWu5mj>!Wi8M$#o89g7-t zN8*<+`@>+&`vXr7KXXnw5Btzx*!THyh|xOZ!VW+8?TH9nE@i)W#{IMY$Q#^$y+4_S z!@z&7_n1MZSU{C8!*p5nI9HjWQ*{AAi%Mx zJea|R&r6ZPlb=MDV|pbF7~CzP3(1A;bu03hEXMz$Wt3((ZZl0g&P+#|G-7UD zXd%u^q5<8D9TdALvNaM-c#PUve>Qb+1C()qD)XC50V)_qyScYV)A0ZjaHB-)uS|zYF$gpi6ipRF2x^0gGHXUKRY1^Mp zol)|p3j)25_SW zeL3#PkJxkS>K0gLDlB5W-pjFKxC> zwl&i4uwAzIRAU{sPue-h$M7j&YoUm35EldGQu?IRL7;?yZ-S6w563E?Vl(lWAn`pgNFniH&9ulUs>C@E z>4P8`b+xD*fDj8<`0g z;Y?gd9g?UpQQSuH2NcLmqKo1s6o^Z?)mzZUEqL)V{L4cShN=N^>;iEhd87oAJ`1#6 z;f@L@-^I<{f1&Zaaz~i~djRqSf8>~>O&qb!c5=J{TmnqeVEa$?0(-=aa=@;|+(C?T z9T?>X^m~)tBJCDC1V(vI;7kODVM8Vn&!H`aa?Ngm7UUQ#Qaad&%2;e@Gd`f8Vuhv` zw%1kc!z=}nwQ^p$=~L&%lS{K zFQ4srHYkBT0A_o_;Z%^D5N(tKJOOZKIXHJ^G9VkPT`>r&eUCf zaYTtaaAr#Mwlg{j1ni~8F*V?UHNCLCQkUY7pr!SIE(=E=+)ovkYAc-0=tPbyeo Hfv)}vfL(%l diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/dsa.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/dsa.cpython-39.pyc deleted file mode 100644 index cb65538d4d143cfb5a368a1df683697728c9fcae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5652 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 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/ed25519.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/ed25519.cpython-39.pyc deleted file mode 100644 index 1ace55e8a0e77446302b91d4c9da0f64d4e84933..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4194 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 HMM?cHIBGM& diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/mldsa.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/mldsa.cpython-39.pyc deleted file mode 100644 index 08b77053f8d1537535cf8886afa32c10e9e508c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11317 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 Q4kq$fc^m2H_;^nJALisd+5i9m diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/mlkem.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/mlkem.cpython-39.pyc deleted file mode 100644 index eb6025a71d4124ae0ae86675b09973535716578a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8046 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 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/padding.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/padding.cpython-39.pyc deleted file mode 100644 index 2456a2ff0e66de502307ad5fdb8e7bbb551743c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3740 zcmb7HTXWmS6~>Jqcoik9z9^TXjhmXTP1cjTGfguY(YE5Wi5N{KcUsJ}2!vgUkU@}H zELD@kyi}gNO;~KV#$<1>H=kSH1~c}x=36hw z&ZeGKf+QKpKt_Wk?LxMDLE7Ufdh4BZ-0yQKqHr%@EJ}_sXo@rl>DA>+hp>%FLX-Paf{yJH2;*vbM9k-?^*AyQla3``xCMIli9+eeU~N+4uVcHj1fV z_5CkKLHu&YqUX6La7cOc!&mLzpwHWfQQG@gaKgE4OP@M&<&({?DvLpeAW!LT=O_ku}3knN#} z`jL!IF&)g^(H`dhXbs20hDKy|YM^m+CBL?V%KmQf>{Ff`%ihG@=ZTCG9=oSOJmT)r zK)9dpcK+sny3>7p@bTxZ?ztt3tca_||{5_Q^benLwckbkZ(X+ZL8Yf$qaMK~q-(oOHI(&W*f9`EcQEIjpU zmDZucn@cK@{9h_r7~CdY@1Zlp^%ISoXPRg60$Q6F(K^6-i5a}i%nvkXF@qJD4Z;O&Bq|s87g!NY*_&VC!P3rdf0Ro1kh?+R!Zd!& z#T|En|2 z2xo#$HY**BhkQqffyl~#C0ePzxPm$O%u0EDB(BoxYt$?-Oa!6;6(y1M{a-^$iAq|* zHVnP`qh%Vp@uOAP&>dq^#c8%?OV4#dh!4q@*+qT2mD9=lQ|$z9JJ-8deFHKcZ{u-k zf2G(TF|G)#8IvMy1gpEv`lUdi%=XF)A1fDlmU1gO!mC~IxuEoyt@-{^5$dt?@WsZap$nP~abLLRl==w6GfL&Df|;O60kolP ziHyn%7;!+G5-UF^+SnK|)JTO@)ku-m0K0l-eb(98BPQ+KrJkTO`e8HAWUY^p&^qz) zKt!_FpHvUWNEBdH&KG4|RtjeGSs@M%c^s0Svy1vf7H%8{cme2Z2#saYJFIxjj`7@?)A>anXhDLS)Bjhr@zu5hvBrvO*{0t=hExPymy zhnh?Kks=g2XTYtiedfylFqjpf-a4vI$j8@PVzoMSjkvm z#gc8@DLKy3En}l*=nc?a&`gN?!bJzRO|g_dID_>Q6pS1-5ORV^(NV!tP!LfrL+x`} z#hWy@N*x09-*GEXmUZm1(fu8^`h#$?u0>GQ#vqm$fkQ58TRSD9lKn+(h}>`pbT2PeiB4AfNCtBEf8IbQnh= zhVmnN1M4ZDKIP-APHbJUE)VU?UZM~|xAGE&Hh2ly^n}8Mc|?I?OIj}jg?554b`6-= z(!MkhF!U4qI;w{2+Lz`OXY#a=KKQeSyh@m{yOUc`U^$aQdv~Z*rA&zWlnimP=moj$ zg+mRgrqbvvpwJ%~uXe$3uS(+FW(qH!gU|SBG~ro=sbWhBz-gO4_*+_1;C+-GEA!-A zVGxI-80z@_;F&*6)8#US<88$z&7yQ!*XuZ8aUY}2D^&R(jZmea@)x9hW(J3$_x5r{ z-pVWT)}kU;VbZ((zZbRqMcppwh`i?id0}ZixlL8{m+A?X+f*dTik$}!cfrD(+ypXZ m(<(@2&IkG5n-A%`DG{@3I7U^knpLx5)zz=zHg0TM4d*`$1{3)J diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/rsa.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/rsa.cpython-39.pyc deleted file mode 100644 index c4775e4d03d0fb91301d45a62e2588ca890a33a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8339 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 DA>Fe0 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/types.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/types.cpython-39.pyc deleted file mode 100644 index 38c522bced90f6b86317a2cfc0279513c3d03715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2072 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 LjjOfX#?F5M=tCcK diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/x448.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/__pycache__/x448.cpython-39.pyc deleted file mode 100644 index a4bcdde74987817f16c9fe3346d72ce4f224247c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4510 zcmb_fTXWmS6$U_%1Syi1Xj<|uGLq(ErVd#*&c#V46Gv7YPZQaZ?3si!85G2>M9{d< zyGz+*-G|nBO#Xo%?3upky?>#903T&mQic8_xH^uGgyy zT;>0?hc{0s%75`k`YOVY&lE-F|AGloi0Uc6+EZ1WYo6BA;Je@ze7&dp#a>a$b+6=? zdxo4By^3G$Rpq?ot@yQGO;v6vq)dz-6kLwidPS27Ejkg>VA7 z<{gC06$3vqtX*nzP=SAx!x0TQ_h8zvIAyNwxl_3TNJ^iN_xCAtaQF0;MCeD5Ql+O7 zrKiyXfp4Nc(MW;lKj@Fuo=%Iy5-E}rtdyS=h(Rh+UY2r|RG+BQQ`9x2tWFx_1njU% z)}&@dN)@TuBqyb;DrGG=>lA3NlMN|dA*Ue{XQKMISFU_`d))V2=Pz^;75fuG`H>ds z#1?i`VpNP-;Akm#3NXie3v+%6CSa|GIsdz+Dvz|M+B1clqCg5l9~K{L|5Qb3Sbl0e zQlF`N%8|aqRQL~uvTr;0Xh5cy(FD`wCgj3Q;&1jRrWkjN|_XXAvIB1E7fi+^GLpkqu4ry@M_1ymZ zSGuE#7=*#QovU5$3i{3nLS`RO-c5VojlJ)VnCrX3J%nYOPkf&W<~m(8wlkWr7Fe~O1|R+ZdU1LIGmsQP=a^?dZ!Fh(XFG60;syuPbD4#BlP^LB>1Y=sgU%GA z(!P|j8XWFm}K^V0O}ayZgzM{4W=T0FmSp69_|6N}IT zWD%|m?xF3`K$s$&ITsh##a;WsB@>2r)=@ACjn8_wnl{^l)87Q8*h6i)`Fsyi zH7bSuA$3Hg_ruVG##js?*erHE-3xG@=lW}j>stfr+~X#_KZZ^zj%P`WjsHWA2PMm* z_buz4l-;dmyJH3CrO7zbrmrRz?aG$MP1|(B(J_PAg&a!^%R*htdN*aude)X$1v;ne z2<)If^}}BoGBEJX90LiZqg*SGW?^gR7+bR}{9kO%)s(@RvQDe*v}*u!R$%+ovZAVG z`5_s5IEURZb+eTf$Fn(y&N2vz>?l#e?mJP#?sLIxN6c1UL9zd=q*Sxw5$fCXnk^Bg%ZrFHTObiU1~Aq$H^BM=lYnQekAOEr#9 zT>YxuK?1ID*kJD>q&V2A}R zwym*sTtNg$rBXIiW3IRji+LEcvFuf6uFuN28&b^Qk7fKuFQaCRcyY+%e#=fBcapsi zvTxwd^Y7J+e>q!Xr7tD&dB}0|ST9({Iujnk&~YIx#C!l8H6}`c|5!2zhROe9EX-|c z)fqs5`uFIQ?CaX}OvaCe7CQrK)AL!xk57#uf7;HhLjCTgSuzj@kD{} zT0jk?7tZsN`CSr;+ms=7M7)MdHR(fVUZ> zL38TC-okAz!m!jQa|6f_6k@mjn9LT4i%|RzxaYo|%cOFd88jF&FxJ7Li^HFAcn=5c zhwL&Af5zbh9FTFak8t<|hZkf26;QbjH#cEG>|b4p@gFgNy_(?wsNFt^^kjbwucbgw z7`iVl=xwB5i8_!TD%%WSU|a9CC6)O*qZ{Cx4DVR@lE?5}UE*JFGf#W*j>V8_^qNab zW8uR49|BrbzV`Xn*T7XIaf!+Uo7+OL$YAuqLH8x?EKoh1T_|`U|a-A+`Vj diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py deleted file mode 100644 index 2f6b834..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py +++ /dev/null @@ -1,159 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import _serialization - -generate_parameters = rust_openssl.dh.generate_parameters - - -DHPrivateNumbers = rust_openssl.dh.DHPrivateNumbers -DHPublicNumbers = rust_openssl.dh.DHPublicNumbers -DHParameterNumbers = rust_openssl.dh.DHParameterNumbers - - -class DHParameters(metaclass=abc.ABCMeta): - @abc.abstractmethod - def generate_private_key(self) -> DHPrivateKey: - """ - Generates and returns a DHPrivateKey. - """ - - @abc.abstractmethod - def parameter_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.ParameterFormat, - ) -> bytes: - """ - Returns the parameters serialized as bytes. - """ - - @abc.abstractmethod - def parameter_numbers(self) -> DHParameterNumbers: - """ - Returns a DHParameterNumbers. - """ - - -DHParametersWithSerialization = DHParameters -DHParameters.register(rust_openssl.dh.DHParameters) - - -class DHPublicKey(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def key_size(self) -> int: - """ - The bit length of the prime modulus. - """ - - @abc.abstractmethod - def parameters(self) -> DHParameters: - """ - The DHParameters object associated with this public key. - """ - - @abc.abstractmethod - def public_numbers(self) -> DHPublicNumbers: - """ - Returns a DHPublicNumbers. - """ - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - Returns the key serialized as bytes. - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> DHPublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> DHPublicKey: - """ - Returns a deep copy. - """ - - -DHPublicKeyWithSerialization = DHPublicKey -DHPublicKey.register(rust_openssl.dh.DHPublicKey) - - -class DHPrivateKey(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def key_size(self) -> int: - """ - The bit length of the prime modulus. - """ - - @abc.abstractmethod - def public_key(self) -> DHPublicKey: - """ - The DHPublicKey associated with this private key. - """ - - @abc.abstractmethod - def parameters(self) -> DHParameters: - """ - The DHParameters object associated with this private key. - """ - - @abc.abstractmethod - def exchange(self, peer_public_key: DHPublicKey) -> bytes: - """ - Given peer's DHPublicKey, carry out the key exchange and - return shared key as bytes. - """ - - @abc.abstractmethod - def private_numbers(self) -> DHPrivateNumbers: - """ - Returns a DHPrivateNumbers. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - Returns the key serialized as bytes. - """ - - @abc.abstractmethod - def __copy__(self) -> DHPrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> DHPrivateKey: - """ - Returns a deep copy. - """ - - -DHPrivateKeyWithSerialization = DHPrivateKey -DHPrivateKey.register(rust_openssl.dh.DHPrivateKey) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py deleted file mode 100644 index f245557..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py +++ /dev/null @@ -1,179 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc -import typing - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import _serialization, hashes -from cryptography.hazmat.primitives.asymmetric import utils as asym_utils -from cryptography.utils import Buffer - - -class DSAParameters(metaclass=abc.ABCMeta): - @abc.abstractmethod - def generate_private_key(self) -> DSAPrivateKey: - """ - Generates and returns a DSAPrivateKey. - """ - - @abc.abstractmethod - def parameter_numbers(self) -> DSAParameterNumbers: - """ - Returns a DSAParameterNumbers. - """ - - -DSAParametersWithNumbers = DSAParameters -DSAParameters.register(rust_openssl.dsa.DSAParameters) - - -class DSAPrivateKey(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def key_size(self) -> int: - """ - The bit length of the prime modulus. - """ - - @abc.abstractmethod - def public_key(self) -> DSAPublicKey: - """ - The DSAPublicKey associated with this private key. - """ - - @abc.abstractmethod - def parameters(self) -> DSAParameters: - """ - The DSAParameters object associated with this private key. - """ - - @abc.abstractmethod - def sign( - self, - data: Buffer, - algorithm: asym_utils.Prehashed | hashes.HashAlgorithm, - ) -> bytes: - """ - Signs the data - """ - - @abc.abstractmethod - def private_numbers(self) -> DSAPrivateNumbers: - """ - Returns a DSAPrivateNumbers. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - Returns the key serialized as bytes. - """ - - @abc.abstractmethod - def __copy__(self) -> DSAPrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> DSAPrivateKey: - """ - Returns a deep copy. - """ - - -DSAPrivateKeyWithSerialization = DSAPrivateKey -DSAPrivateKey.register(rust_openssl.dsa.DSAPrivateKey) - - -class DSAPublicKey(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def key_size(self) -> int: - """ - The bit length of the prime modulus. - """ - - @abc.abstractmethod - def parameters(self) -> DSAParameters: - """ - The DSAParameters object associated with this public key. - """ - - @abc.abstractmethod - def public_numbers(self) -> DSAPublicNumbers: - """ - Returns a DSAPublicNumbers. - """ - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - Returns the key serialized as bytes. - """ - - @abc.abstractmethod - def verify( - self, - signature: Buffer, - data: Buffer, - algorithm: asym_utils.Prehashed | hashes.HashAlgorithm, - ) -> None: - """ - Verifies the signature of the data. - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> DSAPublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> DSAPublicKey: - """ - Returns a deep copy. - """ - - -DSAPublicKeyWithSerialization = DSAPublicKey -DSAPublicKey.register(rust_openssl.dsa.DSAPublicKey) - -DSAPrivateNumbers = rust_openssl.dsa.DSAPrivateNumbers -DSAPublicNumbers = rust_openssl.dsa.DSAPublicNumbers -DSAParameterNumbers = rust_openssl.dsa.DSAParameterNumbers - - -def generate_parameters( - key_size: int, backend: typing.Any = None -) -> DSAParameters: - if key_size not in (1024, 2048, 3072, 4096): - raise ValueError("Key size must be 1024, 2048, 3072, or 4096 bits.") - - return rust_openssl.dsa.generate_parameters(key_size) - - -def generate_private_key( - key_size: int, backend: typing.Any = None -) -> DSAPrivateKey: - parameters = generate_parameters(key_size) - return parameters.generate_private_key() diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py deleted file mode 100644 index 39e6751..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py +++ /dev/null @@ -1,369 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc -import typing - -from cryptography import utils -from cryptography.exceptions import UnsupportedAlgorithm, _Reasons -from cryptography.hazmat._oid import ObjectIdentifier -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import _serialization, hashes -from cryptography.hazmat.primitives.asymmetric import utils as asym_utils - - -class EllipticCurveOID: - SECP192R1 = ObjectIdentifier("1.2.840.10045.3.1.1") - SECP224R1 = ObjectIdentifier("1.3.132.0.33") - SECP256K1 = ObjectIdentifier("1.3.132.0.10") - SECP256R1 = ObjectIdentifier("1.2.840.10045.3.1.7") - SECP384R1 = ObjectIdentifier("1.3.132.0.34") - SECP521R1 = ObjectIdentifier("1.3.132.0.35") - BRAINPOOLP256R1 = ObjectIdentifier("1.3.36.3.3.2.8.1.1.7") - BRAINPOOLP384R1 = ObjectIdentifier("1.3.36.3.3.2.8.1.1.11") - BRAINPOOLP512R1 = ObjectIdentifier("1.3.36.3.3.2.8.1.1.13") - - -class EllipticCurve(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def name(self) -> str: - """ - The name of the curve. e.g. secp256r1. - """ - - @property - @abc.abstractmethod - def key_size(self) -> int: - """ - Bit size of a secret scalar for the curve. - """ - - @property - @abc.abstractmethod - def group_order(self) -> int: - """ - The order of the curve's group. - """ - - -class EllipticCurveSignatureAlgorithm(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def algorithm( - self, - ) -> asym_utils.Prehashed | hashes.HashAlgorithm: - """ - The digest algorithm used with this signature. - """ - - -class EllipticCurvePrivateKey(metaclass=abc.ABCMeta): - @abc.abstractmethod - def exchange( - self, algorithm: ECDH, peer_public_key: EllipticCurvePublicKey - ) -> bytes: - """ - Performs a key exchange operation using the provided algorithm with the - provided peer's public key. - """ - - @abc.abstractmethod - def public_key(self) -> EllipticCurvePublicKey: - """ - The EllipticCurvePublicKey for this private key. - """ - - @property - @abc.abstractmethod - def curve(self) -> EllipticCurve: - """ - The EllipticCurve that this key is on. - """ - - @property - @abc.abstractmethod - def key_size(self) -> int: - """ - Bit size of a secret scalar for the curve. - """ - - @abc.abstractmethod - def sign( - self, - data: utils.Buffer, - signature_algorithm: EllipticCurveSignatureAlgorithm, - ) -> bytes: - """ - Signs the data - """ - - @abc.abstractmethod - def private_numbers(self) -> EllipticCurvePrivateNumbers: - """ - Returns an EllipticCurvePrivateNumbers. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - Returns the key serialized as bytes. - """ - - @abc.abstractmethod - def __copy__(self) -> EllipticCurvePrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> EllipticCurvePrivateKey: - """ - Returns a deep copy. - """ - - -EllipticCurvePrivateKeyWithSerialization = EllipticCurvePrivateKey -EllipticCurvePrivateKey.register(rust_openssl.ec.ECPrivateKey) - - -class EllipticCurvePublicKey(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def curve(self) -> EllipticCurve: - """ - The EllipticCurve that this key is on. - """ - - @property - @abc.abstractmethod - def key_size(self) -> int: - """ - Bit size of a secret scalar for the curve. - """ - - @abc.abstractmethod - def public_numbers(self) -> EllipticCurvePublicNumbers: - """ - Returns an EllipticCurvePublicNumbers. - """ - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - Returns the key serialized as bytes. - """ - - @abc.abstractmethod - def verify( - self, - signature: utils.Buffer, - data: utils.Buffer, - signature_algorithm: EllipticCurveSignatureAlgorithm, - ) -> None: - """ - Verifies the signature of the data. - """ - - @classmethod - def from_encoded_point( - cls, curve: EllipticCurve, data: bytes - ) -> EllipticCurvePublicKey: - utils._check_bytes("data", data) - - if len(data) == 0: - raise ValueError("data must not be an empty byte string") - - if data[0] not in [0x02, 0x03, 0x04]: - raise ValueError("Unsupported elliptic curve point type") - - return rust_openssl.ec.from_public_bytes(curve, data) - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> EllipticCurvePublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> EllipticCurvePublicKey: - """ - Returns a deep copy. - """ - - -EllipticCurvePublicKeyWithSerialization = EllipticCurvePublicKey -EllipticCurvePublicKey.register(rust_openssl.ec.ECPublicKey) - -EllipticCurvePrivateNumbers = rust_openssl.ec.EllipticCurvePrivateNumbers -EllipticCurvePublicNumbers = rust_openssl.ec.EllipticCurvePublicNumbers - - -class SECP521R1(EllipticCurve): - name = "secp521r1" - key_size = 521 - group_order = 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409 # noqa: E501 - - -class SECP384R1(EllipticCurve): - name = "secp384r1" - key_size = 384 - group_order = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973 # noqa: E501 - - -class SECP256R1(EllipticCurve): - name = "secp256r1" - key_size = 256 - group_order = ( - 0xFFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551 - ) - - -class SECP256K1(EllipticCurve): - name = "secp256k1" - key_size = 256 - group_order = ( - 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - ) - - -class SECP224R1(EllipticCurve): - name = "secp224r1" - key_size = 224 - group_order = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D - - -class SECP192R1(EllipticCurve): - name = "secp192r1" - key_size = 192 - group_order = 0xFFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831 - - -class BrainpoolP256R1(EllipticCurve): - name = "brainpoolP256r1" - key_size = 256 - group_order = ( - 0xA9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7 - ) - - -class BrainpoolP384R1(EllipticCurve): - name = "brainpoolP384r1" - key_size = 384 - group_order = 0x8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC3103B883202E9046565 # noqa: E501 - - -class BrainpoolP512R1(EllipticCurve): - name = "brainpoolP512r1" - key_size = 512 - group_order = 0xAADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA92619418661197FAC10471DB1D381085DDADDB58796829CA90069 # noqa: E501 - - -_CURVE_TYPES: dict[str, EllipticCurve] = { - "prime192v1": SECP192R1(), - "prime256v1": SECP256R1(), - "secp192r1": SECP192R1(), - "secp224r1": SECP224R1(), - "secp256r1": SECP256R1(), - "secp384r1": SECP384R1(), - "secp521r1": SECP521R1(), - "secp256k1": SECP256K1(), - "brainpoolP256r1": BrainpoolP256R1(), - "brainpoolP384r1": BrainpoolP384R1(), - "brainpoolP512r1": BrainpoolP512R1(), -} - - -class ECDSA(EllipticCurveSignatureAlgorithm): - def __init__( - self, - algorithm: asym_utils.Prehashed | hashes.HashAlgorithm, - deterministic_signing: bool = False, - ): - from cryptography.hazmat.backends.openssl.backend import backend - - if ( - deterministic_signing - and not backend.ecdsa_deterministic_supported() - ): - raise UnsupportedAlgorithm( - "ECDSA with deterministic signature (RFC 6979) is not " - "supported by this version of OpenSSL.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - self._algorithm = algorithm - self._deterministic_signing = deterministic_signing - - @property - def algorithm( - self, - ) -> asym_utils.Prehashed | hashes.HashAlgorithm: - return self._algorithm - - @property - def deterministic_signing( - self, - ) -> bool: - return self._deterministic_signing - - -generate_private_key = rust_openssl.ec.generate_private_key - - -def derive_private_key( - private_value: int, - curve: EllipticCurve, - backend: typing.Any = None, -) -> EllipticCurvePrivateKey: - if not isinstance(private_value, int): - raise TypeError("private_value must be an integer type.") - - if private_value <= 0: - raise ValueError("private_value must be a positive integer.") - - return rust_openssl.ec.derive_private_key(private_value, curve) - - -class ECDH: - pass - - -_OID_TO_CURVE = { - EllipticCurveOID.SECP192R1: SECP192R1, - EllipticCurveOID.SECP224R1: SECP224R1, - EllipticCurveOID.SECP256K1: SECP256K1, - EllipticCurveOID.SECP256R1: SECP256R1, - EllipticCurveOID.SECP384R1: SECP384R1, - EllipticCurveOID.SECP521R1: SECP521R1, - EllipticCurveOID.BRAINPOOLP256R1: BrainpoolP256R1, - EllipticCurveOID.BRAINPOOLP384R1: BrainpoolP384R1, - EllipticCurveOID.BRAINPOOLP512R1: BrainpoolP512R1, -} - - -def get_curve_for_oid(oid: ObjectIdentifier) -> type[EllipticCurve]: - try: - return _OID_TO_CURVE[oid] - except KeyError: - raise LookupError( - "The provided object identifier has no matching elliptic " - "curve class" - ) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py deleted file mode 100644 index 70aec5b..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py +++ /dev/null @@ -1,116 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import _serialization -from cryptography.utils import Buffer - - -class Ed25519PublicKey(metaclass=abc.ABCMeta): - @classmethod - def from_public_bytes(cls, data: bytes) -> Ed25519PublicKey: - return rust_openssl.ed25519.from_public_bytes(data) - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - The serialized bytes of the public key. - """ - - @abc.abstractmethod - def public_bytes_raw(self) -> bytes: - """ - The raw bytes of the public key. - Equivalent to public_bytes(Raw, Raw). - """ - - @abc.abstractmethod - def verify(self, signature: Buffer, data: Buffer) -> None: - """ - Verify the signature. - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> Ed25519PublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> Ed25519PublicKey: - """ - Returns a deep copy. - """ - - -Ed25519PublicKey.register(rust_openssl.ed25519.Ed25519PublicKey) - - -class Ed25519PrivateKey(metaclass=abc.ABCMeta): - @classmethod - def generate(cls) -> Ed25519PrivateKey: - return rust_openssl.ed25519.generate_key() - - @classmethod - def from_private_bytes(cls, data: Buffer) -> Ed25519PrivateKey: - return rust_openssl.ed25519.from_private_bytes(data) - - @abc.abstractmethod - def public_key(self) -> Ed25519PublicKey: - """ - The Ed25519PublicKey derived from the private key. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - The serialized bytes of the private key. - """ - - @abc.abstractmethod - def private_bytes_raw(self) -> bytes: - """ - The raw bytes of the private key. - Equivalent to private_bytes(Raw, Raw, NoEncryption()). - """ - - @abc.abstractmethod - def sign(self, data: Buffer) -> bytes: - """ - Signs the data. - """ - - @abc.abstractmethod - def __copy__(self) -> Ed25519PrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> Ed25519PrivateKey: - """ - Returns a deep copy. - """ - - -Ed25519PrivateKey.register(rust_openssl.ed25519.Ed25519PrivateKey) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py deleted file mode 100644 index 9ecb478..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py +++ /dev/null @@ -1,143 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography.exceptions import UnsupportedAlgorithm, _Reasons -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import _serialization -from cryptography.utils import Buffer - - -class Ed448PublicKey(metaclass=abc.ABCMeta): - @classmethod - def from_public_bytes(cls, data: bytes) -> Ed448PublicKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.ed448_supported(): - raise UnsupportedAlgorithm( - "ed448 is not supported by this version of OpenSSL.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.ed448.from_public_bytes(data) - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - The serialized bytes of the public key. - """ - - @abc.abstractmethod - def public_bytes_raw(self) -> bytes: - """ - The raw bytes of the public key. - Equivalent to public_bytes(Raw, Raw). - """ - - @abc.abstractmethod - def verify(self, signature: Buffer, data: Buffer) -> None: - """ - Verify the signature. - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> Ed448PublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> Ed448PublicKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "ed448"): - Ed448PublicKey.register(rust_openssl.ed448.Ed448PublicKey) - - -class Ed448PrivateKey(metaclass=abc.ABCMeta): - @classmethod - def generate(cls) -> Ed448PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.ed448_supported(): - raise UnsupportedAlgorithm( - "ed448 is not supported by this version of OpenSSL.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.ed448.generate_key() - - @classmethod - def from_private_bytes(cls, data: Buffer) -> Ed448PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.ed448_supported(): - raise UnsupportedAlgorithm( - "ed448 is not supported by this version of OpenSSL.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.ed448.from_private_bytes(data) - - @abc.abstractmethod - def public_key(self) -> Ed448PublicKey: - """ - The Ed448PublicKey derived from the private key. - """ - - @abc.abstractmethod - def sign(self, data: Buffer) -> bytes: - """ - Signs the data. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - The serialized bytes of the private key. - """ - - @abc.abstractmethod - def private_bytes_raw(self) -> bytes: - """ - The raw bytes of the private key. - Equivalent to private_bytes(Raw, Raw, NoEncryption()). - """ - - @abc.abstractmethod - def __copy__(self) -> Ed448PrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> Ed448PrivateKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "x448"): - Ed448PrivateKey.register(rust_openssl.ed448.Ed448PrivateKey) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/mldsa.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/mldsa.py deleted file mode 100644 index 0bd9684..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/mldsa.py +++ /dev/null @@ -1,441 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography.exceptions import UnsupportedAlgorithm, _Reasons -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import _serialization -from cryptography.utils import Buffer - - -class MLDSA44PublicKey(metaclass=abc.ABCMeta): - @classmethod - def from_public_bytes(cls, data: bytes) -> MLDSA44PublicKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mldsa_supported(): - raise UnsupportedAlgorithm( - "ML-DSA-44 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mldsa.from_mldsa44_public_bytes(data) - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - The serialized bytes of the public key. - """ - - @abc.abstractmethod - def public_bytes_raw(self) -> bytes: - """ - The raw bytes of the public key. - Equivalent to public_bytes(Raw, Raw). - - The public key is 1,312 bytes for MLDSA-44. - """ - - @abc.abstractmethod - def verify( - self, - signature: Buffer, - data: Buffer, - context: Buffer | None = None, - ) -> None: - """ - Verify the signature. - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> MLDSA44PublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> MLDSA44PublicKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "mldsa"): - MLDSA44PublicKey.register(rust_openssl.mldsa.MLDSA44PublicKey) - - -class MLDSA44PrivateKey(metaclass=abc.ABCMeta): - @classmethod - def generate(cls) -> MLDSA44PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mldsa_supported(): - raise UnsupportedAlgorithm( - "ML-DSA-44 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mldsa.generate_mldsa44_key() - - @classmethod - def from_seed_bytes(cls, data: Buffer) -> MLDSA44PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mldsa_supported(): - raise UnsupportedAlgorithm( - "ML-DSA-44 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mldsa.from_mldsa44_seed_bytes(data) - - @abc.abstractmethod - def public_key(self) -> MLDSA44PublicKey: - """ - The MLDSA44PublicKey derived from the private key. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - The serialized bytes of the private key. - - This method only returns the serialization of the seed form of the - private key, never the expanded one. - """ - - @abc.abstractmethod - def private_bytes_raw(self) -> bytes: - """ - The raw bytes of the private key. - Equivalent to private_bytes(Raw, Raw, NoEncryption()). - - This method only returns the seed form of the private key (32 bytes). - """ - - @abc.abstractmethod - def sign(self, data: Buffer, context: Buffer | None = None) -> bytes: - """ - Signs the data. - """ - - @abc.abstractmethod - def __copy__(self) -> MLDSA44PrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> MLDSA44PrivateKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "mldsa"): - MLDSA44PrivateKey.register(rust_openssl.mldsa.MLDSA44PrivateKey) - - -class MLDSA65PublicKey(metaclass=abc.ABCMeta): - @classmethod - def from_public_bytes(cls, data: bytes) -> MLDSA65PublicKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mldsa_supported(): - raise UnsupportedAlgorithm( - "ML-DSA-65 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mldsa.from_mldsa65_public_bytes(data) - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - The serialized bytes of the public key. - """ - - @abc.abstractmethod - def public_bytes_raw(self) -> bytes: - """ - The raw bytes of the public key. - Equivalent to public_bytes(Raw, Raw). - - The public key is 1,952 bytes for MLDSA-65. - """ - - @abc.abstractmethod - def verify( - self, - signature: Buffer, - data: Buffer, - context: Buffer | None = None, - ) -> None: - """ - Verify the signature. - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> MLDSA65PublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> MLDSA65PublicKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "mldsa"): - MLDSA65PublicKey.register(rust_openssl.mldsa.MLDSA65PublicKey) - - -class MLDSA65PrivateKey(metaclass=abc.ABCMeta): - @classmethod - def generate(cls) -> MLDSA65PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mldsa_supported(): - raise UnsupportedAlgorithm( - "ML-DSA-65 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mldsa.generate_mldsa65_key() - - @classmethod - def from_seed_bytes(cls, data: Buffer) -> MLDSA65PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mldsa_supported(): - raise UnsupportedAlgorithm( - "ML-DSA-65 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mldsa.from_mldsa65_seed_bytes(data) - - @abc.abstractmethod - def public_key(self) -> MLDSA65PublicKey: - """ - The MLDSA65PublicKey derived from the private key. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - The serialized bytes of the private key. - - This method only returns the serialization of the seed form of the - private key, never the expanded one. - """ - - @abc.abstractmethod - def private_bytes_raw(self) -> bytes: - """ - The raw bytes of the private key. - Equivalent to private_bytes(Raw, Raw, NoEncryption()). - - This method only returns the seed form of the private key (32 bytes). - """ - - @abc.abstractmethod - def sign(self, data: Buffer, context: Buffer | None = None) -> bytes: - """ - Signs the data. - """ - - @abc.abstractmethod - def __copy__(self) -> MLDSA65PrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> MLDSA65PrivateKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "mldsa"): - MLDSA65PrivateKey.register(rust_openssl.mldsa.MLDSA65PrivateKey) - - -class MLDSA87PublicKey(metaclass=abc.ABCMeta): - @classmethod - def from_public_bytes(cls, data: bytes) -> MLDSA87PublicKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mldsa_supported(): - raise UnsupportedAlgorithm( - "ML-DSA-87 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mldsa.from_mldsa87_public_bytes(data) - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - The serialized bytes of the public key. - """ - - @abc.abstractmethod - def public_bytes_raw(self) -> bytes: - """ - The raw bytes of the public key. - Equivalent to public_bytes(Raw, Raw). - - The public key is 2,592 bytes for MLDSA-87. - """ - - @abc.abstractmethod - def verify( - self, - signature: Buffer, - data: Buffer, - context: Buffer | None = None, - ) -> None: - """ - Verify the signature. - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> MLDSA87PublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> MLDSA87PublicKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "mldsa"): - MLDSA87PublicKey.register(rust_openssl.mldsa.MLDSA87PublicKey) - - -class MLDSA87PrivateKey(metaclass=abc.ABCMeta): - @classmethod - def generate(cls) -> MLDSA87PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mldsa_supported(): - raise UnsupportedAlgorithm( - "ML-DSA-87 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mldsa.generate_mldsa87_key() - - @classmethod - def from_seed_bytes(cls, data: Buffer) -> MLDSA87PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mldsa_supported(): - raise UnsupportedAlgorithm( - "ML-DSA-87 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mldsa.from_mldsa87_seed_bytes(data) - - @abc.abstractmethod - def public_key(self) -> MLDSA87PublicKey: - """ - The MLDSA87PublicKey derived from the private key. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - The serialized bytes of the private key. - - This method only returns the serialization of the seed form of the - private key, never the expanded one. - """ - - @abc.abstractmethod - def private_bytes_raw(self) -> bytes: - """ - The raw bytes of the private key. - Equivalent to private_bytes(Raw, Raw, NoEncryption()). - - This method only returns the seed form of the private key (32 bytes). - """ - - @abc.abstractmethod - def sign(self, data: Buffer, context: Buffer | None = None) -> bytes: - """ - Signs the data. - """ - - @abc.abstractmethod - def __copy__(self) -> MLDSA87PrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> MLDSA87PrivateKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "mldsa"): - MLDSA87PrivateKey.register(rust_openssl.mldsa.MLDSA87PrivateKey) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/mlkem.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/mlkem.py deleted file mode 100644 index 64bca11..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/mlkem.py +++ /dev/null @@ -1,278 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography.exceptions import UnsupportedAlgorithm, _Reasons -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import _serialization -from cryptography.utils import Buffer - - -class MLKEM768PublicKey(metaclass=abc.ABCMeta): - @classmethod - def from_public_bytes(cls, data: Buffer) -> MLKEM768PublicKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mlkem_supported(): - raise UnsupportedAlgorithm( - "ML-KEM-768 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mlkem.from_mlkem768_public_bytes(data) - - @abc.abstractmethod - def encapsulate(self) -> tuple[bytes, bytes]: - """ - Encapsulate: returns (shared_secret, ciphertext). - """ - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - The serialized bytes of the public key. - """ - - @abc.abstractmethod - def public_bytes_raw(self) -> bytes: - """ - The raw bytes of the public key. - Equivalent to public_bytes(Raw, Raw). - - The public key is 1,184 bytes for ML-KEM-768. - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> MLKEM768PublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> MLKEM768PublicKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "mlkem"): - MLKEM768PublicKey.register(rust_openssl.mlkem.MLKEM768PublicKey) - - -class MLKEM768PrivateKey(metaclass=abc.ABCMeta): - @classmethod - def generate(cls) -> MLKEM768PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mlkem_supported(): - raise UnsupportedAlgorithm( - "ML-KEM-768 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mlkem.generate_mlkem768_key() - - @classmethod - def from_seed_bytes(cls, data: Buffer) -> MLKEM768PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mlkem_supported(): - raise UnsupportedAlgorithm( - "ML-KEM-768 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mlkem.from_mlkem768_seed_bytes(data) - - @abc.abstractmethod - def decapsulate(self, ciphertext: Buffer) -> bytes: - """ - Decapsulate: returns shared_secret. - """ - - @abc.abstractmethod - def public_key(self) -> MLKEM768PublicKey: - """ - The MLKEM768PublicKey derived from this private key. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - The serialized bytes of the private key. - """ - - @abc.abstractmethod - def private_bytes_raw(self) -> bytes: - """ - The raw bytes of the private key (64-byte seed). - Equivalent to private_bytes(Raw, Raw, NoEncryption()). - """ - - @abc.abstractmethod - def __copy__(self) -> MLKEM768PrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> MLKEM768PrivateKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "mlkem"): - MLKEM768PrivateKey.register(rust_openssl.mlkem.MLKEM768PrivateKey) - - -class MLKEM1024PublicKey(metaclass=abc.ABCMeta): - @classmethod - def from_public_bytes(cls, data: Buffer) -> MLKEM1024PublicKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mlkem_supported(): - raise UnsupportedAlgorithm( - "ML-KEM-1024 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mlkem.from_mlkem1024_public_bytes(data) - - @abc.abstractmethod - def encapsulate(self) -> tuple[bytes, bytes]: - """ - Encapsulate: returns (shared_secret, ciphertext). - """ - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - The serialized bytes of the public key. - """ - - @abc.abstractmethod - def public_bytes_raw(self) -> bytes: - """ - The raw bytes of the public key. - Equivalent to public_bytes(Raw, Raw). - - The public key is 1,568 bytes for ML-KEM-1024. - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> MLKEM1024PublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> MLKEM1024PublicKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "mlkem"): - MLKEM1024PublicKey.register(rust_openssl.mlkem.MLKEM1024PublicKey) - - -class MLKEM1024PrivateKey(metaclass=abc.ABCMeta): - @classmethod - def generate(cls) -> MLKEM1024PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mlkem_supported(): - raise UnsupportedAlgorithm( - "ML-KEM-1024 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mlkem.generate_mlkem1024_key() - - @classmethod - def from_seed_bytes(cls, data: Buffer) -> MLKEM1024PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.mlkem_supported(): - raise UnsupportedAlgorithm( - "ML-KEM-1024 is not supported by this backend.", - _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM, - ) - - return rust_openssl.mlkem.from_mlkem1024_seed_bytes(data) - - @abc.abstractmethod - def decapsulate(self, ciphertext: Buffer) -> bytes: - """ - Decapsulate: returns shared_secret. - """ - - @abc.abstractmethod - def public_key(self) -> MLKEM1024PublicKey: - """ - The MLKEM1024PublicKey derived from this private key. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - The serialized bytes of the private key. - """ - - @abc.abstractmethod - def private_bytes_raw(self) -> bytes: - """ - The raw bytes of the private key (64-byte seed). - Equivalent to private_bytes(Raw, Raw, NoEncryption()). - """ - - @abc.abstractmethod - def __copy__(self) -> MLKEM1024PrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> MLKEM1024PrivateKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "mlkem"): - MLKEM1024PrivateKey.register(rust_openssl.mlkem.MLKEM1024PrivateKey) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py deleted file mode 100644 index 5121a28..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py +++ /dev/null @@ -1,111 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives._asymmetric import ( - AsymmetricPadding as AsymmetricPadding, -) -from cryptography.hazmat.primitives.asymmetric import rsa - - -class PKCS1v15(AsymmetricPadding): - name = "EMSA-PKCS1-v1_5" - - -class _MaxLength: - "Sentinel value for `MAX_LENGTH`." - - -class _Auto: - "Sentinel value for `AUTO`." - - -class _DigestLength: - "Sentinel value for `DIGEST_LENGTH`." - - -class PSS(AsymmetricPadding): - MAX_LENGTH = _MaxLength() - AUTO = _Auto() - DIGEST_LENGTH = _DigestLength() - name = "EMSA-PSS" - _salt_length: int | _MaxLength | _Auto | _DigestLength - - def __init__( - self, - mgf: MGF, - salt_length: int | _MaxLength | _Auto | _DigestLength, - ) -> None: - self._mgf = mgf - - if not isinstance( - salt_length, (int, _MaxLength, _Auto, _DigestLength) - ): - raise TypeError( - "salt_length must be an integer, MAX_LENGTH, " - "DIGEST_LENGTH, or AUTO" - ) - - if isinstance(salt_length, int) and salt_length < 0: - raise ValueError("salt_length must be zero or greater.") - - self._salt_length = salt_length - - @property - def mgf(self) -> MGF: - return self._mgf - - -class OAEP(AsymmetricPadding): - name = "EME-OAEP" - - def __init__( - self, - mgf: MGF, - algorithm: hashes.HashAlgorithm, - label: bytes | None, - ): - if not isinstance(algorithm, hashes.HashAlgorithm): - raise TypeError("Expected instance of hashes.HashAlgorithm.") - - self._mgf = mgf - self._algorithm = algorithm - self._label = label - - @property - def algorithm(self) -> hashes.HashAlgorithm: - return self._algorithm - - @property - def mgf(self) -> MGF: - return self._mgf - - -class MGF(metaclass=abc.ABCMeta): - _algorithm: hashes.HashAlgorithm - - -class MGF1(MGF): - def __init__(self, algorithm: hashes.HashAlgorithm): - if not isinstance(algorithm, hashes.HashAlgorithm): - raise TypeError("Expected instance of hashes.HashAlgorithm.") - - self._algorithm = algorithm - - -def calculate_max_pss_salt_length( - key: rsa.RSAPrivateKey | rsa.RSAPublicKey, - hash_algorithm: hashes.HashAlgorithm, -) -> int: - if not isinstance(key, (rsa.RSAPrivateKey, rsa.RSAPublicKey)): - raise TypeError("key must be an RSA public or private key") - # bit length - 1 per RFC 3447 - emlen = (key.key_size + 6) // 8 - salt_length = emlen - hash_algorithm.digest_size - 2 - assert salt_length >= 0 - return salt_length diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py deleted file mode 100644 index d730ceb..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py +++ /dev/null @@ -1,295 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc -import random -import typing -from math import gcd, lcm - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import _serialization, hashes -from cryptography.hazmat.primitives._asymmetric import AsymmetricPadding -from cryptography.hazmat.primitives.asymmetric import utils as asym_utils - - -class RSAPrivateKey(metaclass=abc.ABCMeta): - @abc.abstractmethod - def decrypt(self, ciphertext: bytes, padding: AsymmetricPadding) -> bytes: - """ - Decrypts the provided ciphertext. - """ - - @property - @abc.abstractmethod - def key_size(self) -> int: - """ - The bit length of the public modulus. - """ - - @abc.abstractmethod - def public_key(self) -> RSAPublicKey: - """ - The RSAPublicKey associated with this private key. - """ - - @abc.abstractmethod - def sign( - self, - data: bytes, - padding: AsymmetricPadding, - algorithm: asym_utils.Prehashed - | hashes.HashAlgorithm - | asym_utils.NoDigestInfo, - ) -> bytes: - """ - Signs the data. - """ - - @abc.abstractmethod - def private_numbers(self) -> RSAPrivateNumbers: - """ - Returns an RSAPrivateNumbers. - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - Returns the key serialized as bytes. - """ - - @abc.abstractmethod - def __copy__(self) -> RSAPrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> RSAPrivateKey: - """ - Returns a deep copy. - """ - - -RSAPrivateKeyWithSerialization = RSAPrivateKey -RSAPrivateKey.register(rust_openssl.rsa.RSAPrivateKey) - - -class RSAPublicKey(metaclass=abc.ABCMeta): - @abc.abstractmethod - def encrypt(self, plaintext: bytes, padding: AsymmetricPadding) -> bytes: - """ - Encrypts the given plaintext. - """ - - @property - @abc.abstractmethod - def key_size(self) -> int: - """ - The bit length of the public modulus. - """ - - @abc.abstractmethod - def public_numbers(self) -> RSAPublicNumbers: - """ - Returns an RSAPublicNumbers - """ - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - Returns the key serialized as bytes. - """ - - @abc.abstractmethod - def verify( - self, - signature: bytes, - data: bytes, - padding: AsymmetricPadding, - algorithm: asym_utils.Prehashed | hashes.HashAlgorithm, - ) -> None: - """ - Verifies the signature of the data. - """ - - @abc.abstractmethod - def recover_data_from_signature( - self, - signature: bytes, - padding: AsymmetricPadding, - algorithm: hashes.HashAlgorithm | asym_utils.NoDigestInfo | None, - ) -> bytes: - """ - Recovers the original data from the signature. - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> RSAPublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> RSAPublicKey: - """ - Returns a deep copy. - """ - - -RSAPublicKeyWithSerialization = RSAPublicKey -RSAPublicKey.register(rust_openssl.rsa.RSAPublicKey) - -RSAPrivateNumbers = rust_openssl.rsa.RSAPrivateNumbers -RSAPublicNumbers = rust_openssl.rsa.RSAPublicNumbers - - -def generate_private_key( - public_exponent: int, - key_size: int, - backend: typing.Any = None, -) -> RSAPrivateKey: - _verify_rsa_parameters(public_exponent, key_size) - return rust_openssl.rsa.generate_private_key(public_exponent, key_size) - - -def _verify_rsa_parameters(public_exponent: int, key_size: int) -> None: - if public_exponent not in (3, 65537): - raise ValueError( - "public_exponent must be either 3 (for legacy compatibility) or " - "65537. Almost everyone should choose 65537 here!" - ) - - if key_size < 1024: - raise ValueError("key_size must be at least 1024-bits.") - - -def _modinv(e: int, m: int) -> int: - """ - Modular Multiplicative Inverse. Returns x such that: (x*e) mod m == 1 - """ - x1, x2 = 1, 0 - a, b = e, m - while b > 0: - q, r = divmod(a, b) - xn = x1 - q * x2 - a, b, x1, x2 = b, r, x2, xn - return x1 % m - - -def rsa_crt_iqmp(p: int, q: int) -> int: - """ - Compute the CRT (q ** -1) % p value from RSA primes p and q. - """ - if p <= 1 or q <= 1: - raise ValueError("Values can't be <= 1") - return _modinv(q, p) - - -def rsa_crt_dmp1(private_exponent: int, p: int) -> int: - """ - Compute the CRT private_exponent % (p - 1) value from the RSA - private_exponent (d) and p. - """ - if private_exponent <= 1 or p <= 1: - raise ValueError("Values can't be <= 1") - return private_exponent % (p - 1) - - -def rsa_crt_dmq1(private_exponent: int, q: int) -> int: - """ - Compute the CRT private_exponent % (q - 1) value from the RSA - private_exponent (d) and q. - """ - if private_exponent <= 1 or q <= 1: - raise ValueError("Values can't be <= 1") - return private_exponent % (q - 1) - - -def rsa_recover_private_exponent(e: int, p: int, q: int) -> int: - """ - Compute the RSA private_exponent (d) given the public exponent (e) - and the RSA primes p and q. - - This uses the Carmichael totient function to generate the - smallest possible working value of the private exponent. - """ - # This lambda_n is the Carmichael totient function. - # The original RSA paper uses the Euler totient function - # here: phi_n = (p - 1) * (q - 1) - # Either version of the private exponent will work, but the - # one generated by the older formulation may be larger - # than necessary. (lambda_n always divides phi_n) - if e <= 1 or p <= 1 or q <= 1: - raise ValueError("Values can't be <= 1") - return _modinv(e, lcm(p - 1, q - 1)) - - -# Controls the number of iterations rsa_recover_prime_factors will perform -# to obtain the prime factors. -_MAX_RECOVERY_ATTEMPTS = 500 - - -def rsa_recover_prime_factors(n: int, e: int, d: int) -> tuple[int, int]: - """ - Compute factors p and q from the private exponent d. We assume that n has - no more than two factors. This function is adapted from code in PyCrypto. - """ - # reject invalid values early - if d <= 1 or e <= 1: - raise ValueError("d, e can't be <= 1") - if 17 != pow(17, e * d, n): - raise ValueError("n, d, e don't match") - # See 8.2.2(i) in Handbook of Applied Cryptography. - ktot = d * e - 1 - # The quantity d*e-1 is a multiple of phi(n), even, - # and can be represented as t*2^s. - t = ktot - while t % 2 == 0: - t = t // 2 - # Cycle through all multiplicative inverses in Zn. - # The algorithm is non-deterministic, but there is a 50% chance - # any candidate a leads to successful factoring. - # See "Digitalized Signatures and Public Key Functions as Intractable - # as Factorization", M. Rabin, 1979 - spotted = False - tries = 0 - while not spotted and tries < _MAX_RECOVERY_ATTEMPTS: - a = random.randint(2, n - 1) - tries += 1 - k = t - # Cycle through all values a^{t*2^i}=a^k - while k < ktot: - cand = pow(a, k, n) - # Check if a^k is a non-trivial root of unity (mod n) - if cand != 1 and cand != (n - 1) and pow(cand, 2, n) == 1: - # We have found a number such that (cand-1)(cand+1)=0 (mod n). - # Either of the terms divides n. - p = gcd(cand + 1, n) - spotted = True - break - k *= 2 - if not spotted: - raise ValueError("Unable to compute factors p and q from exponent d.") - # Found ! - q, r = divmod(n, p) - assert r == 0 - p, q = sorted((p, q), reverse=True) - return (p, q) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/types.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/types.py deleted file mode 100644 index dfd12ce..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/types.py +++ /dev/null @@ -1,123 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import typing - -from cryptography import utils -from cryptography.hazmat.primitives.asymmetric import ( - dh, - dsa, - ec, - ed448, - ed25519, - mldsa, - mlkem, - rsa, - x448, - x25519, -) - -# Every asymmetric key type -PublicKeyTypes = typing.Union[ - dh.DHPublicKey, - dsa.DSAPublicKey, - rsa.RSAPublicKey, - ec.EllipticCurvePublicKey, - ed25519.Ed25519PublicKey, - ed448.Ed448PublicKey, - mldsa.MLDSA44PublicKey, - mldsa.MLDSA65PublicKey, - mldsa.MLDSA87PublicKey, - mlkem.MLKEM768PublicKey, - mlkem.MLKEM1024PublicKey, - x25519.X25519PublicKey, - x448.X448PublicKey, -] -PUBLIC_KEY_TYPES = PublicKeyTypes -utils.deprecated( - PUBLIC_KEY_TYPES, - __name__, - "Use PublicKeyTypes instead", - utils.DeprecatedIn40, - name="PUBLIC_KEY_TYPES", -) -# Every asymmetric key type -PrivateKeyTypes = typing.Union[ - dh.DHPrivateKey, - ed25519.Ed25519PrivateKey, - ed448.Ed448PrivateKey, - mldsa.MLDSA44PrivateKey, - mldsa.MLDSA65PrivateKey, - mldsa.MLDSA87PrivateKey, - mlkem.MLKEM768PrivateKey, - mlkem.MLKEM1024PrivateKey, - rsa.RSAPrivateKey, - dsa.DSAPrivateKey, - ec.EllipticCurvePrivateKey, - x25519.X25519PrivateKey, - x448.X448PrivateKey, -] -PRIVATE_KEY_TYPES = PrivateKeyTypes -utils.deprecated( - PRIVATE_KEY_TYPES, - __name__, - "Use PrivateKeyTypes instead", - utils.DeprecatedIn40, - name="PRIVATE_KEY_TYPES", -) -# Just the key types we allow to be used for x509 signing. This mirrors -# the certificate public key types -CertificateIssuerPrivateKeyTypes = typing.Union[ - ed25519.Ed25519PrivateKey, - ed448.Ed448PrivateKey, - rsa.RSAPrivateKey, - dsa.DSAPrivateKey, - ec.EllipticCurvePrivateKey, -] -CERTIFICATE_PRIVATE_KEY_TYPES = CertificateIssuerPrivateKeyTypes -utils.deprecated( - CERTIFICATE_PRIVATE_KEY_TYPES, - __name__, - "Use CertificateIssuerPrivateKeyTypes instead", - utils.DeprecatedIn40, - name="CERTIFICATE_PRIVATE_KEY_TYPES", -) -# Just the key types we allow to be used for x509 signing. This mirrors -# the certificate private key types -CertificateIssuerPublicKeyTypes = typing.Union[ - dsa.DSAPublicKey, - rsa.RSAPublicKey, - ec.EllipticCurvePublicKey, - ed25519.Ed25519PublicKey, - ed448.Ed448PublicKey, -] -CERTIFICATE_ISSUER_PUBLIC_KEY_TYPES = CertificateIssuerPublicKeyTypes -utils.deprecated( - CERTIFICATE_ISSUER_PUBLIC_KEY_TYPES, - __name__, - "Use CertificateIssuerPublicKeyTypes instead", - utils.DeprecatedIn40, - name="CERTIFICATE_ISSUER_PUBLIC_KEY_TYPES", -) -# This type removes DHPublicKey. x448/x25519 can be a public key -# but cannot be used in signing so they are allowed here. -CertificatePublicKeyTypes = typing.Union[ - dsa.DSAPublicKey, - rsa.RSAPublicKey, - ec.EllipticCurvePublicKey, - ed25519.Ed25519PublicKey, - ed448.Ed448PublicKey, - x25519.X25519PublicKey, - x448.X448PublicKey, -] -CERTIFICATE_PUBLIC_KEY_TYPES = CertificatePublicKeyTypes -utils.deprecated( - CERTIFICATE_PUBLIC_KEY_TYPES, - __name__, - "Use CertificatePublicKeyTypes instead", - utils.DeprecatedIn40, - name="CERTIFICATE_PUBLIC_KEY_TYPES", -) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py deleted file mode 100644 index c01c342..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py +++ /dev/null @@ -1,28 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.bindings._rust import asn1 -from cryptography.hazmat.primitives import hashes - -decode_dss_signature = asn1.decode_dss_signature -encode_dss_signature = asn1.encode_dss_signature - - -class NoDigestInfo: - pass - - -class Prehashed: - def __init__(self, algorithm: hashes.HashAlgorithm): - if not isinstance(algorithm, hashes.HashAlgorithm): - raise TypeError("Expected instance of HashAlgorithm.") - - self._algorithm = algorithm - self._digest_size = algorithm.digest_size - - @property - def digest_size(self) -> int: - return self._digest_size diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py deleted file mode 100644 index 7498998..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py +++ /dev/null @@ -1,134 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography.exceptions import UnsupportedAlgorithm, _Reasons -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import _serialization -from cryptography.utils import Buffer - - -class X25519PublicKey(metaclass=abc.ABCMeta): - @classmethod - def from_public_bytes(cls, data: bytes) -> X25519PublicKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.x25519_supported(): - raise UnsupportedAlgorithm( - "X25519 is not supported by this version of OpenSSL.", - _Reasons.UNSUPPORTED_EXCHANGE_ALGORITHM, - ) - - return rust_openssl.x25519.from_public_bytes(data) - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - The serialized bytes of the public key. - """ - - @abc.abstractmethod - def public_bytes_raw(self) -> bytes: - """ - The raw bytes of the public key. - Equivalent to public_bytes(Raw, Raw). - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> X25519PublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> X25519PublicKey: - """ - Returns a deep copy. - """ - - -X25519PublicKey.register(rust_openssl.x25519.X25519PublicKey) - - -class X25519PrivateKey(metaclass=abc.ABCMeta): - @classmethod - def generate(cls) -> X25519PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.x25519_supported(): - raise UnsupportedAlgorithm( - "X25519 is not supported by this version of OpenSSL.", - _Reasons.UNSUPPORTED_EXCHANGE_ALGORITHM, - ) - return rust_openssl.x25519.generate_key() - - @classmethod - def from_private_bytes(cls, data: Buffer) -> X25519PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.x25519_supported(): - raise UnsupportedAlgorithm( - "X25519 is not supported by this version of OpenSSL.", - _Reasons.UNSUPPORTED_EXCHANGE_ALGORITHM, - ) - - return rust_openssl.x25519.from_private_bytes(data) - - @abc.abstractmethod - def public_key(self) -> X25519PublicKey: - """ - Returns the public key associated with this private key - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - The serialized bytes of the private key. - """ - - @abc.abstractmethod - def private_bytes_raw(self) -> bytes: - """ - The raw bytes of the private key. - Equivalent to private_bytes(Raw, Raw, NoEncryption()). - """ - - @abc.abstractmethod - def exchange(self, peer_public_key: X25519PublicKey) -> bytes: - """ - Performs a key exchange operation using the provided peer's public key. - """ - - @abc.abstractmethod - def __copy__(self) -> X25519PrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> X25519PrivateKey: - """ - Returns a deep copy. - """ - - -X25519PrivateKey.register(rust_openssl.x25519.X25519PrivateKey) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py deleted file mode 100644 index b9dc826..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py +++ /dev/null @@ -1,137 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography.exceptions import UnsupportedAlgorithm, _Reasons -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import _serialization -from cryptography.utils import Buffer - - -class X448PublicKey(metaclass=abc.ABCMeta): - @classmethod - def from_public_bytes(cls, data: bytes) -> X448PublicKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.x448_supported(): - raise UnsupportedAlgorithm( - "X448 is not supported by this version of OpenSSL.", - _Reasons.UNSUPPORTED_EXCHANGE_ALGORITHM, - ) - - return rust_openssl.x448.from_public_bytes(data) - - @abc.abstractmethod - def public_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PublicFormat, - ) -> bytes: - """ - The serialized bytes of the public key. - """ - - @abc.abstractmethod - def public_bytes_raw(self) -> bytes: - """ - The raw bytes of the public key. - Equivalent to public_bytes(Raw, Raw). - """ - - @abc.abstractmethod - def __eq__(self, other: object) -> bool: - """ - Checks equality. - """ - - @abc.abstractmethod - def __copy__(self) -> X448PublicKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> X448PublicKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "x448"): - X448PublicKey.register(rust_openssl.x448.X448PublicKey) - - -class X448PrivateKey(metaclass=abc.ABCMeta): - @classmethod - def generate(cls) -> X448PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.x448_supported(): - raise UnsupportedAlgorithm( - "X448 is not supported by this version of OpenSSL.", - _Reasons.UNSUPPORTED_EXCHANGE_ALGORITHM, - ) - - return rust_openssl.x448.generate_key() - - @classmethod - def from_private_bytes(cls, data: Buffer) -> X448PrivateKey: - from cryptography.hazmat.backends.openssl.backend import backend - - if not backend.x448_supported(): - raise UnsupportedAlgorithm( - "X448 is not supported by this version of OpenSSL.", - _Reasons.UNSUPPORTED_EXCHANGE_ALGORITHM, - ) - - return rust_openssl.x448.from_private_bytes(data) - - @abc.abstractmethod - def public_key(self) -> X448PublicKey: - """ - Returns the public key associated with this private key - """ - - @abc.abstractmethod - def private_bytes( - self, - encoding: _serialization.Encoding, - format: _serialization.PrivateFormat, - encryption_algorithm: _serialization.KeySerializationEncryption, - ) -> bytes: - """ - The serialized bytes of the private key. - """ - - @abc.abstractmethod - def private_bytes_raw(self) -> bytes: - """ - The raw bytes of the private key. - Equivalent to private_bytes(Raw, Raw, NoEncryption()). - """ - - @abc.abstractmethod - def exchange(self, peer_public_key: X448PublicKey) -> bytes: - """ - Performs a key exchange operation using the provided peer's public key. - """ - - @abc.abstractmethod - def __copy__(self) -> X448PrivateKey: - """ - Returns a copy. - """ - - @abc.abstractmethod - def __deepcopy__(self, memo: dict) -> X448PrivateKey: - """ - Returns a deep copy. - """ - - -if hasattr(rust_openssl, "x448"): - X448PrivateKey.register(rust_openssl.x448.X448PrivateKey) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py deleted file mode 100644 index 10c15d0..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.primitives._cipheralgorithm import ( - BlockCipherAlgorithm, - CipherAlgorithm, -) -from cryptography.hazmat.primitives.ciphers.base import ( - AEADCipherContext, - AEADDecryptionContext, - AEADEncryptionContext, - Cipher, - CipherContext, -) - -__all__ = [ - "AEADCipherContext", - "AEADDecryptionContext", - "AEADEncryptionContext", - "BlockCipherAlgorithm", - "Cipher", - "CipherAlgorithm", - "CipherContext", -] diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 1be0c2ee97c3b8eb2b6cad64b7ca247f2ec6315a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 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 D*a)rF diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__pycache__/modes.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/__pycache__/modes.cpython-39.pyc deleted file mode 100644 index 044a864373b4882fd057ffcca072360bc8f95fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5576 zcmb_gOLH5?5#AS`1WE8IKJ-{6mMu6EASo0jRcwb3F^&#`RV1azn^bLlm0=wn%SP7otd8QZ@PQd z86M6m_@(|)*nM_RQT|1Z-d_rhB}GyFN2;PQg{huWQ!P~`TJyA;Zt0TNJ)@Se61Ak2 zlx@RH)zVg4(h1NRD4wMHeK0iCz!Mn z9}}t~xoL3EOYVgpZU)?ol6xuUGIK*ITz*NqE~wFvQ?EAyCvY2eAI(H7a6P}EMU#)~ zeyiDRh=8+YZ>J&LpjwO4_Bwa`_*H%NXDb+C;BgmE{S!1XZpCX<_Ez0ym5Y;cqh}a2 z?qP#*JZI_o3(UUU3aY#wxD_ePrn7_2^T(YJ>TcjVo*T-}C%h6g1p0@M`^$}bg=XtA zHlJ~4ub@X$cBRTId$z-UdygO39DPj(zzy4jR+Nkl;mg`raIlG((CCn0( z>U=w}eJ=L7u!GO*c2hJe-1kexeO})$dG6NYLaBKWR2%gl7w?sPH{jQsPG!&8;eM$i z4w^w@M>x&uL8L zY2qGbN?xOfyq{R;~MEsDdcc{8T6~RorOO*s6 z&EK=;2|})-<2K64u};flP5jr6H955*Msun>DF3Pk$a>Poqg>?;&)P7D-< z#8^j>&XzokAkJ$-kSksyAyAzX;+uluAm6gOx!(0HGAIv*|C{6A9SGEkf3bf^+H$^Q zcR>9;M(DbOUxMEoVK&#_-W8B*>FWw;ahn#xAyE`9%wXF^DV}r%f&z~yp&GnK;hLC{e*sx5% z(%>W{XM~MPPKM7 zt)ouK;E;{;#+MWhU;Y+V_@Hmf(+$d79082i%{Y)yK#3J{b#Xzu@0&MnEtnLw3q|o0 znv`}N&YxCGceal{G#A48(^mr%>g&D`j&J0_BKIycJLF&S zbwJ7#8Dt4-)IPm?;GD zFbDj+z1LXA3Vpo>De(6w$6g~v%V1C6Iy({Ops8v1f9RQdmZt7&`ZqZ!GDH{BPtZ8! zpa8`~&8M_a4UFByp(b;bB-7@U-;nD91OevtAWbwNs{!!qL5AsV4Ujcr$V!+d%Hb6V z*qcXe(M8mZFAnBO0`(z;2;b|2sEWJ^Q(jqX2uf<4x*4WobQKHP*lFIvXpy0cb|uIS zSmTe&8;>77`ec1`?Y_PG;L*?5)}yRkJx(s9^}0BOH;|W$8#FY3@|rCnc@|~lE&qff zuXc)>#UH7MYW&wQvJ!FGSK%C4roT_7Yah9$!cf0}Z%x_{m!H~e<<<31ACd4YpKh*g zSR<0VyxeK`C^zT2D^OU&Ahm@T{V)zw4ZG1NoX@c)vM7pwuf5y~zzq4?$lm1>6n1XcW!ezSkZntpv z#;sRSPGjYIO)EXLb*`6Hq{$Ir@kp1W2pxNb_}Nz z*C5X|Wgpg+eyjEll?W6=v{sI)VX8)`8l_4mSagRMlx11(e#3MfT+0iKys?X`G?wyf zu}Br2m?+D5Q*eA9<4m4rYvg{H@u0qNr^k16FA!1sgZSISN93yfGAg>#<`JRjpEq*) e@qaRr)AJ+w3;AR|KYquMenvC!{C6@pxb;7?5)O_4 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/aead.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/aead.py deleted file mode 100644 index c8a582d..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/aead.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl - -__all__ = [ - "AESCCM", - "AESGCM", - "AESGCMSIV", - "AESOCB3", - "AESSIV", - "ChaCha20Poly1305", -] - -AESGCM = rust_openssl.aead.AESGCM -ChaCha20Poly1305 = rust_openssl.aead.ChaCha20Poly1305 -AESCCM = rust_openssl.aead.AESCCM -AESSIV = rust_openssl.aead.AESSIV -AESOCB3 = rust_openssl.aead.AESOCB3 -AESGCMSIV = rust_openssl.aead.AESGCMSIV diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py deleted file mode 100644 index 6b20dd5..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py +++ /dev/null @@ -1,138 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography import utils -from cryptography.hazmat.decrepit.ciphers.algorithms import ( - ARC4 as ARC4, -) -from cryptography.hazmat.decrepit.ciphers.algorithms import ( - CAST5 as CAST5, -) -from cryptography.hazmat.decrepit.ciphers.algorithms import ( - IDEA as IDEA, -) -from cryptography.hazmat.decrepit.ciphers.algorithms import ( - SEED as SEED, -) -from cryptography.hazmat.decrepit.ciphers.algorithms import ( - Blowfish as Blowfish, -) -from cryptography.hazmat.decrepit.ciphers.algorithms import ( - Camellia as Camellia, -) -from cryptography.hazmat.decrepit.ciphers.algorithms import ( - TripleDES as TripleDES, -) -from cryptography.hazmat.primitives._cipheralgorithm import _verify_key_size -from cryptography.hazmat.primitives.ciphers import ( - BlockCipherAlgorithm, - CipherAlgorithm, -) - - -class AES(BlockCipherAlgorithm): - name = "AES" - block_size = 128 - # 512 added to support AES-256-XTS, which uses 512-bit keys - key_sizes = frozenset([128, 192, 256, 512]) - - def __init__(self, key: utils.Buffer): - self.key = _verify_key_size(self, key) - - @property - def key_size(self) -> int: - return len(self.key) * 8 - - -class AES128(BlockCipherAlgorithm): - name = "AES" - block_size = 128 - key_sizes = frozenset([128]) - key_size = 128 - - def __init__(self, key: utils.Buffer): - self.key = _verify_key_size(self, key) - - -class AES256(BlockCipherAlgorithm): - name = "AES" - block_size = 128 - key_sizes = frozenset([256]) - key_size = 256 - - def __init__(self, key: utils.Buffer): - self.key = _verify_key_size(self, key) - - -utils.deprecated( - Camellia, - __name__, - "Camellia has been moved to " - "cryptography.hazmat.decrepit.ciphers.algorithms.Camellia and " - "will be removed from " - "cryptography.hazmat.primitives.ciphers.algorithms in 49.0.0.", - utils.DeprecatedIn43, - name="Camellia", -) - - -utils.deprecated( - ARC4, - __name__, - "ARC4 has been moved to " - "cryptography.hazmat.decrepit.ciphers.algorithms.ARC4 and " - "will be removed from " - "cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.", - utils.DeprecatedIn43, - name="ARC4", -) - - -utils.deprecated( - TripleDES, - __name__, - "TripleDES has been moved to " - "cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and " - "will be removed from " - "cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.", - utils.DeprecatedIn43, - name="TripleDES", -) - - -class ChaCha20(CipherAlgorithm): - name = "ChaCha20" - key_sizes = frozenset([256]) - - def __init__(self, key: utils.Buffer, nonce: utils.Buffer): - self.key = _verify_key_size(self, key) - utils._check_byteslike("nonce", nonce) - - if len(nonce) != 16: - raise ValueError("nonce must be 128-bits (16 bytes)") - - self._nonce = nonce - - @property - def nonce(self) -> utils.Buffer: - return self._nonce - - @property - def key_size(self) -> int: - return len(self.key) * 8 - - -class SM4(BlockCipherAlgorithm): - name = "SM4" - block_size = 128 - key_sizes = frozenset([128]) - - def __init__(self, key: bytes): - self.key = _verify_key_size(self, key) - - @property - def key_size(self) -> int: - return len(self.key) * 8 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/base.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/base.py deleted file mode 100644 index 24fceea..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/base.py +++ /dev/null @@ -1,146 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc -import typing - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives._cipheralgorithm import CipherAlgorithm -from cryptography.hazmat.primitives.ciphers import modes -from cryptography.utils import Buffer - - -class CipherContext(metaclass=abc.ABCMeta): - @abc.abstractmethod - def update(self, data: Buffer) -> bytes: - """ - Processes the provided bytes through the cipher and returns the results - as bytes. - """ - - @abc.abstractmethod - def update_into(self, data: Buffer, buf: Buffer) -> int: - """ - Processes the provided bytes and writes the resulting data into the - provided buffer. Returns the number of bytes written. - """ - - @abc.abstractmethod - def finalize(self) -> bytes: - """ - Returns the results of processing the final block as bytes. - """ - - @abc.abstractmethod - def reset_nonce(self, nonce: bytes) -> None: - """ - Resets the nonce for the cipher context to the provided value. - Raises an exception if it does not support reset or if the - provided nonce does not have a valid length. - """ - - -class AEADCipherContext(CipherContext, metaclass=abc.ABCMeta): - @abc.abstractmethod - def authenticate_additional_data(self, data: Buffer) -> None: - """ - Authenticates the provided bytes. - """ - - -class AEADDecryptionContext(AEADCipherContext, metaclass=abc.ABCMeta): - @abc.abstractmethod - def finalize_with_tag(self, tag: bytes) -> bytes: - """ - Returns the results of processing the final block as bytes and allows - delayed passing of the authentication tag. - """ - - -class AEADEncryptionContext(AEADCipherContext, metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def tag(self) -> bytes: - """ - Returns tag bytes. This is only available after encryption is - finalized. - """ - - -Mode = typing.TypeVar( - "Mode", bound=typing.Optional[modes.Mode], covariant=True -) - - -class Cipher(typing.Generic[Mode]): - def __init__( - self, - algorithm: CipherAlgorithm, - mode: Mode, - backend: typing.Any = None, - ) -> None: - if not isinstance(algorithm, CipherAlgorithm): - raise TypeError("Expected interface of CipherAlgorithm.") - - if mode is not None: - # mypy needs this assert to narrow the type from our generic - # type. Maybe it won't some time in the future. - assert isinstance(mode, modes.Mode) - mode.validate_for_algorithm(algorithm) - - self.algorithm = algorithm - self.mode = mode - - @typing.overload - def encryptor( - self: Cipher[modes.ModeWithAuthenticationTag], - ) -> AEADEncryptionContext: ... - - @typing.overload - def encryptor( - self: _CIPHER_TYPE, - ) -> CipherContext: ... - - def encryptor(self): - if isinstance(self.mode, modes.ModeWithAuthenticationTag): - if self.mode.tag is not None: - raise ValueError( - "Authentication tag must be None when encrypting." - ) - - return rust_openssl.ciphers.create_encryption_ctx( - self.algorithm, self.mode - ) - - @typing.overload - def decryptor( - self: Cipher[modes.ModeWithAuthenticationTag], - ) -> AEADDecryptionContext: ... - - @typing.overload - def decryptor( - self: _CIPHER_TYPE, - ) -> CipherContext: ... - - def decryptor(self): - return rust_openssl.ciphers.create_decryption_ctx( - self.algorithm, self.mode - ) - - -_CIPHER_TYPE = Cipher[ - typing.Union[ - modes.ModeWithNonce, - modes.ModeWithTweak, - modes.ECB, - modes.ModeWithInitializationVector, - None, - ] -] - -CipherContext.register(rust_openssl.ciphers.CipherContext) -AEADEncryptionContext.register(rust_openssl.ciphers.AEADEncryptionContext) -AEADDecryptionContext.register(rust_openssl.ciphers.AEADDecryptionContext) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/modes.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/modes.py deleted file mode 100644 index 0f1c217..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/ciphers/modes.py +++ /dev/null @@ -1,192 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography import utils -from cryptography.exceptions import UnsupportedAlgorithm, _Reasons -from cryptography.hazmat.decrepit.ciphers.modes import CFB as CFB -from cryptography.hazmat.decrepit.ciphers.modes import CFB8 as CFB8 -from cryptography.hazmat.decrepit.ciphers.modes import OFB as OFB -from cryptography.hazmat.primitives._cipheralgorithm import ( - BlockCipherAlgorithm, - CipherAlgorithm, -) -from cryptography.hazmat.primitives._modes import ( - Mode as Mode, -) -from cryptography.hazmat.primitives._modes import ( - ModeWithAuthenticationTag as ModeWithAuthenticationTag, -) -from cryptography.hazmat.primitives._modes import ( - ModeWithInitializationVector as ModeWithInitializationVector, -) -from cryptography.hazmat.primitives._modes import ( - ModeWithNonce as ModeWithNonce, -) -from cryptography.hazmat.primitives._modes import ( - ModeWithTweak as ModeWithTweak, -) -from cryptography.hazmat.primitives._modes import ( - _check_aes_key_length, - _check_iv_and_key_length, - _check_nonce_length, -) -from cryptography.hazmat.primitives.ciphers import algorithms - - -class CBC(ModeWithInitializationVector): - name = "CBC" - - def __init__(self, initialization_vector: utils.Buffer): - utils._check_byteslike("initialization_vector", initialization_vector) - self._initialization_vector = initialization_vector - - @property - def initialization_vector(self) -> utils.Buffer: - return self._initialization_vector - - validate_for_algorithm = _check_iv_and_key_length - - -class XTS(ModeWithTweak): - name = "XTS" - - def __init__(self, tweak: utils.Buffer): - utils._check_byteslike("tweak", tweak) - - if len(tweak) != 16: - raise ValueError("tweak must be 128-bits (16 bytes)") - - self._tweak = tweak - - @property - def tweak(self) -> utils.Buffer: - return self._tweak - - def validate_for_algorithm(self, algorithm: CipherAlgorithm) -> None: - if isinstance(algorithm, (algorithms.AES128, algorithms.AES256)): - raise TypeError( - "The AES128 and AES256 classes do not support XTS, please use " - "the standard AES class instead." - ) - - if algorithm.key_size not in (256, 512): - raise ValueError( - "The XTS specification requires a 256-bit key for AES-128-XTS" - " and 512-bit key for AES-256-XTS" - ) - - -class ECB(Mode): - name = "ECB" - - validate_for_algorithm = _check_aes_key_length - - -class CTR(ModeWithNonce): - name = "CTR" - - def __init__(self, nonce: utils.Buffer): - utils._check_byteslike("nonce", nonce) - self._nonce = nonce - - @property - def nonce(self) -> utils.Buffer: - return self._nonce - - def validate_for_algorithm(self, algorithm: CipherAlgorithm) -> None: - _check_aes_key_length(self, algorithm) - _check_nonce_length(self.nonce, self.name, algorithm) - - -class GCM(ModeWithInitializationVector, ModeWithAuthenticationTag): - name = "GCM" - _MAX_ENCRYPTED_BYTES = (2**39 - 256) // 8 - _MAX_AAD_BYTES = (2**64) // 8 - - def __init__( - self, - initialization_vector: utils.Buffer, - tag: bytes | None = None, - min_tag_length: int = 16, - ): - # OpenSSL 3.0.0 constrains GCM IVs to [64, 1024] bits inclusive - # This is a sane limit anyway so we'll enforce it here. - utils._check_byteslike("initialization_vector", initialization_vector) - if len(initialization_vector) < 8 or len(initialization_vector) > 128: - raise ValueError( - "initialization_vector must be between 8 and 128 bytes (64 " - "and 1024 bits)." - ) - self._initialization_vector = initialization_vector - if tag is not None: - utils._check_bytes("tag", tag) - if min_tag_length < 4: - raise ValueError("min_tag_length must be >= 4") - if len(tag) < min_tag_length: - raise ValueError( - f"Authentication tag must be {min_tag_length} bytes or " - "longer." - ) - self._tag = tag - self._min_tag_length = min_tag_length - - @property - def tag(self) -> bytes | None: - return self._tag - - @property - def initialization_vector(self) -> utils.Buffer: - return self._initialization_vector - - def validate_for_algorithm(self, algorithm: CipherAlgorithm) -> None: - _check_aes_key_length(self, algorithm) - if not isinstance(algorithm, BlockCipherAlgorithm): - raise UnsupportedAlgorithm( - "GCM requires a block cipher algorithm", - _Reasons.UNSUPPORTED_CIPHER, - ) - block_size_bytes = algorithm.block_size // 8 - if self._tag is not None and len(self._tag) > block_size_bytes: - raise ValueError( - f"Authentication tag cannot be more than {block_size_bytes} " - "bytes." - ) - - -utils.deprecated( - OFB, - __name__, - "OFB has been moved to " - "cryptography.hazmat.decrepit.ciphers.modes.OFB and " - "will be removed from " - "cryptography.hazmat.primitives.ciphers.modes in 49.0.0.", - utils.DeprecatedIn47, - name="OFB", -) - - -utils.deprecated( - CFB, - __name__, - "CFB has been moved to " - "cryptography.hazmat.decrepit.ciphers.modes.CFB and " - "will be removed from " - "cryptography.hazmat.primitives.ciphers.modes in 49.0.0.", - utils.DeprecatedIn47, - name="CFB", -) - - -utils.deprecated( - CFB8, - __name__, - "CFB8 has been moved to " - "cryptography.hazmat.decrepit.ciphers.modes.CFB8 and " - "will be removed from " - "cryptography.hazmat.primitives.ciphers.modes in 49.0.0.", - utils.DeprecatedIn47, - name="CFB8", -) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/cmac.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/cmac.py deleted file mode 100644 index 2c67ce2..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/cmac.py +++ /dev/null @@ -1,10 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl - -__all__ = ["CMAC"] -CMAC = rust_openssl.cmac.CMAC diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/constant_time.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/constant_time.py deleted file mode 100644 index 3975c71..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/constant_time.py +++ /dev/null @@ -1,14 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import hmac - - -def bytes_eq(a: bytes, b: bytes) -> bool: - if not isinstance(a, bytes) or not isinstance(b, bytes): - raise TypeError("a and b must be bytes.") - - return hmac.compare_digest(a, b) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hashes.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hashes.py deleted file mode 100644 index 4b55ec3..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hashes.py +++ /dev/null @@ -1,246 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.utils import Buffer - -__all__ = [ - "MD5", - "SHA1", - "SHA3_224", - "SHA3_256", - "SHA3_384", - "SHA3_512", - "SHA224", - "SHA256", - "SHA384", - "SHA512", - "SHA512_224", - "SHA512_256", - "SHAKE128", - "SHAKE256", - "SM3", - "BLAKE2b", - "BLAKE2s", - "ExtendableOutputFunction", - "Hash", - "HashAlgorithm", - "HashContext", - "XOFHash", -] - - -class HashAlgorithm(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def name(self) -> str: - """ - A string naming this algorithm (e.g. "sha256", "md5"). - """ - - @property - @abc.abstractmethod - def digest_size(self) -> int: - """ - The size of the resulting digest in bytes. - """ - - @property - @abc.abstractmethod - def block_size(self) -> int | None: - """ - The internal block size of the hash function, or None if the hash - function does not use blocks internally (e.g. SHA3). - """ - - -class HashContext(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def algorithm(self) -> HashAlgorithm: - """ - A HashAlgorithm that will be used by this context. - """ - - @abc.abstractmethod - def update(self, data: Buffer) -> None: - """ - Processes the provided bytes through the hash. - """ - - @abc.abstractmethod - def finalize(self) -> bytes: - """ - Finalizes the hash context and returns the hash digest as bytes. - """ - - @abc.abstractmethod - def copy(self) -> HashContext: - """ - Return a HashContext that is a copy of the current context. - """ - - -Hash = rust_openssl.hashes.Hash -HashContext.register(Hash) - -XOFHash = rust_openssl.hashes.XOFHash - - -class ExtendableOutputFunction(metaclass=abc.ABCMeta): - """ - An interface for extendable output functions. - """ - - -class SHA1(HashAlgorithm): - name = "sha1" - digest_size = 20 - block_size = 64 - - -class SHA512_224(HashAlgorithm): # noqa: N801 - name = "sha512-224" - digest_size = 28 - block_size = 128 - - -class SHA512_256(HashAlgorithm): # noqa: N801 - name = "sha512-256" - digest_size = 32 - block_size = 128 - - -class SHA224(HashAlgorithm): - name = "sha224" - digest_size = 28 - block_size = 64 - - -class SHA256(HashAlgorithm): - name = "sha256" - digest_size = 32 - block_size = 64 - - -class SHA384(HashAlgorithm): - name = "sha384" - digest_size = 48 - block_size = 128 - - -class SHA512(HashAlgorithm): - name = "sha512" - digest_size = 64 - block_size = 128 - - -class SHA3_224(HashAlgorithm): # noqa: N801 - name = "sha3-224" - digest_size = 28 - block_size = None - - -class SHA3_256(HashAlgorithm): # noqa: N801 - name = "sha3-256" - digest_size = 32 - block_size = None - - -class SHA3_384(HashAlgorithm): # noqa: N801 - name = "sha3-384" - digest_size = 48 - block_size = None - - -class SHA3_512(HashAlgorithm): # noqa: N801 - name = "sha3-512" - digest_size = 64 - block_size = None - - -class SHAKE128(HashAlgorithm, ExtendableOutputFunction): - name = "shake128" - block_size = None - - def __init__(self, digest_size: int): - if not isinstance(digest_size, int): - raise TypeError("digest_size must be an integer") - - if digest_size < 1: - raise ValueError("digest_size must be a positive integer") - - self._digest_size = digest_size - - @property - def digest_size(self) -> int: - return self._digest_size - - -class SHAKE256(HashAlgorithm, ExtendableOutputFunction): - name = "shake256" - block_size = None - - def __init__(self, digest_size: int): - if not isinstance(digest_size, int): - raise TypeError("digest_size must be an integer") - - if digest_size < 1: - raise ValueError("digest_size must be a positive integer") - - self._digest_size = digest_size - - @property - def digest_size(self) -> int: - return self._digest_size - - -class MD5(HashAlgorithm): - name = "md5" - digest_size = 16 - block_size = 64 - - -class BLAKE2b(HashAlgorithm): - name = "blake2b" - _max_digest_size = 64 - _min_digest_size = 1 - block_size = 128 - - def __init__(self, digest_size: int): - if digest_size != 64: - raise ValueError("Digest size must be 64") - - self._digest_size = digest_size - - @property - def digest_size(self) -> int: - return self._digest_size - - -class BLAKE2s(HashAlgorithm): - name = "blake2s" - block_size = 64 - _max_digest_size = 32 - _min_digest_size = 1 - - def __init__(self, digest_size: int): - if digest_size != 32: - raise ValueError("Digest size must be 32") - - self._digest_size = digest_size - - @property - def digest_size(self) -> int: - return self._digest_size - - -class SM3(HashAlgorithm): - name = "sm3" - digest_size = 32 - block_size = 64 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hmac.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hmac.py deleted file mode 100644 index a9442d5..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hmac.py +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.primitives import hashes - -__all__ = ["HMAC"] - -HMAC = rust_openssl.hmac.HMAC -hashes.HashContext.register(HMAC) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hpke.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hpke.py deleted file mode 100644 index c802808..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/hpke.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl - -AEAD = rust_openssl.hpke.AEAD -KDF = rust_openssl.hpke.KDF -KEM = rust_openssl.hpke.KEM -MLKEM768X25519PrivateKey = rust_openssl.hpke.MLKEM768X25519PrivateKey -MLKEM768X25519PublicKey = rust_openssl.hpke.MLKEM768X25519PublicKey -MLKEM1024P384PrivateKey = rust_openssl.hpke.MLKEM1024P384PrivateKey -MLKEM1024P384PublicKey = rust_openssl.hpke.MLKEM1024P384PublicKey -Suite = rust_openssl.hpke.Suite - -__all__ = [ - "AEAD", - "KDF", - "KEM", - "MLKEM768X25519PrivateKey", - "MLKEM768X25519PublicKey", - "MLKEM1024P384PrivateKey", - "MLKEM1024P384PublicKey", - "Suite", -] diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__init__.py deleted file mode 100644 index 26c45bd..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__init__.py +++ /dev/null @@ -1,32 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography.utils import Buffer - - -class KeyDerivationFunction(metaclass=abc.ABCMeta): - @abc.abstractmethod - def derive(self, key_material: bytes) -> bytes: - """ - Deterministically generates and returns a new key based on the existing - key material. - """ - - @abc.abstractmethod - def derive_into(self, key_material: bytes, buffer: Buffer) -> None: - """ - Deterministically generates a new key based on the existing key - material and stores it in the provided buffer. - """ - - @abc.abstractmethod - def verify(self, key_material: bytes, expected_key: bytes) -> None: - """ - Checks whether the key generated by the key material matches the - expected derived key. Raises an exception if they do not match. - """ diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index ad431f401dc798ca80a22471509e4f6b3e237aaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1511 zcma)6&2AGh5Z=FR(k3aWDknIYV-92wAOsRZ&{l9j^Z>V9EN4B*I^Fdywv%>yLZSyQ zya4J8@F2XzUODj!oEYymOOQ&0qjkpP@ys{hjLn9_T?a?^`)Dx?9Os8!Y>o~tUO0}c zpP;}U?xs%WPF&Z@Ug}Le{P$Bo3nqcN& z1!k#a>}`OwvWwr5r3bk~a?rDPk?)f0aSV7o6H;g+VwR>QnS%s{PBmeYlg25^M8X-t zfMm)vaFR=65+HDH56XG#&swY@ja%)>H;h^Z8q%2x5r*omr(YkVB+nq43Z0y>1%Qb# zw236l4Ar1kpr|>Qv`~2rT1Vp*$W@ez>ElOHQJN%|564d;mybg%X)CVujnMd=^oPDH}@1MOlU1atuR+q-*lLi+eXRKW+?_kCs(%l1mu* zbvjizt$RduaVNIh>tW@a3h=q5W@`bqlWxn=`dO1+S52E-VF869qNx+ow-Oxd)&Sk8 zOkE1hV+WBowXsC}DUh<4uj)6cBWorjvsVY+*4g?{2X6kM?Q|Pe#3}N2z2PP+IL$n&o_%T6sX}hb2p| zcYHRDt35W=MzPpr$V$#t-vZdP)9t^Z)ECZ{QrTxt9S6h+d*F} zPMOxDu8lui;=6+JmAxFwR)4a;dBw&{BU0Vmitfw9qqlgx_O;POZTPD9tjXuOeLuB* L3`^g9$!E%wDbgs?q&5J=z_b(mrt zIBKIVrmKbHcHJd3!3b8T^pw$T$s4*^a!zwdZnltp_mc~4{!$*OMq>2?(?YDjpfdRr z6qI=0a;3E6PHJU+nd%;twXMhJpJ4g`MvhDKW zXY4q*!2n~%uZ!r5gPD4#Ys33ysv7>aE|6{$8opf>p zTV0ByS%tAU(AtwpLP&j>GXu4>4$Pb~#@m*$pU7-OJA~VBq|qIay|m30KLI%6z&fJf z=$HjFf?@7jvEJwdSWBuA)JR&nfBS~?lWVkkU7Zmt9lY%M;gZ*2$&-dGP2C?cbxo diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/concatkdf.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/concatkdf.cpython-39.pyc deleted file mode 100644 index 62f0fbecf522b451fe3cc016e750576461b63a98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmZvYv2NQi5Qa(FmSjclmKW&eq2kb@K!Ku2kRS*Uv>n<>3qea~iH<}HJW8#)2>$Md<)*AU((5I?wynbw}lWx1+?{G<%OkZtta|F@;n ziBL*gVWn2+WTZP#h>gS38yGLa$YH*`>Q&(%O`8j?3Sn<9udY9yUmQz;^`~t*C7kbj z+Z*8AxNszYS(vf2x-z1x$E+4VT4A%DRHalEX592>jZd7X9{GO<&yRIRw$jQ0FuN`H zX6eTko|Z|iWRy93teBVPDC@>4 ae&6b{Z{UOXi!WSDgOsL0OyeM-N$?jWVC*@l zgJxEQ6VK{-6BQ9g5N_jbQY6#4C>9XCrjWcj$3zQHJmm8-D0X=C6D{KpKW~Z09VTUK znH8-xu8ms-(wN%e{w)lbphZ7jUUzcsAC2M7?dA2DdcAs5O!B*BHl~zrI@@WWRJ%Z^ z__5Z5vTdoEs)oE`&keKrN=PnbX>zJNW3^9NWFG0iso&d_7LBl?2a`YWjSjtS=4tLo zM^45>Ln({}J;s!>x~B9O(*BPp`SU`mwgIvdrg~&s081J^uA%;s- zVS=&6Ug=dn@g4Tdpz4v(;h^kS5s5H*g;mwS1gD%d{~3QIi+f`I76bP}|1TOO-dPZMMokRJq9- zB`RUW2Ex~DkzLQhrp;D`&`1KGhC4N1C?HgkvLnM-uet&Tes z+jKjQy*F)Vi*NwjaaWTgdqIoVw9pb&c4Cqoilux@Jv^k+oqp+DNG9Y`r&P7tDEsuDjE2WluqH)q}Jycq!Y;3GLbHoWUKc&UcX_4-ktbcEh|nD!rB6gQH(Q`;|OENz0Av7 zQG3f{g#@8> zX6eox>M1B*ZJV=FEZtBO+?>y+v&rSv*~RsE&;*pON>eJJRC)Gfw7XQbG)1DAOzSXZ z4>>d8f{U1oM2A$B+9;PL8ahgU-ur(|DxP!0E70L4Ua7WQYdO}jtnn2jTpLhLk5ZOp zl)fOp@x|c*k+n$+ zu^%20%?<2Hw%o7;H2E8id`Ba{9*K2EA+^;)bU{+_}5HteoSDmDeXB-{8txNYgQ zR>pKrIo%n&@I3B%Fo=zZk3Yir4y-=S>W9G`!qmNwOQzN3!H&J#o=vHg$H5I2q_ndX z;fUhtEO(_KhQL+`Zq)Pv^VyFCq%^D#(e2QlkSq#Zs!Kk@Ak%%qw&I^^I3u3w*D!`l@OG#~q;K z298c5*b`Xku8r(%cK}45pTL}WqxUag@P2evXP)P;IBEyadUd!`B_MxzFaL8d{}-J5 iWE|(2ydS6Jb=ws~18v9vRH0&o48G!$aX@*!mq%{ham9{ zS(*3+ChUSl2kvlvj_$+f*laQhkO}WC+`VIjJ}fzno*_2~VPz6ZP=a$*;22|zo!lvU zv3tb5yk89B0Y>2NyqzEWFnAt<|6)7c6vsi*zeC~R(`-Q@?nX?AQZvmHJhqVjUiSZ3C3(R$Z$L%+WGh`e*0ZQ@Q0GfXxzZpzk5ZQBl)fT4 zG?ioedLmg_09kXDJ+K{sCK{9`0=AkekPS$x4}w;*+<;OfYCtq3=j+)esal bytes: - # RFC 3394 Key Wrap - 2.2.1 (index method) - encryptor = Cipher(AES(wrapping_key), ECB()).encryptor() - n = len(r) - for j in range(6): - for i in range(n): - # every encryption operation is a discrete 16 byte chunk (because - # AES has a 128-bit block size) and since we're using ECB it is - # safe to reuse the encryptor for the entire operation - b = encryptor.update(a + r[i]) - a = ( - int.from_bytes(b[:8], byteorder="big") ^ ((n * j) + i + 1) - ).to_bytes(length=8, byteorder="big") - r[i] = b[-8:] - - assert encryptor.finalize() == b"" - - return a + b"".join(r) - - -def aes_key_wrap( - wrapping_key: bytes, - key_to_wrap: bytes, - backend: typing.Any = None, -) -> bytes: - if len(wrapping_key) not in [16, 24, 32]: - raise ValueError("The wrapping key must be a valid AES key length") - - if len(key_to_wrap) < 16: - raise ValueError("The key to wrap must be at least 16 bytes") - - if len(key_to_wrap) % 8 != 0: - raise ValueError("The key to wrap must be a multiple of 8 bytes") - - a = b"\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6" - r = [key_to_wrap[i : i + 8] for i in range(0, len(key_to_wrap), 8)] - return _wrap_core(wrapping_key, a, r) - - -def _unwrap_core( - wrapping_key: bytes, - a: bytes, - r: list[bytes], -) -> tuple[bytes, list[bytes]]: - # Implement RFC 3394 Key Unwrap - 2.2.2 (index method) - decryptor = Cipher(AES(wrapping_key), ECB()).decryptor() - n = len(r) - for j in reversed(range(6)): - for i in reversed(range(n)): - atr = ( - int.from_bytes(a, byteorder="big") ^ ((n * j) + i + 1) - ).to_bytes(length=8, byteorder="big") + r[i] - # every decryption operation is a discrete 16 byte chunk so - # it is safe to reuse the decryptor for the entire operation - b = decryptor.update(atr) - a = b[:8] - r[i] = b[-8:] - - assert decryptor.finalize() == b"" - return a, r - - -def aes_key_wrap_with_padding( - wrapping_key: bytes, - key_to_wrap: bytes, - backend: typing.Any = None, -) -> bytes: - if len(wrapping_key) not in [16, 24, 32]: - raise ValueError("The wrapping key must be a valid AES key length") - - if not key_to_wrap or len(key_to_wrap) > 2**32: - raise ValueError("key_to_wrap must be between 1 and 2^32 bytes") - - aiv = b"\xa6\x59\x59\xa6" + len(key_to_wrap).to_bytes( - length=4, byteorder="big" - ) - # pad the key to wrap if necessary - pad = (8 - (len(key_to_wrap) % 8)) % 8 - key_to_wrap = key_to_wrap + b"\x00" * pad - if len(key_to_wrap) == 8: - # RFC 5649 - 4.1 - exactly 8 octets after padding - encryptor = Cipher(AES(wrapping_key), ECB()).encryptor() - b = encryptor.update(aiv + key_to_wrap) - assert encryptor.finalize() == b"" - return b - else: - r = [key_to_wrap[i : i + 8] for i in range(0, len(key_to_wrap), 8)] - return _wrap_core(wrapping_key, aiv, r) - - -def aes_key_unwrap_with_padding( - wrapping_key: bytes, - wrapped_key: bytes, - backend: typing.Any = None, -) -> bytes: - if len(wrapped_key) < 16: - raise InvalidUnwrap("Must be at least 16 bytes") - - if len(wrapping_key) not in [16, 24, 32]: - raise ValueError("The wrapping key must be a valid AES key length") - - if len(wrapped_key) == 16: - # RFC 5649 - 4.2 - exactly two 64-bit blocks - decryptor = Cipher(AES(wrapping_key), ECB()).decryptor() - out = decryptor.update(wrapped_key) - assert decryptor.finalize() == b"" - a = out[:8] - data = out[8:] - n = 1 - else: - r = [wrapped_key[i : i + 8] for i in range(0, len(wrapped_key), 8)] - encrypted_aiv = r.pop(0) - n = len(r) - a, r = _unwrap_core(wrapping_key, encrypted_aiv, r) - data = b"".join(r) - - # 1) Check that MSB(32,A) = A65959A6. - # 2) Check that 8*(n-1) < LSB(32,A) <= 8*n. If so, let - # MLI = LSB(32,A). - # 3) Let b = (8*n)-MLI, and then check that the rightmost b octets of - # the output data are zero. - mli = int.from_bytes(a[4:], byteorder="big") - b = (8 * n) - mli - if ( - not bytes_eq(a[:4], b"\xa6\x59\x59\xa6") - or not 8 * (n - 1) < mli <= 8 * n - or (b != 0 and not bytes_eq(data[-b:], b"\x00" * b)) - ): - raise InvalidUnwrap() - - if b == 0: - return data - else: - return data[:-b] - - -def aes_key_unwrap( - wrapping_key: bytes, - wrapped_key: bytes, - backend: typing.Any = None, -) -> bytes: - if len(wrapped_key) < 24: - raise InvalidUnwrap("Must be at least 24 bytes") - - if len(wrapped_key) % 8 != 0: - raise InvalidUnwrap("The wrapped key must be a multiple of 8 bytes") - - if len(wrapping_key) not in [16, 24, 32]: - raise ValueError("The wrapping key must be a valid AES key length") - - aiv = b"\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6" - r = [wrapped_key[i : i + 8] for i in range(0, len(wrapped_key), 8)] - a = r.pop(0) - a, r = _unwrap_core(wrapping_key, a, r) - if not bytes_eq(a, aiv): - raise InvalidUnwrap() - - return b"".join(r) - - -class InvalidUnwrap(Exception): - pass diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/padding.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/padding.py deleted file mode 100644 index f9cd1f1..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/padding.py +++ /dev/null @@ -1,69 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc - -from cryptography import utils -from cryptography.hazmat.bindings._rust import ( - ANSIX923PaddingContext, - ANSIX923UnpaddingContext, - PKCS7PaddingContext, - PKCS7UnpaddingContext, -) - - -class PaddingContext(metaclass=abc.ABCMeta): - @abc.abstractmethod - def update(self, data: utils.Buffer) -> bytes: - """ - Pads the provided bytes and returns any available data as bytes. - """ - - @abc.abstractmethod - def finalize(self) -> bytes: - """ - Finalize the padding, returns bytes. - """ - - -def _byte_padding_check(block_size: int) -> None: - if not (0 <= block_size <= 2040): - raise ValueError("block_size must be in range(0, 2041).") - - if block_size % 8 != 0: - raise ValueError("block_size must be a multiple of 8.") - - -class PKCS7: - def __init__(self, block_size: int): - _byte_padding_check(block_size) - self.block_size = block_size - - def padder(self) -> PaddingContext: - return PKCS7PaddingContext(self.block_size) - - def unpadder(self) -> PaddingContext: - return PKCS7UnpaddingContext(self.block_size) - - -PaddingContext.register(PKCS7PaddingContext) -PaddingContext.register(PKCS7UnpaddingContext) - - -class ANSIX923: - def __init__(self, block_size: int): - _byte_padding_check(block_size) - self.block_size = block_size - - def padder(self) -> PaddingContext: - return ANSIX923PaddingContext(self.block_size) - - def unpadder(self) -> PaddingContext: - return ANSIX923UnpaddingContext(self.block_size) - - -PaddingContext.register(ANSIX923PaddingContext) -PaddingContext.register(ANSIX923UnpaddingContext) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/poly1305.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/poly1305.py deleted file mode 100644 index 7f5a77a..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/poly1305.py +++ /dev/null @@ -1,11 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl - -__all__ = ["Poly1305"] - -Poly1305 = rust_openssl.poly1305.Poly1305 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__init__.py deleted file mode 100644 index 62283cc..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__init__.py +++ /dev/null @@ -1,65 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.primitives._serialization import ( - BestAvailableEncryption, - Encoding, - KeySerializationEncryption, - NoEncryption, - ParameterFormat, - PrivateFormat, - PublicFormat, - _KeySerializationEncryption, -) -from cryptography.hazmat.primitives.serialization.base import ( - load_der_parameters, - load_der_private_key, - load_der_public_key, - load_pem_parameters, - load_pem_private_key, - load_pem_public_key, -) -from cryptography.hazmat.primitives.serialization.ssh import ( - SSHCertificate, - SSHCertificateBuilder, - SSHCertificateType, - SSHCertPrivateKeyTypes, - SSHCertPublicKeyTypes, - SSHPrivateKeyTypes, - SSHPublicKeyTypes, - load_ssh_private_key, - load_ssh_public_identity, - load_ssh_public_key, - ssh_key_fingerprint, -) - -__all__ = [ - "BestAvailableEncryption", - "Encoding", - "KeySerializationEncryption", - "NoEncryption", - "ParameterFormat", - "PrivateFormat", - "PublicFormat", - "SSHCertPrivateKeyTypes", - "SSHCertPublicKeyTypes", - "SSHCertificate", - "SSHCertificateBuilder", - "SSHCertificateType", - "SSHPrivateKeyTypes", - "SSHPublicKeyTypes", - "_KeySerializationEncryption", - "load_der_parameters", - "load_der_private_key", - "load_der_public_key", - "load_pem_parameters", - "load_pem_private_key", - "load_pem_public_key", - "load_ssh_private_key", - "load_ssh_public_identity", - "load_ssh_public_key", - "ssh_key_fingerprint", -] diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 5a0c956e52eb84845babaf6afcdc458c19d1f28f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1345 zcmb7@%We}f6ox1FG}orNCv9QLESdpPAt50IMIa=ks!~~bV>uZoaXV*b3AF?yGrmoi&Va7{tG%4qg~WBKWKq zwqYk60}>>Wz;)6|LW-myP12Ad8OV|>*C0*!|9`s2c_Q^gRkb{IVG3?Bj1Ua;` z=Z2a4j`f;}u*h83Q%niZ4a|JlKH-6SIcLIQLx;b1M{?ogUYOTw&lc_^?7icQb1nsQ z#8q@JcB*vh#iHsNlMJ}x@{K2fsjz$|#hfX=3QK3Rp(94Cs84^N*vy7?$743NxupJ0 z)*x(b#ARlB$rtgX(GSE#pTphzk$C5Rq^|Fq#jtXI{`M7@N{q!wHxV|s{q&Xds%18e$JoN3;-a1U?g4M3fL^ zL>@gdE~1C%Yn+<*!UCn^nVLyXsl?|*j-pZYCX)Hn#bC;=^gs=CwIGz3^I$-O z_)Pvw{a74%^p~_-SqDR=<3IL89{yKCZT@ZdHnwhj{Dnzjj#B10lwKS15S>H(_+(8z z;MPzC(+})|b7d+0pe>h=6&f_x&qsZ9^}Ki^9t754&fU4?h~blC%U`Ie=RO`hwF05| zk^N9DfysqKYv{L3E^3p A-~a#s diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/base.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/base.cpython-39.pyc deleted file mode 100644 index 176ee4ed58a3bfa48b6d8fdaca208497d35113d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 545 zcmY+AF;2rU6o#ENC84BKIRRS+;sJz&gb*iSVe=9>@oVBVu_N0JqzB+G9E3}BW#S4< zIBun;mi&JE^YicLN0-Y5vLpOX>e5H(XWUGOW$49DJqCuD*PzxTzK6iCXLUdVr*krQ zdO^|`EXhrwhR(=R(XJZOitbu!(wqy% zMXA$FZM9Kj86+N;+41H+*ubF4bt5UuI%u;_@tzvUEIv{O>Wr>Vx!b(qg-bm^mwJLe ztH^4tq;(ygsiG|yP?}6ECeUR%iwSg(ox?Ar0{amc{yuRfTfjNj)jO>L3^t$*7O*y% z2G!f*&4;ibkOgRs(;h^R8=gPh<8CmO6nE((*4)5tM~e+DLE~v7@u88}wx#8U_x9Mj ja@z16HCzguQw?c1?4zevvTXy;b6c8@ZHWEIi;nXjS1hc| diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/pkcs12.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/pkcs12.cpython-39.pyc deleted file mode 100644 index 30c1b2eac66b8f3ba0c5015ab30604147b005fa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4512 zcmb7HTXPf16`r1(WJ$JVb1`PQ4D4ou5>^5Nsile#gYjm!NV!Oy-Kw1wJ2h6f>>1`F zx?2v?imFu1LtgR^c!0d^57|G_uX)N_p2=p(IX%|J0<*=abmq+I%k(+lxlK4fUoqe+ zecy=xbIdUQg%8tL2_DuAgNPr1p#~+1krJN}P=;F5yHI12RzyfCA-i1f9iLcXp}jEp_U%pU*EcV zZJlu$b)q)RP^StJ%)FD)sR5x*6eBZRsnsM8Y4C{kgD|5(d$N^KRXtQ3U#*S~&w@DI z3j@h}LJFC4rp`@<-nLI0jWvDQ@UVuC^jBb*;S*|r^AKuMi`oEzLtQYn#cYt3o)cQ8 zbI;|;ydJY$0cgHD-pG_sOJLjL&;2p%>pWq}=(jmA{u8QAzzo3{J;Iw3I7wntTCpvi*p;QYEa&1%$JsYUQ&uV2Cx0VDh&h=3Im|XCc)9o- zMob)$^JvUx#?ZQF?898K4I_?TLxx7MFf@TK4lST{YJeHs%~!t%ukliV)!Sy?AGhvY z_U<9sNRp^4qxO1_?=g71r+xFXmvi93UA=DMogOHyrD(V2poQv>w+p>D4CUq9F>6cQ z2UoPo$S80(;g7ZvXqQvK42_5Nr=+mTzWJ3wjK`q+mhm0gY?!JNi6|2?%;231FdIZ> z^NL>v+iRnLXYey1e)ad(Zl1E%b|iNH62^?lmSjSiZ=jl}t8JRE2iK2^-)0a*StNs?c`M1=VIpof$6E~6 z!X)wb!lcK97iHe8%Z*Vu3Iowt;-}#Vyaq(g1NM_>;AJfXSD2E`p={-lXH1P&adc^; zNMciRtS@SD19RL&s^&1KZE&7*jh(VU8D(QiQjSJXEd{e0HEd-ImUQ?D*pi<_vVsIr zF34HnRC#2y7Ceb25W}qy)3nLK@4x1ccEu#-YujEXWl}cHAIo;}>=Ks@F8m}MnBh5- zJ)RwMV032u>%ew_85%LTD_;e+LHNgT`;PDi+-AJUfEw=~_tP*Nr zGnZea-GrqqlZ?)|U&AaAMQ@uivT}ofJr070FeETV8KgpNt41oXO|$a9!TBQ%P^?o{ zl)Y(s2lmnWVTuI(j2MzT77f&BpLDE!GSb3P_HHP4Cnr{p?13Uh+`PptFnDl95bVI_ zg>Sq&Ad1<_5|STs5=7$ANhx_shUCTgyl`6Ur3FRE+#IakI?584z~6uK?bFL1dZA`! zeFKDz+mIUEPR=0@PjuBv9-yPFPAX^70bM!k@*s#&SBzH!vaxBsGXWGUHXBtmRTic! z2vj8q(wz1Z%7_smf4Vx^Vpd%-Q%=809yR+(a^oP|aa7(`^c-FmW76 znJiy4N!=R#>y-toXk#j zY&;f($xhBAxtqQ{>adt;uSBmJ8looQV?j41fVwne3mO$qLNBLf&I@-4&CW|~tgX$# zg|G8oQLjX=+fDjjD7}P*(3C)rprL>D864Z29LF0UXI$q(?`X}SKo*@sqogWdVa+UR zkFI}+ygGgKV*U|MsABIM6vdpwrxG|W|1I438j=Zi8a5pN7XD%xh+*4UWQhCP2I!#d zIC}k{rma2dEDuutq(A#+9~RAZK;@w69}S!zBOeqow0=h~e0VUS;VK)QapHT* zYKNjYwa%XyrK1b^ackOzhxcnuAsgAU7S99LcSlXB-ofDC=(ZK_miR_4P{>lyur9u+ zqaQ$HY7Om|4tRsT$uY0-J3t0k-{}{5r|3S>S9K2xdQJB<{5)=ioecMoVE@7|Ai-XR zUqpi43I7lYg3QqsIJmLF?;^Q}1S7BE@D1cAoyTYRxQ1i~dYt|b_!pf=>4?t5nRbWc z;2t&SB|yNG6huFMf@t)YMJZL_=MepXw>|K#11n%GNEK6LfBs^9pDHKFLIDU&>E z7cgmrG$a}!Y)t(_&Gtx@$>ExlJ(^%8Cipz8Ql$VARs#9h`7#4*6|Uf+#@Yci_8Rs& z%CI);M9PYoz1kcrR bKT7N$ASukb*1|gUpBBoY486A9<>mha?_z{M diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/pkcs7.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/pkcs7.cpython-39.pyc deleted file mode 100644 index d31e0e1dbc2db5699ea4e5c24a72954ce5e1d566..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10677 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 C#q{$4 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/ssh.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/__pycache__/ssh.cpython-39.pyc deleted file mode 100644 index d2ac1c38c616fe305b302471dec4d9c4af51f75f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38980 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 diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/base.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/base.py deleted file mode 100644 index e7c998b..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/base.py +++ /dev/null @@ -1,14 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl - -load_pem_private_key = rust_openssl.keys.load_pem_private_key -load_der_private_key = rust_openssl.keys.load_der_private_key - -load_pem_public_key = rust_openssl.keys.load_pem_public_key -load_der_public_key = rust_openssl.keys.load_der_public_key - -load_pem_parameters = rust_openssl.dh.from_pem_parameters -load_der_parameters = rust_openssl.dh.from_der_parameters diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py deleted file mode 100644 index 58884ff..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py +++ /dev/null @@ -1,176 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import typing -from collections.abc import Iterable - -from cryptography import x509 -from cryptography.hazmat.bindings._rust import pkcs12 as rust_pkcs12 -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives._serialization import PBES as PBES -from cryptography.hazmat.primitives.asymmetric import ( - dsa, - ec, - ed448, - ed25519, - rsa, -) -from cryptography.hazmat.primitives.asymmetric.types import PrivateKeyTypes - -__all__ = [ - "PBES", - "PKCS12Certificate", - "PKCS12KeyAndCertificates", - "PKCS12PrivateKeyTypes", - "load_key_and_certificates", - "load_pkcs12", - "serialize_java_truststore", - "serialize_key_and_certificates", -] - -PKCS12PrivateKeyTypes = typing.Union[ - rsa.RSAPrivateKey, - dsa.DSAPrivateKey, - ec.EllipticCurvePrivateKey, - ed25519.Ed25519PrivateKey, - ed448.Ed448PrivateKey, -] - - -PKCS12Certificate = rust_pkcs12.PKCS12Certificate - - -class PKCS12KeyAndCertificates: - def __init__( - self, - key: PrivateKeyTypes | None, - cert: PKCS12Certificate | None, - additional_certs: list[PKCS12Certificate], - ): - if key is not None and not isinstance( - key, - ( - rsa.RSAPrivateKey, - dsa.DSAPrivateKey, - ec.EllipticCurvePrivateKey, - ed25519.Ed25519PrivateKey, - ed448.Ed448PrivateKey, - ), - ): - raise TypeError( - "Key must be RSA, DSA, EllipticCurve, ED25519, or ED448" - " private key, or None." - ) - if cert is not None and not isinstance(cert, PKCS12Certificate): - raise TypeError("cert must be a PKCS12Certificate object or None") - if not all( - isinstance(add_cert, PKCS12Certificate) - for add_cert in additional_certs - ): - raise TypeError( - "all values in additional_certs must be PKCS12Certificate" - " objects" - ) - self._key = key - self._cert = cert - self._additional_certs = additional_certs - - @property - def key(self) -> PrivateKeyTypes | None: - return self._key - - @property - def cert(self) -> PKCS12Certificate | None: - return self._cert - - @property - def additional_certs(self) -> list[PKCS12Certificate]: - return self._additional_certs - - def __eq__(self, other: object) -> bool: - if not isinstance(other, PKCS12KeyAndCertificates): - return NotImplemented - - return ( - self.key == other.key - and self.cert == other.cert - and self.additional_certs == other.additional_certs - ) - - def __hash__(self) -> int: - return hash((self.key, self.cert, tuple(self.additional_certs))) - - def __repr__(self) -> str: - fmt = ( - "" - ) - return fmt.format(self.key, self.cert, self.additional_certs) - - -load_key_and_certificates = rust_pkcs12.load_key_and_certificates -load_pkcs12 = rust_pkcs12.load_pkcs12 - - -_PKCS12CATypes = typing.Union[ - x509.Certificate, - PKCS12Certificate, -] - - -def serialize_java_truststore( - certs: Iterable[PKCS12Certificate], - encryption_algorithm: serialization.KeySerializationEncryption, -) -> bytes: - if not certs: - raise ValueError("You must supply at least one cert") - - if not isinstance( - encryption_algorithm, serialization.KeySerializationEncryption - ): - raise TypeError( - "Key encryption algorithm must be a " - "KeySerializationEncryption instance" - ) - - return rust_pkcs12.serialize_java_truststore(certs, encryption_algorithm) - - -def serialize_key_and_certificates( - name: bytes | None, - key: PKCS12PrivateKeyTypes | None, - cert: x509.Certificate | None, - cas: Iterable[_PKCS12CATypes] | None, - encryption_algorithm: serialization.KeySerializationEncryption, -) -> bytes: - if key is not None and not isinstance( - key, - ( - rsa.RSAPrivateKey, - dsa.DSAPrivateKey, - ec.EllipticCurvePrivateKey, - ed25519.Ed25519PrivateKey, - ed448.Ed448PrivateKey, - ), - ): - raise TypeError( - "Key must be RSA, DSA, EllipticCurve, ED25519, or ED448" - " private key, or None." - ) - - if not isinstance( - encryption_algorithm, serialization.KeySerializationEncryption - ): - raise TypeError( - "Key encryption algorithm must be a " - "KeySerializationEncryption instance" - ) - - if key is None and cert is None and not cas: - raise ValueError("You must supply at least one of key, cert, or cas") - - return rust_pkcs12.serialize_key_and_certificates( - name, key, cert, cas, encryption_algorithm - ) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py deleted file mode 100644 index 76b667a..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py +++ /dev/null @@ -1,412 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import email.base64mime -import email.generator -import email.message -import email.policy -import io -import typing -from collections.abc import Iterable - -from cryptography import utils, x509 -from cryptography.exceptions import UnsupportedAlgorithm, _Reasons -from cryptography.hazmat.bindings._rust import pkcs7 as rust_pkcs7 -from cryptography.hazmat.primitives import hashes, serialization -from cryptography.hazmat.primitives.asymmetric import ec, padding, rsa -from cryptography.hazmat.primitives.ciphers import ( - algorithms, -) -from cryptography.utils import _check_byteslike - -load_pem_pkcs7_certificates = rust_pkcs7.load_pem_pkcs7_certificates - -load_der_pkcs7_certificates = rust_pkcs7.load_der_pkcs7_certificates - -serialize_certificates = rust_pkcs7.serialize_certificates - -PKCS7HashTypes = typing.Union[ - hashes.SHA224, - hashes.SHA256, - hashes.SHA384, - hashes.SHA512, -] - -PKCS7PrivateKeyTypes = typing.Union[ - rsa.RSAPrivateKey, ec.EllipticCurvePrivateKey -] - -ContentEncryptionAlgorithm = typing.Union[ - type[algorithms.AES128], type[algorithms.AES256] -] - - -class PKCS7Options(utils.Enum): - Text = "Add text/plain MIME type" - Binary = "Don't translate input data into canonical MIME format" - DetachedSignature = "Don't embed data in the PKCS7 structure" - NoCapabilities = "Don't embed SMIME capabilities" - NoAttributes = "Don't embed authenticatedAttributes" - NoCerts = "Don't embed signer certificate" - - -class PKCS7SignatureBuilder: - def __init__( - self, - data: utils.Buffer | None = None, - signers: list[ - tuple[ - x509.Certificate, - PKCS7PrivateKeyTypes, - PKCS7HashTypes, - padding.PSS | padding.PKCS1v15 | None, - ] - ] = [], - additional_certs: list[x509.Certificate] = [], - ): - self._data = data - self._signers = signers - self._additional_certs = additional_certs - - def set_data(self, data: utils.Buffer) -> PKCS7SignatureBuilder: - _check_byteslike("data", data) - if self._data is not None: - raise ValueError("data may only be set once") - - return PKCS7SignatureBuilder(data, self._signers) - - def add_signer( - self, - certificate: x509.Certificate, - private_key: PKCS7PrivateKeyTypes, - hash_algorithm: PKCS7HashTypes, - *, - rsa_padding: padding.PSS | padding.PKCS1v15 | None = None, - ) -> PKCS7SignatureBuilder: - if not isinstance( - hash_algorithm, - ( - hashes.SHA224, - hashes.SHA256, - hashes.SHA384, - hashes.SHA512, - ), - ): - raise TypeError( - "hash_algorithm must be one of hashes.SHA224, " - "SHA256, SHA384, or SHA512" - ) - if not isinstance(certificate, x509.Certificate): - raise TypeError("certificate must be a x509.Certificate") - - if not isinstance( - private_key, (rsa.RSAPrivateKey, ec.EllipticCurvePrivateKey) - ): - raise TypeError("Only RSA & EC keys are supported at this time.") - - if rsa_padding is not None: - if not isinstance(rsa_padding, (padding.PSS, padding.PKCS1v15)): - raise TypeError("Padding must be PSS or PKCS1v15") - if not isinstance(private_key, rsa.RSAPrivateKey): - raise TypeError("Padding is only supported for RSA keys") - - return PKCS7SignatureBuilder( - self._data, - [ - *self._signers, - (certificate, private_key, hash_algorithm, rsa_padding), - ], - ) - - def add_certificate( - self, certificate: x509.Certificate - ) -> PKCS7SignatureBuilder: - if not isinstance(certificate, x509.Certificate): - raise TypeError("certificate must be a x509.Certificate") - - return PKCS7SignatureBuilder( - self._data, self._signers, [*self._additional_certs, certificate] - ) - - def sign( - self, - encoding: serialization.Encoding, - options: Iterable[PKCS7Options], - backend: typing.Any = None, - ) -> bytes: - if len(self._signers) == 0: - raise ValueError("Must have at least one signer") - if self._data is None: - raise ValueError("You must add data to sign") - options = list(options) - if not all(isinstance(x, PKCS7Options) for x in options): - raise ValueError("options must be from the PKCS7Options enum") - if encoding not in ( - serialization.Encoding.PEM, - serialization.Encoding.DER, - serialization.Encoding.SMIME, - ): - raise ValueError( - "Must be PEM, DER, or SMIME from the Encoding enum" - ) - - # Text is a meaningless option unless it is accompanied by - # DetachedSignature - if ( - PKCS7Options.Text in options - and PKCS7Options.DetachedSignature not in options - ): - raise ValueError( - "When passing the Text option you must also pass " - "DetachedSignature" - ) - - if PKCS7Options.Text in options and encoding in ( - serialization.Encoding.DER, - serialization.Encoding.PEM, - ): - raise ValueError( - "The Text option is only available for SMIME serialization" - ) - - # No attributes implies no capabilities so we'll error if you try to - # pass both. - if ( - PKCS7Options.NoAttributes in options - and PKCS7Options.NoCapabilities in options - ): - raise ValueError( - "NoAttributes is a superset of NoCapabilities. Do not pass " - "both values." - ) - - return rust_pkcs7.sign_and_serialize(self, encoding, options) - - -class PKCS7EnvelopeBuilder: - def __init__( - self, - *, - _data: bytes | None = None, - _recipients: list[x509.Certificate] | None = None, - _content_encryption_algorithm: ContentEncryptionAlgorithm - | None = None, - ): - from cryptography.hazmat.backends.openssl.backend import ( - backend as ossl, - ) - - if not ossl.rsa_encryption_supported(padding=padding.PKCS1v15()): - raise UnsupportedAlgorithm( - "RSA with PKCS1 v1.5 padding is not supported by this version" - " of OpenSSL.", - _Reasons.UNSUPPORTED_PADDING, - ) - self._data = _data - self._recipients = _recipients if _recipients is not None else [] - self._content_encryption_algorithm = _content_encryption_algorithm - - def set_data(self, data: bytes) -> PKCS7EnvelopeBuilder: - _check_byteslike("data", data) - if self._data is not None: - raise ValueError("data may only be set once") - - return PKCS7EnvelopeBuilder( - _data=data, - _recipients=self._recipients, - _content_encryption_algorithm=self._content_encryption_algorithm, - ) - - def add_recipient( - self, - certificate: x509.Certificate, - ) -> PKCS7EnvelopeBuilder: - if not isinstance(certificate, x509.Certificate): - raise TypeError("certificate must be a x509.Certificate") - - if not isinstance(certificate.public_key(), rsa.RSAPublicKey): - raise TypeError("Only RSA keys are supported at this time.") - - return PKCS7EnvelopeBuilder( - _data=self._data, - _recipients=[ - *self._recipients, - certificate, - ], - _content_encryption_algorithm=self._content_encryption_algorithm, - ) - - def set_content_encryption_algorithm( - self, content_encryption_algorithm: ContentEncryptionAlgorithm - ) -> PKCS7EnvelopeBuilder: - if self._content_encryption_algorithm is not None: - raise ValueError("Content encryption algo may only be set once") - if content_encryption_algorithm not in { - algorithms.AES128, - algorithms.AES256, - }: - raise TypeError("Only AES128 and AES256 are supported") - - return PKCS7EnvelopeBuilder( - _data=self._data, - _recipients=self._recipients, - _content_encryption_algorithm=content_encryption_algorithm, - ) - - def encrypt( - self, - encoding: serialization.Encoding, - options: Iterable[PKCS7Options], - ) -> bytes: - if len(self._recipients) == 0: - raise ValueError("Must have at least one recipient") - if self._data is None: - raise ValueError("You must add data to encrypt") - - # The default content encryption algorithm is AES-128-CBC, which the - # S/MIME v3.2 RFC specifies as MUST support (https://datatracker.ietf.org/doc/html/rfc5751#section-2.7) - # however rest of S/MIME v3.2 is not currently supported - content_encryption_algorithm = ( - self._content_encryption_algorithm or algorithms.AES128 - ) - - options = list(options) - if not all(isinstance(x, PKCS7Options) for x in options): - raise ValueError("options must be from the PKCS7Options enum") - if encoding not in ( - serialization.Encoding.PEM, - serialization.Encoding.DER, - serialization.Encoding.SMIME, - ): - raise ValueError( - "Must be PEM, DER, or SMIME from the Encoding enum" - ) - - # Only allow options that make sense for encryption - if any( - opt not in [PKCS7Options.Text, PKCS7Options.Binary] - for opt in options - ): - raise ValueError( - "Only the following options are supported for encryption: " - "Text, Binary" - ) - elif PKCS7Options.Text in options and PKCS7Options.Binary in options: - # OpenSSL accepts both options at the same time, but ignores Text. - # We fail defensively to avoid unexpected outputs. - raise ValueError( - "Cannot use Binary and Text options at the same time" - ) - - return rust_pkcs7.encrypt_and_serialize( - self, content_encryption_algorithm, encoding, options - ) - - -pkcs7_decrypt_der = rust_pkcs7.decrypt_der -pkcs7_decrypt_pem = rust_pkcs7.decrypt_pem -pkcs7_decrypt_smime = rust_pkcs7.decrypt_smime - - -def _smime_signed_encode( - data: bytes, signature: bytes, micalg: str, text_mode: bool -) -> bytes: - # This function works pretty hard to replicate what OpenSSL does - # precisely. For good and for ill. - - m = email.message.Message() - m.add_header("MIME-Version", "1.0") - m.add_header( - "Content-Type", - "multipart/signed", - protocol="application/x-pkcs7-signature", - micalg=micalg, - ) - - m.preamble = "This is an S/MIME signed message\n" - - msg_part = OpenSSLMimePart() - msg_part.set_payload(data) - if text_mode: - msg_part.add_header("Content-Type", "text/plain") - m.attach(msg_part) - - sig_part = email.message.MIMEPart() - sig_part.add_header( - "Content-Type", "application/x-pkcs7-signature", name="smime.p7s" - ) - sig_part.add_header("Content-Transfer-Encoding", "base64") - sig_part.add_header( - "Content-Disposition", "attachment", filename="smime.p7s" - ) - sig_part.set_payload( - email.base64mime.body_encode(signature, maxlinelen=65) - ) - del sig_part["MIME-Version"] - m.attach(sig_part) - - fp = io.BytesIO() - g = email.generator.BytesGenerator( - fp, - maxheaderlen=0, - mangle_from_=False, - policy=m.policy.clone(linesep="\r\n"), - ) - g.flatten(m) - return fp.getvalue() - - -def _smime_enveloped_encode(data: bytes) -> bytes: - m = email.message.Message() - m.add_header("MIME-Version", "1.0") - m.add_header("Content-Disposition", "attachment", filename="smime.p7m") - m.add_header( - "Content-Type", - "application/pkcs7-mime", - smime_type="enveloped-data", - name="smime.p7m", - ) - m.add_header("Content-Transfer-Encoding", "base64") - - m.set_payload(email.base64mime.body_encode(data, maxlinelen=65)) - - return m.as_bytes(policy=m.policy.clone(linesep="\n", max_line_length=0)) - - -def _smime_enveloped_decode(data: bytes) -> bytes: - m = email.message_from_bytes(data) - if m.get_content_type() not in { - "application/x-pkcs7-mime", - "application/pkcs7-mime", - }: - raise ValueError("Not an S/MIME enveloped message") - return bytes(m.get_payload(decode=True)) - - -def _smime_remove_text_headers(data: bytes) -> bytes: - m = email.message_from_bytes(data) - # Using get() instead of get_content_type() since it has None as default, - # where the latter has "text/plain". Both methods are case-insensitive. - content_type = m.get("content-type") - if content_type is None: - raise ValueError( - "Decrypted MIME data has no 'Content-Type' header. " - "Please remove the 'Text' option to parse it manually." - ) - if "text/plain" not in content_type: - raise ValueError( - f"Decrypted MIME data content type is '{content_type}', not " - "'text/plain'. Remove the 'Text' option to parse it manually." - ) - return bytes(m.get_payload(decode=True)) - - -class OpenSSLMimePart(email.message.MIMEPart): - # A MIMEPart subclass that replicates OpenSSL's behavior of not including - # a newline if there are no headers. - def _write_headers(self, generator) -> None: - if list(self.raw_items()): - generator._write_headers(self) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/ssh.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/ssh.py deleted file mode 100644 index 411113b..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/serialization/ssh.py +++ /dev/null @@ -1,1621 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import binascii -import enum -import os -import re -import typing -import warnings -from base64 import encodebytes as _base64_encode -from dataclasses import dataclass - -from cryptography import utils -from cryptography.exceptions import UnsupportedAlgorithm -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives.asymmetric import ( - dsa, - ec, - ed25519, - padding, - rsa, -) -from cryptography.hazmat.primitives.asymmetric import utils as asym_utils -from cryptography.hazmat.primitives.ciphers import ( - AEADDecryptionContext, - Cipher, - algorithms, - modes, -) -from cryptography.hazmat.primitives.serialization import ( - Encoding, - KeySerializationEncryption, - NoEncryption, - PrivateFormat, - PublicFormat, - _KeySerializationEncryption, -) - -try: - from bcrypt import kdf as _bcrypt_kdf - - _bcrypt_supported = True -except ImportError: - _bcrypt_supported = False - - def _bcrypt_kdf( - password: bytes, - salt: bytes, - desired_key_bytes: int, - rounds: int, - ignore_few_rounds: bool = False, - ) -> bytes: - raise UnsupportedAlgorithm("Need bcrypt module") - - -_SSH_ED25519 = b"ssh-ed25519" -_SSH_RSA = b"ssh-rsa" -_SSH_DSA = b"ssh-dss" -_ECDSA_NISTP256 = b"ecdsa-sha2-nistp256" -_ECDSA_NISTP384 = b"ecdsa-sha2-nistp384" -_ECDSA_NISTP521 = b"ecdsa-sha2-nistp521" -_CERT_SUFFIX = b"-cert-v01@openssh.com" - -# U2F application string suffixed pubkey -_SK_SSH_ED25519 = b"sk-ssh-ed25519@openssh.com" -_SK_SSH_ECDSA_NISTP256 = b"sk-ecdsa-sha2-nistp256@openssh.com" - -# These are not key types, only algorithms, so they cannot appear -# as a public key type -_SSH_RSA_SHA256 = b"rsa-sha2-256" -_SSH_RSA_SHA512 = b"rsa-sha2-512" - -_SSH_PUBKEY_RC = re.compile(rb"\A(\S+)[ \t]+(\S+)") -_SK_MAGIC = b"openssh-key-v1\0" -_SK_START = b"-----BEGIN OPENSSH PRIVATE KEY-----" -_SK_END = b"-----END OPENSSH PRIVATE KEY-----" -_BCRYPT = b"bcrypt" -_NONE = b"none" -_DEFAULT_CIPHER = b"aes256-ctr" -_DEFAULT_ROUNDS = 16 - -# re is only way to work on bytes-like data -_PEM_RC = re.compile(_SK_START + b"(.*?)" + _SK_END, re.DOTALL) - -# padding for max blocksize -_PADDING = memoryview(bytearray(range(1, 1 + 16))) - - -@dataclass -class _SSHCipher: - alg: type[algorithms.AES] - key_len: int - mode: type[modes.CTR] | type[modes.CBC] | type[modes.GCM] - block_len: int - iv_len: int - tag_len: int | None - is_aead: bool - - -# ciphers that are actually used in key wrapping -_SSH_CIPHERS: dict[bytes, _SSHCipher] = { - b"aes256-ctr": _SSHCipher( - alg=algorithms.AES, - key_len=32, - mode=modes.CTR, - block_len=16, - iv_len=16, - tag_len=None, - is_aead=False, - ), - b"aes256-cbc": _SSHCipher( - alg=algorithms.AES, - key_len=32, - mode=modes.CBC, - block_len=16, - iv_len=16, - tag_len=None, - is_aead=False, - ), - b"aes256-gcm@openssh.com": _SSHCipher( - alg=algorithms.AES, - key_len=32, - mode=modes.GCM, - block_len=16, - iv_len=12, - tag_len=16, - is_aead=True, - ), -} - -# map local curve name to key type -_ECDSA_KEY_TYPE = { - "secp256r1": _ECDSA_NISTP256, - "secp384r1": _ECDSA_NISTP384, - "secp521r1": _ECDSA_NISTP521, -} - - -def _get_ssh_key_type(key: SSHPrivateKeyTypes | SSHPublicKeyTypes) -> bytes: - if isinstance(key, ec.EllipticCurvePrivateKey): - key_type = _ecdsa_key_type(key.public_key()) - elif isinstance(key, ec.EllipticCurvePublicKey): - key_type = _ecdsa_key_type(key) - elif isinstance(key, (rsa.RSAPrivateKey, rsa.RSAPublicKey)): - key_type = _SSH_RSA - elif isinstance(key, (dsa.DSAPrivateKey, dsa.DSAPublicKey)): - key_type = _SSH_DSA - elif isinstance( - key, (ed25519.Ed25519PrivateKey, ed25519.Ed25519PublicKey) - ): - key_type = _SSH_ED25519 - else: - raise ValueError("Unsupported key type") - - return key_type - - -def _ecdsa_key_type(public_key: ec.EllipticCurvePublicKey) -> bytes: - """Return SSH key_type and curve_name for private key.""" - curve = public_key.curve - if curve.name not in _ECDSA_KEY_TYPE: - raise ValueError( - f"Unsupported curve for ssh private key: {curve.name!r}" - ) - return _ECDSA_KEY_TYPE[curve.name] - - -def _ssh_pem_encode( - data: utils.Buffer, - prefix: bytes = _SK_START + b"\n", - suffix: bytes = _SK_END + b"\n", -) -> bytes: - return b"".join([prefix, _base64_encode(data), suffix]) - - -def _check_block_size(data: utils.Buffer, block_len: int) -> None: - """Require data to be full blocks""" - if not data or len(data) % block_len != 0: - raise ValueError("Corrupt data: missing padding") - - -def _check_empty(data: utils.Buffer) -> None: - """All data should have been parsed.""" - if data: - raise ValueError("Corrupt data: unparsed data") - - -def _init_cipher( - ciphername: bytes, - password: bytes | None, - salt: bytes, - rounds: int, -) -> Cipher[modes.CBC | modes.CTR | modes.GCM]: - """Generate key + iv and return cipher.""" - if not password: - raise TypeError( - "Key is password-protected, but password was not provided." - ) - - ciph = _SSH_CIPHERS[ciphername] - seed = _bcrypt_kdf( - password, salt, ciph.key_len + ciph.iv_len, rounds, True - ) - return Cipher( - ciph.alg(seed[: ciph.key_len]), - ciph.mode(seed[ciph.key_len :]), - ) - - -def _get_u32(data: memoryview) -> tuple[int, memoryview]: - """Uint32""" - if len(data) < 4: - raise ValueError("Invalid data") - return int.from_bytes(data[:4], byteorder="big"), data[4:] - - -def _get_u64(data: memoryview) -> tuple[int, memoryview]: - """Uint64""" - if len(data) < 8: - raise ValueError("Invalid data") - return int.from_bytes(data[:8], byteorder="big"), data[8:] - - -def _get_sshstr(data: memoryview) -> tuple[memoryview, memoryview]: - """Bytes with u32 length prefix""" - n, data = _get_u32(data) - if n > len(data): - raise ValueError("Invalid data") - return data[:n], data[n:] - - -def _get_mpint(data: memoryview) -> tuple[int, memoryview]: - """Big integer.""" - val, data = _get_sshstr(data) - if val and val[0] > 0x7F: - raise ValueError("Invalid data") - return int.from_bytes(val, "big"), data - - -def _to_mpint(val: int) -> bytes: - """Storage format for signed bigint.""" - if val < 0: - raise ValueError("negative mpint not allowed") - if not val: - return b"" - nbytes = (val.bit_length() + 8) // 8 - return utils.int_to_bytes(val, nbytes) - - -class _FragList: - """Build recursive structure without data copy.""" - - flist: list[utils.Buffer] - - def __init__(self, init: list[utils.Buffer] | None = None) -> None: - self.flist = [] - if init: - self.flist.extend(init) - - def put_raw(self, val: utils.Buffer) -> None: - """Add plain bytes""" - self.flist.append(val) - - def put_u32(self, val: int) -> None: - """Big-endian uint32""" - self.flist.append(val.to_bytes(length=4, byteorder="big")) - - def put_u64(self, val: int) -> None: - """Big-endian uint64""" - self.flist.append(val.to_bytes(length=8, byteorder="big")) - - def put_sshstr(self, val: bytes | _FragList) -> None: - """Bytes prefixed with u32 length""" - if isinstance(val, (bytes, memoryview, bytearray)): - self.put_u32(len(val)) - self.flist.append(val) - else: - self.put_u32(val.size()) - self.flist.extend(val.flist) - - def put_mpint(self, val: int) -> None: - """Big-endian bigint prefixed with u32 length""" - self.put_sshstr(_to_mpint(val)) - - def size(self) -> int: - """Current number of bytes""" - return sum(map(len, self.flist)) - - def render(self, dstbuf: memoryview, pos: int = 0) -> int: - """Write into bytearray""" - for frag in self.flist: - flen = len(frag) - start, pos = pos, pos + flen - dstbuf[start:pos] = frag - return pos - - def tobytes(self) -> bytes: - """Return as bytes""" - buf = memoryview(bytearray(self.size())) - self.render(buf) - return buf.tobytes() - - -class _SSHFormatRSA: - """Format for RSA keys. - - Public: - mpint e, n - Private: - mpint n, e, d, iqmp, p, q - """ - - def get_public( - self, data: memoryview - ) -> tuple[tuple[int, int], memoryview]: - """RSA public fields""" - e, data = _get_mpint(data) - n, data = _get_mpint(data) - return (e, n), data - - def load_public( - self, data: memoryview - ) -> tuple[rsa.RSAPublicKey, memoryview]: - """Make RSA public key from data.""" - (e, n), data = self.get_public(data) - public_numbers = rsa.RSAPublicNumbers(e, n) - public_key = public_numbers.public_key() - return public_key, data - - def load_private( - self, data: memoryview, pubfields, unsafe_skip_rsa_key_validation: bool - ) -> tuple[rsa.RSAPrivateKey, memoryview]: - """Make RSA private key from data.""" - n, data = _get_mpint(data) - e, data = _get_mpint(data) - d, data = _get_mpint(data) - iqmp, data = _get_mpint(data) - p, data = _get_mpint(data) - q, data = _get_mpint(data) - - if (e, n) != pubfields: - raise ValueError("Corrupt data: rsa field mismatch") - dmp1 = rsa.rsa_crt_dmp1(d, p) - dmq1 = rsa.rsa_crt_dmq1(d, q) - public_numbers = rsa.RSAPublicNumbers(e, n) - private_numbers = rsa.RSAPrivateNumbers( - p, q, d, dmp1, dmq1, iqmp, public_numbers - ) - private_key = private_numbers.private_key( - unsafe_skip_rsa_key_validation=unsafe_skip_rsa_key_validation - ) - return private_key, data - - def encode_public( - self, public_key: rsa.RSAPublicKey, f_pub: _FragList - ) -> None: - """Write RSA public key""" - pubn = public_key.public_numbers() - f_pub.put_mpint(pubn.e) - f_pub.put_mpint(pubn.n) - - def encode_private( - self, private_key: rsa.RSAPrivateKey, f_priv: _FragList - ) -> None: - """Write RSA private key""" - private_numbers = private_key.private_numbers() - public_numbers = private_numbers.public_numbers - - f_priv.put_mpint(public_numbers.n) - f_priv.put_mpint(public_numbers.e) - - f_priv.put_mpint(private_numbers.d) - f_priv.put_mpint(private_numbers.iqmp) - f_priv.put_mpint(private_numbers.p) - f_priv.put_mpint(private_numbers.q) - - -class _SSHFormatDSA: - """Format for DSA keys. - - Public: - mpint p, q, g, y - Private: - mpint p, q, g, y, x - """ - - def get_public(self, data: memoryview) -> tuple[tuple, memoryview]: - """DSA public fields""" - p, data = _get_mpint(data) - q, data = _get_mpint(data) - g, data = _get_mpint(data) - y, data = _get_mpint(data) - return (p, q, g, y), data - - def load_public( - self, data: memoryview - ) -> tuple[dsa.DSAPublicKey, memoryview]: - """Make DSA public key from data.""" - (p, q, g, y), data = self.get_public(data) - parameter_numbers = dsa.DSAParameterNumbers(p, q, g) - public_numbers = dsa.DSAPublicNumbers(y, parameter_numbers) - self._validate(public_numbers) - public_key = public_numbers.public_key() - return public_key, data - - def load_private( - self, data: memoryview, pubfields, unsafe_skip_rsa_key_validation: bool - ) -> tuple[dsa.DSAPrivateKey, memoryview]: - """Make DSA private key from data.""" - (p, q, g, y), data = self.get_public(data) - x, data = _get_mpint(data) - - if (p, q, g, y) != pubfields: - raise ValueError("Corrupt data: dsa field mismatch") - parameter_numbers = dsa.DSAParameterNumbers(p, q, g) - public_numbers = dsa.DSAPublicNumbers(y, parameter_numbers) - self._validate(public_numbers) - private_numbers = dsa.DSAPrivateNumbers(x, public_numbers) - private_key = private_numbers.private_key() - return private_key, data - - def encode_public( - self, public_key: dsa.DSAPublicKey, f_pub: _FragList - ) -> None: - """Write DSA public key""" - public_numbers = public_key.public_numbers() - parameter_numbers = public_numbers.parameter_numbers - self._validate(public_numbers) - - f_pub.put_mpint(parameter_numbers.p) - f_pub.put_mpint(parameter_numbers.q) - f_pub.put_mpint(parameter_numbers.g) - f_pub.put_mpint(public_numbers.y) - - def encode_private( - self, private_key: dsa.DSAPrivateKey, f_priv: _FragList - ) -> None: - """Write DSA private key""" - self.encode_public(private_key.public_key(), f_priv) - f_priv.put_mpint(private_key.private_numbers().x) - - def _validate(self, public_numbers: dsa.DSAPublicNumbers) -> None: - parameter_numbers = public_numbers.parameter_numbers - if parameter_numbers.p.bit_length() != 1024: - raise ValueError("SSH supports only 1024 bit DSA keys") - - -class _SSHFormatECDSA: - """Format for ECDSA keys. - - Public: - str curve - bytes point - Private: - str curve - bytes point - mpint secret - """ - - def __init__(self, ssh_curve_name: bytes, curve: ec.EllipticCurve): - self.ssh_curve_name = ssh_curve_name - self.curve = curve - - def get_public( - self, data: memoryview - ) -> tuple[tuple[memoryview, memoryview], memoryview]: - """ECDSA public fields""" - curve, data = _get_sshstr(data) - point, data = _get_sshstr(data) - if curve != self.ssh_curve_name: - raise ValueError("Curve name mismatch") - if len(point) == 0: - raise ValueError("Invalid EC point: empty data") - if point[0] != 4: - raise NotImplementedError("Need uncompressed point") - return (curve, point), data - - def load_public( - self, data: memoryview - ) -> tuple[ec.EllipticCurvePublicKey, memoryview]: - """Make ECDSA public key from data.""" - (_, point), data = self.get_public(data) - public_key = ec.EllipticCurvePublicKey.from_encoded_point( - self.curve, point.tobytes() - ) - return public_key, data - - def load_private( - self, data: memoryview, pubfields, unsafe_skip_rsa_key_validation: bool - ) -> tuple[ec.EllipticCurvePrivateKey, memoryview]: - """Make ECDSA private key from data.""" - (curve_name, point), data = self.get_public(data) - secret, data = _get_mpint(data) - - if (curve_name, point) != pubfields: - raise ValueError("Corrupt data: ecdsa field mismatch") - private_key = ec.derive_private_key(secret, self.curve) - return private_key, data - - def encode_public( - self, public_key: ec.EllipticCurvePublicKey, f_pub: _FragList - ) -> None: - """Write ECDSA public key""" - point = public_key.public_bytes( - Encoding.X962, PublicFormat.UncompressedPoint - ) - f_pub.put_sshstr(self.ssh_curve_name) - f_pub.put_sshstr(point) - - def encode_private( - self, private_key: ec.EllipticCurvePrivateKey, f_priv: _FragList - ) -> None: - """Write ECDSA private key""" - public_key = private_key.public_key() - private_numbers = private_key.private_numbers() - - self.encode_public(public_key, f_priv) - f_priv.put_mpint(private_numbers.private_value) - - -class _SSHFormatEd25519: - """Format for Ed25519 keys. - - Public: - bytes point - Private: - bytes point - bytes secret_and_point - """ - - def get_public( - self, data: memoryview - ) -> tuple[tuple[memoryview], memoryview]: - """Ed25519 public fields""" - point, data = _get_sshstr(data) - return (point,), data - - def load_public( - self, data: memoryview - ) -> tuple[ed25519.Ed25519PublicKey, memoryview]: - """Make Ed25519 public key from data.""" - (point,), data = self.get_public(data) - public_key = ed25519.Ed25519PublicKey.from_public_bytes( - point.tobytes() - ) - return public_key, data - - def load_private( - self, data: memoryview, pubfields, unsafe_skip_rsa_key_validation: bool - ) -> tuple[ed25519.Ed25519PrivateKey, memoryview]: - """Make Ed25519 private key from data.""" - (point,), data = self.get_public(data) - keypair, data = _get_sshstr(data) - - secret = keypair[:32] - point2 = keypair[32:] - if point != point2 or (point,) != pubfields: - raise ValueError("Corrupt data: ed25519 field mismatch") - private_key = ed25519.Ed25519PrivateKey.from_private_bytes(secret) - return private_key, data - - def encode_public( - self, public_key: ed25519.Ed25519PublicKey, f_pub: _FragList - ) -> None: - """Write Ed25519 public key""" - raw_public_key = public_key.public_bytes( - Encoding.Raw, PublicFormat.Raw - ) - f_pub.put_sshstr(raw_public_key) - - def encode_private( - self, private_key: ed25519.Ed25519PrivateKey, f_priv: _FragList - ) -> None: - """Write Ed25519 private key""" - public_key = private_key.public_key() - raw_private_key = private_key.private_bytes( - Encoding.Raw, PrivateFormat.Raw, NoEncryption() - ) - raw_public_key = public_key.public_bytes( - Encoding.Raw, PublicFormat.Raw - ) - f_keypair = _FragList([raw_private_key, raw_public_key]) - - self.encode_public(public_key, f_priv) - f_priv.put_sshstr(f_keypair) - - -def load_application(data) -> tuple[memoryview, memoryview]: - """ - U2F application strings - """ - application, data = _get_sshstr(data) - if not application.tobytes().startswith(b"ssh:"): - raise ValueError( - "U2F application string does not start with b'ssh:' " - f"({application})" - ) - return application, data - - -class _SSHFormatSKEd25519: - """ - The format of a sk-ssh-ed25519@openssh.com public key is: - - string "sk-ssh-ed25519@openssh.com" - string public key - string application (user-specified, but typically "ssh:") - """ - - def load_public( - self, data: memoryview - ) -> tuple[ed25519.Ed25519PublicKey, memoryview]: - """Make Ed25519 public key from data.""" - public_key, data = _lookup_kformat(_SSH_ED25519).load_public(data) - _, data = load_application(data) - return public_key, data - - def get_public(self, data: memoryview) -> typing.NoReturn: - # Confusingly `get_public` is an entry point used by private key - # loading. - raise UnsupportedAlgorithm( - "sk-ssh-ed25519 private keys cannot be loaded" - ) - - -class _SSHFormatSKECDSA: - """ - The format of a sk-ecdsa-sha2-nistp256@openssh.com public key is: - - string "sk-ecdsa-sha2-nistp256@openssh.com" - string curve name - ec_point Q - string application (user-specified, but typically "ssh:") - """ - - def load_public( - self, data: memoryview - ) -> tuple[ec.EllipticCurvePublicKey, memoryview]: - """Make ECDSA public key from data.""" - public_key, data = _lookup_kformat(_ECDSA_NISTP256).load_public(data) - _, data = load_application(data) - return public_key, data - - def get_public(self, data: memoryview) -> typing.NoReturn: - # Confusingly `get_public` is an entry point used by private key - # loading. - raise UnsupportedAlgorithm( - "sk-ecdsa-sha2-nistp256 private keys cannot be loaded" - ) - - -_KEY_FORMATS = { - _SSH_RSA: _SSHFormatRSA(), - _SSH_DSA: _SSHFormatDSA(), - _SSH_ED25519: _SSHFormatEd25519(), - _ECDSA_NISTP256: _SSHFormatECDSA(b"nistp256", ec.SECP256R1()), - _ECDSA_NISTP384: _SSHFormatECDSA(b"nistp384", ec.SECP384R1()), - _ECDSA_NISTP521: _SSHFormatECDSA(b"nistp521", ec.SECP521R1()), - _SK_SSH_ED25519: _SSHFormatSKEd25519(), - _SK_SSH_ECDSA_NISTP256: _SSHFormatSKECDSA(), -} - - -def _lookup_kformat(key_type: utils.Buffer): - """Return valid format or throw error""" - if not isinstance(key_type, bytes): - key_type = memoryview(key_type).tobytes() - if key_type in _KEY_FORMATS: - return _KEY_FORMATS[key_type] - raise UnsupportedAlgorithm(f"Unsupported key type: {key_type!r}") - - -SSHPrivateKeyTypes = typing.Union[ - ec.EllipticCurvePrivateKey, - rsa.RSAPrivateKey, - dsa.DSAPrivateKey, - ed25519.Ed25519PrivateKey, -] - - -def load_ssh_private_key( - data: utils.Buffer, - password: bytes | None, - backend: typing.Any = None, - *, - unsafe_skip_rsa_key_validation: bool = False, -) -> SSHPrivateKeyTypes: - """Load private key from OpenSSH custom encoding.""" - utils._check_byteslike("data", data) - if password is not None: - utils._check_bytes("password", password) - - m = _PEM_RC.search(data) - if not m: - raise ValueError("Not OpenSSH private key format") - p1 = m.start(1) - p2 = m.end(1) - data = binascii.a2b_base64(memoryview(data)[p1:p2]) - if not data.startswith(_SK_MAGIC): - raise ValueError("Not OpenSSH private key format") - data = memoryview(data)[len(_SK_MAGIC) :] - - # parse header - ciphername, data = _get_sshstr(data) - kdfname, data = _get_sshstr(data) - kdfoptions, data = _get_sshstr(data) - nkeys, data = _get_u32(data) - if nkeys != 1: - raise ValueError("Only one key supported") - - # load public key data - pubdata, data = _get_sshstr(data) - pub_key_type, pubdata = _get_sshstr(pubdata) - kformat = _lookup_kformat(pub_key_type) - pubfields, pubdata = kformat.get_public(pubdata) - _check_empty(pubdata) - - if ciphername != _NONE or kdfname != _NONE: - ciphername_bytes = ciphername.tobytes() - if ciphername_bytes not in _SSH_CIPHERS: - raise UnsupportedAlgorithm( - f"Unsupported cipher: {ciphername_bytes!r}" - ) - if kdfname != _BCRYPT: - raise UnsupportedAlgorithm(f"Unsupported KDF: {kdfname!r}") - blklen = _SSH_CIPHERS[ciphername_bytes].block_len - tag_len = _SSH_CIPHERS[ciphername_bytes].tag_len - # load secret data - edata, data = _get_sshstr(data) - # see https://bugzilla.mindrot.org/show_bug.cgi?id=3553 for - # information about how OpenSSH handles AEAD tags - if _SSH_CIPHERS[ciphername_bytes].is_aead: - tag = bytes(data) - if len(tag) != tag_len: - raise ValueError("Corrupt data: invalid tag length for cipher") - else: - _check_empty(data) - _check_block_size(edata, blklen) - salt, kbuf = _get_sshstr(kdfoptions) - rounds, kbuf = _get_u32(kbuf) - _check_empty(kbuf) - ciph = _init_cipher(ciphername_bytes, password, salt.tobytes(), rounds) - dec = ciph.decryptor() - edata = memoryview(dec.update(edata)) - if _SSH_CIPHERS[ciphername_bytes].is_aead: - assert isinstance(dec, AEADDecryptionContext) - _check_empty(dec.finalize_with_tag(tag)) - else: - # _check_block_size requires data to be a full block so there - # should be no output from finalize - _check_empty(dec.finalize()) - else: - if password: - raise TypeError( - "Password was given but private key is not encrypted." - ) - # load secret data - edata, data = _get_sshstr(data) - _check_empty(data) - blklen = 8 - _check_block_size(edata, blklen) - ck1, edata = _get_u32(edata) - ck2, edata = _get_u32(edata) - if ck1 != ck2: - raise ValueError("Corrupt data: broken checksum") - - # load per-key struct - key_type, edata = _get_sshstr(edata) - if key_type != pub_key_type: - raise ValueError("Corrupt data: key type mismatch") - private_key, edata = kformat.load_private( - edata, - pubfields, - unsafe_skip_rsa_key_validation=unsafe_skip_rsa_key_validation, - ) - # We don't use the comment - _, edata = _get_sshstr(edata) - - # yes, SSH does padding check *after* all other parsing is done. - # need to follow as it writes zero-byte padding too. - if edata != _PADDING[: len(edata)]: - raise ValueError("Corrupt data: invalid padding") - - if isinstance(private_key, dsa.DSAPrivateKey): - warnings.warn( - "SSH DSA keys are deprecated and will be removed in a future " - "release.", - utils.DeprecatedIn40, - stacklevel=2, - ) - - return private_key - - -def _serialize_ssh_private_key( - private_key: SSHPrivateKeyTypes, - password: bytes, - encryption_algorithm: KeySerializationEncryption, -) -> bytes: - """Serialize private key with OpenSSH custom encoding.""" - utils._check_bytes("password", password) - if isinstance(private_key, dsa.DSAPrivateKey): - warnings.warn( - "SSH DSA key support is deprecated and will be " - "removed in a future release", - utils.DeprecatedIn40, - stacklevel=4, - ) - - key_type = _get_ssh_key_type(private_key) - kformat = _lookup_kformat(key_type) - - # setup parameters - f_kdfoptions = _FragList() - if password: - ciphername = _DEFAULT_CIPHER - blklen = _SSH_CIPHERS[ciphername].block_len - kdfname = _BCRYPT - rounds = _DEFAULT_ROUNDS - if ( - isinstance(encryption_algorithm, _KeySerializationEncryption) - and encryption_algorithm._kdf_rounds is not None - ): - rounds = encryption_algorithm._kdf_rounds - salt = os.urandom(16) - f_kdfoptions.put_sshstr(salt) - f_kdfoptions.put_u32(rounds) - ciph = _init_cipher(ciphername, password, salt, rounds) - else: - ciphername = kdfname = _NONE - blklen = 8 - ciph = None - nkeys = 1 - checkval = os.urandom(4) - comment = b"" - - # encode public and private parts together - f_public_key = _FragList() - f_public_key.put_sshstr(key_type) - kformat.encode_public(private_key.public_key(), f_public_key) - - f_secrets = _FragList([checkval, checkval]) - f_secrets.put_sshstr(key_type) - kformat.encode_private(private_key, f_secrets) - f_secrets.put_sshstr(comment) - f_secrets.put_raw(_PADDING[: blklen - (f_secrets.size() % blklen)]) - - # top-level structure - f_main = _FragList() - f_main.put_raw(_SK_MAGIC) - f_main.put_sshstr(ciphername) - f_main.put_sshstr(kdfname) - f_main.put_sshstr(f_kdfoptions) - f_main.put_u32(nkeys) - f_main.put_sshstr(f_public_key) - f_main.put_sshstr(f_secrets) - - # copy result info bytearray - slen = f_secrets.size() - mlen = f_main.size() - buf = memoryview(bytearray(mlen + blklen)) - f_main.render(buf) - ofs = mlen - slen - - # encrypt in-place - if ciph is not None: - ciph.encryptor().update_into(buf[ofs:mlen], buf[ofs:]) - - return _ssh_pem_encode(buf[:mlen]) - - -SSHPublicKeyTypes = typing.Union[ - ec.EllipticCurvePublicKey, - rsa.RSAPublicKey, - dsa.DSAPublicKey, - ed25519.Ed25519PublicKey, -] - -SSHCertPublicKeyTypes = typing.Union[ - ec.EllipticCurvePublicKey, - rsa.RSAPublicKey, - ed25519.Ed25519PublicKey, -] - - -class SSHCertificateType(enum.Enum): - USER = 1 - HOST = 2 - - -class SSHCertificate: - def __init__( - self, - _nonce: memoryview, - _public_key: SSHPublicKeyTypes, - _serial: int, - _cctype: int, - _key_id: memoryview, - _valid_principals: list[bytes], - _valid_after: int, - _valid_before: int, - _critical_options: dict[bytes, bytes], - _extensions: dict[bytes, bytes], - _sig_type: memoryview, - _sig_key: memoryview, - _inner_sig_type: memoryview, - _signature: memoryview, - _tbs_cert_body: memoryview, - _cert_key_type: bytes, - _cert_body: memoryview, - ): - self._nonce = _nonce - self._public_key = _public_key - self._serial = _serial - try: - self._type = SSHCertificateType(_cctype) - except ValueError: - raise ValueError("Invalid certificate type") - self._key_id = _key_id - self._valid_principals = _valid_principals - self._valid_after = _valid_after - self._valid_before = _valid_before - self._critical_options = _critical_options - self._extensions = _extensions - self._sig_type = _sig_type - self._sig_key = _sig_key - self._inner_sig_type = _inner_sig_type - self._signature = _signature - self._cert_key_type = _cert_key_type - self._cert_body = _cert_body - self._tbs_cert_body = _tbs_cert_body - - @property - def nonce(self) -> bytes: - return bytes(self._nonce) - - def public_key(self) -> SSHCertPublicKeyTypes: - # make mypy happy until we remove DSA support entirely and - # the underlying union won't have a disallowed type - return typing.cast(SSHCertPublicKeyTypes, self._public_key) - - @property - def serial(self) -> int: - return self._serial - - @property - def type(self) -> SSHCertificateType: - return self._type - - @property - def key_id(self) -> bytes: - return bytes(self._key_id) - - @property - def valid_principals(self) -> list[bytes]: - return self._valid_principals - - @property - def valid_before(self) -> int: - return self._valid_before - - @property - def valid_after(self) -> int: - return self._valid_after - - @property - def critical_options(self) -> dict[bytes, bytes]: - return self._critical_options - - @property - def extensions(self) -> dict[bytes, bytes]: - return self._extensions - - def signature_key(self) -> SSHCertPublicKeyTypes: - sigformat = _lookup_kformat(self._sig_type) - signature_key, sigkey_rest = sigformat.load_public(self._sig_key) - _check_empty(sigkey_rest) - return signature_key - - def public_bytes(self) -> bytes: - return ( - bytes(self._cert_key_type) - + b" " - + binascii.b2a_base64(bytes(self._cert_body), newline=False) - ) - - def verify_cert_signature(self) -> None: - signature_key = self.signature_key() - if isinstance(signature_key, ed25519.Ed25519PublicKey): - signature_key.verify( - bytes(self._signature), bytes(self._tbs_cert_body) - ) - elif isinstance(signature_key, ec.EllipticCurvePublicKey): - # The signature is encoded as a pair of big-endian integers - r, data = _get_mpint(self._signature) - s, data = _get_mpint(data) - _check_empty(data) - computed_sig = asym_utils.encode_dss_signature(r, s) - hash_alg = _get_ec_hash_alg(signature_key.curve) - signature_key.verify( - computed_sig, bytes(self._tbs_cert_body), ec.ECDSA(hash_alg) - ) - else: - assert isinstance(signature_key, rsa.RSAPublicKey) - if self._inner_sig_type == _SSH_RSA: - hash_alg = hashes.SHA1() - elif self._inner_sig_type == _SSH_RSA_SHA256: - hash_alg = hashes.SHA256() - else: - assert self._inner_sig_type == _SSH_RSA_SHA512 - hash_alg = hashes.SHA512() - signature_key.verify( - bytes(self._signature), - bytes(self._tbs_cert_body), - padding.PKCS1v15(), - hash_alg, - ) - - -def _get_ec_hash_alg(curve: ec.EllipticCurve) -> hashes.HashAlgorithm: - if isinstance(curve, ec.SECP256R1): - return hashes.SHA256() - elif isinstance(curve, ec.SECP384R1): - return hashes.SHA384() - else: - assert isinstance(curve, ec.SECP521R1) - return hashes.SHA512() - - -def _load_ssh_public_identity( - data: utils.Buffer, - _legacy_dsa_allowed=False, -) -> SSHCertificate | SSHPublicKeyTypes: - utils._check_byteslike("data", data) - - m = _SSH_PUBKEY_RC.match(data) - if not m: - raise ValueError("Invalid line format") - key_type = orig_key_type = m.group(1) - key_body = m.group(2) - with_cert = False - if key_type.endswith(_CERT_SUFFIX): - with_cert = True - key_type = key_type[: -len(_CERT_SUFFIX)] - if key_type == _SSH_DSA and not _legacy_dsa_allowed: - raise UnsupportedAlgorithm( - "DSA keys aren't supported in SSH certificates" - ) - kformat = _lookup_kformat(key_type) - - try: - rest = memoryview(binascii.a2b_base64(key_body)) - except (TypeError, binascii.Error): - raise ValueError("Invalid format") - - if with_cert: - cert_body = rest - inner_key_type, rest = _get_sshstr(rest) - if inner_key_type != orig_key_type: - raise ValueError("Invalid key format") - if with_cert: - nonce, rest = _get_sshstr(rest) - public_key, rest = kformat.load_public(rest) - if with_cert: - serial, rest = _get_u64(rest) - cctype, rest = _get_u32(rest) - key_id, rest = _get_sshstr(rest) - principals, rest = _get_sshstr(rest) - valid_principals = [] - while principals: - principal, principals = _get_sshstr(principals) - valid_principals.append(bytes(principal)) - valid_after, rest = _get_u64(rest) - valid_before, rest = _get_u64(rest) - crit_options, rest = _get_sshstr(rest) - critical_options = _parse_exts_opts(crit_options) - exts, rest = _get_sshstr(rest) - extensions = _parse_exts_opts(exts) - # Get the reserved field, which is unused. - _, rest = _get_sshstr(rest) - sig_key_raw, rest = _get_sshstr(rest) - sig_type, sig_key = _get_sshstr(sig_key_raw) - if sig_type == _SSH_DSA and not _legacy_dsa_allowed: - raise UnsupportedAlgorithm( - "DSA signatures aren't supported in SSH certificates" - ) - # Get the entire cert body and subtract the signature - tbs_cert_body = cert_body[: -len(rest)] - signature_raw, rest = _get_sshstr(rest) - _check_empty(rest) - inner_sig_type, sig_rest = _get_sshstr(signature_raw) - # RSA certs can have multiple algorithm types - if ( - sig_type == _SSH_RSA - and inner_sig_type - not in [_SSH_RSA_SHA256, _SSH_RSA_SHA512, _SSH_RSA] - ) or (sig_type != _SSH_RSA and inner_sig_type != sig_type): - raise ValueError("Signature key type does not match") - signature, sig_rest = _get_sshstr(sig_rest) - _check_empty(sig_rest) - return SSHCertificate( - nonce, - public_key, - serial, - cctype, - key_id, - valid_principals, - valid_after, - valid_before, - critical_options, - extensions, - sig_type, - sig_key, - inner_sig_type, - signature, - tbs_cert_body, - orig_key_type, - cert_body, - ) - else: - _check_empty(rest) - return public_key - - -def load_ssh_public_identity( - data: utils.Buffer, -) -> SSHCertificate | SSHPublicKeyTypes: - return _load_ssh_public_identity(data) - - -def _parse_exts_opts(exts_opts: memoryview) -> dict[bytes, bytes]: - result: dict[bytes, bytes] = {} - last_name = None - while exts_opts: - name, exts_opts = _get_sshstr(exts_opts) - bname: bytes = bytes(name) - if bname in result: - raise ValueError("Duplicate name") - if last_name is not None and bname < last_name: - raise ValueError("Fields not lexically sorted") - value, exts_opts = _get_sshstr(exts_opts) - if len(value) > 0: - value, extra = _get_sshstr(value) - if len(extra) > 0: - raise ValueError("Unexpected extra data after value") - result[bname] = bytes(value) - last_name = bname - return result - - -def ssh_key_fingerprint( - key: SSHPublicKeyTypes, - hash_algorithm: hashes.MD5 | hashes.SHA256, -) -> bytes: - if not isinstance(hash_algorithm, (hashes.MD5, hashes.SHA256)): - raise TypeError("hash_algorithm must be either MD5 or SHA256") - - key_type = _get_ssh_key_type(key) - kformat = _lookup_kformat(key_type) - - f_pub = _FragList() - f_pub.put_sshstr(key_type) - kformat.encode_public(key, f_pub) - - ssh_binary_data = f_pub.tobytes() - - # Hash the binary data - hash_obj = hashes.Hash(hash_algorithm) - hash_obj.update(ssh_binary_data) - return hash_obj.finalize() - - -def load_ssh_public_key( - data: utils.Buffer, backend: typing.Any = None -) -> SSHPublicKeyTypes: - cert_or_key = _load_ssh_public_identity(data, _legacy_dsa_allowed=True) - public_key: SSHPublicKeyTypes - if isinstance(cert_or_key, SSHCertificate): - public_key = cert_or_key.public_key() - else: - public_key = cert_or_key - - if isinstance(public_key, dsa.DSAPublicKey): - warnings.warn( - "SSH DSA keys are deprecated and will be removed in a future " - "release.", - utils.DeprecatedIn40, - stacklevel=2, - ) - return public_key - - -def serialize_ssh_public_key(public_key: SSHPublicKeyTypes) -> bytes: - """One-line public key format for OpenSSH""" - if isinstance(public_key, dsa.DSAPublicKey): - warnings.warn( - "SSH DSA key support is deprecated and will be " - "removed in a future release", - utils.DeprecatedIn40, - stacklevel=4, - ) - key_type = _get_ssh_key_type(public_key) - kformat = _lookup_kformat(key_type) - - f_pub = _FragList() - f_pub.put_sshstr(key_type) - kformat.encode_public(public_key, f_pub) - - pub = binascii.b2a_base64(f_pub.tobytes()).strip() - return b"".join([key_type, b" ", pub]) - - -SSHCertPrivateKeyTypes = typing.Union[ - ec.EllipticCurvePrivateKey, - rsa.RSAPrivateKey, - ed25519.Ed25519PrivateKey, -] - - -# This is an undocumented limit enforced in the openssh codebase for sshd and -# ssh-keygen, but it is undefined in the ssh certificates spec. -_SSHKEY_CERT_MAX_PRINCIPALS = 256 - - -class SSHCertificateBuilder: - def __init__( - self, - _public_key: SSHCertPublicKeyTypes | None = None, - _serial: int | None = None, - _type: SSHCertificateType | None = None, - _key_id: bytes | None = None, - _valid_principals: list[bytes] = [], - _valid_for_all_principals: bool = False, - _valid_before: int | None = None, - _valid_after: int | None = None, - _critical_options: list[tuple[bytes, bytes]] = [], - _extensions: list[tuple[bytes, bytes]] = [], - ): - self._public_key = _public_key - self._serial = _serial - self._type = _type - self._key_id = _key_id - self._valid_principals = _valid_principals - self._valid_for_all_principals = _valid_for_all_principals - self._valid_before = _valid_before - self._valid_after = _valid_after - self._critical_options = _critical_options - self._extensions = _extensions - - def public_key( - self, public_key: SSHCertPublicKeyTypes - ) -> SSHCertificateBuilder: - if not isinstance( - public_key, - ( - ec.EllipticCurvePublicKey, - rsa.RSAPublicKey, - ed25519.Ed25519PublicKey, - ), - ): - raise TypeError("Unsupported key type") - if self._public_key is not None: - raise ValueError("public_key already set") - - return SSHCertificateBuilder( - _public_key=public_key, - _serial=self._serial, - _type=self._type, - _key_id=self._key_id, - _valid_principals=self._valid_principals, - _valid_for_all_principals=self._valid_for_all_principals, - _valid_before=self._valid_before, - _valid_after=self._valid_after, - _critical_options=self._critical_options, - _extensions=self._extensions, - ) - - def serial(self, serial: int) -> SSHCertificateBuilder: - if not isinstance(serial, int): - raise TypeError("serial must be an integer") - if not 0 <= serial < 2**64: - raise ValueError("serial must be between 0 and 2**64") - if self._serial is not None: - raise ValueError("serial already set") - - return SSHCertificateBuilder( - _public_key=self._public_key, - _serial=serial, - _type=self._type, - _key_id=self._key_id, - _valid_principals=self._valid_principals, - _valid_for_all_principals=self._valid_for_all_principals, - _valid_before=self._valid_before, - _valid_after=self._valid_after, - _critical_options=self._critical_options, - _extensions=self._extensions, - ) - - def type(self, type: SSHCertificateType) -> SSHCertificateBuilder: - if not isinstance(type, SSHCertificateType): - raise TypeError("type must be an SSHCertificateType") - if self._type is not None: - raise ValueError("type already set") - - return SSHCertificateBuilder( - _public_key=self._public_key, - _serial=self._serial, - _type=type, - _key_id=self._key_id, - _valid_principals=self._valid_principals, - _valid_for_all_principals=self._valid_for_all_principals, - _valid_before=self._valid_before, - _valid_after=self._valid_after, - _critical_options=self._critical_options, - _extensions=self._extensions, - ) - - def key_id(self, key_id: bytes) -> SSHCertificateBuilder: - if not isinstance(key_id, bytes): - raise TypeError("key_id must be bytes") - if self._key_id is not None: - raise ValueError("key_id already set") - - return SSHCertificateBuilder( - _public_key=self._public_key, - _serial=self._serial, - _type=self._type, - _key_id=key_id, - _valid_principals=self._valid_principals, - _valid_for_all_principals=self._valid_for_all_principals, - _valid_before=self._valid_before, - _valid_after=self._valid_after, - _critical_options=self._critical_options, - _extensions=self._extensions, - ) - - def valid_principals( - self, valid_principals: list[bytes] - ) -> SSHCertificateBuilder: - if self._valid_for_all_principals: - raise ValueError( - "Principals can't be set because the cert is valid " - "for all principals" - ) - if ( - not all(isinstance(x, bytes) for x in valid_principals) - or not valid_principals - ): - raise TypeError( - "principals must be a list of bytes and can't be empty" - ) - if self._valid_principals: - raise ValueError("valid_principals already set") - - if len(valid_principals) > _SSHKEY_CERT_MAX_PRINCIPALS: - raise ValueError( - "Reached or exceeded the maximum number of valid_principals" - ) - - return SSHCertificateBuilder( - _public_key=self._public_key, - _serial=self._serial, - _type=self._type, - _key_id=self._key_id, - _valid_principals=valid_principals, - _valid_for_all_principals=self._valid_for_all_principals, - _valid_before=self._valid_before, - _valid_after=self._valid_after, - _critical_options=self._critical_options, - _extensions=self._extensions, - ) - - def valid_for_all_principals(self): - if self._valid_principals: - raise ValueError( - "valid_principals already set, can't set " - "valid_for_all_principals" - ) - if self._valid_for_all_principals: - raise ValueError("valid_for_all_principals already set") - - return SSHCertificateBuilder( - _public_key=self._public_key, - _serial=self._serial, - _type=self._type, - _key_id=self._key_id, - _valid_principals=self._valid_principals, - _valid_for_all_principals=True, - _valid_before=self._valid_before, - _valid_after=self._valid_after, - _critical_options=self._critical_options, - _extensions=self._extensions, - ) - - def valid_before(self, valid_before: int | float) -> SSHCertificateBuilder: - if not isinstance(valid_before, (int, float)): - raise TypeError("valid_before must be an int or float") - valid_before = int(valid_before) - if valid_before < 0 or valid_before >= 2**64: - raise ValueError("valid_before must [0, 2**64)") - if self._valid_before is not None: - raise ValueError("valid_before already set") - - return SSHCertificateBuilder( - _public_key=self._public_key, - _serial=self._serial, - _type=self._type, - _key_id=self._key_id, - _valid_principals=self._valid_principals, - _valid_for_all_principals=self._valid_for_all_principals, - _valid_before=valid_before, - _valid_after=self._valid_after, - _critical_options=self._critical_options, - _extensions=self._extensions, - ) - - def valid_after(self, valid_after: int | float) -> SSHCertificateBuilder: - if not isinstance(valid_after, (int, float)): - raise TypeError("valid_after must be an int or float") - valid_after = int(valid_after) - if valid_after < 0 or valid_after >= 2**64: - raise ValueError("valid_after must [0, 2**64)") - if self._valid_after is not None: - raise ValueError("valid_after already set") - - return SSHCertificateBuilder( - _public_key=self._public_key, - _serial=self._serial, - _type=self._type, - _key_id=self._key_id, - _valid_principals=self._valid_principals, - _valid_for_all_principals=self._valid_for_all_principals, - _valid_before=self._valid_before, - _valid_after=valid_after, - _critical_options=self._critical_options, - _extensions=self._extensions, - ) - - def add_critical_option( - self, name: bytes, value: bytes - ) -> SSHCertificateBuilder: - if not isinstance(name, bytes) or not isinstance(value, bytes): - raise TypeError("name and value must be bytes") - # This is O(n**2) - if name in [name for name, _ in self._critical_options]: - raise ValueError("Duplicate critical option name") - - return SSHCertificateBuilder( - _public_key=self._public_key, - _serial=self._serial, - _type=self._type, - _key_id=self._key_id, - _valid_principals=self._valid_principals, - _valid_for_all_principals=self._valid_for_all_principals, - _valid_before=self._valid_before, - _valid_after=self._valid_after, - _critical_options=[*self._critical_options, (name, value)], - _extensions=self._extensions, - ) - - def add_extension( - self, name: bytes, value: bytes - ) -> SSHCertificateBuilder: - if not isinstance(name, bytes) or not isinstance(value, bytes): - raise TypeError("name and value must be bytes") - # This is O(n**2) - if name in [name for name, _ in self._extensions]: - raise ValueError("Duplicate extension name") - - return SSHCertificateBuilder( - _public_key=self._public_key, - _serial=self._serial, - _type=self._type, - _key_id=self._key_id, - _valid_principals=self._valid_principals, - _valid_for_all_principals=self._valid_for_all_principals, - _valid_before=self._valid_before, - _valid_after=self._valid_after, - _critical_options=self._critical_options, - _extensions=[*self._extensions, (name, value)], - ) - - def sign(self, private_key: SSHCertPrivateKeyTypes) -> SSHCertificate: - if not isinstance( - private_key, - ( - ec.EllipticCurvePrivateKey, - rsa.RSAPrivateKey, - ed25519.Ed25519PrivateKey, - ), - ): - raise TypeError("Unsupported private key type") - - if self._public_key is None: - raise ValueError("public_key must be set") - - # Not required - serial = 0 if self._serial is None else self._serial - - if self._type is None: - raise ValueError("type must be set") - - # Not required - key_id = b"" if self._key_id is None else self._key_id - - # A zero length list is valid, but means the certificate - # is valid for any principal of the specified type. We require - # the user to explicitly set valid_for_all_principals to get - # that behavior. - if not self._valid_principals and not self._valid_for_all_principals: - raise ValueError( - "valid_principals must be set if valid_for_all_principals " - "is False" - ) - - if self._valid_before is None: - raise ValueError("valid_before must be set") - - if self._valid_after is None: - raise ValueError("valid_after must be set") - - if self._valid_after > self._valid_before: - raise ValueError("valid_after must be earlier than valid_before") - - # lexically sort our byte strings - self._critical_options.sort(key=lambda x: x[0]) - self._extensions.sort(key=lambda x: x[0]) - - key_type = _get_ssh_key_type(self._public_key) - cert_prefix = key_type + _CERT_SUFFIX - - # Marshal the bytes to be signed - nonce = os.urandom(32) - kformat = _lookup_kformat(key_type) - f = _FragList() - f.put_sshstr(cert_prefix) - f.put_sshstr(nonce) - kformat.encode_public(self._public_key, f) - f.put_u64(serial) - f.put_u32(self._type.value) - f.put_sshstr(key_id) - fprincipals = _FragList() - for p in self._valid_principals: - fprincipals.put_sshstr(p) - f.put_sshstr(fprincipals.tobytes()) - f.put_u64(self._valid_after) - f.put_u64(self._valid_before) - fcrit = _FragList() - for name, value in self._critical_options: - fcrit.put_sshstr(name) - if len(value) > 0: - foptval = _FragList() - foptval.put_sshstr(value) - fcrit.put_sshstr(foptval.tobytes()) - else: - fcrit.put_sshstr(value) - f.put_sshstr(fcrit.tobytes()) - fext = _FragList() - for name, value in self._extensions: - fext.put_sshstr(name) - if len(value) > 0: - fextval = _FragList() - fextval.put_sshstr(value) - fext.put_sshstr(fextval.tobytes()) - else: - fext.put_sshstr(value) - f.put_sshstr(fext.tobytes()) - f.put_sshstr(b"") # RESERVED FIELD - # encode CA public key - ca_type = _get_ssh_key_type(private_key) - caformat = _lookup_kformat(ca_type) - caf = _FragList() - caf.put_sshstr(ca_type) - caformat.encode_public(private_key.public_key(), caf) - f.put_sshstr(caf.tobytes()) - # Sigs according to the rules defined for the CA's public key - # (RFC4253 section 6.6 for ssh-rsa, RFC5656 for ECDSA, - # and RFC8032 for Ed25519). - if isinstance(private_key, ed25519.Ed25519PrivateKey): - signature = private_key.sign(f.tobytes()) - fsig = _FragList() - fsig.put_sshstr(ca_type) - fsig.put_sshstr(signature) - f.put_sshstr(fsig.tobytes()) - elif isinstance(private_key, ec.EllipticCurvePrivateKey): - hash_alg = _get_ec_hash_alg(private_key.curve) - signature = private_key.sign(f.tobytes(), ec.ECDSA(hash_alg)) - r, s = asym_utils.decode_dss_signature(signature) - fsig = _FragList() - fsig.put_sshstr(ca_type) - fsigblob = _FragList() - fsigblob.put_mpint(r) - fsigblob.put_mpint(s) - fsig.put_sshstr(fsigblob.tobytes()) - f.put_sshstr(fsig.tobytes()) - - else: - assert isinstance(private_key, rsa.RSAPrivateKey) - # Just like Golang, we're going to use SHA512 for RSA - # https://cs.opensource.google/go/x/crypto/+/refs/tags/ - # v0.4.0:ssh/certs.go;l=445 - # RFC 8332 defines SHA256 and 512 as options - fsig = _FragList() - fsig.put_sshstr(_SSH_RSA_SHA512) - signature = private_key.sign( - f.tobytes(), padding.PKCS1v15(), hashes.SHA512() - ) - fsig.put_sshstr(signature) - f.put_sshstr(fsig.tobytes()) - - cert_data = binascii.b2a_base64(f.tobytes()).strip() - # load_ssh_public_identity returns a union, but this is - # guaranteed to be an SSHCertificate, so we cast to make - # mypy happy. - return typing.cast( - SSHCertificate, - load_ssh_public_identity(b"".join([cert_prefix, b" ", cert_data])), - ) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py deleted file mode 100644 index c1af423..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - - -class InvalidToken(Exception): - pass diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index e0622ce8999719bce178eec02dc038ab20e38afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmYjNF;2rU6t$C9l# z!fu7=mu$V~_y4n>#bh!jzK%ZARYVE-3goZ`p4<{b-KhtXNLrGLW|We9A|n~U5g9}D z8fUQ_Jd$+y?Yl@y`xBwHL4nF>mxr^%^7rgL6Ayr7RFW)`)XztK@}OH$D*0sApl4~^ zk2u$&0?zv}=arF78F0e+b0f;V@Djax|84uCzkVr*&sz|Dus!E((C|_$(cS6pIEM>r>bu^~ZPH9P02>yPp3jdlWqS O(e*z0&G64LiGKmWLvlm_ diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__pycache__/hotp.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__pycache__/hotp.cpython-39.pyc deleted file mode 100644 index 8c301a6336f6755ec1f4f912fc2047a52a73ac11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3395 zcma)8ZEqXL5#GHw9w}0yWm%S;ASGI~F@uEkdmT4*?HWzpH>IuB7QG<79=S{Lq~jgE zx0FqWLV(!)QXs#e4j}bg|3Uvi|HOUmC;bHjf%?pzB&%xB_Q;!?-JN}#nP+CAMx(~? zRQ}Q4`g@(Re^TT0Q$gcCV?6&W7{LTj*oX(56K^F}V41HS*!bFsGjaoWrE4U!6$E@8vpwqW`u@I$crXw9^X};dJ3irt* z)3T^eR3g)UCM5bAeGKX-)uE0@vT%l@sNc2==kcQl*9s5x`mNjMd+XYDELs0ax)UX_ z*vPhJinjN|$zUK=;XL|i>5fMa8HnD8 zWTY2h1fR1lHn4=H`JM&d-sfo9;G8XY&)dh?roHRVVX_HV_vY?iML2VNVC}=KX!&!; zaJK5{>fC#x}|UX;;(|@l7J*+_PKaXx$+ZAq!STIRZ&%7G4Zsdl6a^|Le_tE?~cyxZB4=}tF^d$(_P z$5TDb(i@%kyLqhTd*i6T9c{|I+gH=E&Nfvv9!|T%Xf}#;cdX)3tm7RF>!;Zu>g!Bl zXFcwWr$r;&l&Msamf=Ljbl`jqg!w*SnyS1{HmfzywV#(i>+ z1dL<>7Yw+)ENtNjS9qdA_yVecuNN+m?1;K(ytKrkSOUtZ*iftzne6bk^$0R;1Av<+^q4`kht} zaOuq2KR5p0I`PZaXaWHePAP=QO{rQGJ30q+#RIbL$)s%1BK@A)p(piIDbv<%Oc$*? zSpUH>4o?=Qc=v9rjCZX}5r>G^0UB+bxTyU$N+$A0N@c33#d&OEW?!l{b}p)9M>D1< z3@JK}suFpN$Qwky0YY&vm&riAM?D=PWK`89a+L^yt|V`REBr8w(^!Wg$>ysd%wOTY zRm0mndOhy(nenL3v2@|~robtpd&R_5sY=(dXn~`LVgkL!H9i1CuAw>1xvVV#CxQ9d zo;~OLd>4)(D2h7g*(%$$g}sN!N$q`$Vku1Qtk2$gNZ}iH`9F+C`F7@idiCzrPp|Fn zA~fAbhtZ|_F1X@cD5i*NaX-{*lJ)_8qr}34%OhSOx|Qk6QFmzK_dtTBV^I+zLm_#X zaCcUr$D!myOvz2!=cLRULdlU5k0si6xdJU-s*hsn@k9IxvdGGs?UBNus(lWnS@~sc zmufT^u-0eadW;aA#8Q;*X%5*Enao>A(k)!8KkT#}MXLtBF<>a4sQYLtIw;O#E^Dr3 z4t3^k9-?tPn65)MC(AOv%x4P(1%zc9>7Ta02LbX^WB)&cDKD^9W=m_=nyt;PJ!j6h zT)_o$=NBe7{*I;JbeQ(0Kjn;m8hKN=$bH_ICW!o=rPfu3nf^XJWp0<*Q&iU2CFIBZ zY!_K}?#vxgy~zG#U1Gbgu5B$)C=#_VEU|E(ys5sfZs0_P-HSKdmH`SYOk{?GuhN zF-eH8hvAb+l$0ateJoc3<^ge}M)fNquTNw+imfIqQyk7oVZH}nesy`R=`TCY#r7&~ zGMJ#y#3qVhquvB5yfRZ4byU!(aykfgsDdaKm>Mg1>vVC`DT|xV>*B^>+xT1X?f))` zx%p7$XVOV<<$ugNDV|Kk2$ug%e4^tdFRKvuHz`b^-l2mVYf_2wby_O?4@zC%BT(h! VMRm*PK76vtSKyO%t7)%Y{uf=~Wa9t; diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__pycache__/totp.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/__pycache__/totp.cpython-39.pyc deleted file mode 100644 index ad9882168fb8f6a594123b531741c7e82369df62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1924 zcma)6OOG2x5bo|7j~{D08)vg&7ZeRoVWD`Cct}VH1rQ=!7Nqzz2S(%RwmqA9rMt($ zmbt`x7Wo(9VsCfLPq+BBC2GW2&ID2LKKT2OD7+H z7*tC=FN+UGp9Ct^;z0!g$1|aVL@p~`&SYH8m%%(<<*^PbndYfZ7qG0KmD4!Ur3^H9 zJF1qZ6-8;0>L@w@j}+oh+8$-J^>WoiQbxP=)gI8|ul;FO#@aL{OYn8bjEk@vPYPYj zB4K#`a$tqH@L6!*2St-L)l{=7+c0&g9Zom&IamN}a_YWHHuOgZTI0f7vlo~b>}2)P z7_RrLSjM@~Li%~Fv_BDkT=?LQn1Km$MEIrLI%a1hprMnh)Ye8KBv!I%Y#nc74SXeK zDdhmn@(!-Gb_FqXB;p{C(ArGO8s3nWtgSf2#rq)MfKMUGg!Ta~_R@9x^b)b%WyU=z z3xQRLVB0(8F`P&cncYAg6Ud^3H*0bMcw8{VU`<~zb-Y9BG6`32KCY`OO9l6lARh|8 z7CtY9@}W8Sz<4qr4PA*hhb_xfB%WHYCGxS0@paI*PGK@$#b-Q7ymY#J53C9g5IUf% zJ(~>M72_x^R~-3{dX zH;w-82R1Xp2mg2b2%DX4e6~?rQo_MMPS-lklx^rXl$)YAtxvb`eTEfaA?UIe>(VYg IXmp*w05Z4eD*ylh diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py deleted file mode 100644 index 21fb000..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py +++ /dev/null @@ -1,101 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import base64 -import typing -from urllib.parse import quote, urlencode - -from cryptography.hazmat.primitives import constant_time, hmac -from cryptography.hazmat.primitives.hashes import SHA1, SHA256, SHA512 -from cryptography.hazmat.primitives.twofactor import InvalidToken -from cryptography.utils import Buffer - -HOTPHashTypes = typing.Union[SHA1, SHA256, SHA512] - - -def _generate_uri( - hotp: HOTP, - type_name: str, - account_name: str, - issuer: str | None, - extra_parameters: list[tuple[str, int]], -) -> str: - parameters = [ - ("digits", hotp._length), - ("secret", base64.b32encode(hotp._key)), - ("algorithm", hotp._algorithm.name.upper()), - ] - - if issuer is not None: - parameters.append(("issuer", issuer)) - - parameters.extend(extra_parameters) - - label = ( - f"{quote(issuer)}:{quote(account_name)}" - if issuer - else quote(account_name) - ) - return f"otpauth://{type_name}/{label}?{urlencode(parameters)}" - - -class HOTP: - def __init__( - self, - key: Buffer, - length: int, - algorithm: HOTPHashTypes, - backend: typing.Any = None, - enforce_key_length: bool = True, - ) -> None: - if len(key) < 16 and enforce_key_length is True: - raise ValueError("Key length has to be at least 128 bits.") - - if not isinstance(length, int): - raise TypeError("Length parameter must be an integer type.") - - if length < 6 or length > 8: - raise ValueError("Length of HOTP has to be between 6 and 8.") - - if not isinstance(algorithm, (SHA1, SHA256, SHA512)): - raise TypeError("Algorithm must be SHA1, SHA256 or SHA512.") - - self._key = key - self._length = length - self._algorithm = algorithm - - def generate(self, counter: int) -> bytes: - if not isinstance(counter, int): - raise TypeError("Counter parameter must be an integer type.") - - truncated_value = self._dynamic_truncate(counter) - hotp = truncated_value % (10**self._length) - return "{0:0{1}}".format(hotp, self._length).encode() - - def verify(self, hotp: bytes, counter: int) -> None: - if not constant_time.bytes_eq(self.generate(counter), hotp): - raise InvalidToken("Supplied HOTP value does not match.") - - def _dynamic_truncate(self, counter: int) -> int: - ctx = hmac.HMAC(self._key, self._algorithm) - - try: - ctx.update(counter.to_bytes(length=8, byteorder="big")) - except OverflowError: - raise ValueError(f"Counter must be between 0 and {2**64 - 1}.") - - hmac_value = ctx.finalize() - - offset = hmac_value[len(hmac_value) - 1] & 0b1111 - p = hmac_value[offset : offset + 4] - return int.from_bytes(p, byteorder="big") & 0x7FFFFFFF - - def get_provisioning_uri( - self, account_name: str, counter: int, issuer: str | None - ) -> str: - return _generate_uri( - self, "hotp", account_name, issuer, [("counter", int(counter))] - ) diff --git a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/totp.py b/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/totp.py deleted file mode 100644 index 10c725c..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/hazmat/primitives/twofactor/totp.py +++ /dev/null @@ -1,56 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import typing - -from cryptography.hazmat.primitives import constant_time -from cryptography.hazmat.primitives.twofactor import InvalidToken -from cryptography.hazmat.primitives.twofactor.hotp import ( - HOTP, - HOTPHashTypes, - _generate_uri, -) -from cryptography.utils import Buffer - - -class TOTP: - def __init__( - self, - key: Buffer, - length: int, - algorithm: HOTPHashTypes, - time_step: int, - backend: typing.Any = None, - enforce_key_length: bool = True, - ): - self._time_step = time_step - self._hotp = HOTP( - key, length, algorithm, enforce_key_length=enforce_key_length - ) - - def generate(self, time: int | float) -> bytes: - if not isinstance(time, (int, float)): - raise TypeError( - "Time parameter must be an integer type or float type." - ) - - counter = int(time / self._time_step) - return self._hotp.generate(counter) - - def verify(self, totp: bytes, time: int) -> None: - if not constant_time.bytes_eq(self.generate(time), totp): - raise InvalidToken("Supplied TOTP value does not match.") - - def get_provisioning_uri( - self, account_name: str, issuer: str | None - ) -> str: - return _generate_uri( - self._hotp, - "totp", - account_name, - issuer, - [("period", int(self._time_step))], - ) diff --git a/.venv/lib/python3.9/site-packages/cryptography/py.typed b/.venv/lib/python3.9/site-packages/cryptography/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/cryptography/utils.py b/.venv/lib/python3.9/site-packages/cryptography/utils.py deleted file mode 100644 index 9cfc992..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/utils.py +++ /dev/null @@ -1,135 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import enum -import sys -import types -import typing -import warnings -from collections.abc import Callable, Sequence - - -# We use a UserWarning subclass, instead of DeprecationWarning, because CPython -# decided deprecation warnings should be invisible by default. -class CryptographyDeprecationWarning(UserWarning): - pass - - -# Several APIs were deprecated with no specific end-of-life date because of the -# ubiquity of their use. They should not be removed until we agree on when that -# cycle ends. -DeprecatedIn36 = CryptographyDeprecationWarning -DeprecatedIn40 = CryptographyDeprecationWarning -DeprecatedIn41 = CryptographyDeprecationWarning -DeprecatedIn42 = CryptographyDeprecationWarning -DeprecatedIn43 = CryptographyDeprecationWarning -DeprecatedIn47 = CryptographyDeprecationWarning - - -# If you're wondering why we don't use `Buffer`, it's because `Buffer` would -# be more accurately named: Bufferable. It means something which has an -# `__buffer__`. Which means you can't actually treat the result as a buffer -# (and do things like take a `len()`). -Buffer = typing.Union[bytes, bytearray, memoryview] - - -def _check_bytes(name: str, value: bytes) -> None: - if not isinstance(value, bytes): - raise TypeError(f"{name} must be bytes") - - -def _check_byteslike(name: str, value: Buffer) -> None: - try: - memoryview(value) - except TypeError: - raise TypeError(f"{name} must be bytes-like") - - -def int_to_bytes(integer: int, length: int | None = None) -> bytes: - if length == 0: - raise ValueError("length argument can't be 0") - return integer.to_bytes( - length or (integer.bit_length() + 7) // 8 or 1, "big" - ) - - -class InterfaceNotImplemented(Exception): - pass - - -class _DeprecatedValue: - def __init__(self, value: object, message: str, warning_class): - self.value = value - self.message = message - self.warning_class = warning_class - - -class _ModuleWithDeprecations(types.ModuleType): - def __init__(self, module: types.ModuleType): - super().__init__(module.__name__) - self.__dict__["_module"] = module - - def __getattr__(self, name: str) -> typing.Any: - obj = getattr(self._module, name) - if isinstance(obj, _DeprecatedValue): - warnings.warn(obj.message, obj.warning_class, stacklevel=2) - obj = obj.value - return obj - - def __setattr__(self, attr: str, value: object) -> None: - setattr(self._module, attr, value) - - def __delattr__(self, attr: str) -> None: - obj = getattr(self._module, attr) - if isinstance(obj, _DeprecatedValue): - warnings.warn(obj.message, obj.warning_class, stacklevel=2) - - delattr(self._module, attr) - - def __dir__(self) -> Sequence[str]: - return ["_module", *dir(self._module)] - - -def deprecated( - value: object, - module_name: str, - message: str, - warning_class: type[Warning], - name: str | None = None, -) -> _DeprecatedValue: - module = sys.modules[module_name] - if not isinstance(module, _ModuleWithDeprecations): - sys.modules[module_name] = module = _ModuleWithDeprecations(module) - dv = _DeprecatedValue(value, message, warning_class) - # Maintain backwards compatibility with `name is None` for pyOpenSSL. - if name is not None: - setattr(module, name, dv) - return dv - - -def cached_property(func: Callable) -> property: - cached_name = f"_cached_{func}" - sentinel = object() - - def inner(instance: object): - cache = getattr(instance, cached_name, sentinel) - if cache is not sentinel: - return cache - result = func(instance) - setattr(instance, cached_name, result) - return result - - return property(inner) - - -# Python 3.10 changed representation of enums. We use well-defined object -# representation and string representation from Python 3.9. -class Enum(enum.Enum): - def __repr__(self) -> str: - return f"<{self.__class__.__name__}.{self._name_}: {self._value_!r}>" - - def __str__(self) -> str: - return f"{self.__class__.__name__}.{self._name_}" diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/__init__.py b/.venv/lib/python3.9/site-packages/cryptography/x509/__init__.py deleted file mode 100644 index cb34833..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/x509/__init__.py +++ /dev/null @@ -1,271 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.x509 import certificate_transparency, oid, verification -from cryptography.x509.base import ( - Attribute, - AttributeNotFound, - Attributes, - Certificate, - CertificateBuilder, - CertificateRevocationList, - CertificateRevocationListBuilder, - CertificateSigningRequest, - CertificateSigningRequestBuilder, - InvalidVersion, - RevokedCertificate, - RevokedCertificateBuilder, - Version, - load_der_x509_certificate, - load_der_x509_crl, - load_der_x509_csr, - load_pem_x509_certificate, - load_pem_x509_certificates, - load_pem_x509_crl, - load_pem_x509_csr, - random_serial_number, -) -from cryptography.x509.extensions import ( - AccessDescription, - Admission, - Admissions, - AuthorityInformationAccess, - AuthorityKeyIdentifier, - BasicConstraints, - CertificateIssuer, - CertificatePolicies, - CRLDistributionPoints, - CRLNumber, - CRLReason, - DeltaCRLIndicator, - DistributionPoint, - DuplicateExtension, - ExtendedKeyUsage, - Extension, - ExtensionNotFound, - Extensions, - ExtensionType, - FreshestCRL, - GeneralNames, - InhibitAnyPolicy, - InvalidityDate, - IssuerAlternativeName, - IssuingDistributionPoint, - KeyUsage, - MSCertificateTemplate, - NameConstraints, - NamingAuthority, - NoticeReference, - OCSPAcceptableResponses, - OCSPNoCheck, - OCSPNonce, - PolicyConstraints, - PolicyInformation, - PrecertificateSignedCertificateTimestamps, - PrecertPoison, - PrivateKeyUsagePeriod, - ProfessionInfo, - ReasonFlags, - SignedCertificateTimestamps, - SubjectAlternativeName, - SubjectInformationAccess, - SubjectKeyIdentifier, - TLSFeature, - TLSFeatureType, - UnrecognizedExtension, - UserNotice, -) -from cryptography.x509.general_name import ( - DirectoryName, - DNSName, - GeneralName, - IPAddress, - OtherName, - RegisteredID, - RFC822Name, - UniformResourceIdentifier, - UnsupportedGeneralNameType, -) -from cryptography.x509.name import ( - Name, - NameAttribute, - RelativeDistinguishedName, -) -from cryptography.x509.oid import ( - AuthorityInformationAccessOID, - CertificatePoliciesOID, - CRLEntryExtensionOID, - ExtendedKeyUsageOID, - ExtensionOID, - NameOID, - ObjectIdentifier, - PublicKeyAlgorithmOID, - SignatureAlgorithmOID, -) - -OID_AUTHORITY_INFORMATION_ACCESS = ExtensionOID.AUTHORITY_INFORMATION_ACCESS -OID_AUTHORITY_KEY_IDENTIFIER = ExtensionOID.AUTHORITY_KEY_IDENTIFIER -OID_BASIC_CONSTRAINTS = ExtensionOID.BASIC_CONSTRAINTS -OID_CERTIFICATE_POLICIES = ExtensionOID.CERTIFICATE_POLICIES -OID_CRL_DISTRIBUTION_POINTS = ExtensionOID.CRL_DISTRIBUTION_POINTS -OID_EXTENDED_KEY_USAGE = ExtensionOID.EXTENDED_KEY_USAGE -OID_FRESHEST_CRL = ExtensionOID.FRESHEST_CRL -OID_INHIBIT_ANY_POLICY = ExtensionOID.INHIBIT_ANY_POLICY -OID_ISSUER_ALTERNATIVE_NAME = ExtensionOID.ISSUER_ALTERNATIVE_NAME -OID_KEY_USAGE = ExtensionOID.KEY_USAGE -OID_PRIVATE_KEY_USAGE_PERIOD = ExtensionOID.PRIVATE_KEY_USAGE_PERIOD -OID_NAME_CONSTRAINTS = ExtensionOID.NAME_CONSTRAINTS -OID_OCSP_NO_CHECK = ExtensionOID.OCSP_NO_CHECK -OID_POLICY_CONSTRAINTS = ExtensionOID.POLICY_CONSTRAINTS -OID_POLICY_MAPPINGS = ExtensionOID.POLICY_MAPPINGS -OID_SUBJECT_ALTERNATIVE_NAME = ExtensionOID.SUBJECT_ALTERNATIVE_NAME -OID_SUBJECT_DIRECTORY_ATTRIBUTES = ExtensionOID.SUBJECT_DIRECTORY_ATTRIBUTES -OID_SUBJECT_INFORMATION_ACCESS = ExtensionOID.SUBJECT_INFORMATION_ACCESS -OID_SUBJECT_KEY_IDENTIFIER = ExtensionOID.SUBJECT_KEY_IDENTIFIER - -OID_DSA_WITH_SHA1 = SignatureAlgorithmOID.DSA_WITH_SHA1 -OID_DSA_WITH_SHA224 = SignatureAlgorithmOID.DSA_WITH_SHA224 -OID_DSA_WITH_SHA256 = SignatureAlgorithmOID.DSA_WITH_SHA256 -OID_ECDSA_WITH_SHA1 = SignatureAlgorithmOID.ECDSA_WITH_SHA1 -OID_ECDSA_WITH_SHA224 = SignatureAlgorithmOID.ECDSA_WITH_SHA224 -OID_ECDSA_WITH_SHA256 = SignatureAlgorithmOID.ECDSA_WITH_SHA256 -OID_ECDSA_WITH_SHA384 = SignatureAlgorithmOID.ECDSA_WITH_SHA384 -OID_ECDSA_WITH_SHA512 = SignatureAlgorithmOID.ECDSA_WITH_SHA512 -OID_RSA_WITH_MD5 = SignatureAlgorithmOID.RSA_WITH_MD5 -OID_RSA_WITH_SHA1 = SignatureAlgorithmOID.RSA_WITH_SHA1 -OID_RSA_WITH_SHA224 = SignatureAlgorithmOID.RSA_WITH_SHA224 -OID_RSA_WITH_SHA256 = SignatureAlgorithmOID.RSA_WITH_SHA256 -OID_RSA_WITH_SHA384 = SignatureAlgorithmOID.RSA_WITH_SHA384 -OID_RSA_WITH_SHA512 = SignatureAlgorithmOID.RSA_WITH_SHA512 -OID_RSASSA_PSS = SignatureAlgorithmOID.RSASSA_PSS - -OID_COMMON_NAME = NameOID.COMMON_NAME -OID_COUNTRY_NAME = NameOID.COUNTRY_NAME -OID_DOMAIN_COMPONENT = NameOID.DOMAIN_COMPONENT -OID_DN_QUALIFIER = NameOID.DN_QUALIFIER -OID_EMAIL_ADDRESS = NameOID.EMAIL_ADDRESS -OID_GENERATION_QUALIFIER = NameOID.GENERATION_QUALIFIER -OID_GIVEN_NAME = NameOID.GIVEN_NAME -OID_LOCALITY_NAME = NameOID.LOCALITY_NAME -OID_ORGANIZATIONAL_UNIT_NAME = NameOID.ORGANIZATIONAL_UNIT_NAME -OID_ORGANIZATION_NAME = NameOID.ORGANIZATION_NAME -OID_PSEUDONYM = NameOID.PSEUDONYM -OID_SERIAL_NUMBER = NameOID.SERIAL_NUMBER -OID_STATE_OR_PROVINCE_NAME = NameOID.STATE_OR_PROVINCE_NAME -OID_SURNAME = NameOID.SURNAME -OID_TITLE = NameOID.TITLE - -OID_CLIENT_AUTH = ExtendedKeyUsageOID.CLIENT_AUTH -OID_CODE_SIGNING = ExtendedKeyUsageOID.CODE_SIGNING -OID_EMAIL_PROTECTION = ExtendedKeyUsageOID.EMAIL_PROTECTION -OID_OCSP_SIGNING = ExtendedKeyUsageOID.OCSP_SIGNING -OID_SERVER_AUTH = ExtendedKeyUsageOID.SERVER_AUTH -OID_TIME_STAMPING = ExtendedKeyUsageOID.TIME_STAMPING - -OID_ANY_POLICY = CertificatePoliciesOID.ANY_POLICY -OID_CPS_QUALIFIER = CertificatePoliciesOID.CPS_QUALIFIER -OID_CPS_USER_NOTICE = CertificatePoliciesOID.CPS_USER_NOTICE - -OID_CERTIFICATE_ISSUER = CRLEntryExtensionOID.CERTIFICATE_ISSUER -OID_CRL_REASON = CRLEntryExtensionOID.CRL_REASON -OID_INVALIDITY_DATE = CRLEntryExtensionOID.INVALIDITY_DATE - -OID_CA_ISSUERS = AuthorityInformationAccessOID.CA_ISSUERS -OID_OCSP = AuthorityInformationAccessOID.OCSP - -__all__ = [ - "OID_CA_ISSUERS", - "OID_OCSP", - "AccessDescription", - "Admission", - "Admissions", - "Attribute", - "AttributeNotFound", - "Attributes", - "AuthorityInformationAccess", - "AuthorityKeyIdentifier", - "BasicConstraints", - "CRLDistributionPoints", - "CRLNumber", - "CRLReason", - "Certificate", - "CertificateBuilder", - "CertificateIssuer", - "CertificatePolicies", - "CertificateRevocationList", - "CertificateRevocationListBuilder", - "CertificateSigningRequest", - "CertificateSigningRequestBuilder", - "DNSName", - "DeltaCRLIndicator", - "DirectoryName", - "DistributionPoint", - "DuplicateExtension", - "ExtendedKeyUsage", - "Extension", - "ExtensionNotFound", - "ExtensionType", - "Extensions", - "FreshestCRL", - "GeneralName", - "GeneralNames", - "IPAddress", - "InhibitAnyPolicy", - "InvalidVersion", - "InvalidityDate", - "IssuerAlternativeName", - "IssuingDistributionPoint", - "KeyUsage", - "MSCertificateTemplate", - "Name", - "NameAttribute", - "NameConstraints", - "NameOID", - "NamingAuthority", - "NoticeReference", - "OCSPAcceptableResponses", - "OCSPNoCheck", - "OCSPNonce", - "ObjectIdentifier", - "OtherName", - "PolicyConstraints", - "PolicyInformation", - "PrecertPoison", - "PrecertificateSignedCertificateTimestamps", - "PrivateKeyUsagePeriod", - "ProfessionInfo", - "PublicKeyAlgorithmOID", - "RFC822Name", - "ReasonFlags", - "RegisteredID", - "RelativeDistinguishedName", - "RevokedCertificate", - "RevokedCertificateBuilder", - "SignatureAlgorithmOID", - "SignedCertificateTimestamps", - "SubjectAlternativeName", - "SubjectInformationAccess", - "SubjectKeyIdentifier", - "TLSFeature", - "TLSFeatureType", - "UniformResourceIdentifier", - "UnrecognizedExtension", - "UnsupportedGeneralNameType", - "UserNotice", - "Version", - "certificate_transparency", - "load_der_x509_certificate", - "load_der_x509_crl", - "load_der_x509_csr", - "load_pem_x509_certificate", - "load_pem_x509_certificates", - "load_pem_x509_crl", - "load_pem_x509_csr", - "oid", - "random_serial_number", - "verification", - "verification", -] diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 5b8bb5c9f24afd111cd03cf0e40d29723d92c985..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6491 zcma)=_j}vM8OJ3rNffDNZI3uRN^H@VEyqqA+Ykv!uqluRNX2?%8>YyU1epgi0H|2$ z-YeaEx9Lpx-n&hk?!D06^q2k%{i*MJkVtUIPo(GhJh<=e_r7-rA{&W>TJW#!$+6W7 z2U=R5rbO^>8z#=Sw6r?Mx3{$9Tk@@i7TyZ2t@OODu#Inr?R*F9;5%Wb(6$$L@iu7V z?aR}xR2it_w!S5ia!7k@Y8UbpMf*{ES%*MNPG&Wcno4Z4skAn%%@?R z&%g|yg;}nE!q34uejd*A1SG^fb{6Ki3Mx-RlBXcWFTe$^fyQ;vc^c9@0~tOK^P=po z!h`%GT;vO|zyUyLZH0&UCAh>d!)1O2u5bekeig3rEM)m2Eb<)WcpmbtE$r$lgC*oL ztRPKTMP7pfl7odTLJ9dW*hmLlWEs|wkHB^0Iy{Pe7CamI9C$ABdGLJX3*d#w7r~2> zFM*dLUj{Enz5-s!@~f|c$B?gv*C1aDuS32b-hg}~yb1Yccnk8a@HXVz;T_0#!n=^~ zhW8-f3-3d|A09`306vKP5PTT<5%?&}u08=DLw+1Sf&3(V3i)aH4Dz$^IppWz3&=0R zmylnEuOPn)UqgN!zJdHEd<*$)_zv>B@IB=B;Rnbk;fKsv{SiEc{4x9l`BV5A^5^gi z@codF2@`v&YYZWmMG@9s(EfYA{L>_qvMTAWp|}$o9?<| zEfsAp7Rayd4Oa5bvvnoUEHV+UYR^>GF>^6A7n;emTpVp6tcv55vC!^-lqwd?oXH$- zAf_eaxcb6gII2`pRPR7p6=V14QDa#LN8B4{1viUn#mbX+i#AI2mA$@rxrD8wwdLzB zv%~~@#ABZ2aoiavyUe_fYG!ZcvFhoHFvQk*0=$bjEu_Z=(oOwgZn4Y2)ExFmn0%kZRTsa(nCuOL`*b2*C z^E&(lRp|9+6YOO}3RuJ&OW7>28)z5S?5?zlF>HJr@mTvKS? zV&3aY*~KL^E!u+m@j87QOc%1tj<@GV?GNhZ#Z{Jb8{)j72Zp`j?Ea0MT3?6K34NMn z-LlQRuIjV!!9d2s`4;gMdX(iW7V$zE+51j$ucpXYg z%IDEl4hG#_!Rq9Ru*R0r+qhDY;h36V3Bu}s>TxNya?onwKGIGVAXa;a3b zU6v1YK?BBPe}||ZAy&?8I`hy-=tMFf8mDZcyYo~A$G@*)qlSnIZjlOXLK4F@McSxel6#V30RvMTNR=0HTjK&rg=IRQRyY+LARmYo3d&;- zd0m)m#3Vz}^^C0PUOT19)Ak;`6Yaf(eS}?vHbOgLKj9|A0m7|>+X%N4ItcXQYTrz_ zh0sX|6C#8zLV|Dy;XL6^!d-+h!rg>>2!{v<3FCx0LX@Bq4imZwM+g&yql9CGNkW>C zAsi=MBHT+jK{!dck8nTXG9gJgMRyrS^nngi&tn z2Vn(r0qk###br9-5F$E7-;Mh-*xQ= zX$BVw3j`oML=ZbkY#6Z{$nUUM%A{wLnvz~H6m>eO%}Hq`sTxu&ChIyJpcCeXC5EfH z=VfdoE~{x}T9Gx_TU)m-w|7d?m6#Drs(M`V@6mnNre*q%Qa)Uhvy$q7V6pxgjOevZiA2=Ve2c=423~-72%AI>-oh zUri3DG-aM5RgsL8tSQO3zaCrW_E4ua%h68_H>eT1ZwxhQ#AfB#dFZ7=wNjs0qlKEb zL?oN&-5c7Rlu9Y;j1If0y?Sw2&rF?@V;Il+APJ9cox7P6S2V1i)D{dW?b`w!B)omY z5~G{BO?Jk98t4u32RHL*9Rj;zG+3`LFA~=!<3S}oYv{Am5kI!IQg<*pF>%a~SG`zU zYVvrKQYd!Iv0%j`eyMt~w^pD࿖>q}x6%}SzNSMunIrfrg3S90>mM6)(Y4r`mS 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 diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/certificate_transparency.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/certificate_transparency.cpython-39.pyc deleted file mode 100644 index f10037ef64e1812fe213a8bda99841999efde34e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1238 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 LxpTR({5}5@eNUn} diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/general_name.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/general_name.cpython-39.pyc deleted file mode 100644 index 8ffe40ce68e3095987227895e109e7f34e6cf99a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9825 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 diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/name.cpython-39.pyc b/.venv/lib/python3.9/site-packages/cryptography/x509/__pycache__/name.cpython-39.pyc deleted file mode 100644 index 6e213cc952dac010aad5afa0b9a95eead5701057..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15941 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 m5=it_%W5T8DGFqT{7Y9Y6|5>44Gj+xf*`Qe-? z!?!%9hOP39$DB3!`}2<aK99i?Sm+MVI!DzOL{JpZY~W1BYx#-uv#*KJ<12IskV!1RsL6`;gEP`a&8a z$8?OG&O{=X9RCOA>j1@D?O;+98v&G|cc)>IK@}!;5E^k=y$3 z7s~}JpzVLSd7I}7w2lVt_)2h)<`XEs=Ahc)mEwkHOmNe*lk0;4sqv(nQt+&4y;~Wc z{O~vJgKFL&5nR268wQb@p`&uv)uei)HsN+=C+9>-Lv~Shawo4!1%dxI_0}>Py zsl*wmF78)7Tg6XPCIr?TS*!O^Vz(-^;faN3F|@EhgX&uZ7QV$8@q?(j)h+(&WLp-H zthnBOVLJem7|ur{ea4k None: - super().__init__(msg) - self.oid = oid - - -def _reject_duplicate_extension( - extension: Extension[ExtensionType], - extensions: list[Extension[ExtensionType]], -) -> None: - # This is quadratic in the number of extensions - for e in extensions: - if e.oid == extension.oid: - raise ValueError("This extension has already been set.") - - -def _reject_duplicate_attribute( - oid: ObjectIdentifier, - attributes: list[tuple[ObjectIdentifier, bytes, int | None]], -) -> None: - # This is quadratic in the number of attributes - for attr_oid, _, _ in attributes: - if attr_oid == oid: - raise ValueError("This attribute has already been set.") - - -def _convert_to_naive_utc_time(time: datetime.datetime) -> datetime.datetime: - """Normalizes a datetime to a naive datetime in UTC. - - time -- datetime to normalize. Assumed to be in UTC if not timezone - aware. - """ - if time.tzinfo is not None: - offset = time.utcoffset() - offset = offset if offset else datetime.timedelta() - return time.replace(tzinfo=None) - offset - else: - return time - - -class Attribute: - def __init__( - self, - oid: ObjectIdentifier, - value: bytes, - _type: int = _ASN1Type.UTF8String.value, - ) -> None: - self._oid = oid - self._value = value - self._type = _type - - @property - def oid(self) -> ObjectIdentifier: - return self._oid - - @property - def value(self) -> bytes: - return self._value - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, Attribute): - return NotImplemented - - return ( - self.oid == other.oid - and self.value == other.value - and self._type == other._type - ) - - def __hash__(self) -> int: - return hash((self.oid, self.value, self._type)) - - -class Attributes: - def __init__( - self, - attributes: Iterable[Attribute], - ) -> None: - self._attributes = list(attributes) - - __len__, __iter__, __getitem__ = _make_sequence_methods("_attributes") - - def __repr__(self) -> str: - return f"" - - def get_attribute_for_oid(self, oid: ObjectIdentifier) -> Attribute: - for attr in self: - if attr.oid == oid: - return attr - - raise AttributeNotFound(f"No {oid} attribute was found", oid) - - -class Version(utils.Enum): - v1 = 0 - v3 = 2 - - -class InvalidVersion(Exception): - def __init__(self, msg: str, parsed_version: int) -> None: - super().__init__(msg) - self.parsed_version = parsed_version - - -Certificate = rust_x509.Certificate -RevokedCertificate = rust_x509.RevokedCertificate - - -CertificateRevocationList = rust_x509.CertificateRevocationList -CertificateSigningRequest = rust_x509.CertificateSigningRequest - - -load_pem_x509_certificate = rust_x509.load_pem_x509_certificate -load_der_x509_certificate = rust_x509.load_der_x509_certificate - -load_pem_x509_certificates = rust_x509.load_pem_x509_certificates - -load_pem_x509_csr = rust_x509.load_pem_x509_csr -load_der_x509_csr = rust_x509.load_der_x509_csr - -load_pem_x509_crl = rust_x509.load_pem_x509_crl -load_der_x509_crl = rust_x509.load_der_x509_crl - - -class CertificateSigningRequestBuilder: - def __init__( - self, - subject_name: Name | None = None, - extensions: list[Extension[ExtensionType]] = [], - attributes: list[tuple[ObjectIdentifier, bytes, int | None]] = [], - ): - """ - Creates an empty X.509 certificate request (v1). - """ - self._subject_name = subject_name - self._extensions = extensions - self._attributes = attributes - - def subject_name(self, name: Name) -> CertificateSigningRequestBuilder: - """ - Sets the certificate requestor's distinguished name. - """ - if not isinstance(name, Name): - raise TypeError("Expecting x509.Name object.") - if self._subject_name is not None: - raise ValueError("The subject name may only be set once.") - return CertificateSigningRequestBuilder( - name, self._extensions, self._attributes - ) - - def add_extension( - self, extval: ExtensionType, critical: bool - ) -> CertificateSigningRequestBuilder: - """ - Adds an X.509 extension to the certificate request. - """ - if not isinstance(extval, ExtensionType): - raise TypeError("extension must be an ExtensionType") - - extension = Extension(extval.oid, critical, extval) - _reject_duplicate_extension(extension, self._extensions) - - return CertificateSigningRequestBuilder( - self._subject_name, - [*self._extensions, extension], - self._attributes, - ) - - def add_attribute( - self, - oid: ObjectIdentifier, - value: bytes, - *, - _tag: _ASN1Type | None = None, - ) -> CertificateSigningRequestBuilder: - """ - Adds an X.509 attribute with an OID and associated value. - """ - if not isinstance(oid, ObjectIdentifier): - raise TypeError("oid must be an ObjectIdentifier") - - if not isinstance(value, bytes): - raise TypeError("value must be bytes") - - if _tag is not None and not isinstance(_tag, _ASN1Type): - raise TypeError("tag must be _ASN1Type") - - _reject_duplicate_attribute(oid, self._attributes) - - if _tag is not None: - tag = _tag.value - else: - tag = None - - return CertificateSigningRequestBuilder( - self._subject_name, - self._extensions, - [*self._attributes, (oid, value, tag)], - ) - - def sign( - self, - private_key: CertificateIssuerPrivateKeyTypes, - algorithm: _AllowedHashTypes | None, - backend: typing.Any = None, - *, - rsa_padding: padding.PSS | padding.PKCS1v15 | None = None, - ecdsa_deterministic: bool | None = None, - ) -> CertificateSigningRequest: - """ - Signs the request using the requestor's private key. - """ - if self._subject_name is None: - raise ValueError("A CertificateSigningRequest must have a subject") - - if rsa_padding is not None: - if not isinstance(rsa_padding, (padding.PSS, padding.PKCS1v15)): - raise TypeError("Padding must be PSS or PKCS1v15") - if not isinstance(private_key, rsa.RSAPrivateKey): - raise TypeError("Padding is only supported for RSA keys") - - if ecdsa_deterministic is not None: - if not isinstance(private_key, ec.EllipticCurvePrivateKey): - raise TypeError( - "Deterministic ECDSA is only supported for EC keys" - ) - - return rust_x509.create_x509_csr( - self, - private_key, - algorithm, - rsa_padding, - ecdsa_deterministic, - ) - - -class CertificateBuilder: - _extensions: list[Extension[ExtensionType]] - - def __init__( - self, - issuer_name: Name | None = None, - subject_name: Name | None = None, - public_key: CertificatePublicKeyTypes | None = None, - serial_number: int | None = None, - not_valid_before: datetime.datetime | None = None, - not_valid_after: datetime.datetime | None = None, - extensions: list[Extension[ExtensionType]] = [], - ) -> None: - self._version = Version.v3 - self._issuer_name = issuer_name - self._subject_name = subject_name - self._public_key = public_key - self._serial_number = serial_number - self._not_valid_before = not_valid_before - self._not_valid_after = not_valid_after - self._extensions = extensions - - def issuer_name(self, name: Name) -> CertificateBuilder: - """ - Sets the CA's distinguished name. - """ - if not isinstance(name, Name): - raise TypeError("Expecting x509.Name object.") - if self._issuer_name is not None: - raise ValueError("The issuer name may only be set once.") - return CertificateBuilder( - name, - self._subject_name, - self._public_key, - self._serial_number, - self._not_valid_before, - self._not_valid_after, - self._extensions, - ) - - def subject_name(self, name: Name) -> CertificateBuilder: - """ - Sets the requestor's distinguished name. - """ - if not isinstance(name, Name): - raise TypeError("Expecting x509.Name object.") - if self._subject_name is not None: - raise ValueError("The subject name may only be set once.") - return CertificateBuilder( - self._issuer_name, - name, - self._public_key, - self._serial_number, - self._not_valid_before, - self._not_valid_after, - self._extensions, - ) - - def public_key( - self, - key: CertificatePublicKeyTypes, - ) -> CertificateBuilder: - """ - Sets the requestor's public key (as found in the signing request). - """ - if not isinstance( - key, - ( - dsa.DSAPublicKey, - rsa.RSAPublicKey, - ec.EllipticCurvePublicKey, - ed25519.Ed25519PublicKey, - ed448.Ed448PublicKey, - x25519.X25519PublicKey, - x448.X448PublicKey, - ), - ): - raise TypeError( - "Expecting one of DSAPublicKey, RSAPublicKey," - " EllipticCurvePublicKey, Ed25519PublicKey," - " Ed448PublicKey, X25519PublicKey, or " - "X448PublicKey." - ) - if self._public_key is not None: - raise ValueError("The public key may only be set once.") - return CertificateBuilder( - self._issuer_name, - self._subject_name, - key, - self._serial_number, - self._not_valid_before, - self._not_valid_after, - self._extensions, - ) - - def serial_number(self, number: int) -> CertificateBuilder: - """ - Sets the certificate serial number. - """ - if not isinstance(number, int): - raise TypeError("Serial number must be of integral type.") - if self._serial_number is not None: - raise ValueError("The serial number may only be set once.") - if number <= 0: - raise ValueError("The serial number should be positive.") - - # ASN.1 integers are always signed, so most significant bit must be - # zero. - if number.bit_length() >= 160: # As defined in RFC 5280 - raise ValueError( - "The serial number should not be more than 159 bits." - ) - return CertificateBuilder( - self._issuer_name, - self._subject_name, - self._public_key, - number, - self._not_valid_before, - self._not_valid_after, - self._extensions, - ) - - def not_valid_before(self, time: datetime.datetime) -> CertificateBuilder: - """ - Sets the certificate activation time. - """ - if not isinstance(time, datetime.datetime): - raise TypeError("Expecting datetime object.") - if self._not_valid_before is not None: - raise ValueError("The not valid before may only be set once.") - time = _convert_to_naive_utc_time(time) - if time < _EARLIEST_UTC_TIME: - raise ValueError( - "The not valid before date must be on or after" - " 1950 January 1)." - ) - if self._not_valid_after is not None and time > self._not_valid_after: - raise ValueError( - "The not valid before date must be before the not valid after " - "date." - ) - return CertificateBuilder( - self._issuer_name, - self._subject_name, - self._public_key, - self._serial_number, - time, - self._not_valid_after, - self._extensions, - ) - - def not_valid_after(self, time: datetime.datetime) -> CertificateBuilder: - """ - Sets the certificate expiration time. - """ - if not isinstance(time, datetime.datetime): - raise TypeError("Expecting datetime object.") - if self._not_valid_after is not None: - raise ValueError("The not valid after may only be set once.") - time = _convert_to_naive_utc_time(time) - if time < _EARLIEST_UTC_TIME: - raise ValueError( - "The not valid after date must be on or after 1950 January 1." - ) - if ( - self._not_valid_before is not None - and time < self._not_valid_before - ): - raise ValueError( - "The not valid after date must be after the not valid before " - "date." - ) - return CertificateBuilder( - self._issuer_name, - self._subject_name, - self._public_key, - self._serial_number, - self._not_valid_before, - time, - self._extensions, - ) - - def add_extension( - self, extval: ExtensionType, critical: bool - ) -> CertificateBuilder: - """ - Adds an X.509 extension to the certificate. - """ - if not isinstance(extval, ExtensionType): - raise TypeError("extension must be an ExtensionType") - - extension = Extension(extval.oid, critical, extval) - _reject_duplicate_extension(extension, self._extensions) - - return CertificateBuilder( - self._issuer_name, - self._subject_name, - self._public_key, - self._serial_number, - self._not_valid_before, - self._not_valid_after, - [*self._extensions, extension], - ) - - def sign( - self, - private_key: CertificateIssuerPrivateKeyTypes, - algorithm: _AllowedHashTypes | None, - backend: typing.Any = None, - *, - rsa_padding: padding.PSS | padding.PKCS1v15 | None = None, - ecdsa_deterministic: bool | None = None, - ) -> Certificate: - """ - Signs the certificate using the CA's private key. - """ - if self._subject_name is None: - raise ValueError("A certificate must have a subject name") - - if self._issuer_name is None: - raise ValueError("A certificate must have an issuer name") - - if self._serial_number is None: - raise ValueError("A certificate must have a serial number") - - if self._not_valid_before is None: - raise ValueError("A certificate must have a not valid before time") - - if self._not_valid_after is None: - raise ValueError("A certificate must have a not valid after time") - - if self._public_key is None: - raise ValueError("A certificate must have a public key") - - if rsa_padding is not None: - if not isinstance(rsa_padding, (padding.PSS, padding.PKCS1v15)): - raise TypeError("Padding must be PSS or PKCS1v15") - if not isinstance(private_key, rsa.RSAPrivateKey): - raise TypeError("Padding is only supported for RSA keys") - - if ecdsa_deterministic is not None: - if not isinstance(private_key, ec.EllipticCurvePrivateKey): - raise TypeError( - "Deterministic ECDSA is only supported for EC keys" - ) - - return rust_x509.create_x509_certificate( - self, - private_key, - algorithm, - rsa_padding, - ecdsa_deterministic, - ) - - -class CertificateRevocationListBuilder: - _extensions: list[Extension[ExtensionType]] - _revoked_certificates: list[RevokedCertificate] - - def __init__( - self, - issuer_name: Name | None = None, - last_update: datetime.datetime | None = None, - next_update: datetime.datetime | None = None, - extensions: list[Extension[ExtensionType]] = [], - revoked_certificates: list[RevokedCertificate] = [], - ): - self._issuer_name = issuer_name - self._last_update = last_update - self._next_update = next_update - self._extensions = extensions - self._revoked_certificates = revoked_certificates - - def issuer_name( - self, issuer_name: Name - ) -> CertificateRevocationListBuilder: - if not isinstance(issuer_name, Name): - raise TypeError("Expecting x509.Name object.") - if self._issuer_name is not None: - raise ValueError("The issuer name may only be set once.") - return CertificateRevocationListBuilder( - issuer_name, - self._last_update, - self._next_update, - self._extensions, - self._revoked_certificates, - ) - - def last_update( - self, last_update: datetime.datetime - ) -> CertificateRevocationListBuilder: - if not isinstance(last_update, datetime.datetime): - raise TypeError("Expecting datetime object.") - if self._last_update is not None: - raise ValueError("Last update may only be set once.") - last_update = _convert_to_naive_utc_time(last_update) - if last_update < _EARLIEST_UTC_TIME: - raise ValueError( - "The last update date must be on or after 1950 January 1." - ) - if self._next_update is not None and last_update > self._next_update: - raise ValueError( - "The last update date must be before the next update date." - ) - return CertificateRevocationListBuilder( - self._issuer_name, - last_update, - self._next_update, - self._extensions, - self._revoked_certificates, - ) - - def next_update( - self, next_update: datetime.datetime - ) -> CertificateRevocationListBuilder: - if not isinstance(next_update, datetime.datetime): - raise TypeError("Expecting datetime object.") - if self._next_update is not None: - raise ValueError("Last update may only be set once.") - next_update = _convert_to_naive_utc_time(next_update) - if next_update < _EARLIEST_UTC_TIME: - raise ValueError( - "The last update date must be on or after 1950 January 1." - ) - if self._last_update is not None and next_update < self._last_update: - raise ValueError( - "The next update date must be after the last update date." - ) - return CertificateRevocationListBuilder( - self._issuer_name, - self._last_update, - next_update, - self._extensions, - self._revoked_certificates, - ) - - def add_extension( - self, extval: ExtensionType, critical: bool - ) -> CertificateRevocationListBuilder: - """ - Adds an X.509 extension to the certificate revocation list. - """ - if not isinstance(extval, ExtensionType): - raise TypeError("extension must be an ExtensionType") - - extension = Extension(extval.oid, critical, extval) - _reject_duplicate_extension(extension, self._extensions) - return CertificateRevocationListBuilder( - self._issuer_name, - self._last_update, - self._next_update, - [*self._extensions, extension], - self._revoked_certificates, - ) - - def add_revoked_certificate( - self, revoked_certificate: RevokedCertificate - ) -> CertificateRevocationListBuilder: - """ - Adds a revoked certificate to the CRL. - """ - if not isinstance(revoked_certificate, RevokedCertificate): - raise TypeError("Must be an instance of RevokedCertificate") - - return CertificateRevocationListBuilder( - self._issuer_name, - self._last_update, - self._next_update, - self._extensions, - [*self._revoked_certificates, revoked_certificate], - ) - - def sign( - self, - private_key: CertificateIssuerPrivateKeyTypes, - algorithm: _AllowedHashTypes | None, - backend: typing.Any = None, - *, - rsa_padding: padding.PSS | padding.PKCS1v15 | None = None, - ecdsa_deterministic: bool | None = None, - ) -> CertificateRevocationList: - if self._issuer_name is None: - raise ValueError("A CRL must have an issuer name") - - if self._last_update is None: - raise ValueError("A CRL must have a last update time") - - if self._next_update is None: - raise ValueError("A CRL must have a next update time") - - if rsa_padding is not None: - if not isinstance(rsa_padding, (padding.PSS, padding.PKCS1v15)): - raise TypeError("Padding must be PSS or PKCS1v15") - if not isinstance(private_key, rsa.RSAPrivateKey): - raise TypeError("Padding is only supported for RSA keys") - - if ecdsa_deterministic is not None: - if not isinstance(private_key, ec.EllipticCurvePrivateKey): - raise TypeError( - "Deterministic ECDSA is only supported for EC keys" - ) - - return rust_x509.create_x509_crl( - self, - private_key, - algorithm, - rsa_padding, - ecdsa_deterministic, - ) - - -class RevokedCertificateBuilder: - def __init__( - self, - serial_number: int | None = None, - revocation_date: datetime.datetime | None = None, - extensions: list[Extension[ExtensionType]] = [], - ): - self._serial_number = serial_number - self._revocation_date = revocation_date - self._extensions = extensions - - def serial_number(self, number: int) -> RevokedCertificateBuilder: - if not isinstance(number, int): - raise TypeError("Serial number must be of integral type.") - if self._serial_number is not None: - raise ValueError("The serial number may only be set once.") - if number <= 0: - raise ValueError("The serial number should be positive") - - # ASN.1 integers are always signed, so most significant bit must be - # zero. - if number.bit_length() >= 160: # As defined in RFC 5280 - raise ValueError( - "The serial number should not be more than 159 bits." - ) - return RevokedCertificateBuilder( - number, self._revocation_date, self._extensions - ) - - def revocation_date( - self, time: datetime.datetime - ) -> RevokedCertificateBuilder: - if not isinstance(time, datetime.datetime): - raise TypeError("Expecting datetime object.") - if self._revocation_date is not None: - raise ValueError("The revocation date may only be set once.") - time = _convert_to_naive_utc_time(time) - if time < _EARLIEST_UTC_TIME: - raise ValueError( - "The revocation date must be on or after 1950 January 1." - ) - return RevokedCertificateBuilder( - self._serial_number, time, self._extensions - ) - - def add_extension( - self, extval: ExtensionType, critical: bool - ) -> RevokedCertificateBuilder: - if not isinstance(extval, ExtensionType): - raise TypeError("extension must be an ExtensionType") - - extension = Extension(extval.oid, critical, extval) - _reject_duplicate_extension(extension, self._extensions) - return RevokedCertificateBuilder( - self._serial_number, - self._revocation_date, - [*self._extensions, extension], - ) - - def build(self, backend: typing.Any = None) -> RevokedCertificate: - if self._serial_number is None: - raise ValueError("A revoked certificate must have a serial number") - if self._revocation_date is None: - raise ValueError( - "A revoked certificate must have a revocation date" - ) - return rust_x509.create_revoked_certificate(self) - - -def random_serial_number() -> int: - return int.from_bytes(os.urandom(20), "big") >> 1 diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/certificate_transparency.py b/.venv/lib/python3.9/site-packages/cryptography/x509/certificate_transparency.py deleted file mode 100644 index fb66cc6..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/x509/certificate_transparency.py +++ /dev/null @@ -1,35 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography import utils -from cryptography.hazmat.bindings._rust import x509 as rust_x509 - - -class LogEntryType(utils.Enum): - X509_CERTIFICATE = 0 - PRE_CERTIFICATE = 1 - - -class Version(utils.Enum): - v1 = 0 - - -class SignatureAlgorithm(utils.Enum): - """ - Signature algorithms that are valid for SCTs. - - These are exactly the same as SignatureAlgorithm in RFC 5246 (TLS 1.2). - - See: - """ - - ANONYMOUS = 0 - RSA = 1 - DSA = 2 - ECDSA = 3 - - -SignedCertificateTimestamp = rust_x509.Sct diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/extensions.py b/.venv/lib/python3.9/site-packages/cryptography/x509/extensions.py deleted file mode 100644 index 7b78e9e..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/x509/extensions.py +++ /dev/null @@ -1,2533 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc -import datetime -import hashlib -import ipaddress -import typing -from collections.abc import Iterable, Iterator - -from cryptography import utils -from cryptography.hazmat.bindings._rust import asn1 -from cryptography.hazmat.bindings._rust import x509 as rust_x509 -from cryptography.hazmat.primitives import constant_time, serialization -from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurvePublicKey -from cryptography.hazmat.primitives.asymmetric.rsa import RSAPublicKey -from cryptography.hazmat.primitives.asymmetric.types import ( - CertificateIssuerPublicKeyTypes, - CertificatePublicKeyTypes, -) -from cryptography.x509.certificate_transparency import ( - SignedCertificateTimestamp, -) -from cryptography.x509.general_name import ( - DirectoryName, - DNSName, - GeneralName, - IPAddress, - OtherName, - RegisteredID, - RFC822Name, - UniformResourceIdentifier, - _IPAddressTypes, -) -from cryptography.x509.name import Name, RelativeDistinguishedName -from cryptography.x509.oid import ( - CRLEntryExtensionOID, - ExtensionOID, - ObjectIdentifier, - OCSPExtensionOID, -) - -ExtensionTypeVar = typing.TypeVar( - "ExtensionTypeVar", bound="ExtensionType", covariant=True -) - - -def _key_identifier_from_public_key( - public_key: CertificatePublicKeyTypes, -) -> bytes: - if isinstance(public_key, RSAPublicKey): - data = public_key.public_bytes( - serialization.Encoding.DER, - serialization.PublicFormat.PKCS1, - ) - elif isinstance(public_key, EllipticCurvePublicKey): - data = public_key.public_bytes( - serialization.Encoding.X962, - serialization.PublicFormat.UncompressedPoint, - ) - else: - # This is a very slow way to do this. - serialized = public_key.public_bytes( - serialization.Encoding.DER, - serialization.PublicFormat.SubjectPublicKeyInfo, - ) - data = asn1.parse_spki_for_data(serialized) - - return hashlib.sha1(data).digest() - - -def _make_sequence_methods(field_name: str): - def len_method(self) -> int: - return len(getattr(self, field_name)) - - def iter_method(self): - return iter(getattr(self, field_name)) - - def getitem_method(self, idx): - return getattr(self, field_name)[idx] - - return len_method, iter_method, getitem_method - - -class DuplicateExtension(Exception): - def __init__(self, msg: str, oid: ObjectIdentifier) -> None: - super().__init__(msg) - self.oid = oid - - -class ExtensionNotFound(Exception): - def __init__(self, msg: str, oid: ObjectIdentifier) -> None: - super().__init__(msg) - self.oid = oid - - -class ExtensionType(metaclass=abc.ABCMeta): - oid: typing.ClassVar[ObjectIdentifier] - - def public_bytes(self) -> bytes: - """ - Serializes the extension type to DER. - """ - raise NotImplementedError( - f"public_bytes is not implemented for extension type {self!r}" - ) - - -class Extensions: - def __init__(self, extensions: Iterable[Extension[ExtensionType]]) -> None: - self._extensions = list(extensions) - - def get_extension_for_oid( - self, oid: ObjectIdentifier - ) -> Extension[ExtensionType]: - for ext in self: - if ext.oid == oid: - return ext - - raise ExtensionNotFound(f"No {oid} extension was found", oid) - - def get_extension_for_class( - self, extclass: type[ExtensionTypeVar] - ) -> Extension[ExtensionTypeVar]: - if extclass is UnrecognizedExtension: - raise TypeError( - "UnrecognizedExtension can't be used with " - "get_extension_for_class because more than one instance of the" - " class may be present." - ) - - for ext in self: - if isinstance(ext.value, extclass): - return ext - - raise ExtensionNotFound( - f"No {extclass} extension was found", extclass.oid - ) - - __len__, __iter__, __getitem__ = _make_sequence_methods("_extensions") - - def __repr__(self) -> str: - return f"" - - -class CRLNumber(ExtensionType): - oid = ExtensionOID.CRL_NUMBER - - def __init__(self, crl_number: int) -> None: - if not isinstance(crl_number, int): - raise TypeError("crl_number must be an integer") - - self._crl_number = crl_number - - def __eq__(self, other: object) -> bool: - if not isinstance(other, CRLNumber): - return NotImplemented - - return self.crl_number == other.crl_number - - def __hash__(self) -> int: - return hash(self.crl_number) - - def __repr__(self) -> str: - return f"" - - @property - def crl_number(self) -> int: - return self._crl_number - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class AuthorityKeyIdentifier(ExtensionType): - oid = ExtensionOID.AUTHORITY_KEY_IDENTIFIER - - def __init__( - self, - key_identifier: bytes | None, - authority_cert_issuer: Iterable[GeneralName] | None, - authority_cert_serial_number: int | None, - ) -> None: - if (authority_cert_issuer is None) != ( - authority_cert_serial_number is None - ): - raise ValueError( - "authority_cert_issuer and authority_cert_serial_number " - "must both be present or both None" - ) - - if authority_cert_issuer is not None: - authority_cert_issuer = list(authority_cert_issuer) - if not all( - isinstance(x, GeneralName) for x in authority_cert_issuer - ): - raise TypeError( - "authority_cert_issuer must be a list of GeneralName " - "objects" - ) - - if authority_cert_serial_number is not None and not isinstance( - authority_cert_serial_number, int - ): - raise TypeError("authority_cert_serial_number must be an integer") - - self._key_identifier = key_identifier - self._authority_cert_issuer = authority_cert_issuer - self._authority_cert_serial_number = authority_cert_serial_number - - # This takes a subset of CertificatePublicKeyTypes because an issuer - # cannot have an X25519/X448 key. This introduces some unfortunate - # asymmetry that requires typing users to explicitly - # narrow their type, but we should make this accurate and not just - # convenient. - @classmethod - def from_issuer_public_key( - cls, public_key: CertificateIssuerPublicKeyTypes - ) -> AuthorityKeyIdentifier: - digest = _key_identifier_from_public_key(public_key) - return cls( - key_identifier=digest, - authority_cert_issuer=None, - authority_cert_serial_number=None, - ) - - @classmethod - def from_issuer_subject_key_identifier( - cls, ski: SubjectKeyIdentifier - ) -> AuthorityKeyIdentifier: - return cls( - key_identifier=ski.digest, - authority_cert_issuer=None, - authority_cert_serial_number=None, - ) - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, AuthorityKeyIdentifier): - return NotImplemented - - return ( - self.key_identifier == other.key_identifier - and self.authority_cert_issuer == other.authority_cert_issuer - and self.authority_cert_serial_number - == other.authority_cert_serial_number - ) - - def __hash__(self) -> int: - if self.authority_cert_issuer is None: - aci = None - else: - aci = tuple(self.authority_cert_issuer) - return hash( - (self.key_identifier, aci, self.authority_cert_serial_number) - ) - - @property - def key_identifier(self) -> bytes | None: - return self._key_identifier - - @property - def authority_cert_issuer( - self, - ) -> list[GeneralName] | None: - return self._authority_cert_issuer - - @property - def authority_cert_serial_number(self) -> int | None: - return self._authority_cert_serial_number - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class SubjectKeyIdentifier(ExtensionType): - oid = ExtensionOID.SUBJECT_KEY_IDENTIFIER - - def __init__(self, digest: bytes) -> None: - self._digest = digest - - @classmethod - def from_public_key( - cls, public_key: CertificatePublicKeyTypes - ) -> SubjectKeyIdentifier: - return cls(_key_identifier_from_public_key(public_key)) - - @property - def digest(self) -> bytes: - return self._digest - - @property - def key_identifier(self) -> bytes: - return self._digest - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, SubjectKeyIdentifier): - return NotImplemented - - return constant_time.bytes_eq(self.digest, other.digest) - - def __hash__(self) -> int: - return hash(self.digest) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class AuthorityInformationAccess(ExtensionType): - oid = ExtensionOID.AUTHORITY_INFORMATION_ACCESS - - def __init__(self, descriptions: Iterable[AccessDescription]) -> None: - descriptions = list(descriptions) - if not all(isinstance(x, AccessDescription) for x in descriptions): - raise TypeError( - "Every item in the descriptions list must be an " - "AccessDescription" - ) - - self._descriptions = descriptions - - __len__, __iter__, __getitem__ = _make_sequence_methods("_descriptions") - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, AuthorityInformationAccess): - return NotImplemented - - return self._descriptions == other._descriptions - - def __hash__(self) -> int: - return hash(tuple(self._descriptions)) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class SubjectInformationAccess(ExtensionType): - oid = ExtensionOID.SUBJECT_INFORMATION_ACCESS - - def __init__(self, descriptions: Iterable[AccessDescription]) -> None: - descriptions = list(descriptions) - if not all(isinstance(x, AccessDescription) for x in descriptions): - raise TypeError( - "Every item in the descriptions list must be an " - "AccessDescription" - ) - - self._descriptions = descriptions - - __len__, __iter__, __getitem__ = _make_sequence_methods("_descriptions") - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, SubjectInformationAccess): - return NotImplemented - - return self._descriptions == other._descriptions - - def __hash__(self) -> int: - return hash(tuple(self._descriptions)) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class AccessDescription: - def __init__( - self, access_method: ObjectIdentifier, access_location: GeneralName - ) -> None: - if not isinstance(access_method, ObjectIdentifier): - raise TypeError("access_method must be an ObjectIdentifier") - - if not isinstance(access_location, GeneralName): - raise TypeError("access_location must be a GeneralName") - - self._access_method = access_method - self._access_location = access_location - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, AccessDescription): - return NotImplemented - - return ( - self.access_method == other.access_method - and self.access_location == other.access_location - ) - - def __hash__(self) -> int: - return hash((self.access_method, self.access_location)) - - @property - def access_method(self) -> ObjectIdentifier: - return self._access_method - - @property - def access_location(self) -> GeneralName: - return self._access_location - - -class BasicConstraints(ExtensionType): - oid = ExtensionOID.BASIC_CONSTRAINTS - - def __init__(self, ca: bool, path_length: int | None) -> None: - if not isinstance(ca, bool): - raise TypeError("ca must be a boolean value") - - if path_length is not None and not ca: - raise ValueError("path_length must be None when ca is False") - - if path_length is not None and ( - not isinstance(path_length, int) or path_length < 0 - ): - raise TypeError( - "path_length must be a non-negative integer or None" - ) - - self._ca = ca - self._path_length = path_length - - @property - def ca(self) -> bool: - return self._ca - - @property - def path_length(self) -> int | None: - return self._path_length - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, BasicConstraints): - return NotImplemented - - return self.ca == other.ca and self.path_length == other.path_length - - def __hash__(self) -> int: - return hash((self.ca, self.path_length)) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class DeltaCRLIndicator(ExtensionType): - oid = ExtensionOID.DELTA_CRL_INDICATOR - - def __init__(self, crl_number: int) -> None: - if not isinstance(crl_number, int): - raise TypeError("crl_number must be an integer") - - self._crl_number = crl_number - - @property - def crl_number(self) -> int: - return self._crl_number - - def __eq__(self, other: object) -> bool: - if not isinstance(other, DeltaCRLIndicator): - return NotImplemented - - return self.crl_number == other.crl_number - - def __hash__(self) -> int: - return hash(self.crl_number) - - def __repr__(self) -> str: - return f"" - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class CRLDistributionPoints(ExtensionType): - oid = ExtensionOID.CRL_DISTRIBUTION_POINTS - - def __init__( - self, distribution_points: Iterable[DistributionPoint] - ) -> None: - distribution_points = list(distribution_points) - if not all( - isinstance(x, DistributionPoint) for x in distribution_points - ): - raise TypeError( - "distribution_points must be a list of DistributionPoint " - "objects" - ) - - self._distribution_points = distribution_points - - __len__, __iter__, __getitem__ = _make_sequence_methods( - "_distribution_points" - ) - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, CRLDistributionPoints): - return NotImplemented - - return self._distribution_points == other._distribution_points - - def __hash__(self) -> int: - return hash(tuple(self._distribution_points)) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class FreshestCRL(ExtensionType): - oid = ExtensionOID.FRESHEST_CRL - - def __init__( - self, distribution_points: Iterable[DistributionPoint] - ) -> None: - distribution_points = list(distribution_points) - if not all( - isinstance(x, DistributionPoint) for x in distribution_points - ): - raise TypeError( - "distribution_points must be a list of DistributionPoint " - "objects" - ) - - self._distribution_points = distribution_points - - __len__, __iter__, __getitem__ = _make_sequence_methods( - "_distribution_points" - ) - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, FreshestCRL): - return NotImplemented - - return self._distribution_points == other._distribution_points - - def __hash__(self) -> int: - return hash(tuple(self._distribution_points)) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class DistributionPoint: - def __init__( - self, - full_name: Iterable[GeneralName] | None, - relative_name: RelativeDistinguishedName | None, - reasons: frozenset[ReasonFlags] | None, - crl_issuer: Iterable[GeneralName] | None, - ) -> None: - if full_name and relative_name: - raise ValueError( - "You cannot provide both full_name and relative_name, at " - "least one must be None." - ) - if not full_name and not relative_name and not crl_issuer: - raise ValueError( - "Either full_name, relative_name or crl_issuer must be " - "provided." - ) - - if full_name is not None: - full_name = list(full_name) - if not all(isinstance(x, GeneralName) for x in full_name): - raise TypeError( - "full_name must be a list of GeneralName objects" - ) - - if relative_name: - if not isinstance(relative_name, RelativeDistinguishedName): - raise TypeError( - "relative_name must be a RelativeDistinguishedName" - ) - - if crl_issuer is not None: - crl_issuer = list(crl_issuer) - if not all(isinstance(x, GeneralName) for x in crl_issuer): - raise TypeError( - "crl_issuer must be None or a list of general names" - ) - - if reasons and ( - not isinstance(reasons, frozenset) - or not all(isinstance(x, ReasonFlags) for x in reasons) - ): - raise TypeError("reasons must be None or frozenset of ReasonFlags") - - if reasons and ( - ReasonFlags.unspecified in reasons - or ReasonFlags.remove_from_crl in reasons - ): - raise ValueError( - "unspecified and remove_from_crl are not valid reasons in a " - "DistributionPoint" - ) - - self._full_name = full_name - self._relative_name = relative_name - self._reasons = reasons - self._crl_issuer = crl_issuer - - def __repr__(self) -> str: - return ( - "".format(self) - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, DistributionPoint): - return NotImplemented - - return ( - self.full_name == other.full_name - and self.relative_name == other.relative_name - and self.reasons == other.reasons - and self.crl_issuer == other.crl_issuer - ) - - def __hash__(self) -> int: - if self.full_name is not None: - fn: tuple[GeneralName, ...] | None = tuple(self.full_name) - else: - fn = None - - if self.crl_issuer is not None: - crl_issuer: tuple[GeneralName, ...] | None = tuple(self.crl_issuer) - else: - crl_issuer = None - - return hash((fn, self.relative_name, self.reasons, crl_issuer)) - - @property - def full_name(self) -> list[GeneralName] | None: - return self._full_name - - @property - def relative_name(self) -> RelativeDistinguishedName | None: - return self._relative_name - - @property - def reasons(self) -> frozenset[ReasonFlags] | None: - return self._reasons - - @property - def crl_issuer(self) -> list[GeneralName] | None: - return self._crl_issuer - - -class ReasonFlags(utils.Enum): - unspecified = "unspecified" - key_compromise = "keyCompromise" - ca_compromise = "cACompromise" - affiliation_changed = "affiliationChanged" - superseded = "superseded" - cessation_of_operation = "cessationOfOperation" - certificate_hold = "certificateHold" - privilege_withdrawn = "privilegeWithdrawn" - aa_compromise = "aACompromise" - remove_from_crl = "removeFromCRL" - - -# These are distribution point bit string mappings. Not to be confused with -# CRLReason reason flags bit string mappings. -# ReasonFlags ::= BIT STRING { -# unused (0), -# keyCompromise (1), -# cACompromise (2), -# affiliationChanged (3), -# superseded (4), -# cessationOfOperation (5), -# certificateHold (6), -# privilegeWithdrawn (7), -# aACompromise (8) } -_REASON_BIT_MAPPING = { - 1: ReasonFlags.key_compromise, - 2: ReasonFlags.ca_compromise, - 3: ReasonFlags.affiliation_changed, - 4: ReasonFlags.superseded, - 5: ReasonFlags.cessation_of_operation, - 6: ReasonFlags.certificate_hold, - 7: ReasonFlags.privilege_withdrawn, - 8: ReasonFlags.aa_compromise, -} - -_CRLREASONFLAGS = { - ReasonFlags.key_compromise: 1, - ReasonFlags.ca_compromise: 2, - ReasonFlags.affiliation_changed: 3, - ReasonFlags.superseded: 4, - ReasonFlags.cessation_of_operation: 5, - ReasonFlags.certificate_hold: 6, - ReasonFlags.privilege_withdrawn: 7, - ReasonFlags.aa_compromise: 8, -} - -# CRLReason ::= ENUMERATED { -# unspecified (0), -# keyCompromise (1), -# cACompromise (2), -# affiliationChanged (3), -# superseded (4), -# cessationOfOperation (5), -# certificateHold (6), -# -- value 7 is not used -# removeFromCRL (8), -# privilegeWithdrawn (9), -# aACompromise (10) } -_CRL_ENTRY_REASON_ENUM_TO_CODE = { - ReasonFlags.unspecified: 0, - ReasonFlags.key_compromise: 1, - ReasonFlags.ca_compromise: 2, - ReasonFlags.affiliation_changed: 3, - ReasonFlags.superseded: 4, - ReasonFlags.cessation_of_operation: 5, - ReasonFlags.certificate_hold: 6, - ReasonFlags.remove_from_crl: 8, - ReasonFlags.privilege_withdrawn: 9, - ReasonFlags.aa_compromise: 10, -} - - -class PolicyConstraints(ExtensionType): - oid = ExtensionOID.POLICY_CONSTRAINTS - - def __init__( - self, - require_explicit_policy: int | None, - inhibit_policy_mapping: int | None, - ) -> None: - if require_explicit_policy is not None and not isinstance( - require_explicit_policy, int - ): - raise TypeError( - "require_explicit_policy must be a non-negative integer or " - "None" - ) - - if inhibit_policy_mapping is not None and not isinstance( - inhibit_policy_mapping, int - ): - raise TypeError( - "inhibit_policy_mapping must be a non-negative integer or None" - ) - - if inhibit_policy_mapping is None and require_explicit_policy is None: - raise ValueError( - "At least one of require_explicit_policy and " - "inhibit_policy_mapping must not be None" - ) - - self._require_explicit_policy = require_explicit_policy - self._inhibit_policy_mapping = inhibit_policy_mapping - - def __repr__(self) -> str: - return ( - "".format(self) - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, PolicyConstraints): - return NotImplemented - - return ( - self.require_explicit_policy == other.require_explicit_policy - and self.inhibit_policy_mapping == other.inhibit_policy_mapping - ) - - def __hash__(self) -> int: - return hash( - (self.require_explicit_policy, self.inhibit_policy_mapping) - ) - - @property - def require_explicit_policy(self) -> int | None: - return self._require_explicit_policy - - @property - def inhibit_policy_mapping(self) -> int | None: - return self._inhibit_policy_mapping - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class CertificatePolicies(ExtensionType): - oid = ExtensionOID.CERTIFICATE_POLICIES - - def __init__(self, policies: Iterable[PolicyInformation]) -> None: - policies = list(policies) - if not all(isinstance(x, PolicyInformation) for x in policies): - raise TypeError( - "Every item in the policies list must be a PolicyInformation" - ) - - self._policies = policies - - __len__, __iter__, __getitem__ = _make_sequence_methods("_policies") - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, CertificatePolicies): - return NotImplemented - - return self._policies == other._policies - - def __hash__(self) -> int: - return hash(tuple(self._policies)) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class PolicyInformation: - def __init__( - self, - policy_identifier: ObjectIdentifier, - policy_qualifiers: Iterable[str | UserNotice] | None, - ) -> None: - if not isinstance(policy_identifier, ObjectIdentifier): - raise TypeError("policy_identifier must be an ObjectIdentifier") - - self._policy_identifier = policy_identifier - - if policy_qualifiers is not None: - policy_qualifiers = list(policy_qualifiers) - if not all( - isinstance(x, (str, UserNotice)) for x in policy_qualifiers - ): - raise TypeError( - "policy_qualifiers must be a list of strings and/or " - "UserNotice objects or None" - ) - - self._policy_qualifiers = policy_qualifiers - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, PolicyInformation): - return NotImplemented - - return ( - self.policy_identifier == other.policy_identifier - and self.policy_qualifiers == other.policy_qualifiers - ) - - def __hash__(self) -> int: - if self.policy_qualifiers is not None: - pq = tuple(self.policy_qualifiers) - else: - pq = None - - return hash((self.policy_identifier, pq)) - - @property - def policy_identifier(self) -> ObjectIdentifier: - return self._policy_identifier - - @property - def policy_qualifiers( - self, - ) -> list[str | UserNotice] | None: - return self._policy_qualifiers - - -class UserNotice: - def __init__( - self, - notice_reference: NoticeReference | None, - explicit_text: str | None, - ) -> None: - if notice_reference and not isinstance( - notice_reference, NoticeReference - ): - raise TypeError( - "notice_reference must be None or a NoticeReference" - ) - - self._notice_reference = notice_reference - self._explicit_text = explicit_text - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, UserNotice): - return NotImplemented - - return ( - self.notice_reference == other.notice_reference - and self.explicit_text == other.explicit_text - ) - - def __hash__(self) -> int: - return hash((self.notice_reference, self.explicit_text)) - - @property - def notice_reference(self) -> NoticeReference | None: - return self._notice_reference - - @property - def explicit_text(self) -> str | None: - return self._explicit_text - - -class NoticeReference: - def __init__( - self, - organization: str | None, - notice_numbers: Iterable[int], - ) -> None: - self._organization = organization - notice_numbers = list(notice_numbers) - if not all(isinstance(x, int) for x in notice_numbers): - raise TypeError("notice_numbers must be a list of integers") - - self._notice_numbers = notice_numbers - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, NoticeReference): - return NotImplemented - - return ( - self.organization == other.organization - and self.notice_numbers == other.notice_numbers - ) - - def __hash__(self) -> int: - return hash((self.organization, tuple(self.notice_numbers))) - - @property - def organization(self) -> str | None: - return self._organization - - @property - def notice_numbers(self) -> list[int]: - return self._notice_numbers - - -class ExtendedKeyUsage(ExtensionType): - oid = ExtensionOID.EXTENDED_KEY_USAGE - - def __init__(self, usages: Iterable[ObjectIdentifier]) -> None: - usages = list(usages) - if not all(isinstance(x, ObjectIdentifier) for x in usages): - raise TypeError( - "Every item in the usages list must be an ObjectIdentifier" - ) - - self._usages = usages - - __len__, __iter__, __getitem__ = _make_sequence_methods("_usages") - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, ExtendedKeyUsage): - return NotImplemented - - return self._usages == other._usages - - def __hash__(self) -> int: - return hash(tuple(self._usages)) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class OCSPNoCheck(ExtensionType): - oid = ExtensionOID.OCSP_NO_CHECK - - def __eq__(self, other: object) -> bool: - if not isinstance(other, OCSPNoCheck): - return NotImplemented - - return True - - def __hash__(self) -> int: - return hash(OCSPNoCheck) - - def __repr__(self) -> str: - return "" - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class PrecertPoison(ExtensionType): - oid = ExtensionOID.PRECERT_POISON - - def __eq__(self, other: object) -> bool: - if not isinstance(other, PrecertPoison): - return NotImplemented - - return True - - def __hash__(self) -> int: - return hash(PrecertPoison) - - def __repr__(self) -> str: - return "" - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class TLSFeature(ExtensionType): - oid = ExtensionOID.TLS_FEATURE - - def __init__(self, features: Iterable[TLSFeatureType]) -> None: - features = list(features) - if ( - not all(isinstance(x, TLSFeatureType) for x in features) - or len(features) == 0 - ): - raise TypeError( - "features must be a list of elements from the TLSFeatureType " - "enum" - ) - - self._features = features - - __len__, __iter__, __getitem__ = _make_sequence_methods("_features") - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, TLSFeature): - return NotImplemented - - return self._features == other._features - - def __hash__(self) -> int: - return hash(tuple(self._features)) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class TLSFeatureType(utils.Enum): - # status_request is defined in RFC 6066 and is used for what is commonly - # called OCSP Must-Staple when present in the TLS Feature extension in an - # X.509 certificate. - status_request = 5 - # status_request_v2 is defined in RFC 6961 and allows multiple OCSP - # responses to be provided. It is not currently in use by clients or - # servers. - status_request_v2 = 17 - - -_TLS_FEATURE_TYPE_TO_ENUM = {x.value: x for x in TLSFeatureType} - - -class InhibitAnyPolicy(ExtensionType): - oid = ExtensionOID.INHIBIT_ANY_POLICY - - def __init__(self, skip_certs: int) -> None: - if not isinstance(skip_certs, int): - raise TypeError("skip_certs must be an integer") - - if skip_certs < 0: - raise ValueError("skip_certs must be a non-negative integer") - - self._skip_certs = skip_certs - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, InhibitAnyPolicy): - return NotImplemented - - return self.skip_certs == other.skip_certs - - def __hash__(self) -> int: - return hash(self.skip_certs) - - @property - def skip_certs(self) -> int: - return self._skip_certs - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class KeyUsage(ExtensionType): - oid = ExtensionOID.KEY_USAGE - - def __init__( - self, - digital_signature: bool, - content_commitment: bool, - key_encipherment: bool, - data_encipherment: bool, - key_agreement: bool, - key_cert_sign: bool, - crl_sign: bool, - encipher_only: bool, - decipher_only: bool, - ) -> None: - if not key_agreement and (encipher_only or decipher_only): - raise ValueError( - "encipher_only and decipher_only can only be true when " - "key_agreement is true" - ) - - self._digital_signature = digital_signature - self._content_commitment = content_commitment - self._key_encipherment = key_encipherment - self._data_encipherment = data_encipherment - self._key_agreement = key_agreement - self._key_cert_sign = key_cert_sign - self._crl_sign = crl_sign - self._encipher_only = encipher_only - self._decipher_only = decipher_only - - @property - def digital_signature(self) -> bool: - return self._digital_signature - - @property - def content_commitment(self) -> bool: - return self._content_commitment - - @property - def key_encipherment(self) -> bool: - return self._key_encipherment - - @property - def data_encipherment(self) -> bool: - return self._data_encipherment - - @property - def key_agreement(self) -> bool: - return self._key_agreement - - @property - def key_cert_sign(self) -> bool: - return self._key_cert_sign - - @property - def crl_sign(self) -> bool: - return self._crl_sign - - @property - def encipher_only(self) -> bool: - if not self.key_agreement: - raise ValueError( - "encipher_only is undefined unless key_agreement is true" - ) - else: - return self._encipher_only - - @property - def decipher_only(self) -> bool: - if not self.key_agreement: - raise ValueError( - "decipher_only is undefined unless key_agreement is true" - ) - else: - return self._decipher_only - - def __repr__(self) -> str: - try: - encipher_only = self.encipher_only - decipher_only = self.decipher_only - except ValueError: - # Users found None confusing because even though encipher/decipher - # have no meaning unless key_agreement is true, to construct an - # instance of the class you still need to pass False. - encipher_only = False - decipher_only = False - - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, KeyUsage): - return NotImplemented - - return ( - self.digital_signature == other.digital_signature - and self.content_commitment == other.content_commitment - and self.key_encipherment == other.key_encipherment - and self.data_encipherment == other.data_encipherment - and self.key_agreement == other.key_agreement - and self.key_cert_sign == other.key_cert_sign - and self.crl_sign == other.crl_sign - and self._encipher_only == other._encipher_only - and self._decipher_only == other._decipher_only - ) - - def __hash__(self) -> int: - return hash( - ( - self.digital_signature, - self.content_commitment, - self.key_encipherment, - self.data_encipherment, - self.key_agreement, - self.key_cert_sign, - self.crl_sign, - self._encipher_only, - self._decipher_only, - ) - ) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class PrivateKeyUsagePeriod(ExtensionType): - oid = ExtensionOID.PRIVATE_KEY_USAGE_PERIOD - - def __init__( - self, - not_before: datetime.datetime | None, - not_after: datetime.datetime | None, - ) -> None: - if ( - not isinstance(not_before, datetime.datetime) - and not_before is not None - ): - raise TypeError("not_before must be a datetime.datetime or None") - - if ( - not isinstance(not_after, datetime.datetime) - and not_after is not None - ): - raise TypeError("not_after must be a datetime.datetime or None") - - if not_before is None and not_after is None: - raise ValueError( - "At least one of not_before and not_after must not be None" - ) - - if ( - not_before is not None - and not_after is not None - and not_before > not_after - ): - raise ValueError("not_before must be before not_after") - - self._not_before = not_before - self._not_after = not_after - - @property - def not_before(self) -> datetime.datetime | None: - return self._not_before - - @property - def not_after(self) -> datetime.datetime | None: - return self._not_after - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, PrivateKeyUsagePeriod): - return NotImplemented - - return ( - self.not_before == other.not_before - and self.not_after == other.not_after - ) - - def __hash__(self) -> int: - return hash((self.not_before, self.not_after)) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class NameConstraints(ExtensionType): - oid = ExtensionOID.NAME_CONSTRAINTS - - def __init__( - self, - permitted_subtrees: Iterable[GeneralName] | None, - excluded_subtrees: Iterable[GeneralName] | None, - ) -> None: - if permitted_subtrees is not None: - permitted_subtrees = list(permitted_subtrees) - if not permitted_subtrees: - raise ValueError( - "permitted_subtrees must be a non-empty list or None" - ) - if not all(isinstance(x, GeneralName) for x in permitted_subtrees): - raise TypeError( - "permitted_subtrees must be a list of GeneralName objects " - "or None" - ) - - self._validate_tree(permitted_subtrees) - - if excluded_subtrees is not None: - excluded_subtrees = list(excluded_subtrees) - if not excluded_subtrees: - raise ValueError( - "excluded_subtrees must be a non-empty list or None" - ) - if not all(isinstance(x, GeneralName) for x in excluded_subtrees): - raise TypeError( - "excluded_subtrees must be a list of GeneralName objects " - "or None" - ) - - self._validate_tree(excluded_subtrees) - - if permitted_subtrees is None and excluded_subtrees is None: - raise ValueError( - "At least one of permitted_subtrees and excluded_subtrees " - "must not be None" - ) - - self._permitted_subtrees = permitted_subtrees - self._excluded_subtrees = excluded_subtrees - - def __eq__(self, other: object) -> bool: - if not isinstance(other, NameConstraints): - return NotImplemented - - return ( - self.excluded_subtrees == other.excluded_subtrees - and self.permitted_subtrees == other.permitted_subtrees - ) - - def _validate_tree(self, tree: Iterable[GeneralName]) -> None: - self._validate_ip_name(tree) - self._validate_dns_name(tree) - - def _validate_ip_name(self, tree: Iterable[GeneralName]) -> None: - if any( - isinstance(name, IPAddress) - and not isinstance( - name.value, (ipaddress.IPv4Network, ipaddress.IPv6Network) - ) - for name in tree - ): - raise TypeError( - "IPAddress name constraints must be an IPv4Network or" - " IPv6Network object" - ) - - def _validate_dns_name(self, tree: Iterable[GeneralName]) -> None: - if any( - isinstance(name, DNSName) and "*" in name.value for name in tree - ): - raise ValueError( - "DNSName name constraints must not contain the '*' wildcard" - " character" - ) - - def __repr__(self) -> str: - return ( - f"" - ) - - def __hash__(self) -> int: - if self.permitted_subtrees is not None: - ps: tuple[GeneralName, ...] | None = tuple(self.permitted_subtrees) - else: - ps = None - - if self.excluded_subtrees is not None: - es: tuple[GeneralName, ...] | None = tuple(self.excluded_subtrees) - else: - es = None - - return hash((ps, es)) - - @property - def permitted_subtrees( - self, - ) -> list[GeneralName] | None: - return self._permitted_subtrees - - @property - def excluded_subtrees( - self, - ) -> list[GeneralName] | None: - return self._excluded_subtrees - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class Extension(typing.Generic[ExtensionTypeVar]): - def __init__( - self, oid: ObjectIdentifier, critical: bool, value: ExtensionTypeVar - ) -> None: - if not isinstance(oid, ObjectIdentifier): - raise TypeError( - "oid argument must be an ObjectIdentifier instance." - ) - - if not isinstance(critical, bool): - raise TypeError("critical must be a boolean value") - - self._oid = oid - self._critical = critical - self._value = value - - @property - def oid(self) -> ObjectIdentifier: - return self._oid - - @property - def critical(self) -> bool: - return self._critical - - @property - def value(self) -> ExtensionTypeVar: - return self._value - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, Extension): - return NotImplemented - - return ( - self.oid == other.oid - and self.critical == other.critical - and self.value == other.value - ) - - def __hash__(self) -> int: - return hash((self.oid, self.critical, self.value)) - - -class GeneralNames: - def __init__(self, general_names: Iterable[GeneralName]) -> None: - general_names = list(general_names) - if not all(isinstance(x, GeneralName) for x in general_names): - raise TypeError( - "Every item in the general_names list must be an " - "object conforming to the GeneralName interface" - ) - - self._general_names = general_names - - __len__, __iter__, __getitem__ = _make_sequence_methods("_general_names") - - @typing.overload - def get_values_for_type( - self, - type: type[DNSName] - | type[UniformResourceIdentifier] - | type[RFC822Name], - ) -> list[str]: ... - - @typing.overload - def get_values_for_type( - self, - type: type[DirectoryName], - ) -> list[Name]: ... - - @typing.overload - def get_values_for_type( - self, - type: type[RegisteredID], - ) -> list[ObjectIdentifier]: ... - - @typing.overload - def get_values_for_type( - self, type: type[IPAddress] - ) -> list[_IPAddressTypes]: ... - - @typing.overload - def get_values_for_type( - self, type: type[OtherName] - ) -> list[OtherName]: ... - - def get_values_for_type( - self, - type: type[DNSName] - | type[DirectoryName] - | type[IPAddress] - | type[OtherName] - | type[RFC822Name] - | type[RegisteredID] - | type[UniformResourceIdentifier], - ) -> ( - list[_IPAddressTypes] - | list[str] - | list[OtherName] - | list[Name] - | list[ObjectIdentifier] - ): - # Return the value of each GeneralName, except for OtherName instances - # which we return directly because it has two important properties not - # just one value. - objs = (i for i in self if isinstance(i, type)) - if type != OtherName: - return [i.value for i in objs] # type: ignore[return-value,unused-ignore] - return list(objs) # type: ignore[return-value,unused-ignore] - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, GeneralNames): - return NotImplemented - - return self._general_names == other._general_names - - def __hash__(self) -> int: - return hash(tuple(self._general_names)) - - -class SubjectAlternativeName(ExtensionType): - oid = ExtensionOID.SUBJECT_ALTERNATIVE_NAME - - def __init__(self, general_names: Iterable[GeneralName]) -> None: - self._general_names = GeneralNames(general_names) - - __len__, __iter__, __getitem__ = _make_sequence_methods("_general_names") - - @typing.overload - def get_values_for_type( - self, - type: type[DNSName] - | type[UniformResourceIdentifier] - | type[RFC822Name], - ) -> list[str]: ... - - @typing.overload - def get_values_for_type( - self, - type: type[DirectoryName], - ) -> list[Name]: ... - - @typing.overload - def get_values_for_type( - self, - type: type[RegisteredID], - ) -> list[ObjectIdentifier]: ... - - @typing.overload - def get_values_for_type( - self, type: type[IPAddress] - ) -> list[_IPAddressTypes]: ... - - @typing.overload - def get_values_for_type( - self, type: type[OtherName] - ) -> list[OtherName]: ... - - def get_values_for_type( - self, - type: type[DNSName] - | type[DirectoryName] - | type[IPAddress] - | type[OtherName] - | type[RFC822Name] - | type[RegisteredID] - | type[UniformResourceIdentifier], - ) -> ( - list[_IPAddressTypes] - | list[str] - | list[OtherName] - | list[Name] - | list[ObjectIdentifier] - ): - return self._general_names.get_values_for_type(type) - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, SubjectAlternativeName): - return NotImplemented - - return self._general_names == other._general_names - - def __hash__(self) -> int: - return hash(self._general_names) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class IssuerAlternativeName(ExtensionType): - oid = ExtensionOID.ISSUER_ALTERNATIVE_NAME - - def __init__(self, general_names: Iterable[GeneralName]) -> None: - self._general_names = GeneralNames(general_names) - - __len__, __iter__, __getitem__ = _make_sequence_methods("_general_names") - - @typing.overload - def get_values_for_type( - self, - type: type[DNSName] - | type[UniformResourceIdentifier] - | type[RFC822Name], - ) -> list[str]: ... - - @typing.overload - def get_values_for_type( - self, - type: type[DirectoryName], - ) -> list[Name]: ... - - @typing.overload - def get_values_for_type( - self, - type: type[RegisteredID], - ) -> list[ObjectIdentifier]: ... - - @typing.overload - def get_values_for_type( - self, type: type[IPAddress] - ) -> list[_IPAddressTypes]: ... - - @typing.overload - def get_values_for_type( - self, type: type[OtherName] - ) -> list[OtherName]: ... - - def get_values_for_type( - self, - type: type[DNSName] - | type[DirectoryName] - | type[IPAddress] - | type[OtherName] - | type[RFC822Name] - | type[RegisteredID] - | type[UniformResourceIdentifier], - ) -> ( - list[_IPAddressTypes] - | list[str] - | list[OtherName] - | list[Name] - | list[ObjectIdentifier] - ): - return self._general_names.get_values_for_type(type) - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, IssuerAlternativeName): - return NotImplemented - - return self._general_names == other._general_names - - def __hash__(self) -> int: - return hash(self._general_names) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class CertificateIssuer(ExtensionType): - oid = CRLEntryExtensionOID.CERTIFICATE_ISSUER - - def __init__(self, general_names: Iterable[GeneralName]) -> None: - self._general_names = GeneralNames(general_names) - - __len__, __iter__, __getitem__ = _make_sequence_methods("_general_names") - - @typing.overload - def get_values_for_type( - self, - type: type[DNSName] - | type[UniformResourceIdentifier] - | type[RFC822Name], - ) -> list[str]: ... - - @typing.overload - def get_values_for_type( - self, - type: type[DirectoryName], - ) -> list[Name]: ... - - @typing.overload - def get_values_for_type( - self, - type: type[RegisteredID], - ) -> list[ObjectIdentifier]: ... - - @typing.overload - def get_values_for_type( - self, type: type[IPAddress] - ) -> list[_IPAddressTypes]: ... - - @typing.overload - def get_values_for_type( - self, type: type[OtherName] - ) -> list[OtherName]: ... - - def get_values_for_type( - self, - type: type[DNSName] - | type[DirectoryName] - | type[IPAddress] - | type[OtherName] - | type[RFC822Name] - | type[RegisteredID] - | type[UniformResourceIdentifier], - ) -> ( - list[_IPAddressTypes] - | list[str] - | list[OtherName] - | list[Name] - | list[ObjectIdentifier] - ): - return self._general_names.get_values_for_type(type) - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, CertificateIssuer): - return NotImplemented - - return self._general_names == other._general_names - - def __hash__(self) -> int: - return hash(self._general_names) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class CRLReason(ExtensionType): - oid = CRLEntryExtensionOID.CRL_REASON - - def __init__(self, reason: ReasonFlags) -> None: - if not isinstance(reason, ReasonFlags): - raise TypeError("reason must be an element from ReasonFlags") - - self._reason = reason - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, CRLReason): - return NotImplemented - - return self.reason == other.reason - - def __hash__(self) -> int: - return hash(self.reason) - - @property - def reason(self) -> ReasonFlags: - return self._reason - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class InvalidityDate(ExtensionType): - oid = CRLEntryExtensionOID.INVALIDITY_DATE - - def __init__(self, invalidity_date: datetime.datetime) -> None: - if not isinstance(invalidity_date, datetime.datetime): - raise TypeError("invalidity_date must be a datetime.datetime") - - self._invalidity_date = invalidity_date - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, InvalidityDate): - return NotImplemented - - return self.invalidity_date == other.invalidity_date - - def __hash__(self) -> int: - return hash(self.invalidity_date) - - @property - def invalidity_date(self) -> datetime.datetime: - return self._invalidity_date - - @property - def invalidity_date_utc(self) -> datetime.datetime: - if self._invalidity_date.tzinfo is None: - return self._invalidity_date.replace(tzinfo=datetime.timezone.utc) - else: - return self._invalidity_date.astimezone(tz=datetime.timezone.utc) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class PrecertificateSignedCertificateTimestamps(ExtensionType): - oid = ExtensionOID.PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS - - def __init__( - self, - signed_certificate_timestamps: Iterable[SignedCertificateTimestamp], - ) -> None: - signed_certificate_timestamps = list(signed_certificate_timestamps) - if not all( - isinstance(sct, SignedCertificateTimestamp) - for sct in signed_certificate_timestamps - ): - raise TypeError( - "Every item in the signed_certificate_timestamps list must be " - "a SignedCertificateTimestamp" - ) - self._signed_certificate_timestamps = signed_certificate_timestamps - - __len__, __iter__, __getitem__ = _make_sequence_methods( - "_signed_certificate_timestamps" - ) - - def __repr__(self) -> str: - return f"" - - def __hash__(self) -> int: - return hash(tuple(self._signed_certificate_timestamps)) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, PrecertificateSignedCertificateTimestamps): - return NotImplemented - - return ( - self._signed_certificate_timestamps - == other._signed_certificate_timestamps - ) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class SignedCertificateTimestamps(ExtensionType): - oid = ExtensionOID.SIGNED_CERTIFICATE_TIMESTAMPS - - def __init__( - self, - signed_certificate_timestamps: Iterable[SignedCertificateTimestamp], - ) -> None: - signed_certificate_timestamps = list(signed_certificate_timestamps) - if not all( - isinstance(sct, SignedCertificateTimestamp) - for sct in signed_certificate_timestamps - ): - raise TypeError( - "Every item in the signed_certificate_timestamps list must be " - "a SignedCertificateTimestamp" - ) - self._signed_certificate_timestamps = signed_certificate_timestamps - - __len__, __iter__, __getitem__ = _make_sequence_methods( - "_signed_certificate_timestamps" - ) - - def __repr__(self) -> str: - return f"" - - def __hash__(self) -> int: - return hash(tuple(self._signed_certificate_timestamps)) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, SignedCertificateTimestamps): - return NotImplemented - - return ( - self._signed_certificate_timestamps - == other._signed_certificate_timestamps - ) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class OCSPNonce(ExtensionType): - oid = OCSPExtensionOID.NONCE - - def __init__(self, nonce: bytes) -> None: - if not isinstance(nonce, bytes): - raise TypeError("nonce must be bytes") - - self._nonce = nonce - - def __eq__(self, other: object) -> bool: - if not isinstance(other, OCSPNonce): - return NotImplemented - - return self.nonce == other.nonce - - def __hash__(self) -> int: - return hash(self.nonce) - - def __repr__(self) -> str: - return f"" - - @property - def nonce(self) -> bytes: - return self._nonce - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class OCSPAcceptableResponses(ExtensionType): - oid = OCSPExtensionOID.ACCEPTABLE_RESPONSES - - def __init__(self, responses: Iterable[ObjectIdentifier]) -> None: - responses = list(responses) - if any(not isinstance(r, ObjectIdentifier) for r in responses): - raise TypeError("All responses must be ObjectIdentifiers") - - self._responses = responses - - def __eq__(self, other: object) -> bool: - if not isinstance(other, OCSPAcceptableResponses): - return NotImplemented - - return self._responses == other._responses - - def __hash__(self) -> int: - return hash(tuple(self._responses)) - - def __repr__(self) -> str: - return f"" - - def __iter__(self) -> Iterator[ObjectIdentifier]: - return iter(self._responses) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class IssuingDistributionPoint(ExtensionType): - oid = ExtensionOID.ISSUING_DISTRIBUTION_POINT - - def __init__( - self, - full_name: Iterable[GeneralName] | None, - relative_name: RelativeDistinguishedName | None, - only_contains_user_certs: bool, - only_contains_ca_certs: bool, - only_some_reasons: frozenset[ReasonFlags] | None, - indirect_crl: bool, - only_contains_attribute_certs: bool, - ) -> None: - if full_name is not None: - full_name = list(full_name) - - if only_some_reasons and ( - not isinstance(only_some_reasons, frozenset) - or not all(isinstance(x, ReasonFlags) for x in only_some_reasons) - ): - raise TypeError( - "only_some_reasons must be None or frozenset of ReasonFlags" - ) - - if only_some_reasons and ( - ReasonFlags.unspecified in only_some_reasons - or ReasonFlags.remove_from_crl in only_some_reasons - ): - raise ValueError( - "unspecified and remove_from_crl are not valid reasons in an " - "IssuingDistributionPoint" - ) - - if not ( - isinstance(only_contains_user_certs, bool) - and isinstance(only_contains_ca_certs, bool) - and isinstance(indirect_crl, bool) - and isinstance(only_contains_attribute_certs, bool) - ): - raise TypeError( - "only_contains_user_certs, only_contains_ca_certs, " - "indirect_crl and only_contains_attribute_certs " - "must all be boolean." - ) - - # Per RFC5280 Section 5.2.5, the Issuing Distribution Point extension - # in a CRL can have only one of onlyContainsUserCerts, - # onlyContainsCACerts, onlyContainsAttributeCerts set to TRUE. - crl_constraints = [ - only_contains_user_certs, - only_contains_ca_certs, - only_contains_attribute_certs, - ] - - if len([x for x in crl_constraints if x]) > 1: - raise ValueError( - "Only one of the following can be set to True: " - "only_contains_user_certs, only_contains_ca_certs, " - "only_contains_attribute_certs" - ) - - if not any( - [ - only_contains_user_certs, - only_contains_ca_certs, - indirect_crl, - only_contains_attribute_certs, - full_name, - relative_name, - only_some_reasons, - ] - ): - raise ValueError( - "Cannot create empty extension: " - "if only_contains_user_certs, only_contains_ca_certs, " - "indirect_crl, and only_contains_attribute_certs are all False" - ", then either full_name, relative_name, or only_some_reasons " - "must have a value." - ) - - self._only_contains_user_certs = only_contains_user_certs - self._only_contains_ca_certs = only_contains_ca_certs - self._indirect_crl = indirect_crl - self._only_contains_attribute_certs = only_contains_attribute_certs - self._only_some_reasons = only_some_reasons - self._full_name = full_name - self._relative_name = relative_name - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, IssuingDistributionPoint): - return NotImplemented - - return ( - self.full_name == other.full_name - and self.relative_name == other.relative_name - and self.only_contains_user_certs == other.only_contains_user_certs - and self.only_contains_ca_certs == other.only_contains_ca_certs - and self.only_some_reasons == other.only_some_reasons - and self.indirect_crl == other.indirect_crl - and self.only_contains_attribute_certs - == other.only_contains_attribute_certs - ) - - def __hash__(self) -> int: - if self.full_name is not None: - full_name: tuple[GeneralName, ...] | None = tuple(self.full_name) - else: - full_name = None - - return hash( - ( - full_name, - self.relative_name, - self.only_contains_user_certs, - self.only_contains_ca_certs, - self.only_some_reasons, - self.indirect_crl, - self.only_contains_attribute_certs, - ) - ) - - @property - def full_name(self) -> list[GeneralName] | None: - return self._full_name - - @property - def relative_name(self) -> RelativeDistinguishedName | None: - return self._relative_name - - @property - def only_contains_user_certs(self) -> bool: - return self._only_contains_user_certs - - @property - def only_contains_ca_certs(self) -> bool: - return self._only_contains_ca_certs - - @property - def only_some_reasons( - self, - ) -> frozenset[ReasonFlags] | None: - return self._only_some_reasons - - @property - def indirect_crl(self) -> bool: - return self._indirect_crl - - @property - def only_contains_attribute_certs(self) -> bool: - return self._only_contains_attribute_certs - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class MSCertificateTemplate(ExtensionType): - oid = ExtensionOID.MS_CERTIFICATE_TEMPLATE - - def __init__( - self, - template_id: ObjectIdentifier, - major_version: int | None, - minor_version: int | None, - ) -> None: - if not isinstance(template_id, ObjectIdentifier): - raise TypeError("oid must be an ObjectIdentifier") - self._template_id = template_id - if ( - major_version is not None and not isinstance(major_version, int) - ) or ( - minor_version is not None and not isinstance(minor_version, int) - ): - raise TypeError( - "major_version and minor_version must be integers or None" - ) - self._major_version = major_version - self._minor_version = minor_version - - @property - def template_id(self) -> ObjectIdentifier: - return self._template_id - - @property - def major_version(self) -> int | None: - return self._major_version - - @property - def minor_version(self) -> int | None: - return self._minor_version - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, MSCertificateTemplate): - return NotImplemented - - return ( - self.template_id == other.template_id - and self.major_version == other.major_version - and self.minor_version == other.minor_version - ) - - def __hash__(self) -> int: - return hash((self.template_id, self.major_version, self.minor_version)) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class NamingAuthority: - def __init__( - self, - id: ObjectIdentifier | None, - url: str | None, - text: str | None, - ) -> None: - if id is not None and not isinstance(id, ObjectIdentifier): - raise TypeError("id must be an ObjectIdentifier") - - if url is not None and not isinstance(url, str): - raise TypeError("url must be a str") - - if text is not None and not isinstance(text, str): - raise TypeError("text must be a str") - - self._id = id - self._url = url - self._text = text - - @property - def id(self) -> ObjectIdentifier | None: - return self._id - - @property - def url(self) -> str | None: - return self._url - - @property - def text(self) -> str | None: - return self._text - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, NamingAuthority): - return NotImplemented - - return ( - self.id == other.id - and self.url == other.url - and self.text == other.text - ) - - def __hash__(self) -> int: - return hash( - ( - self.id, - self.url, - self.text, - ) - ) - - -class ProfessionInfo: - def __init__( - self, - naming_authority: NamingAuthority | None, - profession_items: Iterable[str], - profession_oids: Iterable[ObjectIdentifier] | None, - registration_number: str | None, - add_profession_info: bytes | None, - ) -> None: - if naming_authority is not None and not isinstance( - naming_authority, NamingAuthority - ): - raise TypeError("naming_authority must be a NamingAuthority") - - profession_items = list(profession_items) - if not all(isinstance(item, str) for item in profession_items): - raise TypeError( - "Every item in the profession_items list must be a str" - ) - - if profession_oids is not None: - profession_oids = list(profession_oids) - if not all( - isinstance(oid, ObjectIdentifier) for oid in profession_oids - ): - raise TypeError( - "Every item in the profession_oids list must be an " - "ObjectIdentifier" - ) - - if registration_number is not None and not isinstance( - registration_number, str - ): - raise TypeError("registration_number must be a str") - - if add_profession_info is not None and not isinstance( - add_profession_info, bytes - ): - raise TypeError("add_profession_info must be bytes") - - self._naming_authority = naming_authority - self._profession_items = profession_items - self._profession_oids = profession_oids - self._registration_number = registration_number - self._add_profession_info = add_profession_info - - @property - def naming_authority(self) -> NamingAuthority | None: - return self._naming_authority - - @property - def profession_items(self) -> list[str]: - return self._profession_items - - @property - def profession_oids(self) -> list[ObjectIdentifier] | None: - return self._profession_oids - - @property - def registration_number(self) -> str | None: - return self._registration_number - - @property - def add_profession_info(self) -> bytes | None: - return self._add_profession_info - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, ProfessionInfo): - return NotImplemented - - return ( - self.naming_authority == other.naming_authority - and self.profession_items == other.profession_items - and self.profession_oids == other.profession_oids - and self.registration_number == other.registration_number - and self.add_profession_info == other.add_profession_info - ) - - def __hash__(self) -> int: - if self.profession_oids is not None: - profession_oids = tuple(self.profession_oids) - else: - profession_oids = None - return hash( - ( - self.naming_authority, - tuple(self.profession_items), - profession_oids, - self.registration_number, - self.add_profession_info, - ) - ) - - -class Admission: - def __init__( - self, - admission_authority: GeneralName | None, - naming_authority: NamingAuthority | None, - profession_infos: Iterable[ProfessionInfo], - ) -> None: - if admission_authority is not None and not isinstance( - admission_authority, GeneralName - ): - raise TypeError("admission_authority must be a GeneralName") - - if naming_authority is not None and not isinstance( - naming_authority, NamingAuthority - ): - raise TypeError("naming_authority must be a NamingAuthority") - - profession_infos = list(profession_infos) - if not all( - isinstance(info, ProfessionInfo) for info in profession_infos - ): - raise TypeError( - "Every item in the profession_infos list must be a " - "ProfessionInfo" - ) - - self._admission_authority = admission_authority - self._naming_authority = naming_authority - self._profession_infos = profession_infos - - @property - def admission_authority(self) -> GeneralName | None: - return self._admission_authority - - @property - def naming_authority(self) -> NamingAuthority | None: - return self._naming_authority - - @property - def profession_infos(self) -> list[ProfessionInfo]: - return self._profession_infos - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, Admission): - return NotImplemented - - return ( - self.admission_authority == other.admission_authority - and self.naming_authority == other.naming_authority - and self.profession_infos == other.profession_infos - ) - - def __hash__(self) -> int: - return hash( - ( - self.admission_authority, - self.naming_authority, - tuple(self.profession_infos), - ) - ) - - -class Admissions(ExtensionType): - oid = ExtensionOID.ADMISSIONS - - def __init__( - self, - authority: GeneralName | None, - admissions: Iterable[Admission], - ) -> None: - if authority is not None and not isinstance(authority, GeneralName): - raise TypeError("authority must be a GeneralName") - - admissions = list(admissions) - if not all( - isinstance(admission, Admission) for admission in admissions - ): - raise TypeError( - "Every item in the contents_of_admissions list must be an " - "Admission" - ) - - self._authority = authority - self._admissions = admissions - - __len__, __iter__, __getitem__ = _make_sequence_methods("_admissions") - - @property - def authority(self) -> GeneralName | None: - return self._authority - - def __repr__(self) -> str: - return ( - f"" - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, Admissions): - return NotImplemented - - return ( - self.authority == other.authority - and self._admissions == other._admissions - ) - - def __hash__(self) -> int: - return hash((self.authority, tuple(self._admissions))) - - def public_bytes(self) -> bytes: - return rust_x509.encode_extension_value(self) - - -class UnrecognizedExtension(ExtensionType): - def __init__(self, oid: ObjectIdentifier, value: bytes) -> None: - if not isinstance(oid, ObjectIdentifier): - raise TypeError("oid must be an ObjectIdentifier") - self._oid = oid - self._value = value - - @property - def oid(self) -> ObjectIdentifier: # type: ignore[override] - return self._oid - - @property - def value(self) -> bytes: - return self._value - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, UnrecognizedExtension): - return NotImplemented - - return self.oid == other.oid and self.value == other.value - - def __hash__(self) -> int: - return hash((self.oid, self.value)) - - def public_bytes(self) -> bytes: - return self.value diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/general_name.py b/.venv/lib/python3.9/site-packages/cryptography/x509/general_name.py deleted file mode 100644 index 672f287..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/x509/general_name.py +++ /dev/null @@ -1,281 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import abc -import ipaddress -import typing -from email.utils import parseaddr - -from cryptography.x509.name import Name -from cryptography.x509.oid import ObjectIdentifier - -_IPAddressTypes = typing.Union[ - ipaddress.IPv4Address, - ipaddress.IPv6Address, - ipaddress.IPv4Network, - ipaddress.IPv6Network, -] - - -class UnsupportedGeneralNameType(Exception): - pass - - -class GeneralName(metaclass=abc.ABCMeta): - @property - @abc.abstractmethod - def value(self) -> typing.Any: - """ - Return the value of the object - """ - - -class RFC822Name(GeneralName): - def __init__(self, value: str) -> None: - if isinstance(value, str): - try: - value.encode("ascii") - except UnicodeEncodeError: - raise ValueError( - "RFC822Name values should be passed as an A-label string. " - "This means unicode characters should be encoded via " - "a library like idna." - ) - else: - raise TypeError("value must be string") - - name, address = parseaddr(value) - if name or not address: - # parseaddr has found a name (e.g. Name ) or the entire - # value is an empty string. - raise ValueError("Invalid rfc822name value") - - self._value = value - - @property - def value(self) -> str: - return self._value - - @classmethod - def _init_without_validation(cls, value: str) -> RFC822Name: - instance = cls.__new__(cls) - instance._value = value - return instance - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, RFC822Name): - return NotImplemented - - return self.value == other.value - - def __hash__(self) -> int: - return hash(self.value) - - -class DNSName(GeneralName): - def __init__(self, value: str) -> None: - if isinstance(value, str): - try: - value.encode("ascii") - except UnicodeEncodeError: - raise ValueError( - "DNSName values should be passed as an A-label string. " - "This means unicode characters should be encoded via " - "a library like idna." - ) - else: - raise TypeError("value must be string") - - self._value = value - - @property - def value(self) -> str: - return self._value - - @classmethod - def _init_without_validation(cls, value: str) -> DNSName: - instance = cls.__new__(cls) - instance._value = value - return instance - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, DNSName): - return NotImplemented - - return self.value == other.value - - def __hash__(self) -> int: - return hash(self.value) - - -class UniformResourceIdentifier(GeneralName): - def __init__(self, value: str) -> None: - if isinstance(value, str): - try: - value.encode("ascii") - except UnicodeEncodeError: - raise ValueError( - "URI values should be passed as an A-label string. " - "This means unicode characters should be encoded via " - "a library like idna." - ) - else: - raise TypeError("value must be string") - - self._value = value - - @property - def value(self) -> str: - return self._value - - @classmethod - def _init_without_validation(cls, value: str) -> UniformResourceIdentifier: - instance = cls.__new__(cls) - instance._value = value - return instance - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, UniformResourceIdentifier): - return NotImplemented - - return self.value == other.value - - def __hash__(self) -> int: - return hash(self.value) - - -class DirectoryName(GeneralName): - def __init__(self, value: Name) -> None: - if not isinstance(value, Name): - raise TypeError("value must be a Name") - - self._value = value - - @property - def value(self) -> Name: - return self._value - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, DirectoryName): - return NotImplemented - - return self.value == other.value - - def __hash__(self) -> int: - return hash(self.value) - - -class RegisteredID(GeneralName): - def __init__(self, value: ObjectIdentifier) -> None: - if not isinstance(value, ObjectIdentifier): - raise TypeError("value must be an ObjectIdentifier") - - self._value = value - - @property - def value(self) -> ObjectIdentifier: - return self._value - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, RegisteredID): - return NotImplemented - - return self.value == other.value - - def __hash__(self) -> int: - return hash(self.value) - - -class IPAddress(GeneralName): - def __init__(self, value: _IPAddressTypes) -> None: - if not isinstance( - value, - ( - ipaddress.IPv4Address, - ipaddress.IPv6Address, - ipaddress.IPv4Network, - ipaddress.IPv6Network, - ), - ): - raise TypeError( - "value must be an instance of ipaddress.IPv4Address, " - "ipaddress.IPv6Address, ipaddress.IPv4Network, or " - "ipaddress.IPv6Network" - ) - - self._value = value - - @property - def value(self) -> _IPAddressTypes: - return self._value - - def _packed(self) -> bytes: - if isinstance( - self.value, (ipaddress.IPv4Address, ipaddress.IPv6Address) - ): - return self.value.packed - else: - return ( - self.value.network_address.packed + self.value.netmask.packed - ) - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, IPAddress): - return NotImplemented - - return self.value == other.value - - def __hash__(self) -> int: - return hash(self.value) - - -class OtherName(GeneralName): - def __init__(self, type_id: ObjectIdentifier, value: bytes) -> None: - if not isinstance(type_id, ObjectIdentifier): - raise TypeError("type_id must be an ObjectIdentifier") - if not isinstance(value, bytes): - raise TypeError("value must be a binary string") - - self._type_id = type_id - self._value = value - - @property - def type_id(self) -> ObjectIdentifier: - return self._type_id - - @property - def value(self) -> bytes: - return self._value - - def __repr__(self) -> str: - return f"" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, OtherName): - return NotImplemented - - return self.type_id == other.type_id and self.value == other.value - - def __hash__(self) -> int: - return hash((self.type_id, self.value)) diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/name.py b/.venv/lib/python3.9/site-packages/cryptography/x509/name.py deleted file mode 100644 index 57f3d56..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/x509/name.py +++ /dev/null @@ -1,482 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import binascii -import re -import sys -import typing -import warnings -from collections.abc import Iterable, Iterator - -from cryptography import utils -from cryptography.hazmat.bindings._rust import x509 as rust_x509 -from cryptography.x509.oid import NameOID, ObjectIdentifier - - -class _ASN1Type(utils.Enum): - BitString = 3 - OctetString = 4 - UTF8String = 12 - NumericString = 18 - PrintableString = 19 - T61String = 20 - IA5String = 22 - UTCTime = 23 - GeneralizedTime = 24 - VisibleString = 26 - UniversalString = 28 - BMPString = 30 - - -_ASN1_TYPE_TO_ENUM = {i.value: i for i in _ASN1Type} -_NAMEOID_DEFAULT_TYPE: dict[ObjectIdentifier, _ASN1Type] = { - NameOID.COUNTRY_NAME: _ASN1Type.PrintableString, - NameOID.JURISDICTION_COUNTRY_NAME: _ASN1Type.PrintableString, - NameOID.SERIAL_NUMBER: _ASN1Type.PrintableString, - NameOID.DN_QUALIFIER: _ASN1Type.PrintableString, - NameOID.EMAIL_ADDRESS: _ASN1Type.IA5String, - NameOID.DOMAIN_COMPONENT: _ASN1Type.IA5String, -} - -# Type alias -_OidNameMap = typing.Mapping[ObjectIdentifier, str] -_NameOidMap = typing.Mapping[str, ObjectIdentifier] - -#: Short attribute names from RFC 4514: -#: https://tools.ietf.org/html/rfc4514#page-7 -_NAMEOID_TO_NAME: _OidNameMap = { - NameOID.COMMON_NAME: "CN", - NameOID.LOCALITY_NAME: "L", - NameOID.STATE_OR_PROVINCE_NAME: "ST", - NameOID.ORGANIZATION_NAME: "O", - NameOID.ORGANIZATIONAL_UNIT_NAME: "OU", - NameOID.COUNTRY_NAME: "C", - NameOID.STREET_ADDRESS: "STREET", - NameOID.DOMAIN_COMPONENT: "DC", - NameOID.USER_ID: "UID", -} -_NAME_TO_NAMEOID = {v: k for k, v in _NAMEOID_TO_NAME.items()} - -_NAMEOID_LENGTH_LIMIT = { - NameOID.COUNTRY_NAME: (2, 2), - NameOID.JURISDICTION_COUNTRY_NAME: (2, 2), - NameOID.COMMON_NAME: (1, 64), -} - - -def _escape_dn_value(val: str | bytes) -> str: - """Escape special characters in RFC4514 Distinguished Name value.""" - - if not val: - return "" - - # RFC 4514 Section 2.4 defines the value as being the # (U+0023) character - # followed by the hexadecimal encoding of the octets. - if isinstance(val, bytes): - return "#" + binascii.hexlify(val).decode("utf8") - - # See https://tools.ietf.org/html/rfc4514#section-2.4 - val = val.replace("\\", "\\\\") - val = val.replace('"', '\\"') - val = val.replace("+", "\\+") - val = val.replace(",", "\\,") - val = val.replace(";", "\\;") - val = val.replace("<", "\\<") - val = val.replace(">", "\\>") - val = val.replace("\0", "\\00") - - if val[0] == "#" or (val[0] == " " and len(val) > 1): - val = "\\" + val - if val[-1] == " ": - val = val[:-1] + "\\ " - - return val - - -def _unescape_dn_value(val: str) -> str: - if not val: - return "" - - # See https://tools.ietf.org/html/rfc4514#section-3 - - # special = escaped / SPACE / SHARP / EQUALS - # escaped = DQUOTE / PLUS / COMMA / SEMI / LANGLE / RANGLE - def sub(m): - val = m.group(0) - # Special character escape - if len(val) == 2: - return val[1:] - - # Unicode string of hex - return binascii.unhexlify(val.replace("\\", "")).decode() - - return _RFC4514NameParser._PAIR_MULTI_RE.sub(sub, val) - - -NameAttributeValueType = typing.TypeVar( - "NameAttributeValueType", - typing.Union[str, bytes], - str, - bytes, - covariant=True, -) - - -class NameAttribute(typing.Generic[NameAttributeValueType]): - def __init__( - self, - oid: ObjectIdentifier, - value: NameAttributeValueType, - _type: _ASN1Type | None = None, - *, - _validate: bool = True, - ) -> None: - if not isinstance(oid, ObjectIdentifier): - raise TypeError( - "oid argument must be an ObjectIdentifier instance." - ) - if _type == _ASN1Type.BitString: - if oid != NameOID.X500_UNIQUE_IDENTIFIER: - raise TypeError( - "oid must be X500_UNIQUE_IDENTIFIER for BitString type." - ) - if not isinstance(value, bytes): - raise TypeError("value must be bytes for BitString") - elif not isinstance(value, str): - raise TypeError("value argument must be a str") - - length_limits = _NAMEOID_LENGTH_LIMIT.get(oid) - if length_limits is not None: - min_length, max_length = length_limits - assert isinstance(value, str) - c_len = len(value.encode("utf8")) - if c_len < min_length or c_len > max_length: - msg = ( - f"Attribute's length must be >= {min_length} and " - f"<= {max_length}, but it was {c_len}" - ) - if _validate is True: - raise ValueError(msg) - else: - warnings.warn(msg, stacklevel=2) - - # The appropriate ASN1 string type varies by OID and is defined across - # multiple RFCs including 2459, 3280, and 5280. In general UTF8String - # is preferred (2459), but 3280 and 5280 specify several OIDs with - # alternate types. This means when we see the sentinel value we need - # to look up whether the OID has a non-UTF8 type. If it does, set it - # to that. Otherwise, UTF8! - if _type is None: - _type = _NAMEOID_DEFAULT_TYPE.get(oid, _ASN1Type.UTF8String) - - if not isinstance(_type, _ASN1Type): - raise TypeError("_type must be from the _ASN1Type enum") - - self._oid = oid - self._value: NameAttributeValueType = value - self._type: _ASN1Type = _type - - @property - def oid(self) -> ObjectIdentifier: - return self._oid - - @property - def value(self) -> NameAttributeValueType: - return self._value - - @property - def rfc4514_attribute_name(self) -> str: - """ - The short attribute name (for example "CN") if available, - otherwise the OID dotted string. - """ - return _NAMEOID_TO_NAME.get(self.oid, self.oid.dotted_string) - - def rfc4514_string( - self, attr_name_overrides: _OidNameMap | None = None - ) -> str: - """ - Format as RFC4514 Distinguished Name string. - - Use short attribute name if available, otherwise fall back to OID - dotted string. - """ - attr_name = ( - attr_name_overrides.get(self.oid) if attr_name_overrides else None - ) - if attr_name is None: - attr_name = self.rfc4514_attribute_name - - return f"{attr_name}={_escape_dn_value(self.value)}" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, NameAttribute): - return NotImplemented - - return self.oid == other.oid and self.value == other.value - - def __hash__(self) -> int: - return hash((self.oid, self.value)) - - def __repr__(self) -> str: - return f"" - - -class RelativeDistinguishedName: - def __init__(self, attributes: Iterable[NameAttribute[str | bytes]]): - attributes = list(attributes) - if not attributes: - raise ValueError("a relative distinguished name cannot be empty") - if not all(isinstance(x, NameAttribute) for x in attributes): - raise TypeError("attributes must be an iterable of NameAttribute") - - # Keep list and frozenset to preserve attribute order where it matters - self._attributes = attributes - self._attribute_set = frozenset(attributes) - - if len(self._attribute_set) != len(attributes): - raise ValueError("duplicate attributes are not allowed") - - def get_attributes_for_oid( - self, - oid: ObjectIdentifier, - ) -> list[NameAttribute[str | bytes]]: - return [i for i in self if i.oid == oid] - - def rfc4514_string( - self, attr_name_overrides: _OidNameMap | None = None - ) -> str: - """ - Format as RFC4514 Distinguished Name string. - - Within each RDN, attributes are joined by '+', although that is rarely - used in certificates. - """ - return "+".join( - attr.rfc4514_string(attr_name_overrides) - for attr in self._attributes - ) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, RelativeDistinguishedName): - return NotImplemented - - return self._attribute_set == other._attribute_set - - def __hash__(self) -> int: - return hash(self._attribute_set) - - def __iter__(self) -> Iterator[NameAttribute[str | bytes]]: - return iter(self._attributes) - - def __len__(self) -> int: - return len(self._attributes) - - def __repr__(self) -> str: - return f"" - - -class Name: - @typing.overload - def __init__( - self, attributes: Iterable[NameAttribute[str | bytes]] - ) -> None: ... - - @typing.overload - def __init__( - self, attributes: Iterable[RelativeDistinguishedName] - ) -> None: ... - - def __init__( - self, - attributes: Iterable[ - NameAttribute[str | bytes] | RelativeDistinguishedName - ], - ) -> None: - attributes = list(attributes) - if all(isinstance(x, NameAttribute) for x in attributes): - self._attributes = [ - RelativeDistinguishedName([typing.cast(NameAttribute, x)]) - for x in attributes - ] - elif all(isinstance(x, RelativeDistinguishedName) for x in attributes): - self._attributes = typing.cast( - list[RelativeDistinguishedName], attributes - ) - else: - raise TypeError( - "attributes must be a list of NameAttribute" - " or a list RelativeDistinguishedName" - ) - - @classmethod - def from_rfc4514_string( - cls, - data: str, - attr_name_overrides: _NameOidMap | None = None, - ) -> Name: - return _RFC4514NameParser(data, attr_name_overrides or {}).parse() - - def rfc4514_string( - self, attr_name_overrides: _OidNameMap | None = None - ) -> str: - """ - Format as RFC4514 Distinguished Name string. - For example 'CN=foobar.com,O=Foo Corp,C=US' - - An X.509 name is a two-level structure: a list of sets of attributes. - Each list element is separated by ',' and within each list element, set - elements are separated by '+'. The latter is almost never used in - real world certificates. According to RFC4514 section 2.1 the - RDNSequence must be reversed when converting to string representation. - """ - return ",".join( - attr.rfc4514_string(attr_name_overrides) - for attr in reversed(self._attributes) - ) - - def get_attributes_for_oid( - self, - oid: ObjectIdentifier, - ) -> list[NameAttribute[str | bytes]]: - return [i for i in self if i.oid == oid] - - @property - def rdns(self) -> list[RelativeDistinguishedName]: - return self._attributes - - def public_bytes(self, backend: typing.Any = None) -> bytes: - return rust_x509.encode_name_bytes(self) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, Name): - return NotImplemented - - return self._attributes == other._attributes - - def __hash__(self) -> int: - # TODO: this is relatively expensive, if this looks like a bottleneck - # for you, consider optimizing! - return hash(tuple(self._attributes)) - - def __iter__(self) -> Iterator[NameAttribute[str | bytes]]: - for rdn in self._attributes: - yield from rdn - - def __len__(self) -> int: - return sum(len(rdn) for rdn in self._attributes) - - def __repr__(self) -> str: - return f"" - - -class _RFC4514NameParser: - _OID_RE = re.compile(r"(0|([1-9]\d*))(\.(0|([1-9]\d*)))+") - _DESCR_RE = re.compile(r"[a-zA-Z][a-zA-Z\d-]*") - - _ESCAPE_SPECIAL = r"[\\ #=\"\+,;<>]" - _ESCAPE_HEX = r"[\da-zA-Z]{2}" - _PAIR = rf"\\({_ESCAPE_SPECIAL}|{_ESCAPE_HEX})" - _PAIR_MULTI_RE = re.compile(rf"(\\{_ESCAPE_SPECIAL})|((\\{_ESCAPE_HEX})+)") - _LUTF1 = r"[\x01-\x1f\x21\x24-\x2A\x2D-\x3A\x3D\x3F-\x5B\x5D-\x7F]" - _SUTF1 = r"[\x01-\x21\x23-\x2A\x2D-\x3A\x3D\x3F-\x5B\x5D-\x7F]" - _TUTF1 = r"[\x01-\x1F\x21\x23-\x2A\x2D-\x3A\x3D\x3F-\x5B\x5D-\x7F]" - _UTFMB = rf"[\x80-{chr(sys.maxunicode)}]" - _LEADCHAR = rf"{_LUTF1}|{_UTFMB}" - _STRINGCHAR = rf"{_SUTF1}|{_UTFMB}" - _TRAILCHAR = rf"{_TUTF1}|{_UTFMB}" - _STRING_RE = re.compile( - rf""" - ( - ({_LEADCHAR}|{_PAIR}) - ( - ({_STRINGCHAR}|{_PAIR})* - ({_TRAILCHAR}|{_PAIR}) - )? - )? - """, - re.VERBOSE, - ) - _HEXSTRING_RE = re.compile(r"#([\da-zA-Z]{2})+") - - def __init__(self, data: str, attr_name_overrides: _NameOidMap) -> None: - self._data = data - self._idx = 0 - - self._attr_name_overrides = attr_name_overrides - - def _has_data(self) -> bool: - return self._idx < len(self._data) - - def _peek(self) -> str | None: - if self._has_data(): - return self._data[self._idx] - return None - - def _read_char(self, ch: str) -> None: - if self._peek() != ch: - raise ValueError - self._idx += 1 - - def _read_re(self, pat) -> str: - match = pat.match(self._data, pos=self._idx) - if match is None: - raise ValueError - val = match.group() - self._idx += len(val) - return val - - def parse(self) -> Name: - """ - Parses the `data` string and converts it to a Name. - - According to RFC4514 section 2.1 the RDNSequence must be - reversed when converting to string representation. So, when - we parse it, we need to reverse again to get the RDNs on the - correct order. - """ - - if not self._has_data(): - return Name([]) - - rdns = [self._parse_rdn()] - - while self._has_data(): - self._read_char(",") - rdns.append(self._parse_rdn()) - - return Name(reversed(rdns)) - - def _parse_rdn(self) -> RelativeDistinguishedName: - nas = [self._parse_na()] - while self._peek() == "+": - self._read_char("+") - nas.append(self._parse_na()) - - return RelativeDistinguishedName(nas) - - def _parse_na(self) -> NameAttribute[str]: - try: - oid_value = self._read_re(self._OID_RE) - except ValueError: - name = self._read_re(self._DESCR_RE) - oid = self._attr_name_overrides.get( - name, _NAME_TO_NAMEOID.get(name) - ) - if oid is None: - raise ValueError - else: - oid = ObjectIdentifier(oid_value) - - self._read_char("=") - if self._peek() == "#": - value = self._read_re(self._HEXSTRING_RE) - value = binascii.unhexlify(value[1:]).decode() - else: - raw_value = self._read_re(self._STRING_RE) - value = _unescape_dn_value(raw_value) - - return NameAttribute(oid, value) diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/ocsp.py b/.venv/lib/python3.9/site-packages/cryptography/x509/ocsp.py deleted file mode 100644 index f61ed80..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/x509/ocsp.py +++ /dev/null @@ -1,379 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import datetime -from collections.abc import Iterable - -from cryptography import utils, x509 -from cryptography.hazmat.bindings._rust import ocsp -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives.asymmetric.types import ( - CertificateIssuerPrivateKeyTypes, -) -from cryptography.x509.base import _reject_duplicate_extension - - -class OCSPResponderEncoding(utils.Enum): - HASH = "By Hash" - NAME = "By Name" - - -class OCSPResponseStatus(utils.Enum): - SUCCESSFUL = 0 - MALFORMED_REQUEST = 1 - INTERNAL_ERROR = 2 - TRY_LATER = 3 - SIG_REQUIRED = 5 - UNAUTHORIZED = 6 - - -_ALLOWED_HASHES = ( - hashes.SHA1, - hashes.SHA224, - hashes.SHA256, - hashes.SHA384, - hashes.SHA512, -) - - -def _verify_algorithm(algorithm: hashes.HashAlgorithm) -> None: - if not isinstance(algorithm, _ALLOWED_HASHES): - raise ValueError( - "Algorithm must be SHA1, SHA224, SHA256, SHA384, or SHA512" - ) - - -class OCSPCertStatus(utils.Enum): - GOOD = 0 - REVOKED = 1 - UNKNOWN = 2 - - -class _SingleResponse: - def __init__( - self, - resp: tuple[x509.Certificate, x509.Certificate] | None, - resp_hash: tuple[bytes, bytes, int] | None, - algorithm: hashes.HashAlgorithm, - cert_status: OCSPCertStatus, - this_update: datetime.datetime, - next_update: datetime.datetime | None, - revocation_time: datetime.datetime | None, - revocation_reason: x509.ReasonFlags | None, - ): - _verify_algorithm(algorithm) - if not isinstance(this_update, datetime.datetime): - raise TypeError("this_update must be a datetime object") - if next_update is not None and not isinstance( - next_update, datetime.datetime - ): - raise TypeError("next_update must be a datetime object or None") - - self._resp = resp - self._resp_hash = resp_hash - self._algorithm = algorithm - self._this_update = this_update - self._next_update = next_update - - if not isinstance(cert_status, OCSPCertStatus): - raise TypeError( - "cert_status must be an item from the OCSPCertStatus enum" - ) - if cert_status is not OCSPCertStatus.REVOKED: - if revocation_time is not None: - raise ValueError( - "revocation_time can only be provided if the certificate " - "is revoked" - ) - if revocation_reason is not None: - raise ValueError( - "revocation_reason can only be provided if the certificate" - " is revoked" - ) - else: - if not isinstance(revocation_time, datetime.datetime): - raise TypeError("revocation_time must be a datetime object") - - if revocation_reason is not None and not isinstance( - revocation_reason, x509.ReasonFlags - ): - raise TypeError( - "revocation_reason must be an item from the ReasonFlags " - "enum or None" - ) - - self._cert_status = cert_status - self._revocation_time = revocation_time - self._revocation_reason = revocation_reason - - -OCSPRequest = ocsp.OCSPRequest -OCSPResponse = ocsp.OCSPResponse -OCSPSingleResponse = ocsp.OCSPSingleResponse - - -class OCSPRequestBuilder: - def __init__( - self, - request: tuple[ - x509.Certificate, x509.Certificate, hashes.HashAlgorithm - ] - | None = None, - request_hash: tuple[bytes, bytes, int, hashes.HashAlgorithm] - | None = None, - extensions: list[x509.Extension[x509.ExtensionType]] = [], - ) -> None: - self._request = request - self._request_hash = request_hash - self._extensions = extensions - - def add_certificate( - self, - cert: x509.Certificate, - issuer: x509.Certificate, - algorithm: hashes.HashAlgorithm, - ) -> OCSPRequestBuilder: - if self._request is not None or self._request_hash is not None: - raise ValueError("Only one certificate can be added to a request") - - _verify_algorithm(algorithm) - if not isinstance(cert, x509.Certificate) or not isinstance( - issuer, x509.Certificate - ): - raise TypeError("cert and issuer must be a Certificate") - - return OCSPRequestBuilder( - (cert, issuer, algorithm), self._request_hash, self._extensions - ) - - def add_certificate_by_hash( - self, - issuer_name_hash: bytes, - issuer_key_hash: bytes, - serial_number: int, - algorithm: hashes.HashAlgorithm, - ) -> OCSPRequestBuilder: - if self._request is not None or self._request_hash is not None: - raise ValueError("Only one certificate can be added to a request") - - if not isinstance(serial_number, int): - raise TypeError("serial_number must be an integer") - - _verify_algorithm(algorithm) - utils._check_bytes("issuer_name_hash", issuer_name_hash) - utils._check_bytes("issuer_key_hash", issuer_key_hash) - if algorithm.digest_size != len( - issuer_name_hash - ) or algorithm.digest_size != len(issuer_key_hash): - raise ValueError( - "issuer_name_hash and issuer_key_hash must be the same length " - "as the digest size of the algorithm" - ) - - return OCSPRequestBuilder( - self._request, - (issuer_name_hash, issuer_key_hash, serial_number, algorithm), - self._extensions, - ) - - def add_extension( - self, extval: x509.ExtensionType, critical: bool - ) -> OCSPRequestBuilder: - if not isinstance(extval, x509.ExtensionType): - raise TypeError("extension must be an ExtensionType") - - extension = x509.Extension(extval.oid, critical, extval) - _reject_duplicate_extension(extension, self._extensions) - - return OCSPRequestBuilder( - self._request, self._request_hash, [*self._extensions, extension] - ) - - def build(self) -> OCSPRequest: - if self._request is None and self._request_hash is None: - raise ValueError("You must add a certificate before building") - - return ocsp.create_ocsp_request(self) - - -class OCSPResponseBuilder: - def __init__( - self, - response: _SingleResponse | None = None, - responder_id: tuple[x509.Certificate, OCSPResponderEncoding] - | None = None, - certs: list[x509.Certificate] | None = None, - extensions: list[x509.Extension[x509.ExtensionType]] = [], - ): - self._response = response - self._responder_id = responder_id - self._certs = certs - self._extensions = extensions - - def add_response( - self, - cert: x509.Certificate, - issuer: x509.Certificate, - algorithm: hashes.HashAlgorithm, - cert_status: OCSPCertStatus, - this_update: datetime.datetime, - next_update: datetime.datetime | None, - revocation_time: datetime.datetime | None, - revocation_reason: x509.ReasonFlags | None, - ) -> OCSPResponseBuilder: - if self._response is not None: - raise ValueError("Only one response per OCSPResponse.") - - if not isinstance(cert, x509.Certificate) or not isinstance( - issuer, x509.Certificate - ): - raise TypeError("cert and issuer must be a Certificate") - - singleresp = _SingleResponse( - (cert, issuer), - None, - algorithm, - cert_status, - this_update, - next_update, - revocation_time, - revocation_reason, - ) - return OCSPResponseBuilder( - singleresp, - self._responder_id, - self._certs, - self._extensions, - ) - - def add_response_by_hash( - self, - issuer_name_hash: bytes, - issuer_key_hash: bytes, - serial_number: int, - algorithm: hashes.HashAlgorithm, - cert_status: OCSPCertStatus, - this_update: datetime.datetime, - next_update: datetime.datetime | None, - revocation_time: datetime.datetime | None, - revocation_reason: x509.ReasonFlags | None, - ) -> OCSPResponseBuilder: - if self._response is not None: - raise ValueError("Only one response per OCSPResponse.") - - if not isinstance(serial_number, int): - raise TypeError("serial_number must be an integer") - - utils._check_bytes("issuer_name_hash", issuer_name_hash) - utils._check_bytes("issuer_key_hash", issuer_key_hash) - _verify_algorithm(algorithm) - if algorithm.digest_size != len( - issuer_name_hash - ) or algorithm.digest_size != len(issuer_key_hash): - raise ValueError( - "issuer_name_hash and issuer_key_hash must be the same length " - "as the digest size of the algorithm" - ) - - singleresp = _SingleResponse( - None, - (issuer_name_hash, issuer_key_hash, serial_number), - algorithm, - cert_status, - this_update, - next_update, - revocation_time, - revocation_reason, - ) - return OCSPResponseBuilder( - singleresp, - self._responder_id, - self._certs, - self._extensions, - ) - - def responder_id( - self, encoding: OCSPResponderEncoding, responder_cert: x509.Certificate - ) -> OCSPResponseBuilder: - if self._responder_id is not None: - raise ValueError("responder_id can only be set once") - if not isinstance(responder_cert, x509.Certificate): - raise TypeError("responder_cert must be a Certificate") - if not isinstance(encoding, OCSPResponderEncoding): - raise TypeError( - "encoding must be an element from OCSPResponderEncoding" - ) - - return OCSPResponseBuilder( - self._response, - (responder_cert, encoding), - self._certs, - self._extensions, - ) - - def certificates( - self, certs: Iterable[x509.Certificate] - ) -> OCSPResponseBuilder: - if self._certs is not None: - raise ValueError("certificates may only be set once") - certs = list(certs) - if len(certs) == 0: - raise ValueError("certs must not be an empty list") - if not all(isinstance(x, x509.Certificate) for x in certs): - raise TypeError("certs must be a list of Certificates") - return OCSPResponseBuilder( - self._response, - self._responder_id, - certs, - self._extensions, - ) - - def add_extension( - self, extval: x509.ExtensionType, critical: bool - ) -> OCSPResponseBuilder: - if not isinstance(extval, x509.ExtensionType): - raise TypeError("extension must be an ExtensionType") - - extension = x509.Extension(extval.oid, critical, extval) - _reject_duplicate_extension(extension, self._extensions) - - return OCSPResponseBuilder( - self._response, - self._responder_id, - self._certs, - [*self._extensions, extension], - ) - - def sign( - self, - private_key: CertificateIssuerPrivateKeyTypes, - algorithm: hashes.HashAlgorithm | None, - ) -> OCSPResponse: - if self._response is None: - raise ValueError("You must add a response before signing") - if self._responder_id is None: - raise ValueError("You must add a responder_id before signing") - - return ocsp.create_ocsp_response( - OCSPResponseStatus.SUCCESSFUL, self, private_key, algorithm - ) - - @classmethod - def build_unsuccessful( - cls, response_status: OCSPResponseStatus - ) -> OCSPResponse: - if not isinstance(response_status, OCSPResponseStatus): - raise TypeError( - "response_status must be an item from OCSPResponseStatus" - ) - if response_status is OCSPResponseStatus.SUCCESSFUL: - raise ValueError("response_status cannot be SUCCESSFUL") - - return ocsp.create_ocsp_response(response_status, None, None, None) - - -load_der_ocsp_request = ocsp.load_der_ocsp_request -load_der_ocsp_response = ocsp.load_der_ocsp_response diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/oid.py b/.venv/lib/python3.9/site-packages/cryptography/x509/oid.py deleted file mode 100644 index 520fc7a..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/x509/oid.py +++ /dev/null @@ -1,37 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat._oid import ( - AttributeOID, - AuthorityInformationAccessOID, - CertificatePoliciesOID, - CRLEntryExtensionOID, - ExtendedKeyUsageOID, - ExtensionOID, - NameOID, - ObjectIdentifier, - OCSPExtensionOID, - OtherNameFormOID, - PublicKeyAlgorithmOID, - SignatureAlgorithmOID, - SubjectInformationAccessOID, -) - -__all__ = [ - "AttributeOID", - "AuthorityInformationAccessOID", - "CRLEntryExtensionOID", - "CertificatePoliciesOID", - "ExtendedKeyUsageOID", - "ExtensionOID", - "NameOID", - "OCSPExtensionOID", - "ObjectIdentifier", - "OtherNameFormOID", - "PublicKeyAlgorithmOID", - "SignatureAlgorithmOID", - "SubjectInformationAccessOID", -] diff --git a/.venv/lib/python3.9/site-packages/cryptography/x509/verification.py b/.venv/lib/python3.9/site-packages/cryptography/x509/verification.py deleted file mode 100644 index 2db4324..0000000 --- a/.venv/lib/python3.9/site-packages/cryptography/x509/verification.py +++ /dev/null @@ -1,34 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import typing - -from cryptography.hazmat.bindings._rust import x509 as rust_x509 -from cryptography.x509.general_name import DNSName, IPAddress - -__all__ = [ - "ClientVerifier", - "Criticality", - "ExtensionPolicy", - "Policy", - "PolicyBuilder", - "ServerVerifier", - "Store", - "Subject", - "VerificationError", - "VerifiedClient", -] - -Store = rust_x509.Store -Subject = typing.Union[DNSName, IPAddress] -VerifiedClient = rust_x509.VerifiedClient -ClientVerifier = rust_x509.ClientVerifier -ServerVerifier = rust_x509.ServerVerifier -PolicyBuilder = rust_x509.PolicyBuilder -Policy = rust_x509.Policy -ExtensionPolicy = rust_x509.ExtensionPolicy -Criticality = rust_x509.Criticality -VerificationError = rust_x509.VerificationError diff --git a/.venv/lib/python3.9/site-packages/distutils-precedence.pth b/.venv/lib/python3.9/site-packages/distutils-precedence.pth deleted file mode 100644 index 6de4198..0000000 --- a/.venv/lib/python3.9/site-packages/distutils-precedence.pth +++ /dev/null @@ -1 +0,0 @@ -import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'stdlib') == 'local'; enabled and __import__('_distutils_hack').add_shim(); diff --git a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/INSTALLER b/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/METADATA b/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/METADATA deleted file mode 100644 index 6c4bf89..0000000 --- a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/METADATA +++ /dev/null @@ -1,155 +0,0 @@ -Metadata-Version: 2.4 -Name: idna -Version: 3.18 -Summary: Internationalized Domain Names in Applications (IDNA) -Author-email: Kim Davies -Requires-Python: >=3.9 -Description-Content-Type: text/markdown -License-Expression: BSD-3-Clause -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Intended Audience :: System Administrators -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Topic :: Internet :: Name Service (DNS) -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: Utilities -License-File: LICENSE.md -Requires-Dist: ruff >= 0.6.2 ; extra == "all" -Requires-Dist: mypy >= 1.11.2 ; extra == "all" -Requires-Dist: pytest >= 8.3.2 ; extra == "all" -Project-URL: Changelog, https://github.com/kjd/idna/blob/master/HISTORY.md -Project-URL: Issue tracker, https://github.com/kjd/idna/issues -Project-URL: Source, https://github.com/kjd/idna -Provides-Extra: all - -# Internationalized Domain Names in Applications (IDNA) - -Support for [Internationalized Domain Names in Applications -(IDNA)](https://tools.ietf.org/html/rfc5891) and [Unicode IDNA -Compatibility Processing](https://unicode.org/reports/tr46/). It -supersedes the standard library's `encodings.idna`, which only -implements the 2003 specification, offering broader script coverage and -limiting domains with known security vulnerabilities. - -## Usage - -Package may be installed from [PyPI](https://pypi.org/project/idna/) via -the typical methods (e.g. `python3 -m pip install idna`) - -For typical usage, the `encode` and `decode` functions will take a -domain name argument and perform a conversion to ASCII-compatible encoding -(known as A-labels), or to Unicode strings (known as U-labels) -respectively. - -```pycon ->>> import idna ->>> idna.encode('ドメイン.テスト') -b'xn--eckwd4c7c.xn--zckzah' ->>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) -ドメイン.テスト -``` - -Conversions can be applied at a per-label basis using the `ulabel` or -`alabel` functions for specialized use cases. - - -### Compatibility Mapping (UTS #46) - -This library provides support for [Unicode IDNA Compatibility -Processing](https://unicode.org/reports/tr46/) which normalizes input from -different potential ways a user may input a domain prior to performing the IDNA -conversion operations. This functionality, known as a -[mapping](https://tools.ietf.org/html/rfc5895), is considered by the -specification to be a local user-interface issue distinct from IDNA -conversion functionality. - -For example, "Königsgäßchen" is not a permissible label as capital letters -are not allowed. UTS 46 will convert this into lower case prior to applying -the IDNA conversion. - -```pycon ->>> import idna ->>> idna.encode('Königsgäßchen') -... -idna.core.InvalidCodepoint: Codepoint U+004B at position 1 of 'Königsgäßchen' not allowed ->>> idna.encode('Königsgäßchen', uts46=True) -b'xn--knigsgchen-b4a3dun' ->>> idna.decode('xn--knigsgchen-b4a3dun') -'königsgäßchen' -``` - -When performing a decode operation for display purposes, `decode()` -accepts a `display=True` argument that leaves any `xn--` label that -fails to decode unchanged. This is useful for user interface display -where a domain is in use, the A-label form can be presented when it -is not a valid IDN. - - -## Exceptions - -All errors raised during conversion derive from the `idna.IDNAError` -base class. The more specific exceptions are: - -* `idna.IDNABidiError` — raised when a label contains an illegal - combination of left-to-right and right-to-left characters. -* `idna.InvalidCodepoint` — raised when a label contains a codepoint - that is INVALID for IDNA. -* `idna.InvalidCodepointContext` — raised when a CONTEXTO or CONTEXTJ - codepoint appears in a position whose contextual requirements are - not satisfied. - - -## Command-line tool - -The package supports command-line usage to convert domain names -between their Unicode and ASCII-compatible forms. It can be run either -as a module (`python3 -m idna`) or, once installed (such as with `uv -tool` or `pipx`), via the `idna` script: - -```bash -$ uv tool install idna -$ idna xn--e1afmkfd.xn--p1ai -пример.рф -$ idna пример.рф -xn--e1afmkfd.xn--p1ai -``` - -Mode can be specified with `-e`/`--encode` or `-d`/`--decode`, otherwise -it will be chosen automatically based on the first input. Multiple -domains can be supplied either as arguments or through standard input. -UTS #46 mapping is applied by default, which lets the tool accept -inputs that aren't strictly valid IDNA 2008 by normalising them first, -pass `--strict` to disable UTS #46. - -Conversion failures are reported on stderr together with the -offending input; processing continues with the remaining domains and -the tool exits with a non-zero status if any conversion failed. - - -## Additional Notes - -* **Version support**. This library supports Python 3.9 and higher. - As this library serves as a low-level toolkit for a variety of - applications, we strive to support all versions of Python that are - not beyond end-of-life. - -* **Emoji**. It is an occasional request to support emoji domains in - this library. Encoding of symbols like emoji is expressly prohibited by - the IDNA technical standard, and emoji domains are broadly phased - out across the domain industry due to associated security risks. - -* **Regenerating lookup tables**. The IDNA and UTS 46 functionality - relies upon pre-calculated lookup tables, generated using the - `idna-data` script in [`tools/`](tools/README.md). - diff --git a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/RECORD b/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/RECORD deleted file mode 100644 index c718c3b..0000000 --- a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/RECORD +++ /dev/null @@ -1,28 +0,0 @@ -../../../bin/idna,sha256=x4tZiY5PaNYu-A7O7WiL6qqLeUCGt8IgCVEqqqeQC-I,254 -idna-3.18.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -idna-3.18.dist-info/METADATA,sha256=Rt_m5axGLQ9oDs2avPZugptqIzSCS02eOXmzETXK8oE,6119 -idna-3.18.dist-info/RECORD,, -idna-3.18.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 -idna-3.18.dist-info/entry_points.txt,sha256=7H3nGOHap3jnLE5e7q7Ywr9Vq8axB7WIj5-C_4N2vhw,38 -idna-3.18.dist-info/licenses/LICENSE.md,sha256=GppPDj1HmickDd1ZqRN6ZqtKD539yMphiMwL_YUYfwQ,1541 -idna/__init__.py,sha256=MPqNDLZbXqGaNdXxAFhiqFPKEQXju2jNQhCey6-5eJM,868 -idna/__main__.py,sha256=4JMK66Wj4uLZTKbF-sT3LAxOsr6buig77PmOkJCRRxw,83 -idna/__pycache__/__init__.cpython-39.pyc,, -idna/__pycache__/__main__.cpython-39.pyc,, -idna/__pycache__/cli.cpython-39.pyc,, -idna/__pycache__/codec.cpython-39.pyc,, -idna/__pycache__/compat.cpython-39.pyc,, -idna/__pycache__/core.cpython-39.pyc,, -idna/__pycache__/idnadata.cpython-39.pyc,, -idna/__pycache__/intranges.cpython-39.pyc,, -idna/__pycache__/package_data.cpython-39.pyc,, -idna/__pycache__/uts46data.cpython-39.pyc,, -idna/cli.py,sha256=swqJLMNc8Uzs60KziNpbWnHuqlG3WRQwJSbo4n8xDAo,4139 -idna/codec.py,sha256=JRbo-f7pEkLdWeiH89Z72UR4VBYhvKDFrQBeNX6sRDE,5040 -idna/compat.py,sha256=AepA39ceRHxkfHP41-FvKW5Ki-f4PfUZ90RUMlCNdmo,1353 -idna/core.py,sha256=SfOr1xO3PoE0RDYx7bMciAnjiyjJPbPw_93AB5IUYOw,24685 -idna/idnadata.py,sha256=Af-mo8WBmkhAK6TyXKOQH88OX0mQNDKtdL7UWtQpppk,44862 -idna/intranges.py,sha256=g49scLSkqJtAhLmOODa7hVHriSjmb60tiTsEoocJdBI,1851 -idna/package_data.py,sha256=TeI94EqAFAFaXfBJwsOPUMLn2969uirPa-DaeaceAyU,21 -idna/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -idna/uts46data.py,sha256=jujNz5QqWMcJf-XYLv4X1jBvb5FlI0t6-e1mILsgbPk,234325 diff --git a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/WHEEL b/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/WHEEL deleted file mode 100644 index d8b9936..0000000 --- a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/WHEEL +++ /dev/null @@ -1,4 +0,0 @@ -Wheel-Version: 1.0 -Generator: flit 3.12.0 -Root-Is-Purelib: true -Tag: py3-none-any diff --git a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/entry_points.txt b/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/entry_points.txt deleted file mode 100644 index 59ca7ac..0000000 --- a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/entry_points.txt +++ /dev/null @@ -1,3 +0,0 @@ -[console_scripts] -idna=idna.cli:main - diff --git a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/licenses/LICENSE.md b/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/licenses/LICENSE.md deleted file mode 100644 index f706835..0000000 --- a/.venv/lib/python3.9/site-packages/idna-3.18.dist-info/licenses/LICENSE.md +++ /dev/null @@ -1,31 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2013-2026, Kim Davies and contributors. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/.venv/lib/python3.9/site-packages/idna/__init__.py b/.venv/lib/python3.9/site-packages/idna/__init__.py deleted file mode 100644 index cfdc030..0000000 --- a/.venv/lib/python3.9/site-packages/idna/__init__.py +++ /dev/null @@ -1,45 +0,0 @@ -from .core import ( - IDNABidiError, - IDNAError, - InvalidCodepoint, - InvalidCodepointContext, - alabel, - check_bidi, - check_hyphen_ok, - check_initial_combiner, - check_label, - check_nfc, - decode, - encode, - ulabel, - uts46_remap, - valid_contextj, - valid_contexto, - valid_label_length, - valid_string_length, -) -from .intranges import intranges_contain -from .package_data import __version__ - -__all__ = [ - "__version__", - "IDNABidiError", - "IDNAError", - "InvalidCodepoint", - "InvalidCodepointContext", - "alabel", - "check_bidi", - "check_hyphen_ok", - "check_initial_combiner", - "check_label", - "check_nfc", - "decode", - "encode", - "intranges_contain", - "ulabel", - "uts46_remap", - "valid_contextj", - "valid_contexto", - "valid_label_length", - "valid_string_length", -] diff --git a/.venv/lib/python3.9/site-packages/idna/__main__.py b/.venv/lib/python3.9/site-packages/idna/__main__.py deleted file mode 100644 index dbdd066..0000000 --- a/.venv/lib/python3.9/site-packages/idna/__main__.py +++ /dev/null @@ -1,6 +0,0 @@ -import sys - -from .cli import main - -if __name__ == "__main__": - sys.exit(main()) diff --git a/.venv/lib/python3.9/site-packages/idna/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/idna/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index c27005aeeca750f19d5934f06ba51b584edbfcb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmbu7%Z}496o!*t(xypz&2$iNkOj?x5fTzYz`$ZQBP4d-7&q}WZeu&L-75kNe2y zJ=EiU)aL^<;6pUz0SfpCjrbUid5A(jK@%RKh{q`A2}<}BP5BJX_#Dmo0xkFwEq#dB zt5-ZlX>0fE3%*8c-`jcR;H!@=%i$+43x4`8b+)w0&HLN8?^ww`C?%B*!R^fXjX05- zmDjSQjby^u%g4&K6o%d#8<3i8X>BJ(MT-O8x^Q;Z+10tJsKD}I*PXxwGmO-@kbKJo zRW|DME<)Hj;;yhkNeh?S22^zKWA{mPH2UfVR+N**PTLY)u(pu>BVXEOx8MGWYbti8 zva3$hMlrE_5HsH{T#Jf`9o20(!h{nej89Z)CI!Y>sxI82DY!l5uGLcmzz`4sMu0IO z1i%ca2oM7jKnj=wW`H?h0ayZ74!7A8J1C^0|CQ&TDQx(s)wUoTH>5a_9mORvq;1lU zFeY`4@i$LBh0*}OKIfI>G~Y5^eIa{FO>U?*xuACjYpUEyVRJ8Vqhvv~&NnA2PI=9? xd2=?E6wfy=bIlBW_K;5JtP~{27-j?&6S6r6In!bkd)NraF)7X!DzX91%=l%cy diff --git a/.venv/lib/python3.9/site-packages/idna/__pycache__/__main__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/idna/__pycache__/__main__.cpython-39.pyc deleted file mode 100644 index 9866bdadfe9d80c3cf30dd3c40f654cf36a5f087..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmYjLJ5Izf6!a&H0%AK3K_rL^DkOwB0nK*X7;pR_-nE^`&xB3QMWEy$T*58YUV#c5 z35k*3jOKmxMlF{oB;)L}*{-sF74siFo4Z_ikx3IxEm;%IG`G~THKPQ$u68V(19_`} zy^?oI^VW(qi$lI3_XnD}p{a7p_*6?-RLW+NIL?@OXH6(i%E&7RQl<*_CVr4`oZG+j z{UG|mf!G-AU(^;LiU=5mhsP)p!URFay_aJcIzSZd1b!0MY{WRne(+cAwLlZ$a#Y<; fJpl@%y%K*}+Hp?xjT`i{h1(Jrk22Nll-2YHa9m9| diff --git a/.venv/lib/python3.9/site-packages/idna/__pycache__/cli.cpython-39.pyc b/.venv/lib/python3.9/site-packages/idna/__pycache__/cli.cpython-39.pyc deleted file mode 100644 index df0031c415bcd1aab2f56247bc652d99a4fa54c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4347 zcmZ`+TW=)A6|U~-9?y)&7j})=T{cj;5e9a~4r~xH%ZiP6i5x}VB!(a+B0cS?nsIyk zGE~*ro?#pz83}mU2c*0~Bs&jL_#ycNdF;nTibP)XhJ=*wRF5yPFr%*SuBuaY>YVd^ z=X5wXS7Z1s{iCt_{32ujrk9I9A1|-r(*H#xSepq)xUtiA?A>jHm;K}OR$ECBoEapCQ#JpI*`xCMvFJEQSqgE_p-eckt`maC^l90XpnJ1RS zU2)hr$zHHTM8|hy5KnlJWg}l=ljLc4! z@@B&AyiSX6Nl5mFX?LxYgi+c#TTZ4%jrbtLMy=WxFgDw4IC*6Q+lJe*#IxVsfkea2 z-HrQs<^I4#SsKP)IGEZf<<*V5n|JOhm8rZeWH%EsFUyqfkeCm`INX+TFi^4=9psC_ zFpX#|5Sh_|qUC3UU{5NIMS}n$j?T+UnxRU&w8QC-o+&0uxb!n<3_C_FoH!pd<9^6` zhz?QupkhkL-UQaX%Z{8Q2ln*FzxbV9jlZFWFlUd4>4;mUU|X0&D-f5 zq|GKe@2ubBh1#v$4|O++zNU~19Xwnwl0w(fOxQb1ht9+~W+zbXBPj8E=CF5N!Jvk- ziKF>(wl7s)(r&t8k4#J(t>e-YG=}Y3{EN~<_Yej@ zc25|Ye77V#;Sid<4(Kg<8RjmCMMCYv5@yl+Wx}iRK4pJ##qwD% zkSc)S;+>GWIiCMIu7>|aRIXeq#G%vs_Ztx8KYCqCI z3zpKnK(nyxk>*y64rvv`gm3`wgL_QIC2TR`N|Gg_v|nh_;%~mO#eaD7C7xia?LHUU z9%1KRIE>9Jpfjy`vk9G|uA${bq=|%}2+XmAgTfqznX!P9ydNR%IZQ!1!Is3E-0~(p zXd~bcC^(1)k`4wwojPeCRWT2vFn}m5Xa!mTr3YN~^I0KvS4Eca#%@!NE6rwMjNGHM z=d;>mN(L}5RIVaG$Isuh)Mxc6yns_s5LkEfsf&qxlUBpaJ?voea%lYtqNRm$Z%4)h z>?dfy!YdYUQEBiFWZ%rdYaB>$;>vE%;tjaVHAs? zm_l9pS7?~yIj-w|Ri3ZV)A|3)a^*YTzbgC1NagGa^1fQZYNSMg%z_m!WE0 zQ8_IAsU)gf)2CIo%0vyuoE_g=pHhCOQ^Yfh1p>^z!jUaFmDHBciaG{G#_PzU64Ss` zy)cT0O13Pdk@bFtL#YKiS(yN{#>aI#2fm?-Z|tsd*xu_!vD|$9jYc{52XKtB;+AvN z421KN9-(l8xusGUEo;}$OX&Tkhw8*z1hW9V_*<-@QHR4tE?jiUz2?k2+_~bYSI|d{ z2$1YO8jQ3z`G|a`|Axk}Bb$@q~Ni9{LksxI?CdC~d*#yR(A>Q=dRi?Flb+h5s@8kbUU% z;7u`uGH`C<_nnD%Mjsr7$ZX!yrMyLb{U(8inLS|0T;77B`TZGiZp*QlM4wf zCBU1u%UI?{}U1gfx@5xyA1mnVLx2E>gv>{WGyA%9l{Ji9_@IR?L%HzD~vZ45$8En zx)*trs>?F2%eeFvG<_=J7Y`kS+VLayk#kh~#C_M>DpCNDS|CAP!c@y#pSwkdun0cS z5Vc!mMk?%XzeiKAq8VSIg6Kj$eKtjr3XKKJ`gzS}70O2z%Txsw9QiUP5&yz1c^UcJ zn33hs+y}7n<>e9C<{oN#Q|Lq`wIWcWNRQ*jjJib~E$Sd7>wIQfM&%U}4N)KDz74s2 zreH5!@WrbnXEUEiNBARN^;2lrY}u(f6}Jqws5y1F25QH<>*5GyGoq?d5z#362+Wx! zy>rLrUKe#l@o8c|Nb1w?o`8bW=5;Wnfr+-Uto`6n&(ms@Y^^1&cPXi%04ou{o}PdL zKL~P99z^B>g`WGnatpN}YNOi}T-G+8Pid}>|DwC(EIRelVtMg}E0v|WYu~Rp{|6b1 Bv6uh= diff --git a/.venv/lib/python3.9/site-packages/idna/__pycache__/codec.cpython-39.pyc b/.venv/lib/python3.9/site-packages/idna/__pycache__/codec.cpython-39.pyc deleted file mode 100644 index e2bcd7f06a319596b9943e3c5d24b80b0e818024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4805 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 YH>9QO9KUtH1^+uZiB4K4qr0O&0HH$i00000 diff --git a/.venv/lib/python3.9/site-packages/idna/__pycache__/core.cpython-39.pyc b/.venv/lib/python3.9/site-packages/idna/__pycache__/core.cpython-39.pyc deleted file mode 100644 index b620525f8dc7a0c0e41db2b29ee63ef2fcf88f37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20687 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 diff --git a/.venv/lib/python3.9/site-packages/idna/__pycache__/idnadata.cpython-39.pyc b/.venv/lib/python3.9/site-packages/idna/__pycache__/idnadata.cpython-39.pyc deleted file mode 100644 index e94bdb2504409b9d8c43dfc8751acdd38905e8b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22000 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 diff --git a/.venv/lib/python3.9/site-packages/idna/__pycache__/intranges.cpython-39.pyc b/.venv/lib/python3.9/site-packages/idna/__pycache__/intranges.cpython-39.pyc deleted file mode 100644 index 87ed5a2c2f4f35d05f6d714901c71723e799e283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1954 zcmZuy%WfMt6eVXyvLf4U9!_JoUa)Bw8o-qjXVunupbb(W3l~VTGFptsLrR)>#8F7f zj)M`ha0~P!vPhQwkp9GMyYeq|lb*}*BPmK@X!7#Dc+a_Xy1d+F7%P9p&%a+_>~Gq9 zI3jEw;ImUqlI<|bWl-=Pt^yUVF%_v$hQnZu$>>cWTeAIIw9`@{{p7-%Po1sz*kmIrZcBt zY}C{!tF%j9UTQLTVAnRI(S>r&%xZwRI3?RY~p`%S;!j77iSkNe`;nDW*35W&gx z#Y|c6>gHi;#Y=JOzME@*T$+58>$LC}ynhop371cl__O#vPk;g2?#Dsh zqEaMv+bB0PIzy4pM;j|3$$rFV|G?x}#g6%$kJvnrd>%UPf{GvG_mKU%H;<}F1~*tE z+h^u+#j9wI(M)n68?3VZz&w7j4p~UD=Hz#vK5tdQ+t5W-OM(rUIqBbE$H6=f#yGew0rsU9i&T~}b7);_uAi=Es$uYS_Nkq{mP zz=p81Y>d*T?xXs8FK6TtsZm0`Ofy#;L94V1z+BjQn3G&=-Gz9I(8dN75Viy|dB5wO zJ@M%^u5?yPCFu$_*Q4TsTBjTlTU+AJrl`mlQq-j*T{oK+%J#jtllK@W1g4=WZr5#F z8mDC4@^z@gLg~7lPN#5DFDEDxLMF{w%X^C3CV*+Z*cc|n6VSw`S$B&RtT{BfQ#H@) z$L`e@CA zL6PqbrbnovzSIA9U=iS(X`1b)z;2LBoeog-CW-#^sJ?c-ONOSL_#_t*+pb_@oeq!i zyUcq$;46Hcw*zwx@;Izp9+f)8^-Ty-Mt40Mw5HD!e+i2UkJUX8`3DB_1=}YAGJnT7 zFcisLKNEPVxk_7l4h25zU30%j!*SCDBwWr0ttks1@G=$@@IKAK12&}hE8I4pL0*v7 z``7PZho|wmxdBNNm5S~|15l|h0R0;Bvm{or#`PoAEiubvKpsE3J+(YN);^h6SWw$b zejLmL$KRsitKeNQ57EGUKQh}cY?^r$4Svjj3FZ-6IjZ0yWc%Das#4J6p%boOzZ$JZ{{m&G B@<;#x diff --git a/.venv/lib/python3.9/site-packages/idna/__pycache__/package_data.cpython-39.pyc b/.venv/lib/python3.9/site-packages/idna/__pycache__/package_data.cpython-39.pyc deleted file mode 100644 index 411e63460aa2a08dd6bc0ce1f0d4f772f9764191..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmYk0F$%&!5Jfj)5tMX#h!kd!Gzub~z{bvI*rzMlAgB z|M1{{7!d>`<}`VP`PAKK5C8HUY@Eq=A=#cuZ^y#HZ5T)M#WwW1G3O1|q>SeL&gy}y zed8@5GbKWzD7%Op(Sk*?pz&ZiVeLlTUNx_3lOhpB4eAC8l|a?n%;-2;0x65LN~9-o cL;@wXfFE%wtca?%^H-&j=K|OLqc3On0q3PUO8@`> diff --git a/.venv/lib/python3.9/site-packages/idna/__pycache__/uts46data.cpython-39.pyc b/.venv/lib/python3.9/site-packages/idna/__pycache__/uts46data.cpython-39.pyc deleted file mode 100644 index 41197ded945a14a8bbab5dd88d61a777b4826659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96264 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 bool: - """Return True if any label in ``s`` carries the ``xn--`` ACE prefix.""" - prefix = _alabel_prefix.decode("ascii") - return any(label.lower().startswith(prefix) for label in _unicode_dots_re.split(s)) - - -def _build_parser() -> argparse.ArgumentParser: - parser = argparse.ArgumentParser( - prog="python -m idna", - description=( - "Convert a domain name between its Unicode (U-label) and " - "ASCII-compatible (A-label) forms. With no mode flag, the " - "direction is chosen from the first input — if it contains " - "an xn-- label the stream is decoded, otherwise it is " - "encoded — and the same mode is applied to every remaining " - "input. UTS #46 mapping is applied by default; pass " - "--strict to disable it. When no domains are given on the " - "command line and stdin is piped, one domain per line is " - "read from stdin." - ), - ) - mode = parser.add_mutually_exclusive_group() - mode.add_argument( - "-e", - "--encode", - dest="mode", - action="store_const", - const="encode", - help="Encode the input to its ASCII A-label form.", - ) - mode.add_argument( - "-d", - "--decode", - dest="mode", - action="store_const", - const="decode", - help="Decode the input from its ASCII A-label form.", - ) - parser.add_argument( - "--strict", - action="store_true", - help="Disable the default UTS #46 mapping and apply IDNA 2008 rules verbatim.", - ) - parser.add_argument( - "--version", - action="version", - version=f"idna {__version__}", - ) - parser.add_argument( - "domain", - nargs="*", - help="One or more domain names to convert. Omit to read from stdin.", - ) - return parser - - -def _iter_stdin(stream: IO[str]) -> Iterable[str]: - """Yield non-empty stripped lines from ``stream``, ignoring blanks.""" - for line in stream: - stripped = line.strip() - if stripped: - yield stripped - - -def _convert_one(domain: str, mode: str, uts46: bool) -> bool: - """Convert ``domain`` and write the result; return ``False`` on failure.""" - try: - if mode == "decode": - print(decode(domain, uts46=uts46)) - else: - print(encode(domain, uts46=uts46).decode("ascii")) - except IDNAError as err: - print(f"idna: {mode} failed for {domain!r}: {err}", file=sys.stderr) - return False - return True - - -def main(argv: Optional[list[str]] = None) -> int: - """Entry point for ``python -m idna``. - - When more than one domain is supplied (via positional arguments or - piped stdin) and no mode flag is given, the first input determines - the direction and that mode is applied uniformly to the rest. - - :param argv: Argument list excluding the program name. Defaults to - :data:`sys.argv` when ``None``. - :returns: ``0`` on success, ``1`` if any conversion fails. - """ - parser = _build_parser() - args = parser.parse_args(argv) - uts46 = not args.strict - - if args.domain: - domains: Iterable[str] = args.domain - elif not sys.stdin.isatty(): - domains = _iter_stdin(sys.stdin) - else: - parser.error("a domain argument is required when stdin is a terminal") - - iterator = iter(domains) - first = next(iterator, None) - if first is None: - return 0 - - mode = args.mode or ("decode" if _looks_like_alabel(first) else "encode") - - results = [_convert_one(domain, mode, uts46) for domain in chain([first], iterator)] - return 0 if all(results) else 1 - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/.venv/lib/python3.9/site-packages/idna/codec.py b/.venv/lib/python3.9/site-packages/idna/codec.py deleted file mode 100644 index 83b42fe..0000000 --- a/.venv/lib/python3.9/site-packages/idna/codec.py +++ /dev/null @@ -1,159 +0,0 @@ -import codecs -from typing import Any, Optional - -from .core import IDNAError, _unicode_dots_re, alabel, decode, encode, ulabel - - -class Codec(codecs.Codec): - """Stateless IDNA 2008 codec. - - Implements the :class:`codecs.Codec` protocol so that the whole-domain - encoder (:func:`idna.encode`) and decoder (:func:`idna.decode`) are - accessible through the standard codec machinery as ``"idna2008"``. - - Only the ``"strict"`` error handler is supported; any other handler - raises :exc:`~idna.IDNAError`. - """ - - def encode(self, data: str, errors: str = "strict") -> tuple[bytes, int]: # ty: ignore[invalid-method-override] - if errors != "strict": - raise IDNAError(f'Unsupported error handling "{errors}"') - - if not data: - return b"", 0 - - return encode(data), len(data) - - def decode(self, data: bytes, errors: str = "strict") -> tuple[str, int]: # ty: ignore[invalid-method-override] - if errors != "strict": - raise IDNAError(f'Unsupported error handling "{errors}"') - - if not data: - return "", 0 - - return decode(data), len(data) - - -class IncrementalEncoder(codecs.BufferedIncrementalEncoder): - """Incremental IDNA 2008 encoder. - - Buffers a partial trailing label across calls until either the next - label separator is seen or ``final=True``, so that streamed input is - encoded one whole label at a time. Any of the four Unicode label - separators (``U+002E``, ``U+3002``, ``U+FF0E``, ``U+FF61``) ends a - label; the result always uses ``U+002E`` as the separator. - - Only the ``"strict"`` error handler is supported. - """ - - def _buffer_encode(self, data: str, errors: str, final: bool) -> tuple[bytes, int]: # ty: ignore[invalid-method-override] - if errors != "strict": - raise IDNAError(f'Unsupported error handling "{errors}"') - - if not data: - return b"", 0 - - labels = _unicode_dots_re.split(data) - trailing_dot = b"" - if labels: - if not labels[-1]: - trailing_dot = b"." - del labels[-1] - elif not final: - # Keep potentially unfinished label until the next call - del labels[-1] - if labels: - trailing_dot = b"." - - result = [] - size = 0 - for label in labels: - result.append(alabel(label)) - if size: - size += 1 - size += len(label) - - # Join with U+002E - result_bytes = b".".join(result) + trailing_dot - size += len(trailing_dot) - return result_bytes, size - - -class IncrementalDecoder(codecs.BufferedIncrementalDecoder): - """Incremental IDNA 2008 decoder. - - Buffers a partial trailing label across calls until either the next - label separator is seen or ``final=True``, so that streamed input is - decoded one whole label at a time. - - Only the ``"strict"`` error handler is supported. - """ - - def _buffer_decode(self, data: Any, errors: str, final: bool) -> tuple[str, int]: # ty: ignore[invalid-method-override] - if errors != "strict": - raise IDNAError(f'Unsupported error handling "{errors}"') - - if not data: - return ("", 0) - - if not isinstance(data, str): - data = str(data, "ascii") - - labels = _unicode_dots_re.split(data) - trailing_dot = "" - if labels: - if not labels[-1]: - trailing_dot = "." - del labels[-1] - elif not final: - # Keep potentially unfinished label until the next call - del labels[-1] - if labels: - trailing_dot = "." - - result = [] - size = 0 - for label in labels: - result.append(ulabel(label)) - if size: - size += 1 - size += len(label) - - result_str = ".".join(result) + trailing_dot - size += len(trailing_dot) - return (result_str, size) - - -class StreamWriter(Codec, codecs.StreamWriter): - pass - - -class StreamReader(Codec, codecs.StreamReader): - pass - - -def search_function(name: str) -> Optional[codecs.CodecInfo]: - """Codec search function registered with :mod:`codecs`. - - Returns a :class:`codecs.CodecInfo` for the ``"idna2008"`` codec name - so that ``str.encode("idna2008")`` and ``bytes.decode("idna2008")`` - invoke the IDNA 2008 codec defined in this module. - - :param name: The codec name being looked up. - :returns: A :class:`codecs.CodecInfo` instance if ``name`` is - ``"idna2008"``, otherwise ``None``. - """ - if name != "idna2008": - return None - return codecs.CodecInfo( - name=name, - encode=Codec().encode, - decode=Codec().decode, # type: ignore - incrementalencoder=IncrementalEncoder, - incrementaldecoder=IncrementalDecoder, - streamwriter=StreamWriter, - streamreader=StreamReader, - ) - - -codecs.register(search_function) diff --git a/.venv/lib/python3.9/site-packages/idna/compat.py b/.venv/lib/python3.9/site-packages/idna/compat.py deleted file mode 100644 index 1d01e3d..0000000 --- a/.venv/lib/python3.9/site-packages/idna/compat.py +++ /dev/null @@ -1,41 +0,0 @@ -from typing import Any, Union - -from .core import decode, encode - - -def ToASCII(label: str) -> bytes: - """Compatibility shim for :rfc:`3490` ``ToASCII``. - - Delegates to :func:`idna.encode` (IDNA 2008). Provided to ease porting - of code written against the legacy :mod:`encodings.idna` API; new code - should call :func:`idna.encode` directly. - - :param label: The label or domain to encode. - :returns: The encoded form as ASCII :class:`bytes`. - """ - return encode(label) - - -def ToUnicode(label: Union[bytes, bytearray]) -> str: - """Compatibility shim for :rfc:`3490` ``ToUnicode``. - - Delegates to :func:`idna.decode` (IDNA 2008). Provided to ease porting - of code written against the legacy :mod:`encodings.idna` API; new code - should call :func:`idna.decode` directly. - - :param label: The label or domain to decode. - :returns: The decoded Unicode form. - """ - return decode(label) - - -def nameprep(s: Any) -> None: - """Stub for :rfc:`3491` Nameprep, which is not used by IDNA 2008. - - IDNA 2008 (:rfc:`5891`) replaces Nameprep with the per-codepoint - validity classes from :rfc:`5892`; this function exists only to - return a clear error if legacy code attempts to call it. - - :raises NotImplementedError: Always. - """ - raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol") diff --git a/.venv/lib/python3.9/site-packages/idna/core.py b/.venv/lib/python3.9/site-packages/idna/core.py deleted file mode 100644 index 1ccbd1f..0000000 --- a/.venv/lib/python3.9/site-packages/idna/core.py +++ /dev/null @@ -1,648 +0,0 @@ -import bisect -import re -import unicodedata -import warnings -from typing import Optional, Union - -from . import idnadata -from .intranges import intranges_contain - -_virama_combining_class = 9 -_alabel_prefix = b"xn--" -_max_input_length = 1024 -_unicode_dots_re = re.compile("[\u002e\u3002\uff0e\uff61]") - - -# Bidi category sets from RFC 5893, hoisted out of the per-codepoint loop -_bidi_rtl_first = frozenset({"R", "AL"}) -_bidi_rtl_categories = frozenset({"R", "AL", "AN"}) -_bidi_rtl_allowed = frozenset({"R", "AL", "AN", "EN", "ES", "CS", "ET", "ON", "BN", "NSM"}) -_bidi_rtl_valid_ending = frozenset({"R", "AL", "EN", "AN"}) -_bidi_rtl_numeric = frozenset({"AN", "EN"}) -_bidi_ltr_allowed = frozenset({"L", "EN", "ES", "CS", "ET", "ON", "BN", "NSM"}) -_bidi_ltr_valid_ending = frozenset({"L", "EN"}) -_bidi_joiner_l_or_d = frozenset({"L", "D"}) -_bidi_joiner_r_or_d = frozenset({"R", "D"}) - - -def _joining_type(cp: int) -> Optional[str]: - for jt, ranges in idnadata.joining_types.items(): - if intranges_contain(cp, ranges): - return jt - return None - - -class IDNAError(UnicodeError): - """Base exception for all IDNA-encoding related problems""" - - -class IDNABidiError(IDNAError): - """Exception when bidirectional requirements are not satisfied""" - - -class InvalidCodepoint(IDNAError): - """Exception when a disallowed or unallocated codepoint is used""" - - -class InvalidCodepointContext(IDNAError): - """Exception when the codepoint is not valid in the context it is used""" - - -def _combining_class(cp: int) -> int: - v = unicodedata.combining(chr(cp)) - if v == 0 and not unicodedata.name(chr(cp)): - raise ValueError("Unknown character in unicodedata") - return v - - -def _is_script(cp: str, script: str) -> bool: - return intranges_contain(ord(cp), idnadata.scripts[script]) - - -def _punycode(s: str) -> bytes: - return s.encode("punycode") - - -def _unot(s: int) -> str: - return f"U+{s:04X}" - - -def valid_label_length(label: Union[bytes, str]) -> bool: - """Check that a label does not exceed the maximum permitted length. - - Per :rfc:`1035` (and :rfc:`5891` §4.2.4) a DNS label must not exceed - 63 octets. The argument may be either a :class:`str` (a U-label, where - length is measured in characters) or :class:`bytes` (an A-label, where - length is measured in octets). - - :param label: The label to check. - :returns: ``True`` if the label is within the length limit, otherwise - ``False``. - """ - return len(label) <= 63 - - -def valid_string_length(domain: Union[bytes, str], trailing_dot: bool) -> bool: - """Check that a full domain name does not exceed the maximum length. - - Per :rfc:`1035`, a domain name is limited to 253 octets when no trailing - dot is present, or 254 octets when one is included. - - :param domain: The full (possibly multi-label) domain name. - :param trailing_dot: ``True`` if ``domain`` includes a trailing ``.``. - :returns: ``True`` if the domain is within the length limit, otherwise - ``False``. - """ - return len(domain) <= (254 if trailing_dot else 253) - - -def check_bidi(label: str, check_ltr: bool = False) -> bool: - """Validate the Bidi Rule from :rfc:`5893` for a single label. - - The Bidi Rule constrains how bidirectional characters (Hebrew, Arabic, - etc.) may appear within a label. By default the check is only applied - when the label contains at least one right-to-left character (Unicode - bidirectional categories ``R``, ``AL``, or ``AN``); set ``check_ltr`` - to ``True`` to apply it to LTR-only labels as well. - - :param label: The label to validate, as a Unicode string. - :param check_ltr: If ``True``, apply the rules even when the label - contains no RTL characters. - :returns: ``True`` if the label satisfies the Bidi Rule. - :raises IDNABidiError: If any of Bidi Rule conditions 1-6 are violated, - or if the directional category of a codepoint cannot be determined. - """ - if len(label) > _max_input_length: - raise IDNAError("Label too long") - # Bidi rules should only be applied if string contains RTL characters - bidi_label = False - for idx, cp in enumerate(label, 1): - direction = unicodedata.bidirectional(cp) - if direction == "": - # String likely comes from a newer version of Unicode - raise IDNABidiError(f"Unknown directionality in label {label!r} at position {idx}") - if direction in _bidi_rtl_categories: - bidi_label = True - if not bidi_label and not check_ltr: - return True - - # Bidi rule 1 - direction = unicodedata.bidirectional(label[0]) - if direction in _bidi_rtl_first: - rtl = True - elif direction == "L": - rtl = False - else: - raise IDNABidiError(f"First codepoint in label {label!r} must be directionality L, R or AL") - - valid_ending = False - number_type: Optional[str] = None - for idx, cp in enumerate(label, 1): - direction = unicodedata.bidirectional(cp) - - if rtl: - # Bidi rule 2 - if direction not in _bidi_rtl_allowed: - raise IDNABidiError(f"Invalid direction for codepoint at position {idx} in a right-to-left label") - # Bidi rule 3 - if direction in _bidi_rtl_valid_ending: - valid_ending = True - elif direction != "NSM": - valid_ending = False - # Bidi rule 4 - if direction in _bidi_rtl_numeric: - if not number_type: - number_type = direction - elif number_type != direction: - raise IDNABidiError("Can not mix numeral types in a right-to-left label") - else: - # Bidi rule 5 - if direction not in _bidi_ltr_allowed: - raise IDNABidiError(f"Invalid direction for codepoint at position {idx} in a left-to-right label") - # Bidi rule 6 - if direction in _bidi_ltr_valid_ending: - valid_ending = True - elif direction != "NSM": - valid_ending = False - - if not valid_ending: - raise IDNABidiError("Label ends with illegal codepoint directionality") - - return True - - -def check_initial_combiner(label: str) -> bool: - """Reject labels that begin with a combining mark. - - Per :rfc:`5891` §4.2.3.2 a label must not start with a character of - Unicode general category ``M`` (Mark). - - :param label: The label to check. - :returns: ``True`` if the first character is not a combining mark. - :raises IDNAError: If the label begins with a combining character. - """ - if unicodedata.category(label[0])[0] == "M": - raise IDNAError("Label begins with an illegal combining character") - return True - - -def check_hyphen_ok(label: str) -> bool: - """Validate the hyphen restrictions for a label. - - Per :rfc:`5891` §4.2.3.1 a label must not start or end with a hyphen - (``U+002D``), and must not have hyphens in both the third and fourth - positions (the prefix reserved for A-labels). - - :param label: The label to check. - :returns: ``True`` if the hyphen restrictions are satisfied. - :raises IDNAError: If any of the hyphen restrictions are violated. - """ - if label[2:4] == "--": - raise IDNAError("Label has disallowed hyphens in 3rd and 4th position") - if label[0] == "-" or label[-1] == "-": - raise IDNAError("Label must not start or end with a hyphen") - return True - - -def check_nfc(label: str) -> None: - """Require that a label is in Unicode Normalization Form C. - - :param label: The label to check. - :raises IDNAError: If ``label`` differs from its NFC normalisation. - """ - if len(label) > _max_input_length: - raise IDNAError("Label too long") - if unicodedata.normalize("NFC", label) != label: - raise IDNAError("Label must be in Normalization Form C") - - -def valid_contextj(label: str, pos: int) -> bool: - """Validate the CONTEXTJ rules from :rfc:`5892` Appendix A. - - These rules govern the contextual use of the joiner codepoints - ``U+200C`` (ZERO WIDTH NON-JOINER, Appendix A.1) and ``U+200D`` - (ZERO WIDTH JOINER, Appendix A.2) within a label. - - :param label: The label containing the codepoint. - :param pos: Index of the joiner codepoint within ``label``. - :returns: ``True`` if the codepoint at ``pos`` satisfies its CONTEXTJ - rule, ``False`` otherwise (including when the codepoint at - ``pos`` is not a recognised joiner). - :raises ValueError: If an adjacent codepoint has no Unicode name when - determining its combining class. - :raises IDNAError: If ``label`` exceeds the defensive input length limit. - """ - if len(label) > _max_input_length: - raise IDNAError("Label too long") - cp_value = ord(label[pos]) - - if cp_value == 0x200C: - if pos > 0 and _combining_class(ord(label[pos - 1])) == _virama_combining_class: - return True - - ok = False - for i in range(pos - 1, -1, -1): - joining_type = _joining_type(ord(label[i])) - if joining_type == "T": - continue - if joining_type in _bidi_joiner_l_or_d: - ok = True - break - break - - if not ok: - return False - - ok = False - for i in range(pos + 1, len(label)): - joining_type = _joining_type(ord(label[i])) - if joining_type == "T": - continue - if joining_type in _bidi_joiner_r_or_d: - ok = True - break - break - return ok - - if cp_value == 0x200D: - return pos > 0 and _combining_class(ord(label[pos - 1])) == _virama_combining_class - - return False - - -def valid_contexto(label: str, pos: int, exception: bool = False) -> bool: - """Validate the CONTEXTO rules from :rfc:`5892` Appendix A. - - Covers the contextual rules for codepoints such as MIDDLE DOT - (``U+00B7``), Greek lower numeral sign, Hebrew punctuation, Katakana - middle dot, and the Arabic-Indic / Extended Arabic-Indic digit ranges. - - :param label: The label containing the codepoint. - :param pos: Index of the codepoint within ``label``. - :param exception: Reserved for forward compatibility; currently unused. - :returns: ``True`` if the codepoint at ``pos`` satisfies its CONTEXTO - rule, ``False`` otherwise (including when the codepoint is not a - recognised CONTEXTO codepoint). - :raises IDNAError: If ``label`` exceeds the defensive input length limit. - """ - if len(label) > _max_input_length: - raise IDNAError("Label too long") - cp_value = ord(label[pos]) - - if cp_value == 0x00B7: - return 0 < pos < len(label) - 1 and ord(label[pos - 1]) == 0x006C and ord(label[pos + 1]) == 0x006C - - if cp_value == 0x0375: - if pos < len(label) - 1 and len(label) > 1: - return _is_script(label[pos + 1], "Greek") - return False - - if cp_value in {0x05F3, 0x05F4}: - if pos > 0: - return _is_script(label[pos - 1], "Hebrew") - return False - - if cp_value == 0x30FB: - for cp in label: - if cp == "\u30fb": - continue - if _is_script(cp, "Hiragana") or _is_script(cp, "Katakana") or _is_script(cp, "Han"): - return True - return False - - if 0x660 <= cp_value <= 0x669: - return not any(0x6F0 <= ord(cp) <= 0x06F9 for cp in label) - - if 0x6F0 <= cp_value <= 0x6F9: - return not any(0x660 <= ord(cp) <= 0x0669 for cp in label) - - return False - - -def check_label(label: Union[str, bytes, bytearray]) -> None: - """Run the full set of IDNA 2008 validity checks on a single label. - - Applies, in order: NFC normalisation (:func:`check_nfc`), hyphen - restrictions (:func:`check_hyphen_ok`), the no-leading-combiner rule - (:func:`check_initial_combiner`), per-codepoint validity (PVALID, - CONTEXTJ, CONTEXTO classes from :rfc:`5892`), and the Bidi Rule - (:func:`check_bidi`). - - :param label: The label to validate. ``bytes`` or ``bytearray`` input - is decoded as UTF-8 first. - :raises IDNAError: If the label is empty or fails a structural rule. - :raises InvalidCodepoint: If the label contains a DISALLOWED or - UNASSIGNED codepoint. - :raises InvalidCodepointContext: If a CONTEXTJ or CONTEXTO codepoint - is not valid in its context. - :raises IDNABidiError: If the Bidi Rule is violated. - """ - if len(label) > _max_input_length: - raise IDNAError("Label too long") - if isinstance(label, (bytes, bytearray)): - label = label.decode("utf-8") - if len(label) == 0: - raise IDNAError("Empty Label") - - # Reject on domain length rather than label length so support some UTS 46 - # use cases, still reducing processing of label contextual rules - if not valid_string_length(label, trailing_dot=True): - raise IDNAError("Label too long") - - check_nfc(label) - check_hyphen_ok(label) - check_initial_combiner(label) - - for pos, cp in enumerate(label): - cp_value = ord(cp) - if intranges_contain(cp_value, idnadata.codepoint_classes["PVALID"]): - continue - if intranges_contain(cp_value, idnadata.codepoint_classes["CONTEXTJ"]): - try: - if not valid_contextj(label, pos): - raise InvalidCodepointContext(f"Joiner {_unot(cp_value)} not allowed at position {pos + 1} in {label!r}") - except ValueError as err: - raise IDNAError( - f"Unknown codepoint adjacent to joiner {_unot(cp_value)} at position {pos + 1} in {label!r}" - ) from err - elif intranges_contain(cp_value, idnadata.codepoint_classes["CONTEXTO"]): - if not valid_contexto(label, pos): - raise InvalidCodepointContext(f"Codepoint {_unot(cp_value)} not allowed at position {pos + 1} in {label!r}") - else: - raise InvalidCodepoint(f"Codepoint {_unot(cp_value)} at position {pos + 1} of {label!r} not allowed") - - check_bidi(label) - - -def alabel(label: str) -> bytes: - """Convert a single U-label into its A-label form. - - The result is the ASCII-Compatible Encoding (ACE) form per :rfc:`5891` - §4: the label is validated, Punycode-encoded, and prefixed with - ``xn--``. Pure ASCII labels that are already valid IDNA labels are - returned unchanged (as :class:`bytes`). - - :param label: The label to convert, as a Unicode string. - :returns: The A-label as ASCII-encoded :class:`bytes`. - :raises IDNAError: If the label is invalid or the resulting A-label - exceeds 63 octets. - """ - if len(label) > _max_input_length: - raise IDNAError("Label too long") - try: - label_bytes = label.encode("ascii") - except UnicodeEncodeError: - pass - else: - ulabel(label_bytes) - if not valid_label_length(label_bytes): - raise IDNAError("Label too long") - return label_bytes - - check_label(label) - label_bytes = _alabel_prefix + _punycode(label) - - if not valid_label_length(label_bytes): - raise IDNAError("Label too long") - - return label_bytes - - -def ulabel(label: Union[str, bytes, bytearray]) -> str: - """Convert a single A-label into its U-label form. - - Performs the inverse of :func:`alabel`: an ``xn--``-prefixed label is - Punycode-decoded and validated. Labels that are already Unicode (or - plain ASCII without the ACE prefix) are validated and returned as a - Unicode string. - - :param label: The label to convert. ``bytes`` or ``bytearray`` input - is treated as ASCII. - :returns: The U-label as a Unicode string. - :raises IDNAError: If the label is malformed or fails validation. - """ - if len(label) > _max_input_length: - raise IDNAError("Label too long") - if not isinstance(label, (bytes, bytearray)): - try: - label_bytes = label.encode("ascii") - except UnicodeEncodeError: - check_label(label) - return label - else: - label_bytes = bytes(label) - - label_bytes = label_bytes.lower() - if label_bytes.startswith(_alabel_prefix): - label_bytes = label_bytes[len(_alabel_prefix) :] - if not label_bytes: - raise IDNAError("Malformed A-label, no Punycode eligible content found") - if label_bytes.endswith(b"-"): - raise IDNAError("A-label must not end with a hyphen") - else: - check_label(label_bytes) - return label_bytes.decode("ascii") - - try: - label = label_bytes.decode("punycode") - except UnicodeError as err: - raise IDNAError("Invalid A-label") from err - check_label(label) - return label - - -def uts46_remap(domain: str, std3_rules: bool = True, transitional: bool = False) -> str: - """Apply the UTS #46 character mapping to a domain string. - - Implements the mapping table from `UTS #46 §4 - `_: each character is kept, - replaced, or rejected based on its status (``V``, ``M``, ``D``, ``3``, - ``I``). The result is returned in Normalisation Form C. - - :param domain: The full domain name to remap. - :param std3_rules: If ``True``, apply the stricter STD3 ASCII rules - (status ``3`` codepoints raise instead of being kept or mapped). - :param transitional: If ``True``, use transitional processing (status - ``D`` codepoints are mapped instead of kept). Transitional - processing has been removed from UTS #46 and this option is - retained only for backwards compatibility. - :returns: The remapped domain, in Normalisation Form C. - :raises InvalidCodepoint: If the domain contains a disallowed - codepoint under the chosen rules. - :raises IDNAError: If ``domain`` exceeds the defensive input length limit. - """ - if len(domain) > _max_input_length: - raise IDNAError("Domain too long") - from .uts46data import uts46_replacements, uts46_starts, uts46_statuses - - output = "" - - for pos, char in enumerate(domain): - code_point = ord(char) - i = code_point if code_point < 256 else bisect.bisect_right(uts46_starts, code_point) - 1 - status = chr(uts46_statuses[i]) - replacement: Optional[str] = uts46_replacements[i] - - # UTS #46 §4: V is always valid, D is deviation (kept unless transitional), - # 3 is disallowed-STD3 (kept unmapped if std3_rules is off and no mapping). - keep_as_is = ( - status == "V" or (status == "D" and not transitional) or (status == "3" and not std3_rules and replacement is None) - ) - # M is mapped, 3-with-replacement and transitional D fall through to the - # same replacement output path. - use_replacement = replacement is not None and ( - status == "M" or (status == "3" and not std3_rules) or (status == "D" and transitional) - ) - - if keep_as_is: - output += char - elif use_replacement: - assert replacement is not None # narrowed by use_replacement - output += replacement - elif status == "I": - continue - else: - raise InvalidCodepoint(f"Codepoint {_unot(code_point)} not allowed at position {pos + 1} in {domain!r}") - - return unicodedata.normalize("NFC", output) - - -def encode( - s: Union[str, bytes, bytearray], - strict: bool = False, - uts46: bool = False, - std3_rules: bool = False, - transitional: bool = False, -) -> bytes: - """Encode a Unicode domain name into its ASCII (A-label) form. - - Splits the input on label separators (only ``U+002E`` if ``strict`` is - set; otherwise also IDEOGRAPHIC FULL STOP ``U+3002``, FULLWIDTH FULL - STOP ``U+FF0E``, and HALFWIDTH IDEOGRAPHIC FULL STOP ``U+FF61``), - encodes each label with :func:`alabel`, and rejoins them with ``.``. - Optionally pre-processes the input through :func:`uts46_remap`. - - :param s: The domain name to encode. - :param strict: If ``True``, only ``U+002E`` is recognised as a label - separator. - :param uts46: If ``True``, apply UTS #46 mapping before encoding. - :param std3_rules: Forwarded to :func:`uts46_remap` when ``uts46`` is - ``True``. - :param transitional: Forwarded to :func:`uts46_remap` when ``uts46`` - is ``True``. Deprecated: emits a :class:`DeprecationWarning` and - will be removed in a future version. - :returns: The encoded domain as ASCII :class:`bytes`. - :raises IDNAError: If the domain is empty, contains an invalid label, - or exceeds the maximum domain length. - """ - if transitional: - warnings.warn( - "Transitional processing has been removed from UTS #46. " - "The transitional argument will be removed in a future version.", - DeprecationWarning, - stacklevel=2, - ) - if not isinstance(s, str): - try: - s = str(s, "ascii") - except (UnicodeDecodeError, TypeError) as err: - raise IDNAError("should pass a unicode string to the function rather than a byte string.") from err - if len(s) > _max_input_length: - raise IDNAError("Domain too long") - if uts46: - s = uts46_remap(s, std3_rules, transitional) - - # Reject inputs that exceed the maximum DNS domain length up-front - # to avoid expensive computation on long inputs. - if not valid_string_length(s, trailing_dot=True): - raise IDNAError("Domain too long") - - trailing_dot = False - result = [] - labels = s.split(".") if strict else _unicode_dots_re.split(s) - if not labels or labels == [""]: - raise IDNAError("Empty domain") - if labels[-1] == "": - del labels[-1] - trailing_dot = True - for label in labels: - s = alabel(label) - if s: - result.append(s) - else: - raise IDNAError("Empty label") - if trailing_dot: - result.append(b"") - s = b".".join(result) - if not valid_string_length(s, trailing_dot): - raise IDNAError("Domain too long") - return s - - -def decode( - s: Union[str, bytes, bytearray], - strict: bool = False, - uts46: bool = False, - std3_rules: bool = False, - display: bool = False, -) -> str: - """Decode an A-label-encoded domain name back to Unicode. - - Splits the input on label separators (see :func:`encode` for the - rules), decodes each label with :func:`ulabel`, and rejoins them - with ``.``. Optionally pre-processes the input through - :func:`uts46_remap`. - - :param s: The domain name to decode. - :param strict: If ``True``, only ``U+002E`` is recognised as a label - separator. - :param uts46: If ``True``, apply UTS #46 mapping before decoding. - :param std3_rules: Forwarded to :func:`uts46_remap` when ``uts46`` is - ``True``. - :param display: If ``True``, any ``xn--`` label that fails IDNA - validation is passed through unchanged (lowercased) rather than - aborting the whole call. Intended for "decode for display" - consumers (e.g. URL libraries, HTTP clients) that want to show - the user the label as it appears on the wire when it cannot be - rendered as Unicode. Matches the per-label recovery prescribed - by UTS #46 §4 and the WHATWG URL "domain to Unicode" algorithm. - :returns: The decoded domain as a Unicode string. - :raises IDNAError: If the input is not valid ASCII, contains an - invalid label, or is empty. - """ - if not isinstance(s, str): - try: - s = str(s, "ascii") - except (UnicodeDecodeError, TypeError) as err: - raise IDNAError("Invalid ASCII in A-label") from err - if len(s) > _max_input_length: - raise IDNAError("Domain too long") - if uts46: - s = uts46_remap(s, std3_rules, False) - # Reject inputs that exceed the maximum DNS domain length up-front - # to avoid expensive computation on long inputs. - if not valid_string_length(s, trailing_dot=True): - raise IDNAError("Domain too long") - trailing_dot = False - result = [] - labels = s.split(".") if strict else _unicode_dots_re.split(s) - if not labels or labels == [""]: - raise IDNAError("Empty domain") - if not labels[-1]: - del labels[-1] - trailing_dot = True - for label in labels: - try: - u = ulabel(label) - except IDNAError: - if display and label[:4].lower() == "xn--": - u = label.lower() - else: - raise - if u: - result.append(u) - else: - raise IDNAError("Empty label") - if trailing_dot: - result.append("") - return ".".join(result) diff --git a/.venv/lib/python3.9/site-packages/idna/idnadata.py b/.venv/lib/python3.9/site-packages/idna/idnadata.py deleted file mode 100644 index f2ab388..0000000 --- a/.venv/lib/python3.9/site-packages/idna/idnadata.py +++ /dev/null @@ -1,1897 +0,0 @@ -# This file is automatically generated by tools/idna-data - -__version__ = "17.0.0" - -scripts = { - "Greek": ( - 0x37000000374, - 0x37500000378, - 0x37A0000037E, - 0x37F00000380, - 0x38400000385, - 0x38600000387, - 0x3880000038B, - 0x38C0000038D, - 0x38E000003A2, - 0x3A3000003E2, - 0x3F000000400, - 0x1D2600001D2B, - 0x1D5D00001D62, - 0x1D6600001D6B, - 0x1DBF00001DC0, - 0x1F0000001F16, - 0x1F1800001F1E, - 0x1F2000001F46, - 0x1F4800001F4E, - 0x1F5000001F58, - 0x1F5900001F5A, - 0x1F5B00001F5C, - 0x1F5D00001F5E, - 0x1F5F00001F7E, - 0x1F8000001FB5, - 0x1FB600001FC5, - 0x1FC600001FD4, - 0x1FD600001FDC, - 0x1FDD00001FF0, - 0x1FF200001FF5, - 0x1FF600001FFF, - 0x212600002127, - 0xAB650000AB66, - 0x101400001018F, - 0x101A0000101A1, - 0x1D2000001D246, - ), - "Han": ( - 0x2E8000002E9A, - 0x2E9B00002EF4, - 0x2F0000002FD6, - 0x300500003006, - 0x300700003008, - 0x30210000302A, - 0x30380000303C, - 0x340000004DC0, - 0x4E000000A000, - 0xF9000000FA6E, - 0xFA700000FADA, - 0x16FE200016FE4, - 0x16FF000016FF7, - 0x200000002A6E0, - 0x2A7000002B81E, - 0x2B8200002CEAE, - 0x2CEB00002EBE1, - 0x2EBF00002EE5E, - 0x2F8000002FA1E, - 0x300000003134B, - 0x313500003347A, - ), - "Hebrew": ( - 0x591000005C8, - 0x5D0000005EB, - 0x5EF000005F5, - 0xFB1D0000FB37, - 0xFB380000FB3D, - 0xFB3E0000FB3F, - 0xFB400000FB42, - 0xFB430000FB45, - 0xFB460000FB50, - ), - "Hiragana": ( - 0x304100003097, - 0x309D000030A0, - 0x1B0010001B120, - 0x1B1320001B133, - 0x1B1500001B153, - 0x1F2000001F201, - ), - "Katakana": ( - 0x30A1000030FB, - 0x30FD00003100, - 0x31F000003200, - 0x32D0000032FF, - 0x330000003358, - 0xFF660000FF70, - 0xFF710000FF9E, - 0x1AFF00001AFF4, - 0x1AFF50001AFFC, - 0x1AFFD0001AFFF, - 0x1B0000001B001, - 0x1B1200001B123, - 0x1B1550001B156, - 0x1B1640001B168, - ), -} - - -joining_types = { - "C": ( - 0x64000000641, - 0x7FA000007FB, - 0x88300000886, - 0x180A0000180B, - 0x200D0000200E, - ), - "D": ( - 0x62000000621, - 0x62600000627, - 0x62800000629, - 0x62A0000062F, - 0x63300000640, - 0x64100000648, - 0x6490000064B, - 0x66E00000670, - 0x67800000688, - 0x69A000006C0, - 0x6C1000006C3, - 0x6CC000006CD, - 0x6CE000006CF, - 0x6D0000006D2, - 0x6FA000006FD, - 0x6FF00000700, - 0x71200000715, - 0x71A0000071E, - 0x71F00000728, - 0x7290000072A, - 0x72B0000072C, - 0x72D0000072F, - 0x74E00000759, - 0x75C0000076B, - 0x76D00000771, - 0x77200000773, - 0x77500000778, - 0x77A00000780, - 0x7CA000007EB, - 0x84100000846, - 0x84800000849, - 0x84A00000854, - 0x85500000856, - 0x86000000861, - 0x86200000866, - 0x86800000869, - 0x88600000887, - 0x8890000088E, - 0x88F00000890, - 0x8A0000008AA, - 0x8AF000008B1, - 0x8B3000008B9, - 0x8BA000008C9, - 0x180700001808, - 0x182000001879, - 0x1887000018A9, - 0x18AA000018AB, - 0xA8400000A872, - 0x10AC000010AC5, - 0x10AD300010AD7, - 0x10AD800010ADD, - 0x10ADE00010AE1, - 0x10AEB00010AEF, - 0x10B8000010B81, - 0x10B8200010B83, - 0x10B8600010B89, - 0x10B8A00010B8C, - 0x10B8D00010B8E, - 0x10B9000010B91, - 0x10BAD00010BAF, - 0x10D0100010D22, - 0x10D2300010D24, - 0x10EC300010EC5, - 0x10EC600010EC8, - 0x10F3000010F33, - 0x10F3400010F45, - 0x10F5100010F54, - 0x10F7000010F74, - 0x10F7600010F82, - 0x10FB000010FB1, - 0x10FB200010FB4, - 0x10FB800010FB9, - 0x10FBB00010FBD, - 0x10FBE00010FC0, - 0x10FC100010FC2, - 0x10FC400010FC5, - 0x10FCA00010FCB, - 0x1E9000001E944, - ), - "L": ( - 0xA8720000A873, - 0x10ACD00010ACE, - 0x10AD700010AD8, - 0x10D0000010D01, - 0x10FCB00010FCC, - ), - "R": ( - 0x62200000626, - 0x62700000628, - 0x6290000062A, - 0x62F00000633, - 0x64800000649, - 0x67100000674, - 0x67500000678, - 0x6880000069A, - 0x6C0000006C1, - 0x6C3000006CC, - 0x6CD000006CE, - 0x6CF000006D0, - 0x6D2000006D4, - 0x6D5000006D6, - 0x6EE000006F0, - 0x71000000711, - 0x7150000071A, - 0x71E0000071F, - 0x72800000729, - 0x72A0000072B, - 0x72C0000072D, - 0x72F00000730, - 0x74D0000074E, - 0x7590000075C, - 0x76B0000076D, - 0x77100000772, - 0x77300000775, - 0x7780000077A, - 0x84000000841, - 0x84600000848, - 0x8490000084A, - 0x85400000855, - 0x85600000859, - 0x86700000868, - 0x8690000086B, - 0x87000000883, - 0x88E0000088F, - 0x8AA000008AD, - 0x8AE000008AF, - 0x8B1000008B3, - 0x8B9000008BA, - 0x10AC500010AC6, - 0x10AC700010AC8, - 0x10AC900010ACB, - 0x10ACE00010AD3, - 0x10ADD00010ADE, - 0x10AE100010AE2, - 0x10AE400010AE5, - 0x10AEF00010AF0, - 0x10B8100010B82, - 0x10B8300010B86, - 0x10B8900010B8A, - 0x10B8C00010B8D, - 0x10B8E00010B90, - 0x10B9100010B92, - 0x10BA900010BAD, - 0x10D2200010D23, - 0x10EC200010EC3, - 0x10F3300010F34, - 0x10F5400010F55, - 0x10F7400010F76, - 0x10FB400010FB7, - 0x10FB900010FBB, - 0x10FBD00010FBE, - 0x10FC200010FC4, - 0x10FC900010FCA, - ), - "T": ( - 0xAD000000AE, - 0x30000000370, - 0x4830000048A, - 0x591000005BE, - 0x5BF000005C0, - 0x5C1000005C3, - 0x5C4000005C6, - 0x5C7000005C8, - 0x6100000061B, - 0x61C0000061D, - 0x64B00000660, - 0x67000000671, - 0x6D6000006DD, - 0x6DF000006E5, - 0x6E7000006E9, - 0x6EA000006EE, - 0x70F00000710, - 0x71100000712, - 0x7300000074B, - 0x7A6000007B1, - 0x7EB000007F4, - 0x7FD000007FE, - 0x8160000081A, - 0x81B00000824, - 0x82500000828, - 0x8290000082E, - 0x8590000085C, - 0x897000008A0, - 0x8CA000008E2, - 0x8E300000903, - 0x93A0000093B, - 0x93C0000093D, - 0x94100000949, - 0x94D0000094E, - 0x95100000958, - 0x96200000964, - 0x98100000982, - 0x9BC000009BD, - 0x9C1000009C5, - 0x9CD000009CE, - 0x9E2000009E4, - 0x9FE000009FF, - 0xA0100000A03, - 0xA3C00000A3D, - 0xA4100000A43, - 0xA4700000A49, - 0xA4B00000A4E, - 0xA5100000A52, - 0xA7000000A72, - 0xA7500000A76, - 0xA8100000A83, - 0xABC00000ABD, - 0xAC100000AC6, - 0xAC700000AC9, - 0xACD00000ACE, - 0xAE200000AE4, - 0xAFA00000B00, - 0xB0100000B02, - 0xB3C00000B3D, - 0xB3F00000B40, - 0xB4100000B45, - 0xB4D00000B4E, - 0xB5500000B57, - 0xB6200000B64, - 0xB8200000B83, - 0xBC000000BC1, - 0xBCD00000BCE, - 0xC0000000C01, - 0xC0400000C05, - 0xC3C00000C3D, - 0xC3E00000C41, - 0xC4600000C49, - 0xC4A00000C4E, - 0xC5500000C57, - 0xC6200000C64, - 0xC8100000C82, - 0xCBC00000CBD, - 0xCBF00000CC0, - 0xCC600000CC7, - 0xCCC00000CCE, - 0xCE200000CE4, - 0xD0000000D02, - 0xD3B00000D3D, - 0xD4100000D45, - 0xD4D00000D4E, - 0xD6200000D64, - 0xD8100000D82, - 0xDCA00000DCB, - 0xDD200000DD5, - 0xDD600000DD7, - 0xE3100000E32, - 0xE3400000E3B, - 0xE4700000E4F, - 0xEB100000EB2, - 0xEB400000EBD, - 0xEC800000ECF, - 0xF1800000F1A, - 0xF3500000F36, - 0xF3700000F38, - 0xF3900000F3A, - 0xF7100000F7F, - 0xF8000000F85, - 0xF8600000F88, - 0xF8D00000F98, - 0xF9900000FBD, - 0xFC600000FC7, - 0x102D00001031, - 0x103200001038, - 0x10390000103B, - 0x103D0000103F, - 0x10580000105A, - 0x105E00001061, - 0x107100001075, - 0x108200001083, - 0x108500001087, - 0x108D0000108E, - 0x109D0000109E, - 0x135D00001360, - 0x171200001715, - 0x173200001734, - 0x175200001754, - 0x177200001774, - 0x17B4000017B6, - 0x17B7000017BE, - 0x17C6000017C7, - 0x17C9000017D4, - 0x17DD000017DE, - 0x180B0000180E, - 0x180F00001810, - 0x188500001887, - 0x18A9000018AA, - 0x192000001923, - 0x192700001929, - 0x193200001933, - 0x19390000193C, - 0x1A1700001A19, - 0x1A1B00001A1C, - 0x1A5600001A57, - 0x1A5800001A5F, - 0x1A6000001A61, - 0x1A6200001A63, - 0x1A6500001A6D, - 0x1A7300001A7D, - 0x1A7F00001A80, - 0x1AB000001ADE, - 0x1AE000001AEC, - 0x1B0000001B04, - 0x1B3400001B35, - 0x1B3600001B3B, - 0x1B3C00001B3D, - 0x1B4200001B43, - 0x1B6B00001B74, - 0x1B8000001B82, - 0x1BA200001BA6, - 0x1BA800001BAA, - 0x1BAB00001BAE, - 0x1BE600001BE7, - 0x1BE800001BEA, - 0x1BED00001BEE, - 0x1BEF00001BF2, - 0x1C2C00001C34, - 0x1C3600001C38, - 0x1CD000001CD3, - 0x1CD400001CE1, - 0x1CE200001CE9, - 0x1CED00001CEE, - 0x1CF400001CF5, - 0x1CF800001CFA, - 0x1DC000001E00, - 0x200B0000200C, - 0x200E00002010, - 0x202A0000202F, - 0x206000002065, - 0x206A00002070, - 0x20D0000020F1, - 0x2CEF00002CF2, - 0x2D7F00002D80, - 0x2DE000002E00, - 0x302A0000302E, - 0x30990000309B, - 0xA66F0000A673, - 0xA6740000A67E, - 0xA69E0000A6A0, - 0xA6F00000A6F2, - 0xA8020000A803, - 0xA8060000A807, - 0xA80B0000A80C, - 0xA8250000A827, - 0xA82C0000A82D, - 0xA8C40000A8C6, - 0xA8E00000A8F2, - 0xA8FF0000A900, - 0xA9260000A92E, - 0xA9470000A952, - 0xA9800000A983, - 0xA9B30000A9B4, - 0xA9B60000A9BA, - 0xA9BC0000A9BE, - 0xA9E50000A9E6, - 0xAA290000AA2F, - 0xAA310000AA33, - 0xAA350000AA37, - 0xAA430000AA44, - 0xAA4C0000AA4D, - 0xAA7C0000AA7D, - 0xAAB00000AAB1, - 0xAAB20000AAB5, - 0xAAB70000AAB9, - 0xAABE0000AAC0, - 0xAAC10000AAC2, - 0xAAEC0000AAEE, - 0xAAF60000AAF7, - 0xABE50000ABE6, - 0xABE80000ABE9, - 0xABED0000ABEE, - 0xFB1E0000FB1F, - 0xFE000000FE10, - 0xFE200000FE30, - 0xFEFF0000FF00, - 0xFFF90000FFFC, - 0x101FD000101FE, - 0x102E0000102E1, - 0x103760001037B, - 0x10A0100010A04, - 0x10A0500010A07, - 0x10A0C00010A10, - 0x10A3800010A3B, - 0x10A3F00010A40, - 0x10AE500010AE7, - 0x10D2400010D28, - 0x10D6900010D6E, - 0x10EAB00010EAD, - 0x10EFA00010F00, - 0x10F4600010F51, - 0x10F8200010F86, - 0x1100100011002, - 0x1103800011047, - 0x1107000011071, - 0x1107300011075, - 0x1107F00011082, - 0x110B3000110B7, - 0x110B9000110BB, - 0x110C2000110C3, - 0x1110000011103, - 0x111270001112C, - 0x1112D00011135, - 0x1117300011174, - 0x1118000011182, - 0x111B6000111BF, - 0x111C9000111CD, - 0x111CF000111D0, - 0x1122F00011232, - 0x1123400011235, - 0x1123600011238, - 0x1123E0001123F, - 0x1124100011242, - 0x112DF000112E0, - 0x112E3000112EB, - 0x1130000011302, - 0x1133B0001133D, - 0x1134000011341, - 0x113660001136D, - 0x1137000011375, - 0x113BB000113C1, - 0x113CE000113CF, - 0x113D0000113D1, - 0x113D2000113D3, - 0x113E1000113E3, - 0x1143800011440, - 0x1144200011445, - 0x1144600011447, - 0x1145E0001145F, - 0x114B3000114B9, - 0x114BA000114BB, - 0x114BF000114C1, - 0x114C2000114C4, - 0x115B2000115B6, - 0x115BC000115BE, - 0x115BF000115C1, - 0x115DC000115DE, - 0x116330001163B, - 0x1163D0001163E, - 0x1163F00011641, - 0x116AB000116AC, - 0x116AD000116AE, - 0x116B0000116B6, - 0x116B7000116B8, - 0x1171D0001171E, - 0x1171F00011720, - 0x1172200011726, - 0x117270001172C, - 0x1182F00011838, - 0x118390001183B, - 0x1193B0001193D, - 0x1193E0001193F, - 0x1194300011944, - 0x119D4000119D8, - 0x119DA000119DC, - 0x119E0000119E1, - 0x11A0100011A0B, - 0x11A3300011A39, - 0x11A3B00011A3F, - 0x11A4700011A48, - 0x11A5100011A57, - 0x11A5900011A5C, - 0x11A8A00011A97, - 0x11A9800011A9A, - 0x11B6000011B61, - 0x11B6200011B65, - 0x11B6600011B67, - 0x11C3000011C37, - 0x11C3800011C3E, - 0x11C3F00011C40, - 0x11C9200011CA8, - 0x11CAA00011CB1, - 0x11CB200011CB4, - 0x11CB500011CB7, - 0x11D3100011D37, - 0x11D3A00011D3B, - 0x11D3C00011D3E, - 0x11D3F00011D46, - 0x11D4700011D48, - 0x11D9000011D92, - 0x11D9500011D96, - 0x11D9700011D98, - 0x11EF300011EF5, - 0x11F0000011F02, - 0x11F3600011F3B, - 0x11F4000011F41, - 0x11F4200011F43, - 0x11F5A00011F5B, - 0x1343000013441, - 0x1344700013456, - 0x1611E0001612A, - 0x1612D00016130, - 0x16AF000016AF5, - 0x16B3000016B37, - 0x16F4F00016F50, - 0x16F8F00016F93, - 0x16FE400016FE5, - 0x1BC9D0001BC9F, - 0x1BCA00001BCA4, - 0x1CF000001CF2E, - 0x1CF300001CF47, - 0x1D1670001D16A, - 0x1D1730001D183, - 0x1D1850001D18C, - 0x1D1AA0001D1AE, - 0x1D2420001D245, - 0x1DA000001DA37, - 0x1DA3B0001DA6D, - 0x1DA750001DA76, - 0x1DA840001DA85, - 0x1DA9B0001DAA0, - 0x1DAA10001DAB0, - 0x1E0000001E007, - 0x1E0080001E019, - 0x1E01B0001E022, - 0x1E0230001E025, - 0x1E0260001E02B, - 0x1E08F0001E090, - 0x1E1300001E137, - 0x1E2AE0001E2AF, - 0x1E2EC0001E2F0, - 0x1E4EC0001E4F0, - 0x1E5EE0001E5F0, - 0x1E6E30001E6E4, - 0x1E6E60001E6E7, - 0x1E6EE0001E6F0, - 0x1E6F50001E6F6, - 0x1E8D00001E8D7, - 0x1E9440001E94C, - 0xE0001000E0002, - 0xE0020000E0080, - 0xE0100000E01F0, - ), -} - - -codepoint_classes = { - "PVALID": ( - 0x2D0000002E, - 0x300000003A, - 0x610000007B, - 0xDF000000F7, - 0xF800000100, - 0x10100000102, - 0x10300000104, - 0x10500000106, - 0x10700000108, - 0x1090000010A, - 0x10B0000010C, - 0x10D0000010E, - 0x10F00000110, - 0x11100000112, - 0x11300000114, - 0x11500000116, - 0x11700000118, - 0x1190000011A, - 0x11B0000011C, - 0x11D0000011E, - 0x11F00000120, - 0x12100000122, - 0x12300000124, - 0x12500000126, - 0x12700000128, - 0x1290000012A, - 0x12B0000012C, - 0x12D0000012E, - 0x12F00000130, - 0x13100000132, - 0x13500000136, - 0x13700000139, - 0x13A0000013B, - 0x13C0000013D, - 0x13E0000013F, - 0x14200000143, - 0x14400000145, - 0x14600000147, - 0x14800000149, - 0x14B0000014C, - 0x14D0000014E, - 0x14F00000150, - 0x15100000152, - 0x15300000154, - 0x15500000156, - 0x15700000158, - 0x1590000015A, - 0x15B0000015C, - 0x15D0000015E, - 0x15F00000160, - 0x16100000162, - 0x16300000164, - 0x16500000166, - 0x16700000168, - 0x1690000016A, - 0x16B0000016C, - 0x16D0000016E, - 0x16F00000170, - 0x17100000172, - 0x17300000174, - 0x17500000176, - 0x17700000178, - 0x17A0000017B, - 0x17C0000017D, - 0x17E0000017F, - 0x18000000181, - 0x18300000184, - 0x18500000186, - 0x18800000189, - 0x18C0000018E, - 0x19200000193, - 0x19500000196, - 0x1990000019C, - 0x19E0000019F, - 0x1A1000001A2, - 0x1A3000001A4, - 0x1A5000001A6, - 0x1A8000001A9, - 0x1AA000001AC, - 0x1AD000001AE, - 0x1B0000001B1, - 0x1B4000001B5, - 0x1B6000001B7, - 0x1B9000001BC, - 0x1BD000001C4, - 0x1CE000001CF, - 0x1D0000001D1, - 0x1D2000001D3, - 0x1D4000001D5, - 0x1D6000001D7, - 0x1D8000001D9, - 0x1DA000001DB, - 0x1DC000001DE, - 0x1DF000001E0, - 0x1E1000001E2, - 0x1E3000001E4, - 0x1E5000001E6, - 0x1E7000001E8, - 0x1E9000001EA, - 0x1EB000001EC, - 0x1ED000001EE, - 0x1EF000001F1, - 0x1F5000001F6, - 0x1F9000001FA, - 0x1FB000001FC, - 0x1FD000001FE, - 0x1FF00000200, - 0x20100000202, - 0x20300000204, - 0x20500000206, - 0x20700000208, - 0x2090000020A, - 0x20B0000020C, - 0x20D0000020E, - 0x20F00000210, - 0x21100000212, - 0x21300000214, - 0x21500000216, - 0x21700000218, - 0x2190000021A, - 0x21B0000021C, - 0x21D0000021E, - 0x21F00000220, - 0x22100000222, - 0x22300000224, - 0x22500000226, - 0x22700000228, - 0x2290000022A, - 0x22B0000022C, - 0x22D0000022E, - 0x22F00000230, - 0x23100000232, - 0x2330000023A, - 0x23C0000023D, - 0x23F00000241, - 0x24200000243, - 0x24700000248, - 0x2490000024A, - 0x24B0000024C, - 0x24D0000024E, - 0x24F000002B0, - 0x2B9000002C2, - 0x2C6000002D2, - 0x2EC000002ED, - 0x2EE000002EF, - 0x30000000340, - 0x34200000343, - 0x3460000034F, - 0x35000000370, - 0x37100000372, - 0x37300000374, - 0x37700000378, - 0x37B0000037E, - 0x39000000391, - 0x3AC000003CF, - 0x3D7000003D8, - 0x3D9000003DA, - 0x3DB000003DC, - 0x3DD000003DE, - 0x3DF000003E0, - 0x3E1000003E2, - 0x3E3000003E4, - 0x3E5000003E6, - 0x3E7000003E8, - 0x3E9000003EA, - 0x3EB000003EC, - 0x3ED000003EE, - 0x3EF000003F0, - 0x3F3000003F4, - 0x3F8000003F9, - 0x3FB000003FD, - 0x43000000460, - 0x46100000462, - 0x46300000464, - 0x46500000466, - 0x46700000468, - 0x4690000046A, - 0x46B0000046C, - 0x46D0000046E, - 0x46F00000470, - 0x47100000472, - 0x47300000474, - 0x47500000476, - 0x47700000478, - 0x4790000047A, - 0x47B0000047C, - 0x47D0000047E, - 0x47F00000480, - 0x48100000482, - 0x48300000488, - 0x48B0000048C, - 0x48D0000048E, - 0x48F00000490, - 0x49100000492, - 0x49300000494, - 0x49500000496, - 0x49700000498, - 0x4990000049A, - 0x49B0000049C, - 0x49D0000049E, - 0x49F000004A0, - 0x4A1000004A2, - 0x4A3000004A4, - 0x4A5000004A6, - 0x4A7000004A8, - 0x4A9000004AA, - 0x4AB000004AC, - 0x4AD000004AE, - 0x4AF000004B0, - 0x4B1000004B2, - 0x4B3000004B4, - 0x4B5000004B6, - 0x4B7000004B8, - 0x4B9000004BA, - 0x4BB000004BC, - 0x4BD000004BE, - 0x4BF000004C0, - 0x4C2000004C3, - 0x4C4000004C5, - 0x4C6000004C7, - 0x4C8000004C9, - 0x4CA000004CB, - 0x4CC000004CD, - 0x4CE000004D0, - 0x4D1000004D2, - 0x4D3000004D4, - 0x4D5000004D6, - 0x4D7000004D8, - 0x4D9000004DA, - 0x4DB000004DC, - 0x4DD000004DE, - 0x4DF000004E0, - 0x4E1000004E2, - 0x4E3000004E4, - 0x4E5000004E6, - 0x4E7000004E8, - 0x4E9000004EA, - 0x4EB000004EC, - 0x4ED000004EE, - 0x4EF000004F0, - 0x4F1000004F2, - 0x4F3000004F4, - 0x4F5000004F6, - 0x4F7000004F8, - 0x4F9000004FA, - 0x4FB000004FC, - 0x4FD000004FE, - 0x4FF00000500, - 0x50100000502, - 0x50300000504, - 0x50500000506, - 0x50700000508, - 0x5090000050A, - 0x50B0000050C, - 0x50D0000050E, - 0x50F00000510, - 0x51100000512, - 0x51300000514, - 0x51500000516, - 0x51700000518, - 0x5190000051A, - 0x51B0000051C, - 0x51D0000051E, - 0x51F00000520, - 0x52100000522, - 0x52300000524, - 0x52500000526, - 0x52700000528, - 0x5290000052A, - 0x52B0000052C, - 0x52D0000052E, - 0x52F00000530, - 0x5590000055A, - 0x56000000587, - 0x58800000589, - 0x591000005BE, - 0x5BF000005C0, - 0x5C1000005C3, - 0x5C4000005C6, - 0x5C7000005C8, - 0x5D0000005EB, - 0x5EF000005F3, - 0x6100000061B, - 0x62000000640, - 0x64100000660, - 0x66E00000675, - 0x679000006D4, - 0x6D5000006DD, - 0x6DF000006E9, - 0x6EA000006F0, - 0x6FA00000700, - 0x7100000074B, - 0x74D000007B2, - 0x7C0000007F6, - 0x7FD000007FE, - 0x8000000082E, - 0x8400000085C, - 0x8600000086B, - 0x87000000888, - 0x88900000890, - 0x897000008E2, - 0x8E300000958, - 0x96000000964, - 0x96600000970, - 0x97100000984, - 0x9850000098D, - 0x98F00000991, - 0x993000009A9, - 0x9AA000009B1, - 0x9B2000009B3, - 0x9B6000009BA, - 0x9BC000009C5, - 0x9C7000009C9, - 0x9CB000009CF, - 0x9D7000009D8, - 0x9E0000009E4, - 0x9E6000009F2, - 0x9FC000009FD, - 0x9FE000009FF, - 0xA0100000A04, - 0xA0500000A0B, - 0xA0F00000A11, - 0xA1300000A29, - 0xA2A00000A31, - 0xA3200000A33, - 0xA3500000A36, - 0xA3800000A3A, - 0xA3C00000A3D, - 0xA3E00000A43, - 0xA4700000A49, - 0xA4B00000A4E, - 0xA5100000A52, - 0xA5C00000A5D, - 0xA6600000A76, - 0xA8100000A84, - 0xA8500000A8E, - 0xA8F00000A92, - 0xA9300000AA9, - 0xAAA00000AB1, - 0xAB200000AB4, - 0xAB500000ABA, - 0xABC00000AC6, - 0xAC700000ACA, - 0xACB00000ACE, - 0xAD000000AD1, - 0xAE000000AE4, - 0xAE600000AF0, - 0xAF900000B00, - 0xB0100000B04, - 0xB0500000B0D, - 0xB0F00000B11, - 0xB1300000B29, - 0xB2A00000B31, - 0xB3200000B34, - 0xB3500000B3A, - 0xB3C00000B45, - 0xB4700000B49, - 0xB4B00000B4E, - 0xB5500000B58, - 0xB5F00000B64, - 0xB6600000B70, - 0xB7100000B72, - 0xB8200000B84, - 0xB8500000B8B, - 0xB8E00000B91, - 0xB9200000B96, - 0xB9900000B9B, - 0xB9C00000B9D, - 0xB9E00000BA0, - 0xBA300000BA5, - 0xBA800000BAB, - 0xBAE00000BBA, - 0xBBE00000BC3, - 0xBC600000BC9, - 0xBCA00000BCE, - 0xBD000000BD1, - 0xBD700000BD8, - 0xBE600000BF0, - 0xC0000000C0D, - 0xC0E00000C11, - 0xC1200000C29, - 0xC2A00000C3A, - 0xC3C00000C45, - 0xC4600000C49, - 0xC4A00000C4E, - 0xC5500000C57, - 0xC5800000C5B, - 0xC5C00000C5E, - 0xC6000000C64, - 0xC6600000C70, - 0xC8000000C84, - 0xC8500000C8D, - 0xC8E00000C91, - 0xC9200000CA9, - 0xCAA00000CB4, - 0xCB500000CBA, - 0xCBC00000CC5, - 0xCC600000CC9, - 0xCCA00000CCE, - 0xCD500000CD7, - 0xCDC00000CDF, - 0xCE000000CE4, - 0xCE600000CF0, - 0xCF100000CF4, - 0xD0000000D0D, - 0xD0E00000D11, - 0xD1200000D45, - 0xD4600000D49, - 0xD4A00000D4F, - 0xD5400000D58, - 0xD5F00000D64, - 0xD6600000D70, - 0xD7A00000D80, - 0xD8100000D84, - 0xD8500000D97, - 0xD9A00000DB2, - 0xDB300000DBC, - 0xDBD00000DBE, - 0xDC000000DC7, - 0xDCA00000DCB, - 0xDCF00000DD5, - 0xDD600000DD7, - 0xDD800000DE0, - 0xDE600000DF0, - 0xDF200000DF4, - 0xE0100000E33, - 0xE3400000E3B, - 0xE4000000E4F, - 0xE5000000E5A, - 0xE8100000E83, - 0xE8400000E85, - 0xE8600000E8B, - 0xE8C00000EA4, - 0xEA500000EA6, - 0xEA700000EB3, - 0xEB400000EBE, - 0xEC000000EC5, - 0xEC600000EC7, - 0xEC800000ECF, - 0xED000000EDA, - 0xEDE00000EE0, - 0xF0000000F01, - 0xF0B00000F0C, - 0xF1800000F1A, - 0xF2000000F2A, - 0xF3500000F36, - 0xF3700000F38, - 0xF3900000F3A, - 0xF3E00000F43, - 0xF4400000F48, - 0xF4900000F4D, - 0xF4E00000F52, - 0xF5300000F57, - 0xF5800000F5C, - 0xF5D00000F69, - 0xF6A00000F6D, - 0xF7100000F73, - 0xF7400000F75, - 0xF7A00000F81, - 0xF8200000F85, - 0xF8600000F93, - 0xF9400000F98, - 0xF9900000F9D, - 0xF9E00000FA2, - 0xFA300000FA7, - 0xFA800000FAC, - 0xFAD00000FB9, - 0xFBA00000FBD, - 0xFC600000FC7, - 0x10000000104A, - 0x10500000109E, - 0x10D0000010FB, - 0x10FD00001100, - 0x120000001249, - 0x124A0000124E, - 0x125000001257, - 0x125800001259, - 0x125A0000125E, - 0x126000001289, - 0x128A0000128E, - 0x1290000012B1, - 0x12B2000012B6, - 0x12B8000012BF, - 0x12C0000012C1, - 0x12C2000012C6, - 0x12C8000012D7, - 0x12D800001311, - 0x131200001316, - 0x13180000135B, - 0x135D00001360, - 0x138000001390, - 0x13A0000013F6, - 0x14010000166D, - 0x166F00001680, - 0x16810000169B, - 0x16A0000016EB, - 0x16F1000016F9, - 0x170000001716, - 0x171F00001735, - 0x174000001754, - 0x17600000176D, - 0x176E00001771, - 0x177200001774, - 0x1780000017B4, - 0x17B6000017D4, - 0x17D7000017D8, - 0x17DC000017DE, - 0x17E0000017EA, - 0x18100000181A, - 0x182000001879, - 0x1880000018AB, - 0x18B0000018F6, - 0x19000000191F, - 0x19200000192C, - 0x19300000193C, - 0x19460000196E, - 0x197000001975, - 0x1980000019AC, - 0x19B0000019CA, - 0x19D0000019DA, - 0x1A0000001A1C, - 0x1A2000001A5F, - 0x1A6000001A7D, - 0x1A7F00001A8A, - 0x1A9000001A9A, - 0x1AA700001AA8, - 0x1AB000001ABE, - 0x1ABF00001ADE, - 0x1AE000001AEC, - 0x1B0000001B4D, - 0x1B5000001B5A, - 0x1B6B00001B74, - 0x1B8000001BF4, - 0x1C0000001C38, - 0x1C4000001C4A, - 0x1C4D00001C7E, - 0x1C8A00001C8B, - 0x1CD000001CD3, - 0x1CD400001CFB, - 0x1D0000001D2C, - 0x1D2F00001D30, - 0x1D3B00001D3C, - 0x1D4E00001D4F, - 0x1D6B00001D78, - 0x1D7900001D9B, - 0x1DC000001E00, - 0x1E0100001E02, - 0x1E0300001E04, - 0x1E0500001E06, - 0x1E0700001E08, - 0x1E0900001E0A, - 0x1E0B00001E0C, - 0x1E0D00001E0E, - 0x1E0F00001E10, - 0x1E1100001E12, - 0x1E1300001E14, - 0x1E1500001E16, - 0x1E1700001E18, - 0x1E1900001E1A, - 0x1E1B00001E1C, - 0x1E1D00001E1E, - 0x1E1F00001E20, - 0x1E2100001E22, - 0x1E2300001E24, - 0x1E2500001E26, - 0x1E2700001E28, - 0x1E2900001E2A, - 0x1E2B00001E2C, - 0x1E2D00001E2E, - 0x1E2F00001E30, - 0x1E3100001E32, - 0x1E3300001E34, - 0x1E3500001E36, - 0x1E3700001E38, - 0x1E3900001E3A, - 0x1E3B00001E3C, - 0x1E3D00001E3E, - 0x1E3F00001E40, - 0x1E4100001E42, - 0x1E4300001E44, - 0x1E4500001E46, - 0x1E4700001E48, - 0x1E4900001E4A, - 0x1E4B00001E4C, - 0x1E4D00001E4E, - 0x1E4F00001E50, - 0x1E5100001E52, - 0x1E5300001E54, - 0x1E5500001E56, - 0x1E5700001E58, - 0x1E5900001E5A, - 0x1E5B00001E5C, - 0x1E5D00001E5E, - 0x1E5F00001E60, - 0x1E6100001E62, - 0x1E6300001E64, - 0x1E6500001E66, - 0x1E6700001E68, - 0x1E6900001E6A, - 0x1E6B00001E6C, - 0x1E6D00001E6E, - 0x1E6F00001E70, - 0x1E7100001E72, - 0x1E7300001E74, - 0x1E7500001E76, - 0x1E7700001E78, - 0x1E7900001E7A, - 0x1E7B00001E7C, - 0x1E7D00001E7E, - 0x1E7F00001E80, - 0x1E8100001E82, - 0x1E8300001E84, - 0x1E8500001E86, - 0x1E8700001E88, - 0x1E8900001E8A, - 0x1E8B00001E8C, - 0x1E8D00001E8E, - 0x1E8F00001E90, - 0x1E9100001E92, - 0x1E9300001E94, - 0x1E9500001E9A, - 0x1E9C00001E9E, - 0x1E9F00001EA0, - 0x1EA100001EA2, - 0x1EA300001EA4, - 0x1EA500001EA6, - 0x1EA700001EA8, - 0x1EA900001EAA, - 0x1EAB00001EAC, - 0x1EAD00001EAE, - 0x1EAF00001EB0, - 0x1EB100001EB2, - 0x1EB300001EB4, - 0x1EB500001EB6, - 0x1EB700001EB8, - 0x1EB900001EBA, - 0x1EBB00001EBC, - 0x1EBD00001EBE, - 0x1EBF00001EC0, - 0x1EC100001EC2, - 0x1EC300001EC4, - 0x1EC500001EC6, - 0x1EC700001EC8, - 0x1EC900001ECA, - 0x1ECB00001ECC, - 0x1ECD00001ECE, - 0x1ECF00001ED0, - 0x1ED100001ED2, - 0x1ED300001ED4, - 0x1ED500001ED6, - 0x1ED700001ED8, - 0x1ED900001EDA, - 0x1EDB00001EDC, - 0x1EDD00001EDE, - 0x1EDF00001EE0, - 0x1EE100001EE2, - 0x1EE300001EE4, - 0x1EE500001EE6, - 0x1EE700001EE8, - 0x1EE900001EEA, - 0x1EEB00001EEC, - 0x1EED00001EEE, - 0x1EEF00001EF0, - 0x1EF100001EF2, - 0x1EF300001EF4, - 0x1EF500001EF6, - 0x1EF700001EF8, - 0x1EF900001EFA, - 0x1EFB00001EFC, - 0x1EFD00001EFE, - 0x1EFF00001F08, - 0x1F1000001F16, - 0x1F2000001F28, - 0x1F3000001F38, - 0x1F4000001F46, - 0x1F5000001F58, - 0x1F6000001F68, - 0x1F7000001F71, - 0x1F7200001F73, - 0x1F7400001F75, - 0x1F7600001F77, - 0x1F7800001F79, - 0x1F7A00001F7B, - 0x1F7C00001F7D, - 0x1FB000001FB2, - 0x1FB600001FB7, - 0x1FC600001FC7, - 0x1FD000001FD3, - 0x1FD600001FD8, - 0x1FE000001FE3, - 0x1FE400001FE8, - 0x1FF600001FF7, - 0x214E0000214F, - 0x218400002185, - 0x2C3000002C60, - 0x2C6100002C62, - 0x2C6500002C67, - 0x2C6800002C69, - 0x2C6A00002C6B, - 0x2C6C00002C6D, - 0x2C7100002C72, - 0x2C7300002C75, - 0x2C7600002C7C, - 0x2C8100002C82, - 0x2C8300002C84, - 0x2C8500002C86, - 0x2C8700002C88, - 0x2C8900002C8A, - 0x2C8B00002C8C, - 0x2C8D00002C8E, - 0x2C8F00002C90, - 0x2C9100002C92, - 0x2C9300002C94, - 0x2C9500002C96, - 0x2C9700002C98, - 0x2C9900002C9A, - 0x2C9B00002C9C, - 0x2C9D00002C9E, - 0x2C9F00002CA0, - 0x2CA100002CA2, - 0x2CA300002CA4, - 0x2CA500002CA6, - 0x2CA700002CA8, - 0x2CA900002CAA, - 0x2CAB00002CAC, - 0x2CAD00002CAE, - 0x2CAF00002CB0, - 0x2CB100002CB2, - 0x2CB300002CB4, - 0x2CB500002CB6, - 0x2CB700002CB8, - 0x2CB900002CBA, - 0x2CBB00002CBC, - 0x2CBD00002CBE, - 0x2CBF00002CC0, - 0x2CC100002CC2, - 0x2CC300002CC4, - 0x2CC500002CC6, - 0x2CC700002CC8, - 0x2CC900002CCA, - 0x2CCB00002CCC, - 0x2CCD00002CCE, - 0x2CCF00002CD0, - 0x2CD100002CD2, - 0x2CD300002CD4, - 0x2CD500002CD6, - 0x2CD700002CD8, - 0x2CD900002CDA, - 0x2CDB00002CDC, - 0x2CDD00002CDE, - 0x2CDF00002CE0, - 0x2CE100002CE2, - 0x2CE300002CE5, - 0x2CEC00002CED, - 0x2CEE00002CF2, - 0x2CF300002CF4, - 0x2D0000002D26, - 0x2D2700002D28, - 0x2D2D00002D2E, - 0x2D3000002D68, - 0x2D7F00002D97, - 0x2DA000002DA7, - 0x2DA800002DAF, - 0x2DB000002DB7, - 0x2DB800002DBF, - 0x2DC000002DC7, - 0x2DC800002DCF, - 0x2DD000002DD7, - 0x2DD800002DDF, - 0x2DE000002E00, - 0x2E2F00002E30, - 0x300500003008, - 0x302A0000302E, - 0x303C0000303D, - 0x304100003097, - 0x30990000309B, - 0x309D0000309F, - 0x30A1000030FB, - 0x30FC000030FF, - 0x310500003130, - 0x31A0000031C0, - 0x31F000003200, - 0x340000004DC0, - 0x4E000000A48D, - 0xA4D00000A4FE, - 0xA5000000A60D, - 0xA6100000A62C, - 0xA6410000A642, - 0xA6430000A644, - 0xA6450000A646, - 0xA6470000A648, - 0xA6490000A64A, - 0xA64B0000A64C, - 0xA64D0000A64E, - 0xA64F0000A650, - 0xA6510000A652, - 0xA6530000A654, - 0xA6550000A656, - 0xA6570000A658, - 0xA6590000A65A, - 0xA65B0000A65C, - 0xA65D0000A65E, - 0xA65F0000A660, - 0xA6610000A662, - 0xA6630000A664, - 0xA6650000A666, - 0xA6670000A668, - 0xA6690000A66A, - 0xA66B0000A66C, - 0xA66D0000A670, - 0xA6740000A67E, - 0xA67F0000A680, - 0xA6810000A682, - 0xA6830000A684, - 0xA6850000A686, - 0xA6870000A688, - 0xA6890000A68A, - 0xA68B0000A68C, - 0xA68D0000A68E, - 0xA68F0000A690, - 0xA6910000A692, - 0xA6930000A694, - 0xA6950000A696, - 0xA6970000A698, - 0xA6990000A69A, - 0xA69B0000A69C, - 0xA69E0000A6E6, - 0xA6F00000A6F2, - 0xA7170000A720, - 0xA7230000A724, - 0xA7250000A726, - 0xA7270000A728, - 0xA7290000A72A, - 0xA72B0000A72C, - 0xA72D0000A72E, - 0xA72F0000A732, - 0xA7330000A734, - 0xA7350000A736, - 0xA7370000A738, - 0xA7390000A73A, - 0xA73B0000A73C, - 0xA73D0000A73E, - 0xA73F0000A740, - 0xA7410000A742, - 0xA7430000A744, - 0xA7450000A746, - 0xA7470000A748, - 0xA7490000A74A, - 0xA74B0000A74C, - 0xA74D0000A74E, - 0xA74F0000A750, - 0xA7510000A752, - 0xA7530000A754, - 0xA7550000A756, - 0xA7570000A758, - 0xA7590000A75A, - 0xA75B0000A75C, - 0xA75D0000A75E, - 0xA75F0000A760, - 0xA7610000A762, - 0xA7630000A764, - 0xA7650000A766, - 0xA7670000A768, - 0xA7690000A76A, - 0xA76B0000A76C, - 0xA76D0000A76E, - 0xA76F0000A770, - 0xA7710000A779, - 0xA77A0000A77B, - 0xA77C0000A77D, - 0xA77F0000A780, - 0xA7810000A782, - 0xA7830000A784, - 0xA7850000A786, - 0xA7870000A789, - 0xA78C0000A78D, - 0xA78E0000A790, - 0xA7910000A792, - 0xA7930000A796, - 0xA7970000A798, - 0xA7990000A79A, - 0xA79B0000A79C, - 0xA79D0000A79E, - 0xA79F0000A7A0, - 0xA7A10000A7A2, - 0xA7A30000A7A4, - 0xA7A50000A7A6, - 0xA7A70000A7A8, - 0xA7A90000A7AA, - 0xA7AF0000A7B0, - 0xA7B50000A7B6, - 0xA7B70000A7B8, - 0xA7B90000A7BA, - 0xA7BB0000A7BC, - 0xA7BD0000A7BE, - 0xA7BF0000A7C0, - 0xA7C10000A7C2, - 0xA7C30000A7C4, - 0xA7C80000A7C9, - 0xA7CA0000A7CB, - 0xA7CD0000A7CE, - 0xA7CF0000A7D0, - 0xA7D10000A7D2, - 0xA7D30000A7D4, - 0xA7D50000A7D6, - 0xA7D70000A7D8, - 0xA7D90000A7DA, - 0xA7DB0000A7DC, - 0xA7F60000A7F8, - 0xA7FA0000A828, - 0xA82C0000A82D, - 0xA8400000A874, - 0xA8800000A8C6, - 0xA8D00000A8DA, - 0xA8E00000A8F8, - 0xA8FB0000A8FC, - 0xA8FD0000A92E, - 0xA9300000A954, - 0xA9800000A9C1, - 0xA9CF0000A9DA, - 0xA9E00000A9FF, - 0xAA000000AA37, - 0xAA400000AA4E, - 0xAA500000AA5A, - 0xAA600000AA77, - 0xAA7A0000AAC3, - 0xAADB0000AADE, - 0xAAE00000AAF0, - 0xAAF20000AAF7, - 0xAB010000AB07, - 0xAB090000AB0F, - 0xAB110000AB17, - 0xAB200000AB27, - 0xAB280000AB2F, - 0xAB300000AB5B, - 0xAB600000AB69, - 0xABC00000ABEB, - 0xABEC0000ABEE, - 0xABF00000ABFA, - 0xAC000000D7A4, - 0xFA0E0000FA10, - 0xFA110000FA12, - 0xFA130000FA15, - 0xFA1F0000FA20, - 0xFA210000FA22, - 0xFA230000FA25, - 0xFA270000FA2A, - 0xFB1E0000FB1F, - 0xFE200000FE30, - 0xFE730000FE74, - 0x100000001000C, - 0x1000D00010027, - 0x100280001003B, - 0x1003C0001003E, - 0x1003F0001004E, - 0x100500001005E, - 0x10080000100FB, - 0x101FD000101FE, - 0x102800001029D, - 0x102A0000102D1, - 0x102E0000102E1, - 0x1030000010320, - 0x1032D00010341, - 0x103420001034A, - 0x103500001037B, - 0x103800001039E, - 0x103A0000103C4, - 0x103C8000103D0, - 0x104280001049E, - 0x104A0000104AA, - 0x104D8000104FC, - 0x1050000010528, - 0x1053000010564, - 0x10597000105A2, - 0x105A3000105B2, - 0x105B3000105BA, - 0x105BB000105BD, - 0x105C0000105F4, - 0x1060000010737, - 0x1074000010756, - 0x1076000010768, - 0x1078000010781, - 0x1080000010806, - 0x1080800010809, - 0x1080A00010836, - 0x1083700010839, - 0x1083C0001083D, - 0x1083F00010856, - 0x1086000010877, - 0x108800001089F, - 0x108E0000108F3, - 0x108F4000108F6, - 0x1090000010916, - 0x109200001093A, - 0x109400001095A, - 0x10980000109B8, - 0x109BE000109C0, - 0x10A0000010A04, - 0x10A0500010A07, - 0x10A0C00010A14, - 0x10A1500010A18, - 0x10A1900010A36, - 0x10A3800010A3B, - 0x10A3F00010A40, - 0x10A6000010A7D, - 0x10A8000010A9D, - 0x10AC000010AC8, - 0x10AC900010AE7, - 0x10B0000010B36, - 0x10B4000010B56, - 0x10B6000010B73, - 0x10B8000010B92, - 0x10C0000010C49, - 0x10CC000010CF3, - 0x10D0000010D28, - 0x10D3000010D3A, - 0x10D4000010D50, - 0x10D6900010D6E, - 0x10D6F00010D86, - 0x10E8000010EAA, - 0x10EAB00010EAD, - 0x10EB000010EB2, - 0x10EC200010EC8, - 0x10EFA00010F1D, - 0x10F2700010F28, - 0x10F3000010F51, - 0x10F7000010F86, - 0x10FB000010FC5, - 0x10FE000010FF7, - 0x1100000011047, - 0x1106600011076, - 0x1107F000110BB, - 0x110C2000110C3, - 0x110D0000110E9, - 0x110F0000110FA, - 0x1110000011135, - 0x1113600011140, - 0x1114400011148, - 0x1115000011174, - 0x1117600011177, - 0x11180000111C5, - 0x111C9000111CD, - 0x111CE000111DB, - 0x111DC000111DD, - 0x1120000011212, - 0x1121300011238, - 0x1123E00011242, - 0x1128000011287, - 0x1128800011289, - 0x1128A0001128E, - 0x1128F0001129E, - 0x1129F000112A9, - 0x112B0000112EB, - 0x112F0000112FA, - 0x1130000011304, - 0x113050001130D, - 0x1130F00011311, - 0x1131300011329, - 0x1132A00011331, - 0x1133200011334, - 0x113350001133A, - 0x1133B00011345, - 0x1134700011349, - 0x1134B0001134E, - 0x1135000011351, - 0x1135700011358, - 0x1135D00011364, - 0x113660001136D, - 0x1137000011375, - 0x113800001138A, - 0x1138B0001138C, - 0x1138E0001138F, - 0x11390000113B6, - 0x113B7000113C1, - 0x113C2000113C3, - 0x113C5000113C6, - 0x113C7000113CB, - 0x113CC000113D4, - 0x113E1000113E3, - 0x114000001144B, - 0x114500001145A, - 0x1145E00011462, - 0x11480000114C6, - 0x114C7000114C8, - 0x114D0000114DA, - 0x11580000115B6, - 0x115B8000115C1, - 0x115D8000115DE, - 0x1160000011641, - 0x1164400011645, - 0x116500001165A, - 0x11680000116B9, - 0x116C0000116CA, - 0x116D0000116E4, - 0x117000001171B, - 0x1171D0001172C, - 0x117300001173A, - 0x1174000011747, - 0x118000001183B, - 0x118C0000118EA, - 0x118FF00011907, - 0x119090001190A, - 0x1190C00011914, - 0x1191500011917, - 0x1191800011936, - 0x1193700011939, - 0x1193B00011944, - 0x119500001195A, - 0x119A0000119A8, - 0x119AA000119D8, - 0x119DA000119E2, - 0x119E3000119E5, - 0x11A0000011A3F, - 0x11A4700011A48, - 0x11A5000011A9A, - 0x11A9D00011A9E, - 0x11AB000011AF9, - 0x11B6000011B68, - 0x11BC000011BE1, - 0x11BF000011BFA, - 0x11C0000011C09, - 0x11C0A00011C37, - 0x11C3800011C41, - 0x11C5000011C5A, - 0x11C7200011C90, - 0x11C9200011CA8, - 0x11CA900011CB7, - 0x11D0000011D07, - 0x11D0800011D0A, - 0x11D0B00011D37, - 0x11D3A00011D3B, - 0x11D3C00011D3E, - 0x11D3F00011D48, - 0x11D5000011D5A, - 0x11D6000011D66, - 0x11D6700011D69, - 0x11D6A00011D8F, - 0x11D9000011D92, - 0x11D9300011D99, - 0x11DA000011DAA, - 0x11DB000011DDC, - 0x11DE000011DEA, - 0x11EE000011EF7, - 0x11F0000011F11, - 0x11F1200011F3B, - 0x11F3E00011F43, - 0x11F5000011F5B, - 0x11FB000011FB1, - 0x120000001239A, - 0x1248000012544, - 0x12F9000012FF1, - 0x1300000013430, - 0x1344000013456, - 0x13460000143FB, - 0x1440000014647, - 0x161000001613A, - 0x1680000016A39, - 0x16A4000016A5F, - 0x16A6000016A6A, - 0x16A7000016ABF, - 0x16AC000016ACA, - 0x16AD000016AEE, - 0x16AF000016AF5, - 0x16B0000016B37, - 0x16B4000016B44, - 0x16B5000016B5A, - 0x16B6300016B78, - 0x16B7D00016B90, - 0x16D4000016D6D, - 0x16D7000016D7A, - 0x16E6000016E80, - 0x16EBB00016ED4, - 0x16F0000016F4B, - 0x16F4F00016F88, - 0x16F8F00016FA0, - 0x16FE000016FE2, - 0x16FE300016FE5, - 0x16FF000016FF4, - 0x1700000018CD6, - 0x18CFF00018D1F, - 0x18D8000018DF3, - 0x1AFF00001AFF4, - 0x1AFF50001AFFC, - 0x1AFFD0001AFFF, - 0x1B0000001B123, - 0x1B1320001B133, - 0x1B1500001B153, - 0x1B1550001B156, - 0x1B1640001B168, - 0x1B1700001B2FC, - 0x1BC000001BC6B, - 0x1BC700001BC7D, - 0x1BC800001BC89, - 0x1BC900001BC9A, - 0x1BC9D0001BC9F, - 0x1CF000001CF2E, - 0x1CF300001CF47, - 0x1DA000001DA37, - 0x1DA3B0001DA6D, - 0x1DA750001DA76, - 0x1DA840001DA85, - 0x1DA9B0001DAA0, - 0x1DAA10001DAB0, - 0x1DF000001DF1F, - 0x1DF250001DF2B, - 0x1E0000001E007, - 0x1E0080001E019, - 0x1E01B0001E022, - 0x1E0230001E025, - 0x1E0260001E02B, - 0x1E08F0001E090, - 0x1E1000001E12D, - 0x1E1300001E13E, - 0x1E1400001E14A, - 0x1E14E0001E14F, - 0x1E2900001E2AF, - 0x1E2C00001E2FA, - 0x1E4D00001E4FA, - 0x1E5D00001E5FB, - 0x1E6C00001E6DF, - 0x1E6E00001E6F6, - 0x1E6FE0001E700, - 0x1E7E00001E7E7, - 0x1E7E80001E7EC, - 0x1E7ED0001E7EF, - 0x1E7F00001E7FF, - 0x1E8000001E8C5, - 0x1E8D00001E8D7, - 0x1E9220001E94C, - 0x1E9500001E95A, - 0x200000002A6E0, - 0x2A7000002B81E, - 0x2B8200002CEAE, - 0x2CEB00002EBE1, - 0x2EBF00002EE5E, - 0x300000003134B, - 0x313500003347A, - ), - "CONTEXTJ": (0x200C0000200E,), - "CONTEXTO": ( - 0xB7000000B8, - 0x37500000376, - 0x5F3000005F5, - 0x6600000066A, - 0x6F0000006FA, - 0x30FB000030FC, - ), -} diff --git a/.venv/lib/python3.9/site-packages/idna/intranges.py b/.venv/lib/python3.9/site-packages/idna/intranges.py deleted file mode 100644 index 19d7781..0000000 --- a/.venv/lib/python3.9/site-packages/idna/intranges.py +++ /dev/null @@ -1,55 +0,0 @@ -""" -Given a list of integers, made up of (hopefully) a small number of long runs -of consecutive integers, compute a representation of the form -((start1, end1), (start2, end2) ...). Then answer the question "was x present -in the original list?" in time O(log(# runs)). -""" - -import bisect - - -def intranges_from_list(list_: list[int]) -> tuple[int, ...]: - """Represent a list of integers as a sequence of ranges: - ((start_0, end_0), (start_1, end_1), ...), such that the original - integers are exactly those x such that start_i <= x < end_i for some i. - - Ranges are encoded as single integers (start << 32 | end), not as tuples. - """ - - sorted_list = sorted(list_) - ranges = [] - last_write = -1 - for i in range(len(sorted_list)): - if i + 1 < len(sorted_list) and sorted_list[i] == sorted_list[i + 1] - 1: - continue - current_range = sorted_list[last_write + 1 : i + 1] - ranges.append(_encode_range(current_range[0], current_range[-1] + 1)) - last_write = i - - return tuple(ranges) - - -def _encode_range(start: int, end: int) -> int: - return (start << 32) | end - - -def _decode_range(r: int) -> tuple[int, int]: - return (r >> 32), (r & ((1 << 32) - 1)) - - -def intranges_contain(int_: int, ranges: tuple[int, ...]) -> bool: - """Determine if `int_` falls into one of the ranges in `ranges`.""" - tuple_ = _encode_range(int_, 0) - pos = bisect.bisect_left(ranges, tuple_) - # we could be immediately ahead of a tuple (start, end) - # with start < int_ <= end - if pos > 0: - left, right = _decode_range(ranges[pos - 1]) - if left <= int_ < right: - return True - # or we could be immediately behind a tuple (int_, end) - if pos < len(ranges): - left, _ = _decode_range(ranges[pos]) - if left == int_: - return True - return False diff --git a/.venv/lib/python3.9/site-packages/idna/package_data.py b/.venv/lib/python3.9/site-packages/idna/package_data.py deleted file mode 100644 index 94e4039..0000000 --- a/.venv/lib/python3.9/site-packages/idna/package_data.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "3.18" diff --git a/.venv/lib/python3.9/site-packages/idna/py.typed b/.venv/lib/python3.9/site-packages/idna/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/idna/uts46data.py b/.venv/lib/python3.9/site-packages/idna/uts46data.py deleted file mode 100644 index f2d931f..0000000 --- a/.venv/lib/python3.9/site-packages/idna/uts46data.py +++ /dev/null @@ -1,16896 +0,0 @@ -# This file is automatically generated by tools/idna-data - -from array import array -from typing import Optional - -"""IDNA Mapping Table from UTS46.""" - - -__version__ = "17.0.0" - -uts46_starts: "array[int]" = array( - "I", - ( - 0x0, - 0x1, - 0x2, - 0x3, - 0x4, - 0x5, - 0x6, - 0x7, - 0x8, - 0x9, - 0xA, - 0xB, - 0xC, - 0xD, - 0xE, - 0xF, - 0x10, - 0x11, - 0x12, - 0x13, - 0x14, - 0x15, - 0x16, - 0x17, - 0x18, - 0x19, - 0x1A, - 0x1B, - 0x1C, - 0x1D, - 0x1E, - 0x1F, - 0x20, - 0x21, - 0x22, - 0x23, - 0x24, - 0x25, - 0x26, - 0x27, - 0x28, - 0x29, - 0x2A, - 0x2B, - 0x2C, - 0x2D, - 0x2E, - 0x2F, - 0x30, - 0x31, - 0x32, - 0x33, - 0x34, - 0x35, - 0x36, - 0x37, - 0x38, - 0x39, - 0x3A, - 0x3B, - 0x3C, - 0x3D, - 0x3E, - 0x3F, - 0x40, - 0x41, - 0x42, - 0x43, - 0x44, - 0x45, - 0x46, - 0x47, - 0x48, - 0x49, - 0x4A, - 0x4B, - 0x4C, - 0x4D, - 0x4E, - 0x4F, - 0x50, - 0x51, - 0x52, - 0x53, - 0x54, - 0x55, - 0x56, - 0x57, - 0x58, - 0x59, - 0x5A, - 0x5B, - 0x5C, - 0x5D, - 0x5E, - 0x5F, - 0x60, - 0x61, - 0x62, - 0x63, - 0x64, - 0x65, - 0x66, - 0x67, - 0x68, - 0x69, - 0x6A, - 0x6B, - 0x6C, - 0x6D, - 0x6E, - 0x6F, - 0x70, - 0x71, - 0x72, - 0x73, - 0x74, - 0x75, - 0x76, - 0x77, - 0x78, - 0x79, - 0x7A, - 0x7B, - 0x7C, - 0x7D, - 0x7E, - 0x7F, - 0x80, - 0x81, - 0x82, - 0x83, - 0x84, - 0x85, - 0x86, - 0x87, - 0x88, - 0x89, - 0x8A, - 0x8B, - 0x8C, - 0x8D, - 0x8E, - 0x8F, - 0x90, - 0x91, - 0x92, - 0x93, - 0x94, - 0x95, - 0x96, - 0x97, - 0x98, - 0x99, - 0x9A, - 0x9B, - 0x9C, - 0x9D, - 0x9E, - 0x9F, - 0xA0, - 0xA1, - 0xA2, - 0xA3, - 0xA4, - 0xA5, - 0xA6, - 0xA7, - 0xA8, - 0xA9, - 0xAA, - 0xAB, - 0xAC, - 0xAD, - 0xAE, - 0xAF, - 0xB0, - 0xB1, - 0xB2, - 0xB3, - 0xB4, - 0xB5, - 0xB6, - 0xB7, - 0xB8, - 0xB9, - 0xBA, - 0xBB, - 0xBC, - 0xBD, - 0xBE, - 0xBF, - 0xC0, - 0xC1, - 0xC2, - 0xC3, - 0xC4, - 0xC5, - 0xC6, - 0xC7, - 0xC8, - 0xC9, - 0xCA, - 0xCB, - 0xCC, - 0xCD, - 0xCE, - 0xCF, - 0xD0, - 0xD1, - 0xD2, - 0xD3, - 0xD4, - 0xD5, - 0xD6, - 0xD7, - 0xD8, - 0xD9, - 0xDA, - 0xDB, - 0xDC, - 0xDD, - 0xDE, - 0xDF, - 0xE0, - 0xE1, - 0xE2, - 0xE3, - 0xE4, - 0xE5, - 0xE6, - 0xE7, - 0xE8, - 0xE9, - 0xEA, - 0xEB, - 0xEC, - 0xED, - 0xEE, - 0xEF, - 0xF0, - 0xF1, - 0xF2, - 0xF3, - 0xF4, - 0xF5, - 0xF6, - 0xF7, - 0xF8, - 0xF9, - 0xFA, - 0xFB, - 0xFC, - 0xFD, - 0xFE, - 0xFF, - 0x100, - 0x101, - 0x102, - 0x103, - 0x104, - 0x105, - 0x106, - 0x107, - 0x108, - 0x109, - 0x10A, - 0x10B, - 0x10C, - 0x10D, - 0x10E, - 0x10F, - 0x110, - 0x111, - 0x112, - 0x113, - 0x114, - 0x115, - 0x116, - 0x117, - 0x118, - 0x119, - 0x11A, - 0x11B, - 0x11C, - 0x11D, - 0x11E, - 0x11F, - 0x120, - 0x121, - 0x122, - 0x123, - 0x124, - 0x125, - 0x126, - 0x127, - 0x128, - 0x129, - 0x12A, - 0x12B, - 0x12C, - 0x12D, - 0x12E, - 0x12F, - 0x130, - 0x131, - 0x132, - 0x134, - 0x135, - 0x136, - 0x137, - 0x139, - 0x13A, - 0x13B, - 0x13C, - 0x13D, - 0x13E, - 0x13F, - 0x141, - 0x142, - 0x143, - 0x144, - 0x145, - 0x146, - 0x147, - 0x148, - 0x149, - 0x14A, - 0x14B, - 0x14C, - 0x14D, - 0x14E, - 0x14F, - 0x150, - 0x151, - 0x152, - 0x153, - 0x154, - 0x155, - 0x156, - 0x157, - 0x158, - 0x159, - 0x15A, - 0x15B, - 0x15C, - 0x15D, - 0x15E, - 0x15F, - 0x160, - 0x161, - 0x162, - 0x163, - 0x164, - 0x165, - 0x166, - 0x167, - 0x168, - 0x169, - 0x16A, - 0x16B, - 0x16C, - 0x16D, - 0x16E, - 0x16F, - 0x170, - 0x171, - 0x172, - 0x173, - 0x174, - 0x175, - 0x176, - 0x177, - 0x178, - 0x179, - 0x17A, - 0x17B, - 0x17C, - 0x17D, - 0x17E, - 0x17F, - 0x180, - 0x181, - 0x182, - 0x183, - 0x184, - 0x185, - 0x186, - 0x187, - 0x188, - 0x189, - 0x18A, - 0x18B, - 0x18C, - 0x18E, - 0x18F, - 0x190, - 0x191, - 0x192, - 0x193, - 0x194, - 0x195, - 0x196, - 0x197, - 0x198, - 0x199, - 0x19C, - 0x19D, - 0x19E, - 0x19F, - 0x1A0, - 0x1A1, - 0x1A2, - 0x1A3, - 0x1A4, - 0x1A5, - 0x1A6, - 0x1A7, - 0x1A8, - 0x1A9, - 0x1AA, - 0x1AC, - 0x1AD, - 0x1AE, - 0x1AF, - 0x1B0, - 0x1B1, - 0x1B2, - 0x1B3, - 0x1B4, - 0x1B5, - 0x1B6, - 0x1B7, - 0x1B8, - 0x1B9, - 0x1BC, - 0x1BD, - 0x1C4, - 0x1C7, - 0x1CA, - 0x1CD, - 0x1CE, - 0x1CF, - 0x1D0, - 0x1D1, - 0x1D2, - 0x1D3, - 0x1D4, - 0x1D5, - 0x1D6, - 0x1D7, - 0x1D8, - 0x1D9, - 0x1DA, - 0x1DB, - 0x1DC, - 0x1DE, - 0x1DF, - 0x1E0, - 0x1E1, - 0x1E2, - 0x1E3, - 0x1E4, - 0x1E5, - 0x1E6, - 0x1E7, - 0x1E8, - 0x1E9, - 0x1EA, - 0x1EB, - 0x1EC, - 0x1ED, - 0x1EE, - 0x1EF, - 0x1F1, - 0x1F4, - 0x1F5, - 0x1F6, - 0x1F7, - 0x1F8, - 0x1F9, - 0x1FA, - 0x1FB, - 0x1FC, - 0x1FD, - 0x1FE, - 0x1FF, - 0x200, - 0x201, - 0x202, - 0x203, - 0x204, - 0x205, - 0x206, - 0x207, - 0x208, - 0x209, - 0x20A, - 0x20B, - 0x20C, - 0x20D, - 0x20E, - 0x20F, - 0x210, - 0x211, - 0x212, - 0x213, - 0x214, - 0x215, - 0x216, - 0x217, - 0x218, - 0x219, - 0x21A, - 0x21B, - 0x21C, - 0x21D, - 0x21E, - 0x21F, - 0x220, - 0x221, - 0x222, - 0x223, - 0x224, - 0x225, - 0x226, - 0x227, - 0x228, - 0x229, - 0x22A, - 0x22B, - 0x22C, - 0x22D, - 0x22E, - 0x22F, - 0x230, - 0x231, - 0x232, - 0x233, - 0x23A, - 0x23B, - 0x23C, - 0x23D, - 0x23E, - 0x23F, - 0x241, - 0x242, - 0x243, - 0x244, - 0x245, - 0x246, - 0x247, - 0x248, - 0x249, - 0x24A, - 0x24B, - 0x24C, - 0x24D, - 0x24E, - 0x24F, - 0x2B0, - 0x2B1, - 0x2B2, - 0x2B3, - 0x2B4, - 0x2B5, - 0x2B6, - 0x2B7, - 0x2B8, - 0x2B9, - 0x2D8, - 0x2D9, - 0x2DA, - 0x2DB, - 0x2DC, - 0x2DD, - 0x2DE, - 0x2E0, - 0x2E1, - 0x2E2, - 0x2E3, - 0x2E4, - 0x2E5, - 0x340, - 0x341, - 0x342, - 0x343, - 0x344, - 0x345, - 0x346, - 0x34F, - 0x350, - 0x370, - 0x371, - 0x372, - 0x373, - 0x374, - 0x375, - 0x376, - 0x377, - 0x378, - 0x37A, - 0x37B, - 0x37E, - 0x37F, - 0x380, - 0x384, - 0x385, - 0x386, - 0x387, - 0x388, - 0x389, - 0x38A, - 0x38B, - 0x38C, - 0x38D, - 0x38E, - 0x38F, - 0x390, - 0x391, - 0x392, - 0x393, - 0x394, - 0x395, - 0x396, - 0x397, - 0x398, - 0x399, - 0x39A, - 0x39B, - 0x39C, - 0x39D, - 0x39E, - 0x39F, - 0x3A0, - 0x3A1, - 0x3A2, - 0x3A3, - 0x3A4, - 0x3A5, - 0x3A6, - 0x3A7, - 0x3A8, - 0x3A9, - 0x3AA, - 0x3AB, - 0x3AC, - 0x3C2, - 0x3C3, - 0x3CF, - 0x3D0, - 0x3D1, - 0x3D2, - 0x3D3, - 0x3D4, - 0x3D5, - 0x3D6, - 0x3D7, - 0x3D8, - 0x3D9, - 0x3DA, - 0x3DB, - 0x3DC, - 0x3DD, - 0x3DE, - 0x3DF, - 0x3E0, - 0x3E1, - 0x3E2, - 0x3E3, - 0x3E4, - 0x3E5, - 0x3E6, - 0x3E7, - 0x3E8, - 0x3E9, - 0x3EA, - 0x3EB, - 0x3EC, - 0x3ED, - 0x3EE, - 0x3EF, - 0x3F0, - 0x3F1, - 0x3F2, - 0x3F3, - 0x3F4, - 0x3F5, - 0x3F6, - 0x3F7, - 0x3F8, - 0x3F9, - 0x3FA, - 0x3FB, - 0x3FD, - 0x3FE, - 0x3FF, - 0x400, - 0x401, - 0x402, - 0x403, - 0x404, - 0x405, - 0x406, - 0x407, - 0x408, - 0x409, - 0x40A, - 0x40B, - 0x40C, - 0x40D, - 0x40E, - 0x40F, - 0x410, - 0x411, - 0x412, - 0x413, - 0x414, - 0x415, - 0x416, - 0x417, - 0x418, - 0x419, - 0x41A, - 0x41B, - 0x41C, - 0x41D, - 0x41E, - 0x41F, - 0x420, - 0x421, - 0x422, - 0x423, - 0x424, - 0x425, - 0x426, - 0x427, - 0x428, - 0x429, - 0x42A, - 0x42B, - 0x42C, - 0x42D, - 0x42E, - 0x42F, - 0x430, - 0x460, - 0x461, - 0x462, - 0x463, - 0x464, - 0x465, - 0x466, - 0x467, - 0x468, - 0x469, - 0x46A, - 0x46B, - 0x46C, - 0x46D, - 0x46E, - 0x46F, - 0x470, - 0x471, - 0x472, - 0x473, - 0x474, - 0x475, - 0x476, - 0x477, - 0x478, - 0x479, - 0x47A, - 0x47B, - 0x47C, - 0x47D, - 0x47E, - 0x47F, - 0x480, - 0x481, - 0x48A, - 0x48B, - 0x48C, - 0x48D, - 0x48E, - 0x48F, - 0x490, - 0x491, - 0x492, - 0x493, - 0x494, - 0x495, - 0x496, - 0x497, - 0x498, - 0x499, - 0x49A, - 0x49B, - 0x49C, - 0x49D, - 0x49E, - 0x49F, - 0x4A0, - 0x4A1, - 0x4A2, - 0x4A3, - 0x4A4, - 0x4A5, - 0x4A6, - 0x4A7, - 0x4A8, - 0x4A9, - 0x4AA, - 0x4AB, - 0x4AC, - 0x4AD, - 0x4AE, - 0x4AF, - 0x4B0, - 0x4B1, - 0x4B2, - 0x4B3, - 0x4B4, - 0x4B5, - 0x4B6, - 0x4B7, - 0x4B8, - 0x4B9, - 0x4BA, - 0x4BB, - 0x4BC, - 0x4BD, - 0x4BE, - 0x4BF, - 0x4C0, - 0x4C1, - 0x4C2, - 0x4C3, - 0x4C4, - 0x4C5, - 0x4C6, - 0x4C7, - 0x4C8, - 0x4C9, - 0x4CA, - 0x4CB, - 0x4CC, - 0x4CD, - 0x4CE, - 0x4D0, - 0x4D1, - 0x4D2, - 0x4D3, - 0x4D4, - 0x4D5, - 0x4D6, - 0x4D7, - 0x4D8, - 0x4D9, - 0x4DA, - 0x4DB, - 0x4DC, - 0x4DD, - 0x4DE, - 0x4DF, - 0x4E0, - 0x4E1, - 0x4E2, - 0x4E3, - 0x4E4, - 0x4E5, - 0x4E6, - 0x4E7, - 0x4E8, - 0x4E9, - 0x4EA, - 0x4EB, - 0x4EC, - 0x4ED, - 0x4EE, - 0x4EF, - 0x4F0, - 0x4F1, - 0x4F2, - 0x4F3, - 0x4F4, - 0x4F5, - 0x4F6, - 0x4F7, - 0x4F8, - 0x4F9, - 0x4FA, - 0x4FB, - 0x4FC, - 0x4FD, - 0x4FE, - 0x4FF, - 0x500, - 0x501, - 0x502, - 0x503, - 0x504, - 0x505, - 0x506, - 0x507, - 0x508, - 0x509, - 0x50A, - 0x50B, - 0x50C, - 0x50D, - 0x50E, - 0x50F, - 0x510, - 0x511, - 0x512, - 0x513, - 0x514, - 0x515, - 0x516, - 0x517, - 0x518, - 0x519, - 0x51A, - 0x51B, - 0x51C, - 0x51D, - 0x51E, - 0x51F, - 0x520, - 0x521, - 0x522, - 0x523, - 0x524, - 0x525, - 0x526, - 0x527, - 0x528, - 0x529, - 0x52A, - 0x52B, - 0x52C, - 0x52D, - 0x52E, - 0x52F, - 0x530, - 0x531, - 0x532, - 0x533, - 0x534, - 0x535, - 0x536, - 0x537, - 0x538, - 0x539, - 0x53A, - 0x53B, - 0x53C, - 0x53D, - 0x53E, - 0x53F, - 0x540, - 0x541, - 0x542, - 0x543, - 0x544, - 0x545, - 0x546, - 0x547, - 0x548, - 0x549, - 0x54A, - 0x54B, - 0x54C, - 0x54D, - 0x54E, - 0x54F, - 0x550, - 0x551, - 0x552, - 0x553, - 0x554, - 0x555, - 0x556, - 0x557, - 0x559, - 0x587, - 0x588, - 0x58B, - 0x58D, - 0x590, - 0x591, - 0x5C8, - 0x5D0, - 0x5EB, - 0x5EF, - 0x5F5, - 0x606, - 0x61C, - 0x61D, - 0x675, - 0x676, - 0x677, - 0x678, - 0x679, - 0x6DD, - 0x6DE, - 0x70E, - 0x710, - 0x74B, - 0x74D, - 0x7B2, - 0x7C0, - 0x7FB, - 0x7FD, - 0x82E, - 0x830, - 0x83F, - 0x840, - 0x85C, - 0x85E, - 0x85F, - 0x860, - 0x86B, - 0x870, - 0x890, - 0x897, - 0x8E2, - 0x8E3, - 0x958, - 0x959, - 0x95A, - 0x95B, - 0x95C, - 0x95D, - 0x95E, - 0x95F, - 0x960, - 0x984, - 0x985, - 0x98D, - 0x98F, - 0x991, - 0x993, - 0x9A9, - 0x9AA, - 0x9B1, - 0x9B2, - 0x9B3, - 0x9B6, - 0x9BA, - 0x9BC, - 0x9C5, - 0x9C7, - 0x9C9, - 0x9CB, - 0x9CF, - 0x9D7, - 0x9D8, - 0x9DC, - 0x9DD, - 0x9DE, - 0x9DF, - 0x9E0, - 0x9E4, - 0x9E6, - 0x9FF, - 0xA01, - 0xA04, - 0xA05, - 0xA0B, - 0xA0F, - 0xA11, - 0xA13, - 0xA29, - 0xA2A, - 0xA31, - 0xA32, - 0xA33, - 0xA34, - 0xA35, - 0xA36, - 0xA37, - 0xA38, - 0xA3A, - 0xA3C, - 0xA3D, - 0xA3E, - 0xA43, - 0xA47, - 0xA49, - 0xA4B, - 0xA4E, - 0xA51, - 0xA52, - 0xA59, - 0xA5A, - 0xA5B, - 0xA5C, - 0xA5D, - 0xA5E, - 0xA5F, - 0xA66, - 0xA77, - 0xA81, - 0xA84, - 0xA85, - 0xA8E, - 0xA8F, - 0xA92, - 0xA93, - 0xAA9, - 0xAAA, - 0xAB1, - 0xAB2, - 0xAB4, - 0xAB5, - 0xABA, - 0xABC, - 0xAC6, - 0xAC7, - 0xACA, - 0xACB, - 0xACE, - 0xAD0, - 0xAD1, - 0xAE0, - 0xAE4, - 0xAE6, - 0xAF2, - 0xAF9, - 0xB00, - 0xB01, - 0xB04, - 0xB05, - 0xB0D, - 0xB0F, - 0xB11, - 0xB13, - 0xB29, - 0xB2A, - 0xB31, - 0xB32, - 0xB34, - 0xB35, - 0xB3A, - 0xB3C, - 0xB45, - 0xB47, - 0xB49, - 0xB4B, - 0xB4E, - 0xB55, - 0xB58, - 0xB5C, - 0xB5D, - 0xB5E, - 0xB5F, - 0xB64, - 0xB66, - 0xB78, - 0xB82, - 0xB84, - 0xB85, - 0xB8B, - 0xB8E, - 0xB91, - 0xB92, - 0xB96, - 0xB99, - 0xB9B, - 0xB9C, - 0xB9D, - 0xB9E, - 0xBA0, - 0xBA3, - 0xBA5, - 0xBA8, - 0xBAB, - 0xBAE, - 0xBBA, - 0xBBE, - 0xBC3, - 0xBC6, - 0xBC9, - 0xBCA, - 0xBCE, - 0xBD0, - 0xBD1, - 0xBD7, - 0xBD8, - 0xBE6, - 0xBFB, - 0xC00, - 0xC0D, - 0xC0E, - 0xC11, - 0xC12, - 0xC29, - 0xC2A, - 0xC3A, - 0xC3C, - 0xC45, - 0xC46, - 0xC49, - 0xC4A, - 0xC4E, - 0xC55, - 0xC57, - 0xC58, - 0xC5B, - 0xC5C, - 0xC5E, - 0xC60, - 0xC64, - 0xC66, - 0xC70, - 0xC77, - 0xC8D, - 0xC8E, - 0xC91, - 0xC92, - 0xCA9, - 0xCAA, - 0xCB4, - 0xCB5, - 0xCBA, - 0xCBC, - 0xCC5, - 0xCC6, - 0xCC9, - 0xCCA, - 0xCCE, - 0xCD5, - 0xCD7, - 0xCDC, - 0xCDF, - 0xCE0, - 0xCE4, - 0xCE6, - 0xCF0, - 0xCF1, - 0xCF4, - 0xD00, - 0xD0D, - 0xD0E, - 0xD11, - 0xD12, - 0xD45, - 0xD46, - 0xD49, - 0xD4A, - 0xD50, - 0xD54, - 0xD64, - 0xD66, - 0xD80, - 0xD81, - 0xD84, - 0xD85, - 0xD97, - 0xD9A, - 0xDB2, - 0xDB3, - 0xDBC, - 0xDBD, - 0xDBE, - 0xDC0, - 0xDC7, - 0xDCA, - 0xDCB, - 0xDCF, - 0xDD5, - 0xDD6, - 0xDD7, - 0xDD8, - 0xDE0, - 0xDE6, - 0xDF0, - 0xDF2, - 0xDF5, - 0xE01, - 0xE33, - 0xE34, - 0xE3B, - 0xE3F, - 0xE5C, - 0xE81, - 0xE83, - 0xE84, - 0xE85, - 0xE86, - 0xE8B, - 0xE8C, - 0xEA4, - 0xEA5, - 0xEA6, - 0xEA7, - 0xEB3, - 0xEB4, - 0xEBE, - 0xEC0, - 0xEC5, - 0xEC6, - 0xEC7, - 0xEC8, - 0xECF, - 0xED0, - 0xEDA, - 0xEDC, - 0xEDD, - 0xEDE, - 0xEE0, - 0xF00, - 0xF0C, - 0xF0D, - 0xF43, - 0xF44, - 0xF48, - 0xF49, - 0xF4D, - 0xF4E, - 0xF52, - 0xF53, - 0xF57, - 0xF58, - 0xF5C, - 0xF5D, - 0xF69, - 0xF6A, - 0xF6D, - 0xF71, - 0xF73, - 0xF74, - 0xF75, - 0xF76, - 0xF77, - 0xF78, - 0xF79, - 0xF7A, - 0xF81, - 0xF82, - 0xF93, - 0xF94, - 0xF98, - 0xF99, - 0xF9D, - 0xF9E, - 0xFA2, - 0xFA3, - 0xFA7, - 0xFA8, - 0xFAC, - 0xFAD, - 0xFB9, - 0xFBA, - 0xFBD, - 0xFBE, - 0xFCD, - 0xFCE, - 0xFDB, - 0x1000, - 0x10A0, - 0x10A1, - 0x10A2, - 0x10A3, - 0x10A4, - 0x10A5, - 0x10A6, - 0x10A7, - 0x10A8, - 0x10A9, - 0x10AA, - 0x10AB, - 0x10AC, - 0x10AD, - 0x10AE, - 0x10AF, - 0x10B0, - 0x10B1, - 0x10B2, - 0x10B3, - 0x10B4, - 0x10B5, - 0x10B6, - 0x10B7, - 0x10B8, - 0x10B9, - 0x10BA, - 0x10BB, - 0x10BC, - 0x10BD, - 0x10BE, - 0x10BF, - 0x10C0, - 0x10C1, - 0x10C2, - 0x10C3, - 0x10C4, - 0x10C5, - 0x10C6, - 0x10C7, - 0x10C8, - 0x10CD, - 0x10CE, - 0x10D0, - 0x10FC, - 0x10FD, - 0x115F, - 0x1161, - 0x1249, - 0x124A, - 0x124E, - 0x1250, - 0x1257, - 0x1258, - 0x1259, - 0x125A, - 0x125E, - 0x1260, - 0x1289, - 0x128A, - 0x128E, - 0x1290, - 0x12B1, - 0x12B2, - 0x12B6, - 0x12B8, - 0x12BF, - 0x12C0, - 0x12C1, - 0x12C2, - 0x12C6, - 0x12C8, - 0x12D7, - 0x12D8, - 0x1311, - 0x1312, - 0x1316, - 0x1318, - 0x135B, - 0x135D, - 0x137D, - 0x1380, - 0x139A, - 0x13A0, - 0x13F6, - 0x13F8, - 0x13F9, - 0x13FA, - 0x13FB, - 0x13FC, - 0x13FD, - 0x13FE, - 0x1400, - 0x1680, - 0x1681, - 0x169D, - 0x16A0, - 0x16F9, - 0x1700, - 0x1716, - 0x171F, - 0x1737, - 0x1740, - 0x1754, - 0x1760, - 0x176D, - 0x176E, - 0x1771, - 0x1772, - 0x1774, - 0x1780, - 0x17B4, - 0x17B6, - 0x17DE, - 0x17E0, - 0x17EA, - 0x17F0, - 0x17FA, - 0x1800, - 0x180B, - 0x1810, - 0x181A, - 0x1820, - 0x1879, - 0x1880, - 0x18AB, - 0x18B0, - 0x18F6, - 0x1900, - 0x191F, - 0x1920, - 0x192C, - 0x1930, - 0x193C, - 0x1940, - 0x1941, - 0x1944, - 0x196E, - 0x1970, - 0x1975, - 0x1980, - 0x19AC, - 0x19B0, - 0x19CA, - 0x19D0, - 0x19DB, - 0x19DE, - 0x1A1C, - 0x1A1E, - 0x1A5F, - 0x1A60, - 0x1A7D, - 0x1A7F, - 0x1A8A, - 0x1A90, - 0x1A9A, - 0x1AA0, - 0x1AAE, - 0x1AB0, - 0x1ADE, - 0x1AE0, - 0x1AEC, - 0x1B00, - 0x1B4D, - 0x1B4E, - 0x1BF4, - 0x1BFC, - 0x1C38, - 0x1C3B, - 0x1C4A, - 0x1C4D, - 0x1C80, - 0x1C81, - 0x1C82, - 0x1C83, - 0x1C84, - 0x1C86, - 0x1C87, - 0x1C88, - 0x1C89, - 0x1C8A, - 0x1C8B, - 0x1C90, - 0x1C91, - 0x1C92, - 0x1C93, - 0x1C94, - 0x1C95, - 0x1C96, - 0x1C97, - 0x1C98, - 0x1C99, - 0x1C9A, - 0x1C9B, - 0x1C9C, - 0x1C9D, - 0x1C9E, - 0x1C9F, - 0x1CA0, - 0x1CA1, - 0x1CA2, - 0x1CA3, - 0x1CA4, - 0x1CA5, - 0x1CA6, - 0x1CA7, - 0x1CA8, - 0x1CA9, - 0x1CAA, - 0x1CAB, - 0x1CAC, - 0x1CAD, - 0x1CAE, - 0x1CAF, - 0x1CB0, - 0x1CB1, - 0x1CB2, - 0x1CB3, - 0x1CB4, - 0x1CB5, - 0x1CB6, - 0x1CB7, - 0x1CB8, - 0x1CB9, - 0x1CBA, - 0x1CBB, - 0x1CBD, - 0x1CBE, - 0x1CBF, - 0x1CC0, - 0x1CC8, - 0x1CD0, - 0x1CFB, - 0x1D00, - 0x1D2C, - 0x1D2D, - 0x1D2E, - 0x1D2F, - 0x1D30, - 0x1D31, - 0x1D32, - 0x1D33, - 0x1D34, - 0x1D35, - 0x1D36, - 0x1D37, - 0x1D38, - 0x1D39, - 0x1D3A, - 0x1D3B, - 0x1D3C, - 0x1D3D, - 0x1D3E, - 0x1D3F, - 0x1D40, - 0x1D41, - 0x1D42, - 0x1D43, - 0x1D44, - 0x1D45, - 0x1D46, - 0x1D47, - 0x1D48, - 0x1D49, - 0x1D4A, - 0x1D4B, - 0x1D4C, - 0x1D4D, - 0x1D4E, - 0x1D4F, - 0x1D50, - 0x1D51, - 0x1D52, - 0x1D53, - 0x1D54, - 0x1D55, - 0x1D56, - 0x1D57, - 0x1D58, - 0x1D59, - 0x1D5A, - 0x1D5B, - 0x1D5C, - 0x1D5D, - 0x1D5E, - 0x1D5F, - 0x1D60, - 0x1D61, - 0x1D62, - 0x1D63, - 0x1D64, - 0x1D65, - 0x1D66, - 0x1D67, - 0x1D68, - 0x1D69, - 0x1D6A, - 0x1D6B, - 0x1D78, - 0x1D79, - 0x1D9B, - 0x1D9C, - 0x1D9D, - 0x1D9E, - 0x1D9F, - 0x1DA0, - 0x1DA1, - 0x1DA2, - 0x1DA3, - 0x1DA4, - 0x1DA5, - 0x1DA6, - 0x1DA7, - 0x1DA8, - 0x1DA9, - 0x1DAA, - 0x1DAB, - 0x1DAC, - 0x1DAD, - 0x1DAE, - 0x1DAF, - 0x1DB0, - 0x1DB1, - 0x1DB2, - 0x1DB3, - 0x1DB4, - 0x1DB5, - 0x1DB6, - 0x1DB7, - 0x1DB8, - 0x1DB9, - 0x1DBA, - 0x1DBB, - 0x1DBC, - 0x1DBD, - 0x1DBE, - 0x1DBF, - 0x1DC0, - 0x1E00, - 0x1E01, - 0x1E02, - 0x1E03, - 0x1E04, - 0x1E05, - 0x1E06, - 0x1E07, - 0x1E08, - 0x1E09, - 0x1E0A, - 0x1E0B, - 0x1E0C, - 0x1E0D, - 0x1E0E, - 0x1E0F, - 0x1E10, - 0x1E11, - 0x1E12, - 0x1E13, - 0x1E14, - 0x1E15, - 0x1E16, - 0x1E17, - 0x1E18, - 0x1E19, - 0x1E1A, - 0x1E1B, - 0x1E1C, - 0x1E1D, - 0x1E1E, - 0x1E1F, - 0x1E20, - 0x1E21, - 0x1E22, - 0x1E23, - 0x1E24, - 0x1E25, - 0x1E26, - 0x1E27, - 0x1E28, - 0x1E29, - 0x1E2A, - 0x1E2B, - 0x1E2C, - 0x1E2D, - 0x1E2E, - 0x1E2F, - 0x1E30, - 0x1E31, - 0x1E32, - 0x1E33, - 0x1E34, - 0x1E35, - 0x1E36, - 0x1E37, - 0x1E38, - 0x1E39, - 0x1E3A, - 0x1E3B, - 0x1E3C, - 0x1E3D, - 0x1E3E, - 0x1E3F, - 0x1E40, - 0x1E41, - 0x1E42, - 0x1E43, - 0x1E44, - 0x1E45, - 0x1E46, - 0x1E47, - 0x1E48, - 0x1E49, - 0x1E4A, - 0x1E4B, - 0x1E4C, - 0x1E4D, - 0x1E4E, - 0x1E4F, - 0x1E50, - 0x1E51, - 0x1E52, - 0x1E53, - 0x1E54, - 0x1E55, - 0x1E56, - 0x1E57, - 0x1E58, - 0x1E59, - 0x1E5A, - 0x1E5B, - 0x1E5C, - 0x1E5D, - 0x1E5E, - 0x1E5F, - 0x1E60, - 0x1E61, - 0x1E62, - 0x1E63, - 0x1E64, - 0x1E65, - 0x1E66, - 0x1E67, - 0x1E68, - 0x1E69, - 0x1E6A, - 0x1E6B, - 0x1E6C, - 0x1E6D, - 0x1E6E, - 0x1E6F, - 0x1E70, - 0x1E71, - 0x1E72, - 0x1E73, - 0x1E74, - 0x1E75, - 0x1E76, - 0x1E77, - 0x1E78, - 0x1E79, - 0x1E7A, - 0x1E7B, - 0x1E7C, - 0x1E7D, - 0x1E7E, - 0x1E7F, - 0x1E80, - 0x1E81, - 0x1E82, - 0x1E83, - 0x1E84, - 0x1E85, - 0x1E86, - 0x1E87, - 0x1E88, - 0x1E89, - 0x1E8A, - 0x1E8B, - 0x1E8C, - 0x1E8D, - 0x1E8E, - 0x1E8F, - 0x1E90, - 0x1E91, - 0x1E92, - 0x1E93, - 0x1E94, - 0x1E95, - 0x1E9A, - 0x1E9B, - 0x1E9C, - 0x1E9E, - 0x1E9F, - 0x1EA0, - 0x1EA1, - 0x1EA2, - 0x1EA3, - 0x1EA4, - 0x1EA5, - 0x1EA6, - 0x1EA7, - 0x1EA8, - 0x1EA9, - 0x1EAA, - 0x1EAB, - 0x1EAC, - 0x1EAD, - 0x1EAE, - 0x1EAF, - 0x1EB0, - 0x1EB1, - 0x1EB2, - 0x1EB3, - 0x1EB4, - 0x1EB5, - 0x1EB6, - 0x1EB7, - 0x1EB8, - 0x1EB9, - 0x1EBA, - 0x1EBB, - 0x1EBC, - 0x1EBD, - 0x1EBE, - 0x1EBF, - 0x1EC0, - 0x1EC1, - 0x1EC2, - 0x1EC3, - 0x1EC4, - 0x1EC5, - 0x1EC6, - 0x1EC7, - 0x1EC8, - 0x1EC9, - 0x1ECA, - 0x1ECB, - 0x1ECC, - 0x1ECD, - 0x1ECE, - 0x1ECF, - 0x1ED0, - 0x1ED1, - 0x1ED2, - 0x1ED3, - 0x1ED4, - 0x1ED5, - 0x1ED6, - 0x1ED7, - 0x1ED8, - 0x1ED9, - 0x1EDA, - 0x1EDB, - 0x1EDC, - 0x1EDD, - 0x1EDE, - 0x1EDF, - 0x1EE0, - 0x1EE1, - 0x1EE2, - 0x1EE3, - 0x1EE4, - 0x1EE5, - 0x1EE6, - 0x1EE7, - 0x1EE8, - 0x1EE9, - 0x1EEA, - 0x1EEB, - 0x1EEC, - 0x1EED, - 0x1EEE, - 0x1EEF, - 0x1EF0, - 0x1EF1, - 0x1EF2, - 0x1EF3, - 0x1EF4, - 0x1EF5, - 0x1EF6, - 0x1EF7, - 0x1EF8, - 0x1EF9, - 0x1EFA, - 0x1EFB, - 0x1EFC, - 0x1EFD, - 0x1EFE, - 0x1EFF, - 0x1F08, - 0x1F09, - 0x1F0A, - 0x1F0B, - 0x1F0C, - 0x1F0D, - 0x1F0E, - 0x1F0F, - 0x1F10, - 0x1F16, - 0x1F18, - 0x1F19, - 0x1F1A, - 0x1F1B, - 0x1F1C, - 0x1F1D, - 0x1F1E, - 0x1F20, - 0x1F28, - 0x1F29, - 0x1F2A, - 0x1F2B, - 0x1F2C, - 0x1F2D, - 0x1F2E, - 0x1F2F, - 0x1F30, - 0x1F38, - 0x1F39, - 0x1F3A, - 0x1F3B, - 0x1F3C, - 0x1F3D, - 0x1F3E, - 0x1F3F, - 0x1F40, - 0x1F46, - 0x1F48, - 0x1F49, - 0x1F4A, - 0x1F4B, - 0x1F4C, - 0x1F4D, - 0x1F4E, - 0x1F50, - 0x1F58, - 0x1F59, - 0x1F5A, - 0x1F5B, - 0x1F5C, - 0x1F5D, - 0x1F5E, - 0x1F5F, - 0x1F60, - 0x1F68, - 0x1F69, - 0x1F6A, - 0x1F6B, - 0x1F6C, - 0x1F6D, - 0x1F6E, - 0x1F6F, - 0x1F70, - 0x1F71, - 0x1F72, - 0x1F73, - 0x1F74, - 0x1F75, - 0x1F76, - 0x1F77, - 0x1F78, - 0x1F79, - 0x1F7A, - 0x1F7B, - 0x1F7C, - 0x1F7D, - 0x1F7E, - 0x1F80, - 0x1F81, - 0x1F82, - 0x1F83, - 0x1F84, - 0x1F85, - 0x1F86, - 0x1F87, - 0x1F88, - 0x1F89, - 0x1F8A, - 0x1F8B, - 0x1F8C, - 0x1F8D, - 0x1F8E, - 0x1F8F, - 0x1F90, - 0x1F91, - 0x1F92, - 0x1F93, - 0x1F94, - 0x1F95, - 0x1F96, - 0x1F97, - 0x1F98, - 0x1F99, - 0x1F9A, - 0x1F9B, - 0x1F9C, - 0x1F9D, - 0x1F9E, - 0x1F9F, - 0x1FA0, - 0x1FA1, - 0x1FA2, - 0x1FA3, - 0x1FA4, - 0x1FA5, - 0x1FA6, - 0x1FA7, - 0x1FA8, - 0x1FA9, - 0x1FAA, - 0x1FAB, - 0x1FAC, - 0x1FAD, - 0x1FAE, - 0x1FAF, - 0x1FB0, - 0x1FB2, - 0x1FB3, - 0x1FB4, - 0x1FB5, - 0x1FB6, - 0x1FB7, - 0x1FB8, - 0x1FB9, - 0x1FBA, - 0x1FBB, - 0x1FBC, - 0x1FBD, - 0x1FBE, - 0x1FBF, - 0x1FC0, - 0x1FC1, - 0x1FC2, - 0x1FC3, - 0x1FC4, - 0x1FC5, - 0x1FC6, - 0x1FC7, - 0x1FC8, - 0x1FC9, - 0x1FCA, - 0x1FCB, - 0x1FCC, - 0x1FCD, - 0x1FCE, - 0x1FCF, - 0x1FD0, - 0x1FD3, - 0x1FD4, - 0x1FD6, - 0x1FD8, - 0x1FD9, - 0x1FDA, - 0x1FDB, - 0x1FDC, - 0x1FDD, - 0x1FDE, - 0x1FDF, - 0x1FE0, - 0x1FE3, - 0x1FE4, - 0x1FE8, - 0x1FE9, - 0x1FEA, - 0x1FEB, - 0x1FEC, - 0x1FED, - 0x1FEE, - 0x1FEF, - 0x1FF0, - 0x1FF2, - 0x1FF3, - 0x1FF4, - 0x1FF5, - 0x1FF6, - 0x1FF7, - 0x1FF8, - 0x1FF9, - 0x1FFA, - 0x1FFB, - 0x1FFC, - 0x1FFD, - 0x1FFE, - 0x1FFF, - 0x2000, - 0x200B, - 0x200C, - 0x200E, - 0x2010, - 0x2011, - 0x2012, - 0x2017, - 0x2018, - 0x2024, - 0x2027, - 0x2028, - 0x202F, - 0x2030, - 0x2033, - 0x2034, - 0x2035, - 0x2036, - 0x2037, - 0x2038, - 0x203C, - 0x203D, - 0x203E, - 0x203F, - 0x2047, - 0x2048, - 0x2049, - 0x204A, - 0x2057, - 0x2058, - 0x205F, - 0x2060, - 0x2065, - 0x206A, - 0x2070, - 0x2071, - 0x2072, - 0x2074, - 0x2075, - 0x2076, - 0x2077, - 0x2078, - 0x2079, - 0x207A, - 0x207B, - 0x207C, - 0x207D, - 0x207E, - 0x207F, - 0x2080, - 0x2081, - 0x2082, - 0x2083, - 0x2084, - 0x2085, - 0x2086, - 0x2087, - 0x2088, - 0x2089, - 0x208A, - 0x208B, - 0x208C, - 0x208D, - 0x208E, - 0x208F, - 0x2090, - 0x2091, - 0x2092, - 0x2093, - 0x2094, - 0x2095, - 0x2096, - 0x2097, - 0x2098, - 0x2099, - 0x209A, - 0x209B, - 0x209C, - 0x209D, - 0x20A0, - 0x20A8, - 0x20A9, - 0x20C2, - 0x20D0, - 0x20F1, - 0x2100, - 0x2101, - 0x2102, - 0x2103, - 0x2104, - 0x2105, - 0x2106, - 0x2107, - 0x2108, - 0x2109, - 0x210A, - 0x210B, - 0x210F, - 0x2110, - 0x2112, - 0x2114, - 0x2115, - 0x2116, - 0x2117, - 0x2119, - 0x211A, - 0x211B, - 0x211E, - 0x2120, - 0x2121, - 0x2122, - 0x2123, - 0x2124, - 0x2125, - 0x2126, - 0x2127, - 0x2128, - 0x2129, - 0x212A, - 0x212B, - 0x212C, - 0x212D, - 0x212E, - 0x212F, - 0x2131, - 0x2132, - 0x2133, - 0x2134, - 0x2135, - 0x2136, - 0x2137, - 0x2138, - 0x2139, - 0x213A, - 0x213B, - 0x213C, - 0x213D, - 0x213F, - 0x2140, - 0x2141, - 0x2145, - 0x2147, - 0x2148, - 0x2149, - 0x214A, - 0x2150, - 0x2151, - 0x2152, - 0x2153, - 0x2154, - 0x2155, - 0x2156, - 0x2157, - 0x2158, - 0x2159, - 0x215A, - 0x215B, - 0x215C, - 0x215D, - 0x215E, - 0x215F, - 0x2160, - 0x2161, - 0x2162, - 0x2163, - 0x2164, - 0x2165, - 0x2166, - 0x2167, - 0x2168, - 0x2169, - 0x216A, - 0x216B, - 0x216C, - 0x216D, - 0x216E, - 0x216F, - 0x2170, - 0x2171, - 0x2172, - 0x2173, - 0x2174, - 0x2175, - 0x2176, - 0x2177, - 0x2178, - 0x2179, - 0x217A, - 0x217B, - 0x217C, - 0x217D, - 0x217E, - 0x217F, - 0x2180, - 0x2183, - 0x2184, - 0x2189, - 0x218A, - 0x218C, - 0x2190, - 0x222C, - 0x222D, - 0x222E, - 0x222F, - 0x2230, - 0x2231, - 0x2329, - 0x232A, - 0x232B, - 0x242A, - 0x2440, - 0x244B, - 0x2460, - 0x2461, - 0x2462, - 0x2463, - 0x2464, - 0x2465, - 0x2466, - 0x2467, - 0x2468, - 0x2469, - 0x246A, - 0x246B, - 0x246C, - 0x246D, - 0x246E, - 0x246F, - 0x2470, - 0x2471, - 0x2472, - 0x2473, - 0x2474, - 0x2475, - 0x2476, - 0x2477, - 0x2478, - 0x2479, - 0x247A, - 0x247B, - 0x247C, - 0x247D, - 0x247E, - 0x247F, - 0x2480, - 0x2481, - 0x2482, - 0x2483, - 0x2484, - 0x2485, - 0x2486, - 0x2487, - 0x2488, - 0x249C, - 0x249D, - 0x249E, - 0x249F, - 0x24A0, - 0x24A1, - 0x24A2, - 0x24A3, - 0x24A4, - 0x24A5, - 0x24A6, - 0x24A7, - 0x24A8, - 0x24A9, - 0x24AA, - 0x24AB, - 0x24AC, - 0x24AD, - 0x24AE, - 0x24AF, - 0x24B0, - 0x24B1, - 0x24B2, - 0x24B3, - 0x24B4, - 0x24B5, - 0x24B6, - 0x24B7, - 0x24B8, - 0x24B9, - 0x24BA, - 0x24BB, - 0x24BC, - 0x24BD, - 0x24BE, - 0x24BF, - 0x24C0, - 0x24C1, - 0x24C2, - 0x24C3, - 0x24C4, - 0x24C5, - 0x24C6, - 0x24C7, - 0x24C8, - 0x24C9, - 0x24CA, - 0x24CB, - 0x24CC, - 0x24CD, - 0x24CE, - 0x24CF, - 0x24D0, - 0x24D1, - 0x24D2, - 0x24D3, - 0x24D4, - 0x24D5, - 0x24D6, - 0x24D7, - 0x24D8, - 0x24D9, - 0x24DA, - 0x24DB, - 0x24DC, - 0x24DD, - 0x24DE, - 0x24DF, - 0x24E0, - 0x24E1, - 0x24E2, - 0x24E3, - 0x24E4, - 0x24E5, - 0x24E6, - 0x24E7, - 0x24E8, - 0x24E9, - 0x24EA, - 0x24EB, - 0x2A0C, - 0x2A0D, - 0x2A74, - 0x2A75, - 0x2A76, - 0x2A77, - 0x2ADC, - 0x2ADD, - 0x2B74, - 0x2B76, - 0x2C00, - 0x2C01, - 0x2C02, - 0x2C03, - 0x2C04, - 0x2C05, - 0x2C06, - 0x2C07, - 0x2C08, - 0x2C09, - 0x2C0A, - 0x2C0B, - 0x2C0C, - 0x2C0D, - 0x2C0E, - 0x2C0F, - 0x2C10, - 0x2C11, - 0x2C12, - 0x2C13, - 0x2C14, - 0x2C15, - 0x2C16, - 0x2C17, - 0x2C18, - 0x2C19, - 0x2C1A, - 0x2C1B, - 0x2C1C, - 0x2C1D, - 0x2C1E, - 0x2C1F, - 0x2C20, - 0x2C21, - 0x2C22, - 0x2C23, - 0x2C24, - 0x2C25, - 0x2C26, - 0x2C27, - 0x2C28, - 0x2C29, - 0x2C2A, - 0x2C2B, - 0x2C2C, - 0x2C2D, - 0x2C2E, - 0x2C2F, - 0x2C30, - 0x2C60, - 0x2C61, - 0x2C62, - 0x2C63, - 0x2C64, - 0x2C65, - 0x2C67, - 0x2C68, - 0x2C69, - 0x2C6A, - 0x2C6B, - 0x2C6C, - 0x2C6D, - 0x2C6E, - 0x2C6F, - 0x2C70, - 0x2C71, - 0x2C72, - 0x2C73, - 0x2C75, - 0x2C76, - 0x2C7C, - 0x2C7D, - 0x2C7E, - 0x2C7F, - 0x2C80, - 0x2C81, - 0x2C82, - 0x2C83, - 0x2C84, - 0x2C85, - 0x2C86, - 0x2C87, - 0x2C88, - 0x2C89, - 0x2C8A, - 0x2C8B, - 0x2C8C, - 0x2C8D, - 0x2C8E, - 0x2C8F, - 0x2C90, - 0x2C91, - 0x2C92, - 0x2C93, - 0x2C94, - 0x2C95, - 0x2C96, - 0x2C97, - 0x2C98, - 0x2C99, - 0x2C9A, - 0x2C9B, - 0x2C9C, - 0x2C9D, - 0x2C9E, - 0x2C9F, - 0x2CA0, - 0x2CA1, - 0x2CA2, - 0x2CA3, - 0x2CA4, - 0x2CA5, - 0x2CA6, - 0x2CA7, - 0x2CA8, - 0x2CA9, - 0x2CAA, - 0x2CAB, - 0x2CAC, - 0x2CAD, - 0x2CAE, - 0x2CAF, - 0x2CB0, - 0x2CB1, - 0x2CB2, - 0x2CB3, - 0x2CB4, - 0x2CB5, - 0x2CB6, - 0x2CB7, - 0x2CB8, - 0x2CB9, - 0x2CBA, - 0x2CBB, - 0x2CBC, - 0x2CBD, - 0x2CBE, - 0x2CBF, - 0x2CC0, - 0x2CC1, - 0x2CC2, - 0x2CC3, - 0x2CC4, - 0x2CC5, - 0x2CC6, - 0x2CC7, - 0x2CC8, - 0x2CC9, - 0x2CCA, - 0x2CCB, - 0x2CCC, - 0x2CCD, - 0x2CCE, - 0x2CCF, - 0x2CD0, - 0x2CD1, - 0x2CD2, - 0x2CD3, - 0x2CD4, - 0x2CD5, - 0x2CD6, - 0x2CD7, - 0x2CD8, - 0x2CD9, - 0x2CDA, - 0x2CDB, - 0x2CDC, - 0x2CDD, - 0x2CDE, - 0x2CDF, - 0x2CE0, - 0x2CE1, - 0x2CE2, - 0x2CE3, - 0x2CEB, - 0x2CEC, - 0x2CED, - 0x2CEE, - 0x2CF2, - 0x2CF3, - 0x2CF4, - 0x2CF9, - 0x2D26, - 0x2D27, - 0x2D28, - 0x2D2D, - 0x2D2E, - 0x2D30, - 0x2D68, - 0x2D6F, - 0x2D70, - 0x2D71, - 0x2D7F, - 0x2D97, - 0x2DA0, - 0x2DA7, - 0x2DA8, - 0x2DAF, - 0x2DB0, - 0x2DB7, - 0x2DB8, - 0x2DBF, - 0x2DC0, - 0x2DC7, - 0x2DC8, - 0x2DCF, - 0x2DD0, - 0x2DD7, - 0x2DD8, - 0x2DDF, - 0x2DE0, - 0x2E5E, - 0x2E80, - 0x2E9A, - 0x2E9B, - 0x2E9F, - 0x2EA0, - 0x2EF3, - 0x2EF4, - 0x2F00, - 0x2F01, - 0x2F02, - 0x2F03, - 0x2F04, - 0x2F05, - 0x2F06, - 0x2F07, - 0x2F08, - 0x2F09, - 0x2F0A, - 0x2F0B, - 0x2F0C, - 0x2F0D, - 0x2F0E, - 0x2F0F, - 0x2F10, - 0x2F11, - 0x2F12, - 0x2F13, - 0x2F14, - 0x2F15, - 0x2F16, - 0x2F17, - 0x2F18, - 0x2F19, - 0x2F1A, - 0x2F1B, - 0x2F1C, - 0x2F1D, - 0x2F1E, - 0x2F1F, - 0x2F20, - 0x2F21, - 0x2F22, - 0x2F23, - 0x2F24, - 0x2F25, - 0x2F26, - 0x2F27, - 0x2F28, - 0x2F29, - 0x2F2A, - 0x2F2B, - 0x2F2C, - 0x2F2D, - 0x2F2E, - 0x2F2F, - 0x2F30, - 0x2F31, - 0x2F32, - 0x2F33, - 0x2F34, - 0x2F35, - 0x2F36, - 0x2F37, - 0x2F38, - 0x2F39, - 0x2F3A, - 0x2F3B, - 0x2F3C, - 0x2F3D, - 0x2F3E, - 0x2F3F, - 0x2F40, - 0x2F41, - 0x2F42, - 0x2F43, - 0x2F44, - 0x2F45, - 0x2F46, - 0x2F47, - 0x2F48, - 0x2F49, - 0x2F4A, - 0x2F4B, - 0x2F4C, - 0x2F4D, - 0x2F4E, - 0x2F4F, - 0x2F50, - 0x2F51, - 0x2F52, - 0x2F53, - 0x2F54, - 0x2F55, - 0x2F56, - 0x2F57, - 0x2F58, - 0x2F59, - 0x2F5A, - 0x2F5B, - 0x2F5C, - 0x2F5D, - 0x2F5E, - 0x2F5F, - 0x2F60, - 0x2F61, - 0x2F62, - 0x2F63, - 0x2F64, - 0x2F65, - 0x2F66, - 0x2F67, - 0x2F68, - 0x2F69, - 0x2F6A, - 0x2F6B, - 0x2F6C, - 0x2F6D, - 0x2F6E, - 0x2F6F, - 0x2F70, - 0x2F71, - 0x2F72, - 0x2F73, - 0x2F74, - 0x2F75, - 0x2F76, - 0x2F77, - 0x2F78, - 0x2F79, - 0x2F7A, - 0x2F7B, - 0x2F7C, - 0x2F7D, - 0x2F7E, - 0x2F7F, - 0x2F80, - 0x2F81, - 0x2F82, - 0x2F83, - 0x2F84, - 0x2F85, - 0x2F86, - 0x2F87, - 0x2F88, - 0x2F89, - 0x2F8A, - 0x2F8B, - 0x2F8C, - 0x2F8D, - 0x2F8E, - 0x2F8F, - 0x2F90, - 0x2F91, - 0x2F92, - 0x2F93, - 0x2F94, - 0x2F95, - 0x2F96, - 0x2F97, - 0x2F98, - 0x2F99, - 0x2F9A, - 0x2F9B, - 0x2F9C, - 0x2F9D, - 0x2F9E, - 0x2F9F, - 0x2FA0, - 0x2FA1, - 0x2FA2, - 0x2FA3, - 0x2FA4, - 0x2FA5, - 0x2FA6, - 0x2FA7, - 0x2FA8, - 0x2FA9, - 0x2FAA, - 0x2FAB, - 0x2FAC, - 0x2FAD, - 0x2FAE, - 0x2FAF, - 0x2FB0, - 0x2FB1, - 0x2FB2, - 0x2FB3, - 0x2FB4, - 0x2FB5, - 0x2FB6, - 0x2FB7, - 0x2FB8, - 0x2FB9, - 0x2FBA, - 0x2FBB, - 0x2FBC, - 0x2FBD, - 0x2FBE, - 0x2FBF, - 0x2FC0, - 0x2FC1, - 0x2FC2, - 0x2FC3, - 0x2FC4, - 0x2FC5, - 0x2FC6, - 0x2FC7, - 0x2FC8, - 0x2FC9, - 0x2FCA, - 0x2FCB, - 0x2FCC, - 0x2FCD, - 0x2FCE, - 0x2FCF, - 0x2FD0, - 0x2FD1, - 0x2FD2, - 0x2FD3, - 0x2FD4, - 0x2FD5, - 0x2FD6, - 0x3000, - 0x3001, - 0x3002, - 0x3003, - 0x3036, - 0x3037, - 0x3038, - 0x3039, - 0x303A, - 0x303B, - 0x3040, - 0x3041, - 0x3097, - 0x3099, - 0x309B, - 0x309C, - 0x309D, - 0x309F, - 0x30A0, - 0x30FF, - 0x3100, - 0x3105, - 0x3130, - 0x3131, - 0x3132, - 0x3133, - 0x3134, - 0x3135, - 0x3136, - 0x3137, - 0x3138, - 0x3139, - 0x313A, - 0x313B, - 0x313C, - 0x313D, - 0x313E, - 0x313F, - 0x3140, - 0x3141, - 0x3142, - 0x3143, - 0x3144, - 0x3145, - 0x3146, - 0x3147, - 0x3148, - 0x3149, - 0x314A, - 0x314B, - 0x314C, - 0x314D, - 0x314E, - 0x314F, - 0x3150, - 0x3151, - 0x3152, - 0x3153, - 0x3154, - 0x3155, - 0x3156, - 0x3157, - 0x3158, - 0x3159, - 0x315A, - 0x315B, - 0x315C, - 0x315D, - 0x315E, - 0x315F, - 0x3160, - 0x3161, - 0x3162, - 0x3163, - 0x3164, - 0x3165, - 0x3166, - 0x3167, - 0x3168, - 0x3169, - 0x316A, - 0x316B, - 0x316C, - 0x316D, - 0x316E, - 0x316F, - 0x3170, - 0x3171, - 0x3172, - 0x3173, - 0x3174, - 0x3175, - 0x3176, - 0x3177, - 0x3178, - 0x3179, - 0x317A, - 0x317B, - 0x317C, - 0x317D, - 0x317E, - 0x317F, - 0x3180, - 0x3181, - 0x3182, - 0x3183, - 0x3184, - 0x3185, - 0x3186, - 0x3187, - 0x3188, - 0x3189, - 0x318A, - 0x318B, - 0x318C, - 0x318D, - 0x318E, - 0x318F, - 0x3190, - 0x3192, - 0x3193, - 0x3194, - 0x3195, - 0x3196, - 0x3197, - 0x3198, - 0x3199, - 0x319A, - 0x319B, - 0x319C, - 0x319D, - 0x319E, - 0x319F, - 0x31A0, - 0x31E6, - 0x31F0, - 0x3200, - 0x3201, - 0x3202, - 0x3203, - 0x3204, - 0x3205, - 0x3206, - 0x3207, - 0x3208, - 0x3209, - 0x320A, - 0x320B, - 0x320C, - 0x320D, - 0x320E, - 0x320F, - 0x3210, - 0x3211, - 0x3212, - 0x3213, - 0x3214, - 0x3215, - 0x3216, - 0x3217, - 0x3218, - 0x3219, - 0x321A, - 0x321B, - 0x321C, - 0x321D, - 0x321E, - 0x321F, - 0x3220, - 0x3221, - 0x3222, - 0x3223, - 0x3224, - 0x3225, - 0x3226, - 0x3227, - 0x3228, - 0x3229, - 0x322A, - 0x322B, - 0x322C, - 0x322D, - 0x322E, - 0x322F, - 0x3230, - 0x3231, - 0x3232, - 0x3233, - 0x3234, - 0x3235, - 0x3236, - 0x3237, - 0x3238, - 0x3239, - 0x323A, - 0x323B, - 0x323C, - 0x323D, - 0x323E, - 0x323F, - 0x3240, - 0x3241, - 0x3242, - 0x3243, - 0x3244, - 0x3245, - 0x3246, - 0x3247, - 0x3248, - 0x3250, - 0x3251, - 0x3252, - 0x3253, - 0x3254, - 0x3255, - 0x3256, - 0x3257, - 0x3258, - 0x3259, - 0x325A, - 0x325B, - 0x325C, - 0x325D, - 0x325E, - 0x325F, - 0x3260, - 0x3261, - 0x3262, - 0x3263, - 0x3264, - 0x3265, - 0x3266, - 0x3267, - 0x3268, - 0x3269, - 0x326A, - 0x326B, - 0x326C, - 0x326D, - 0x326E, - 0x326F, - 0x3270, - 0x3271, - 0x3272, - 0x3273, - 0x3274, - 0x3275, - 0x3276, - 0x3277, - 0x3278, - 0x3279, - 0x327A, - 0x327B, - 0x327C, - 0x327D, - 0x327E, - 0x327F, - 0x3280, - 0x3281, - 0x3282, - 0x3283, - 0x3284, - 0x3285, - 0x3286, - 0x3287, - 0x3288, - 0x3289, - 0x328A, - 0x328B, - 0x328C, - 0x328D, - 0x328E, - 0x328F, - 0x3290, - 0x3291, - 0x3292, - 0x3293, - 0x3294, - 0x3295, - 0x3296, - 0x3297, - 0x3298, - 0x3299, - 0x329A, - 0x329B, - 0x329C, - 0x329D, - 0x329E, - 0x329F, - 0x32A0, - 0x32A1, - 0x32A2, - 0x32A3, - 0x32A4, - 0x32A5, - 0x32A6, - 0x32A7, - 0x32A8, - 0x32A9, - 0x32AA, - 0x32AB, - 0x32AC, - 0x32AD, - 0x32AE, - 0x32AF, - 0x32B0, - 0x32B1, - 0x32B2, - 0x32B3, - 0x32B4, - 0x32B5, - 0x32B6, - 0x32B7, - 0x32B8, - 0x32B9, - 0x32BA, - 0x32BB, - 0x32BC, - 0x32BD, - 0x32BE, - 0x32BF, - 0x32C0, - 0x32C1, - 0x32C2, - 0x32C3, - 0x32C4, - 0x32C5, - 0x32C6, - 0x32C7, - 0x32C8, - 0x32C9, - 0x32CA, - 0x32CB, - 0x32CC, - 0x32CD, - 0x32CE, - 0x32CF, - 0x32D0, - 0x32D1, - 0x32D2, - 0x32D3, - 0x32D4, - 0x32D5, - 0x32D6, - 0x32D7, - 0x32D8, - 0x32D9, - 0x32DA, - 0x32DB, - 0x32DC, - 0x32DD, - 0x32DE, - 0x32DF, - 0x32E0, - 0x32E1, - 0x32E2, - 0x32E3, - 0x32E4, - 0x32E5, - 0x32E6, - 0x32E7, - 0x32E8, - 0x32E9, - 0x32EA, - 0x32EB, - 0x32EC, - 0x32ED, - 0x32EE, - 0x32EF, - 0x32F0, - 0x32F1, - 0x32F2, - 0x32F3, - 0x32F4, - 0x32F5, - 0x32F6, - 0x32F7, - 0x32F8, - 0x32F9, - 0x32FA, - 0x32FB, - 0x32FC, - 0x32FD, - 0x32FE, - 0x32FF, - 0x3300, - 0x3301, - 0x3302, - 0x3303, - 0x3304, - 0x3305, - 0x3306, - 0x3307, - 0x3308, - 0x3309, - 0x330A, - 0x330B, - 0x330C, - 0x330D, - 0x330E, - 0x330F, - 0x3310, - 0x3311, - 0x3312, - 0x3313, - 0x3314, - 0x3315, - 0x3316, - 0x3317, - 0x3318, - 0x3319, - 0x331A, - 0x331B, - 0x331C, - 0x331D, - 0x331E, - 0x331F, - 0x3320, - 0x3321, - 0x3322, - 0x3323, - 0x3324, - 0x3325, - 0x3326, - 0x3327, - 0x3328, - 0x3329, - 0x332A, - 0x332B, - 0x332C, - 0x332D, - 0x332E, - 0x332F, - 0x3330, - 0x3331, - 0x3332, - 0x3333, - 0x3334, - 0x3335, - 0x3336, - 0x3337, - 0x3338, - 0x3339, - 0x333A, - 0x333B, - 0x333C, - 0x333D, - 0x333E, - 0x333F, - 0x3340, - 0x3341, - 0x3342, - 0x3343, - 0x3344, - 0x3345, - 0x3346, - 0x3347, - 0x3348, - 0x3349, - 0x334A, - 0x334B, - 0x334C, - 0x334D, - 0x334E, - 0x334F, - 0x3350, - 0x3351, - 0x3352, - 0x3353, - 0x3354, - 0x3355, - 0x3356, - 0x3357, - 0x3358, - 0x3359, - 0x335A, - 0x335B, - 0x335C, - 0x335D, - 0x335E, - 0x335F, - 0x3360, - 0x3361, - 0x3362, - 0x3363, - 0x3364, - 0x3365, - 0x3366, - 0x3367, - 0x3368, - 0x3369, - 0x336A, - 0x336B, - 0x336C, - 0x336D, - 0x336E, - 0x336F, - 0x3370, - 0x3371, - 0x3372, - 0x3373, - 0x3374, - 0x3375, - 0x3376, - 0x3377, - 0x3378, - 0x3379, - 0x337A, - 0x337B, - 0x337C, - 0x337D, - 0x337E, - 0x337F, - 0x3380, - 0x3381, - 0x3382, - 0x3383, - 0x3384, - 0x3385, - 0x3386, - 0x3387, - 0x3388, - 0x3389, - 0x338A, - 0x338B, - 0x338C, - 0x338D, - 0x338E, - 0x338F, - 0x3390, - 0x3391, - 0x3392, - 0x3393, - 0x3394, - 0x3395, - 0x3396, - 0x3397, - 0x3398, - 0x3399, - 0x339A, - 0x339B, - 0x339C, - 0x339D, - 0x339E, - 0x339F, - 0x33A0, - 0x33A1, - 0x33A2, - 0x33A3, - 0x33A4, - 0x33A5, - 0x33A6, - 0x33A7, - 0x33A8, - 0x33A9, - 0x33AA, - 0x33AB, - 0x33AC, - 0x33AD, - 0x33AE, - 0x33AF, - 0x33B0, - 0x33B1, - 0x33B2, - 0x33B3, - 0x33B4, - 0x33B5, - 0x33B6, - 0x33B7, - 0x33B8, - 0x33B9, - 0x33BA, - 0x33BB, - 0x33BC, - 0x33BD, - 0x33BE, - 0x33BF, - 0x33C0, - 0x33C1, - 0x33C2, - 0x33C3, - 0x33C4, - 0x33C5, - 0x33C6, - 0x33C7, - 0x33C8, - 0x33C9, - 0x33CA, - 0x33CB, - 0x33CC, - 0x33CD, - 0x33CE, - 0x33CF, - 0x33D0, - 0x33D1, - 0x33D2, - 0x33D3, - 0x33D4, - 0x33D5, - 0x33D6, - 0x33D7, - 0x33D8, - 0x33D9, - 0x33DA, - 0x33DB, - 0x33DC, - 0x33DD, - 0x33DE, - 0x33DF, - 0x33E0, - 0x33E1, - 0x33E2, - 0x33E3, - 0x33E4, - 0x33E5, - 0x33E6, - 0x33E7, - 0x33E8, - 0x33E9, - 0x33EA, - 0x33EB, - 0x33EC, - 0x33ED, - 0x33EE, - 0x33EF, - 0x33F0, - 0x33F1, - 0x33F2, - 0x33F3, - 0x33F4, - 0x33F5, - 0x33F6, - 0x33F7, - 0x33F8, - 0x33F9, - 0x33FA, - 0x33FB, - 0x33FC, - 0x33FD, - 0x33FE, - 0x33FF, - 0x3400, - 0xA48D, - 0xA490, - 0xA4C7, - 0xA4D0, - 0xA62C, - 0xA640, - 0xA641, - 0xA642, - 0xA643, - 0xA644, - 0xA645, - 0xA646, - 0xA647, - 0xA648, - 0xA649, - 0xA64A, - 0xA64B, - 0xA64C, - 0xA64D, - 0xA64E, - 0xA64F, - 0xA650, - 0xA651, - 0xA652, - 0xA653, - 0xA654, - 0xA655, - 0xA656, - 0xA657, - 0xA658, - 0xA659, - 0xA65A, - 0xA65B, - 0xA65C, - 0xA65D, - 0xA65E, - 0xA65F, - 0xA660, - 0xA661, - 0xA662, - 0xA663, - 0xA664, - 0xA665, - 0xA666, - 0xA667, - 0xA668, - 0xA669, - 0xA66A, - 0xA66B, - 0xA66C, - 0xA66D, - 0xA680, - 0xA681, - 0xA682, - 0xA683, - 0xA684, - 0xA685, - 0xA686, - 0xA687, - 0xA688, - 0xA689, - 0xA68A, - 0xA68B, - 0xA68C, - 0xA68D, - 0xA68E, - 0xA68F, - 0xA690, - 0xA691, - 0xA692, - 0xA693, - 0xA694, - 0xA695, - 0xA696, - 0xA697, - 0xA698, - 0xA699, - 0xA69A, - 0xA69B, - 0xA69C, - 0xA69D, - 0xA69E, - 0xA6F8, - 0xA700, - 0xA722, - 0xA723, - 0xA724, - 0xA725, - 0xA726, - 0xA727, - 0xA728, - 0xA729, - 0xA72A, - 0xA72B, - 0xA72C, - 0xA72D, - 0xA72E, - 0xA72F, - 0xA732, - 0xA733, - 0xA734, - 0xA735, - 0xA736, - 0xA737, - 0xA738, - 0xA739, - 0xA73A, - 0xA73B, - 0xA73C, - 0xA73D, - 0xA73E, - 0xA73F, - 0xA740, - 0xA741, - 0xA742, - 0xA743, - 0xA744, - 0xA745, - 0xA746, - 0xA747, - 0xA748, - 0xA749, - 0xA74A, - 0xA74B, - 0xA74C, - 0xA74D, - 0xA74E, - 0xA74F, - 0xA750, - 0xA751, - 0xA752, - 0xA753, - 0xA754, - 0xA755, - 0xA756, - 0xA757, - 0xA758, - 0xA759, - 0xA75A, - 0xA75B, - 0xA75C, - 0xA75D, - 0xA75E, - 0xA75F, - 0xA760, - 0xA761, - 0xA762, - 0xA763, - 0xA764, - 0xA765, - 0xA766, - 0xA767, - 0xA768, - 0xA769, - 0xA76A, - 0xA76B, - 0xA76C, - 0xA76D, - 0xA76E, - 0xA76F, - 0xA770, - 0xA771, - 0xA779, - 0xA77A, - 0xA77B, - 0xA77C, - 0xA77D, - 0xA77E, - 0xA77F, - 0xA780, - 0xA781, - 0xA782, - 0xA783, - 0xA784, - 0xA785, - 0xA786, - 0xA787, - 0xA78B, - 0xA78C, - 0xA78D, - 0xA78E, - 0xA790, - 0xA791, - 0xA792, - 0xA793, - 0xA796, - 0xA797, - 0xA798, - 0xA799, - 0xA79A, - 0xA79B, - 0xA79C, - 0xA79D, - 0xA79E, - 0xA79F, - 0xA7A0, - 0xA7A1, - 0xA7A2, - 0xA7A3, - 0xA7A4, - 0xA7A5, - 0xA7A6, - 0xA7A7, - 0xA7A8, - 0xA7A9, - 0xA7AA, - 0xA7AB, - 0xA7AC, - 0xA7AD, - 0xA7AE, - 0xA7AF, - 0xA7B0, - 0xA7B1, - 0xA7B2, - 0xA7B3, - 0xA7B4, - 0xA7B5, - 0xA7B6, - 0xA7B7, - 0xA7B8, - 0xA7B9, - 0xA7BA, - 0xA7BB, - 0xA7BC, - 0xA7BD, - 0xA7BE, - 0xA7BF, - 0xA7C0, - 0xA7C1, - 0xA7C2, - 0xA7C3, - 0xA7C4, - 0xA7C5, - 0xA7C6, - 0xA7C7, - 0xA7C8, - 0xA7C9, - 0xA7CA, - 0xA7CB, - 0xA7CC, - 0xA7CD, - 0xA7CE, - 0xA7CF, - 0xA7D0, - 0xA7D1, - 0xA7D2, - 0xA7D3, - 0xA7D4, - 0xA7D5, - 0xA7D6, - 0xA7D7, - 0xA7D8, - 0xA7D9, - 0xA7DA, - 0xA7DB, - 0xA7DC, - 0xA7DD, - 0xA7F1, - 0xA7F2, - 0xA7F3, - 0xA7F4, - 0xA7F5, - 0xA7F6, - 0xA7F8, - 0xA7F9, - 0xA7FA, - 0xA82D, - 0xA830, - 0xA83A, - 0xA840, - 0xA878, - 0xA880, - 0xA8C6, - 0xA8CE, - 0xA8DA, - 0xA8E0, - 0xA954, - 0xA95F, - 0xA97D, - 0xA980, - 0xA9CE, - 0xA9CF, - 0xA9DA, - 0xA9DE, - 0xA9FF, - 0xAA00, - 0xAA37, - 0xAA40, - 0xAA4E, - 0xAA50, - 0xAA5A, - 0xAA5C, - 0xAAC3, - 0xAADB, - 0xAAF7, - 0xAB01, - 0xAB07, - 0xAB09, - 0xAB0F, - 0xAB11, - 0xAB17, - 0xAB20, - 0xAB27, - 0xAB28, - 0xAB2F, - 0xAB30, - 0xAB5C, - 0xAB5D, - 0xAB5E, - 0xAB5F, - 0xAB60, - 0xAB69, - 0xAB6A, - 0xAB6C, - 0xAB70, - 0xAB71, - 0xAB72, - 0xAB73, - 0xAB74, - 0xAB75, - 0xAB76, - 0xAB77, - 0xAB78, - 0xAB79, - 0xAB7A, - 0xAB7B, - 0xAB7C, - 0xAB7D, - 0xAB7E, - 0xAB7F, - 0xAB80, - 0xAB81, - 0xAB82, - 0xAB83, - 0xAB84, - 0xAB85, - 0xAB86, - 0xAB87, - 0xAB88, - 0xAB89, - 0xAB8A, - 0xAB8B, - 0xAB8C, - 0xAB8D, - 0xAB8E, - 0xAB8F, - 0xAB90, - 0xAB91, - 0xAB92, - 0xAB93, - 0xAB94, - 0xAB95, - 0xAB96, - 0xAB97, - 0xAB98, - 0xAB99, - 0xAB9A, - 0xAB9B, - 0xAB9C, - 0xAB9D, - 0xAB9E, - 0xAB9F, - 0xABA0, - 0xABA1, - 0xABA2, - 0xABA3, - 0xABA4, - 0xABA5, - 0xABA6, - 0xABA7, - 0xABA8, - 0xABA9, - 0xABAA, - 0xABAB, - 0xABAC, - 0xABAD, - 0xABAE, - 0xABAF, - 0xABB0, - 0xABB1, - 0xABB2, - 0xABB3, - 0xABB4, - 0xABB5, - 0xABB6, - 0xABB7, - 0xABB8, - 0xABB9, - 0xABBA, - 0xABBB, - 0xABBC, - 0xABBD, - 0xABBE, - 0xABBF, - 0xABC0, - 0xABEE, - 0xABF0, - 0xABFA, - 0xAC00, - 0xD7A4, - 0xD7B0, - 0xD7C7, - 0xD7CB, - 0xD7FC, - 0xF900, - 0xF901, - 0xF902, - 0xF903, - 0xF904, - 0xF905, - 0xF906, - 0xF907, - 0xF909, - 0xF90A, - 0xF90B, - 0xF90C, - 0xF90D, - 0xF90E, - 0xF90F, - 0xF910, - 0xF911, - 0xF912, - 0xF913, - 0xF914, - 0xF915, - 0xF916, - 0xF917, - 0xF918, - 0xF919, - 0xF91A, - 0xF91B, - 0xF91C, - 0xF91D, - 0xF91E, - 0xF91F, - 0xF920, - 0xF921, - 0xF922, - 0xF923, - 0xF924, - 0xF925, - 0xF926, - 0xF927, - 0xF928, - 0xF929, - 0xF92A, - 0xF92B, - 0xF92C, - 0xF92D, - 0xF92E, - 0xF92F, - 0xF930, - 0xF931, - 0xF932, - 0xF933, - 0xF934, - 0xF935, - 0xF936, - 0xF937, - 0xF938, - 0xF939, - 0xF93A, - 0xF93B, - 0xF93C, - 0xF93D, - 0xF93E, - 0xF93F, - 0xF940, - 0xF941, - 0xF942, - 0xF943, - 0xF944, - 0xF945, - 0xF946, - 0xF947, - 0xF948, - 0xF949, - 0xF94A, - 0xF94B, - 0xF94C, - 0xF94D, - 0xF94E, - 0xF94F, - 0xF950, - 0xF951, - 0xF952, - 0xF953, - 0xF954, - 0xF955, - 0xF956, - 0xF957, - 0xF958, - 0xF959, - 0xF95A, - 0xF95B, - 0xF95C, - 0xF95D, - 0xF95E, - 0xF95F, - 0xF960, - 0xF961, - 0xF962, - 0xF963, - 0xF964, - 0xF965, - 0xF966, - 0xF967, - 0xF968, - 0xF969, - 0xF96A, - 0xF96B, - 0xF96C, - 0xF96D, - 0xF96E, - 0xF96F, - 0xF970, - 0xF971, - 0xF972, - 0xF973, - 0xF974, - 0xF975, - 0xF976, - 0xF977, - 0xF978, - 0xF979, - 0xF97A, - 0xF97B, - 0xF97C, - 0xF97D, - 0xF97E, - 0xF97F, - 0xF980, - 0xF981, - 0xF982, - 0xF983, - 0xF984, - 0xF985, - 0xF986, - 0xF987, - 0xF988, - 0xF989, - 0xF98A, - 0xF98B, - 0xF98C, - 0xF98D, - 0xF98E, - 0xF98F, - 0xF990, - 0xF991, - 0xF992, - 0xF993, - 0xF994, - 0xF995, - 0xF996, - 0xF997, - 0xF998, - 0xF999, - 0xF99A, - 0xF99B, - 0xF99C, - 0xF99D, - 0xF99E, - 0xF99F, - 0xF9A0, - 0xF9A1, - 0xF9A2, - 0xF9A3, - 0xF9A4, - 0xF9A5, - 0xF9A6, - 0xF9A7, - 0xF9A8, - 0xF9A9, - 0xF9AA, - 0xF9AB, - 0xF9AC, - 0xF9AD, - 0xF9AE, - 0xF9AF, - 0xF9B0, - 0xF9B1, - 0xF9B2, - 0xF9B3, - 0xF9B4, - 0xF9B5, - 0xF9B6, - 0xF9B7, - 0xF9B8, - 0xF9B9, - 0xF9BA, - 0xF9BB, - 0xF9BC, - 0xF9BD, - 0xF9BE, - 0xF9BF, - 0xF9C0, - 0xF9C1, - 0xF9C2, - 0xF9C3, - 0xF9C4, - 0xF9C5, - 0xF9C6, - 0xF9C7, - 0xF9C8, - 0xF9C9, - 0xF9CA, - 0xF9CB, - 0xF9CC, - 0xF9CD, - 0xF9CE, - 0xF9CF, - 0xF9D0, - 0xF9D1, - 0xF9D2, - 0xF9D3, - 0xF9D4, - 0xF9D5, - 0xF9D6, - 0xF9D7, - 0xF9D8, - 0xF9D9, - 0xF9DA, - 0xF9DB, - 0xF9DC, - 0xF9DD, - 0xF9DE, - 0xF9DF, - 0xF9E0, - 0xF9E1, - 0xF9E2, - 0xF9E3, - 0xF9E4, - 0xF9E5, - 0xF9E6, - 0xF9E7, - 0xF9E8, - 0xF9E9, - 0xF9EA, - 0xF9EB, - 0xF9EC, - 0xF9ED, - 0xF9EE, - 0xF9EF, - 0xF9F0, - 0xF9F1, - 0xF9F2, - 0xF9F3, - 0xF9F4, - 0xF9F5, - 0xF9F6, - 0xF9F7, - 0xF9F8, - 0xF9F9, - 0xF9FA, - 0xF9FB, - 0xF9FC, - 0xF9FD, - 0xF9FE, - 0xF9FF, - 0xFA00, - 0xFA01, - 0xFA02, - 0xFA03, - 0xFA04, - 0xFA05, - 0xFA06, - 0xFA07, - 0xFA08, - 0xFA09, - 0xFA0A, - 0xFA0B, - 0xFA0C, - 0xFA0D, - 0xFA0E, - 0xFA10, - 0xFA11, - 0xFA12, - 0xFA13, - 0xFA15, - 0xFA16, - 0xFA17, - 0xFA18, - 0xFA19, - 0xFA1A, - 0xFA1B, - 0xFA1C, - 0xFA1D, - 0xFA1E, - 0xFA1F, - 0xFA20, - 0xFA21, - 0xFA22, - 0xFA23, - 0xFA25, - 0xFA26, - 0xFA27, - 0xFA2A, - 0xFA2B, - 0xFA2C, - 0xFA2D, - 0xFA2E, - 0xFA2F, - 0xFA30, - 0xFA31, - 0xFA32, - 0xFA33, - 0xFA34, - 0xFA35, - 0xFA36, - 0xFA37, - 0xFA38, - 0xFA39, - 0xFA3A, - 0xFA3B, - 0xFA3C, - 0xFA3D, - 0xFA3E, - 0xFA3F, - 0xFA40, - 0xFA41, - 0xFA42, - 0xFA43, - 0xFA44, - 0xFA45, - 0xFA46, - 0xFA47, - 0xFA48, - 0xFA49, - 0xFA4A, - 0xFA4B, - 0xFA4C, - 0xFA4D, - 0xFA4E, - 0xFA4F, - 0xFA50, - 0xFA51, - 0xFA52, - 0xFA53, - 0xFA54, - 0xFA55, - 0xFA56, - 0xFA57, - 0xFA58, - 0xFA59, - 0xFA5A, - 0xFA5B, - 0xFA5C, - 0xFA5D, - 0xFA5F, - 0xFA60, - 0xFA61, - 0xFA62, - 0xFA63, - 0xFA64, - 0xFA65, - 0xFA66, - 0xFA67, - 0xFA68, - 0xFA69, - 0xFA6A, - 0xFA6B, - 0xFA6C, - 0xFA6D, - 0xFA6E, - 0xFA70, - 0xFA71, - 0xFA72, - 0xFA73, - 0xFA74, - 0xFA75, - 0xFA76, - 0xFA77, - 0xFA78, - 0xFA79, - 0xFA7A, - 0xFA7B, - 0xFA7C, - 0xFA7D, - 0xFA7E, - 0xFA7F, - 0xFA80, - 0xFA81, - 0xFA82, - 0xFA83, - 0xFA84, - 0xFA85, - 0xFA86, - 0xFA87, - 0xFA88, - 0xFA89, - 0xFA8A, - 0xFA8B, - 0xFA8C, - 0xFA8D, - 0xFA8E, - 0xFA8F, - 0xFA90, - 0xFA91, - 0xFA92, - 0xFA93, - 0xFA94, - 0xFA95, - 0xFA96, - 0xFA97, - 0xFA98, - 0xFA99, - 0xFA9A, - 0xFA9B, - 0xFA9C, - 0xFA9D, - 0xFA9E, - 0xFA9F, - 0xFAA0, - 0xFAA1, - 0xFAA2, - 0xFAA3, - 0xFAA4, - 0xFAA5, - 0xFAA6, - 0xFAA7, - 0xFAA8, - 0xFAA9, - 0xFAAA, - 0xFAAB, - 0xFAAC, - 0xFAAD, - 0xFAAE, - 0xFAAF, - 0xFAB0, - 0xFAB1, - 0xFAB2, - 0xFAB3, - 0xFAB4, - 0xFAB5, - 0xFAB6, - 0xFAB7, - 0xFAB8, - 0xFAB9, - 0xFABA, - 0xFABB, - 0xFABC, - 0xFABD, - 0xFABE, - 0xFABF, - 0xFAC0, - 0xFAC1, - 0xFAC2, - 0xFAC3, - 0xFAC4, - 0xFAC5, - 0xFAC6, - 0xFAC7, - 0xFAC8, - 0xFAC9, - 0xFACA, - 0xFACB, - 0xFACC, - 0xFACD, - 0xFACE, - 0xFACF, - 0xFAD0, - 0xFAD1, - 0xFAD2, - 0xFAD3, - 0xFAD4, - 0xFAD5, - 0xFAD6, - 0xFAD7, - 0xFAD8, - 0xFAD9, - 0xFADA, - 0xFB00, - 0xFB01, - 0xFB02, - 0xFB03, - 0xFB04, - 0xFB05, - 0xFB07, - 0xFB13, - 0xFB14, - 0xFB15, - 0xFB16, - 0xFB17, - 0xFB18, - 0xFB1D, - 0xFB1E, - 0xFB1F, - 0xFB20, - 0xFB21, - 0xFB22, - 0xFB23, - 0xFB24, - 0xFB25, - 0xFB26, - 0xFB27, - 0xFB28, - 0xFB29, - 0xFB2A, - 0xFB2B, - 0xFB2C, - 0xFB2D, - 0xFB2E, - 0xFB2F, - 0xFB30, - 0xFB31, - 0xFB32, - 0xFB33, - 0xFB34, - 0xFB35, - 0xFB36, - 0xFB37, - 0xFB38, - 0xFB39, - 0xFB3A, - 0xFB3B, - 0xFB3C, - 0xFB3D, - 0xFB3E, - 0xFB3F, - 0xFB40, - 0xFB41, - 0xFB42, - 0xFB43, - 0xFB44, - 0xFB45, - 0xFB46, - 0xFB47, - 0xFB48, - 0xFB49, - 0xFB4A, - 0xFB4B, - 0xFB4C, - 0xFB4D, - 0xFB4E, - 0xFB4F, - 0xFB50, - 0xFB52, - 0xFB56, - 0xFB5A, - 0xFB5E, - 0xFB62, - 0xFB66, - 0xFB6A, - 0xFB6E, - 0xFB72, - 0xFB76, - 0xFB7A, - 0xFB7E, - 0xFB82, - 0xFB84, - 0xFB86, - 0xFB88, - 0xFB8A, - 0xFB8C, - 0xFB8E, - 0xFB92, - 0xFB96, - 0xFB9A, - 0xFB9E, - 0xFBA0, - 0xFBA4, - 0xFBA6, - 0xFBAA, - 0xFBAE, - 0xFBB0, - 0xFBB2, - 0xFBD3, - 0xFBD7, - 0xFBD9, - 0xFBDB, - 0xFBDD, - 0xFBDE, - 0xFBE0, - 0xFBE2, - 0xFBE4, - 0xFBE8, - 0xFBEA, - 0xFBEC, - 0xFBEE, - 0xFBF0, - 0xFBF2, - 0xFBF4, - 0xFBF6, - 0xFBF9, - 0xFBFC, - 0xFC00, - 0xFC01, - 0xFC02, - 0xFC03, - 0xFC04, - 0xFC05, - 0xFC06, - 0xFC07, - 0xFC08, - 0xFC09, - 0xFC0A, - 0xFC0B, - 0xFC0C, - 0xFC0D, - 0xFC0E, - 0xFC0F, - 0xFC10, - 0xFC11, - 0xFC12, - 0xFC13, - 0xFC14, - 0xFC15, - 0xFC16, - 0xFC17, - 0xFC18, - 0xFC19, - 0xFC1A, - 0xFC1B, - 0xFC1C, - 0xFC1D, - 0xFC1E, - 0xFC1F, - 0xFC20, - 0xFC21, - 0xFC22, - 0xFC23, - 0xFC24, - 0xFC25, - 0xFC26, - 0xFC27, - 0xFC28, - 0xFC29, - 0xFC2A, - 0xFC2B, - 0xFC2C, - 0xFC2D, - 0xFC2E, - 0xFC2F, - 0xFC30, - 0xFC31, - 0xFC32, - 0xFC33, - 0xFC34, - 0xFC35, - 0xFC36, - 0xFC37, - 0xFC38, - 0xFC39, - 0xFC3A, - 0xFC3B, - 0xFC3C, - 0xFC3D, - 0xFC3E, - 0xFC3F, - 0xFC40, - 0xFC41, - 0xFC42, - 0xFC43, - 0xFC44, - 0xFC45, - 0xFC46, - 0xFC47, - 0xFC48, - 0xFC49, - 0xFC4A, - 0xFC4B, - 0xFC4C, - 0xFC4D, - 0xFC4E, - 0xFC4F, - 0xFC50, - 0xFC51, - 0xFC52, - 0xFC53, - 0xFC54, - 0xFC55, - 0xFC56, - 0xFC57, - 0xFC58, - 0xFC59, - 0xFC5A, - 0xFC5B, - 0xFC5C, - 0xFC5D, - 0xFC5E, - 0xFC5F, - 0xFC60, - 0xFC61, - 0xFC62, - 0xFC63, - 0xFC64, - 0xFC65, - 0xFC66, - 0xFC67, - 0xFC68, - 0xFC69, - 0xFC6A, - 0xFC6B, - 0xFC6C, - 0xFC6D, - 0xFC6E, - 0xFC6F, - 0xFC70, - 0xFC71, - 0xFC72, - 0xFC73, - 0xFC74, - 0xFC75, - 0xFC76, - 0xFC77, - 0xFC78, - 0xFC79, - 0xFC7A, - 0xFC7B, - 0xFC7C, - 0xFC7D, - 0xFC7E, - 0xFC7F, - 0xFC80, - 0xFC81, - 0xFC82, - 0xFC83, - 0xFC84, - 0xFC85, - 0xFC86, - 0xFC87, - 0xFC88, - 0xFC89, - 0xFC8A, - 0xFC8B, - 0xFC8C, - 0xFC8D, - 0xFC8E, - 0xFC8F, - 0xFC90, - 0xFC91, - 0xFC92, - 0xFC93, - 0xFC94, - 0xFC95, - 0xFC96, - 0xFC97, - 0xFC98, - 0xFC99, - 0xFC9A, - 0xFC9B, - 0xFC9C, - 0xFC9D, - 0xFC9E, - 0xFC9F, - 0xFCA0, - 0xFCA1, - 0xFCA2, - 0xFCA3, - 0xFCA4, - 0xFCA5, - 0xFCA6, - 0xFCA7, - 0xFCA8, - 0xFCA9, - 0xFCAA, - 0xFCAB, - 0xFCAC, - 0xFCAD, - 0xFCAE, - 0xFCAF, - 0xFCB0, - 0xFCB1, - 0xFCB2, - 0xFCB3, - 0xFCB4, - 0xFCB5, - 0xFCB6, - 0xFCB7, - 0xFCB8, - 0xFCB9, - 0xFCBA, - 0xFCBB, - 0xFCBC, - 0xFCBD, - 0xFCBE, - 0xFCBF, - 0xFCC0, - 0xFCC1, - 0xFCC2, - 0xFCC3, - 0xFCC4, - 0xFCC5, - 0xFCC6, - 0xFCC7, - 0xFCC8, - 0xFCC9, - 0xFCCA, - 0xFCCB, - 0xFCCC, - 0xFCCD, - 0xFCCE, - 0xFCCF, - 0xFCD0, - 0xFCD1, - 0xFCD2, - 0xFCD3, - 0xFCD4, - 0xFCD5, - 0xFCD6, - 0xFCD7, - 0xFCD8, - 0xFCD9, - 0xFCDA, - 0xFCDB, - 0xFCDC, - 0xFCDD, - 0xFCDE, - 0xFCDF, - 0xFCE0, - 0xFCE1, - 0xFCE2, - 0xFCE3, - 0xFCE4, - 0xFCE5, - 0xFCE6, - 0xFCE7, - 0xFCE8, - 0xFCE9, - 0xFCEA, - 0xFCEB, - 0xFCEC, - 0xFCED, - 0xFCEE, - 0xFCEF, - 0xFCF0, - 0xFCF1, - 0xFCF2, - 0xFCF3, - 0xFCF4, - 0xFCF5, - 0xFCF6, - 0xFCF7, - 0xFCF8, - 0xFCF9, - 0xFCFA, - 0xFCFB, - 0xFCFC, - 0xFCFD, - 0xFCFE, - 0xFCFF, - 0xFD00, - 0xFD01, - 0xFD02, - 0xFD03, - 0xFD04, - 0xFD05, - 0xFD06, - 0xFD07, - 0xFD08, - 0xFD09, - 0xFD0A, - 0xFD0B, - 0xFD0C, - 0xFD0D, - 0xFD0E, - 0xFD0F, - 0xFD10, - 0xFD11, - 0xFD12, - 0xFD13, - 0xFD14, - 0xFD15, - 0xFD16, - 0xFD17, - 0xFD18, - 0xFD19, - 0xFD1A, - 0xFD1B, - 0xFD1C, - 0xFD1D, - 0xFD1E, - 0xFD1F, - 0xFD20, - 0xFD21, - 0xFD22, - 0xFD23, - 0xFD24, - 0xFD25, - 0xFD26, - 0xFD27, - 0xFD28, - 0xFD29, - 0xFD2A, - 0xFD2B, - 0xFD2C, - 0xFD2D, - 0xFD2E, - 0xFD2F, - 0xFD30, - 0xFD31, - 0xFD32, - 0xFD33, - 0xFD34, - 0xFD35, - 0xFD36, - 0xFD37, - 0xFD38, - 0xFD39, - 0xFD3A, - 0xFD3B, - 0xFD3C, - 0xFD3E, - 0xFD50, - 0xFD51, - 0xFD53, - 0xFD54, - 0xFD55, - 0xFD56, - 0xFD57, - 0xFD58, - 0xFD5A, - 0xFD5B, - 0xFD5C, - 0xFD5D, - 0xFD5E, - 0xFD5F, - 0xFD61, - 0xFD62, - 0xFD64, - 0xFD66, - 0xFD67, - 0xFD69, - 0xFD6A, - 0xFD6C, - 0xFD6E, - 0xFD6F, - 0xFD71, - 0xFD73, - 0xFD74, - 0xFD75, - 0xFD76, - 0xFD78, - 0xFD79, - 0xFD7A, - 0xFD7B, - 0xFD7C, - 0xFD7E, - 0xFD7F, - 0xFD80, - 0xFD81, - 0xFD82, - 0xFD83, - 0xFD85, - 0xFD87, - 0xFD89, - 0xFD8A, - 0xFD8B, - 0xFD8C, - 0xFD8D, - 0xFD8E, - 0xFD8F, - 0xFD90, - 0xFD92, - 0xFD93, - 0xFD94, - 0xFD95, - 0xFD96, - 0xFD97, - 0xFD99, - 0xFD9A, - 0xFD9B, - 0xFD9C, - 0xFD9E, - 0xFD9F, - 0xFDA0, - 0xFDA1, - 0xFDA2, - 0xFDA3, - 0xFDA4, - 0xFDA5, - 0xFDA6, - 0xFDA7, - 0xFDA8, - 0xFDA9, - 0xFDAA, - 0xFDAB, - 0xFDAC, - 0xFDAD, - 0xFDAE, - 0xFDAF, - 0xFDB0, - 0xFDB1, - 0xFDB2, - 0xFDB3, - 0xFDB4, - 0xFDB5, - 0xFDB6, - 0xFDB7, - 0xFDB8, - 0xFDB9, - 0xFDBA, - 0xFDBB, - 0xFDBC, - 0xFDBD, - 0xFDBE, - 0xFDBF, - 0xFDC0, - 0xFDC1, - 0xFDC2, - 0xFDC3, - 0xFDC4, - 0xFDC5, - 0xFDC6, - 0xFDC7, - 0xFDC8, - 0xFDD0, - 0xFDF0, - 0xFDF1, - 0xFDF2, - 0xFDF3, - 0xFDF4, - 0xFDF5, - 0xFDF6, - 0xFDF7, - 0xFDF8, - 0xFDF9, - 0xFDFA, - 0xFDFB, - 0xFDFC, - 0xFDFD, - 0xFE00, - 0xFE10, - 0xFE11, - 0xFE12, - 0xFE13, - 0xFE14, - 0xFE15, - 0xFE16, - 0xFE17, - 0xFE18, - 0xFE19, - 0xFE20, - 0xFE30, - 0xFE31, - 0xFE32, - 0xFE33, - 0xFE35, - 0xFE36, - 0xFE37, - 0xFE38, - 0xFE39, - 0xFE3A, - 0xFE3B, - 0xFE3C, - 0xFE3D, - 0xFE3E, - 0xFE3F, - 0xFE40, - 0xFE41, - 0xFE42, - 0xFE43, - 0xFE44, - 0xFE45, - 0xFE47, - 0xFE48, - 0xFE49, - 0xFE4D, - 0xFE50, - 0xFE51, - 0xFE52, - 0xFE54, - 0xFE55, - 0xFE56, - 0xFE57, - 0xFE58, - 0xFE59, - 0xFE5A, - 0xFE5B, - 0xFE5C, - 0xFE5D, - 0xFE5E, - 0xFE5F, - 0xFE60, - 0xFE61, - 0xFE62, - 0xFE63, - 0xFE64, - 0xFE65, - 0xFE66, - 0xFE67, - 0xFE68, - 0xFE69, - 0xFE6A, - 0xFE6B, - 0xFE6C, - 0xFE70, - 0xFE71, - 0xFE72, - 0xFE73, - 0xFE74, - 0xFE75, - 0xFE76, - 0xFE77, - 0xFE78, - 0xFE79, - 0xFE7A, - 0xFE7B, - 0xFE7C, - 0xFE7D, - 0xFE7E, - 0xFE7F, - 0xFE80, - 0xFE81, - 0xFE83, - 0xFE85, - 0xFE87, - 0xFE89, - 0xFE8D, - 0xFE8F, - 0xFE93, - 0xFE95, - 0xFE99, - 0xFE9D, - 0xFEA1, - 0xFEA5, - 0xFEA9, - 0xFEAB, - 0xFEAD, - 0xFEAF, - 0xFEB1, - 0xFEB5, - 0xFEB9, - 0xFEBD, - 0xFEC1, - 0xFEC5, - 0xFEC9, - 0xFECD, - 0xFED1, - 0xFED5, - 0xFED9, - 0xFEDD, - 0xFEE1, - 0xFEE5, - 0xFEE9, - 0xFEED, - 0xFEEF, - 0xFEF1, - 0xFEF5, - 0xFEF7, - 0xFEF9, - 0xFEFB, - 0xFEFD, - 0xFEFF, - 0xFF00, - 0xFF01, - 0xFF02, - 0xFF03, - 0xFF04, - 0xFF05, - 0xFF06, - 0xFF07, - 0xFF08, - 0xFF09, - 0xFF0A, - 0xFF0B, - 0xFF0C, - 0xFF0D, - 0xFF0E, - 0xFF0F, - 0xFF10, - 0xFF11, - 0xFF12, - 0xFF13, - 0xFF14, - 0xFF15, - 0xFF16, - 0xFF17, - 0xFF18, - 0xFF19, - 0xFF1A, - 0xFF1B, - 0xFF1C, - 0xFF1D, - 0xFF1E, - 0xFF1F, - 0xFF20, - 0xFF21, - 0xFF22, - 0xFF23, - 0xFF24, - 0xFF25, - 0xFF26, - 0xFF27, - 0xFF28, - 0xFF29, - 0xFF2A, - 0xFF2B, - 0xFF2C, - 0xFF2D, - 0xFF2E, - 0xFF2F, - 0xFF30, - 0xFF31, - 0xFF32, - 0xFF33, - 0xFF34, - 0xFF35, - 0xFF36, - 0xFF37, - 0xFF38, - 0xFF39, - 0xFF3A, - 0xFF3B, - 0xFF3C, - 0xFF3D, - 0xFF3E, - 0xFF3F, - 0xFF40, - 0xFF41, - 0xFF42, - 0xFF43, - 0xFF44, - 0xFF45, - 0xFF46, - 0xFF47, - 0xFF48, - 0xFF49, - 0xFF4A, - 0xFF4B, - 0xFF4C, - 0xFF4D, - 0xFF4E, - 0xFF4F, - 0xFF50, - 0xFF51, - 0xFF52, - 0xFF53, - 0xFF54, - 0xFF55, - 0xFF56, - 0xFF57, - 0xFF58, - 0xFF59, - 0xFF5A, - 0xFF5B, - 0xFF5C, - 0xFF5D, - 0xFF5E, - 0xFF5F, - 0xFF60, - 0xFF61, - 0xFF62, - 0xFF63, - 0xFF64, - 0xFF65, - 0xFF66, - 0xFF67, - 0xFF68, - 0xFF69, - 0xFF6A, - 0xFF6B, - 0xFF6C, - 0xFF6D, - 0xFF6E, - 0xFF6F, - 0xFF70, - 0xFF71, - 0xFF72, - 0xFF73, - 0xFF74, - 0xFF75, - 0xFF76, - 0xFF77, - 0xFF78, - 0xFF79, - 0xFF7A, - 0xFF7B, - 0xFF7C, - 0xFF7D, - 0xFF7E, - 0xFF7F, - 0xFF80, - 0xFF81, - 0xFF82, - 0xFF83, - 0xFF84, - 0xFF85, - 0xFF86, - 0xFF87, - 0xFF88, - 0xFF89, - 0xFF8A, - 0xFF8B, - 0xFF8C, - 0xFF8D, - 0xFF8E, - 0xFF8F, - 0xFF90, - 0xFF91, - 0xFF92, - 0xFF93, - 0xFF94, - 0xFF95, - 0xFF96, - 0xFF97, - 0xFF98, - 0xFF99, - 0xFF9A, - 0xFF9B, - 0xFF9C, - 0xFF9D, - 0xFF9E, - 0xFF9F, - 0xFFA0, - 0xFFA1, - 0xFFA2, - 0xFFA3, - 0xFFA4, - 0xFFA5, - 0xFFA6, - 0xFFA7, - 0xFFA8, - 0xFFA9, - 0xFFAA, - 0xFFAB, - 0xFFAC, - 0xFFAD, - 0xFFAE, - 0xFFAF, - 0xFFB0, - 0xFFB1, - 0xFFB2, - 0xFFB3, - 0xFFB4, - 0xFFB5, - 0xFFB6, - 0xFFB7, - 0xFFB8, - 0xFFB9, - 0xFFBA, - 0xFFBB, - 0xFFBC, - 0xFFBD, - 0xFFBE, - 0xFFBF, - 0xFFC2, - 0xFFC3, - 0xFFC4, - 0xFFC5, - 0xFFC6, - 0xFFC7, - 0xFFC8, - 0xFFCA, - 0xFFCB, - 0xFFCC, - 0xFFCD, - 0xFFCE, - 0xFFCF, - 0xFFD0, - 0xFFD2, - 0xFFD3, - 0xFFD4, - 0xFFD5, - 0xFFD6, - 0xFFD7, - 0xFFD8, - 0xFFDA, - 0xFFDB, - 0xFFDC, - 0xFFDD, - 0xFFE0, - 0xFFE1, - 0xFFE2, - 0xFFE3, - 0xFFE4, - 0xFFE5, - 0xFFE6, - 0xFFE7, - 0xFFE8, - 0xFFE9, - 0xFFEA, - 0xFFEB, - 0xFFEC, - 0xFFED, - 0xFFEE, - 0xFFEF, - 0x10000, - 0x1000C, - 0x1000D, - 0x10027, - 0x10028, - 0x1003B, - 0x1003C, - 0x1003E, - 0x1003F, - 0x1004E, - 0x10050, - 0x1005E, - 0x10080, - 0x100FB, - 0x10100, - 0x10103, - 0x10107, - 0x10134, - 0x10137, - 0x1018F, - 0x10190, - 0x1019D, - 0x101A0, - 0x101A1, - 0x101D0, - 0x101FE, - 0x10280, - 0x1029D, - 0x102A0, - 0x102D1, - 0x102E0, - 0x102FC, - 0x10300, - 0x10324, - 0x1032D, - 0x1034B, - 0x10350, - 0x1037B, - 0x10380, - 0x1039E, - 0x1039F, - 0x103C4, - 0x103C8, - 0x103D6, - 0x10400, - 0x10401, - 0x10402, - 0x10403, - 0x10404, - 0x10405, - 0x10406, - 0x10407, - 0x10408, - 0x10409, - 0x1040A, - 0x1040B, - 0x1040C, - 0x1040D, - 0x1040E, - 0x1040F, - 0x10410, - 0x10411, - 0x10412, - 0x10413, - 0x10414, - 0x10415, - 0x10416, - 0x10417, - 0x10418, - 0x10419, - 0x1041A, - 0x1041B, - 0x1041C, - 0x1041D, - 0x1041E, - 0x1041F, - 0x10420, - 0x10421, - 0x10422, - 0x10423, - 0x10424, - 0x10425, - 0x10426, - 0x10427, - 0x10428, - 0x1049E, - 0x104A0, - 0x104AA, - 0x104B0, - 0x104B1, - 0x104B2, - 0x104B3, - 0x104B4, - 0x104B5, - 0x104B6, - 0x104B7, - 0x104B8, - 0x104B9, - 0x104BA, - 0x104BB, - 0x104BC, - 0x104BD, - 0x104BE, - 0x104BF, - 0x104C0, - 0x104C1, - 0x104C2, - 0x104C3, - 0x104C4, - 0x104C5, - 0x104C6, - 0x104C7, - 0x104C8, - 0x104C9, - 0x104CA, - 0x104CB, - 0x104CC, - 0x104CD, - 0x104CE, - 0x104CF, - 0x104D0, - 0x104D1, - 0x104D2, - 0x104D3, - 0x104D4, - 0x104D8, - 0x104FC, - 0x10500, - 0x10528, - 0x10530, - 0x10564, - 0x1056F, - 0x10570, - 0x10571, - 0x10572, - 0x10573, - 0x10574, - 0x10575, - 0x10576, - 0x10577, - 0x10578, - 0x10579, - 0x1057A, - 0x1057B, - 0x1057C, - 0x1057D, - 0x1057E, - 0x1057F, - 0x10580, - 0x10581, - 0x10582, - 0x10583, - 0x10584, - 0x10585, - 0x10586, - 0x10587, - 0x10588, - 0x10589, - 0x1058A, - 0x1058B, - 0x1058C, - 0x1058D, - 0x1058E, - 0x1058F, - 0x10590, - 0x10591, - 0x10592, - 0x10593, - 0x10594, - 0x10595, - 0x10596, - 0x10597, - 0x105A2, - 0x105A3, - 0x105B2, - 0x105B3, - 0x105BA, - 0x105BB, - 0x105BD, - 0x105C0, - 0x105F4, - 0x10600, - 0x10737, - 0x10740, - 0x10756, - 0x10760, - 0x10768, - 0x10780, - 0x10781, - 0x10782, - 0x10783, - 0x10784, - 0x10785, - 0x10786, - 0x10787, - 0x10788, - 0x10789, - 0x1078A, - 0x1078B, - 0x1078C, - 0x1078D, - 0x1078E, - 0x1078F, - 0x10790, - 0x10791, - 0x10792, - 0x10793, - 0x10794, - 0x10795, - 0x10796, - 0x10797, - 0x10798, - 0x10799, - 0x1079A, - 0x1079B, - 0x1079C, - 0x1079D, - 0x1079E, - 0x1079F, - 0x107A0, - 0x107A1, - 0x107A2, - 0x107A3, - 0x107A4, - 0x107A5, - 0x107A6, - 0x107A7, - 0x107A8, - 0x107A9, - 0x107AA, - 0x107AB, - 0x107AC, - 0x107AD, - 0x107AE, - 0x107AF, - 0x107B0, - 0x107B1, - 0x107B2, - 0x107B3, - 0x107B4, - 0x107B5, - 0x107B6, - 0x107B7, - 0x107B8, - 0x107B9, - 0x107BA, - 0x107BB, - 0x10800, - 0x10806, - 0x10808, - 0x10809, - 0x1080A, - 0x10836, - 0x10837, - 0x10839, - 0x1083C, - 0x1083D, - 0x1083F, - 0x10856, - 0x10857, - 0x1089F, - 0x108A7, - 0x108B0, - 0x108E0, - 0x108F3, - 0x108F4, - 0x108F6, - 0x108FB, - 0x1091C, - 0x1091F, - 0x1093A, - 0x1093F, - 0x1095A, - 0x10980, - 0x109B8, - 0x109BC, - 0x109D0, - 0x109D2, - 0x10A04, - 0x10A05, - 0x10A07, - 0x10A0C, - 0x10A14, - 0x10A15, - 0x10A18, - 0x10A19, - 0x10A36, - 0x10A38, - 0x10A3B, - 0x10A3F, - 0x10A49, - 0x10A50, - 0x10A59, - 0x10A60, - 0x10AA0, - 0x10AC0, - 0x10AE7, - 0x10AEB, - 0x10AF7, - 0x10B00, - 0x10B36, - 0x10B39, - 0x10B56, - 0x10B58, - 0x10B73, - 0x10B78, - 0x10B92, - 0x10B99, - 0x10B9D, - 0x10BA9, - 0x10BB0, - 0x10C00, - 0x10C49, - 0x10C80, - 0x10C81, - 0x10C82, - 0x10C83, - 0x10C84, - 0x10C85, - 0x10C86, - 0x10C87, - 0x10C88, - 0x10C89, - 0x10C8A, - 0x10C8B, - 0x10C8C, - 0x10C8D, - 0x10C8E, - 0x10C8F, - 0x10C90, - 0x10C91, - 0x10C92, - 0x10C93, - 0x10C94, - 0x10C95, - 0x10C96, - 0x10C97, - 0x10C98, - 0x10C99, - 0x10C9A, - 0x10C9B, - 0x10C9C, - 0x10C9D, - 0x10C9E, - 0x10C9F, - 0x10CA0, - 0x10CA1, - 0x10CA2, - 0x10CA3, - 0x10CA4, - 0x10CA5, - 0x10CA6, - 0x10CA7, - 0x10CA8, - 0x10CA9, - 0x10CAA, - 0x10CAB, - 0x10CAC, - 0x10CAD, - 0x10CAE, - 0x10CAF, - 0x10CB0, - 0x10CB1, - 0x10CB2, - 0x10CB3, - 0x10CC0, - 0x10CF3, - 0x10CFA, - 0x10D28, - 0x10D30, - 0x10D3A, - 0x10D40, - 0x10D50, - 0x10D51, - 0x10D52, - 0x10D53, - 0x10D54, - 0x10D55, - 0x10D56, - 0x10D57, - 0x10D58, - 0x10D59, - 0x10D5A, - 0x10D5B, - 0x10D5C, - 0x10D5D, - 0x10D5E, - 0x10D5F, - 0x10D60, - 0x10D61, - 0x10D62, - 0x10D63, - 0x10D64, - 0x10D65, - 0x10D66, - 0x10D69, - 0x10D86, - 0x10D8E, - 0x10D90, - 0x10E60, - 0x10E7F, - 0x10E80, - 0x10EAA, - 0x10EAB, - 0x10EAE, - 0x10EB0, - 0x10EB2, - 0x10EC2, - 0x10EC8, - 0x10ED0, - 0x10ED9, - 0x10EFA, - 0x10F28, - 0x10F30, - 0x10F5A, - 0x10F70, - 0x10F8A, - 0x10FB0, - 0x10FCC, - 0x10FE0, - 0x10FF7, - 0x11000, - 0x1104E, - 0x11052, - 0x11076, - 0x1107F, - 0x110BD, - 0x110BE, - 0x110C3, - 0x110D0, - 0x110E9, - 0x110F0, - 0x110FA, - 0x11100, - 0x11135, - 0x11136, - 0x11148, - 0x11150, - 0x11177, - 0x11180, - 0x111E0, - 0x111E1, - 0x111F5, - 0x11200, - 0x11212, - 0x11213, - 0x11242, - 0x11280, - 0x11287, - 0x11288, - 0x11289, - 0x1128A, - 0x1128E, - 0x1128F, - 0x1129E, - 0x1129F, - 0x112AA, - 0x112B0, - 0x112EB, - 0x112F0, - 0x112FA, - 0x11300, - 0x11304, - 0x11305, - 0x1130D, - 0x1130F, - 0x11311, - 0x11313, - 0x11329, - 0x1132A, - 0x11331, - 0x11332, - 0x11334, - 0x11335, - 0x1133A, - 0x1133B, - 0x11345, - 0x11347, - 0x11349, - 0x1134B, - 0x1134E, - 0x11350, - 0x11351, - 0x11357, - 0x11358, - 0x1135D, - 0x11364, - 0x11366, - 0x1136D, - 0x11370, - 0x11375, - 0x11380, - 0x1138A, - 0x1138B, - 0x1138C, - 0x1138E, - 0x1138F, - 0x11390, - 0x113B6, - 0x113B7, - 0x113C1, - 0x113C2, - 0x113C3, - 0x113C5, - 0x113C6, - 0x113C7, - 0x113CB, - 0x113CC, - 0x113D6, - 0x113D7, - 0x113D9, - 0x113E1, - 0x113E3, - 0x11400, - 0x1145C, - 0x1145D, - 0x11462, - 0x11480, - 0x114C8, - 0x114D0, - 0x114DA, - 0x11580, - 0x115B6, - 0x115B8, - 0x115DE, - 0x11600, - 0x11645, - 0x11650, - 0x1165A, - 0x11660, - 0x1166D, - 0x11680, - 0x116BA, - 0x116C0, - 0x116CA, - 0x116D0, - 0x116E4, - 0x11700, - 0x1171B, - 0x1171D, - 0x1172C, - 0x11730, - 0x11747, - 0x11800, - 0x1183C, - 0x118A0, - 0x118A1, - 0x118A2, - 0x118A3, - 0x118A4, - 0x118A5, - 0x118A6, - 0x118A7, - 0x118A8, - 0x118A9, - 0x118AA, - 0x118AB, - 0x118AC, - 0x118AD, - 0x118AE, - 0x118AF, - 0x118B0, - 0x118B1, - 0x118B2, - 0x118B3, - 0x118B4, - 0x118B5, - 0x118B6, - 0x118B7, - 0x118B8, - 0x118B9, - 0x118BA, - 0x118BB, - 0x118BC, - 0x118BD, - 0x118BE, - 0x118BF, - 0x118C0, - 0x118F3, - 0x118FF, - 0x11907, - 0x11909, - 0x1190A, - 0x1190C, - 0x11914, - 0x11915, - 0x11917, - 0x11918, - 0x11936, - 0x11937, - 0x11939, - 0x1193B, - 0x11947, - 0x11950, - 0x1195A, - 0x119A0, - 0x119A8, - 0x119AA, - 0x119D8, - 0x119DA, - 0x119E5, - 0x11A00, - 0x11A48, - 0x11A50, - 0x11AA3, - 0x11AB0, - 0x11AF9, - 0x11B00, - 0x11B0A, - 0x11B60, - 0x11B68, - 0x11BC0, - 0x11BE2, - 0x11BF0, - 0x11BFA, - 0x11C00, - 0x11C09, - 0x11C0A, - 0x11C37, - 0x11C38, - 0x11C46, - 0x11C50, - 0x11C6D, - 0x11C70, - 0x11C90, - 0x11C92, - 0x11CA8, - 0x11CA9, - 0x11CB7, - 0x11D00, - 0x11D07, - 0x11D08, - 0x11D0A, - 0x11D0B, - 0x11D37, - 0x11D3A, - 0x11D3B, - 0x11D3C, - 0x11D3E, - 0x11D3F, - 0x11D48, - 0x11D50, - 0x11D5A, - 0x11D60, - 0x11D66, - 0x11D67, - 0x11D69, - 0x11D6A, - 0x11D8F, - 0x11D90, - 0x11D92, - 0x11D93, - 0x11D99, - 0x11DA0, - 0x11DAA, - 0x11DB0, - 0x11DDC, - 0x11DE0, - 0x11DEA, - 0x11EE0, - 0x11EF9, - 0x11F00, - 0x11F11, - 0x11F12, - 0x11F3B, - 0x11F3E, - 0x11F5B, - 0x11FB0, - 0x11FB1, - 0x11FC0, - 0x11FF2, - 0x11FFF, - 0x1239A, - 0x12400, - 0x1246F, - 0x12470, - 0x12475, - 0x12480, - 0x12544, - 0x12F90, - 0x12FF3, - 0x13000, - 0x13430, - 0x13440, - 0x13456, - 0x13460, - 0x143FB, - 0x14400, - 0x14647, - 0x16100, - 0x1613A, - 0x16800, - 0x16A39, - 0x16A40, - 0x16A5F, - 0x16A60, - 0x16A6A, - 0x16A6E, - 0x16ABF, - 0x16AC0, - 0x16ACA, - 0x16AD0, - 0x16AEE, - 0x16AF0, - 0x16AF6, - 0x16B00, - 0x16B46, - 0x16B50, - 0x16B5A, - 0x16B5B, - 0x16B62, - 0x16B63, - 0x16B78, - 0x16B7D, - 0x16B90, - 0x16D40, - 0x16D7A, - 0x16E40, - 0x16E41, - 0x16E42, - 0x16E43, - 0x16E44, - 0x16E45, - 0x16E46, - 0x16E47, - 0x16E48, - 0x16E49, - 0x16E4A, - 0x16E4B, - 0x16E4C, - 0x16E4D, - 0x16E4E, - 0x16E4F, - 0x16E50, - 0x16E51, - 0x16E52, - 0x16E53, - 0x16E54, - 0x16E55, - 0x16E56, - 0x16E57, - 0x16E58, - 0x16E59, - 0x16E5A, - 0x16E5B, - 0x16E5C, - 0x16E5D, - 0x16E5E, - 0x16E5F, - 0x16E60, - 0x16E9B, - 0x16EA0, - 0x16EA1, - 0x16EA2, - 0x16EA3, - 0x16EA4, - 0x16EA5, - 0x16EA6, - 0x16EA7, - 0x16EA8, - 0x16EA9, - 0x16EAA, - 0x16EAB, - 0x16EAC, - 0x16EAD, - 0x16EAE, - 0x16EAF, - 0x16EB0, - 0x16EB1, - 0x16EB2, - 0x16EB3, - 0x16EB4, - 0x16EB5, - 0x16EB6, - 0x16EB7, - 0x16EB8, - 0x16EB9, - 0x16EBB, - 0x16ED4, - 0x16F00, - 0x16F4B, - 0x16F4F, - 0x16F88, - 0x16F8F, - 0x16FA0, - 0x16FE0, - 0x16FE5, - 0x16FF0, - 0x16FF7, - 0x17000, - 0x18CD6, - 0x18CFF, - 0x18D1F, - 0x18D80, - 0x18DF3, - 0x1AFF0, - 0x1AFF4, - 0x1AFF5, - 0x1AFFC, - 0x1AFFD, - 0x1AFFF, - 0x1B000, - 0x1B123, - 0x1B132, - 0x1B133, - 0x1B150, - 0x1B153, - 0x1B155, - 0x1B156, - 0x1B164, - 0x1B168, - 0x1B170, - 0x1B2FC, - 0x1BC00, - 0x1BC6B, - 0x1BC70, - 0x1BC7D, - 0x1BC80, - 0x1BC89, - 0x1BC90, - 0x1BC9A, - 0x1BC9C, - 0x1BCA0, - 0x1BCA4, - 0x1CC00, - 0x1CCD6, - 0x1CCD7, - 0x1CCD8, - 0x1CCD9, - 0x1CCDA, - 0x1CCDB, - 0x1CCDC, - 0x1CCDD, - 0x1CCDE, - 0x1CCDF, - 0x1CCE0, - 0x1CCE1, - 0x1CCE2, - 0x1CCE3, - 0x1CCE4, - 0x1CCE5, - 0x1CCE6, - 0x1CCE7, - 0x1CCE8, - 0x1CCE9, - 0x1CCEA, - 0x1CCEB, - 0x1CCEC, - 0x1CCED, - 0x1CCEE, - 0x1CCEF, - 0x1CCF0, - 0x1CCF1, - 0x1CCF2, - 0x1CCF3, - 0x1CCF4, - 0x1CCF5, - 0x1CCF6, - 0x1CCF7, - 0x1CCF8, - 0x1CCF9, - 0x1CCFA, - 0x1CCFD, - 0x1CD00, - 0x1CEB4, - 0x1CEBA, - 0x1CED1, - 0x1CEE0, - 0x1CEF1, - 0x1CF00, - 0x1CF2E, - 0x1CF30, - 0x1CF47, - 0x1CF50, - 0x1CFC4, - 0x1D000, - 0x1D0F6, - 0x1D100, - 0x1D127, - 0x1D129, - 0x1D15E, - 0x1D15F, - 0x1D160, - 0x1D161, - 0x1D162, - 0x1D163, - 0x1D164, - 0x1D165, - 0x1D173, - 0x1D17B, - 0x1D1BB, - 0x1D1BC, - 0x1D1BD, - 0x1D1BE, - 0x1D1BF, - 0x1D1C0, - 0x1D1C1, - 0x1D1EB, - 0x1D200, - 0x1D246, - 0x1D2C0, - 0x1D2D4, - 0x1D2E0, - 0x1D2F4, - 0x1D300, - 0x1D357, - 0x1D360, - 0x1D379, - 0x1D400, - 0x1D401, - 0x1D402, - 0x1D403, - 0x1D404, - 0x1D405, - 0x1D406, - 0x1D407, - 0x1D408, - 0x1D409, - 0x1D40A, - 0x1D40B, - 0x1D40C, - 0x1D40D, - 0x1D40E, - 0x1D40F, - 0x1D410, - 0x1D411, - 0x1D412, - 0x1D413, - 0x1D414, - 0x1D415, - 0x1D416, - 0x1D417, - 0x1D418, - 0x1D419, - 0x1D41A, - 0x1D41B, - 0x1D41C, - 0x1D41D, - 0x1D41E, - 0x1D41F, - 0x1D420, - 0x1D421, - 0x1D422, - 0x1D423, - 0x1D424, - 0x1D425, - 0x1D426, - 0x1D427, - 0x1D428, - 0x1D429, - 0x1D42A, - 0x1D42B, - 0x1D42C, - 0x1D42D, - 0x1D42E, - 0x1D42F, - 0x1D430, - 0x1D431, - 0x1D432, - 0x1D433, - 0x1D434, - 0x1D435, - 0x1D436, - 0x1D437, - 0x1D438, - 0x1D439, - 0x1D43A, - 0x1D43B, - 0x1D43C, - 0x1D43D, - 0x1D43E, - 0x1D43F, - 0x1D440, - 0x1D441, - 0x1D442, - 0x1D443, - 0x1D444, - 0x1D445, - 0x1D446, - 0x1D447, - 0x1D448, - 0x1D449, - 0x1D44A, - 0x1D44B, - 0x1D44C, - 0x1D44D, - 0x1D44E, - 0x1D44F, - 0x1D450, - 0x1D451, - 0x1D452, - 0x1D453, - 0x1D454, - 0x1D455, - 0x1D456, - 0x1D457, - 0x1D458, - 0x1D459, - 0x1D45A, - 0x1D45B, - 0x1D45C, - 0x1D45D, - 0x1D45E, - 0x1D45F, - 0x1D460, - 0x1D461, - 0x1D462, - 0x1D463, - 0x1D464, - 0x1D465, - 0x1D466, - 0x1D467, - 0x1D468, - 0x1D469, - 0x1D46A, - 0x1D46B, - 0x1D46C, - 0x1D46D, - 0x1D46E, - 0x1D46F, - 0x1D470, - 0x1D471, - 0x1D472, - 0x1D473, - 0x1D474, - 0x1D475, - 0x1D476, - 0x1D477, - 0x1D478, - 0x1D479, - 0x1D47A, - 0x1D47B, - 0x1D47C, - 0x1D47D, - 0x1D47E, - 0x1D47F, - 0x1D480, - 0x1D481, - 0x1D482, - 0x1D483, - 0x1D484, - 0x1D485, - 0x1D486, - 0x1D487, - 0x1D488, - 0x1D489, - 0x1D48A, - 0x1D48B, - 0x1D48C, - 0x1D48D, - 0x1D48E, - 0x1D48F, - 0x1D490, - 0x1D491, - 0x1D492, - 0x1D493, - 0x1D494, - 0x1D495, - 0x1D496, - 0x1D497, - 0x1D498, - 0x1D499, - 0x1D49A, - 0x1D49B, - 0x1D49C, - 0x1D49D, - 0x1D49E, - 0x1D49F, - 0x1D4A0, - 0x1D4A2, - 0x1D4A3, - 0x1D4A5, - 0x1D4A6, - 0x1D4A7, - 0x1D4A9, - 0x1D4AA, - 0x1D4AB, - 0x1D4AC, - 0x1D4AD, - 0x1D4AE, - 0x1D4AF, - 0x1D4B0, - 0x1D4B1, - 0x1D4B2, - 0x1D4B3, - 0x1D4B4, - 0x1D4B5, - 0x1D4B6, - 0x1D4B7, - 0x1D4B8, - 0x1D4B9, - 0x1D4BA, - 0x1D4BB, - 0x1D4BC, - 0x1D4BD, - 0x1D4BE, - 0x1D4BF, - 0x1D4C0, - 0x1D4C1, - 0x1D4C2, - 0x1D4C3, - 0x1D4C4, - 0x1D4C5, - 0x1D4C6, - 0x1D4C7, - 0x1D4C8, - 0x1D4C9, - 0x1D4CA, - 0x1D4CB, - 0x1D4CC, - 0x1D4CD, - 0x1D4CE, - 0x1D4CF, - 0x1D4D0, - 0x1D4D1, - 0x1D4D2, - 0x1D4D3, - 0x1D4D4, - 0x1D4D5, - 0x1D4D6, - 0x1D4D7, - 0x1D4D8, - 0x1D4D9, - 0x1D4DA, - 0x1D4DB, - 0x1D4DC, - 0x1D4DD, - 0x1D4DE, - 0x1D4DF, - 0x1D4E0, - 0x1D4E1, - 0x1D4E2, - 0x1D4E3, - 0x1D4E4, - 0x1D4E5, - 0x1D4E6, - 0x1D4E7, - 0x1D4E8, - 0x1D4E9, - 0x1D4EA, - 0x1D4EB, - 0x1D4EC, - 0x1D4ED, - 0x1D4EE, - 0x1D4EF, - 0x1D4F0, - 0x1D4F1, - 0x1D4F2, - 0x1D4F3, - 0x1D4F4, - 0x1D4F5, - 0x1D4F6, - 0x1D4F7, - 0x1D4F8, - 0x1D4F9, - 0x1D4FA, - 0x1D4FB, - 0x1D4FC, - 0x1D4FD, - 0x1D4FE, - 0x1D4FF, - 0x1D500, - 0x1D501, - 0x1D502, - 0x1D503, - 0x1D504, - 0x1D505, - 0x1D506, - 0x1D507, - 0x1D508, - 0x1D509, - 0x1D50A, - 0x1D50B, - 0x1D50D, - 0x1D50E, - 0x1D50F, - 0x1D510, - 0x1D511, - 0x1D512, - 0x1D513, - 0x1D514, - 0x1D515, - 0x1D516, - 0x1D517, - 0x1D518, - 0x1D519, - 0x1D51A, - 0x1D51B, - 0x1D51C, - 0x1D51D, - 0x1D51E, - 0x1D51F, - 0x1D520, - 0x1D521, - 0x1D522, - 0x1D523, - 0x1D524, - 0x1D525, - 0x1D526, - 0x1D527, - 0x1D528, - 0x1D529, - 0x1D52A, - 0x1D52B, - 0x1D52C, - 0x1D52D, - 0x1D52E, - 0x1D52F, - 0x1D530, - 0x1D531, - 0x1D532, - 0x1D533, - 0x1D534, - 0x1D535, - 0x1D536, - 0x1D537, - 0x1D538, - 0x1D539, - 0x1D53A, - 0x1D53B, - 0x1D53C, - 0x1D53D, - 0x1D53E, - 0x1D53F, - 0x1D540, - 0x1D541, - 0x1D542, - 0x1D543, - 0x1D544, - 0x1D545, - 0x1D546, - 0x1D547, - 0x1D54A, - 0x1D54B, - 0x1D54C, - 0x1D54D, - 0x1D54E, - 0x1D54F, - 0x1D550, - 0x1D551, - 0x1D552, - 0x1D553, - 0x1D554, - 0x1D555, - 0x1D556, - 0x1D557, - 0x1D558, - 0x1D559, - 0x1D55A, - 0x1D55B, - 0x1D55C, - 0x1D55D, - 0x1D55E, - 0x1D55F, - 0x1D560, - 0x1D561, - 0x1D562, - 0x1D563, - 0x1D564, - 0x1D565, - 0x1D566, - 0x1D567, - 0x1D568, - 0x1D569, - 0x1D56A, - 0x1D56B, - 0x1D56C, - 0x1D56D, - 0x1D56E, - 0x1D56F, - 0x1D570, - 0x1D571, - 0x1D572, - 0x1D573, - 0x1D574, - 0x1D575, - 0x1D576, - 0x1D577, - 0x1D578, - 0x1D579, - 0x1D57A, - 0x1D57B, - 0x1D57C, - 0x1D57D, - 0x1D57E, - 0x1D57F, - 0x1D580, - 0x1D581, - 0x1D582, - 0x1D583, - 0x1D584, - 0x1D585, - 0x1D586, - 0x1D587, - 0x1D588, - 0x1D589, - 0x1D58A, - 0x1D58B, - 0x1D58C, - 0x1D58D, - 0x1D58E, - 0x1D58F, - 0x1D590, - 0x1D591, - 0x1D592, - 0x1D593, - 0x1D594, - 0x1D595, - 0x1D596, - 0x1D597, - 0x1D598, - 0x1D599, - 0x1D59A, - 0x1D59B, - 0x1D59C, - 0x1D59D, - 0x1D59E, - 0x1D59F, - 0x1D5A0, - 0x1D5A1, - 0x1D5A2, - 0x1D5A3, - 0x1D5A4, - 0x1D5A5, - 0x1D5A6, - 0x1D5A7, - 0x1D5A8, - 0x1D5A9, - 0x1D5AA, - 0x1D5AB, - 0x1D5AC, - 0x1D5AD, - 0x1D5AE, - 0x1D5AF, - 0x1D5B0, - 0x1D5B1, - 0x1D5B2, - 0x1D5B3, - 0x1D5B4, - 0x1D5B5, - 0x1D5B6, - 0x1D5B7, - 0x1D5B8, - 0x1D5B9, - 0x1D5BA, - 0x1D5BB, - 0x1D5BC, - 0x1D5BD, - 0x1D5BE, - 0x1D5BF, - 0x1D5C0, - 0x1D5C1, - 0x1D5C2, - 0x1D5C3, - 0x1D5C4, - 0x1D5C5, - 0x1D5C6, - 0x1D5C7, - 0x1D5C8, - 0x1D5C9, - 0x1D5CA, - 0x1D5CB, - 0x1D5CC, - 0x1D5CD, - 0x1D5CE, - 0x1D5CF, - 0x1D5D0, - 0x1D5D1, - 0x1D5D2, - 0x1D5D3, - 0x1D5D4, - 0x1D5D5, - 0x1D5D6, - 0x1D5D7, - 0x1D5D8, - 0x1D5D9, - 0x1D5DA, - 0x1D5DB, - 0x1D5DC, - 0x1D5DD, - 0x1D5DE, - 0x1D5DF, - 0x1D5E0, - 0x1D5E1, - 0x1D5E2, - 0x1D5E3, - 0x1D5E4, - 0x1D5E5, - 0x1D5E6, - 0x1D5E7, - 0x1D5E8, - 0x1D5E9, - 0x1D5EA, - 0x1D5EB, - 0x1D5EC, - 0x1D5ED, - 0x1D5EE, - 0x1D5EF, - 0x1D5F0, - 0x1D5F1, - 0x1D5F2, - 0x1D5F3, - 0x1D5F4, - 0x1D5F5, - 0x1D5F6, - 0x1D5F7, - 0x1D5F8, - 0x1D5F9, - 0x1D5FA, - 0x1D5FB, - 0x1D5FC, - 0x1D5FD, - 0x1D5FE, - 0x1D5FF, - 0x1D600, - 0x1D601, - 0x1D602, - 0x1D603, - 0x1D604, - 0x1D605, - 0x1D606, - 0x1D607, - 0x1D608, - 0x1D609, - 0x1D60A, - 0x1D60B, - 0x1D60C, - 0x1D60D, - 0x1D60E, - 0x1D60F, - 0x1D610, - 0x1D611, - 0x1D612, - 0x1D613, - 0x1D614, - 0x1D615, - 0x1D616, - 0x1D617, - 0x1D618, - 0x1D619, - 0x1D61A, - 0x1D61B, - 0x1D61C, - 0x1D61D, - 0x1D61E, - 0x1D61F, - 0x1D620, - 0x1D621, - 0x1D622, - 0x1D623, - 0x1D624, - 0x1D625, - 0x1D626, - 0x1D627, - 0x1D628, - 0x1D629, - 0x1D62A, - 0x1D62B, - 0x1D62C, - 0x1D62D, - 0x1D62E, - 0x1D62F, - 0x1D630, - 0x1D631, - 0x1D632, - 0x1D633, - 0x1D634, - 0x1D635, - 0x1D636, - 0x1D637, - 0x1D638, - 0x1D639, - 0x1D63A, - 0x1D63B, - 0x1D63C, - 0x1D63D, - 0x1D63E, - 0x1D63F, - 0x1D640, - 0x1D641, - 0x1D642, - 0x1D643, - 0x1D644, - 0x1D645, - 0x1D646, - 0x1D647, - 0x1D648, - 0x1D649, - 0x1D64A, - 0x1D64B, - 0x1D64C, - 0x1D64D, - 0x1D64E, - 0x1D64F, - 0x1D650, - 0x1D651, - 0x1D652, - 0x1D653, - 0x1D654, - 0x1D655, - 0x1D656, - 0x1D657, - 0x1D658, - 0x1D659, - 0x1D65A, - 0x1D65B, - 0x1D65C, - 0x1D65D, - 0x1D65E, - 0x1D65F, - 0x1D660, - 0x1D661, - 0x1D662, - 0x1D663, - 0x1D664, - 0x1D665, - 0x1D666, - 0x1D667, - 0x1D668, - 0x1D669, - 0x1D66A, - 0x1D66B, - 0x1D66C, - 0x1D66D, - 0x1D66E, - 0x1D66F, - 0x1D670, - 0x1D671, - 0x1D672, - 0x1D673, - 0x1D674, - 0x1D675, - 0x1D676, - 0x1D677, - 0x1D678, - 0x1D679, - 0x1D67A, - 0x1D67B, - 0x1D67C, - 0x1D67D, - 0x1D67E, - 0x1D67F, - 0x1D680, - 0x1D681, - 0x1D682, - 0x1D683, - 0x1D684, - 0x1D685, - 0x1D686, - 0x1D687, - 0x1D688, - 0x1D689, - 0x1D68A, - 0x1D68B, - 0x1D68C, - 0x1D68D, - 0x1D68E, - 0x1D68F, - 0x1D690, - 0x1D691, - 0x1D692, - 0x1D693, - 0x1D694, - 0x1D695, - 0x1D696, - 0x1D697, - 0x1D698, - 0x1D699, - 0x1D69A, - 0x1D69B, - 0x1D69C, - 0x1D69D, - 0x1D69E, - 0x1D69F, - 0x1D6A0, - 0x1D6A1, - 0x1D6A2, - 0x1D6A3, - 0x1D6A4, - 0x1D6A5, - 0x1D6A6, - 0x1D6A8, - 0x1D6A9, - 0x1D6AA, - 0x1D6AB, - 0x1D6AC, - 0x1D6AD, - 0x1D6AE, - 0x1D6AF, - 0x1D6B0, - 0x1D6B1, - 0x1D6B2, - 0x1D6B3, - 0x1D6B4, - 0x1D6B5, - 0x1D6B6, - 0x1D6B7, - 0x1D6B8, - 0x1D6B9, - 0x1D6BA, - 0x1D6BB, - 0x1D6BC, - 0x1D6BD, - 0x1D6BE, - 0x1D6BF, - 0x1D6C0, - 0x1D6C1, - 0x1D6C2, - 0x1D6C3, - 0x1D6C4, - 0x1D6C5, - 0x1D6C6, - 0x1D6C7, - 0x1D6C8, - 0x1D6C9, - 0x1D6CA, - 0x1D6CB, - 0x1D6CC, - 0x1D6CD, - 0x1D6CE, - 0x1D6CF, - 0x1D6D0, - 0x1D6D1, - 0x1D6D2, - 0x1D6D3, - 0x1D6D5, - 0x1D6D6, - 0x1D6D7, - 0x1D6D8, - 0x1D6D9, - 0x1D6DA, - 0x1D6DB, - 0x1D6DC, - 0x1D6DD, - 0x1D6DE, - 0x1D6DF, - 0x1D6E0, - 0x1D6E1, - 0x1D6E2, - 0x1D6E3, - 0x1D6E4, - 0x1D6E5, - 0x1D6E6, - 0x1D6E7, - 0x1D6E8, - 0x1D6E9, - 0x1D6EA, - 0x1D6EB, - 0x1D6EC, - 0x1D6ED, - 0x1D6EE, - 0x1D6EF, - 0x1D6F0, - 0x1D6F1, - 0x1D6F2, - 0x1D6F3, - 0x1D6F4, - 0x1D6F5, - 0x1D6F6, - 0x1D6F7, - 0x1D6F8, - 0x1D6F9, - 0x1D6FA, - 0x1D6FB, - 0x1D6FC, - 0x1D6FD, - 0x1D6FE, - 0x1D6FF, - 0x1D700, - 0x1D701, - 0x1D702, - 0x1D703, - 0x1D704, - 0x1D705, - 0x1D706, - 0x1D707, - 0x1D708, - 0x1D709, - 0x1D70A, - 0x1D70B, - 0x1D70C, - 0x1D70D, - 0x1D70F, - 0x1D710, - 0x1D711, - 0x1D712, - 0x1D713, - 0x1D714, - 0x1D715, - 0x1D716, - 0x1D717, - 0x1D718, - 0x1D719, - 0x1D71A, - 0x1D71B, - 0x1D71C, - 0x1D71D, - 0x1D71E, - 0x1D71F, - 0x1D720, - 0x1D721, - 0x1D722, - 0x1D723, - 0x1D724, - 0x1D725, - 0x1D726, - 0x1D727, - 0x1D728, - 0x1D729, - 0x1D72A, - 0x1D72B, - 0x1D72C, - 0x1D72D, - 0x1D72E, - 0x1D72F, - 0x1D730, - 0x1D731, - 0x1D732, - 0x1D733, - 0x1D734, - 0x1D735, - 0x1D736, - 0x1D737, - 0x1D738, - 0x1D739, - 0x1D73A, - 0x1D73B, - 0x1D73C, - 0x1D73D, - 0x1D73E, - 0x1D73F, - 0x1D740, - 0x1D741, - 0x1D742, - 0x1D743, - 0x1D744, - 0x1D745, - 0x1D746, - 0x1D747, - 0x1D749, - 0x1D74A, - 0x1D74B, - 0x1D74C, - 0x1D74D, - 0x1D74E, - 0x1D74F, - 0x1D750, - 0x1D751, - 0x1D752, - 0x1D753, - 0x1D754, - 0x1D755, - 0x1D756, - 0x1D757, - 0x1D758, - 0x1D759, - 0x1D75A, - 0x1D75B, - 0x1D75C, - 0x1D75D, - 0x1D75E, - 0x1D75F, - 0x1D760, - 0x1D761, - 0x1D762, - 0x1D763, - 0x1D764, - 0x1D765, - 0x1D766, - 0x1D767, - 0x1D768, - 0x1D769, - 0x1D76A, - 0x1D76B, - 0x1D76C, - 0x1D76D, - 0x1D76E, - 0x1D76F, - 0x1D770, - 0x1D771, - 0x1D772, - 0x1D773, - 0x1D774, - 0x1D775, - 0x1D776, - 0x1D777, - 0x1D778, - 0x1D779, - 0x1D77A, - 0x1D77B, - 0x1D77C, - 0x1D77D, - 0x1D77E, - 0x1D77F, - 0x1D780, - 0x1D781, - 0x1D783, - 0x1D784, - 0x1D785, - 0x1D786, - 0x1D787, - 0x1D788, - 0x1D789, - 0x1D78A, - 0x1D78B, - 0x1D78C, - 0x1D78D, - 0x1D78E, - 0x1D78F, - 0x1D790, - 0x1D791, - 0x1D792, - 0x1D793, - 0x1D794, - 0x1D795, - 0x1D796, - 0x1D797, - 0x1D798, - 0x1D799, - 0x1D79A, - 0x1D79B, - 0x1D79C, - 0x1D79D, - 0x1D79E, - 0x1D79F, - 0x1D7A0, - 0x1D7A1, - 0x1D7A2, - 0x1D7A3, - 0x1D7A4, - 0x1D7A5, - 0x1D7A6, - 0x1D7A7, - 0x1D7A8, - 0x1D7A9, - 0x1D7AA, - 0x1D7AB, - 0x1D7AC, - 0x1D7AD, - 0x1D7AE, - 0x1D7AF, - 0x1D7B0, - 0x1D7B1, - 0x1D7B2, - 0x1D7B3, - 0x1D7B4, - 0x1D7B5, - 0x1D7B6, - 0x1D7B7, - 0x1D7B8, - 0x1D7B9, - 0x1D7BA, - 0x1D7BB, - 0x1D7BD, - 0x1D7BE, - 0x1D7BF, - 0x1D7C0, - 0x1D7C1, - 0x1D7C2, - 0x1D7C3, - 0x1D7C4, - 0x1D7C5, - 0x1D7C6, - 0x1D7C7, - 0x1D7C8, - 0x1D7C9, - 0x1D7CA, - 0x1D7CC, - 0x1D7CE, - 0x1D7CF, - 0x1D7D0, - 0x1D7D1, - 0x1D7D2, - 0x1D7D3, - 0x1D7D4, - 0x1D7D5, - 0x1D7D6, - 0x1D7D7, - 0x1D7D8, - 0x1D7D9, - 0x1D7DA, - 0x1D7DB, - 0x1D7DC, - 0x1D7DD, - 0x1D7DE, - 0x1D7DF, - 0x1D7E0, - 0x1D7E1, - 0x1D7E2, - 0x1D7E3, - 0x1D7E4, - 0x1D7E5, - 0x1D7E6, - 0x1D7E7, - 0x1D7E8, - 0x1D7E9, - 0x1D7EA, - 0x1D7EB, - 0x1D7EC, - 0x1D7ED, - 0x1D7EE, - 0x1D7EF, - 0x1D7F0, - 0x1D7F1, - 0x1D7F2, - 0x1D7F3, - 0x1D7F4, - 0x1D7F5, - 0x1D7F6, - 0x1D7F7, - 0x1D7F8, - 0x1D7F9, - 0x1D7FA, - 0x1D7FB, - 0x1D7FC, - 0x1D7FD, - 0x1D7FE, - 0x1D7FF, - 0x1D800, - 0x1DA8C, - 0x1DA9B, - 0x1DAA0, - 0x1DAA1, - 0x1DAB0, - 0x1DF00, - 0x1DF1F, - 0x1DF25, - 0x1DF2B, - 0x1E000, - 0x1E007, - 0x1E008, - 0x1E019, - 0x1E01B, - 0x1E022, - 0x1E023, - 0x1E025, - 0x1E026, - 0x1E02B, - 0x1E030, - 0x1E031, - 0x1E032, - 0x1E033, - 0x1E034, - 0x1E035, - 0x1E036, - 0x1E037, - 0x1E038, - 0x1E039, - 0x1E03A, - 0x1E03B, - 0x1E03C, - 0x1E03D, - 0x1E03E, - 0x1E03F, - 0x1E040, - 0x1E041, - 0x1E042, - 0x1E043, - 0x1E044, - 0x1E045, - 0x1E046, - 0x1E047, - 0x1E048, - 0x1E049, - 0x1E04A, - 0x1E04B, - 0x1E04C, - 0x1E04D, - 0x1E04E, - 0x1E04F, - 0x1E050, - 0x1E051, - 0x1E052, - 0x1E053, - 0x1E054, - 0x1E055, - 0x1E056, - 0x1E057, - 0x1E058, - 0x1E059, - 0x1E05A, - 0x1E05B, - 0x1E05C, - 0x1E05D, - 0x1E05E, - 0x1E05F, - 0x1E060, - 0x1E061, - 0x1E062, - 0x1E063, - 0x1E064, - 0x1E065, - 0x1E066, - 0x1E067, - 0x1E068, - 0x1E069, - 0x1E06A, - 0x1E06B, - 0x1E06C, - 0x1E06D, - 0x1E06E, - 0x1E08F, - 0x1E090, - 0x1E100, - 0x1E12D, - 0x1E130, - 0x1E13E, - 0x1E140, - 0x1E14A, - 0x1E14E, - 0x1E150, - 0x1E290, - 0x1E2AF, - 0x1E2C0, - 0x1E2FA, - 0x1E2FF, - 0x1E300, - 0x1E4D0, - 0x1E4FA, - 0x1E5D0, - 0x1E5FB, - 0x1E5FF, - 0x1E600, - 0x1E6C0, - 0x1E6DF, - 0x1E6E0, - 0x1E6F6, - 0x1E6FE, - 0x1E700, - 0x1E7E0, - 0x1E7E7, - 0x1E7E8, - 0x1E7EC, - 0x1E7ED, - 0x1E7EF, - 0x1E7F0, - 0x1E7FF, - 0x1E800, - 0x1E8C5, - 0x1E8C7, - 0x1E8D7, - 0x1E900, - 0x1E901, - 0x1E902, - 0x1E903, - 0x1E904, - 0x1E905, - 0x1E906, - 0x1E907, - 0x1E908, - 0x1E909, - 0x1E90A, - 0x1E90B, - 0x1E90C, - 0x1E90D, - 0x1E90E, - 0x1E90F, - 0x1E910, - 0x1E911, - 0x1E912, - 0x1E913, - 0x1E914, - 0x1E915, - 0x1E916, - 0x1E917, - 0x1E918, - 0x1E919, - 0x1E91A, - 0x1E91B, - 0x1E91C, - 0x1E91D, - 0x1E91E, - 0x1E91F, - 0x1E920, - 0x1E921, - 0x1E922, - 0x1E94C, - 0x1E950, - 0x1E95A, - 0x1E95E, - 0x1E960, - 0x1EC71, - 0x1ECB5, - 0x1ED01, - 0x1ED3E, - 0x1EE00, - 0x1EE01, - 0x1EE02, - 0x1EE03, - 0x1EE04, - 0x1EE05, - 0x1EE06, - 0x1EE07, - 0x1EE08, - 0x1EE09, - 0x1EE0A, - 0x1EE0B, - 0x1EE0C, - 0x1EE0D, - 0x1EE0E, - 0x1EE0F, - 0x1EE10, - 0x1EE11, - 0x1EE12, - 0x1EE13, - 0x1EE14, - 0x1EE15, - 0x1EE16, - 0x1EE17, - 0x1EE18, - 0x1EE19, - 0x1EE1A, - 0x1EE1B, - 0x1EE1C, - 0x1EE1D, - 0x1EE1E, - 0x1EE1F, - 0x1EE20, - 0x1EE21, - 0x1EE22, - 0x1EE23, - 0x1EE24, - 0x1EE25, - 0x1EE27, - 0x1EE28, - 0x1EE29, - 0x1EE2A, - 0x1EE2B, - 0x1EE2C, - 0x1EE2D, - 0x1EE2E, - 0x1EE2F, - 0x1EE30, - 0x1EE31, - 0x1EE32, - 0x1EE33, - 0x1EE34, - 0x1EE35, - 0x1EE36, - 0x1EE37, - 0x1EE38, - 0x1EE39, - 0x1EE3A, - 0x1EE3B, - 0x1EE3C, - 0x1EE42, - 0x1EE43, - 0x1EE47, - 0x1EE48, - 0x1EE49, - 0x1EE4A, - 0x1EE4B, - 0x1EE4C, - 0x1EE4D, - 0x1EE4E, - 0x1EE4F, - 0x1EE50, - 0x1EE51, - 0x1EE52, - 0x1EE53, - 0x1EE54, - 0x1EE55, - 0x1EE57, - 0x1EE58, - 0x1EE59, - 0x1EE5A, - 0x1EE5B, - 0x1EE5C, - 0x1EE5D, - 0x1EE5E, - 0x1EE5F, - 0x1EE60, - 0x1EE61, - 0x1EE62, - 0x1EE63, - 0x1EE64, - 0x1EE65, - 0x1EE67, - 0x1EE68, - 0x1EE69, - 0x1EE6A, - 0x1EE6B, - 0x1EE6C, - 0x1EE6D, - 0x1EE6E, - 0x1EE6F, - 0x1EE70, - 0x1EE71, - 0x1EE72, - 0x1EE73, - 0x1EE74, - 0x1EE75, - 0x1EE76, - 0x1EE77, - 0x1EE78, - 0x1EE79, - 0x1EE7A, - 0x1EE7B, - 0x1EE7C, - 0x1EE7D, - 0x1EE7E, - 0x1EE7F, - 0x1EE80, - 0x1EE81, - 0x1EE82, - 0x1EE83, - 0x1EE84, - 0x1EE85, - 0x1EE86, - 0x1EE87, - 0x1EE88, - 0x1EE89, - 0x1EE8A, - 0x1EE8B, - 0x1EE8C, - 0x1EE8D, - 0x1EE8E, - 0x1EE8F, - 0x1EE90, - 0x1EE91, - 0x1EE92, - 0x1EE93, - 0x1EE94, - 0x1EE95, - 0x1EE96, - 0x1EE97, - 0x1EE98, - 0x1EE99, - 0x1EE9A, - 0x1EE9B, - 0x1EE9C, - 0x1EEA1, - 0x1EEA2, - 0x1EEA3, - 0x1EEA4, - 0x1EEA5, - 0x1EEA6, - 0x1EEA7, - 0x1EEA8, - 0x1EEA9, - 0x1EEAA, - 0x1EEAB, - 0x1EEAC, - 0x1EEAD, - 0x1EEAE, - 0x1EEAF, - 0x1EEB0, - 0x1EEB1, - 0x1EEB2, - 0x1EEB3, - 0x1EEB4, - 0x1EEB5, - 0x1EEB6, - 0x1EEB7, - 0x1EEB8, - 0x1EEB9, - 0x1EEBA, - 0x1EEBB, - 0x1EEBC, - 0x1EEF0, - 0x1EEF2, - 0x1F000, - 0x1F02C, - 0x1F030, - 0x1F094, - 0x1F0A0, - 0x1F0AF, - 0x1F0B1, - 0x1F0C0, - 0x1F0C1, - 0x1F0D0, - 0x1F0D1, - 0x1F0F6, - 0x1F101, - 0x1F102, - 0x1F103, - 0x1F104, - 0x1F105, - 0x1F106, - 0x1F107, - 0x1F108, - 0x1F109, - 0x1F10A, - 0x1F10B, - 0x1F110, - 0x1F111, - 0x1F112, - 0x1F113, - 0x1F114, - 0x1F115, - 0x1F116, - 0x1F117, - 0x1F118, - 0x1F119, - 0x1F11A, - 0x1F11B, - 0x1F11C, - 0x1F11D, - 0x1F11E, - 0x1F11F, - 0x1F120, - 0x1F121, - 0x1F122, - 0x1F123, - 0x1F124, - 0x1F125, - 0x1F126, - 0x1F127, - 0x1F128, - 0x1F129, - 0x1F12A, - 0x1F12B, - 0x1F12C, - 0x1F12D, - 0x1F12E, - 0x1F12F, - 0x1F130, - 0x1F131, - 0x1F132, - 0x1F133, - 0x1F134, - 0x1F135, - 0x1F136, - 0x1F137, - 0x1F138, - 0x1F139, - 0x1F13A, - 0x1F13B, - 0x1F13C, - 0x1F13D, - 0x1F13E, - 0x1F13F, - 0x1F140, - 0x1F141, - 0x1F142, - 0x1F143, - 0x1F144, - 0x1F145, - 0x1F146, - 0x1F147, - 0x1F148, - 0x1F149, - 0x1F14A, - 0x1F14B, - 0x1F14C, - 0x1F14D, - 0x1F14E, - 0x1F14F, - 0x1F150, - 0x1F16A, - 0x1F16B, - 0x1F16C, - 0x1F16D, - 0x1F190, - 0x1F191, - 0x1F1AE, - 0x1F1E6, - 0x1F200, - 0x1F201, - 0x1F202, - 0x1F203, - 0x1F210, - 0x1F211, - 0x1F212, - 0x1F213, - 0x1F214, - 0x1F215, - 0x1F216, - 0x1F217, - 0x1F218, - 0x1F219, - 0x1F21A, - 0x1F21B, - 0x1F21C, - 0x1F21D, - 0x1F21E, - 0x1F21F, - 0x1F220, - 0x1F221, - 0x1F222, - 0x1F223, - 0x1F224, - 0x1F225, - 0x1F226, - 0x1F227, - 0x1F228, - 0x1F229, - 0x1F22A, - 0x1F22B, - 0x1F22C, - 0x1F22D, - 0x1F22E, - 0x1F22F, - 0x1F230, - 0x1F231, - 0x1F232, - 0x1F233, - 0x1F234, - 0x1F235, - 0x1F236, - 0x1F237, - 0x1F238, - 0x1F239, - 0x1F23A, - 0x1F23B, - 0x1F23C, - 0x1F240, - 0x1F241, - 0x1F242, - 0x1F243, - 0x1F244, - 0x1F245, - 0x1F246, - 0x1F247, - 0x1F248, - 0x1F249, - 0x1F250, - 0x1F251, - 0x1F252, - 0x1F260, - 0x1F266, - 0x1F300, - 0x1F6D9, - 0x1F6DC, - 0x1F6ED, - 0x1F6F0, - 0x1F6FD, - 0x1F700, - 0x1F7DA, - 0x1F7E0, - 0x1F7EC, - 0x1F7F0, - 0x1F7F1, - 0x1F800, - 0x1F80C, - 0x1F810, - 0x1F848, - 0x1F850, - 0x1F85A, - 0x1F860, - 0x1F888, - 0x1F890, - 0x1F8AE, - 0x1F8B0, - 0x1F8BC, - 0x1F8C0, - 0x1F8C2, - 0x1F8D0, - 0x1F8D9, - 0x1F900, - 0x1FA58, - 0x1FA60, - 0x1FA6E, - 0x1FA70, - 0x1FA7D, - 0x1FA80, - 0x1FA8B, - 0x1FA8E, - 0x1FAC7, - 0x1FAC8, - 0x1FAC9, - 0x1FACD, - 0x1FADD, - 0x1FADF, - 0x1FAEB, - 0x1FAEF, - 0x1FAF9, - 0x1FB00, - 0x1FB93, - 0x1FB94, - 0x1FBF0, - 0x1FBF1, - 0x1FBF2, - 0x1FBF3, - 0x1FBF4, - 0x1FBF5, - 0x1FBF6, - 0x1FBF7, - 0x1FBF8, - 0x1FBF9, - 0x1FBFA, - 0x1FBFB, - 0x20000, - 0x2A6E0, - 0x2A700, - 0x2B81E, - 0x2B820, - 0x2CEAE, - 0x2CEB0, - 0x2EBE1, - 0x2EBF0, - 0x2EE5E, - 0x2F800, - 0x2F801, - 0x2F802, - 0x2F803, - 0x2F804, - 0x2F805, - 0x2F806, - 0x2F807, - 0x2F808, - 0x2F809, - 0x2F80A, - 0x2F80B, - 0x2F80C, - 0x2F80D, - 0x2F80E, - 0x2F80F, - 0x2F810, - 0x2F811, - 0x2F812, - 0x2F813, - 0x2F814, - 0x2F815, - 0x2F816, - 0x2F817, - 0x2F818, - 0x2F819, - 0x2F81A, - 0x2F81B, - 0x2F81C, - 0x2F81D, - 0x2F81E, - 0x2F81F, - 0x2F820, - 0x2F821, - 0x2F822, - 0x2F823, - 0x2F824, - 0x2F825, - 0x2F826, - 0x2F827, - 0x2F828, - 0x2F829, - 0x2F82A, - 0x2F82B, - 0x2F82C, - 0x2F82D, - 0x2F82E, - 0x2F82F, - 0x2F830, - 0x2F831, - 0x2F834, - 0x2F835, - 0x2F836, - 0x2F837, - 0x2F838, - 0x2F839, - 0x2F83A, - 0x2F83B, - 0x2F83C, - 0x2F83D, - 0x2F83E, - 0x2F83F, - 0x2F840, - 0x2F841, - 0x2F842, - 0x2F843, - 0x2F844, - 0x2F845, - 0x2F847, - 0x2F848, - 0x2F849, - 0x2F84A, - 0x2F84B, - 0x2F84C, - 0x2F84D, - 0x2F84E, - 0x2F84F, - 0x2F850, - 0x2F851, - 0x2F852, - 0x2F853, - 0x2F854, - 0x2F855, - 0x2F856, - 0x2F857, - 0x2F858, - 0x2F859, - 0x2F85A, - 0x2F85B, - 0x2F85C, - 0x2F85D, - 0x2F85E, - 0x2F85F, - 0x2F860, - 0x2F861, - 0x2F862, - 0x2F863, - 0x2F864, - 0x2F865, - 0x2F866, - 0x2F867, - 0x2F868, - 0x2F869, - 0x2F86A, - 0x2F86C, - 0x2F86D, - 0x2F86E, - 0x2F86F, - 0x2F870, - 0x2F871, - 0x2F872, - 0x2F873, - 0x2F874, - 0x2F875, - 0x2F876, - 0x2F877, - 0x2F878, - 0x2F879, - 0x2F87A, - 0x2F87B, - 0x2F87C, - 0x2F87D, - 0x2F87E, - 0x2F87F, - 0x2F880, - 0x2F881, - 0x2F882, - 0x2F883, - 0x2F884, - 0x2F885, - 0x2F886, - 0x2F887, - 0x2F888, - 0x2F889, - 0x2F88A, - 0x2F88B, - 0x2F88C, - 0x2F88D, - 0x2F88E, - 0x2F88F, - 0x2F890, - 0x2F891, - 0x2F893, - 0x2F894, - 0x2F896, - 0x2F897, - 0x2F898, - 0x2F899, - 0x2F89A, - 0x2F89B, - 0x2F89C, - 0x2F89D, - 0x2F89E, - 0x2F89F, - 0x2F8A0, - 0x2F8A1, - 0x2F8A2, - 0x2F8A3, - 0x2F8A4, - 0x2F8A5, - 0x2F8A6, - 0x2F8A7, - 0x2F8A8, - 0x2F8A9, - 0x2F8AA, - 0x2F8AB, - 0x2F8AC, - 0x2F8AD, - 0x2F8AE, - 0x2F8AF, - 0x2F8B0, - 0x2F8B1, - 0x2F8B2, - 0x2F8B3, - 0x2F8B4, - 0x2F8B5, - 0x2F8B6, - 0x2F8B7, - 0x2F8B8, - 0x2F8B9, - 0x2F8BA, - 0x2F8BB, - 0x2F8BC, - 0x2F8BD, - 0x2F8BE, - 0x2F8BF, - 0x2F8C0, - 0x2F8C1, - 0x2F8C2, - 0x2F8C3, - 0x2F8C4, - 0x2F8C5, - 0x2F8C6, - 0x2F8C7, - 0x2F8C8, - 0x2F8C9, - 0x2F8CA, - 0x2F8CB, - 0x2F8CC, - 0x2F8CD, - 0x2F8CE, - 0x2F8CF, - 0x2F8D0, - 0x2F8D1, - 0x2F8D2, - 0x2F8D3, - 0x2F8D4, - 0x2F8D5, - 0x2F8D6, - 0x2F8D7, - 0x2F8D8, - 0x2F8D9, - 0x2F8DA, - 0x2F8DB, - 0x2F8DC, - 0x2F8DD, - 0x2F8DE, - 0x2F8DF, - 0x2F8E0, - 0x2F8E1, - 0x2F8E2, - 0x2F8E3, - 0x2F8E4, - 0x2F8E5, - 0x2F8E6, - 0x2F8E7, - 0x2F8E8, - 0x2F8E9, - 0x2F8EA, - 0x2F8EB, - 0x2F8EC, - 0x2F8ED, - 0x2F8EE, - 0x2F8EF, - 0x2F8F0, - 0x2F8F1, - 0x2F8F2, - 0x2F8F3, - 0x2F8F4, - 0x2F8F5, - 0x2F8F6, - 0x2F8F7, - 0x2F8F8, - 0x2F8F9, - 0x2F8FA, - 0x2F8FB, - 0x2F8FC, - 0x2F8FD, - 0x2F8FE, - 0x2F8FF, - 0x2F900, - 0x2F901, - 0x2F902, - 0x2F903, - 0x2F904, - 0x2F905, - 0x2F906, - 0x2F907, - 0x2F908, - 0x2F909, - 0x2F90A, - 0x2F90B, - 0x2F90C, - 0x2F90D, - 0x2F90E, - 0x2F90F, - 0x2F910, - 0x2F911, - 0x2F912, - 0x2F913, - 0x2F914, - 0x2F915, - 0x2F916, - 0x2F917, - 0x2F918, - 0x2F919, - 0x2F91A, - 0x2F91B, - 0x2F91C, - 0x2F91D, - 0x2F91E, - 0x2F91F, - 0x2F920, - 0x2F921, - 0x2F922, - 0x2F923, - 0x2F924, - 0x2F925, - 0x2F926, - 0x2F927, - 0x2F928, - 0x2F929, - 0x2F92A, - 0x2F92B, - 0x2F92C, - 0x2F92E, - 0x2F92F, - 0x2F930, - 0x2F931, - 0x2F932, - 0x2F933, - 0x2F934, - 0x2F935, - 0x2F936, - 0x2F937, - 0x2F938, - 0x2F939, - 0x2F93A, - 0x2F93B, - 0x2F93C, - 0x2F93D, - 0x2F93E, - 0x2F93F, - 0x2F940, - 0x2F941, - 0x2F942, - 0x2F943, - 0x2F944, - 0x2F945, - 0x2F946, - 0x2F948, - 0x2F949, - 0x2F94A, - 0x2F94B, - 0x2F94C, - 0x2F94D, - 0x2F94E, - 0x2F94F, - 0x2F950, - 0x2F951, - 0x2F952, - 0x2F953, - 0x2F954, - 0x2F955, - 0x2F956, - 0x2F957, - 0x2F958, - 0x2F959, - 0x2F95A, - 0x2F95B, - 0x2F95C, - 0x2F95D, - 0x2F95F, - 0x2F960, - 0x2F961, - 0x2F962, - 0x2F963, - 0x2F964, - 0x2F965, - 0x2F966, - 0x2F967, - 0x2F968, - 0x2F969, - 0x2F96A, - 0x2F96B, - 0x2F96C, - 0x2F96D, - 0x2F96E, - 0x2F96F, - 0x2F970, - 0x2F971, - 0x2F972, - 0x2F973, - 0x2F974, - 0x2F975, - 0x2F976, - 0x2F977, - 0x2F978, - 0x2F979, - 0x2F97A, - 0x2F97B, - 0x2F97C, - 0x2F97D, - 0x2F97E, - 0x2F97F, - 0x2F980, - 0x2F981, - 0x2F982, - 0x2F983, - 0x2F984, - 0x2F985, - 0x2F986, - 0x2F987, - 0x2F988, - 0x2F989, - 0x2F98A, - 0x2F98B, - 0x2F98C, - 0x2F98D, - 0x2F98E, - 0x2F98F, - 0x2F990, - 0x2F991, - 0x2F992, - 0x2F993, - 0x2F994, - 0x2F995, - 0x2F996, - 0x2F997, - 0x2F998, - 0x2F999, - 0x2F99A, - 0x2F99B, - 0x2F99C, - 0x2F99D, - 0x2F99E, - 0x2F99F, - 0x2F9A0, - 0x2F9A1, - 0x2F9A2, - 0x2F9A3, - 0x2F9A4, - 0x2F9A5, - 0x2F9A6, - 0x2F9A7, - 0x2F9A8, - 0x2F9A9, - 0x2F9AA, - 0x2F9AB, - 0x2F9AC, - 0x2F9AD, - 0x2F9AE, - 0x2F9AF, - 0x2F9B0, - 0x2F9B1, - 0x2F9B2, - 0x2F9B3, - 0x2F9B4, - 0x2F9B5, - 0x2F9B6, - 0x2F9B7, - 0x2F9B8, - 0x2F9B9, - 0x2F9BA, - 0x2F9BB, - 0x2F9BC, - 0x2F9BD, - 0x2F9BE, - 0x2F9BF, - 0x2F9C0, - 0x2F9C1, - 0x2F9C2, - 0x2F9C3, - 0x2F9C4, - 0x2F9C5, - 0x2F9C6, - 0x2F9C7, - 0x2F9C8, - 0x2F9C9, - 0x2F9CA, - 0x2F9CB, - 0x2F9CC, - 0x2F9CD, - 0x2F9CE, - 0x2F9CF, - 0x2F9D0, - 0x2F9D1, - 0x2F9D2, - 0x2F9D3, - 0x2F9D4, - 0x2F9D5, - 0x2F9D6, - 0x2F9D7, - 0x2F9D8, - 0x2F9D9, - 0x2F9DA, - 0x2F9DB, - 0x2F9DC, - 0x2F9DD, - 0x2F9DE, - 0x2F9DF, - 0x2F9E0, - 0x2F9E1, - 0x2F9E2, - 0x2F9E3, - 0x2F9E4, - 0x2F9E5, - 0x2F9E6, - 0x2F9E7, - 0x2F9E8, - 0x2F9E9, - 0x2F9EA, - 0x2F9EB, - 0x2F9EC, - 0x2F9ED, - 0x2F9EE, - 0x2F9EF, - 0x2F9F0, - 0x2F9F1, - 0x2F9F2, - 0x2F9F3, - 0x2F9F4, - 0x2F9F5, - 0x2F9F6, - 0x2F9F7, - 0x2F9F8, - 0x2F9F9, - 0x2F9FA, - 0x2F9FB, - 0x2F9FC, - 0x2F9FD, - 0x2F9FE, - 0x2FA00, - 0x2FA01, - 0x2FA02, - 0x2FA03, - 0x2FA04, - 0x2FA05, - 0x2FA06, - 0x2FA07, - 0x2FA08, - 0x2FA09, - 0x2FA0A, - 0x2FA0B, - 0x2FA0C, - 0x2FA0D, - 0x2FA0E, - 0x2FA0F, - 0x2FA10, - 0x2FA11, - 0x2FA12, - 0x2FA13, - 0x2FA14, - 0x2FA15, - 0x2FA16, - 0x2FA17, - 0x2FA18, - 0x2FA19, - 0x2FA1A, - 0x2FA1B, - 0x2FA1C, - 0x2FA1D, - 0x2FA1E, - 0x30000, - 0x3134B, - 0x31350, - 0x3347A, - 0xE0100, - 0xE01F0, - ), -) - -uts46_statuses: bytes = ( - b"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" - b"VMMMMMMMMMMMMMMMMMMMMMMMMMMVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" - b"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXMVVVVVVVMVMVVIVMVVMMMMVVMMMVMMMV" - b"MMMMMMMMMMMMMMMMMMMMMMMVMMMMMMMDVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV" - b"MVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMMVMVMVMVMVMMV" - b"MVMVMVMMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMMVMVMVMVMM" - b"VMVMMVMMMVMMMMVMMVMMMVMMVMMVMVMVMMVMVMVMMVMMMVMVMMVMVMMMMVMVMVMV" - b"MVMVMVMVMVMVMVMVMVMVMVMVMVMMVMMMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVM" - b"VMVMVMVMVMVMVMVMVMVMVMVMVMVMMVMMVMVMMMMVMVMVMVMVMMMMMMMMMVMMMMMM" - b"VMMMMMVMMVMMMVIVMVMVMVMVXMVMMXMMMMMMMXMXMMVMMMMMMMMMMMMMMMMMXMMM" - b"MMMMMMVDVMMMMMMMMVMVMVMVMVMVMVMVMVMVMVMVMVMMMVMMVMVMMVMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMVMVMVMVMVMVMVMVMVMVMV" - b"MVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMV" - b"MVMMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVM" - b"VMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVXMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMXVMVXVXVXVXVXVXVMMMMVXVXVXVXVXVXVXVXVXVX" - b"VXVXVMMMMMMMMVXVXVXVXVXVXVXVXVXVXVXMMXMVXVXVXVXVXVXVXVMXVMXVXVXV" - b"XVXVXVXMMMVXMXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVX" - b"VXMMXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXV" - b"XVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXV" - b"XVMVXVXVXVXVXVXVXVMVXVXVXVXVXMMVXVMVMVXVMVMVMVMVMVXVMVMMMMMVMVMV" - b"XVMVMVMVMVMVXVXVXVMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMXMXVMV" - b"IVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXMMMMMMXVXVXVXVXVXVXVXVXVX" - b"VIVXVXVXVIVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVMMM" - b"MMMMMMVXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMMVXVXVMMMV" - b"MMMMMMMMMMMVMMMMMMMMMMMMMMMMMMVMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMVMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMVMVMVMVMVMVMVMVMVMVMVMVMVMV" - b"MVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMV" - b"MVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMMVMVM" - b"VMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVM" - b"VMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMMMMMMMMVXMMMMMMXVMMMMMMMMVMMMMMM" - b"MMVXMMMMMMXVXMXMXMXMVMMMMMMMMVMVMVMVMVMVMVMXMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMVMMMXVMMMMMMMMMMMMMMXVMMMMMMMMMVMXVM" - b"MMMXMMMVMVMMMMMMMMXMMMXVMMMMMMMMXMIDXVMVMVXVXMVMMVMMVMVMVMMMVMVM" - b"IXIMMXMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMMMMMMMMMMMMXVMVXVXMMMMVMMMVM" - b"MMMMMVMMVMMMVMMMVMVMVMVMMMMVMMMMMMMMMMVMMMMMVMMMMVMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMVMVXVMMVMMVMMVXVXMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMVMMMVMVXVMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMVMMMVMVMVMVMMMMVMVMVMM" - b"MMMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMV" - b"MVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVXVXVXVXVXMVXVXVXVXVX" - b"VXVXVXVXVXVXVXVMVMXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMVMVMVMMMVXVXVMMVMVMXV" - b"XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMIMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXVMMMMMMMMMMMMMMVXVMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMMMXMMMMMMMMMMMMM" - b"MMMXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVXVXVXMVMVMVMVMVMVMVM" - b"VMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMMVXV" - b"MVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMV" - b"MVMVMVMVMVMVMVMVMVMMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMMMMMVM" - b"MMMMVMVMVMVMVMVMVMVMMMMVMVMMVMVMVMVMVMVMVMVMXMMMMMVMMVXVXVXVXVXV" - b"XVXVXVXVXVXVXVXVXVXVXVXVXVXVXVMMMMVMVXMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVXVXVXVXVX" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMVMVMVMMMMMMMMMMVMVMVMMVMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMXMMMMMMXMMMMMXMVMMMMMMMMMMMMMMMMMMMMMMMMXMMMMM" - b"XMXMMXMMXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMVMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVXMMMMMMMMMMMMMVIMMXMMM" - b"MMMXVXMMMMMMMMMMMMMMMMMMMVMMMMMMXMMMMMMMMMMMMMMMMMMMXMMMMXMMMVMX" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXIXMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMMMMMXMMMMM" - b"MXMMMMMMXMMMXMMMMMMMXMMMMMMMXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXV" - b"XVXVXVXVXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVXVXMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMXVXVXVXVMMMMMMMMMMMXMMMMMMMMMMMMMMMXMMM" - b"MMMMXMMXVXVXVXVXVXVXVXVXVMMMMMXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMXMMMMMMMMMXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVX" - b"VXVXVXVXVXVXVXVXVXVXVXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMXVXVXVXVMMMMMMMMMMMMMMMMMMMMMMXVXVXVXVXVXVXVXVXVXVXVXVX" - b"VXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVX" - b"VXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVX" - b"VXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVX" - b"VXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMVXMMMMMMMMMMMMMMMMMMMMMMMMMXVXVXVXVXVXVXVXVXVXVXVXVXVX" - b"VXVXVXVXVXVXVXVXVXVIXVMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVXVXVX" - b"VXVXVXVXVXVXVMMMMMMMVIVMMMMMMVXVXVXVXVXVXMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMXMMXMXMMXMMMMXMMMMMMMMMMMMXMXMMMMMMMXMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMMMXMMMMMMMMXMMMMM" - b"MMXMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMMMXMMMMMXMXMMMMMMMXMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMVXVXVXVXVXVXVXVXVXVXMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXVXVXVXVXVXVXVXVXVX" - b"VXVXVXVXVXVXVXVXVXVXVXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVXVXVXVX" - b"VXMMMMXMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMXMXMXMMMMMMMMMMXMMMMXMXMXMX" - b"MXMXMXMMMXMMXMXMXMXMXMXMXMMXMXMMMMXMMMMMMMXMMMMXMMMMXMXMMMMMMMMM" - b"MXMMMMMMMMMMMMMMMMMXMMMXMMMMMXMMMMMMMMMMMMMMMMMXVXVXVXVXVXVXVXMM" - b"MMMMMMMMVMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMVMMMVMVXVMMMXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMXMMMMMMMMMXMMXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVXVX" - b"VXVMMMMMMMMMMVXVXVXVXVXVXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" - b"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXVXVXIX" -) - -uts46_replacements: tuple[Optional[str], ...] = ( - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - " ", - None, - None, - None, - None, - None, - None, - None, - " ̈", - None, - "a", - None, - None, - None, - None, - " ̄", - None, - None, - "2", - "3", - " ́", - "μ", - None, - None, - " ̧", - "1", - "o", - None, - "1⁄4", - "1⁄2", - "3⁄4", - None, - "à", - "á", - "â", - "ã", - "ä", - "å", - "æ", - "ç", - "è", - "é", - "ê", - "ë", - "ì", - "í", - "î", - "ï", - "ð", - "ñ", - "ò", - "ó", - "ô", - "õ", - "ö", - None, - "ø", - "ù", - "ú", - "û", - "ü", - "ý", - "þ", - "ss", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ā", - None, - "ă", - None, - "ą", - None, - "ć", - None, - "ĉ", - None, - "ċ", - None, - "č", - None, - "ď", - None, - "đ", - None, - "ē", - None, - "ĕ", - None, - "ė", - None, - "ę", - None, - "ě", - None, - "ĝ", - None, - "ğ", - None, - "ġ", - None, - "ģ", - None, - "ĥ", - None, - "ħ", - None, - "ĩ", - None, - "ī", - None, - "ĭ", - None, - "į", - None, - "i̇", - None, - "ij", - "ĵ", - None, - "ķ", - None, - "ĺ", - None, - "ļ", - None, - "ľ", - None, - "l·", - "ł", - None, - "ń", - None, - "ņ", - None, - "ň", - None, - "ʼn", - "ŋ", - None, - "ō", - None, - "ŏ", - None, - "ő", - None, - "œ", - None, - "ŕ", - None, - "ŗ", - None, - "ř", - None, - "ś", - None, - "ŝ", - None, - "ş", - None, - "š", - None, - "ţ", - None, - "ť", - None, - "ŧ", - None, - "ũ", - None, - "ū", - None, - "ŭ", - None, - "ů", - None, - "ű", - None, - "ų", - None, - "ŵ", - None, - "ŷ", - None, - "ÿ", - "ź", - None, - "ż", - None, - "ž", - None, - "s", - None, - "ɓ", - "ƃ", - None, - "ƅ", - None, - "ɔ", - "ƈ", - None, - "ɖ", - "ɗ", - "ƌ", - None, - "ǝ", - "ə", - "ɛ", - "ƒ", - None, - "ɠ", - "ɣ", - None, - "ɩ", - "ɨ", - "ƙ", - None, - "ɯ", - "ɲ", - None, - "ɵ", - "ơ", - None, - "ƣ", - None, - "ƥ", - None, - "ʀ", - "ƨ", - None, - "ʃ", - None, - "ƭ", - None, - "ʈ", - "ư", - None, - "ʊ", - "ʋ", - "ƴ", - None, - "ƶ", - None, - "ʒ", - "ƹ", - None, - "ƽ", - None, - "dž", - "lj", - "nj", - "ǎ", - None, - "ǐ", - None, - "ǒ", - None, - "ǔ", - None, - "ǖ", - None, - "ǘ", - None, - "ǚ", - None, - "ǜ", - None, - "ǟ", - None, - "ǡ", - None, - "ǣ", - None, - "ǥ", - None, - "ǧ", - None, - "ǩ", - None, - "ǫ", - None, - "ǭ", - None, - "ǯ", - None, - "dz", - "ǵ", - None, - "ƕ", - "ƿ", - "ǹ", - None, - "ǻ", - None, - "ǽ", - None, - "ǿ", - None, - "ȁ", - None, - "ȃ", - None, - "ȅ", - None, - "ȇ", - None, - "ȉ", - None, - "ȋ", - None, - "ȍ", - None, - "ȏ", - None, - "ȑ", - None, - "ȓ", - None, - "ȕ", - None, - "ȗ", - None, - "ș", - None, - "ț", - None, - "ȝ", - None, - "ȟ", - None, - "ƞ", - None, - "ȣ", - None, - "ȥ", - None, - "ȧ", - None, - "ȩ", - None, - "ȫ", - None, - "ȭ", - None, - "ȯ", - None, - "ȱ", - None, - "ȳ", - None, - "ⱥ", - "ȼ", - None, - "ƚ", - "ⱦ", - None, - "ɂ", - None, - "ƀ", - "ʉ", - "ʌ", - "ɇ", - None, - "ɉ", - None, - "ɋ", - None, - "ɍ", - None, - "ɏ", - None, - "h", - "ɦ", - "j", - "r", - "ɹ", - "ɻ", - "ʁ", - "w", - "y", - None, - " ̆", - " ̇", - " ̊", - " ̨", - " ̃", - " ̋", - None, - "ɣ", - "l", - "s", - "x", - "ʕ", - None, - "̀", - "́", - None, - "̓", - "̈́", - "ι", - None, - None, - None, - "ͱ", - None, - "ͳ", - None, - "ʹ", - None, - "ͷ", - None, - None, - " ι", - None, - ";", - "ϳ", - None, - " ́", - " ̈́", - "ά", - "·", - "έ", - "ή", - "ί", - None, - "ό", - None, - "ύ", - "ώ", - None, - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - None, - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "ϊ", - "ϋ", - None, - "σ", - None, - "ϗ", - "β", - "θ", - "υ", - "ύ", - "ϋ", - "φ", - "π", - None, - "ϙ", - None, - "ϛ", - None, - "ϝ", - None, - "ϟ", - None, - "ϡ", - None, - "ϣ", - None, - "ϥ", - None, - "ϧ", - None, - "ϩ", - None, - "ϫ", - None, - "ϭ", - None, - "ϯ", - None, - "κ", - "ρ", - "σ", - None, - "θ", - "ε", - None, - "ϸ", - None, - "σ", - "ϻ", - None, - "ͻ", - "ͼ", - "ͽ", - "ѐ", - "ё", - "ђ", - "ѓ", - "є", - "ѕ", - "і", - "ї", - "ј", - "љ", - "њ", - "ћ", - "ќ", - "ѝ", - "ў", - "џ", - "а", - "б", - "в", - "г", - "д", - "е", - "ж", - "з", - "и", - "й", - "к", - "л", - "м", - "н", - "о", - "п", - "р", - "с", - "т", - "у", - "ф", - "х", - "ц", - "ч", - "ш", - "щ", - "ъ", - "ы", - "ь", - "э", - "ю", - "я", - None, - "ѡ", - None, - "ѣ", - None, - "ѥ", - None, - "ѧ", - None, - "ѩ", - None, - "ѫ", - None, - "ѭ", - None, - "ѯ", - None, - "ѱ", - None, - "ѳ", - None, - "ѵ", - None, - "ѷ", - None, - "ѹ", - None, - "ѻ", - None, - "ѽ", - None, - "ѿ", - None, - "ҁ", - None, - "ҋ", - None, - "ҍ", - None, - "ҏ", - None, - "ґ", - None, - "ғ", - None, - "ҕ", - None, - "җ", - None, - "ҙ", - None, - "қ", - None, - "ҝ", - None, - "ҟ", - None, - "ҡ", - None, - "ң", - None, - "ҥ", - None, - "ҧ", - None, - "ҩ", - None, - "ҫ", - None, - "ҭ", - None, - "ү", - None, - "ұ", - None, - "ҳ", - None, - "ҵ", - None, - "ҷ", - None, - "ҹ", - None, - "һ", - None, - "ҽ", - None, - "ҿ", - None, - "ӏ", - "ӂ", - None, - "ӄ", - None, - "ӆ", - None, - "ӈ", - None, - "ӊ", - None, - "ӌ", - None, - "ӎ", - None, - "ӑ", - None, - "ӓ", - None, - "ӕ", - None, - "ӗ", - None, - "ә", - None, - "ӛ", - None, - "ӝ", - None, - "ӟ", - None, - "ӡ", - None, - "ӣ", - None, - "ӥ", - None, - "ӧ", - None, - "ө", - None, - "ӫ", - None, - "ӭ", - None, - "ӯ", - None, - "ӱ", - None, - "ӳ", - None, - "ӵ", - None, - "ӷ", - None, - "ӹ", - None, - "ӻ", - None, - "ӽ", - None, - "ӿ", - None, - "ԁ", - None, - "ԃ", - None, - "ԅ", - None, - "ԇ", - None, - "ԉ", - None, - "ԋ", - None, - "ԍ", - None, - "ԏ", - None, - "ԑ", - None, - "ԓ", - None, - "ԕ", - None, - "ԗ", - None, - "ԙ", - None, - "ԛ", - None, - "ԝ", - None, - "ԟ", - None, - "ԡ", - None, - "ԣ", - None, - "ԥ", - None, - "ԧ", - None, - "ԩ", - None, - "ԫ", - None, - "ԭ", - None, - "ԯ", - None, - None, - "ա", - "բ", - "գ", - "դ", - "ե", - "զ", - "է", - "ը", - "թ", - "ժ", - "ի", - "լ", - "խ", - "ծ", - "կ", - "հ", - "ձ", - "ղ", - "ճ", - "մ", - "յ", - "ն", - "շ", - "ո", - "չ", - "պ", - "ջ", - "ռ", - "ս", - "վ", - "տ", - "ր", - "ց", - "ւ", - "փ", - "ք", - "օ", - "ֆ", - None, - None, - "եւ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "اٴ", - "وٴ", - "ۇٴ", - "يٴ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "क़", - "ख़", - "ग़", - "ज़", - "ड़", - "ढ़", - "फ़", - "य़", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ড়", - "ঢ়", - None, - "য়", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ਲ਼", - None, - None, - "ਸ਼", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ਖ਼", - "ਗ਼", - "ਜ਼", - None, - None, - "ਫ਼", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ଡ଼", - "ଢ଼", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ํา", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ໍາ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ຫນ", - "ຫມ", - None, - None, - None, - "་", - None, - "གྷ", - None, - None, - None, - "ཌྷ", - None, - "དྷ", - None, - "བྷ", - None, - "ཛྷ", - None, - "ཀྵ", - None, - None, - None, - "ཱི", - None, - "ཱུ", - "ྲྀ", - "ྲཱྀ", - "ླྀ", - "ླཱྀ", - None, - "ཱྀ", - None, - "ྒྷ", - None, - None, - None, - "ྜྷ", - None, - "ྡྷ", - None, - "ྦྷ", - None, - "ྫྷ", - None, - "ྐྵ", - None, - None, - None, - None, - None, - None, - None, - "ⴀ", - "ⴁ", - "ⴂ", - "ⴃ", - "ⴄ", - "ⴅ", - "ⴆ", - "ⴇ", - "ⴈ", - "ⴉ", - "ⴊ", - "ⴋ", - "ⴌ", - "ⴍ", - "ⴎ", - "ⴏ", - "ⴐ", - "ⴑ", - "ⴒ", - "ⴓ", - "ⴔ", - "ⴕ", - "ⴖ", - "ⴗ", - "ⴘ", - "ⴙ", - "ⴚ", - "ⴛ", - "ⴜ", - "ⴝ", - "ⴞ", - "ⴟ", - "ⴠ", - "ⴡ", - "ⴢ", - "ⴣ", - "ⴤ", - "ⴥ", - None, - "ⴧ", - None, - "ⴭ", - None, - None, - "ნ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "Ᏸ", - "Ᏹ", - "Ᏺ", - "Ᏻ", - "Ᏼ", - "Ᏽ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "в", - "д", - "о", - "с", - "т", - "ъ", - "ѣ", - "ꙋ", - "\u1c8a", - None, - None, - "ა", - "ბ", - "გ", - "დ", - "ე", - "ვ", - "ზ", - "თ", - "ი", - "კ", - "ლ", - "მ", - "ნ", - "ო", - "პ", - "ჟ", - "რ", - "ს", - "ტ", - "უ", - "ფ", - "ქ", - "ღ", - "ყ", - "შ", - "ჩ", - "ც", - "ძ", - "წ", - "ჭ", - "ხ", - "ჯ", - "ჰ", - "ჱ", - "ჲ", - "ჳ", - "ჴ", - "ჵ", - "ჶ", - "ჷ", - "ჸ", - "ჹ", - "ჺ", - None, - "ჽ", - "ჾ", - "ჿ", - None, - None, - None, - None, - None, - "a", - "æ", - "b", - None, - "d", - "e", - "ǝ", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - None, - "o", - "ȣ", - "p", - "r", - "t", - "u", - "w", - "a", - "ɐ", - "ɑ", - "ᴂ", - "b", - "d", - "e", - "ə", - "ɛ", - "ɜ", - "g", - None, - "k", - "m", - "ŋ", - "o", - "ɔ", - "ᴖ", - "ᴗ", - "p", - "t", - "u", - "ᴝ", - "ɯ", - "v", - "ᴥ", - "β", - "γ", - "δ", - "φ", - "χ", - "i", - "r", - "u", - "v", - "β", - "γ", - "ρ", - "φ", - "χ", - None, - "н", - None, - "ɒ", - "c", - "ɕ", - "ð", - "ɜ", - "f", - "ɟ", - "ɡ", - "ɥ", - "ɨ", - "ɩ", - "ɪ", - "ᵻ", - "ʝ", - "ɭ", - "ᶅ", - "ʟ", - "ɱ", - "ɰ", - "ɲ", - "ɳ", - "ɴ", - "ɵ", - "ɸ", - "ʂ", - "ʃ", - "ƫ", - "ʉ", - "ʊ", - "ᴜ", - "ʋ", - "ʌ", - "z", - "ʐ", - "ʑ", - "ʒ", - "θ", - None, - "ḁ", - None, - "ḃ", - None, - "ḅ", - None, - "ḇ", - None, - "ḉ", - None, - "ḋ", - None, - "ḍ", - None, - "ḏ", - None, - "ḑ", - None, - "ḓ", - None, - "ḕ", - None, - "ḗ", - None, - "ḙ", - None, - "ḛ", - None, - "ḝ", - None, - "ḟ", - None, - "ḡ", - None, - "ḣ", - None, - "ḥ", - None, - "ḧ", - None, - "ḩ", - None, - "ḫ", - None, - "ḭ", - None, - "ḯ", - None, - "ḱ", - None, - "ḳ", - None, - "ḵ", - None, - "ḷ", - None, - "ḹ", - None, - "ḻ", - None, - "ḽ", - None, - "ḿ", - None, - "ṁ", - None, - "ṃ", - None, - "ṅ", - None, - "ṇ", - None, - "ṉ", - None, - "ṋ", - None, - "ṍ", - None, - "ṏ", - None, - "ṑ", - None, - "ṓ", - None, - "ṕ", - None, - "ṗ", - None, - "ṙ", - None, - "ṛ", - None, - "ṝ", - None, - "ṟ", - None, - "ṡ", - None, - "ṣ", - None, - "ṥ", - None, - "ṧ", - None, - "ṩ", - None, - "ṫ", - None, - "ṭ", - None, - "ṯ", - None, - "ṱ", - None, - "ṳ", - None, - "ṵ", - None, - "ṷ", - None, - "ṹ", - None, - "ṻ", - None, - "ṽ", - None, - "ṿ", - None, - "ẁ", - None, - "ẃ", - None, - "ẅ", - None, - "ẇ", - None, - "ẉ", - None, - "ẋ", - None, - "ẍ", - None, - "ẏ", - None, - "ẑ", - None, - "ẓ", - None, - "ẕ", - None, - "aʾ", - "ṡ", - None, - "ß", - None, - "ạ", - None, - "ả", - None, - "ấ", - None, - "ầ", - None, - "ẩ", - None, - "ẫ", - None, - "ậ", - None, - "ắ", - None, - "ằ", - None, - "ẳ", - None, - "ẵ", - None, - "ặ", - None, - "ẹ", - None, - "ẻ", - None, - "ẽ", - None, - "ế", - None, - "ề", - None, - "ể", - None, - "ễ", - None, - "ệ", - None, - "ỉ", - None, - "ị", - None, - "ọ", - None, - "ỏ", - None, - "ố", - None, - "ồ", - None, - "ổ", - None, - "ỗ", - None, - "ộ", - None, - "ớ", - None, - "ờ", - None, - "ở", - None, - "ỡ", - None, - "ợ", - None, - "ụ", - None, - "ủ", - None, - "ứ", - None, - "ừ", - None, - "ử", - None, - "ữ", - None, - "ự", - None, - "ỳ", - None, - "ỵ", - None, - "ỷ", - None, - "ỹ", - None, - "ỻ", - None, - "ỽ", - None, - "ỿ", - None, - "ἀ", - "ἁ", - "ἂ", - "ἃ", - "ἄ", - "ἅ", - "ἆ", - "ἇ", - None, - None, - "ἐ", - "ἑ", - "ἒ", - "ἓ", - "ἔ", - "ἕ", - None, - None, - "ἠ", - "ἡ", - "ἢ", - "ἣ", - "ἤ", - "ἥ", - "ἦ", - "ἧ", - None, - "ἰ", - "ἱ", - "ἲ", - "ἳ", - "ἴ", - "ἵ", - "ἶ", - "ἷ", - None, - None, - "ὀ", - "ὁ", - "ὂ", - "ὃ", - "ὄ", - "ὅ", - None, - None, - None, - "ὑ", - None, - "ὓ", - None, - "ὕ", - None, - "ὗ", - None, - "ὠ", - "ὡ", - "ὢ", - "ὣ", - "ὤ", - "ὥ", - "ὦ", - "ὧ", - None, - "ά", - None, - "έ", - None, - "ή", - None, - "ί", - None, - "ό", - None, - "ύ", - None, - "ώ", - None, - "ἀι", - "ἁι", - "ἂι", - "ἃι", - "ἄι", - "ἅι", - "ἆι", - "ἇι", - "ἀι", - "ἁι", - "ἂι", - "ἃι", - "ἄι", - "ἅι", - "ἆι", - "ἇι", - "ἠι", - "ἡι", - "ἢι", - "ἣι", - "ἤι", - "ἥι", - "ἦι", - "ἧι", - "ἠι", - "ἡι", - "ἢι", - "ἣι", - "ἤι", - "ἥι", - "ἦι", - "ἧι", - "ὠι", - "ὡι", - "ὢι", - "ὣι", - "ὤι", - "ὥι", - "ὦι", - "ὧι", - "ὠι", - "ὡι", - "ὢι", - "ὣι", - "ὤι", - "ὥι", - "ὦι", - "ὧι", - None, - "ὰι", - "αι", - "άι", - None, - None, - "ᾶι", - "ᾰ", - "ᾱ", - "ὰ", - "ά", - "αι", - " ̓", - "ι", - " ̓", - " ͂", - " ̈͂", - "ὴι", - "ηι", - "ήι", - None, - None, - "ῆι", - "ὲ", - "έ", - "ὴ", - "ή", - "ηι", - " ̓̀", - " ̓́", - " ̓͂", - None, - "ΐ", - None, - None, - "ῐ", - "ῑ", - "ὶ", - "ί", - None, - " ̔̀", - " ̔́", - " ̔͂", - None, - "ΰ", - None, - "ῠ", - "ῡ", - "ὺ", - "ύ", - "ῥ", - " ̈̀", - " ̈́", - "`", - None, - "ὼι", - "ωι", - "ώι", - None, - None, - "ῶι", - "ὸ", - "ό", - "ὼ", - "ώ", - "ωι", - " ́", - " ̔", - None, - " ", - None, - "", - None, - None, - "‐", - None, - " ̳", - None, - None, - None, - None, - " ", - None, - "′′", - "′′′", - None, - "‵‵", - "‵‵‵", - None, - "!!", - None, - " ̅", - None, - "??", - "?!", - "!?", - None, - "′′′′", - None, - " ", - None, - None, - None, - "0", - "i", - None, - "4", - "5", - "6", - "7", - "8", - "9", - "+", - "−", - "=", - "(", - ")", - "n", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "+", - "−", - "=", - "(", - ")", - None, - "a", - "e", - "o", - "x", - "ə", - "h", - "k", - "l", - "m", - "n", - "p", - "s", - "t", - None, - None, - "rs", - None, - None, - None, - None, - "a/c", - "a/s", - "c", - "°c", - None, - "c/o", - "c/u", - "ɛ", - None, - "°f", - "g", - "h", - "ħ", - "i", - "l", - None, - "n", - "no", - None, - "p", - "q", - "r", - None, - "sm", - "tel", - "tm", - None, - "z", - None, - "ω", - None, - "z", - None, - "k", - "å", - "b", - "c", - None, - "e", - "f", - "ⅎ", - "m", - "o", - "א", - "ב", - "ג", - "ד", - "i", - None, - "fax", - "π", - "γ", - "π", - "∑", - None, - "d", - "e", - "i", - "j", - None, - "1⁄7", - "1⁄9", - "1⁄10", - "1⁄3", - "2⁄3", - "1⁄5", - "2⁄5", - "3⁄5", - "4⁄5", - "1⁄6", - "5⁄6", - "1⁄8", - "3⁄8", - "5⁄8", - "7⁄8", - "1⁄", - "i", - "ii", - "iii", - "iv", - "v", - "vi", - "vii", - "viii", - "ix", - "x", - "xi", - "xii", - "l", - "c", - "d", - "m", - "i", - "ii", - "iii", - "iv", - "v", - "vi", - "vii", - "viii", - "ix", - "x", - "xi", - "xii", - "l", - "c", - "d", - "m", - None, - "ↄ", - None, - "0⁄3", - None, - None, - None, - "∫∫", - "∫∫∫", - None, - "∮∮", - "∮∮∮", - None, - "〈", - "〉", - None, - None, - None, - None, - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "(1)", - "(2)", - "(3)", - "(4)", - "(5)", - "(6)", - "(7)", - "(8)", - "(9)", - "(10)", - "(11)", - "(12)", - "(13)", - "(14)", - "(15)", - "(16)", - "(17)", - "(18)", - "(19)", - "(20)", - None, - "(a)", - "(b)", - "(c)", - "(d)", - "(e)", - "(f)", - "(g)", - "(h)", - "(i)", - "(j)", - "(k)", - "(l)", - "(m)", - "(n)", - "(o)", - "(p)", - "(q)", - "(r)", - "(s)", - "(t)", - "(u)", - "(v)", - "(w)", - "(x)", - "(y)", - "(z)", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "0", - None, - "∫∫∫∫", - None, - "::=", - "==", - "===", - None, - "⫝̸", - None, - None, - None, - "ⰰ", - "ⰱ", - "ⰲ", - "ⰳ", - "ⰴ", - "ⰵ", - "ⰶ", - "ⰷ", - "ⰸ", - "ⰹ", - "ⰺ", - "ⰻ", - "ⰼ", - "ⰽ", - "ⰾ", - "ⰿ", - "ⱀ", - "ⱁ", - "ⱂ", - "ⱃ", - "ⱄ", - "ⱅ", - "ⱆ", - "ⱇ", - "ⱈ", - "ⱉ", - "ⱊ", - "ⱋ", - "ⱌ", - "ⱍ", - "ⱎ", - "ⱏ", - "ⱐ", - "ⱑ", - "ⱒ", - "ⱓ", - "ⱔ", - "ⱕ", - "ⱖ", - "ⱗ", - "ⱘ", - "ⱙ", - "ⱚ", - "ⱛ", - "ⱜ", - "ⱝ", - "ⱞ", - "ⱟ", - None, - "ⱡ", - None, - "ɫ", - "ᵽ", - "ɽ", - None, - "ⱨ", - None, - "ⱪ", - None, - "ⱬ", - None, - "ɑ", - "ɱ", - "ɐ", - "ɒ", - None, - "ⱳ", - None, - "ⱶ", - None, - "j", - "v", - "ȿ", - "ɀ", - "ⲁ", - None, - "ⲃ", - None, - "ⲅ", - None, - "ⲇ", - None, - "ⲉ", - None, - "ⲋ", - None, - "ⲍ", - None, - "ⲏ", - None, - "ⲑ", - None, - "ⲓ", - None, - "ⲕ", - None, - "ⲗ", - None, - "ⲙ", - None, - "ⲛ", - None, - "ⲝ", - None, - "ⲟ", - None, - "ⲡ", - None, - "ⲣ", - None, - "ⲥ", - None, - "ⲧ", - None, - "ⲩ", - None, - "ⲫ", - None, - "ⲭ", - None, - "ⲯ", - None, - "ⲱ", - None, - "ⲳ", - None, - "ⲵ", - None, - "ⲷ", - None, - "ⲹ", - None, - "ⲻ", - None, - "ⲽ", - None, - "ⲿ", - None, - "ⳁ", - None, - "ⳃ", - None, - "ⳅ", - None, - "ⳇ", - None, - "ⳉ", - None, - "ⳋ", - None, - "ⳍ", - None, - "ⳏ", - None, - "ⳑ", - None, - "ⳓ", - None, - "ⳕ", - None, - "ⳗ", - None, - "ⳙ", - None, - "ⳛ", - None, - "ⳝ", - None, - "ⳟ", - None, - "ⳡ", - None, - "ⳣ", - None, - "ⳬ", - None, - "ⳮ", - None, - "ⳳ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ⵡ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "母", - None, - "龟", - None, - "一", - "丨", - "丶", - "丿", - "乙", - "亅", - "二", - "亠", - "人", - "儿", - "入", - "八", - "冂", - "冖", - "冫", - "几", - "凵", - "刀", - "力", - "勹", - "匕", - "匚", - "匸", - "十", - "卜", - "卩", - "厂", - "厶", - "又", - "口", - "囗", - "土", - "士", - "夂", - "夊", - "夕", - "大", - "女", - "子", - "宀", - "寸", - "小", - "尢", - "尸", - "屮", - "山", - "巛", - "工", - "己", - "巾", - "干", - "幺", - "广", - "廴", - "廾", - "弋", - "弓", - "彐", - "彡", - "彳", - "心", - "戈", - "戶", - "手", - "支", - "攴", - "文", - "斗", - "斤", - "方", - "无", - "日", - "曰", - "月", - "木", - "欠", - "止", - "歹", - "殳", - "毋", - "比", - "毛", - "氏", - "气", - "水", - "火", - "爪", - "父", - "爻", - "爿", - "片", - "牙", - "牛", - "犬", - "玄", - "玉", - "瓜", - "瓦", - "甘", - "生", - "用", - "田", - "疋", - "疒", - "癶", - "白", - "皮", - "皿", - "目", - "矛", - "矢", - "石", - "示", - "禸", - "禾", - "穴", - "立", - "竹", - "米", - "糸", - "缶", - "网", - "羊", - "羽", - "老", - "而", - "耒", - "耳", - "聿", - "肉", - "臣", - "自", - "至", - "臼", - "舌", - "舛", - "舟", - "艮", - "色", - "艸", - "虍", - "虫", - "血", - "行", - "衣", - "襾", - "見", - "角", - "言", - "谷", - "豆", - "豕", - "豸", - "貝", - "赤", - "走", - "足", - "身", - "車", - "辛", - "辰", - "辵", - "邑", - "酉", - "釆", - "里", - "金", - "長", - "門", - "阜", - "隶", - "隹", - "雨", - "靑", - "非", - "面", - "革", - "韋", - "韭", - "音", - "頁", - "風", - "飛", - "食", - "首", - "香", - "馬", - "骨", - "高", - "髟", - "鬥", - "鬯", - "鬲", - "鬼", - "魚", - "鳥", - "鹵", - "鹿", - "麥", - "麻", - "黃", - "黍", - "黑", - "黹", - "黽", - "鼎", - "鼓", - "鼠", - "鼻", - "齊", - "齒", - "龍", - "龜", - "龠", - None, - " ", - None, - ".", - None, - "〒", - None, - "十", - "卄", - "卅", - None, - None, - None, - None, - None, - " ゙", - " ゚", - None, - "より", - None, - "コト", - None, - None, - None, - "ᄀ", - "ᄁ", - "ᆪ", - "ᄂ", - "ᆬ", - "ᆭ", - "ᄃ", - "ᄄ", - "ᄅ", - "ᆰ", - "ᆱ", - "ᆲ", - "ᆳ", - "ᆴ", - "ᆵ", - "ᄚ", - "ᄆ", - "ᄇ", - "ᄈ", - "ᄡ", - "ᄉ", - "ᄊ", - "ᄋ", - "ᄌ", - "ᄍ", - "ᄎ", - "ᄏ", - "ᄐ", - "ᄑ", - "ᄒ", - "ᅡ", - "ᅢ", - "ᅣ", - "ᅤ", - "ᅥ", - "ᅦ", - "ᅧ", - "ᅨ", - "ᅩ", - "ᅪ", - "ᅫ", - "ᅬ", - "ᅭ", - "ᅮ", - "ᅯ", - "ᅰ", - "ᅱ", - "ᅲ", - "ᅳ", - "ᅴ", - "ᅵ", - None, - "ᄔ", - "ᄕ", - "ᇇ", - "ᇈ", - "ᇌ", - "ᇎ", - "ᇓ", - "ᇗ", - "ᇙ", - "ᄜ", - "ᇝ", - "ᇟ", - "ᄝ", - "ᄞ", - "ᄠ", - "ᄢ", - "ᄣ", - "ᄧ", - "ᄩ", - "ᄫ", - "ᄬ", - "ᄭ", - "ᄮ", - "ᄯ", - "ᄲ", - "ᄶ", - "ᅀ", - "ᅇ", - "ᅌ", - "ᇱ", - "ᇲ", - "ᅗ", - "ᅘ", - "ᅙ", - "ᆄ", - "ᆅ", - "ᆈ", - "ᆑ", - "ᆒ", - "ᆔ", - "ᆞ", - "ᆡ", - None, - None, - "一", - "二", - "三", - "四", - "上", - "中", - "下", - "甲", - "乙", - "丙", - "丁", - "天", - "地", - "人", - None, - None, - None, - "(ᄀ)", - "(ᄂ)", - "(ᄃ)", - "(ᄅ)", - "(ᄆ)", - "(ᄇ)", - "(ᄉ)", - "(ᄋ)", - "(ᄌ)", - "(ᄎ)", - "(ᄏ)", - "(ᄐ)", - "(ᄑ)", - "(ᄒ)", - "(가)", - "(나)", - "(다)", - "(라)", - "(마)", - "(바)", - "(사)", - "(아)", - "(자)", - "(차)", - "(카)", - "(타)", - "(파)", - "(하)", - "(주)", - "(오전)", - "(오후)", - None, - "(一)", - "(二)", - "(三)", - "(四)", - "(五)", - "(六)", - "(七)", - "(八)", - "(九)", - "(十)", - "(月)", - "(火)", - "(水)", - "(木)", - "(金)", - "(土)", - "(日)", - "(株)", - "(有)", - "(社)", - "(名)", - "(特)", - "(財)", - "(祝)", - "(労)", - "(代)", - "(呼)", - "(学)", - "(監)", - "(企)", - "(資)", - "(協)", - "(祭)", - "(休)", - "(自)", - "(至)", - "問", - "幼", - "文", - "箏", - None, - "pte", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "ᄀ", - "ᄂ", - "ᄃ", - "ᄅ", - "ᄆ", - "ᄇ", - "ᄉ", - "ᄋ", - "ᄌ", - "ᄎ", - "ᄏ", - "ᄐ", - "ᄑ", - "ᄒ", - "가", - "나", - "다", - "라", - "마", - "바", - "사", - "아", - "자", - "차", - "카", - "타", - "파", - "하", - "참고", - "주의", - "우", - None, - "一", - "二", - "三", - "四", - "五", - "六", - "七", - "八", - "九", - "十", - "月", - "火", - "水", - "木", - "金", - "土", - "日", - "株", - "有", - "社", - "名", - "特", - "財", - "祝", - "労", - "秘", - "男", - "女", - "適", - "優", - "印", - "注", - "項", - "休", - "写", - "正", - "上", - "中", - "下", - "左", - "右", - "医", - "宗", - "学", - "監", - "企", - "資", - "協", - "夜", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "1月", - "2月", - "3月", - "4月", - "5月", - "6月", - "7月", - "8月", - "9月", - "10月", - "11月", - "12月", - "hg", - "erg", - "ev", - "ltd", - "ア", - "イ", - "ウ", - "エ", - "オ", - "カ", - "キ", - "ク", - "ケ", - "コ", - "サ", - "シ", - "ス", - "セ", - "ソ", - "タ", - "チ", - "ツ", - "テ", - "ト", - "ナ", - "ニ", - "ヌ", - "ネ", - "ノ", - "ハ", - "ヒ", - "フ", - "ヘ", - "ホ", - "マ", - "ミ", - "ム", - "メ", - "モ", - "ヤ", - "ユ", - "ヨ", - "ラ", - "リ", - "ル", - "レ", - "ロ", - "ワ", - "ヰ", - "ヱ", - "ヲ", - "令和", - "アパート", - "アルファ", - "アンペア", - "アール", - "イニング", - "インチ", - "ウォン", - "エスクード", - "エーカー", - "オンス", - "オーム", - "カイリ", - "カラット", - "カロリー", - "ガロン", - "ガンマ", - "ギガ", - "ギニー", - "キュリー", - "ギルダー", - "キロ", - "キログラム", - "キロメートル", - "キロワット", - "グラム", - "グラムトン", - "クルゼイロ", - "クローネ", - "ケース", - "コルナ", - "コーポ", - "サイクル", - "サンチーム", - "シリング", - "センチ", - "セント", - "ダース", - "デシ", - "ドル", - "トン", - "ナノ", - "ノット", - "ハイツ", - "パーセント", - "パーツ", - "バーレル", - "ピアストル", - "ピクル", - "ピコ", - "ビル", - "ファラッド", - "フィート", - "ブッシェル", - "フラン", - "ヘクタール", - "ペソ", - "ペニヒ", - "ヘルツ", - "ペンス", - "ページ", - "ベータ", - "ポイント", - "ボルト", - "ホン", - "ポンド", - "ホール", - "ホーン", - "マイクロ", - "マイル", - "マッハ", - "マルク", - "マンション", - "ミクロン", - "ミリ", - "ミリバール", - "メガ", - "メガトン", - "メートル", - "ヤード", - "ヤール", - "ユアン", - "リットル", - "リラ", - "ルピー", - "ルーブル", - "レム", - "レントゲン", - "ワット", - "0点", - "1点", - "2点", - "3点", - "4点", - "5点", - "6点", - "7点", - "8点", - "9点", - "10点", - "11点", - "12点", - "13点", - "14点", - "15点", - "16点", - "17点", - "18点", - "19点", - "20点", - "21点", - "22点", - "23点", - "24点", - "hpa", - "da", - "au", - "bar", - "ov", - "pc", - "dm", - "dm2", - "dm3", - "iu", - "平成", - "昭和", - "大正", - "明治", - "株式会社", - "pa", - "na", - "μa", - "ma", - "ka", - "kb", - "mb", - "gb", - "cal", - "kcal", - "pf", - "nf", - "μf", - "μg", - "mg", - "kg", - "hz", - "khz", - "mhz", - "ghz", - "thz", - "μl", - "ml", - "dl", - "kl", - "fm", - "nm", - "μm", - "mm", - "cm", - "km", - "mm2", - "cm2", - "m2", - "km2", - "mm3", - "cm3", - "m3", - "km3", - "m∕s", - "m∕s2", - "pa", - "kpa", - "mpa", - "gpa", - "rad", - "rad∕s", - "rad∕s2", - "ps", - "ns", - "μs", - "ms", - "pv", - "nv", - "μv", - "mv", - "kv", - "mv", - "pw", - "nw", - "μw", - "mw", - "kw", - "mw", - "kω", - "mω", - None, - "bq", - "cc", - "cd", - "c∕kg", - None, - "db", - "gy", - "ha", - "hp", - "in", - "kk", - "km", - "kt", - "lm", - "ln", - "log", - "lx", - "mb", - "mil", - "mol", - "ph", - None, - "ppm", - "pr", - "sr", - "sv", - "wb", - "v∕m", - "a∕m", - "1日", - "2日", - "3日", - "4日", - "5日", - "6日", - "7日", - "8日", - "9日", - "10日", - "11日", - "12日", - "13日", - "14日", - "15日", - "16日", - "17日", - "18日", - "19日", - "20日", - "21日", - "22日", - "23日", - "24日", - "25日", - "26日", - "27日", - "28日", - "29日", - "30日", - "31日", - "gal", - None, - None, - None, - None, - None, - None, - "ꙁ", - None, - "ꙃ", - None, - "ꙅ", - None, - "ꙇ", - None, - "ꙉ", - None, - "ꙋ", - None, - "ꙍ", - None, - "ꙏ", - None, - "ꙑ", - None, - "ꙓ", - None, - "ꙕ", - None, - "ꙗ", - None, - "ꙙ", - None, - "ꙛ", - None, - "ꙝ", - None, - "ꙟ", - None, - "ꙡ", - None, - "ꙣ", - None, - "ꙥ", - None, - "ꙧ", - None, - "ꙩ", - None, - "ꙫ", - None, - "ꙭ", - None, - "ꚁ", - None, - "ꚃ", - None, - "ꚅ", - None, - "ꚇ", - None, - "ꚉ", - None, - "ꚋ", - None, - "ꚍ", - None, - "ꚏ", - None, - "ꚑ", - None, - "ꚓ", - None, - "ꚕ", - None, - "ꚗ", - None, - "ꚙ", - None, - "ꚛ", - None, - "ъ", - "ь", - None, - None, - None, - "ꜣ", - None, - "ꜥ", - None, - "ꜧ", - None, - "ꜩ", - None, - "ꜫ", - None, - "ꜭ", - None, - "ꜯ", - None, - "ꜳ", - None, - "ꜵ", - None, - "ꜷ", - None, - "ꜹ", - None, - "ꜻ", - None, - "ꜽ", - None, - "ꜿ", - None, - "ꝁ", - None, - "ꝃ", - None, - "ꝅ", - None, - "ꝇ", - None, - "ꝉ", - None, - "ꝋ", - None, - "ꝍ", - None, - "ꝏ", - None, - "ꝑ", - None, - "ꝓ", - None, - "ꝕ", - None, - "ꝗ", - None, - "ꝙ", - None, - "ꝛ", - None, - "ꝝ", - None, - "ꝟ", - None, - "ꝡ", - None, - "ꝣ", - None, - "ꝥ", - None, - "ꝧ", - None, - "ꝩ", - None, - "ꝫ", - None, - "ꝭ", - None, - "ꝯ", - None, - "ꝯ", - None, - "ꝺ", - None, - "ꝼ", - None, - "ᵹ", - "ꝿ", - None, - "ꞁ", - None, - "ꞃ", - None, - "ꞅ", - None, - "ꞇ", - None, - "ꞌ", - None, - "ɥ", - None, - "ꞑ", - None, - "ꞓ", - None, - "ꞗ", - None, - "ꞙ", - None, - "ꞛ", - None, - "ꞝ", - None, - "ꞟ", - None, - "ꞡ", - None, - "ꞣ", - None, - "ꞥ", - None, - "ꞧ", - None, - "ꞩ", - None, - "ɦ", - "ɜ", - "ɡ", - "ɬ", - "ɪ", - None, - "ʞ", - "ʇ", - "ʝ", - "ꭓ", - "ꞵ", - None, - "ꞷ", - None, - "ꞹ", - None, - "ꞻ", - None, - "ꞽ", - None, - "ꞿ", - None, - "ꟁ", - None, - "ꟃ", - None, - "ꞔ", - "ʂ", - "ᶎ", - "ꟈ", - None, - "ꟊ", - None, - "ɤ", - "\ua7cd", - None, - "\ua7cf", - None, - "ꟑ", - None, - "ꟓ", - None, - "ꟕ", - None, - "ꟗ", - None, - "ꟙ", - None, - "\ua7db", - None, - "ƛ", - None, - "s", - "c", - "f", - "q", - "ꟶ", - None, - "ħ", - "œ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ꜧ", - "ꬷ", - "ɫ", - "ꭒ", - None, - "ʍ", - None, - None, - "Ꭰ", - "Ꭱ", - "Ꭲ", - "Ꭳ", - "Ꭴ", - "Ꭵ", - "Ꭶ", - "Ꭷ", - "Ꭸ", - "Ꭹ", - "Ꭺ", - "Ꭻ", - "Ꭼ", - "Ꭽ", - "Ꭾ", - "Ꭿ", - "Ꮀ", - "Ꮁ", - "Ꮂ", - "Ꮃ", - "Ꮄ", - "Ꮅ", - "Ꮆ", - "Ꮇ", - "Ꮈ", - "Ꮉ", - "Ꮊ", - "Ꮋ", - "Ꮌ", - "Ꮍ", - "Ꮎ", - "Ꮏ", - "Ꮐ", - "Ꮑ", - "Ꮒ", - "Ꮓ", - "Ꮔ", - "Ꮕ", - "Ꮖ", - "Ꮗ", - "Ꮘ", - "Ꮙ", - "Ꮚ", - "Ꮛ", - "Ꮜ", - "Ꮝ", - "Ꮞ", - "Ꮟ", - "Ꮠ", - "Ꮡ", - "Ꮢ", - "Ꮣ", - "Ꮤ", - "Ꮥ", - "Ꮦ", - "Ꮧ", - "Ꮨ", - "Ꮩ", - "Ꮪ", - "Ꮫ", - "Ꮬ", - "Ꮭ", - "Ꮮ", - "Ꮯ", - "Ꮰ", - "Ꮱ", - "Ꮲ", - "Ꮳ", - "Ꮴ", - "Ꮵ", - "Ꮶ", - "Ꮷ", - "Ꮸ", - "Ꮹ", - "Ꮺ", - "Ꮻ", - "Ꮼ", - "Ꮽ", - "Ꮾ", - "Ꮿ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "豈", - "更", - "車", - "賈", - "滑", - "串", - "句", - "龜", - "契", - "金", - "喇", - "奈", - "懶", - "癩", - "羅", - "蘿", - "螺", - "裸", - "邏", - "樂", - "洛", - "烙", - "珞", - "落", - "酪", - "駱", - "亂", - "卵", - "欄", - "爛", - "蘭", - "鸞", - "嵐", - "濫", - "藍", - "襤", - "拉", - "臘", - "蠟", - "廊", - "朗", - "浪", - "狼", - "郎", - "來", - "冷", - "勞", - "擄", - "櫓", - "爐", - "盧", - "老", - "蘆", - "虜", - "路", - "露", - "魯", - "鷺", - "碌", - "祿", - "綠", - "菉", - "錄", - "鹿", - "論", - "壟", - "弄", - "籠", - "聾", - "牢", - "磊", - "賂", - "雷", - "壘", - "屢", - "樓", - "淚", - "漏", - "累", - "縷", - "陋", - "勒", - "肋", - "凜", - "凌", - "稜", - "綾", - "菱", - "陵", - "讀", - "拏", - "樂", - "諾", - "丹", - "寧", - "怒", - "率", - "異", - "北", - "磻", - "便", - "復", - "不", - "泌", - "數", - "索", - "參", - "塞", - "省", - "葉", - "說", - "殺", - "辰", - "沈", - "拾", - "若", - "掠", - "略", - "亮", - "兩", - "凉", - "梁", - "糧", - "良", - "諒", - "量", - "勵", - "呂", - "女", - "廬", - "旅", - "濾", - "礪", - "閭", - "驪", - "麗", - "黎", - "力", - "曆", - "歷", - "轢", - "年", - "憐", - "戀", - "撚", - "漣", - "煉", - "璉", - "秊", - "練", - "聯", - "輦", - "蓮", - "連", - "鍊", - "列", - "劣", - "咽", - "烈", - "裂", - "說", - "廉", - "念", - "捻", - "殮", - "簾", - "獵", - "令", - "囹", - "寧", - "嶺", - "怜", - "玲", - "瑩", - "羚", - "聆", - "鈴", - "零", - "靈", - "領", - "例", - "禮", - "醴", - "隸", - "惡", - "了", - "僚", - "寮", - "尿", - "料", - "樂", - "燎", - "療", - "蓼", - "遼", - "龍", - "暈", - "阮", - "劉", - "杻", - "柳", - "流", - "溜", - "琉", - "留", - "硫", - "紐", - "類", - "六", - "戮", - "陸", - "倫", - "崙", - "淪", - "輪", - "律", - "慄", - "栗", - "率", - "隆", - "利", - "吏", - "履", - "易", - "李", - "梨", - "泥", - "理", - "痢", - "罹", - "裏", - "裡", - "里", - "離", - "匿", - "溺", - "吝", - "燐", - "璘", - "藺", - "隣", - "鱗", - "麟", - "林", - "淋", - "臨", - "立", - "笠", - "粒", - "狀", - "炙", - "識", - "什", - "茶", - "刺", - "切", - "度", - "拓", - "糖", - "宅", - "洞", - "暴", - "輻", - "行", - "降", - "見", - "廓", - "兀", - "嗀", - None, - "塚", - None, - "晴", - None, - "凞", - "猪", - "益", - "礼", - "神", - "祥", - "福", - "靖", - "精", - "羽", - None, - "蘒", - None, - "諸", - None, - "逸", - "都", - None, - "飯", - "飼", - "館", - "鶴", - "郞", - "隷", - "侮", - "僧", - "免", - "勉", - "勤", - "卑", - "喝", - "嘆", - "器", - "塀", - "墨", - "層", - "屮", - "悔", - "慨", - "憎", - "懲", - "敏", - "既", - "暑", - "梅", - "海", - "渚", - "漢", - "煮", - "爫", - "琢", - "碑", - "社", - "祉", - "祈", - "祐", - "祖", - "祝", - "禍", - "禎", - "穀", - "突", - "節", - "練", - "縉", - "繁", - "署", - "者", - "臭", - "艹", - "著", - "褐", - "視", - "謁", - "謹", - "賓", - "贈", - "辶", - "逸", - "難", - "響", - "頻", - "恵", - "𤋮", - "舘", - None, - "並", - "况", - "全", - "侀", - "充", - "冀", - "勇", - "勺", - "喝", - "啕", - "喙", - "嗢", - "塚", - "墳", - "奄", - "奔", - "婢", - "嬨", - "廒", - "廙", - "彩", - "徭", - "惘", - "慎", - "愈", - "憎", - "慠", - "懲", - "戴", - "揄", - "搜", - "摒", - "敖", - "晴", - "朗", - "望", - "杖", - "歹", - "殺", - "流", - "滛", - "滋", - "漢", - "瀞", - "煮", - "瞧", - "爵", - "犯", - "猪", - "瑱", - "甆", - "画", - "瘝", - "瘟", - "益", - "盛", - "直", - "睊", - "着", - "磌", - "窱", - "節", - "类", - "絛", - "練", - "缾", - "者", - "荒", - "華", - "蝹", - "襁", - "覆", - "視", - "調", - "諸", - "請", - "謁", - "諾", - "諭", - "謹", - "變", - "贈", - "輸", - "遲", - "醙", - "鉶", - "陼", - "難", - "靖", - "韛", - "響", - "頋", - "頻", - "鬒", - "龜", - "𢡊", - "𢡄", - "𣏕", - "㮝", - "䀘", - "䀹", - "𥉉", - "𥳐", - "𧻓", - "齃", - "龎", - None, - "ff", - "fi", - "fl", - "ffi", - "ffl", - "st", - None, - "մն", - "մե", - "մի", - "վն", - "մխ", - None, - "יִ", - None, - "ײַ", - "ע", - "א", - "ד", - "ה", - "כ", - "ל", - "ם", - "ר", - "ת", - "+", - "שׁ", - "שׂ", - "שּׁ", - "שּׂ", - "אַ", - "אָ", - "אּ", - "בּ", - "גּ", - "דּ", - "הּ", - "וּ", - "זּ", - None, - "טּ", - "יּ", - "ךּ", - "כּ", - "לּ", - None, - "מּ", - None, - "נּ", - "סּ", - None, - "ףּ", - "פּ", - None, - "צּ", - "קּ", - "רּ", - "שּ", - "תּ", - "וֹ", - "בֿ", - "כֿ", - "פֿ", - "אל", - "ٱ", - "ٻ", - "پ", - "ڀ", - "ٺ", - "ٿ", - "ٹ", - "ڤ", - "ڦ", - "ڄ", - "ڃ", - "چ", - "ڇ", - "ڍ", - "ڌ", - "ڎ", - "ڈ", - "ژ", - "ڑ", - "ک", - "گ", - "ڳ", - "ڱ", - "ں", - "ڻ", - "ۀ", - "ہ", - "ھ", - "ے", - "ۓ", - None, - "ڭ", - "ۇ", - "ۆ", - "ۈ", - "ۇٴ", - "ۋ", - "ۅ", - "ۉ", - "ې", - "ى", - "ئا", - "ئە", - "ئو", - "ئۇ", - "ئۆ", - "ئۈ", - "ئې", - "ئى", - "ی", - "ئج", - "ئح", - "ئم", - "ئى", - "ئي", - "بج", - "بح", - "بخ", - "بم", - "بى", - "بي", - "تج", - "تح", - "تخ", - "تم", - "تى", - "تي", - "ثج", - "ثم", - "ثى", - "ثي", - "جح", - "جم", - "حج", - "حم", - "خج", - "خح", - "خم", - "سج", - "سح", - "سخ", - "سم", - "صح", - "صم", - "ضج", - "ضح", - "ضخ", - "ضم", - "طح", - "طم", - "ظم", - "عج", - "عم", - "غج", - "غم", - "فج", - "فح", - "فخ", - "فم", - "فى", - "في", - "قح", - "قم", - "قى", - "قي", - "كا", - "كج", - "كح", - "كخ", - "كل", - "كم", - "كى", - "كي", - "لج", - "لح", - "لخ", - "لم", - "لى", - "لي", - "مج", - "مح", - "مخ", - "مم", - "مى", - "مي", - "نج", - "نح", - "نخ", - "نم", - "نى", - "ني", - "هج", - "هم", - "هى", - "هي", - "يج", - "يح", - "يخ", - "يم", - "يى", - "يي", - "ذٰ", - "رٰ", - "ىٰ", - " ٌّ", - " ٍّ", - " َّ", - " ُّ", - " ِّ", - " ّٰ", - "ئر", - "ئز", - "ئم", - "ئن", - "ئى", - "ئي", - "بر", - "بز", - "بم", - "بن", - "بى", - "بي", - "تر", - "تز", - "تم", - "تن", - "تى", - "تي", - "ثر", - "ثز", - "ثم", - "ثن", - "ثى", - "ثي", - "فى", - "في", - "قى", - "قي", - "كا", - "كل", - "كم", - "كى", - "كي", - "لم", - "لى", - "لي", - "ما", - "مم", - "نر", - "نز", - "نم", - "نن", - "نى", - "ني", - "ىٰ", - "ير", - "يز", - "يم", - "ين", - "يى", - "يي", - "ئج", - "ئح", - "ئخ", - "ئم", - "ئه", - "بج", - "بح", - "بخ", - "بم", - "به", - "تج", - "تح", - "تخ", - "تم", - "ته", - "ثم", - "جح", - "جم", - "حج", - "حم", - "خج", - "خم", - "سج", - "سح", - "سخ", - "سم", - "صح", - "صخ", - "صم", - "ضج", - "ضح", - "ضخ", - "ضم", - "طح", - "ظم", - "عج", - "عم", - "غج", - "غم", - "فج", - "فح", - "فخ", - "فم", - "قح", - "قم", - "كج", - "كح", - "كخ", - "كل", - "كم", - "لج", - "لح", - "لخ", - "لم", - "له", - "مج", - "مح", - "مخ", - "مم", - "نج", - "نح", - "نخ", - "نم", - "نه", - "هج", - "هم", - "هٰ", - "يج", - "يح", - "يخ", - "يم", - "يه", - "ئم", - "ئه", - "بم", - "به", - "تم", - "ته", - "ثم", - "ثه", - "سم", - "سه", - "شم", - "شه", - "كل", - "كم", - "لم", - "نم", - "نه", - "يم", - "يه", - "ـَّ", - "ـُّ", - "ـِّ", - "طى", - "طي", - "عى", - "عي", - "غى", - "غي", - "سى", - "سي", - "شى", - "شي", - "حى", - "حي", - "جى", - "جي", - "خى", - "خي", - "صى", - "صي", - "ضى", - "ضي", - "شج", - "شح", - "شخ", - "شم", - "شر", - "سر", - "صر", - "ضر", - "طى", - "طي", - "عى", - "عي", - "غى", - "غي", - "سى", - "سي", - "شى", - "شي", - "حى", - "حي", - "جى", - "جي", - "خى", - "خي", - "صى", - "صي", - "ضى", - "ضي", - "شج", - "شح", - "شخ", - "شم", - "شر", - "سر", - "صر", - "ضر", - "شج", - "شح", - "شخ", - "شم", - "سه", - "شه", - "طم", - "سج", - "سح", - "سخ", - "شج", - "شح", - "شخ", - "طم", - "ظم", - "اً", - None, - "تجم", - "تحج", - "تحم", - "تخم", - "تمج", - "تمح", - "تمخ", - "جمح", - "حمي", - "حمى", - "سحج", - "سجح", - "سجى", - "سمح", - "سمج", - "سمم", - "صحح", - "صمم", - "شحم", - "شجي", - "شمخ", - "شمم", - "ضحى", - "ضخم", - "طمح", - "طمم", - "طمي", - "عجم", - "عمم", - "عمى", - "غمم", - "غمي", - "غمى", - "فخم", - "قمح", - "قمم", - "لحم", - "لحي", - "لحى", - "لجج", - "لخم", - "لمح", - "محج", - "محم", - "محي", - "مجح", - "مجم", - "مخج", - "مخم", - None, - "مجخ", - "همج", - "همم", - "نحم", - "نحى", - "نجم", - "نجى", - "نمي", - "نمى", - "يمم", - "بخي", - "تجي", - "تجى", - "تخي", - "تخى", - "تمي", - "تمى", - "جمي", - "جحى", - "جمى", - "سخى", - "صحي", - "شحي", - "ضحي", - "لجي", - "لمي", - "يحي", - "يجي", - "يمي", - "ممي", - "قمي", - "نحي", - "قمح", - "لحم", - "عمي", - "كمي", - "نجح", - "مخي", - "لجم", - "كمم", - "لجم", - "نجح", - "جحي", - "حجي", - "مجي", - "فمي", - "بحي", - "كمم", - "عجم", - "صمم", - "سخي", - "نجي", - None, - None, - "صلے", - "قلے", - "الله", - "اكبر", - "محمد", - "صلعم", - "رسول", - "عليه", - "وسلم", - "صلى", - "صلى الله عليه وسلم", - "جل جلاله", - "ریال", - None, - None, - ",", - "、", - None, - ":", - ";", - "!", - "?", - "〖", - "〗", - None, - None, - None, - "—", - "–", - "_", - "(", - ")", - "{", - "}", - "〔", - "〕", - "【", - "】", - "《", - "》", - "〈", - "〉", - "「", - "」", - "『", - "』", - None, - "[", - "]", - " ̅", - "_", - ",", - "、", - None, - ";", - ":", - "?", - "!", - "—", - "(", - ")", - "{", - "}", - "〔", - "〕", - "#", - "&", - "*", - "+", - "-", - "<", - ">", - "=", - None, - "\\", - "$", - "%", - "@", - None, - " ً", - "ـً", - " ٌ", - None, - " ٍ", - None, - " َ", - "ـَ", - " ُ", - "ـُ", - " ِ", - "ـِ", - " ّ", - "ـّ", - " ْ", - "ـْ", - "ء", - "آ", - "أ", - "ؤ", - "إ", - "ئ", - "ا", - "ب", - "ة", - "ت", - "ث", - "ج", - "ح", - "خ", - "د", - "ذ", - "ر", - "ز", - "س", - "ش", - "ص", - "ض", - "ط", - "ظ", - "ع", - "غ", - "ف", - "ق", - "ك", - "ل", - "م", - "ن", - "ه", - "و", - "ى", - "ي", - "لآ", - "لأ", - "لإ", - "لا", - None, - None, - None, - "!", - '"', - "#", - "$", - "%", - "&", - "'", - "(", - ")", - "*", - "+", - ",", - "-", - ".", - "/", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - ":", - ";", - "<", - "=", - ">", - "?", - "@", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "[", - "\\", - "]", - "^", - "_", - "`", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "{", - "|", - "}", - "~", - "⦅", - "⦆", - ".", - "「", - "」", - "、", - "・", - "ヲ", - "ァ", - "ィ", - "ゥ", - "ェ", - "ォ", - "ャ", - "ュ", - "ョ", - "ッ", - "ー", - "ア", - "イ", - "ウ", - "エ", - "オ", - "カ", - "キ", - "ク", - "ケ", - "コ", - "サ", - "シ", - "ス", - "セ", - "ソ", - "タ", - "チ", - "ツ", - "テ", - "ト", - "ナ", - "ニ", - "ヌ", - "ネ", - "ノ", - "ハ", - "ヒ", - "フ", - "ヘ", - "ホ", - "マ", - "ミ", - "ム", - "メ", - "モ", - "ヤ", - "ユ", - "ヨ", - "ラ", - "リ", - "ル", - "レ", - "ロ", - "ワ", - "ン", - "゙", - "゚", - None, - "ᄀ", - "ᄁ", - "ᆪ", - "ᄂ", - "ᆬ", - "ᆭ", - "ᄃ", - "ᄄ", - "ᄅ", - "ᆰ", - "ᆱ", - "ᆲ", - "ᆳ", - "ᆴ", - "ᆵ", - "ᄚ", - "ᄆ", - "ᄇ", - "ᄈ", - "ᄡ", - "ᄉ", - "ᄊ", - "ᄋ", - "ᄌ", - "ᄍ", - "ᄎ", - "ᄏ", - "ᄐ", - "ᄑ", - "ᄒ", - None, - "ᅡ", - "ᅢ", - "ᅣ", - "ᅤ", - "ᅥ", - "ᅦ", - None, - "ᅧ", - "ᅨ", - "ᅩ", - "ᅪ", - "ᅫ", - "ᅬ", - None, - "ᅭ", - "ᅮ", - "ᅯ", - "ᅰ", - "ᅱ", - "ᅲ", - None, - "ᅳ", - "ᅴ", - "ᅵ", - None, - "¢", - "£", - "¬", - " ̄", - "¦", - "¥", - "₩", - None, - "│", - "←", - "↑", - "→", - "↓", - "■", - "○", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "𐐨", - "𐐩", - "𐐪", - "𐐫", - "𐐬", - "𐐭", - "𐐮", - "𐐯", - "𐐰", - "𐐱", - "𐐲", - "𐐳", - "𐐴", - "𐐵", - "𐐶", - "𐐷", - "𐐸", - "𐐹", - "𐐺", - "𐐻", - "𐐼", - "𐐽", - "𐐾", - "𐐿", - "𐑀", - "𐑁", - "𐑂", - "𐑃", - "𐑄", - "𐑅", - "𐑆", - "𐑇", - "𐑈", - "𐑉", - "𐑊", - "𐑋", - "𐑌", - "𐑍", - "𐑎", - "𐑏", - None, - None, - None, - None, - "𐓘", - "𐓙", - "𐓚", - "𐓛", - "𐓜", - "𐓝", - "𐓞", - "𐓟", - "𐓠", - "𐓡", - "𐓢", - "𐓣", - "𐓤", - "𐓥", - "𐓦", - "𐓧", - "𐓨", - "𐓩", - "𐓪", - "𐓫", - "𐓬", - "𐓭", - "𐓮", - "𐓯", - "𐓰", - "𐓱", - "𐓲", - "𐓳", - "𐓴", - "𐓵", - "𐓶", - "𐓷", - "𐓸", - "𐓹", - "𐓺", - "𐓻", - None, - None, - None, - None, - None, - None, - None, - None, - "𐖗", - "𐖘", - "𐖙", - "𐖚", - "𐖛", - "𐖜", - "𐖝", - "𐖞", - "𐖟", - "𐖠", - "𐖡", - None, - "𐖣", - "𐖤", - "𐖥", - "𐖦", - "𐖧", - "𐖨", - "𐖩", - "𐖪", - "𐖫", - "𐖬", - "𐖭", - "𐖮", - "𐖯", - "𐖰", - "𐖱", - None, - "𐖳", - "𐖴", - "𐖵", - "𐖶", - "𐖷", - "𐖸", - "𐖹", - None, - "𐖻", - "𐖼", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ː", - "ˑ", - "æ", - "ʙ", - "ɓ", - None, - "ʣ", - "ꭦ", - "ʥ", - "ʤ", - "ɖ", - "ɗ", - "ᶑ", - "ɘ", - "ɞ", - "ʩ", - "ɤ", - "ɢ", - "ɠ", - "ʛ", - "ħ", - "ʜ", - "ɧ", - "ʄ", - "ʪ", - "ʫ", - "ɬ", - "𝼄", - "ꞎ", - "ɮ", - "𝼅", - "ʎ", - "𝼆", - "ø", - "ɶ", - "ɷ", - "q", - "ɺ", - "𝼈", - "ɽ", - "ɾ", - "ʀ", - "ʨ", - "ʦ", - "ꭧ", - "ʧ", - "ʈ", - "ⱱ", - None, - "ʏ", - "ʡ", - "ʢ", - "ʘ", - "ǀ", - "ǁ", - "ǂ", - "𝼊", - "𝼞", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "𐳀", - "𐳁", - "𐳂", - "𐳃", - "𐳄", - "𐳅", - "𐳆", - "𐳇", - "𐳈", - "𐳉", - "𐳊", - "𐳋", - "𐳌", - "𐳍", - "𐳎", - "𐳏", - "𐳐", - "𐳑", - "𐳒", - "𐳓", - "𐳔", - "𐳕", - "𐳖", - "𐳗", - "𐳘", - "𐳙", - "𐳚", - "𐳛", - "𐳜", - "𐳝", - "𐳞", - "𐳟", - "𐳠", - "𐳡", - "𐳢", - "𐳣", - "𐳤", - "𐳥", - "𐳦", - "𐳧", - "𐳨", - "𐳩", - "𐳪", - "𐳫", - "𐳬", - "𐳭", - "𐳮", - "𐳯", - "𐳰", - "𐳱", - "𐳲", - None, - None, - None, - None, - None, - None, - None, - None, - "\U00010d70", - "\U00010d71", - "\U00010d72", - "\U00010d73", - "\U00010d74", - "\U00010d75", - "\U00010d76", - "\U00010d77", - "\U00010d78", - "\U00010d79", - "\U00010d7a", - "\U00010d7b", - "\U00010d7c", - "\U00010d7d", - "\U00010d7e", - "\U00010d7f", - "\U00010d80", - "\U00010d81", - "\U00010d82", - "\U00010d83", - "\U00010d84", - "\U00010d85", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "𑣀", - "𑣁", - "𑣂", - "𑣃", - "𑣄", - "𑣅", - "𑣆", - "𑣇", - "𑣈", - "𑣉", - "𑣊", - "𑣋", - "𑣌", - "𑣍", - "𑣎", - "𑣏", - "𑣐", - "𑣑", - "𑣒", - "𑣓", - "𑣔", - "𑣕", - "𑣖", - "𑣗", - "𑣘", - "𑣙", - "𑣚", - "𑣛", - "𑣜", - "𑣝", - "𑣞", - "𑣟", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "𖹠", - "𖹡", - "𖹢", - "𖹣", - "𖹤", - "𖹥", - "𖹦", - "𖹧", - "𖹨", - "𖹩", - "𖹪", - "𖹫", - "𖹬", - "𖹭", - "𖹮", - "𖹯", - "𖹰", - "𖹱", - "𖹲", - "𖹳", - "𖹴", - "𖹵", - "𖹶", - "𖹷", - "𖹸", - "𖹹", - "𖹺", - "𖹻", - "𖹼", - "𖹽", - "𖹾", - "𖹿", - None, - None, - "\U00016ebb", - "\U00016ebc", - "\U00016ebd", - "\U00016ebe", - "\U00016ebf", - "\U00016ec0", - "\U00016ec1", - "\U00016ec2", - "\U00016ec3", - "\U00016ec4", - "\U00016ec5", - "\U00016ec6", - "\U00016ec7", - "\U00016ec8", - "\U00016ec9", - "\U00016eca", - "\U00016ecb", - "\U00016ecc", - "\U00016ecd", - "\U00016ece", - "\U00016ecf", - "\U00016ed0", - "\U00016ed1", - "\U00016ed2", - "\U00016ed3", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "𝅗𝅥", - "𝅘𝅥", - "𝅘𝅥𝅮", - "𝅘𝅥𝅯", - "𝅘𝅥𝅰", - "𝅘𝅥𝅱", - "𝅘𝅥𝅲", - None, - None, - None, - "𝆹𝅥", - "𝆺𝅥", - "𝆹𝅥𝅮", - "𝆺𝅥𝅮", - "𝆹𝅥𝅯", - "𝆺𝅥𝅯", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - None, - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - None, - "c", - "d", - None, - "g", - None, - "j", - "k", - None, - "n", - "o", - "p", - "q", - None, - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - None, - "f", - None, - "h", - "i", - "j", - "k", - "l", - "m", - "n", - None, - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - None, - "d", - "e", - "f", - "g", - None, - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - None, - "s", - "t", - "u", - "v", - "w", - "x", - "y", - None, - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - None, - "d", - "e", - "f", - "g", - None, - "i", - "j", - "k", - "l", - "m", - None, - "o", - None, - "s", - "t", - "u", - "v", - "w", - "x", - "y", - None, - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "ı", - "ȷ", - None, - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - "θ", - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "∇", - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "∂", - "ε", - "θ", - "κ", - "φ", - "ρ", - "π", - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - "θ", - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "∇", - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "∂", - "ε", - "θ", - "κ", - "φ", - "ρ", - "π", - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - "θ", - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "∇", - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "∂", - "ε", - "θ", - "κ", - "φ", - "ρ", - "π", - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - "θ", - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "∇", - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "∂", - "ε", - "θ", - "κ", - "φ", - "ρ", - "π", - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - "θ", - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "∇", - "α", - "β", - "γ", - "δ", - "ε", - "ζ", - "η", - "θ", - "ι", - "κ", - "λ", - "μ", - "ν", - "ξ", - "ο", - "π", - "ρ", - "σ", - "τ", - "υ", - "φ", - "χ", - "ψ", - "ω", - "∂", - "ε", - "θ", - "κ", - "φ", - "ρ", - "π", - "ϝ", - None, - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "а", - "б", - "в", - "г", - "д", - "е", - "ж", - "з", - "и", - "к", - "л", - "м", - "о", - "п", - "р", - "с", - "т", - "у", - "ф", - "х", - "ц", - "ч", - "ш", - "ы", - "э", - "ю", - "ꚉ", - "ә", - "і", - "ј", - "ө", - "ү", - "ӏ", - "а", - "б", - "в", - "г", - "д", - "е", - "ж", - "з", - "и", - "к", - "л", - "о", - "п", - "с", - "у", - "ф", - "х", - "ц", - "ч", - "ш", - "ъ", - "ы", - "ґ", - "і", - "ѕ", - "џ", - "ҫ", - "ꙑ", - "ұ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "𞤢", - "𞤣", - "𞤤", - "𞤥", - "𞤦", - "𞤧", - "𞤨", - "𞤩", - "𞤪", - "𞤫", - "𞤬", - "𞤭", - "𞤮", - "𞤯", - "𞤰", - "𞤱", - "𞤲", - "𞤳", - "𞤴", - "𞤵", - "𞤶", - "𞤷", - "𞤸", - "𞤹", - "𞤺", - "𞤻", - "𞤼", - "𞤽", - "𞤾", - "𞤿", - "𞥀", - "𞥁", - "𞥂", - "𞥃", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "ا", - "ب", - "ج", - "د", - None, - "و", - "ز", - "ح", - "ط", - "ي", - "ك", - "ل", - "م", - "ن", - "س", - "ع", - "ف", - "ص", - "ق", - "ر", - "ش", - "ت", - "ث", - "خ", - "ذ", - "ض", - "ظ", - "غ", - "ٮ", - "ں", - "ڡ", - "ٯ", - None, - "ب", - "ج", - None, - "ه", - None, - "ح", - None, - "ي", - "ك", - "ل", - "م", - "ن", - "س", - "ع", - "ف", - "ص", - "ق", - None, - "ش", - "ت", - "ث", - "خ", - None, - "ض", - None, - "غ", - None, - "ج", - None, - "ح", - None, - "ي", - None, - "ل", - None, - "ن", - "س", - "ع", - None, - "ص", - "ق", - None, - "ش", - None, - "خ", - None, - "ض", - None, - "غ", - None, - "ں", - None, - "ٯ", - None, - "ب", - "ج", - None, - "ه", - None, - "ح", - "ط", - "ي", - "ك", - None, - "م", - "ن", - "س", - "ع", - "ف", - "ص", - "ق", - None, - "ش", - "ت", - "ث", - "خ", - None, - "ض", - "ظ", - "غ", - "ٮ", - None, - "ڡ", - None, - "ا", - "ب", - "ج", - "د", - "ه", - "و", - "ز", - "ح", - "ط", - "ي", - None, - "ل", - "م", - "ن", - "س", - "ع", - "ف", - "ص", - "ق", - "ر", - "ش", - "ت", - "ث", - "خ", - "ذ", - "ض", - "ظ", - "غ", - None, - "ب", - "ج", - "د", - None, - "و", - "ز", - "ح", - "ط", - "ي", - None, - "ل", - "م", - "ن", - "س", - "ع", - "ف", - "ص", - "ق", - "ر", - "ش", - "ت", - "ث", - "خ", - "ذ", - "ض", - "ظ", - "غ", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "0,", - "1,", - "2,", - "3,", - "4,", - "5,", - "6,", - "7,", - "8,", - "9,", - None, - "(a)", - "(b)", - "(c)", - "(d)", - "(e)", - "(f)", - "(g)", - "(h)", - "(i)", - "(j)", - "(k)", - "(l)", - "(m)", - "(n)", - "(o)", - "(p)", - "(q)", - "(r)", - "(s)", - "(t)", - "(u)", - "(v)", - "(w)", - "(x)", - "(y)", - "(z)", - "〔s〕", - "c", - "r", - "cd", - "wz", - None, - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "hv", - "mv", - "sd", - "ss", - "ppv", - "wc", - None, - "mc", - "md", - "mr", - None, - "dj", - None, - None, - None, - "ほか", - "ココ", - "サ", - None, - "手", - "字", - "双", - "デ", - "二", - "多", - "解", - "天", - "交", - "映", - "無", - "料", - "前", - "後", - "再", - "新", - "初", - "終", - "生", - "販", - "声", - "吹", - "演", - "投", - "捕", - "一", - "三", - "遊", - "左", - "中", - "右", - "指", - "走", - "打", - "禁", - "空", - "合", - "満", - "有", - "月", - "申", - "割", - "営", - "配", - None, - "〔本〕", - "〔三〕", - "〔二〕", - "〔安〕", - "〔点〕", - "〔打〕", - "〔盗〕", - "〔勝〕", - "〔敗〕", - None, - "得", - "可", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - "丽", - "丸", - "乁", - "𠄢", - "你", - "侮", - "侻", - "倂", - "偺", - "備", - "僧", - "像", - "㒞", - "𠘺", - "免", - "兔", - "兤", - "具", - "𠔜", - "㒹", - "內", - "再", - "𠕋", - "冗", - "冤", - "仌", - "冬", - "况", - "𩇟", - "凵", - "刃", - "㓟", - "刻", - "剆", - "割", - "剷", - "㔕", - "勇", - "勉", - "勤", - "勺", - "包", - "匆", - "北", - "卉", - "卑", - "博", - "即", - "卽", - "卿", - "𠨬", - "灰", - "及", - "叟", - "𠭣", - "叫", - "叱", - "吆", - "咞", - "吸", - "呈", - "周", - "咢", - "哶", - "唐", - "啓", - "啣", - "善", - "喙", - "喫", - "喳", - "嗂", - "圖", - "嘆", - "圗", - "噑", - "噴", - "切", - "壮", - "城", - "埴", - "堍", - "型", - "堲", - "報", - "墬", - "𡓤", - "売", - "壷", - "夆", - "多", - "夢", - "奢", - "𡚨", - "𡛪", - "姬", - "娛", - "娧", - "姘", - "婦", - "㛮", - "㛼", - "嬈", - "嬾", - "𡧈", - "寃", - "寘", - "寧", - "寳", - "𡬘", - "寿", - "将", - "当", - "尢", - "㞁", - "屠", - "屮", - "峀", - "岍", - "𡷤", - "嵃", - "𡷦", - "嵮", - "嵫", - "嵼", - "巡", - "巢", - "㠯", - "巽", - "帨", - "帽", - "幩", - "㡢", - "𢆃", - "㡼", - "庰", - "庳", - "庶", - "廊", - "𪎒", - "廾", - "𢌱", - "舁", - "弢", - "㣇", - "𣊸", - "𦇚", - "形", - "彫", - "㣣", - "徚", - "忍", - "志", - "忹", - "悁", - "㤺", - "㤜", - "悔", - "𢛔", - "惇", - "慈", - "慌", - "慎", - "慌", - "慺", - "憎", - "憲", - "憤", - "憯", - "懞", - "懲", - "懶", - "成", - "戛", - "扝", - "抱", - "拔", - "捐", - "𢬌", - "挽", - "拼", - "捨", - "掃", - "揤", - "𢯱", - "搢", - "揅", - "掩", - "㨮", - "摩", - "摾", - "撝", - "摷", - "㩬", - "敏", - "敬", - "𣀊", - "旣", - "書", - "晉", - "㬙", - "暑", - "㬈", - "㫤", - "冒", - "冕", - "最", - "暜", - "肭", - "䏙", - "朗", - "望", - "朡", - "杞", - "杓", - "𣏃", - "㭉", - "柺", - "枅", - "桒", - "梅", - "𣑭", - "梎", - "栟", - "椔", - "㮝", - "楂", - "榣", - "槪", - "檨", - "𣚣", - "櫛", - "㰘", - "次", - "𣢧", - "歔", - "㱎", - "歲", - "殟", - "殺", - "殻", - "𣪍", - "𡴋", - "𣫺", - "汎", - "𣲼", - "沿", - "泍", - "汧", - "洖", - "派", - "海", - "流", - "浩", - "浸", - "涅", - "𣴞", - "洴", - "港", - "湮", - "㴳", - "滋", - "滇", - "𣻑", - "淹", - "潮", - "𣽞", - "𣾎", - "濆", - "瀹", - "瀞", - "瀛", - "㶖", - "灊", - "災", - "灷", - "炭", - "𠔥", - "煅", - "𤉣", - "熜", - "𤎫", - "爨", - "爵", - "牐", - "𤘈", - "犀", - "犕", - "𤜵", - "𤠔", - "獺", - "王", - "㺬", - "玥", - "㺸", - "瑇", - "瑜", - "瑱", - "璅", - "瓊", - "㼛", - "甤", - "𤰶", - "甾", - "𤲒", - "異", - "𢆟", - "瘐", - "𤾡", - "𤾸", - "𥁄", - "㿼", - "䀈", - "直", - "𥃳", - "𥃲", - "𥄙", - "𥄳", - "眞", - "真", - "睊", - "䀹", - "瞋", - "䁆", - "䂖", - "𥐝", - "硎", - "碌", - "磌", - "䃣", - "𥘦", - "祖", - "𥚚", - "𥛅", - "福", - "秫", - "䄯", - "穀", - "穊", - "穏", - "𥥼", - "𥪧", - "竮", - "䈂", - "𥮫", - "篆", - "築", - "䈧", - "𥲀", - "糒", - "䊠", - "糨", - "糣", - "紀", - "𥾆", - "絣", - "䌁", - "緇", - "縂", - "繅", - "䌴", - "𦈨", - "𦉇", - "䍙", - "𦋙", - "罺", - "𦌾", - "羕", - "翺", - "者", - "𦓚", - "𦔣", - "聠", - "𦖨", - "聰", - "𣍟", - "䏕", - "育", - "脃", - "䐋", - "脾", - "媵", - "𦞧", - "𦞵", - "𣎓", - "𣎜", - "舁", - "舄", - "辞", - "䑫", - "芑", - "芋", - "芝", - "劳", - "花", - "芳", - "芽", - "苦", - "𦬼", - "若", - "茝", - "荣", - "莭", - "茣", - "莽", - "菧", - "著", - "荓", - "菊", - "菌", - "菜", - "𦰶", - "𦵫", - "𦳕", - "䔫", - "蓱", - "蓳", - "蔖", - "𧏊", - "蕤", - "𦼬", - "䕝", - "䕡", - "𦾱", - "𧃒", - "䕫", - "虐", - "虜", - "虧", - "虩", - "蚩", - "蚈", - "蜎", - "蛢", - "蝹", - "蜨", - "蝫", - "螆", - "䗗", - "蟡", - "蠁", - "䗹", - "衠", - "衣", - "𧙧", - "裗", - "裞", - "䘵", - "裺", - "㒻", - "𧢮", - "𧥦", - "䚾", - "䛇", - "誠", - "諭", - "變", - "豕", - "𧲨", - "貫", - "賁", - "贛", - "起", - "𧼯", - "𠠄", - "跋", - "趼", - "跰", - "𠣞", - "軔", - "輸", - "𨗒", - "𨗭", - "邔", - "郱", - "鄑", - "𨜮", - "鄛", - "鈸", - "鋗", - "鋘", - "鉼", - "鏹", - "鐕", - "𨯺", - "開", - "䦕", - "閷", - "𨵷", - "䧦", - "雃", - "嶲", - "霣", - "𩅅", - "𩈚", - "䩮", - "䩶", - "韠", - "𩐊", - "䪲", - "𩒖", - "頋", - "頩", - "𩖶", - "飢", - "䬳", - "餩", - "馧", - "駂", - "駾", - "䯎", - "𩬰", - "鬒", - "鱀", - "鳽", - "䳎", - "䳭", - "鵧", - "𪃎", - "䳸", - "𪄅", - "𪈎", - "𪊑", - "麻", - "䵖", - "黹", - "黾", - "鼅", - "鼏", - "鼖", - "鼻", - "𪘀", - None, - None, - None, - None, - None, - None, - None, -) diff --git a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/INSTALLER b/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/METADATA b/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/METADATA deleted file mode 100644 index 0639f78..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/METADATA +++ /dev/null @@ -1,194 +0,0 @@ -Metadata-Version: 2.4 -Name: oracledb -Version: 4.0.1 -Summary: Python interface to Oracle Database -Author-email: Anthony Tuininga -License-Expression: UPL-1.0 OR Apache-2.0 -Project-URL: Homepage, https://oracle.github.io/python-oracledb -Project-URL: Installation, https://python-oracledb.readthedocs.io/en/latest/user_guide/installation.html -Project-URL: Samples, https://github.com/oracle/python-oracledb/tree/main/samples -Project-URL: Documentation, http://python-oracledb.readthedocs.io -Project-URL: Release Notes, https://python-oracledb.readthedocs.io/en/latest/release_notes.html -Project-URL: Issues, https://github.com/oracle/python-oracledb/issues -Project-URL: Source, https://github.com/oracle/python-oracledb -Keywords: Oracle,database -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Natural Language :: English -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Cython -Classifier: Topic :: Database -Requires-Python: >=3.9 -Description-Content-Type: text/markdown -License-File: LICENSE.txt -License-File: THIRD_PARTY_LICENSES.txt -License-File: NOTICE.txt -Requires-Dist: cryptography>=3.2.1 -Requires-Dist: typing_extensions>=4.14.0 -Provides-Extra: test -Requires-Dist: anyio; extra == "test" -Requires-Dist: numpy; extra == "test" -Requires-Dist: pandas; extra == "test" -Requires-Dist: pyarrow; extra == "test" -Requires-Dist: pytest; extra == "test" -Requires-Dist: tox; extra == "test" -Provides-Extra: oci-config -Requires-Dist: oci; extra == "oci-config" -Provides-Extra: oci-auth -Requires-Dist: oci; extra == "oci-auth" -Requires-Dist: requests>=2.33; extra == "oci-auth" -Provides-Extra: azure-config -Requires-Dist: azure-appconfiguration; extra == "azure-config" -Requires-Dist: azure-identity; extra == "azure-config" -Requires-Dist: azure-keyvault-secrets; extra == "azure-config" -Provides-Extra: azure-auth -Requires-Dist: msal; extra == "azure-auth" -Dynamic: license-file - -# python-oracledb - -The python-oracledb driver is the widely used, open-source [Python][python] -extension module allowing Python programs to connect directly to [Oracle -Database][oracledb] with no extra libraries needed. The module is built with -Cython for safety and speed. It is lightweight and high-performance. It is -stable, well tested, and has comprehensive [documentation][documentation]. The -module is maintained by Oracle. - -The module conforms to the [Python Database API 2.0 specification][pep249] with -a considerable number of additions and a couple of minor exclusions, see the -[feature list][features]. It is used by many Python frameworks, SQL generators, -ORMs, and libraries. - -Python-oracledb has a rich feature set which is easy to use. It gives you -control over SQL and PL/SQL statement execution; for working with data frames; -for fast data ingestion; for calling NoSQL-style document APIs; for message -queueing; for receiving database notifications; and for starting and stopping -the database. It also has high availability and security features. Synchronous -and [concurrent][concurrent] coding styles are supported. Database operations -can optionally be [pipelined][pipelining]. - -Python-oracledb is the successor to the now obsolete cx_Oracle driver. - -## Python-oracledb Installation - -Run: - -``` -python -m pip install oracledb --upgrade -``` - -See [Installing python-oracledb][installation] for details. - -## Samples - -Examples can be found in the [/samples][samples] directory and the -[Python and Oracle Database Tutorial][tutorial]. - -A basic example: - -``` -import oracledb -import getpass - -un = "scott" # Sample database username -cs = "localhost/orclpdb" # Sample database connection string -# cs = "localhost/freepdb1" # For Oracle Database Free users -# cs = "localhost/orclpdb1" # Some databases may have this service -pw = getpass.getpass(f"Enter password for {un}@{cs}: ") - -with oracledb.connect(user=un, password=pw, dsn=cs) as connection: - with connection.cursor() as cursor: - sql = "select sysdate from dual" - for r in cursor.execute(sql): - print(r) -``` - -## Dependencies and Interoperability - -- Python versions 3.9 through 3.14. - - Pre-built packages are available on [PyPI][pypi] and other repositories. - - Source code is also available. - - Previous versions of python-oracledb supported older Python versions. - -- Oracle Client libraries are *optional*. - - **Thin mode**: By default python-oracledb runs in a 'Thin' mode which - connects directly to Oracle Database. - - **Thick mode**: Some advanced Oracle Database functionality is currently only - available when optional Oracle Client libraries are loaded by - python-oracledb. Libraries are available in the free [Oracle Instant - Client][instantclient] packages. Python-oracledb can use Oracle Client - Release 19 or later. Older python-oracledb versions supported older Client - versions. - -- Oracle Database - - **Thin mode**: Oracle Database 12.1 or later is required. - - **Thick mode**: Oracle Database 11.2 or later is required, depending on the - Oracle Client release. Oracle Database's standard client-server version - interoperability allows connection to both older and newer databases. For - example when python-oracledb uses Oracle Client 19 libraries, then it can - connect to Oracle Database 11.2 or later. - -## Documentation - -See the [python-oracledb Documentation][documentation] and [Release -Notes][relnotes]. - -## Help - -Questions can be asked in [GitHub Discussions][ghdiscussions]. - -Problem reports can be raised in [GitHub Issues][ghissues]. - -## Tests - -See [/tests][tests] - -## Contributing - -This project welcomes contributions from the community. Before submitting a -pull request, please [review our contribution guide](./CONTRIBUTING.md). - -## Security - -Please consult the [security guide](./SECURITY.md) for our responsible security -vulnerability disclosure process. - -## License - -See [LICENSE][license], [THIRD_PARTY_LICENSES][tplicense], and -[NOTICE][notice]. - -[python]: https://www.python.org/ -[oracledb]: https://www.oracle.com/database/ -[instantclient]: https://www.oracle.com/database/technologies/instant-client.html -[pep249]: https://peps.python.org/pep-0249/ -[documentation]: http://python-oracledb.readthedocs.io -[relnotes]: https://python-oracledb.readthedocs.io/en/latest/release_notes.html -[license]: https://github.com/oracle/python-oracledb/blob/main/LICENSE.txt -[tplicense]: https://github.com/oracle/python-oracledb/blob/main/THIRD_PARTY_LICENSES.txt -[notice]: https://github.com/oracle/python-oracledb/blob/main/NOTICE.txt -[tutorial]: https://oracle.github.io/python-oracledb/samples/tutorial/Python-and-Oracle-Database-The-New-Wave-of-Scripting.html -[ghdiscussions]: https://github.com/oracle/python-oracledb/discussions -[ghissues]: https://github.com/oracle/python-oracledb/issues -[tests]: https://github.com/oracle/python-oracledb/tree/main/tests -[samples]: https://github.com/oracle/python-oracledb/tree/main/samples -[installation]: https://python-oracledb.readthedocs.io/en/latest/user_guide/installation.html -[features]: https://oracle.github.io/python-oracledb/#features -[concurrent]: https://python-oracledb.readthedocs.io/en/latest/user_guide/asyncio.html -[pipelining]: https://python-oracledb.readthedocs.io/en/latest/user_guide/asyncio.html#pipelining-database-operations -[pypi]: https://pypi.org/project/oracledb diff --git a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/RECORD b/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/RECORD deleted file mode 100644 index bafc85a..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/RECORD +++ /dev/null @@ -1,88 +0,0 @@ -oracledb-4.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -oracledb-4.0.1.dist-info/METADATA,sha256=_iQtTnhNKbjSIUQXK-OLHsqbkw9rNyYKUBEqdPjiyGw,7823 -oracledb-4.0.1.dist-info/RECORD,, -oracledb-4.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -oracledb-4.0.1.dist-info/WHEEL,sha256=OZLCzpIUHEX42a9RmtxH4_auVuxdXhghS0dmIdhxCRQ,184 -oracledb-4.0.1.dist-info/licenses/LICENSE.txt,sha256=KrL2EAZ6IAarB1SPKnKWC-V0tZM2nJNANtbYwDREBco,12570 -oracledb-4.0.1.dist-info/licenses/NOTICE.txt,sha256=phn87I1ycbdHGq5SkA7abFgp0QSXe5LCGN_jVs4Oajg,56 -oracledb-4.0.1.dist-info/licenses/THIRD_PARTY_LICENSES.txt,sha256=4HEKfr0_uq9-7ogpsW4rvhT84jX1BJYnmMrn62GfS8g,90513 -oracledb-4.0.1.dist-info/top_level.txt,sha256=DGlJh0bBtAUvhjHF-pPnrVCzNhW87yzaKB_1_FP28uU,9 -oracledb/__init__.py,sha256=WIdZmAJK3SPr69XaS7Pbl2_HGnaVZ0PJGK6dsdci2J8,39546 -oracledb/__pycache__/__init__.cpython-39.pyc,, -oracledb/__pycache__/aq.cpython-39.pyc,, -oracledb/__pycache__/arrow_array.cpython-39.pyc,, -oracledb/__pycache__/base.cpython-39.pyc,, -oracledb/__pycache__/builtin_hooks.cpython-39.pyc,, -oracledb/__pycache__/connect_params.cpython-39.pyc,, -oracledb/__pycache__/connection.cpython-39.pyc,, -oracledb/__pycache__/constants.cpython-39.pyc,, -oracledb/__pycache__/constructors.cpython-39.pyc,, -oracledb/__pycache__/cursor.cpython-39.pyc,, -oracledb/__pycache__/dataframe.cpython-39.pyc,, -oracledb/__pycache__/dbobject.cpython-39.pyc,, -oracledb/__pycache__/defaults.cpython-39.pyc,, -oracledb/__pycache__/driver_mode.cpython-39.pyc,, -oracledb/__pycache__/dsn.cpython-39.pyc,, -oracledb/__pycache__/end_user_security_context.cpython-39.pyc,, -oracledb/__pycache__/enums.cpython-39.pyc,, -oracledb/__pycache__/errors.cpython-39.pyc,, -oracledb/__pycache__/exceptions.cpython-39.pyc,, -oracledb/__pycache__/fetch_info.cpython-39.pyc,, -oracledb/__pycache__/future.cpython-39.pyc,, -oracledb/__pycache__/lob.cpython-39.pyc,, -oracledb/__pycache__/pipeline.cpython-39.pyc,, -oracledb/__pycache__/pool.cpython-39.pyc,, -oracledb/__pycache__/pool_params.cpython-39.pyc,, -oracledb/__pycache__/secret_values.cpython-39.pyc,, -oracledb/__pycache__/soda.cpython-39.pyc,, -oracledb/__pycache__/sparse_vector.cpython-39.pyc,, -oracledb/__pycache__/subscr.cpython-39.pyc,, -oracledb/__pycache__/utils.cpython-39.pyc,, -oracledb/__pycache__/var.cpython-39.pyc,, -oracledb/__pycache__/version.cpython-39.pyc,, -oracledb/aq.py,sha256=HXlSLz1uDL6uYGFexHkObT-fXSwdIdo9uJeOyq9h9eI,24739 -oracledb/arrow_array.py,sha256=aReIFgQVcQs7TuqpDNL5YBESul8Jp3OA6JyNJV_JSDk,3407 -oracledb/arrow_impl.cpython-39-x86_64-linux-gnu.so,sha256=GXUQDJQH2KEEUSUjtzSGdPOZ0dO4fRZ4S2d0sqdBJgk,272536 -oracledb/base.py,sha256=CCPbBrJyI63yiz3K0r7VnaVmGE7wlwBVqW99N60qilg,2008 -oracledb/base_impl.cpython-39-x86_64-linux-gnu.so,sha256=a2dkB5FAWF141d-68k1SH6Pi87yHqopEvi3GOayqNHU,2266936 -oracledb/builtin_hooks.py,sha256=fb5w5Lxp4WNIqfIOnx4H2e6x4xbJMN8p7jGlYF2JdEQ,3633 -oracledb/connect_params.py,sha256=Qdr6EuwELSeC9A2Dklv-SZfx73mkcbzgGuVMPGQnJD4,53182 -oracledb/connection.py,sha256=U4bOsqIXMLQ4uyD0NuvGMw4V5QSW8LPsyNZuRs8gotk,139988 -oracledb/constants.py,sha256=kTLNvlj7uJ3FW28ACRewMQ6TuIN3cBguTv8cW9wtcPc,2596 -oracledb/constructors.py,sha256=o4mVcdIoKnLDL1CIBgyN9W4MjhKx3XVXNqf2b5Hjt4o,3402 -oracledb/cursor.py,sha256=6gOJungb-EY_nuX06nDkVUGnBQxRpoWKDy-oDV_TrgI,58612 -oracledb/dataframe.py,sha256=aEAH_j6GkRnPPL9QA-ZwiGxkq9R0K0NGfe4hKrOJt4k,4278 -oracledb/dbobject.py,sha256=5eFET9r8TctGXnZPPpJuWsGOQxB6xIQ81vFK-SCP6Yw,13297 -oracledb/defaults.py,sha256=nPxq9fKQVVgDCHxBmem9ZO67SQu_woJOX8z20z1H47g,12456 -oracledb/driver_mode.py,sha256=KGqjzs9g17mb6xjQIbYvc7MSc7QndvN_FzMIVv2gLPE,5502 -oracledb/dsn.py,sha256=KZnIaf9LwiWZy4l5u7ZxpR0DWXY_1r-iaTH1xktqFhE,3231 -oracledb/end_user_security_context.py,sha256=Ysy98Bw0yDTZ1LzfOgYpkX2_JAPlNiCLNQdOu2n4hQg,3763 -oracledb/enums.py,sha256=BC6pzX3o0NpFQTFoDWpkY6UbB_9oQNGCiiLNjk85aZk,2827 -oracledb/errors.py,sha256=AC-QDs9ntdqkgCjfzZR0eptjr_WpkmPzxcooZZWLDpY,41469 -oracledb/exceptions.py,sha256=qUtkmFsByCHW2DsmI6V7cpoBTij5qZG7f0VtaiKlbJ0,4006 -oracledb/fetch_info.py,sha256=NfiwCs6ekaorsMj9QjC55xeE7ZRkGVjGC28YhPaLxNQ,11317 -oracledb/future.py,sha256=prbDZef6NSvfSZBk2bIQSwgTMmsJDdOzmyLaeAub5qs,1721 -oracledb/lob.py,sha256=RvjHeiFClmLLFVhp4YOG7Khd9yqc6ikxZEfbKwxN1Dk,11758 -oracledb/pipeline.py,sha256=UM1FzkRq9_ce9s2vVGvz_qjMLNmawL-7KZn279hwmJs,17926 -oracledb/plugins/__pycache__/azure_config_provider.cpython-39.pyc,, -oracledb/plugins/__pycache__/azure_tokens.cpython-39.pyc,, -oracledb/plugins/__pycache__/end_user_sec_provider.cpython-39.pyc,, -oracledb/plugins/__pycache__/oci_config_provider.cpython-39.pyc,, -oracledb/plugins/__pycache__/oci_tokens.cpython-39.pyc,, -oracledb/plugins/azure_config_provider.py,sha256=e_YBwPakMkAm1wI0KMlRJB5sTgIHvaLXmi-kDBq1Tjg,9764 -oracledb/plugins/azure_tokens.py,sha256=FRSGlqsigF6IEUYbR73Faw4a_eJXLvcgZIgb8AU9bNM,5442 -oracledb/plugins/end_user_sec_provider.py,sha256=xlGbOW2atwroMZv0Rt0iBtBbYrChMbInKdOLLjr1p3o,4832 -oracledb/plugins/oci_config_provider.py,sha256=G8aUihhoTjqe6u9NksA55rzgw1GbfGGYaoCgDlMWv_U,8985 -oracledb/plugins/oci_tokens.py,sha256=1hakiNBdcwl_TFWKi_V1bwce-W_6szzbUo0y9SEyJZs,10489 -oracledb/pool.py,sha256=sjIjWInuKXjwUyM2F9xD1Gwcxna-SNir2EmLKBYwrWU,71269 -oracledb/pool_params.py,sha256=1ETNze9xErxgWlmEqw4rnul-IhG_c2PlZFSHcO17yE8,45697 -oracledb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -oracledb/secret_values.py,sha256=0kdM2xhoW1iPFjsJdO09mOTR3fPIsHUIcLRzNJKHn2g,5664 -oracledb/soda.py,sha256=VtFhWcJoNp7YaU1De6t7n5WIArMz_DlU0PvYgLDi2_c,30637 -oracledb/sparse_vector.py,sha256=aaUbSbP3Jf58ddsb6bAy83y8ptGuMb1ThJ8l_8YzUfg,4126 -oracledb/subscr.py,sha256=I4KNnE8gQzptQ6W06kyS6xF8q0Neg7ufErIfrQrTLf4,12616 -oracledb/thick_impl.cpython-39-x86_64-linux-gnu.so,sha256=FAdCIA7ue31gxuOjwInek1B2jvnyU3iL-a-3i8cE6cE,1319616 -oracledb/thin_impl.cpython-39-x86_64-linux-gnu.so,sha256=YGW4aMqht-4RULWUlWHVIlOifZR44aTt9oikXR9djsU,3230920 -oracledb/utils.py,sha256=3sv5-z_-6vqaXz4IsMR24Q2gtgZEu5W8O0AMMTdWHQg,19647 -oracledb/var.py,sha256=S0aMvacvBLJ6gFEI0X5LMLvzUXh65xzA3tH_Ga2tvqs,6931 -oracledb/version.py,sha256=WhM_HM1zNVYYMTwquoaDyIn22IwH9pCTJahNUu2c-yE,1538 diff --git a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/REQUESTED b/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/REQUESTED deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/WHEEL b/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/WHEEL deleted file mode 100644 index fbcc8e7..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/WHEEL +++ /dev/null @@ -1,7 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (82.0.1) -Root-Is-Purelib: false -Tag: cp39-cp39-manylinux_2_17_x86_64 -Tag: cp39-cp39-manylinux2014_x86_64 -Tag: cp39-cp39-manylinux_2_28_x86_64 - diff --git a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/LICENSE.txt b/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/LICENSE.txt deleted file mode 100644 index b82595e..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/LICENSE.txt +++ /dev/null @@ -1,229 +0,0 @@ -Copyright (c) 2016, 2026 Oracle and/or its affiliates. - -This software is dual-licensed to you under the Universal Permissive License -(UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -either license. - -If you elect to accept the software under the Apache License, Version 2.0, -the following applies: - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - - -The Universal Permissive License (UPL), Version 1.0 -=================================================== - -Subject to the condition set forth below, permission is hereby granted to any -person obtaining a copy of this software, associated documentation and/or data -(collectively the "Software"), free of charge and under any and all copyright -rights in the Software, and any and all patent rights owned or freely -licensable by each licensor hereunder covering either (i) the unmodified -Software as contributed to or provided by such licensor, or (ii) the Larger -Works (as defined below), to deal in both - -(a) the Software, and - -(b) any piece of software and/or hardware listed in the lrgrwrks.txt file if - one is included with the Software (each a "Larger Work" to which the - Software is contributed by such licensors), - -without restriction, including without limitation the rights to copy, create -derivative works of, display, perform, and distribute the Software and make, -use, sell, offer for sale, import, export, have made, and have sold the -Software and the Larger Work(s), and to sublicense the foregoing rights on -either these or other terms. - -This license is subject to the following condition: - -The above copyright notice and either this complete permission notice or at a -minimum a reference to the UPL must be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -Apache License -============== - -Version 2.0, January 2004 - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. **Definitions**. - - "License" shall mean the terms and conditions for use, reproduction, and - distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by the - copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all other - entities that control, are controlled by, or are under common control with - that entity. For the purposes of this definition, "control" means (i) the - power, direct or indirect, to cause the direction or management of such - entity, whether by contract or otherwise, or (ii) ownership of fifty - percent (50%) or more of the outstanding shares, or (iii) beneficial - ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity exercising - permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation source, - and configuration files. - - "Object" form shall mean any form resulting from mechanical transformation - or translation of a Source form, including but not limited to compiled - object code, generated documentation, and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or Object form, - made available under the License, as indicated by a copyright notice that - is included in or attached to the work (an example is provided in the - Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object form, - that is based on (or derived from) the Work and for which the editorial - revisions, annotations, elaborations, or other modifications represent, as - a whole, an original work of authorship. For the purposes of this License, - Derivative Works shall not include works that remain separable from, or - merely link (or bind by name) to the interfaces of, the Work and Derivative - Works thereof. - - "Contribution" shall mean any work of authorship, including the original - version of the Work and any modifications or additions to that Work or - Derivative Works thereof, that is intentionally submitted to Licensor for - inclusion in the Work by the copyright owner or by an individual or Legal - Entity authorized to submit on behalf of the copyright owner. For the - purposes of this definition, "submitted" means any form of electronic, - verbal, or written communication sent to the Licensor or its - representatives, including but not limited to communication on electronic - mailing lists, source code control systems, and issue tracking systems that - are managed by, or on behalf of, the Licensor for the purpose of discussing - and improving the Work, but excluding communication that is conspicuously - marked or otherwise designated in writing by the copyright owner as "Not a - Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity on - behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. **Grant of Copyright License.** Subject to the terms and conditions of this - License, each Contributor hereby grants to You a perpetual, worldwide, - non-exclusive, no-charge, royalty-free, irrevocable copyright license to - reproduce, prepare Derivative Works of, publicly display, publicly perform, - sublicense, and distribute the Work and such Derivative Works in Source or - Object form. - -3. **Grant of Patent License.** Subject to the terms and conditions of this - License, each Contributor hereby grants to You a perpetual, worldwide, - non-exclusive, no-charge, royalty-free, irrevocable (except as stated in - this section) patent license to make, have made, use, offer to sell, sell, - import, and otherwise transfer the Work, where such license applies only to - those patent claims licensable by such Contributor that are necessarily - infringed by their Contribution(s) alone or by combination of their - Contribution(s) with the Work to which such Contribution(s) was submitted. - If You institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work or a - Contribution incorporated within the Work constitutes direct or - contributory patent infringement, then any patent licenses granted to You - under this License for that Work shall terminate as of the date such - litigation is filed. - -4. **Redistribution.** You may reproduce and distribute copies of the Work or - Derivative Works thereof in any medium, with or without modifications, and - in Source or Object form, provided that You meet the following conditions: - - 1. You must give any other recipients of the Work or Derivative Works a - copy of this License; and - - 2. You must cause any modified files to carry prominent notices stating - that You changed the files; and - - 3. You must retain, in the Source form of any Derivative Works that You - distribute, all copyright, patent, trademark, and attribution notices - from the Source form of the Work, excluding those notices that do not - pertain to any part of the Derivative Works; and - - 4. If the Work includes a "NOTICE" text file as part of its distribution, - then any Derivative Works that You distribute must include a readable - copy of the attribution notices contained within such NOTICE file, - excluding those notices that do not pertain to any part of the - Derivative Works, in at least one of the following places: within a - NOTICE text file distributed as part of the Derivative Works; within - the Source form or documentation, if provided along with the Derivative - Works; or, within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents of the - NOTICE file are for informational purposes only and do not modify the - License. You may add Your own attribution notices within Derivative - Works that You distribute, alongside or as an addendum to the NOTICE - text from the Work, provided that such additional attribution notices - cannot be construed as modifying the License. - - You may add Your own copyright statement to Your modifications and may - provide additional or different license terms and conditions for use, - reproduction, or distribution of Your modifications, or for any such - Derivative Works as a whole, provided Your use, reproduction, and - distribution of the Work otherwise complies with the conditions stated - in this License. - -5. **Submission of Contributions.** Unless You explicitly state otherwise, any - Contribution intentionally submitted for inclusion in the Work by You to - the Licensor shall be under the terms and conditions of this License, - without any additional terms or conditions. Notwithstanding the above, - nothing herein shall supersede or modify the terms of any separate license - agreement you may have executed with Licensor regarding such Contributions. - -6. **Trademarks.** This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, except - as required for reasonable and customary use in describing the origin of - the Work and reproducing the content of the NOTICE file. - -7. **Disclaimer of Warranty.** Unless required by applicable law or agreed to - in writing, Licensor provides the Work (and each Contributor provides its - Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied, including, without limitation, any - warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or - FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for - determining the appropriateness of using or redistributing the Work and - assume any risks associated with Your exercise of permissions under this - License. - -8. **Limitation of Liability.** In no event and under no legal theory, whether - in tort (including negligence), contract, or otherwise, unless required by - applicable law (such as deliberate and grossly negligent acts) or agreed to - in writing, shall any Contributor be liable to You for damages, including - any direct, indirect, special, incidental, or consequential damages of any - character arising as a result of this License or out of the use or - inability to use the Work (including but not limited to damages for loss of - goodwill, work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor has been - advised of the possibility of such damages. - -9. **Accepting Warranty or Additional Liability.** While redistributing the - Work or Derivative Works thereof, You may choose to offer, and charge a fee - for, acceptance of support, warranty, indemnity, or other liability - obligations and/or rights consistent with this License. However, in - accepting such obligations, You may act only on Your own behalf and on Your - sole responsibility, not on behalf of any other Contributor, and only if - You agree to indemnify, defend, and hold each Contributor harmless for any - liability incurred by, or claims asserted against, such Contributor by - reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS diff --git a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/NOTICE.txt b/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/NOTICE.txt deleted file mode 100644 index 6eba936..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/NOTICE.txt +++ /dev/null @@ -1 +0,0 @@ -Copyright (c) 2016, 2026, Oracle and/or its affiliates. diff --git a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/THIRD_PARTY_LICENSES.txt b/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/THIRD_PARTY_LICENSES.txt deleted file mode 100644 index 0f8f1a9..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/licenses/THIRD_PARTY_LICENSES.txt +++ /dev/null @@ -1,1459 +0,0 @@ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -Cython - -The following attribution text was taken from Component Cython Version 0.24.1 - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -Cryptography - -LICENSE: https://github.com/pyca/cryptography/blob/3.4.x/LICENSE -This software is made available under the terms of *either* of the licenses -found in LICENSE.APACHE or LICENSE.BSD. Contributions to cryptography are made -under the terms of *both* these licenses. -The code used in the OS random engine is derived from CPython, and is licensed -under the terms of the PSF License Agreement. -___________________________________________________________________________ - -LICENSE.APACHE: https://github.com/pyca/cryptography/blob/3.4.x/LICENSE.APACHE - Apache License - Version 2.0, January 2004 - https://www.apache.org/licenses/ - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - END OF TERMS AND CONDITIONS - APPENDIX: How to apply the Apache License to your work. - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - https://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -___________________________________________________________________________ - -LICENSE.BSD: https://github.com/pyca/cryptography/blob/3.4.x/LICENSE.BSD - -Copyright (c) Individual contributors. -All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of PyCA Cryptography nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -============================================================================================= - -Fourth-party dependencies: - -six LICENSE - MIT: https://github.com/benjaminp/six/blob/1.15.0/LICENSE - -Copyright (c) 2010-2020 Benjamin Peterson -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -___________________________________________________________________________________________ - -cffi LICENSE - MIT: https://github.com/python-cffi/release-doc/blob/master/LICENSE - -MIT License -Copyright (c) 2020 CFFI, Python's C Foreign Function Interface -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -___________________________________________________________________________________________ - -pycparser LICENSE: https://github.com/eliben/pycparser/blob/master/LICENSE - -pycparser -- A C parser in Python -Copyright (c) 2008-2017, Eli Bendersky -All rights reserved. -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -* Neither the name of Eli Bendersky nor the names of its contributors may - be used to endorse or promote products derived from this software without - specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -Apache Arrow nanoarrow -Copyright 2023 The Apache Software Foundation - -This product includes software developed at -The Apache Software Foundation (http://www.apache.org/). - ----------- - - - -Apache nanoarrow 0.6.0 - - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ----------- - -Copyright 2015-2023 Mikkel F. Jørgensen, dvide.com -Copyright (c) 2016 Mikkel Fahnøe Jørgensen, dvide.com -Copyright (c) 2005-2016 Paul Hsieh -Copyright (c) 2024 Mikkel Fahnøe Jørgensen, dvide.com - ----------- - -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -Microsoft Authentication Library (MSAL) for Python - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation. -All rights reserved. - -This code is licensed under the MIT License. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files(the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions : - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ------------------------------------------------------------------------------------------------------------------------------ -cryptography - -This software is made available under the terms of *either* of the licenses -found in LICENSE.APACHE or LICENSE.BSD. Contributions to cryptography are made -under the terms of *both* these licenses. - - -- Apache License - - - Apache License - Version 2.0, January 2004 - https://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---BSD License - -Copyright (c) Individual contributors. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of PyCA Cryptography nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ------------------------------------------------------------------------------------------------------------------------------ - -cffi - -Except when otherwise stated (look for LICENSE files in directories or -information at the beginning of each file) all software and -documentation is licensed as follows: - - The MIT License - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - ------------------------------------------------------------------------------------------------------------------------------ -pycparser -pycparser -- A C parser in Python - -Copyright (c) 2008-2022, Eli Bendersky -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -* Neither the name of the copyright holder nor the names of its contributors may - be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------------------------------------------------------ - -PyJWT - -The MIT License (MIT) - -Copyright (c) 2015-2022 José Padilla - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ------------------------------------------------------------------------------------------------------------------------------ - -certifi - -This package contains a modified version of ca-bundle.crt: - -ca-bundle.crt -- Bundle of CA Root Certificates - -This is a bundle of X.509 certificates of public Certificate Authorities -(CA). These were automatically extracted from Mozilla's root certificates -file (certdata.txt). This file can be found in the mozilla source tree: -https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt -It contains the certificates in PEM format and therefore -can be directly used with curl / libcurl / php_curl, or with -an Apache+mod_ssl webserver for SSL client authentication. -Just configure this file as the SSLCACertificateFile.# - -***** BEGIN LICENSE BLOCK ***** -This Source Code Form is subject to the terms of the Mozilla Public License, -v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain -one at http://mozilla.org/MPL/2.0/. - -***** END LICENSE BLOCK ***** -@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ - - ---Mozilla Public License - -Mozilla Public License
Version 2.0 -1. Definitions -1.1. “Contributor” -means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. -1.2. “Contributor Version” -means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution. -1.3. “Contribution” -means Covered Software of a particular Contributor. -1.4. “Covered Software” -means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. -1.5. “Incompatible With Secondary Licenses” -means -* that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or -* that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. -1.6. “Executable Form” -means any form of the work other than Source Code Form. -1.7. “Larger Work” -means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. -1.8. “License” -means this document. -1.9. “Licensable” -means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. -1.10. “Modifications” -means any of the following: -* any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or -* any new file in Source Code Form that contains any Covered Software. -1.11. “Patent Claims” of a Contributor -means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. -1.12. “Secondary License” -means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. -1.13. “Source Code Form” -means the form of the work preferred for making modifications. -1.14. “You” (or “Your”) -means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. -2. License Grants and Conditions -2.1. Grants -Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: -* under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and -* under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. -2.2. Effective Date -The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. -2.3. Limitations on Grant Scope -The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: -* for any code that a Contributor has removed from Covered Software; or -* for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or -* under Patent Claims infringed by Covered Software in the absence of its Contributions. -This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). -2.4. Subsequent Licenses -No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). -2.5. Representation -Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. -2.6. Fair Use -This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. -2.7. Conditions -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. -3. Responsibilities -3.1. Distribution of Source Form -All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form. -3.2. Distribution of Executable Form -If You distribute Covered Software in Executable Form then: -* such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and -* You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License. -3.3. Distribution of a Larger Work -You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). -3.4. Notices -You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. -3.5. Application of Additional Terms -You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. -4. Inability to Comply Due to Statute or Regulation -If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. -5. Termination -5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. -5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. -5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. -6. Disclaimer of Warranty -Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer. -7. Limitation of Liability -Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. -8. Litigation -Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims. -9. Miscellaneous -This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. -10. Versions of the License -10.1. New Versions -Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. -10.2. Effect of New Versions -You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. -10.3. Modified Versions -If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). -10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses -If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. -Exhibit A - Source Code Form License Notice -This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. -If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. -You may add additional accurate notices of copyright ownership. -Exhibit B - “Incompatible With Secondary Licenses” Notice -This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0. - - ------------------------------------------------------------------------------------------------------------------------------ - -charset-normalizer - -MIT License - -Copyright (c) 2019 TAHRI Ahmed R. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ------------------------------------------------------------------------------------------------------------------------------ -idna -BSD 3-Clause License - -Copyright (c) 2013-2024, Kim Davies and contributors. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------- -urllib - -MIT License - -Copyright (c) 2008-2020 Andrey Petrov and contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ------------------------------------------------------------------------------------------------------------------------------ - -requests - -Copyright 2019 Kenneth Reitz - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- diff --git a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/top_level.txt b/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/top_level.txt deleted file mode 100644 index 2b2f793..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb-4.0.1.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -oracledb diff --git a/.venv/lib/python3.9/site-packages/oracledb/__init__.py b/.venv/lib/python3.9/site-packages/oracledb/__init__.py deleted file mode 100644 index 37d9333..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/__init__.py +++ /dev/null @@ -1,1288 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2020, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# __init__.py -# -# Package initialization module. -# ----------------------------------------------------------------------------- - -import collections -import sys -import warnings - -if sys.version_info[:2] < (3, 9): - message = ( - f"Python {sys.version_info[0]}.{sys.version_info[1]} is no longer " - "supported by the Python core team. Therefore, support for it is " - "deprecated in python-oracledb and will be removed in a future release" - ) - warnings.warn(message) - -from . import base_impl, thick_impl, thin_impl - -from .base_impl import ( - ApiType as ApiType, - DbType as DbType, -) - -from .enums import ( - AuthMode as AuthMode, - PipelineOpType as PipelineOpType, - PoolGetMode as PoolGetMode, - Purity as Purity, - VectorFormat as VectorFormat, -) - -from . import constants, version - -from .arrow_array import ( - ArrowArray as ArrowArray, -) - -from .constructors import ( - Binary as Binary, - Date as Date, - DateFromTicks as DateFromTicks, - Time as Time, - TimeFromTicks as TimeFromTicks, - Timestamp as Timestamp, - TimestampFromTicks as TimestampFromTicks, -) - -from .dataframe import ( - DataFrame as DataFrame, -) - -from .dbobject import ( - DbObject as DbObject, - DbObjectAttr as DbObjectAttr, - DbObjectType as DbObjectType, -) - -from .defaults import ( - Defaults as Defaults, -) - -from .driver_mode import ( - is_thin_mode as is_thin_mode, -) - -from .dsn import ( - makedsn as makedsn, -) - -from .end_user_security_context import ( - create_end_user_security_context as create_end_user_security_context, -) - -from .errors import ( - _Error as _Error, -) - -from .exceptions import ( - Warning as Warning, - Error as Error, - DatabaseError as DatabaseError, - DataError as DataError, - IntegrityError as IntegrityError, - InterfaceError as InterfaceError, - InternalError as InternalError, - NotSupportedError as NotSupportedError, - OperationalError as OperationalError, - ProgrammingError as ProgrammingError, -) - -from .fetch_info import ( - FetchInfo as FetchInfo, -) - -from .future import ( - __future__ as __future__, -) - -from .lob import ( - LOB as LOB, - AsyncLOB as AsyncLOB, -) - -from .pipeline import ( - Pipeline as Pipeline, - PipelineOp as PipelineOp, - PipelineOpResult as PipelineOpResult, - create_pipeline as create_pipeline, -) - -from .secret_values import ( - get_secret as get_secret, - save_secret as save_secret, - SecretValue as SecretValue, -) - -from .soda import ( - SodaDatabase as SodaDatabase, - SodaCollection as SodaCollection, - SodaDocument as SodaDocument, - SodaDocCursor as SodaDocCursor, - SodaOperation as SodaOperation, -) - -from .sparse_vector import ( - SparseVector as SparseVector, -) - -from .utils import ( - clientversion as clientversion, - enable_thin_mode as enable_thin_mode, - enquote_literal as enquote_literal, - enquote_name as enquote_name, - from_arrow as from_arrow, - init_oracle_client as init_oracle_client, - is_qualified_sql_name as is_qualified_sql_name, - is_simple_sql_name as is_simple_sql_name, - register_params_hook as register_params_hook, - register_password_type as register_password_type, - register_protocol as register_protocol, - unregister_params_hook as unregister_params_hook, -) - -from .var import ( - Var as Var, -) - -# module attributes -apilevel: str = "2.0" -""" -A string constant stating the Python DB API level supported by python-oracledb. -""" - -defaults: Defaults = Defaults() -""" -The defaults object for setting default behaviors of python-oracledb. -""" - -paramstyle: str = "named" -""" -A string constant stating the type of parameter marker formatting expected by -the interface. Currently 'named' as in 'where name = :name'. -""" - -threadsafety: int = 2 -""" -An integer constant stating the level of thread safety that python-oracledb -supports. Currently 2, which means that threads may share the module and -connections, but not cursors. Sharing means that a thread may use a resource -without wrapping it using a mutex semaphore to implement resource locking. -""" - -__version__: str = version.__version__ -""" -A string constant stating the version of the module. -""" - - -# API types -BINARY: ApiType = base_impl.BINARY -""" -This type object is used to describe columns in a database that contain binary -data. The database types :data:`DB_TYPE_RAW` and :data:`DB_TYPE_LONG_RAW` will -compare equal to this value. If a variable is created with this type, the -database type :data:`DB_TYPE_RAW` will be used. -""" - -DATETIME: ApiType = base_impl.DATETIME -""" -This type object is used to describe columns in a database that are dates. The -database types :data:`DB_TYPE_DATE`, :data:`DB_TYPE_TIMESTAMP`, -:data:`DB_TYPE_TIMESTAMP_LTZ` and :data:`DB_TYPE_TIMESTAMP_TZ` will all compare -equal to this value. If a variable is created with this type, the database type -:data:`DB_TYPE_DATE` will be used. -""" - -NUMBER: ApiType = base_impl.NUMBER -""" -This type object is used to describe columns in a database that are numbers. -The database types :data:`DB_TYPE_BINARY_DOUBLE`, :data:`DB_TYPE_BINARY_FLOAT`, -:data:`DB_TYPE_BINARY_INTEGER` and :data:`DB_TYPE_NUMBER` will all compare -equal to this value. If a variable is created with this type, the database type -:data:`DB_TYPE_NUMBER` will be used. -""" - -ROWID: ApiType = base_impl.ROWID -""" -This type object is used to describe the pseudo column "rowid". The database -types :data:`DB_TYPE_ROWID` and :data:`DB_TYPE_UROWID` will compare equal to -this value. If a variable is created with this type, the database type -:data:`DB_TYPE_VARCHAR` will be used. -""" - -STRING: ApiType = base_impl.STRING -""" -This type object is used to describe columns in a database that are strings. -The database types :data:`DB_TYPE_CHAR`, :data:`DB_TYPE_LONG`, -:data:`DB_TYPE_NCHAR`, :data:`DB_TYPE_NVARCHAR` and :data:`DB_TYPE_VARCHAR` -will all compare equal to this value. If a variable is created with this type, -the database type :data:`DB_TYPE_VARCHAR` will be used. -""" - - -# connection authorization modes -AUTH_MODE_DEFAULT: AuthMode = AuthMode.DEFAULT -""" -This constant is used to specify that default authentication is to take place. -This is the default value if no mode is passed at all. - -It can be used for standalone and pooled connections in python-oracledb Thin -mode, and for standalone connections in Thick mode. - -This constant deprecates the ``DEFAULT_AUTH`` constant that was used in the -obsolete cx_Oracle driver, and was the default ``mode`` value. -""" - -AUTH_MODE_PRELIM: AuthMode = AuthMode.PRELIM -""" -This constant is used to specify that preliminary authentication is to be used. -This is needed for performing database startup and shutdown. - -It can only be used in python-oracledb Thick mode for standalone connections. - -This constant deprecates the ``PRELIM_AUTH`` constant that was used in the -obsolete cx_Oracle driver. -""" - -AUTH_MODE_SYSASM: AuthMode = AuthMode.SYSASM -""" -This constant is used to specify that SYSASM access is to be acquired. - -It can be used for standalone and pooled connections in python-oracledb Thin -mode, and for standalone connections in Thick mode. - -This constant deprecates the ``SYSASM`` constant that was used in the obsolete -cx_Oracle driver. -""" - -AUTH_MODE_SYSBKP: AuthMode = AuthMode.SYSBKP -""" -This constant is used to specify that SYSBACKUP access is to be acquired. - -It can be used for standalone and pooled connections in python-oracledb Thin -mode, and for standalone connections in Thick mode. - -This constant deprecates the ``SYSBKP`` constant that was used in the -obsolete cx_Oracle driver. -""" - -AUTH_MODE_SYSDBA: AuthMode = AuthMode.SYSDBA -""" -This constant is used to specify that SYSDBA access is to be acquired. - -It can be used for standalone and pooled connections in python-oracledb Thin -mode, and for standalone connections in Thick mode. - -This constant deprecates the ``SYSDBA`` constant that was used in the obsolete -cx_Oracle driver. -""" - -AUTH_MODE_SYSDGD: AuthMode = AuthMode.SYSDGD -""" -This constant is used to specify that SYSDG access is to be acquired. - -It can be used for standalone and pooled connections in python-oracledb Thin -mode, and for standalone connections in Thick mode. - -This constant deprecates the ``SYSDGD`` constant that was used in the obsolete -cx_Oracle driver. -""" - -AUTH_MODE_SYSKMT: AuthMode = AuthMode.SYSKMT -""" -This constant is used to specify that SYSKM access is to be acquired. - -It can be used for standalone and pooled connections in python-oracledb Thin -mode, and for standalone connections in Thick mode. - -This constant deprecates the ``SYSKMT`` constant that was used in the obsolete -cx_Oracle driver. -""" - -AUTH_MODE_SYSOPER: AuthMode = AuthMode.SYSOPER -""" -This constant is used to specify that SYSOPER access is to be acquired. - -It can be used for standalone and pooled connections in python-oracledb Thin -mode, and for standalone connections in Thick mode. - -This constant deprecates the ``SYSOPER`` constant that was used in the obsolete -cx_Oracle driver. -""" - -AUTH_MODE_SYSRAC: AuthMode = AuthMode.SYSRAC -""" -This constant is used to specify that SYSRAC access is to be acquired. - -It can be used for standalone and pooled connections in python-oracledb Thin -mode, and for standalone connections in Thick mode. - -This constant deprecates the ``SYSRAC`` constant that was used in the obsolete -cx_Oracle driver. -""" - - -# database shutdown modes -DBSHUTDOWN_ABORT: int = constants.DBSHUTDOWN_ABORT -""" -This constant is used to specify that the caller should not wait for current -processing to complete or for users to disconnect from the database. This -should only be used in unusual circumstances since database recovery may be -necessary upon next startup. -""" - -DBSHUTDOWN_FINAL: int = constants.DBSHUTDOWN_FINAL -""" -This constant is used to specify that the instance can be truly halted. This -should only be done after the database has been shutdown with one of the other -modes (except abort) and the database has been closed and dismounted using the -appropriate SQL commands. -""" - -DBSHUTDOWN_IMMEDIATE: int = constants.DBSHUTDOWN_IMMEDIATE -""" -This constant is used to specify that all uncommitted transactions should be -rolled back and any connected users should be disconnected. -""" - -DBSHUTDOWN_TRANSACTIONAL: int = constants.DBSHUTDOWN_TRANSACTIONAL -""" -This constant is used to specify that further connections to the database -should be prohibited and no new transactions should be allowed. It then waits -for all active transactions to complete. -""" - -DBSHUTDOWN_TRANSACTIONAL_LOCAL: int = constants.DBSHUTDOWN_TRANSACTIONAL_LOCAL -""" -This constant is used to specify that further connections to the database -should be prohibited and no new transactions should be allowed. It then waits -for only local active transactions to complete. -""" - - -# database types -DB_TYPE_BFILE: DbType = base_impl.DB_TYPE_BFILE -""" -Describes columns, attributes or array elements in a database that are of type -BFILE. It will compare equal to the DB API type :data:`BINARY`. -""" - -DB_TYPE_BINARY_DOUBLE: DbType = base_impl.DB_TYPE_BINARY_DOUBLE -""" -Describes columns, attributes or array elements in a database that are of type -BINARY_DOUBLE. It will compare equal to the DB API type :data:`NUMBER`. -""" - -DB_TYPE_BINARY_FLOAT: DbType = base_impl.DB_TYPE_BINARY_FLOAT -""" -Describes columns, attributes or array elements in a database that are of type -BINARY_FLOAT. It will compare equal to the DB API type :data:`NUMBER`. -""" - -DB_TYPE_BINARY_INTEGER: DbType = base_impl.DB_TYPE_BINARY_INTEGER -""" -Describes attributes or array elements in a database that are of type -BINARY_INTEGER. It will compare equal to the DB API type :data:`NUMBER`. -""" - -DB_TYPE_BLOB: DbType = base_impl.DB_TYPE_BLOB -""" -Describes columns, attributes or array elements in a database that are of type -BLOB. It will compare equal to the DB API type :data:`BINARY`. -""" - -DB_TYPE_BOOLEAN: DbType = base_impl.DB_TYPE_BOOLEAN -""" -Describes attributes or array elements in a database that are of type BOOLEAN. -It is only available in Oracle 12.1 and higher and only within PL/SQL. -""" - -DB_TYPE_CHAR: DbType = base_impl.DB_TYPE_CHAR -""" -Describes columns, attributes or array elements in a database that are of type -CHAR. It will compare equal to the DB API type :data:`STRING`. - -Note that these are fixed length string values and behave differently from -VARCHAR2. -""" - -DB_TYPE_CLOB: DbType = base_impl.DB_TYPE_CLOB -""" -Describes columns, attributes or array elements in a database that are of type -CLOB. It will compare equal to the DB API type :data:`STRING`. -""" - -DB_TYPE_CURSOR: DbType = base_impl.DB_TYPE_CURSOR -""" -Describes columns in a database that are of type CURSOR. In PL/SQL, these are -known as REF CURSOR. -""" - -DB_TYPE_DATE: DbType = base_impl.DB_TYPE_DATE -""" -Describes columns, attributes or array elements in a database that are of type -DATE. It will compare equal to the DB API type :data:`DATETIME`. -""" - -DB_TYPE_INTERVAL_DS: DbType = base_impl.DB_TYPE_INTERVAL_DS -""" -Describes columns, attributes or array elements in a database that are of type -INTERVAL DAY TO SECOND. -""" - -DB_TYPE_INTERVAL_YM: DbType = base_impl.DB_TYPE_INTERVAL_YM -""" -Describes columns, attributes or array elements in a database that are of type -INTERVAL YEAR TO MONTH. -""" - -DB_TYPE_JSON: DbType = base_impl.DB_TYPE_JSON -""" -Describes columns in a database that are of type JSON (with Oracle Database 21 -or later). -""" - -DB_TYPE_LONG: DbType = base_impl.DB_TYPE_LONG -""" -Describes columns, attributes or array elements in a database that are of type -LONG. It will compare equal to the DB API type :data:`STRING`. -""" - -DB_TYPE_LONG_NVARCHAR: DbType = base_impl.DB_TYPE_LONG_NVARCHAR -""" -This constant can be used in output type handlers when fetching NCLOB columns -as a string. (Note a type handler is not needed if -:data:`oracledb.defaults.fetch_lobs `, or the equivalent -execution parameter, is set to *False*). For IN binds, this constant can be -used to create a bind variable in :meth:`Cursor.var()` or via -:meth:`Cursor.setinputsizes()`. The ``DB_TYPE_LONG_NVARCHAR`` value won't be -shown in query metadata since it is not a database type. - -It will compare equal to the DB API type :data:`STRING`. -""" - -DB_TYPE_LONG_RAW: DbType = base_impl.DB_TYPE_LONG_RAW -""" -Describes columns, attributes or array elements in a database that are of type -LONG RAW. It will compare equal to the DB API type :data:`BINARY`. -""" - -DB_TYPE_NCHAR: DbType = base_impl.DB_TYPE_NCHAR -""" -Describes columns, attributes or array elements in a database that are of type -NCHAR. It will compare equal to the DB API type :data:`STRING`. - -Note that these are fixed length string values and behave differently from -NVARCHAR2. -""" - -DB_TYPE_NCLOB: DbType = base_impl.DB_TYPE_NCLOB -""" -Describes columns, attributes or array elements in a database that are of type -NCLOB. It will compare equal to the DB API type :data:`STRING`. -""" - -DB_TYPE_NUMBER: DbType = base_impl.DB_TYPE_NUMBER -""" -Describes columns, attributes or array elements in a database that are of type -NUMBER. It will compare equal to the DB API type :data:`NUMBER`. -""" - -DB_TYPE_NVARCHAR: DbType = base_impl.DB_TYPE_NVARCHAR -""" -Describes columns, attributes or array elements in a database that are of type -NVARCHAR2. It will compare equal to the DB API type :data:`STRING`. -""" - -DB_TYPE_OBJECT: DbType = base_impl.DB_TYPE_OBJECT -""" -Describes columns, attributes or array elements in a database that are an -instance of a named SQL or PL/SQL type. -""" - -DB_TYPE_RAW: DbType = base_impl.DB_TYPE_RAW -""" -Describes columns, attributes or array elements in a database that are of type -RAW. It will compare equal to the DB API type :data:`BINARY`. -""" - -DB_TYPE_ROWID: DbType = base_impl.DB_TYPE_ROWID -""" -Describes columns, attributes or array elements in a database that are of type -ROWID or UROWID. It will compare equal to the DB API type :data:`ROWID`. -""" - -DB_TYPE_TIMESTAMP: DbType = base_impl.DB_TYPE_TIMESTAMP -""" -Describes columns, attributes or array elements in a database that are of type -TIMESTAMP. It will compare equal to the DB API type :data:`DATETIME`. -""" - -DB_TYPE_TIMESTAMP_LTZ: DbType = base_impl.DB_TYPE_TIMESTAMP_LTZ -""" -Describes columns, attributes or array elements in a database that are of type -TIMESTAMP WITH LOCAL TIME ZONE. It will compare equal to the DB API type -:data:`DATETIME`. -""" - -DB_TYPE_TIMESTAMP_TZ: DbType = base_impl.DB_TYPE_TIMESTAMP_TZ -""" -Describes columns, attributes or array elements in a database that are of type -TIMESTAMP WITH TIME ZONE. It will compare equal to the DB API type -:data:`DATETIME`. -""" - -DB_TYPE_UNKNOWN: DbType = base_impl.DB_TYPE_UNKNOWN -""" -Describes columns, attributes or array elements in a database that are of an -unknown type. -""" - -DB_TYPE_UROWID: DbType = base_impl.DB_TYPE_UROWID -""" -Describes columns, attributes or array elements in a database that are of type -UROWID. It will compare equal to the DB API type :data:`ROWID`. -""" - -DB_TYPE_VARCHAR: DbType = base_impl.DB_TYPE_VARCHAR -""" -Describes columns, attributes or array elements in a database that are of type -VARCHAR2. It will compare equal to the DB API type :data:`STRING`. -""" - -DB_TYPE_VECTOR: DbType = base_impl.DB_TYPE_VECTOR -""" -Describes columns, attributes or array elements in a database that are of type -VECTOR (with Oracle Database 23 or later). -""" - -DB_TYPE_XMLTYPE: DbType = base_impl.DB_TYPE_XMLTYPE -""" -Describes columns, attributes or array elements in a database that are of type -SYS.XMLTYPE. -""" - - -# AQ dequeue modes -DEQ_BROWSE: int = constants.DEQ_BROWSE -""" -This constant is used to specify that dequeue should read the message without -acquiring any lock on the message (equivalent to a select statement). -""" - -DEQ_LOCKED: int = constants.DEQ_LOCKED -""" -This constant is used to specify that dequeue should read and obtain a write -lock on the message for the duration of the transaction (equivalent to a select -for update statement). -""" - -DEQ_REMOVE: int = constants.DEQ_REMOVE -""" -This constant is used to specify that dequeue should read the message and -update or delete it. This is the default value. -""" - -DEQ_REMOVE_NODATA: int = constants.DEQ_REMOVE_NODATA -""" -This constant is used to specify that dequeue should confirm receipt of the -message but not deliver the actual message content. -""" - - -# AQ dequeue navigation modes -DEQ_FIRST_MSG: int = constants.DEQ_FIRST_MSG -""" -This constant is used to specify that dequeue should retrieve the first -available message that matches the search criteria. This resets the -position to the beginning of the queue. -""" - -DEQ_NEXT_MSG: int = constants.DEQ_NEXT_MSG -""" -This constant is used to specify that dequeue should retrieve the next -available message that matches the search criteria. If the previous message -belongs to a message group, AQ retrieves the next available message that -matches the search criteria and belongs to the message group. This is the -default. -""" - -DEQ_NEXT_TRANSACTION: int = constants.DEQ_NEXT_TRANSACTION -""" -This constant is used to specify that dequeue should skip the remainder of the -transaction group and retrieve the first message of the next transaction group. -This option can only be used if message grouping is enabled for the current -queue. -""" - - -# AQ dequeue visibility modes -DEQ_IMMEDIATE: int = constants.DEQ_IMMEDIATE -""" -This constant is used to specify that dequeue should perform its work as part -of an independent transaction. -""" - -DEQ_ON_COMMIT: int = constants.DEQ_ON_COMMIT -""" -This constant is used to specify that dequeue should be part of the current -transaction. This is the default value. -""" - - -# AQ dequeue wait modes -DEQ_NO_WAIT: int = constants.DEQ_NO_WAIT -""" -This constant is used to specify that dequeue not wait for messages to be -available for dequeuing. -""" - -DEQ_WAIT_FOREVER: int = constants.DEQ_WAIT_FOREVER -""" -This constant is used to specify that dequeue should wait forever for messages -to be available for dequeuing. This is the default value. -""" - - -# AQ enqueue visibility modes -ENQ_IMMEDIATE: int = constants.ENQ_IMMEDIATE -""" -This constant is used to specify that enqueue should perform its work as -part of an independent transaction. - -The use of this constant with bulk enqueuing is only supported in -python-oracledb Thick mode. -""" - -ENQ_ON_COMMIT: int = constants.ENQ_ON_COMMIT -""" -This constant is used to specify that enqueue should be part of the current -transaction. This is the default value. -""" - - -# event types -EVENT_AQ: int = base_impl.EVENT_AQ -""" -This constant is used to specify that one or more messages are available for -dequeuing on the queue specified when the subscription was created. -""" - -EVENT_DEREG: int = base_impl.EVENT_DEREG -""" -This constant is used to specify that the subscription has been deregistered -and no further notifications will be sent. -""" - -EVENT_NONE: int = base_impl.EVENT_NONE -""" -This constant is used to specify no information is available about the event. -""" - -EVENT_OBJCHANGE: int = base_impl.EVENT_OBJCHANGE -""" -This constant is used to specify that a database change has taken place on a -table registered with the :meth:`Subscription.registerquery()` method. -""" - -EVENT_QUERYCHANGE: int = base_impl.EVENT_QUERYCHANGE -""" -This constant is used to specify that the result set of a query registered with -the :meth:`Subscription.registerquery()` method has been changed. -""" - -EVENT_SHUTDOWN: int = base_impl.EVENT_SHUTDOWN -""" -This constant is used to specify that the instance is in the process of being -shut down. -""" - -EVENT_SHUTDOWN_ANY: int = base_impl.EVENT_SHUTDOWN_ANY -""" -This constant is used to specify that any instance (when running RAC) is in the -process of being shut down. -""" - -EVENT_STARTUP: int = base_impl.EVENT_STARTUP -""" -This constant is used to specify that the instance is in the process of being -started up. -""" - - -# AQ delivery modes -MSG_BUFFERED: int = constants.MSG_BUFFERED -""" -This constant is used to specify that enqueue or dequeue operations should -enqueue or dequeue buffered messages, respectively. For multi-consumer queues, -a `subscriber `__ with buffered delivery mode -needs to be created prior to enqueuing buffered messages. - -This mode is not supported for bulk array operations in python-oracledb Thick -mode, and for JSON payloads. -""" - -MSG_PERSISTENT: int = constants.MSG_PERSISTENT -""" -This constant is used to specify that enqueue/dequeue operations should enqueue -or dequeue persistent messages. This is the default value. -""" - -MSG_PERSISTENT_OR_BUFFERED: int = constants.MSG_PERSISTENT_OR_BUFFERED -""" -This constant is used to specify that dequeue operations should dequeue either -persistent or buffered messages. -""" - - -# AQ message states -MSG_EXPIRED: int = constants.MSG_EXPIRED -""" -This constant is used to specify that the message has been moved to the -exception queue. -""" - -MSG_PROCESSED: int = constants.MSG_PROCESSED -""" -This constant is used to specify that the message has been processed and has -been retained. -""" - -MSG_READY: int = constants.MSG_READY -""" -This constant is used to specify that the message is ready to be processed. -""" - -MSG_WAITING: int = constants.MSG_WAITING -""" -This constant is used to specify that the message delay has not yet been -reached. -""" - - -# other AQ constants -MSG_NO_DELAY: int = constants.MSG_NO_DELAY -""" -This constant is a possible value for the :attr:`~MessageProperties.delay` -attribute of the message properties object passed as the ``msgproperties`` -parameter to the :meth:`Queue.deqone()` or :meth:`Queue.deqmany()` and -:meth:`Queue.enqone()` or :meth:`Queue.enqmany()` methods. It specifies that -no delay should be imposed and the message should be immediately available for -dequeuing. This is also the default value. -""" - -MSG_NO_EXPIRATION: int = constants.MSG_NO_EXPIRATION -""" -This constant is a possible value for the :attr:`~MessageProperties.expiration` -attribute of the message properties object passed as the ``msgproperties`` -parameter to the :meth:`Queue.deqone()` or :meth:`Queue.deqmany()` and -:meth:`Queue.enqone()` or :meth:`Queue.enqmany()` methods. It specifies that -the message never expires. This is also the default value. -""" - - -# operation codes (CQN) -OPCODE_ALLOPS: int = base_impl.OPCODE_ALLOPS -""" -This constant is used to specify that messages should be sent for all -operations. -""" - -OPCODE_ALLROWS: int = base_impl.OPCODE_ALLROWS -""" -This constant is used to specify that the table or query has been completely -invalidated. -""" - -OPCODE_ALTER: int = base_impl.OPCODE_ALTER -""" -This constant is used to specify that messages should be sent when a registered -table has been altered in some fashion by DDL, or that the message identifies a -table that has been altered. -""" - -OPCODE_DELETE: int = base_impl.OPCODE_DELETE -""" -This constant is used to specify that messages should be sent when data is -deleted, or that the message identifies a row that has been deleted. -""" - -OPCODE_DROP: int = base_impl.OPCODE_DROP -""" -This constant is used to specify that messages should be sent when a registered -table has been dropped, or that the message identifies a table that has been -dropped. -""" - -OPCODE_INSERT: int = base_impl.OPCODE_INSERT -""" -This constant is used to specify that messages should be sent when data is -inserted, or that the message identifies a row that has been inserted. -""" - -OPCODE_UPDATE: int = base_impl.OPCODE_UPDATE -""" -This constant is used to specify that messages should be sent when data is -updated, or that the message identifies a row that has been updated. -""" - - -# pipeline operation types -PIPELINE_OP_TYPE_CALL_FUNC: PipelineOpType = PipelineOpType.CALL_FUNC -""" -This constant identifies the type of operation as the calling of a stored -function. -""" - -PIPELINE_OP_TYPE_CALL_PROC: PipelineOpType = PipelineOpType.CALL_PROC -""" -This constant identifies the type of operation as the calling of a stored -procedure. -""" - -PIPELINE_OP_TYPE_COMMIT: PipelineOpType = PipelineOpType.COMMIT -""" -This constant identifies the type of operation as the performing of a commit. -""" - -PIPELINE_OP_TYPE_EXECUTE: PipelineOpType = PipelineOpType.EXECUTE -""" -This constant identifies the type of operation as the executing of a statement. -""" - -PIPELINE_OP_TYPE_EXECUTE_MANY: PipelineOpType = PipelineOpType.EXECUTE_MANY -""" -This constant identifies the type of operations as the executing of a statement -multiple times. -""" - -PIPELINE_OP_TYPE_FETCH_ALL: PipelineOpType = PipelineOpType.FETCH_ALL -""" -This constant identifies the type of operation as the executing of a query and -returning all of the rows from the result set. -""" - -PIPELINE_OP_TYPE_FETCH_MANY: PipelineOpType = PipelineOpType.FETCH_MANY -""" -This constant identifies the type of operation as the executing of a query and -returning up to the specified number of rows from the result set. -""" - -PIPELINE_OP_TYPE_FETCH_ONE: PipelineOpType = PipelineOpType.FETCH_ONE -""" -This constant identifies the type of operation as the executing of a query and -returning the first row of the result set. -""" - - -# connection pool "get" modes -POOL_GETMODE_FORCEGET: PoolGetMode = PoolGetMode.FORCEGET -""" -This constant is used to specify that a new connection should be created and -returned by :meth:`ConnectionPool.acquire()` if there are no free connections -available in the pool and the pool is already at its maximum size. - -When a connection acquired in this mode is eventually released back to the -pool, it will be dropped and not added to the pool if the pool is still at its -maximum size. - -This constant deprecates the ``SPOOL_ATTRVAL_FORCEGET`` constant that was used -in the obsolete cx_Oracle driver. -""" - -POOL_GETMODE_NOWAIT: PoolGetMode = PoolGetMode.NOWAIT -""" -This constant is used to specify that an exception should be raised by -:meth:`ConnectionPool.acquire()` when all currently created connections are -already in use and so :meth:`~ConnectionPool.acquire()` cannot immediately -return a connection. Note the exception may occur even if the pool is smaller -than its maximum size. - -This constant deprecates the ``SPOOL_ATTRVAL_NOWAIT`` constant that was used in -the obsolete cx_Oracle driver, and was the default ``getmode`` value. -""" - -POOL_GETMODE_TIMEDWAIT: PoolGetMode = PoolGetMode.TIMEDWAIT -""" -This constant is used to specify that :meth:`ConnectionPool.acquire()` should -wait for a period of time (defined by the ``wait_timeout`` parameter) for a -connection to become available before returning with an error. - -This constant deprecates the ``SPOOL_ATTRVAL_TIMEDWAIT`` constant that was used -in the obsolete cx_Oracle driver. -""" - -POOL_GETMODE_WAIT: PoolGetMode = PoolGetMode.WAIT -""" -This constant is used to specify that :meth:`ConnectionPool.acquire()` should -wait until a connection is available if there are currently no free connections -available in the pool. This is the default value. - -This constant deprecates the ``SPOOL_ATTRVAL_WAIT`` constant that was used in -the obsolete cx_Oracle driver. -""" - - -# connection pool purity -PURITY_DEFAULT: Purity = Purity.DEFAULT -""" -This constant is used to specify that the purity of the session is the default -value identified by Oracle (see Oracle's documentation for more information). -This is the default value. - -This constant deprecates the ``ATTR_PURITY_DEFAULT`` constant that was used in -the obsolete cx_Oracle driver, and was the default ``purity`` value. -""" - -PURITY_NEW: Purity = Purity.NEW -""" -This constant is used to specify that the session acquired from the pool should -be new and not have any prior session state. - -This constant deprecates the ``ATTR_PURITY_NEW`` constant that was used in the -obsolete cx_Oracle driver. -""" - -PURITY_SELF: Purity = Purity.SELF -""" -This constant is used to specify that the session acquired from the pool need -not be new and may have prior session state. - -This constant deprecates the ``ATTR_PURITY_SELF`` constant that was used in the -obsolete cx_Oracle driver. -""" - - -# subscription grouping classes -SUBSCR_GROUPING_CLASS_NONE: int = constants.SUBSCR_GROUPING_CLASS_NONE -""" -This constant is used to specify that no grouping should take place. -""" - -SUBSCR_GROUPING_CLASS_TIME: int = constants.SUBSCR_GROUPING_CLASS_TIME -""" -This constant is used to specify that events are to be grouped by the period of -time in which they are received. -""" - - -# subscription grouping types -SUBSCR_GROUPING_TYPE_SUMMARY: int = constants.SUBSCR_GROUPING_TYPE_SUMMARY -""" -This constant is used to specify that when events are grouped a summary of the -events should be sent instead of the individual events. This is the default -value. -""" - -SUBSCR_GROUPING_TYPE_LAST: int = constants.SUBSCR_GROUPING_TYPE_LAST -""" -This constant is used to specify that when events are grouped the last event -that makes up the group should be sent instead of the individual events. -""" - - -# subscription namespaces -SUBSCR_NAMESPACE_AQ: int = base_impl.SUBSCR_NAMESPACE_AQ -""" -This constant is used to specify that notifications should be sent when a queue -has messages available to dequeue. -""" - -SUBSCR_NAMESPACE_DBCHANGE: int = base_impl.SUBSCR_NAMESPACE_DBCHANGE -""" -This constant is used to specify that database change notification or query -change notification messages are to be sent. This is the default value. -""" - - -# subscription protocols -SUBSCR_PROTO_CALLBACK: int = constants.SUBSCR_PROTO_CALLBACK -""" -This constant is used to specify that notifications will be sent to the -callback routine identified when the subscription was created. It is the -default value and the only value currently supported. -""" - -SUBSCR_PROTO_HTTP: int = constants.SUBSCR_PROTO_HTTP -""" -This constant is used to specify that notifications will be sent to an HTTP -URL when a message is generated. This value is currently not supported. -""" - -SUBSCR_PROTO_MAIL: int = constants.SUBSCR_PROTO_MAIL -""" -This constant is used to specify that notifications will be sent to an e-mail -address when a message is generated. This value is currently not supported. -""" - -SUBSCR_PROTO_SERVER: int = constants.SUBSCR_PROTO_SERVER -""" -This constant is used to specify that notifications will be sent to a PL/SQL -procedure when a message is generated. This value is currently not supported. -""" - - -# subscription quality of service -SUBSCR_QOS_BEST_EFFORT: int = base_impl.SUBSCR_QOS_BEST_EFFORT -""" -This constant is used to specify that best effort filtering for query result -set changes is acceptable. False positive notifications may be received. This -behaviour may be suitable for caching applications. -""" - -SUBSCR_QOS_DEFAULT: int = base_impl.SUBSCR_QOS_DEFAULT -""" -This constant is used to specify that the default behavior for subscriptions -should be used. -""" - -SUBSCR_QOS_DEREG_NFY: int = base_impl.SUBSCR_QOS_DEREG_NFY -""" -This constant is used to specify that the subscription should be automatically -unregistered after the first notification is received. -""" - -SUBSCR_QOS_QUERY: int = base_impl.SUBSCR_QOS_QUERY -""" -This constant is used to specify that notifications should be sent if the -result set of the registered query changes. By default, no false positive -notifications will be generated. -""" - -SUBSCR_QOS_RELIABLE: int = base_impl.SUBSCR_QOS_RELIABLE -""" -This constant is used to specify that notifications should not be lost in the -event of database failure. -""" - -SUBSCR_QOS_ROWIDS: int = base_impl.SUBSCR_QOS_ROWIDS -""" -This constant is used to specify that the rowids of the inserted, updated or -deleted rows should be included in the message objects that are sent. -""" - - -# flags for tpc_begin() -TPC_BEGIN_JOIN: int = base_impl.TPC_TXN_FLAGS_JOIN -""" -This constant is used to join an existing TPC transaction. -""" - -TPC_BEGIN_NEW: int = base_impl.TPC_TXN_FLAGS_NEW -""" -This constant is used to create a new TPC transaction. -""" - -TPC_BEGIN_PROMOTE: int = base_impl.TPC_TXN_FLAGS_PROMOTE -""" -This constant is used to promote a local transaction to a TPC transaction. -""" - -TPC_BEGIN_RESUME: int = base_impl.TPC_TXN_FLAGS_RESUME -""" -This constant is used to resume an existing TPC transaction. -""" - - -# flags for tpc_end() -TPC_END_NORMAL: int = constants.TPC_END_NORMAL -""" -This constant is used to end TPC transaction participation normally. -""" - -TPC_END_SUSPEND: int = constants.TPC_END_SUSPEND -""" -This constant is used to suspend a TPC transaction. -""" - - -# vector formats -VECTOR_FORMAT_BINARY: VectorFormat = VectorFormat.BINARY -""" -This constant is used to represent the storage format of VECTOR columns using -8-bit unsigned integers. -""" - -VECTOR_FORMAT_FLOAT32: VectorFormat = VectorFormat.FLOAT32 -""" -This constant is used to represent the storage format of VECTOR columns using -32-bit floating point numbers. -""" - -VECTOR_FORMAT_FLOAT64: VectorFormat = VectorFormat.FLOAT64 -""" -This constant is used to represent the storage format of VECTOR columns using -64-bit floating point numbers. -""" - -VECTOR_FORMAT_INT8: VectorFormat = VectorFormat.INT8 -""" -This constant is used to represent the storage format of VECTOR columns using -8-bit signed integers. -""" - - -from .connection import ( # noqa: E402 - AsyncConnection as AsyncConnection, - connect as connect, - connect_async as connect_async, - Connection as Connection, -) - -from .cursor import ( # noqa: E402 - AsyncCursor as AsyncCursor, - Cursor as Cursor, -) - -from .pool import ( # noqa: E402 - AsyncConnectionPool as AsyncConnectionPool, - ConnectionPool as ConnectionPool, - create_pool as create_pool, - create_pool_async as create_pool_async, - get_pool as get_pool, -) - -from .subscr import ( # noqa: E402 - Subscription as Subscription, - Message as Message, - MessageQuery as MessageQuery, - MessageRow as MessageRow, - MessageTable as MessageTable, -) - -from .aq import ( # noqa: E402 - Queue as Queue, - AsyncQueue as AsyncQueue, - DeqOptions as DeqOptions, - EnqOptions as EnqOptions, - MessageProperties as MessageProperties, -) - -from .connect_params import ConnectParams as ConnectParams # noqa: E402 - -from .pool_params import PoolParams as PoolParams # noqa: E402 - -from . import builtin_hooks # noqa: E402 - -IntervalYM = collections.namedtuple("IntervalYM", ["years", "months"]) - - -class JsonId(bytes): - pass - - -# initialize implementations -package = sys.modules[__name__] -base_impl.init_base_impl(package) -thick_impl.init_thick_impl(package) -thin_impl.init_thin_impl(package) -del package - -# remove unnecessary symbols -del ( - aq, # noqa - base_impl, # noqa - builtin_hooks, # noqa - connect_params, # noqa - connection, # noqa - constants, # noqa - constructors, # noqa - cursor, # noqa - dbobject, # noqa - driver_mode, # noqa - dsn, # noqa - errors, # noqa - exceptions, # noqa - fetch_info, # noqa - future, # noqa - lob, # noqa - pipeline, # noqa - pool, # noqa - pool_params, # noqa - sparse_vector, # noqa - soda, # noqa - subscr, # noqa - sys, # noqa - thick_impl, # noqa - thin_impl, # noqa - utils, # noqa - var, # noqa - warnings, # noqa -) - -# general aliases (for backwards compatibility) -ObjectType = DbObjectType -Object = DbObject -SessionPool = ConnectionPool -version = __version__ - -# aliases for database types (for backwards compatibility) -BFILE = DB_TYPE_BFILE -BLOB = DB_TYPE_BLOB -BOOLEAN = DB_TYPE_BOOLEAN -CLOB = DB_TYPE_CLOB -CURSOR = DB_TYPE_CURSOR -FIXED_CHAR = DB_TYPE_CHAR -FIXED_NCHAR = DB_TYPE_NCHAR -INTERVAL = DB_TYPE_INTERVAL_DS -LONG_BINARY = DB_TYPE_LONG_RAW -LONG_STRING = DB_TYPE_LONG -NATIVE_INT = DB_TYPE_BINARY_INTEGER -NATIVE_FLOAT = DB_TYPE_BINARY_DOUBLE -NCHAR = DB_TYPE_NVARCHAR -OBJECT = DB_TYPE_OBJECT -NCLOB = DB_TYPE_NCLOB -TIMESTAMP = DB_TYPE_TIMESTAMP - -# aliases for authentication modes (for backwards compatibility) -DEFAULT_AUTH = AUTH_MODE_DEFAULT -SYSASM = AUTH_MODE_SYSASM -SYSBKP = AUTH_MODE_SYSBKP -SYSDBA = AUTH_MODE_SYSDBA -SYSDGD = AUTH_MODE_SYSDGD -SYSKMT = AUTH_MODE_SYSKMT -SYSOPER = AUTH_MODE_SYSOPER -SYSRAC = AUTH_MODE_SYSRAC -PRELIM_AUTH = AUTH_MODE_PRELIM - -# aliases for pool "get" modes (for backwards compatibility) -SPOOL_ATTRVAL_WAIT = POOL_GETMODE_WAIT -SPOOL_ATTRVAL_NOWAIT = POOL_GETMODE_NOWAIT -SPOOL_ATTRVAL_FORCEGET = POOL_GETMODE_FORCEGET -SPOOL_ATTRVAL_TIMEDWAIT = POOL_GETMODE_TIMEDWAIT - -# aliases for purity (for backwards compatibility) -ATTR_PURITY_DEFAULT = PURITY_DEFAULT -ATTR_PURITY_NEW = PURITY_NEW -ATTR_PURITY_SELF = PURITY_SELF - -# aliases for subscription protocols (for backwards compatibility) -SUBSCR_PROTO_OCI = SUBSCR_PROTO_CALLBACK diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index ef83bca35aa2985ada1367686fa19824279ed698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10101 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 diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/aq.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/aq.cpython-39.pyc deleted file mode 100644 index 440e7d640e7e0cf3b4d74f74ba39cbef3fa8ef3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25184 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 ZnA7v-fynL8hn#%jg0{{nWm-1M=D*ddu4DiJ diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/base.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/base.cpython-39.pyc deleted file mode 100644 index e47536af0cba11444d8e4cefef13359851a8de05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 867 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 P(C#CXvy=NO2dDlw>_%m_ diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/connection.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/connection.cpython-39.pyc deleted file mode 100644 index 977f42d4d69bb1e60a9463c40a26a66ea37e516a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123677 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 ^!IX6o4f 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⪌Eyib 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 F{{W&C(J24` diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/constants.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/constants.cpython-39.pyc deleted file mode 100644 index 0bca04f9e87e7defcdff67699ffbb2bc56318732..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1221 zcmZ{iQB%`E5XVzmpcD$NfC2)dq7Dy|2OVdeaU3tn6*45baCZfIFE^!$P%Leyi6~Ee z6<_@zehFWF>R0du_fjeW!zyI!D_mb3$#exQF{Kv-0Iz+z|q*n&u1MKJBGO)Fl!pn=xi>%hagw-DfZfaUd^EO_HDVJ?Yqgtt8iY+m%$j6k~jAM_BrJF1X zy{;`-cvl*f>@zHq*dgW)oRP#7yJQcGvZ@)x(jyk)NEDS+u_@yc4i{4jJ$x{rxxd6I z@)$C?O}s&i?Yh{q5yt~0o-~Q;+FVQ~Jw)y!fRX|g$qJ!(4^vUZ-mXkFD@--33*rOc zR<|!Ex243yi~&w4q!?K>F{wgztnIg}n83~Ua@=L60Fq6tHN~%6gDNP4424i~ot{k^rES7Kg z@tTh%tGX_tHL>{LES$_m`6}g8!in7G+`lEc$acj1jVc(_F_5_w~cE>`xi$>9@pF-NlEpe-=?z&0E#E!!2V|D>6ZD8q7~f7g0>`0^9; z`$#|ToQC>gGdliKKMBKFkHaX|+u_GpMq%$P?8*3RTXuV$Mi@o<=2_T2(_78MH?Q^X zd3@YyzuJ7ON6k2V*{wG|)sMnR@AT@8Ru~-WjZQm?>+Lw&?4JM3zdP*&pIhPkHTdty V0h7zXFPqq*SCrnviec5A*+2KQK)3(^ diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/constructors.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/constructors.cpython-39.pyc deleted file mode 100644 index 312f5fbfec9a51f28be1e1bbaa0da6558af7444f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2600 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 LzsuXz-yQ!CNhEh- diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/dataframe.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/dataframe.cpython-39.pyc deleted file mode 100644 index 3ee77a367b3422d82ec800201db3d61156af55f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3989 zcmb_fO>^7E8QulJ4^g5e%d#COZi;>+Ei(?8X)~QRqq?zWC8J5pwo>}VnG6JRml9+U zpm#yb!qAsS*B&}OHkpxn(;w(R$f17$*Pe3jt(Ww97bHlEYNm&RgXMnjyU+8!&o2CW zy~glVzGxi(eT}hyQepNfq3}Ll{Q(le1P@uCcQ~iK6GETO$BUK2I3e8xLVvL=`BF|qO)7j<#t%;~J4rarD&6>F%uAy?(HxcQkS*2OK9 z*JK^#4U}(-J1F0jt7iON@d`@ok07~ce?cH5(r~UEvZu`;Cy{+BtM<4I}vhD3||N1vO zyW3ALdFE&t_AZ$sy8nIHI*R+Ubr9&I6aQGsq?JgWv?AF{JT298sl4Px$y6$S@Cdbc$=O^)K|hs~d~bdbom2Y&ade<*b;R(>~>;-DqKVvksC4ogx8T7v2(l^{G~Or0EcyMkN5?CoQb?5^T3a{>f`x=GbU z*^Ftm+%#(c0a^;nYCPSzY8iD}FwDUyW7sA#BR*mt;#yc|$e;5I_5@*qIxB$Do;`x| zJz<}$5%$R2BkS1NWY69dHXPYWAJ^RRvjd)U%(a^wNf*G%ZsHyWa2``Zw#dGW52M>RWe*ePD(#8x<Qd=;4y z7ktRoS^`b}l>ZUz9rJVR0w6Z*^e+X_yD}N7C}-zUp}c!09^7A@ZutW}45fQ=6m*YV zKMdm&?TSDVi`_VaC}{9j%$CG%FIF-*j9h_`cTLRGyxw>&U?9T+sC0DOuRaK?riYV0c&SP)<2t9JO zEv0v-JDuyZu(iUa=-e3#0yao;U>xbg!m!0nQo!f4yX5~wx{3LzXH3bTTbLHL@tSyF zN5;f^?ImLUn9asISKmOZx=qRa-WBQVZ>jzslJu>G{Thp|3vTrt8g(6)F#?uoDP|f|hKMBsbEys@ zAz!%r`@#Nx)7|Nrmb?zJ91o38D?d7v4_tq$20Jv$M64@cbmf2~-o*fOMG;f-zXS*@ zt#29EhL_M<=^NB@JoQ05jD#j>aSN#3lOQ>A)9Tp8G_+zl8uq>1e4W*%tD6X!Xv3RW z>x#2vM#b}izelsCGnbV&xCK=xe^vghwgffHie0*m{{d4ms z$E?I)O{lZ7#aHl~74#`-lkRhpLlRzS9W9lRkaMGQeC9$kp@D#dw;f1Da-Q4qwE~B` zh#ku4zlyc`J{BF|orucJnLp#!3r3Sp8ZRTC&5aiDGGn-v{;c5Xdcz?IUu(7c9%fZ< zQ*xamR>?A&<2iav44=8lPnsL}K-r*sKe-n!<2BFg#{%~XRZ&op>r|6?0uKYHcILZlf&&oy+uRlmTr($Ey_)O$mHl! zuSkkX6Eyi=l{;3|ws@^XZ?#riTCc2^*XnD_H_E0bZUIZM37<7EuH9JbEE`qLk62?& rr*d&qJ#wUR+}tLmIhPy_NB1#0 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 T#d#327yl}Ae_*{cclLh(kJsR* diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/defaults.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/defaults.cpython-39.pyc deleted file mode 100644 index 32243b683553e5cdc35db95ca6e5bd0423da716d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12111 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 diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/driver_mode.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/driver_mode.cpython-39.pyc deleted file mode 100644 index 7c72ae03d3219ca967612d656072119b1937e3ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3485 zcmb7G-ESO85$~D(@Ob0o!dCeImB1AOH+8pTwUvmsNlYUI&09>x*-6;n;sI%TT$EFLy=;~5(^ z)fLrNYp2n$rQ0g`Tcp-i=d?LoQ_%y~-S`}w*x>UBZ8xgg+SfoFKE_b(@do;k<>( z7yM|F<(g+EbD7MuCqX~#a`GV^b(YIi^S28EG&o zEm*7n2a#8|5il^cf)+3jj_(ZvG_)z_mfQtccztn3jI5T5$Y$D(3p<6TUV6>e!_f0{ zDY^dHLw)!p+rn4AiAJ##CPEvz_<7?q8aEYtz+OayZmU|aZB%`uHo>{!Xr0c2161o< zX9`s7wJtBBs#)rM{DRr55cjXFKPjfVKg!CAzpygRwHo!qee!pwH(OMR5QK*i zcSzYb8Wy$jK6&%PMeUuDUI2>#^I$d6IRPxTg^t(7Ua5Pen!SdmS{DMh3|fc}F)Rsd z7CrgyWfGTkDRDk~sGs2TA{9C(?2vu>>xi8oBF&lo@kzY=H9 zYR|m^hNPj_{5tg>&=>(f=n|i+ajBJ>N>NY!vzvif`YN&-5Gnr|en zq>*gIkzct0L+v1c1-XOTpFWM~kAwvm`3SuRdXfDhtvzp&6V$86C&;Rx`as2wiN+(0 z>2Kck^O5!A!}wu?dNy~h=WW+IT>C77^K2|f360=Z(MxXir&YIdFi5xY6tI1yGX?h%dl~6UE^P?W(m6eyIZs%eNBxjbDQSk7H`s&G z)|Rq@Uz4G|S5(a-nK?@tf7lULA}I(|1;ZOV_wS3nk9N0yBktbY-Vr;4JHPyRXM6aA z<@`Ww-5U&cw)S@K4aA*~@9*5%{zPoyx3{z1je^5@lh$^vt{iA5mZuPqS8_D0l|-H8 zo8VT2dy#w*H=EJ5_*P`U4;m^}tcNY7Evrv`3BHM0vaq-Hb?QAptwgxb{|xP3f?o1b zQRG@8w;;)+NDqKI8}krT-#H7Rlu|N-Is{EX({tIKPPNKVZ6MzUb6vJ?Ix8%)`fV5u zY{qkw`eb&LP8`5MNDW4--8XeF=!FE3K+-5Kw z@kx!K>1Xc!27RMWjxdT!q5eHs25p1*}b zUduON1gf_JEOktZ?e}nJeRjPp4^$hg4tEUFkeB(}8yQs+$OYy&AK7#oK5x7#= ksG4-mJ?W(alAl9EB(GoG1aV3EK8ZK3Ui(qI(fQ7Q0fL&u5dZ)H diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/dsn.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/dsn.cpython-39.pyc deleted file mode 100644 index 30e1a8862be37bd957ec22eec4da04c3c894dd8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1632 zcmZuxPmdcl6d%vOWYg@QrWN#Pq#kBan;=mkQ4vIxjJ8qRB$|W@a+%DIy_?xhJdy2e z*=Wjz9^n(vitUl_0bgRSNJv~b!(Pg>H@l50Jo2;s{Cm&#d%rjF_IAa9R{GsP{-tUd zf2hS~Q@dY57fKL=pqVj8V}uN9Qj?g(dSwxtI4|w7MYcd^EB)0++*f5%BITFP*dgZ7 z@GE~IaO0!GrJQG6^n9zZSv;qOa~jWGf(!Z7Ogp0%EIJJHkDh+y@_Sy71+6}$-Ib{CEm>UhJs zgZK>?{c>SXGa(Cmk#SjAA|*vt9h@dK(y4`<9;F!rEd-4~D54X3R@B52A{K4xxC8!@ zlJdT8>V;~pQ~xJSj*J&2sR&^F013`5VlEMX02(W|w5D{9h@D$ML-Jo+Z-A%lZVo&J z)Hi@~bMqQi%FTDE+}4;JFy-97#%$&G1_n3`e$D|?$(?J=jojJ5xEk{tV5+%$joHrK zcNnsBZsw&o=tY_A<_75Zas={bUItlvT>{eHTK%or66$IIj;%?A#WI!g!HnWV;N(&O zmoF(jnLw^46TARg&MELx0kn&Uu$(@ee1DbH`kI!WKdIxp~(aW;n z@b58td>7JLZFRmt}T{SYR5zVEgByF8=8e3}ANj2*g?5ngwuF04Y~);n0cg23F_UyA+j{Wyp_&;3z1_8vODr5A9U)AK8DGl@*)eU)fa zg~P%mx#Vf(KbjY*sQkwg_Ady&N~$F@OXN7oigX(ez9nQlo@=4TNi3vE%yIQ@%nhG# zEyg^Ggw|t|9|&1>(L7dpDs;Mq`uLl}%RDUKMh z!H^B6MKo8y28(iO#52Rpj2pY*iPW$YtRakX8CzF;Zf3bkPB_xfVqtia>VDV$?GYT< z-MvKi?k+31;+ZgTXT&9&2tcBNT)DRjD|3{u8B8L}730g8pYYxrsYAeg3ClN zfXwFFETU{U0l+mpKwt}oC0fr#%qGW(N(%-z0nJm4)KZLeVaY|7uNqZTde&9OCEo)N z`1XGRxj@nddaN7FAS4X{T6&r*Y7i2*w;Udb;|r;3Uc1l)7t#f^G^tu3!QRnSPt6Fn z&jK63JaU1ow_MxmYU&58Q8Hc>={Yw*sP$C$BO59nK}Bqyw`rd}!W3ckhy*BAHa(IJ z<=R~_yXF zdSSuuDGr?!!wr_A#qa=7nnygfM^JfeZZ4pBEjX7^#GrjBc&hH!gzL(Z*%99t!VEx{%s`5%8AAsg zf<~KXa$Kk!Re8`q6!LJ8CX>%@4~k<@9(k+(`9Om-tQ9;ufX>l_+*V3F8MMOFROa|R z;C^vjE#27@Qamfv`h5(^#z#(WMOGQd|9yA4Wzdqn{>i8R*oo}5Tbau>krklTwd;PbtKNV>)SEC>zP+RJ@RG_+ z;X~%~G_ATjSP=J=%9X+|RrUTo89xS^AD#>UMy>l>@SUvK|54Ek)e_!_|0Ad?I4#38 zT4@8ap^vV%dknC0A;8LwQf>2JPuK7;7S%^E^lg}&8_RTs1a$corQJWN8xr~|_=9%3 zl)}pMS4c<$;t|+2KQFC^9^KyVU8w?dT!8i|OsjHn!s1mvP614nV+pWqsSnVK*DpZA k;#7#M3h!ijJWs{?hp^LVx*w1kYtkYfZA=$d(z& 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 E2TkJXQ~&?~ diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/exceptions.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/exceptions.cpython-39.pyc deleted file mode 100644 index 171e3fcd588bdc84bd7519a77b48251c15624a16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3770 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 diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/future.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/future.cpython-39.pyc deleted file mode 100644 index ea6e815979fc6abccba6fbadb88817e732a9e746..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmY*Xy^hmB5Z?7q&Rh}-gb+eV6j0!TYym<-LMJHh=qLy@Zbpth`8gar?5@onN_QvS zYj9;Afd}9vw&g9Tn6Z;1H`0t}e`daKzI8er9tyI9-|^|Mo)CX{v2Q*t-jSQf6lNk3 zA4D#4c}afZB@*R@NW9z|i`dWT#x3JoHuIbUibUpg_exAOWa6z2Ouj_V*obdZ?5Lm64hj3=HJs(M5`Rg93!ZV(QL>EFvav*=)>*gNqQO$N5@-5DT?bke_WUIl0od#>~nqGoc(5zSNYcA1T z!vdHa0esD{`hX9@CM{~z5pVFnp!*yK6k>A2#msMy-Tyv47Xh${0PYZAS><)X`2gTs zofh3mJ8Rp}4YxvPSQG#qT#MPFx4@F%p6-B2mQeE!y=gZKFBqy*@>Y)<@-BMYF*$m& KYZL@``~LtJ|EM4U diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/lob.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/lob.cpython-39.pyc deleted file mode 100644 index abd70f57a1417604cb5acf45a36d8ea695ba0c0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9388 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 N^OD)DtlnBt{{v=zjj;d# diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/pipeline.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/pipeline.cpython-39.pyc deleted file mode 100644 index 8ea7a70f76d74bcab02660940e439748a9d7064a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16945 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 diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/pool.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/pool.cpython-39.pyc deleted file mode 100644 index 8b17b802fa118e0d54f1ed3fd8e7098dde4807fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64598 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 Zdv<>!aC>qHxBG+J-p58OrQ-Cr{}24pYJLC! diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/pool_params.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/pool_params.cpython-39.pyc deleted file mode 100644 index 3562b6860d7853b41067d6207ebd778bf751c7e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41044 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

p+>4`ZBWK!v2V^ZOPh%P^qGC!C_` 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 b$c`XYwqBYk&Xni2=YFm5%X4qcJ@$VA#z?^D diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/sparse_vector.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/sparse_vector.cpython-39.pyc deleted file mode 100644 index c99abcd392a0261426a556b78546b890754edb25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3017 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 diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/utils.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/utils.cpython-39.pyc deleted file mode 100644 index 16fa54c40117c0833c40791edbade0842073f766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18758 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%0AJP+9_JNudjag9M(peplH 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 V_VmQrGS6Q+^V5mrsKo!_zX53m*5&{J diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/var.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/var.cpython-39.pyc deleted file mode 100644 index dcda020da147d4c42f060d7953b6efa2d9d22e5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6477 zcmcIoNpBp-74Btr4k?Uka&{xHgk@wj>}8zIxDgAk^LvTQ|1+3WtEpUtFqcr2{Sb_Q)dk|Q#UgU ztf^)iW@eEsshI`LG!>jPY+21LvX6L`FR_)E4m-&%!QEFQumoJ1|)*~=b}TpaUY-DKyzsATCeQa)(e|@yNLQ&a#;&`p!`cVgiWLeBba z-0sC&UIM{-lcu*HBs<=oAC9^AjeWOOP0QV2I11CHZJub(^??Az7YOF>V`bR zE&`C2B7cZh@R4Y_X-V>MD=n)Nsf!I?TH-ve|Hfb6iHCf>AIP13f0y%QJ>fE0kN8&7 zm0av`(M_I5-I0g~T*~$K9*_3c!=V4OpRSJ%lASpEN&DyPGD!HXkw5s{-{x{Xr)Pc7 z7wr+$z1t-$y4{a(p;U%wH|$lrW>@S<6GXT34VwdEc>W_@rm@Dr zhhw$zNrG=V4Uk>KU(;Sef3l<)U|^GN3!aQcbW9ORRp?W^xQLEYKU*woHGHhciY|W} z8yjBsd$JQqPjH{zilgwr^OHmb{c*xEN0&%1+2Ni)NXCBXMdM+gD;4A+AMz-XUJ%g+ z0}a##{Qw*KQ}O}^qJsfgkx?^c7wGEdTxpy8TP3YIOOQzCTyak~h%%#W7N@_o#aZk< zp(5!SEdg`GZS0ZcBdj{9%H%95$%#Gl^@9$QUXYeg?i*w`V1#@?3~hT)CHG*{Q0@du zp~P=4htOpLjVX|6i>rVs-lvA###Fo0C4KtWnZ`W8s&vp;<;ltv>wI}W(&QJkQtvtn z@jZk1sdQKd6Rx}`^tnIY+Jev_{#emV`emSTf3V|aq9pz9AHd@kXmzznF9V-+K||^i z@LAN0YuL4kPm^4koFS46hvw6JOi1?(c5{VP01B*0K5MN4*0w@r7LI8{AAJlOo*7ij z+VM=6=3`pJAuSmtmp>X@zf~^#J1|cOA{xWabhOfT9Y+W(P(%Z2YT3H zo9p$+x$(@mY5!heapvqi-wOkokf|t3poAkol>7V4TLaOemsWTh>)gv=$zVJ3ktA>r0n-@bn&yOo=acMlh(8BD6s)zJGA+bOTGZA6y!ue7{BDw? zzVzcQ15QQfY1qa28=G;&ZxnS1lUnCkfPj`Dt)WyI-oo>v0|QB8EMahOdX9x4G6c=^ z8#f@tQ9+Q(uNMxTR+f{08GPmnQZr05YDW4rjbaE^eq`XOZ0DwjG>14mJt&dC;30vO ze3+$D10PWiNfu8AI}i|}hq5RGDK}+;WsF&iElc;zR#<>al|ArgCgW(~_xQ90R42>i zaElqxe9nE>h**RQqTb9|2$xw%rVBWlXCy}k*|Lt_g|+#(9*>Fs)9=$_NfIaQluSq) z^7n4BnK>6O{Fov}AdOCZyR}YT_y23K&0;PvOQzx`Xd^9vGq@bG(kGuI+Sz-kjdd>?o~E6I8r1&i5k_8|*YBgl=N>RM85_aKX73Gxyrie?B*DM>zz^@JqwT z>ZC?)iYDjtu;`xrKb*?oi=Led2KoDB%0k8clh07N>)V2F-R@;puS*ZY}<>tsn7S2y@riXkK@9WeAF9KCjKt_-u45>$PqF0O0G|Chx`#VlTLE0#O zK!CG+L0Tg0{$a$spv6m*Z-|%dNZEXDB2?W|sr|L@Bw`;K(&%6+V5-_72c-&xejpn@ z<<9_3btj(Ewr_ zB}Juf(-a%A!~mN*v@Cx(5-iS>MnxI1{HKveZPFlf)6-OlvsEdy^)8hP zschNpqTJRU#%vr?zuE16f%=qQ5mfz37Y0-a*NLhsu%)%UoRPXnaKu%@<^yWzi7q~* zL#2Kkhw4cvNbI6T4LN<`QbReP@TmC#H55<;)$PO&sVP%ar-sUb;zwxG61}9vk7+!0 z)~crpf230M0F_kEK^>>+*v$pUUT)&6;KNw|U%~8Z1EZRrS#7M)Iz|_9RywwxE=yQ>U&fVrp6l^eo)d+8xdQyB>B( MI(rcnOZ>V21DH3YxBvhE diff --git a/.venv/lib/python3.9/site-packages/oracledb/__pycache__/version.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/__pycache__/version.cpython-39.pyc deleted file mode 100644 index f079a2fc18ff8a9147dfabf48f3108ec39de4c0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmYj~O$x#=6ok`)KPVo;Wf$ft7C{j41a92932FPZsWmBivHsl1gLnzI9>JX}qquNj z20oZ!WUtp@UaebHgiXdCANW_`Vc|_}9~oP-ELgE9yfk7y?IncOqg3$Vra3?J)Yf>ZvUZbv|RLLZU>g;l($9xK;91bd( f?&KB;jFoALSpvUDUY+ml+1_M_66byY{PbpTBCa~c diff --git a/.venv/lib/python3.9/site-packages/oracledb/aq.py b/.venv/lib/python3.9/site-packages/oracledb/aq.py deleted file mode 100644 index 869f939..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/aq.py +++ /dev/null @@ -1,668 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# aq.py -# -# Contains the classes used for handling Advanced Queuing (AQ): Queue, -# DeqOptions, EnqOptions and MessageProperties. -# ----------------------------------------------------------------------------- - -import datetime - -from . import connection as connection_module -from typing import Any, Union -from . import errors, utils -from .base import BaseMetaClass -from .dbobject import DbObject, DbObjectType - - -class BaseQueue(metaclass=BaseMetaClass): - @classmethod - def _from_impl(cls, connection, impl): - queue = cls.__new__(cls) - queue._connection = connection - queue._deq_options = DeqOptions._from_impl(impl.deq_options_impl) - queue._enq_options = EnqOptions._from_impl(impl.enq_options_impl) - queue._payload_type = None - queue._impl = impl - return queue - - def _verify_message(self, message: "MessageProperties") -> None: - """ - Internal method used for verifying a message. - """ - if not isinstance(message, MessageProperties): - raise TypeError("expecting MessageProperties object") - if message.payload is None: - errors._raise_err(errors.ERR_MESSAGE_HAS_NO_PAYLOAD) - if isinstance(self.payload_type, DbObjectType): - if ( - not isinstance(message.payload, DbObject) - or message.payload.type != self.payload_type - ): - errors._raise_err(errors.ERR_PAYLOAD_CANNOT_BE_ENQUEUED) - elif self.payload_type == "JSON": - if not isinstance(message.payload, (dict, list)): - errors._raise_err(errors.ERR_PAYLOAD_CANNOT_BE_ENQUEUED) - else: - if not isinstance(message.payload, (str, bytes)): - errors._raise_err(errors.ERR_PAYLOAD_CANNOT_BE_ENQUEUED) - - @property - def connection(self) -> "connection_module.Connection": - """ - This read-only attribute returns a reference to the connection object - on which the queue was created. - """ - return self._connection - - @property - def deqoptions(self) -> "DeqOptions": - """ - This read-only attribute returns a reference to the options that will - be used when dequeuing messages from the queue. - """ - return self._deq_options - - @property - def deqOptions(self) -> "DeqOptions": - """ - Deprecated: use deqoptions instead. - """ - return self.deqoptions - - @property - def enqoptions(self) -> "EnqOptions": - """ - This read-only attribute returns a reference to the options that will - be used when enqueuing messages into the queue. - """ - return self._enq_options - - @property - def enqOptions(self) -> "EnqOptions": - """ - Deprecated: use enqoptions() instead. - """ - return self.enqoptions - - @property - def name(self) -> str: - """ - This read-only attribute returns the name of the queue. - """ - return self._impl.name - - @property - def payload_type(self) -> Union[DbObjectType, None]: - """ - This read-only attribute returns the object type for payloads that can - be enqueued and dequeued. If using a JSON queue, this returns the value - "JSON". If using a raw queue, this returns the value *None*. - """ - if self._payload_type is None: - if self._impl.is_json: - self._payload_type = "JSON" - elif self._impl.payload_type is not None: - self._payload_type = DbObjectType._from_impl( - self._impl.payload_type - ) - return self._payload_type - - @property - def payloadType(self) -> Union[DbObjectType, None]: - """ - Deprecated: use payload_type instead. - """ - return self.payload_type - - -class Queue(BaseQueue): - - def deqmany(self, max_num_messages: int) -> list["MessageProperties"]: - """ - Dequeues up to the specified number of messages from the queue and - returns a list of these messages. - """ - if self._impl._supports_deq_many(self._connection._impl): - message_impls = self._impl.deq_many(max_num_messages) - else: - message_impls = [] - while len(message_impls) < max_num_messages: - message_impl = self._impl.deq_one() - if message_impl is None: - break - message_impls.append(message_impl) - return [MessageProperties._from_impl(impl) for impl in message_impls] - - def deqMany(self, max_num_messages: int) -> list["MessageProperties"]: - """ - Deprecated: use deqmany() instead. - """ - return self.deqmany(max_num_messages) - - def deqone(self) -> Union["MessageProperties", None]: - """ - Dequeues at most one message from the queue and returns it. If no - message is dequeued, None is returned. - """ - message_impl = self._impl.deq_one() - if message_impl is not None: - return MessageProperties._from_impl(message_impl) - - def deqOne(self) -> Union["MessageProperties", None]: - """ - Deprecated: use deqone() instead. - """ - return self.deqone() - - def enqmany(self, messages: list["MessageProperties"]) -> None: - """ - Enqueues multiple messages into the queue. The messages parameter must - be a sequence containing message property objects which have all had - their payload attribute set to a value that the queue supports. - - Warning: In python-oracledb Thick mode using Oracle Client libraries - prior to 21c, calling :meth:`Queue.enqmany()` in parallel on different - connections acquired from the same connection pool may fail due to - Oracle bug 29928074. To avoid this, do one of: upgrade the client - libraries, ensure that :meth:`Queue.enqmany()` is not run in parallel, - use standalone connections or connections from different pools, or make - multiple calls to :meth:`Queue.enqone()`. The function - :meth:`Queue.deqmany()` call is not affected. - """ - for message in messages: - self._verify_message(message) - message_impls = [m._impl for m in messages] - self._impl.enq_many(message_impls) - - def enqMany(self, messages: list["MessageProperties"]) -> None: - """ - Deprecated: use enqmany() instead. - """ - return self.enqmany(messages) - - def enqone(self, message: "MessageProperties") -> None: - """ - Enqueues a single message into the queue. The message must be a message - property object which has had its payload attribute set to a value that - the queue supports. - """ - self._verify_message(message) - self._impl.enq_one(message._impl) - - def enqOne(self, message: "MessageProperties") -> None: - """ - Deprecated: use enqone() instead. - """ - return self.enqone(message) - - -class AsyncQueue(BaseQueue): - - async def deqmany( - self, max_num_messages: int - ) -> list["MessageProperties"]: - """ - Dequeues up to the specified number of messages from the queue and - returns a list of these messages. - """ - message_impls = await self._impl.deq_many(max_num_messages) - return [MessageProperties._from_impl(impl) for impl in message_impls] - - async def deqone(self) -> Union["MessageProperties", None]: - """ - Dequeues at most one message from the queue and returns it. If no - message is dequeued, None is returned. - """ - message_impl = await self._impl.deq_one() - if message_impl is not None: - return MessageProperties._from_impl(message_impl) - - async def enqmany(self, messages: list["MessageProperties"]) -> None: - """ - Enqueues multiple messages into the queue. The messages parameter must - be a sequence containing message property objects which have all had - their payload attribute set to a value that the queue supports. - - Warning: calling this function in parallel on different connections - acquired from the same pool may fail due to Oracle bug 29928074. Ensure - that this function is not run in parallel, use standalone connections - or connections from different pools, or make multiple calls to - enqone() instead. The function Queue.deqmany() call is not affected. - """ - for message in messages: - self._verify_message(message) - message_impls = [m._impl for m in messages] - await self._impl.enq_many(message_impls) - - async def enqone(self, message: "MessageProperties") -> None: - """ - Enqueues a single message into the queue. The message must be a message - property object which has had its payload attribute set to a value that - the queue supports. - """ - self._verify_message(message) - await self._impl.enq_one(message._impl) - - -class DeqOptions(metaclass=BaseMetaClass): - @classmethod - def _from_impl(cls, impl): - options = cls.__new__(cls) - options._impl = impl - return options - - @property - def condition(self) -> str: - """ - This read-write attribute specifies a boolean expression similar to the - where clause of a SQL query. The boolean expression can include - conditions on message properties, user data properties, and PL/SQL or - SQL functions. The default is to have no condition specified. - """ - return self._impl.get_condition() - - @condition.setter - def condition(self, value: str) -> None: - self._impl.set_condition(value) - - @property - def consumername(self) -> str: - """ - This read-write attribute specifies the name of the consumer. Only - messages matching the consumer name will be accessed. If the queue is - not set up for multiple consumers this attribute should not be set. The - default is to have no consumer name specified. - """ - return self._impl.get_consumer_name() - - @consumername.setter - def consumername(self, value: str) -> None: - utils.check_parameter_length("value", value, 128) - self._impl.set_consumer_name(value) - - @property - def correlation(self) -> str: - """ - This read-write attribute specifies the correlation identifier of the - message to be dequeued. Special pattern-matching characters, such as - the percent sign (%) and the underscore (_), can be used. If multiple - messages satisfy the pattern, the order of dequeuing is indeterminate. - The default is to have no correlation specified. - """ - return self._impl.get_correlation() - - @correlation.setter - def correlation(self, value: str) -> None: - utils.check_parameter_length("value", value, 128) - self._impl.set_correlation(value) - - @property - def deliverymode(self) -> int: - """ - This write-only attribute specifies what types of messages should be - dequeued. It should be one of the values - :data:`~oracledb.MSG_PERSISTENT` (default), - :data:`~oracledb.MSG_BUFFERED`, or - :data:`~oracledb.MSG_PERSISTENT_OR_BUFFERED`. - - Note that :data:`~oracledb.MSG_BUFFERED` is not supported for JSON - payloads. - """ - raise AttributeError("deliverymode can only be written") - - @deliverymode.setter - def deliverymode(self, value: int) -> None: - self._impl.set_delivery_mode(value) - - @property - def mode(self) -> int: - """ - This read-write attribute specifies the locking behaviour associated - with the dequeue operation. It should be one of the values - :data:`~oracledb.DEQ_BROWSE`, :data:`~oracledb.DEQ_LOCKED`, - :data:`~oracledb.DEQ_REMOVE` (default), or - :data:`~oracledb.DEQ_REMOVE_NODATA`. - """ - return self._impl.get_mode() - - @mode.setter - def mode(self, value: int) -> None: - self._impl.set_mode(value) - - @property - def msgid(self) -> bytes: - """ - This read-write attribute specifies the identifier of the message to - be dequeued. The default is to have no message identifier specified. - """ - return self._impl.get_message_id() - - @msgid.setter - def msgid(self, value: bytes) -> None: - self._impl.set_message_id(value) - - @property - def navigation(self) -> int: - """ - This read-write attribute specifies the position of the message that is - retrieved. It should be one of the values - :data:`~oracledb.DEQ_FIRST_MSG`, :data:`~oracledb.DEQ_NEXT_MSG` - (default), or :data:`~oracledb.DEQ_NEXT_TRANSACTION`. - """ - return self._impl.get_navigation() - - @navigation.setter - def navigation(self, value: int) -> None: - self._impl.set_navigation(value) - - @property - def transformation(self) -> str: - """ - This read-write attribute specifies the name of the transformation that - must be applied after the message is dequeued from the database but - before it is returned to the calling application. The transformation - must be created using dbms_transform. The default is to have no - transformation specified. - """ - return self._impl.get_transformation() - - @transformation.setter - def transformation(self, value: str) -> None: - utils.check_parameter_length("value", value, 128) - self._impl.set_transformation(value) - - @property - def visibility(self) -> int: - """ - This read-write attribute specifies the transactional behavior of the - dequeue request. It should be one of the values - :data:`~oracledb.DEQ_ON_COMMIT` (default) or - :data:`~oracledb.DEQ_IMMEDIATE`. This attribute is ignored when using - the :data:`~oracledb.DEQ_BROWSE` mode. Note the value of - :attr:`~Connection.autocommit` is always ignored. - """ - return self._impl.get_visibility() - - @visibility.setter - def visibility(self, value: int) -> None: - self._impl.set_visibility(value) - - @property - def wait(self) -> int: - """ - This read-write attribute specifies the time to wait, in seconds, for a - message matching the search criteria to become available for dequeuing. - One of the values :data:`~oracledb.DEQ_NO_WAIT` or - :data:`~oracledb.DEQ_WAIT_FOREVER` can also be used. The default is - :data:`~oracledb.DEQ_WAIT_FOREVER`. - """ - return self._impl.get_wait() - - @wait.setter - def wait(self, value: int) -> None: - self._impl.set_wait(value) - - -class EnqOptions(metaclass=BaseMetaClass): - @classmethod - def _from_impl(cls, impl): - options = cls.__new__(cls) - options._impl = impl - return options - - @property - def deliverymode(self) -> int: - """ - This write-only attribute specifies what type of messages should be - enqueued. It should be one of the values - :data:`~oracledb.MSG_PERSISTENT` (default) or - :data:`~oracledb.MSG_BUFFERED`. - - Note that :data:`~oracledb.MSG_BUFFERED` is not supported for JSON - payloads. - """ - raise AttributeError("deliverymode can only be written") - - @deliverymode.setter - def deliverymode(self, value: int) -> None: - self._impl.set_delivery_mode(value) - - @property - def transformation(self) -> str: - """ - This read-write attribute specifies the name of the transformation that - must be applied before the message is enqueued into the database. The - transformation must be created using dbms_transform. The default is to - have no transformation specified. - """ - return self._impl.get_transformation() - - @transformation.setter - def transformation(self, value: str) -> None: - utils.check_parameter_length("value", value, 128) - self._impl.set_transformation(value) - - @property - def visibility(self) -> int: - """ - This read-write attribute specifies the transactional behavior of the - enqueue request. It should be one of the values - :data:`~oracledb.ENQ_ON_COMMIT` (default) or - :data:`~oracledb.ENQ_IMMEDIATE`. Note the value of - :attr:`~Connection.autocommit` is ignored. - """ - return self._impl.get_visibility() - - @visibility.setter - def visibility(self, value: int) -> None: - self._impl.set_visibility(value) - - -class MessageProperties(metaclass=BaseMetaClass): - _recipients = [] - - @classmethod - def _from_impl(cls, impl): - props = cls.__new__(cls) - props._impl = impl - return props - - @property - def attempts(self) -> int: - """ - This read-only attribute specifies the number of attempts that have - been made to dequeue the message. - """ - return self._impl.get_num_attempts() - - @property - def correlation(self) -> str: - """ - This read-write attribute specifies the correlation used when the - message was enqueued. - """ - return self._impl.get_correlation() - - @correlation.setter - def correlation(self, value: str) -> None: - utils.check_parameter_length("value", value, 128) - self._impl.set_correlation(value) - - @property - def delay(self) -> int: - """ - This read-write attribute specifies the number of seconds to delay an - enqueued message. Any integer is acceptable but the constant - :data:`~oracledb.MSG_NO_DELAY` can also be used indicating that the - message is available for immediate dequeuing. - """ - return self._impl.get_delay() - - @delay.setter - def delay(self, value: int) -> None: - self._impl.set_delay(value) - - @property - def deliverymode(self) -> int: - """ - This read-only attribute specifies the type of message that was - dequeued. It will be one of the values - :data:`~oracledb.MSG_PERSISTENT` or - :data:`~oracledb.MSG_BUFFERED`. - """ - return self._impl.get_delivery_mode() - - @property - def enqtime(self) -> datetime.datetime: - """ - This read-only attribute specifies the time that the message was - enqueued. - """ - return self._impl.get_enq_time() - - @property - def exceptionq(self) -> str: - """ - This read-write attribute specifies the name of the queue to which the - message is moved if it cannot be processed successfully. Messages are - moved if the number of unsuccessful dequeue attempts has exceeded the - maximum number of retries or if the message has expired. All messages - in the exception queue are in the :data:`~oracledb.MSG_EXPIRED` state. - The default value is the name of the exception queue associated with - the queue table. - """ - return self._impl.get_exception_queue() - - @exceptionq.setter - def exceptionq(self, value: str) -> None: - utils.check_parameter_length("value", value, 128) - self._impl.set_exception_queue(value) - - @property - def expiration(self) -> int: - """ - This read-write attribute specifies, in seconds, how long the message - is available for dequeuing. This attribute is an offset from the delay - attribute. Expiration processing requires the queue monitor to be - running. Any integer is accepted but the constant - :data:`~oracledb.MSG_NO_EXPIRATION` can also be used indicating that - the message never expires. - """ - return self._impl.get_expiration() - - @expiration.setter - def expiration(self, value: int) -> None: - self._impl.set_expiration(value) - - @property - def msgid(self) -> bytes: - """ - This read-only attribute specifies the id of the message in the last - queue that enqueued or dequeued this message. If the message has never - been dequeued or enqueued, the value will be `None`. - """ - return self._impl.get_message_id() - - @property - def payload(self) -> Union[bytes, DbObject]: - """ - This read-write attribute specifies the payload that will be enqueued - or the payload that was dequeued when using a queue. When enqueuing, - the value is checked to ensure that it conforms to the type expected - by that queue. For RAW queues, the value can be a bytes object or a - string. If the value is a string it will be converted to bytes in the - encoding UTF-8. - """ - return self._impl.payload - - @payload.setter - def payload(self, value: Any) -> None: - if isinstance(value, DbObject): - self._impl.set_payload_object(value._impl) - elif not isinstance(value, (str, bytes)): - self._impl.set_payload_json(value) - else: - if isinstance(value, str): - value_bytes = value.encode() - elif isinstance(value, bytes): - value_bytes = value - self._impl.set_payload_bytes(value_bytes) - self._impl.payload = value - - @property - def priority(self) -> int: - """ - This read-write attribute specifies the priority of the message. A - smaller number indicates a higher priority. The priority can be any - integer, including negative numbers. The default value is 0. - """ - return self._impl.get_priority() - - @priority.setter - def priority(self, value: int) -> None: - self._impl.set_priority(value) - - @property - def recipients(self) -> list[str]: - """ - This read-write attribute specifies a list of recipient names that can - be associated with a message at the time a message is enqueued. This - allows a limited set of recipients to dequeue each message. The - recipient list associated with the message overrides the queue - subscriber list, if there is one. The recipient names need not be in - the subscriber list but can be, if desired. - - To dequeue a message, the consumername attribute can be set to one of - the recipient names. The original message recipient list is not - available on dequeued messages. All recipients have to dequeue a - message before it gets removed from the queue. - - Subscribing to a queue is like subscribing to a magazine: each - subscriber can dequeue all the messages placed into a specific queue, - just as each magazine subscriber has access to all its articles. Being - a recipient, however, is like getting a letter: each recipient is a - designated target of a particular message. - """ - return self._recipients - - @recipients.setter - def recipients(self, value: list) -> None: - if value is not None: - for recipient in value: - utils.check_parameter_length("value", recipient, 120) - self._impl.set_recipients(value) - self._recipients = value - - @property - def state(self) -> int: - """ - This read-only attribute specifies the state of the message at the time - of the dequeue. It will be one of the values - :data:`~oracledb.MSG_WAITING`, :data:`~oracledb.MSG_READY`, - :data:`~oracledb.MSG_PROCESSED`, or :data:`~oracledb.MSG_EXPIRED`. - """ - return self._impl.get_state() diff --git a/.venv/lib/python3.9/site-packages/oracledb/arrow_array.py b/.venv/lib/python3.9/site-packages/oracledb/arrow_array.py deleted file mode 100644 index 5ecb1c8..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/arrow_array.py +++ /dev/null @@ -1,112 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# arrow_array.py -# -# Implement an ArrowArray that is used for efficiently transferring Arrow -# array data to other data frame libraries. -# ----------------------------------------------------------------------------- - -from .arrow_impl import ArrowArrayImpl -from .base import BaseMetaClass - -from . import errors - - -class ArrowArray(metaclass=BaseMetaClass): - _impl = None - - def __init__(self): - errors._raise_err(errors.ERR_INTERNAL_CREATION_REQUIRED) - - def __len__(self): - return self.num_rows - - def __repr__(self): - return ( - f"ArrowArray(name={self.name}, " - f"len={self.num_rows}, " - f"type={self.dtype})" - ) - - def __str__(self): - return self.__repr__() - - @classmethod - def _from_arrow(cls, obj): - array = cls.__new__(cls) - array._impl = ArrowArrayImpl.from_arrow_array(obj) - return array - - @classmethod - def _from_impl(cls, impl): - array = cls.__new__(cls) - array._impl = impl - return array - - def __arrow_c_array__(self, requested_schema=None): - """ - Returns a tuple containing an ArrowSchema and ArrowArray PyCapsules. - """ - if requested_schema is not None: - raise NotImplementedError("requested_schema") - return ( - self._impl.get_schema_capsule(), - self._impl.get_array_capsule(), - ) - - def __arrow_c_schema__(self): - """ - Returns an ArrowSchema PyCapsule. - """ - return self._impl.get_schema_capsule() - - @property - def dtype(self) -> str: - """ - Returns the data type associated with the array. - """ - return self._impl.get_data_type() - - @property - def name(self) -> str: - """ - Returns the name associated with the array. - """ - return self._impl.get_name() - - @property - def null_count(self) -> int: - """ - Returns the number of rows that contain null values. - """ - return self._impl.get_null_count() - - @property - def num_rows(self) -> int: - """ - Returns the number of rows in the array. - """ - return self._impl.get_num_rows() diff --git a/.venv/lib/python3.9/site-packages/oracledb/arrow_impl.cpython-39-x86_64-linux-gnu.so b/.venv/lib/python3.9/site-packages/oracledb/arrow_impl.cpython-39-x86_64-linux-gnu.so deleted file mode 100755 index caf7fc3ee3f55223358660f65ddad78f72a6f7bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272536 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

  • hJ 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" diff --git a/.venv/lib/python3.9/site-packages/oracledb/base_impl.cpython-39-x86_64-linux-gnu.so b/.venv/lib/python3.9/site-packages/oracledb/base_impl.cpython-39-x86_64-linux-gnu.so deleted file mode 100755 index be2511a6d1bffe8d2ff3c6533ff004b067a626cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2266936 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

    GGo|0PNqi*R?UCJPMKDw_o(P$X}1@FZiJ-p7+1s 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

    ?#G^1my-@}q2U$p$9@`l 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

    ;_fL{9EbpzH$@}w2*}S|T_$XwT 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�^Cc5su`_JqD+3V@%va(jOQnFXyt2!r zk+V<__(~?4_ma&AMKDX9uT)^b#8-}PL)gSu_A_kaD|Eei^hTYp{4)uBg^sF@d|U99 zZKxrAJ}7x0%qwJx4_}$f`x;-VkNe;&yB7!GE4h45<16Q1Kss~rRN48;>z_i6rQj%=fd}YTD zp$@I7)%P=h`!fW%EPQ1uzN-S9E4rWgb~eafzViM7ojFti4*K$yYbaxY`5+6W)cDH& zkA()$8Ogi~wosI>%;sa>TA76P>rg`fQSu01FoyJ!(Xnf`L`Rc~{m4?kq z$XEKJnGMcYUW5<^Uy05AH;u2%0)+YUmEnvD!dDJ`;Kx@ceCW$p?m$DW-dMi$e5K~b z;`qt~$im<&voZBl{Cv=d5ZlXFc5X4X&fT}lW*I1*^M~LoH=!!a%2zUf@$!}GeMK8O z{s(`)(qIE{#Kc#k7`{}#vVT2ZGVzs744e4M5`+Wu71so*6!4W*n@t*N`!h7+j@+XW zx#GuH(wU{sSK2dR;w!BfHu04v44e2$k@1x$#_HoM+gyULG}z|lD@&h+d9|D8!&kz1 zU*jv2aUXo;E;g4gx-WW$Y#hVd5)UY@P7=IM@T{gMOwoSB9_LK}m{?uY^+i%feUA;-IjA zeC3t*P-HK2DA=L%mB)aCzI^3rU{fHz(sM1O)c8shCg--M?$ndn2)0m^uT=ESHOt6# zKgftbU)eKGr1{cDSu2TDipE#+<*i-D`@N8zA75Fx2G0lMD@&SOoUgQh3wd8rzEb_^ zKzwC&?f)!a8TXEfue5#lQu#{UaW7xVZd5|PG9PVCaK5q(5*d7D!yEr5zES~@n8#NJqoG#&;~3e}?q}|`vN*ny^rVTeRIF7JzVg=?IGr&cbmv-A z>pcA@gRiXLE%?gwsLHbPmHhQyzVdx9(S{!U#-FbYS^*p}@s$jQFO{z};Y%jIQjcL1 zU#W?3V7~IpXsHzNmFw1+H1a;w1HQ8T38|Rk`O3`Y$WrGklNd1ZmC+2F_==t3i}96j z-q86`Gh}TY0T%e@s;{arwg7cJ72k- zYAgj`d409!cs_jP$z@Pa+4)LcCL{PtOV)ma=tnTf488E#ob$ ztSiG;22+wEe5K=32yj{WN?V*=9+0oB%0-dAd?kL9PBgv%4*K$y?|@B#_{vxLkW%9- zb|&YxPB4(Y&Su1#dFKJ!71WSYxY%38^#QZ&9&OWtZ|WH$@s#E-8; zP`qG#rRE(M=PQ#&qC8iWuWZ;9h_76K^?#PHsBRNqd4H6NuMF9nrmbJek9)(k-nPp4 zkGH18#w4+>$HI$t@Ohk%K%>}S}-S2i(h;wyB$dGtnoK4_jB ze1(px4jLr*%8F%PzH<`Rx~5Z+mnY1ihksC8<*&zS1Z3Kg(B|IZb?}00Cn@Xw8sF>|*AA<_?jg z@Ff=gd;E9h4aPUIwf#Yh4tV)W-5W~CSGu8@4bE43LkNSfJfHM$;wzH?VZMCjdBz0c zE4%D|eB}*?FJHMH4Yg`fOV3v-%q@t1Uzvq) zV7~J5t5PZ8EA!@=G!j1_8gWNn1+h!USK2X4ov*ZFz{FRYFl^#0^%yqs6}sL$dZW%) zHafsp=&0(7{(`SW<$3wa*hgSqi4%SJ$|=;K&R4Qa{D~Z@qGA7#c!dWvh$S%vyqJ8E3r0_{#N^q{#Tn@mUbyvhbCHy+QcOvuu#P%wfkOov)+-2YvZUXJAtxzVa}o z)c8t0Cg-*`U#usy7;K>^UpY3^C)cNpTsMJ?_|FHeJ{r^TGJatZOgMS6aPsMKq7;$+~nY)ga4NA#T|w5`|_1Vj0wV58V>g3D?1Tk9$)E$ zhFa~pr}TWK{a3~Dl?BMc7+*Ptsi)%k%I;U-bjEy8omr;V`GeWASq2^~%olv+f2hi` z@|D?hynN-E2SppYeVjjE$(R8gG4Yiy3|}f=smGU0e5EGCCcaVu;lO-l<;zkj;44>s zW73EM^?k(DieC!k@21^Er*LY{7G?4NsMQeC0Z-u@rpem9I6& z^WiHUra?Vr=PTh%M(~viywdr~iK%{kWy?$mVd5*_vUPG>)4rB1V{KN}mEkLWC`l2% zk_>?_4_}Gj7KE?Ndl5zU@|8Qj*NMh^z(HTW@;R_65MTM|OGv5lm4QsoZGFQ?rUuAN zQNGgJH`j0H>bcgFx%!N++$huh?kiaj9l@N*-jIRt1^YWF3 zgK&tFJlENE7IvGjJ5{)W0fSg^JRS~%(hrLxWV;*g1$)LhNNKLUu_tWWX=*qD z@$^wL7@TXD^jOm4xGzpXY=|V7*syyZv^PJ1rfDp)NpZK1!J)n9${9x>4q>c4zdQxX ztg1a~e1pB9S+2No4gO*uPA;^9L!=t$dE<=2?C4Y+IdwRfns3G@49<)QNwkbvipvJL#3)Q+m}+rWWDfBO$&7NGMAB*v zGytxpLOBsaputg6W}Me2kBLup;mC5F7rUu?NNd-mTvlIPD;#XT7q8=pz|#ZCpf(|p zWIuqHxpoIbXE#+3@5dZG2b&`Gh|GPG?*XRiJ@fKLhPaH(dXKqq%UXjG2o zqEYdYS)RkKz-di2%d?4-?B{T@_{}_-EDd*)=8JTw$*U3P>A@4f^z-keCGwm`KTAxG z*3A;fjo}bD<2-n+niDN^a2g|38p(`~O$HWJ#g+b?dthQ~*FGLI_61rBVJ5Uln|-hi zwSES+(q?0>6q4?!7;!0>6kt}>1CpWvponIKW=njv7a=|{5I(XVZgxw~F&*VPM-{r)z-j0NyN4p6ScO_nw#p z#r~}YCU*nn6MdtswVvM*sW#ChaH9QY;cNC6)i`yEun#qp)v^G$OlRXUzoZT+uFaw; zJ28SSPefL~*b{~CHm0t4;QNluwn(f~bPcpD`{bebw&ksCvMO5v;X}(aBUdXlMy=># z<<*s^3h5s>#8BeV5_wMU9py6b2GkjGnms6?r`cdC)>SL3hs16y%xxyKF0kw8hsN$u zdw)VcCgkmi_L4#$!->N{FHLHT(+-h*CAT=GKgDwMN!f5s9U$bwlgsTBS$zBhe!(ZVb?u(iEvY+-*_zpf-X_a) zW`$3AcucOdKU_L?N5OJ0KHKa#Y5Y%)LGDmBCB`MPLQe1wb|k|E=C}h-#2!kq-x-4vFQ&wT)2zZ3J^U)#gFN{a7TwIHN`p@7 zk<@cZs%xvNet4{qI&$tr%4x2Xc@dDpvk`Ci&gFUYD{$Yl3HQYL#d~b7iZSYJ#Mz)| zT9@+^g19?!;u;u8Ro1aPVa>U)MFM%@vYZFvP|nKUa^@pimU9FWL;H_& z;z24C{#-6SOL|o8{-@CNFB4ugh1^Y45V;Tx#OqHpdCTx8!^#A|q?J7^@59O}!OEH% zR%ZB9s_Up{5p{Z(!JlC7puN#}UK;%XVf4+Bk}!G~954>%KB}HbyFE~$yv;oTZhANI z!_h)Szkt)6FTkmUB(CzQ?iYn2%k#72GGihv?yh_=?qFs=o07`Y%<+nIrOjP2)@Dgr zL}#&oFMQj%dQ^KO7wzt!~FZGNC~zx4e1|SH!>tKx6bn?uN*oe|SPOn*IoJ ztSQo~%=FmxhW%AQqAWfW?I|=6gX<14VR_L^`39lUH8M~g0UtV&7?RXkwEynV!C)In zoqF3W&#g%6CWga-=+u|&M@U4}ncv5-Fq60UiRLM_u?X@jZqb-gv z_>dC%eJ@eFug;PHw0+#MLN#lGW^-@i84qch;olEHEcPf{QyQGc`m4>|fi^9Md`^DO zvNzq$c`N;?j%ww7CkvAvPwFb5`zlIpKU*#fhl;}lLZDw!4pF)~F`jGLTpIX~vSnTk z`J+Uq+tCX*;i{u3a@@eM%y3(L-RcNfoC9UuoLd0UQo^n8<0sArLNprjsY?Aih!CSz z`w>pDSH!pyFc~GVjxVI!|AGFH7(t<)&PajX@lfJYp> zP(l~{kMkk@+kI715c>#K6!$@Xk9ajys`Z zER}FT-8mGE(@>FC4(>otd(;fR%yC(^JMPG+$tWtKZ$jH5>**S!o}4$bJjk#q->D%A zBGXY4R{l*>iF|b&f2?-=s8{2ZY8ZwfcijMXp57vt*61fSf%;NhOFhpZn)xcB<DcRsul`sU#VNjS;W`e;_d4R<- z8gRrsR5y8trFLj%j4%qgRKuS}a`wC65c!$4(p={~%^(izq{C>m6^s9my)OZeqS(R> zOCSh1L5xNL4H7hfXre?DLo|^DCo+);f`GCpf(VEx6Gg)k%nUNNqbRuR6)&hLE-1)l z4PjqYL~ub-K~bqDASeh3Lf-$M>YnKd1W^3^?z`{h`(V1NYdLl5)TzHtRiD!M+s)_i z?fGe|N<-L$b48(>_?KZ~cWDQPJk2#0ee=M&D031bY`l`yhdQ9Q(_R6F%JAfi_TWUv z-g*=kCIbKORPJFU(zaJD!6e7n_nttlv#h{x9f$+CmkWEvsfbi1PwP?PkJ6K3-(JGq zgHNM#F*PkE%|Buyt33a}I2rx%-Ud;!0#4xgmgQkQnt@3JvkT=rJiE9aeU2}JH9wab z^U<37^w+lg{^HT zgFu&mq)?k#I=?|w$l`H7+7h;SfVa?>LAK9`9wM#ctdX0H;1{RDj1j=ZWklar3hCz< z?2HnPxPAzh9DuRfCxu~Hv7==``1VSjT>kz<0Vs$GEOzSWk^=x$A^ptdGbT&S=|~9- zzEu4i%xRMbXpuiu;)&y5cOYy`9HIA0e&a8c#& zz$esJ1GSk~B4CXpqj@%{Gkc0c$YQ@H5U(NS>kBQtR`m>%e~efQM~`E;rmf$kahTz`b&n+=AXE&R2m)HSoCE?Ot6kLj zuxCokdS`c&NuDrJBys^CjOe(Vv{*xqf0!t8T=x}0PJNyVGi@6N+CX~xd>Ui1doQzv z6jJ6LgvRcH{l8S8LojnvD+qDB`!#a9-lE%x&So7(>S?o_cCKZn7o|AxL@@4k7FDMv zn~>QBMN!TFHXLf6Qz7S*agRcO8Jh274iuxYg%_o)gXPweMp>+YrammFt}dt^X?lmH z+z!T#Iq)EIc^j1+s8QGgG>v+nG==iF21zNaB8og4Q6<~#{x?!R$Pr3^C_Hau-$)kPnUh^(xzXh|dL}tCzlVCQ z%sasw)|{m?msy!>Fmsk`tXpSB(KV_`W%pT>x^?Dv7A40x5`LN!@5_O zK#WW4vGKvU!;&m>`UMz+tqNswi%BVS;^NSHA_e$2C`bwn@Ro| z`G#|Z&^$g1c7#M zf3=-I!2ENp{7_Qg%@CEN?!c}W+jkG&KW3MYp&X@pIm#a$E`Q&{j`lrZm*1WFyW9Dp zN21g@j{H}J^Z&=0|5`hLALc*H&d-Y{)wgU&V1>wT1!UA}-+hw*V$I*PBl3TVRMI~@ zXr%t-$iFb0|8i&kZAd8m75bmG@>_D5e}l;7L)_&Ird~AOmdhVGTlZy&T7H}Bbh~H+ z2&UEwrCY#s8B(SX^`It&kZ=7&N{3FW{USvMoRj zi*4bo#G{>uo%YH9?0MMX*K=7@2rCCpbF}J2+})ePJ?3EiCEwK0-|q~ld&u#{BJoA zyCnd^vC&s@5F10>7*X#sri$~hO$sz?UA}gZIa>Vta1lwm#>M~tnv})%&-g(%(rVcyH4{J{3JnWi|7<3#BVsNQ9j@X%sAFw(Y z5M9Lk2&X?QXJxKOR~~UzMz4z^&+>3zF+{)BPVPfuW}RZ-tPE8@u=1h=IitDyPJrA* z(H1#~hyLnT0{y||hP8fhGyG@I!!~3l$9dQq3_H%l?tYMhxzz2pAy8<4d(L&5DOfNc z80+9j5!iz!e1EQHjCtJq2*;y}(0SMr1{~*MhcWy)8foE{z6^gA3eVxto6FG%j->4H z1fx&O!+BT^R29<}Vib()_Aq#9-Je_tqEzuWdtldA-e$oL+T;|n z@h_Z*9XQq+cw933N1%S%yK=^WJtu!2_E0g3k@K*-`DCAm{Rx4H?{}8@K?FfdE!J;D zzrxumn3@TBp!KE}JL{i04|@|SIpREQDyip`ixVfnoiKfuRm(Pd#urxKx6$2qWBFPH z8fU{s?_RV8X9<^-FRT>d-nX%Q8o@!Ux2iY~`$h*eIeZ?r(W7D~!fHAIJs5c&_G#!Q zk}=q_ihd#+G&|K}qd}#09=0!w3#N_;6;mCk3_I< z%TR<`MWwABv5X zby99>J4EFB_qu$)B1|i?UU^J(u&vA@THdf(I1|G~-SA&EXLv*=ADmz}sGE?H^EP$U ze^^CeDE3YUfL*!h#X(8#0Dk#$6X>#bNA&u5DGo|mXPx9|h^*7l^0Uys(7FL_igo!f zqy(iGCF9hleoAurQ6g*-)-KUH+yd2SQ$V1m&J5WBl9+c-fgI=)Yr=>-Si;FJv&&hS50d(G2`m=OZ_pL8n=k-0rff8qBa84! zuUEgtfVW%o1d{5#CLX5R=?V0SS3@4)`{meg;u zu^*;E9)9Kdl;~CMp(+4^ct~?2kk5qT`rLy(JW8}mCn&9V#uET>N<~>J4@ja%ck=_% zCHn(Y(W>&Xmc60mevGGaJfr0Dt)uBbum%-ZJSY_(es5oe`2;iC`{%?vQ&FI$HvCUu zzENKc*AYhaH=r#aXWP4ZjO6_EpS`VR*RTs(mKPepl3p z8N)RgH}F3Gqz=N58k@;ov*na`e`C<94QfxK66~v0LwYr(t)w8Yib)swC2Vr}-j$#X z>NUb}*q2x%w_zc_nTs|_ecSGp`pWU6&T!N>k@dMyhS?nTm2#>v8{tXIE9>$0o+s~z zqCmE90~l$ZAsm1{%De^TtC|*lZ`%86Qcgc85l1-}>2f-Xp4q3yvz)7~KnVinPpkQ& z@0Oam(vp2@Fr!!I8C`MeVBM%QQp)l(1}~3y`Le-IIUbq5xNv)J3bgG3*P}g=se|D? zj3ZjVxqLjz0rt!0h`J4~5jgMEVLl%B$SYY<^7tCQfpUPQ`}#*HJFtT9zGb zhkg8m)k7b%$T`!JCDjpG!;5vJqd_d%BX-98-$ikX&8f0ufh9RoMhb$!)i7x;3h%-p1dc01PdJWg79JuK&lBbJ}m{DJeTSAe4xM(+@q zuM7RDIzth1x)*!I8yEIaDhPM)X#LD}@ zOUoY7#Rc)&brU%GwKb36Z~@<2_J~xxr~fmin2QwH{SEN7-hjzGRbkl|*rwjbd;F&C zud_M*Sh0uy6|CEP!>jsBrYe;%!b~Ssgu*$-=cp zhmsG|wMN({?$Tw}_Uc|)OQu-%i5v8*J45+*-%HReGG*H*3P@gM`-Hup()qJvAnrL9yVOUobtNES|}^CyZyR#mF2x@P^8G zX8#?~D-JxP82+<(W(G4k@XTa}9e8E}!bit5-BUGFfM=e&)4`EOcY!0pxX$Rw6T>sf ztkT9a%@}atnT8BI@JtPckA-JCq}h08>Un}^_M?YvJoA1nh*v`A2t2ca?=3v@B;Eth z9PSjxGjsUb!ZWirX*}~S-bdh>o-B7IV^12-Jl6(n{R?>Jz+h`2M&OxGZwI?h9?t|> zjNq9PKG}HYUIZfWOcxU2z%!|rqA|hLk8tG^_gkJCfXx34o+%$B?5Koimh}e#e+!}9 zsMg5JX72c>8rvsB_AFe&opcaLjO@b z^8>*2k$A><=YJN@bi3GrXX+;ZSv-^dSQyV_^5gImIUh0t({9yxW~@+j6g=};lm9k6 zGXsMm63>ibOci)$N9#&>=7ozQ@k}dB?=a{{F-ma%@Xzk+r1kW@@*Pbk%@!k=}Gq+Tr*d6M*4wdmt(k;*{4m=aj@Snvq zTlyfA1JA5y*nwx3AbfN@6Sz<_1$bulZ4Qof=nswr<6gX5Gv@gAnLe!2#xtE6aNwDC z3_I}5r3@bn&lFv3f5!t0Be!m`hp=wKVq zbp1l(nN#sT0?#Z!KD9sZ@4z#wTY;^A0nfC&%^HXic&27=u1i_*?Ky`NLJ zILHPfdC-fIc;-gvs-xkVj-=AUGtF2W{J##ii&+dbaU`DElN3>Fzfi5~fsHETnU9$m z{$Fp^y^_o>weZYL{pzDo{?4eb5}uiUGtyUuXJ#xpHlAtM6m|cjcqSQ(tt0WwyjTBc z@yxjM9e5_=f4W=fwho>_#C_km|tUtJl`bn6Da;=nU*hW{*{X~;|tJX3>V z2cFq|BL(%S=Uc&0DI$HFty z&bRSQOas9)-Fk=dOyO_99mUxZcqWbSEj-f&@4@R{Okv@fv-sMw&m3N(@ywNYAAx6@ zu-qiZp0s`DzkTG&ziC>h`sP$o0H`sA&4tu=J55%!sibEV9uyX#)*L#9}G z<_G=iP$+*1s;h)&Hg`t)s_@K~xyQyc!{Sl*KZ@#0u+Nc`O{3H||1<$0``)|WD4WXhU@yvG^9#!F){Kl2=%pZtw z;u!-Ixf)&k*YV7-g5%+tPkyc!-fuen`4ho2hZ|uKhVV?=8yvIuf-ZX6hR)gCPw>nb zbnVIFnNM#F#z%$JdK02N;&(=%< zo@t3IjzV8JO#^#?X9n&Nm3ji_XUeWam9~9m1_KT}Gnruro|(Y#vGB~sCN`c)ixE6C zu4@?29NG@tF+D8;&kW#u3(tIm_u%!TOkv@fJifN@%u{s!hVwH+@IC_1yuxz3G4`bK zOiQx$FW{MnJ6QuU0?*u*4|bhAo@v5j1kW_&lZ|I;ArOIQe!Lz;IPlCe&R)3xxRaha z&u8cTGkB(mlpKL)x_Cgq--2g4!1FK4FaMYGBuht}WLbSCnjFS689i)d@jCQkB%b*X zbk))D%sU-GrG;loSRC#@4i$4Az|N6)=7z{xmvy&my;Rp4foCq(Wv(dDy)vFmvGC04 z`c>;tbu$27D&d(}l2;X;Y53l;@yuiw+VhX%nQZfDc&5>l|Fd{To$kOh&&T~)Jk!D( z#xozib%J=N9!0sz^D}3Fh@+kd?pNc#4bQZLN{hrZ4H#2}eP(3CN_gf%@ZO1M=3ydN z@7(v-@yz6Fj)!M%`N@H2aH;1fGc_5e_`_8)vUzYA{dFoL$*@{|ug)<`#BXQ?Y#> z*xwEW{4IEUjjBn;+d_`RY$`!o2~|x7M_{G;)1CkhKlI~ zG;t)J@kQ49TY+6`UtMbip6RX2+;@%cl`=BL!ZSJgRnJg$Tdq9<&t#Fjs_;y^*N=^7 z*4ILN{!u*h$>yWsnGTQq&*GW*dJa7E0Rn&SJaFEiFrGPtucc4OKGT+>TqT}qFBBcc zKJ(;(z2f5ezvug=VNhw2cqW@MRp6PoPN{@vZmt`NXUeYwp4l|yuj85ZR~`?~{PK+h z&v>!5b$mS23uK4!%nMgLX746BAv}|HgW#F(fB;Sw&$MYD#xr+-Ud*vQk}BgFl?lD# zz%v^d{ zHlFE^Km?x2B@qrh)4Vns6HHx@rDx8u?7V*l&uqL(*ii}3ynh7<_*?MIwA-t|Gc7q` zhw;qwZW~$DfnJQnGiQ>5^Q{t+tXL7<5v@ytvn3)k8_lzalf3TlnO zGmq&qFSttg$}U!C;Tf-f6%6HXi0UfYXNIODeN}j77{2yBmcO_fhh6_Lp1Ebi(eO-B z$^R^#ao2F*nS%)YIXrXstzkUV`h^q3GlMbhR*h%w6^f36XO{i)--c%$HOyYK6BuiDcIUNKAw3LWQXz0hv|;lJ3k|Y zXNGnVJktPOd$M@uw#+b|`Q=lYV;?@ZGM zT&`!%S(hU7KZ9rLl9D6#n|@3I0e=gg+1RTJJk#S4njA(JA6#YQnRMvINIY{5bk))D z%vGe)!ZQt7Trl;*EW4QZfF_Q_Ge7(hQEQh_txEt_D&v`jOdL$T@iN^j3G7k}&rH#; z7KHM*Lv@w#%%o(buZ(Ao^sf%DM57Z_2?~cmj5`RA2_^gCB&L&i35hmtgc~32Kdj(9 z`VU(SPdjj@n1O(}F4@MgZ$THTE3l?Pnbr8nop4JG{riw87MU_@dXO;*Y9RUi(4v(!iol)OM0 zhm!AgBzDXF2zXsAj>~i56dxIq;JyG%!R1V7?!O=BeLT2uz!UVI4o`VCaXBK~v(a0J z5j_$wd4XgW;u0hdw<5XKWvIqu)J*iilTd6PMvGjN#QTkKGtcAVA|)#g7yd+pVW4C* zVmyIGx|RTLWW}9~tO))QJap9#|CsQ=la#VbyvrVJPO zex$$mBP$&GuR?^l6LU-Xx$vupWn(mb^eM5hvbbkcWE{K`sLd~$%-Yd-oEWj zA&qLq|B?57;Gb@hR|t$(8zI}43qZf09!PlKNgY-?29=JV=OtZm1bl5h?ewiL>sTJg z%QtqEzb*dsx*?%l=`8+s;QyatUMGz(h5&Yt@A9ADUvFkjJYQC|+p$J{16OB4jIx z?=9KleUhNi+$?O!f>>Tu%{6O7;RNQ~1gS(%8{`KPQE=#)(X1!FkBUJrry4aI$;=tQ z+x?-YGR)h&t^Rt3;otOos(3vj?-3!x{S)HG*Y>|xItiTj0J$(!m!T;v3uX^zkC``&10`PqX^n$o%dpFftgo`fUEB zet;kK(+;`5iR#C{4;jP$CS`1ZzO5F&)IoGO)Q!12T>jJ~l>eILAIiuagYwm<+oi4~luH$e6%lh$Qg`_zZfe&jEPoVOwFYLt@v#7O2MkSzWfW01dmi}pK(`)-9#doHl} z_n7V{wFMF82Vk=0hb-{3ngl^AEk^%{vilM5Ofn}w@Uw6Q1GYc>K|+3fpUVVTE>}U? z^;D?wEb>0hCk&|;e&PE)X9?ej;YSStmqd5t`iTqS{=Jmi0o=YnOox&Aiw`M%aBGQ_ z<)2#q2X#B&MmkF5`KSq9+Oa(@(9sGev+fG$l_3qVUYV>5v-pX7q){Fce-$ruY{ZZH zNtaIag8B8CLrw0f>Y2gxOc5E zmSVJzmqGIZ*T{-IEw?bjyO=V0Ni-nUDpw0nVwT`4I_6JSm$sw;@B-s904kUN4W!i& zq>jw&gmVq>#0H4ccKN$lt{i7Kx9&^63K3>YHYs!;3i>&_gz|4ne_7W=WN9Sh=XS6x zGs65bqVs+c)V;c+AbIr$+Aj2a@0nK!aWKC{CTIFpI(^G_oTK74w-&Gtztr!xw#3!E zLS(v_4ku245z7eWpG`+u`~yzo)>_LqqmE2 z2~sF;vk+r8MPPjC7?Q{<;kDeO{bQaG`MUNDk*^N;QDeak+yCc2%K3xLH37LWKkLAZ zkbcTWel-#PERm!9LtEaB=udVDpDwvt+I@ej-R?OTqTMAd5ML6ZjnZz=@jJ0?Fm7F( z(6Jsr>aZ?V{E)5zlQ>t6WX>4LnS(2EBzQiE(e1&s!1;DrGd7CM;GUDJx17_%cFvx#gwzv*t%7L6l6HCdV_nK<);l;HrGo zOX-FB1NssfHZR9iAt)abi;Itc)0m&PyJDu=g9^gZ*nhlzzm?_B+vts@Nt26r5?a=< zfD!ywbDS7`;Ro{%V5m}rh;Raj@&dmJAbU(E&8_Mk2ogF);!MdC*XCyyReuM3IdQ=e z<6coS5rklTUK`^{$8~*|vNR*}22`1s{=3W94BUu*?Y&xGQ@jXo{^0uNX_b?#@hmW#h4c04Ec*N zTEPMhV;4%Z@B&Wm)z5=iH?a~5BByM(h32%9dB2p^AH7w=#q+4kQ_67hd+e~xJflmJ z+sIFF%{slhJ0m-GSSz=YmvqVL)!Z5FVu#^k*$zqL5D*HN7Jfj+2EHlh6_6q)(ckS5 zx&81Gy2#sYm$-J1{6r=Dq zj6#{`S33LMp^u8AgprH9ZNRBQtZL#0kf8KWyv;m;m00BH_xru4>-XtjxcpCPl>_?o zj83t})v;5t?i<6wZ}fnl=!&Tcg*Eey2jW5b#x|h5|GBc5_pbrDo&fwXS5&MAb$a_Oa-$w_5m#Oryjx|Ef|k(u1Ob_W9b)-~S3YcS+rfC^o+lxSbyW(52@yp2Kaoy^E3 ze96*S-phr{JA8P{{sO|p5=~4CxV!!jXcRitw;01aB<21!%Y*9D0{wU>~-jXo-TwIS(cxx$`hWkJv65x|}7)LIz z0@Zrp7L$D@e%4_ce+jqMz}fow&7@WNmrASjEu;%C!d}M~44rO0pb({u@OY+w_2J6< zr1q;mkx8d^*;kQLR{oi+XM=I+7!alD(pGjwFtg7Bu%mBnDi=h^9k}848V{{x(v0Y{ zK^|QxZ;$8Aj4RaDoMzC9IH4fKA20&EB(uNEKs~J}CZhO*nMthYU@fbj@)bgl@z4fc z{#+GVJ}+uHX8B`S{x^ch?FI}lTu?D)`&tp&%$M@eV}3ZoH)>&4sVQ!r z14Z#_Cj`sBpW;z03gJ}QyA_>c)Nf79vci{0UC2Loz?aBt$~{KDp2liQ^2{I_A=B6% zm`R+|*qdAdSkqXmlrjf@?fGmS7uTH6R`H?oeCG09Qj;ZSr=gQ9vswaTIA6^aQaH*& zh9u5yxYIxu-RB^gEVk!~>1Li>uZ|^=%l9#B!foQoxcWK+4V`l~ng)^L8fXTS?RHOt zxeyC$l#u?D%lDIHfaS#<9Ff@A6Zl09p7;kO{Vq>pa$qsmZlhMpwXkDRlR%PW{O?W7 z!vD7=7WB^{O6kL&8xn_ljG2j(P_V0oW~;}TpEwm^zMhg;EN^Be@=iyOF)?v1!XD#= zL<);1Ff(ze#QPFAOZ+2=O5*1y@-9g?O49yZXD05F_=$;=5YLilCQ^%e0xu*^WsK{t ziHXxC!k0K*NB9!UB;t`o+D=_9rX(idH-}^<>xYSnS^8m0Vu5~`nb-#pt`-v$i{;ms zI3B-l&{-zG^AlI{m%4Efdc)1DNzymFd{a=9#6FLQxlkGvyIhM3V7zOWh6vouTg~<8 zt;leEE*{A}M{6td&xquk8$Cfj*?bFe1rHWCjL9N3fqCRBgkutZXfp(&n#WG_1SYJN zpXYT4m28%f!ESK}X0UXE(_~kJ4)`}L%hjN7L5{0IyFU1@^HBUZxfn_CJ7YYPHkdG7 zeoD&l<4)h{?FQS8D#QGb+1Nvog#^x&(a75yp2lPxSnNi#qQGXF3*~+ovb!E7HUOoB zpD|0<;>WtEvR8I*>Z!aE`0b8z`PvBVglW8drRZZoA4@MEiI3brKqnj%AGHsy58Or< z8y}@0(qlXTe6*MN$b*}~p?v4Hg3@Y#hQ>#yf(qaR+_;=w@dXC2daE&)l7PX>K)H2i zL^{hstFJ$kvuSuZ`&og?K&*K|sQ$2i5Z%D(>kgC|(hmObWl6DB)nLBQ5YY3HCvaOL z2QQYwTsePOwFHL8uO82~B)VGY(HkDmVTrUy)t?{Pl}2=U{Dua!J%06o_5}1e{!8Q6 z)+3e1vDp^vwef-xeaCmMDDxT1J{Rt9e=MeX!KP`j0N{F^WV1aU)Wc^BN-As)=<@Am zLYLGpT4+%DF~q=u(lx&1)igd%qoo}<7=m%XUm_r;(<}(iTNPNQYq_3H^&xk#YSH!~ zH8OedUpdx?7JgB6b@kBYXhdl~-%i6gaJ8tH=<@TjGW8{>a2rMJ{d$SG$(x?~%j?ncigZ=JM__lzA1>*=YIG%zEDRR)L6*wMr z$D0L~Kwkn9&6Vhb;5}GPWwuJH7d5vpE;Rx&JhL4yI4Nd(9P3{ogp%#>VSP<(ML~j? z^tev}U5)L7K?%U36$P;py-T()h9%^s|LpQz2led97?$J;=J3fFl#JUAf8IpA%zeh} z;*kkau0WR<>Pz?u_wTsBp1ayIUeX!mcDc84aF65tn|bND1!!@e>$=a~>Dye7HbE3` zboX<n_L0hW7I#RCVpgZY`e5Q^H2@i)?p0ruwgLQ=7sLT zz;!#dL29S2giHmRu1YO_lYp_DZ!H7`(Grovl6LM};YKo%I$ z&!v+DxiD%pYIXS=ph{fRGtegCaf<|+vc7>9gQ?dlJWmS0h3~DxbJ;$bXi1A~H||s` zZ={VzUrXjiV!d?nEn-?D`fRDc{_g5F3trdte}xEP!5rCCtBs36ej*908*(*63UGrH z+A(gG)PJVjc|!iefLU?~sejCNO~k?r;ziNY64zWyToN`36I{WqoVBb3vA9uMT?gLT zHzD1MVzWyQXS)1?F_^5RT>|VGp~A{Q80_i^o{S=hXQ^x~>)NESY8>a7BmK7^o!jV~ zfYQ!$`8ol+;pu#=_e&O|xXuag^v+46xdh4qBeDDsUI4nJi_Q@Oqbt7VgxGGV%QsPq zDoV!w_BKSid<#fJ;IO)_YnaEYBvJID%SE<&RI?fTJ=4NIiU?tBLr_fFl6{*BbvIN@ zSa4YXxXs96ckS2gIiqMOBns=!ry0t~>?cIjK|yMr@J{c@PZQB98j8)_j3KB#uvkr& z*ZLm1>SPr#gWi})lqP&HRP0n8>g(Mj4nRF>h&Q^hK;n&>NbFGI*k6w5-zh?5J7|-3 z@v!4Z0i9^RS~ADW<8a9q{0>E2wHCJ6Kv1r`L;`$5E;J{l2fFd>rP1Y}c%j3GNo#vi7b>z#KtT z6wFP|3l_Q&ljU~h?#e3LS-oUy?JU=<75G=-cD=LAU2VDQ948|WOz=MIHloa)LJRDC zcg5n?DC``KO67cp>xs6;r>xW3AyP50e?=a@Mb^BMrPcD&e=Pi%eSmA`F|ckqmG@y8 z(ScNvn@$xtMkYEb4a|q!q$5J)<{5+?a+8jRSCX46nZi;DSEG%T8SkwqyR|O+r^9yH zT*sm8j}RecCt?6Q%KpX`DjTC+Wb!xU$P4J<-X7h_vN_UoU9(`_i~gXEQ11=ZaGIw6 zCc6fG|DD#Tkk3JbdDs9Ga`^m8JaX`K$x>U*1#0uoIc=Yz5MIDuHloLG;9?X@dfexO zEVO`P3wW#JR$?sf5;!&RxB+hd!_KXGelrK^3XL^=A7Ow?yC7N1dRC-3w2zP zoEd`$m;Y|G*OK0gQLiU($h^QIhqQB)^3q?3-Ah-9*p=ZloEE#E_X56%iKe%-paxKs zg>v@;o)F~@g2~z}58+wa|728Gy)VbG8(~grW}C=;jby}^mssNq=@J-zT8Al6u`K6t zT~3}+=r)@Qh$|*XN-qb=<|m23e$?k5i;z$<{ME5F!h7K|N#mJPY7Y3vAfolwT@<2G zGIvUzN8vn~up`W;ajb8t6*e-PqCPbf_cKEb%U`hc8R_c7bhwU{beFc*<(sdB@|nGa z&Q1q~&d&Hz7dhzs2FxLyyc5E_OLBouw6A-2$#>v@B^srcl>*_Ge1wCr}N74>CCa3LPnI=x`s84l#sC}BO4eUE>-I-afqtJD= zrmG$4>gAy8YtYqyybLYY`=aKHDuNb;YA`qBHRu8zt9nW~Ep<7qSk4)aa&o~JfRWOx ztOnc=AwQ*gR&=H=-&@k^J0BAqv!~DxBg0%MA4n?9j?_@UZ{!yRJQxNol?3a%$G8n<%WKhK zC=A)XzYHS+D+1XPgNiGk1E%^otWnAe6_2;&t3!N#{btag^P%o1Qv^7Re0v%3ko$G} zMK0FkM}4bPiCi4OfTCP*{xHu)IcbUYsbSh8k4u~8=| zS5JVzLZxCJf#wc?ixs5u0cRqO+i>HAVDv>O2V?RK+!lq3 zL2L}3uswk_&JvU;!ePR}31B}q3)cd=SVxb1a``9FlABxHVho%m+!-{~Y`YgU3}Ur; zq}GUDxlU@yOVL201=v^08%E6*c(0$%wFq2L3j}_Q0;rd#GjI?Avgsyf*bkn8GuPZC zob9$xINKdR%BT4xoUKO!ZfE+HNUxt}g25^4%#qlNMgg@@fO>qjX6*;+8dSuFm~A0_ zAoxs8@H5Gp;Njq!X6kUMKl(NOJ|>aVQQQM(+B|y<2t(`Ij;vU;ZU!nQ{ryN!8lo%7 zXGUr@l;-kHMrUSs&F+#HIFwC$GcP&gag*7_6g%$)Ze!sycyRNWoACQ;WXKD=$Vkg1 z)ib*nFL`_YLU6~Zf9o!AN1s2XoEXjX5FxWUwHj{-vwU3a!z>ZLzK~nQhzMO~`gvc4tR2m*)GwrzR}tqJ{ctFCe?{SQ+55gOf6^Y$szXf(*-WIg=fkZkjZwUK znEHeBAH&0SIHe3$Kj?iUw=qtLxEF24?cZy|&G5C;5)`*qM7~ynmY~a`_f)7)Aotnx z@gAdT5%>hzDFA)g!#+*otSfro0I{V*!7j5Iq9g0sx4}^rFDosdV9jsT8!Ome%zwAY z=;-mYjEcl=NM8)Ob0D2fXp*kw%9l;EIK5sAD$NYtB%n7Xj zHmiQWA0ZT(vqn1P>)J9_)hi@kw zWr=m9!JS@?v!Ep3=p2KU)F|Zj!0e*WcVeryIm);18kh4vMnTNp2d5zijB)YyIDu@A z`+x=W1Zl|u-1pgpAqI2yOFtl-0{7sqYJ+ zq(*MwLK&)5<@y9^)0=Vvo3VYHP1T@rK}lJ4eZ!_X7@Z>fq3&vXDk2kRiQLCRU?Hkl z`?wdG3Epwiy}o_IiReo|5{CZKSWEZ~=nl0LVxGMK#pU97{?>W^FzqY>;BAN(S!Cp9Nj=DiZkk= zi*YaTIYJm_vftT^U|c6wYv^igp<4AW#7ftFQ%|rd#HC`SiBiqb7Rpl|N2+jC&TG1P zUX%AShsNCw^Ii#Rd;n29>qFtpdyO<_t^jwi@Zig!p*3hQ?~|t4`LFK7 zVKB%sK6*RHM<-AEfSAIT_V|_Y!6lcBk7X|ZCTmCxtJsb2nGoP!>#W(1@zI5}fUVav z#b5-~}!)gD6;zt%mHMIL?DjQcPGhfoAr@ zZR}WyU~;+Koxb1Y6?X9IxmV*#Y?#B+Ny60zsmS z^U!=*1BWd!GCMA$*^W}y6dB}9iLW-EJQ>Z0uEs>oQ^w8DktduoF2p*vc@{(dD^PY0 z&QdrhOqXvvV#U{ z>-S2u7vhc3{+lo+`d^7s+tzJ%Z6l<%)HR3@rnG=PiH90_+c}uH7fS|6loJRXuquN^ zQV!GOptI0oKuCLwUq`jDf~=4}xP^YF2pNyM_`V|}aoW}8`wyP9U=+LF`dF;HLA@)*t9<+1pHC0plxyK2%=0 z9MGvv?qy^?zrqz&c$x{X%}{w+s27`wPjQGC(OKt-bj?w=bX^9*05m5dLWYtUeR%h^ z4KzQ;Agu&6+aV8y8S)hdnj&EhrJ3l*;d;jTgx^mY^{)t3N9!1>Yid_F1mOr=TRZ=V z>N2hBmPb~HM!m#ZC^i9I-4n|wkh$pg3rL7IemRava9<<=a)AcHE~X~S0(PnHw)0Vh zbw>CiJPI>9OB_4UpQ@LdW)glw_KB@(Ei{rC8o>z58W?yFN%FAxg7v=;o8?>8^S|$| zSWu3#Aa239o*MY}dLDDhcUx!-Tk00@D;s&3^<|ejheYmEeUR0>UOEzt^d#cc-!|EF z*d)V4^}!r&i>TQR8Xog4t4w0PBIth!?^E#%Z^w#F!oYtFud~Bj)&Bhm*Os=4y!dnR zj?>U4zTj?V*uF%%RwCLu5zY^AshrMtPrqLudLM)Lm@)@;fp`bw`u-@e{Wkolcjkv- z`y8Y)T^6+R^K==zCWunZ-_aDcL=@jL^L>^^G3K#4kw!m`3L`Q4pNY!|35?7?ZUC5n zY@P=5@Lif&jtEr$=?_x$8lRr%tDvj5Tr1pYE>;H4b^pO_nkWPv$mh?oM?#0|%tfx2oG1SSD}43wB^9#OMwj zLGd&)O@3w;j9a`#IIsji>LO_u^ffk82g6R;fBXV21Vk7FKhaWlFJ6G-g+G7-d9C*S zhRP@wD0Ko#Rp-woqnDM>Ld1i*nhv@e535-rua|R1_TPij#JE*BksbUdiYkAY#bc=M z)5Sl7ILpet52Fm{K`=cs@o2mNt=`(gXz!(*XHJz35U38=Kjk%4-6AR#07jSpKX{^O ze2h6Hx1G)Y%cxUBpWH5jN1l$(deXq36E6I#=44qLO_^gswT9llpZ*kl@8jK>8# z$fX`APqjh;nEuT_PyonW@H5_Umh<+qn!r!YNc`eGAc4#0e4Gn{5TTQ0qeQR}52JZ+ z$qQ`f`EQJRo^*!(JA4Lmi%3oC@SV|w7X|M{r3jwQ^ZIA(>u z2!LrHWVr(IFT*nIj0f5O1eCRfYCaax?q%TB0@Ph`9OSmn@rcB(M3rRDm%XU4v+?}pmPnKmT zEYBH-sm0JBv(fIO8e&c1-|Iha}0tli?d^-0pLg$=-&GW|cmSyv2CwOqdXL^?+F;RW`bJQ~>u0(p#UB^r(Xa?7CzJQwpw zQ5hc8smn1XvQ=X1MPHLg#dyO%m+v*U0x>rCX+89vjYu?MGOEf?zb^)O0EBS(G=;|h z)ztvHqrWR@Wq;R2^&eYQKk5NchfieCO2WDKg)gaVJnZ#N>gV)O{d#BkA*A%A4@Ies zm=crA2T;l=E4rOk);K9kM$%L^+LoC9u8XNROP)u*<@^NOW8g${o-qoayYs|Jn$=ES zPbLsrp3${izA-AW3b>T z0W3t1UN|3?lfV?+^LnrGP41opf8%tU-M83t1kL;__5^SY&>iqeuQOQ!d$3GilA}I- z)DyzA0dcC{QX2aui--X};eslO6oU=WB9UT%73zF2-}+vQf@pUGn*`|I0&HAFPM~gk zypl&2s(;FQWe;CA8?X2&-yrMNB%5M10q5DV-~(6Dm%3X-n1++Cz#Hs5y)HNtPbnLn zFn+v7LjLDa8dcUv^rA`Iij7B3w1+4i*0%=5q%1V@h|e)ACN_cPLX7^w%!J2*Hivyl zw8_=Vm7pqwf9645${bWzQ|9YW{W)goev}z;B*D_3YTjT6-r7e4`;iv;iei|Ma9ae&LMsa3EZ;VvJhf{aXbJ=Z?$4)>@w+L zY~U^B$XUzY#a~EYAKpbJq*XMal}uF2V^~ad2KRi7%=vV#0liR$Y@Wb(;j;*NV7~2j zV)SfIX1aX!00j&$F$bV_QLOsVnWYD81yd*2vF(^C#2>-v=a4;nz8s-S*@3e@mH-+kNd(XgfGS6SWVX=z)2D0{Tw51E zs_S%(;F{>9=vP&O(h2km1>2zJ=oG2w5;WDW&I8kObb(VrVDB}?c zaPW1*E{Pk3x?R2=ry(8Y$6|Od0q8)9IH}FNMruipKnT`ez`Byu%PE@FBo#3A(8YO&#dGgEx89_W_ zu-!-l8IdG*C=o{KBqxdF#9|`{v(AeXry*;%X-icRu_Wz>iy^0M|hG>0B@zEguySf2APi+T6h|5ukW3K zL7MIcyYE5CVvZz233nI8c{5`8$LBJ6Vu~pu=G1xAf9jO&R_92MLI4Xe=}AY;hQ5h% z&jE+|R}6uwS%wERcPx%fgsTdhG^qm7Iel#9hooDwC`V|mZRBJ>CU_vYNa_=igj6qP z<0xPtE6FV@f}BJ*-)%-^%7D`1G8xAOI1V5{ecV8v7~3n<&X+>{g9IXB`TmfrofHU> zC0jodj*5q!xnerR1mZSQ+`+CG2(mV6Ag5bL@FmA!OF2MEv*$?aT-5A#8=?$wNR|Fk z@a6$|GXevSxJ&oYIh0!)svSLBb;&kAu^5eGzl_5#{~V=EW)i$AW<35xTi|0QPvC$j zu*Pl79*;=%#Cg!#SK_FFoKndHjWGK{hj2WTjT&eI5f`%v@LPDw>bzc-2!@V8oHdup z&V(DO%OtfE-l9+eyp$F$k_6Yb!5W+m#HUxNGY{$sn3MuN96Uop8?W$ei`%S?V-FZw zl!Ii|{YT6rc8>zPSn8M5So z1t3$T9L=deW-JvnxZ?7ULicd1t3Ps@cO!uPWZ*x9%AbOc@5sFKTRLXAT*(WiZni^e zYetU;v3f=ql6!&V{J>6~(aa^jMHMwz#cQxcfX{0076jgvz)oc{fMp2Uc_FGYuV#*5 z^tuMDoH6#yveIu);mgrqM7o$m&3u4}NVWJ33Y5VnTEe8y3$h!11jC6s@EyAsPfUXC zjxs$o_JjwX3?yJB8Ayfrz#LOD6#}#Zgjl6Z@eER?v*%}l#5{d8gnAAZQBG~s$#KZe zRQyUlH`anE1d0K30L~Z1P$lEJ0MD`R6eHSv$nB!Pc?CjI<7x^B1^Wvjb4>y8-C^phmD&ijn@%pEYi z8gIV}>oJcsz*bU#KuqG$P;piR-OOLim-xd@Dn6#ItS0whTFNuVvJ%~U``CLVfxS10 zzbIoIe))$^WS@Z(q5flEM)Y46`;X^1MkxTP#upr{kN zhuvJDM^Q5%OXw|;Dm@NTr2p)3VD^Pkk+M&*(+OfD6Ev3uSZ)FOJ5p`iq$g0cAyn2b zfw8hO)6|Hj>847NRy0jF2W7WYi6L(c7f`!pS;hJ>X!>*$>_i)T#Ci(rtL33J)f<+! zz_&wXIL!gOg}|8TZP*+G#v61ke#FWSh67{RODowP%C=Wjt*3EC#c3Op!dj$M&3>|M ztL!8_fB}-RvK6>Q`v?!B%d~zeD-`d0EdWh9$cAg3R7--D#ayt~7e|%w%ECP%l#0sC zDaSwv{v6$O3nq>POK0fl_2-&g9o! z!MGPc(2Pq01W^@a@%X2|!E~NdAI+{x2kA(>6itXhGqZdP8$a)rP zKD=lNDUdrvfmy3Nz3v2X>qu=4PN2mT1+>mVgy{HKvxn6w5xQ-iRgBe0f0 zthTDFzO2*_-nzQ|<_O5P1%j;Zm|$~6x}*FHoM54~yHB>OL3=FMiLarmCV?ir!FY5| zNO-~NC2vLh0r-hBZ`Xp!rITRzSe1&>1s8}!nAV0pHK0x)`dzuKR0))O!CSFr6owo3 zTQmfYRpo4xK?jMDBvX4lqs*;GypD@Q4(V&PFce3tp14t9(y5_np5xBr!ka?~4{WUt zVZ$tIK;DWhX%Jt-E@$hA?D{n}c2QIXXtvK84@UHIB5DBQR}!;9{nAOf~iw* zcM)t?a?-pz0IPY}5*e_UBPUfVwqy9j#6pzrkvdhyeQlDpJJXUL_Vb zmVSURXa@I^91O}p7sH4DY`r+5TC$Q|9+Axa9h%PS&u(HfP-h@PO4%GB9yDgYOo+Ru zagY~SBW#MSoIC+NG<2JqiUP6P)D5#S6^)O_m}MM=$4^R`8N17piR}5AGX6hz^xa*S z=7ql>L`Ntt@8vp!*#T*?=U;}rW_M{H1XOMMOqW82vQ8OFN#q&&2?oU30;W(ixp0bX!%9s1k9;;0X-EoXHI#K|=4@ zMdO_D=Px^*thfWy$VG>f6;C<{75^_hJ0VV1+yPV7?szmOD*;d;AGz>L{oBOJiZ{Z^ z%5B=o3RNX11Cnb4d+my$Sl&#j(#c96$)Tqd4=kVx>8XhaAl`NsVmlAvSeb-)mW(G! z8S=?+Tqi3t6BCfv>7-$b?PO)9?PO)5IDI)GCo4nP>EdKXotTrAe#mfqE{3`0BmtS;6na!?(>kAVCsw? z>S9QzscB%aV~PD5`fzsw-QpQp(^IjPDRRE{6tgXH*%pf6o@=r%q z;-KYe;73}4lg-I^l5-Pk%ctmFYYQ`$Xf7C6%;E=<*kER3mV7ZvE^ngGSp?&5;p-v# z^`X1*Iu@^m5;=^h<=Nq9D%5>gW*}$v zfLSefSC-%$Atoo_XGLo_6j#~LO1>rWtJk2{MgxLqKPyYVuNyVDXfvkfGWE_O*q59t zAu325!B|ir`#tcv%JXaJEV~sm z@CuFuK1I6x^gmp_w^0PXJ&=6zO~S)?2{GuWfqv4S~ z*bp;PQx|hbZfHEt^GLa=jS(Ryw#pIaj;;V%b*F=8@8S)KmN#r3T)uz<(SfV61lGZX z{J_X09wkw2kWo(kgC6?Z_XLIl=a5ag=&V67kl~jb0EwVWAZ+0f;-L8-!Zv?fxXTJ;V_$>%Ci;wZF_}7X8=ZY}h752(vDVU{)6N4-XlzSv75D z$*MTatedgXW;07bUS8l%d=G(~Hn)Cta!bxD_`fDOX!c7VV5oeIK$t(|*)!lZ>I~Gy z8|y-$xaV;(5Ze3AooMgM_hB~GCm%jS;Q~SbKw8dQIK?oE1={;XVqR4DLT%VBX(_Dd zX)Tzmd3w1|ysEXD?{S76orsg_!i!E!hp(f=$5jmcLO5|H3v9=XK zXRBvd*j#(*Nwf^++-^8hp*rDmdwjTdYM2>Au|1$RLWfC7{8o=2LQ|QVJN7ND1ZhZQOXbpIL}uT%@;7)zJpOj3kE`D1FP=%S@&u9fpPMo+?#P;3LN8+ArXS$@Xg<(L+- z!B+7EmcF=fJCBjW&&Z?vLJ*F24#(%E|K{?YgCyt%TE}A4&1oX`{yNMDEEJPhvZ9*9 zKb-!aHZQQJi+m7hxlAn?MesjPmc6|&P1e9UjG`DUXuCYY4`+9J>%o~dCf zjqQM!bYh&Ksc47wyzdjZ$gdii~+ofn_YzQ}0TSh>#!MZn;ShLA9{ zBm>#Q{!eiRp)tLlVr}l>dFeychmJM*mulEmvL>g0M7TX&EE}H}qjDf6Y|^`0JRZ3@DeIuh@f3UeHco%Lqi$L(jk5DfDr|DgkH%%BG4YWA4!}95}9JConpEbQEW$) zSrOyyh_zP4Bs*fW6*1k8*kwhOAwnht`Cd)V&B;kycrrvcc@xO^Msta@EvKcqX~?Oa zmbOMO$p?MnU$cg*L9Si|VRf3D1=4eHQmR32fjsrWQy+O6il?D?@+B6dAXfuFeW7im1)rBf2Ic!x%Ppki{vq+pY(&p_6!W!Xc==z3 z>LFZ>S^_=9j|h1lb@yTfmW1@6d}j$(LAJS#xr9;|1$rdv|7HQFT>F!#4Fj88EpS85 zfkm>y!qqva=~$%@rCtNyRx;ez3TwwKPX@VYjhln>a+u@pU4LNSa(Inz0AbH%tp5X2CSI|7!cvMRyzU!?yFGQ*gMl8&$|TJj)>q}becd4 zfKl92N2SFpTRLL>TKiI#nik;NJ>?nTd2z^Q$`TsrIG9+To|NJVJ}(A!el zL&#`ehg8I$a$|~`CHXaSZWGSmF@l^`b^*Mj#jGy{MCoP9y^i|#fRR@HE@%DE+1Up| zC@l<-6{RwkS?w9X=(nU7a@;u?uS7*Fmh#rt{sJ@ap7_;)+JQ>|sVr8Ep`XrC%$xI4ny5-?{SECF@4 zR;MN46BN|WXP$P*#Y-pF7S>1T(`Vl~#pNH$qK(#PZH1fZn;4P$=pS_ozXg`>DSDCt8Lel5B5zZ1 z%eqP3jeRfMVAD@p!vm!=gnzt3#ckbD@g-?C+Ts)I&^c22(H15<;!d&R0H8zZYB8>4 zDNc4;*Qe0Uf%gjVt-|OXUs!$LMt9$h<#lB~ECb;fjd}(sH!pJ-O*ESP5EjH&9$PXau5$aHDE6E3YWpsKHPuDFuw(6 zxa2^M!X9$>BgTqsoQvx%D-dIz4mHdEYsO3pnY4aW4H@1Z4%a}qGB;Vj5xvTA@pm2P|Ky&ZgC@zkK?iFg%98{U5=~fdM;OFudJtYi(9u5y< z_^VKO4u{@cjz(}KWrrsief3z}FU^6f;)g+uf^h?IN06+}!OJE$L%haM1}Axq2I~*T zx%nPPxyb87HwmwYFhvG(k5qIX2l$-v{MKYrdNO}u-s3OD`+3#?$gNV&lG}1d*n-Kk<0FW$O>n^6SIeWI{1X` zA+L|5VhfuaL-vqe??NBg_K+CA3<#& z_xc<{rquqkML}ckXo89JIQEdonK+nPg!}bW>2t@hhosD)bkPVAvWKierya*0a&V@e z*?mrX$WQNSL9JvD87;+~fIZ|@$$x}B>;h}_8iR~ za;l?ThdtyqXSr3_L)L@40$h$}51GY=9cd5g=q$Gidq|O8Zk6_sJd|=Adr14YBkdvm z-?U}cX%9(2DyKapmSKlIB#Pl<*h4nIh4&77$XbRS_K-4$9rlpv42SI@uP=fdJ>*qT^j~TZ+42qukFbZl%a|(cAx-YBWDofe5l(x^ zO>?2%JAU=o?IG>nIG#OZE|vwkyfAZnOc(XTp1l=4y2F^~y$*)C#3*kAkC7-h{zaK# zd&rtX3_4l|#U4`cZO7_A_>RnBw1-SzDE5%+(Um7_51I0A*dDUVBWv{46Dr$7y1fp) z;;@If8UC~OkcQ0Uu!q!O*kKRZJ(YqPX6xc%!yy@Ub5!iz{zB79A#OxvC zQANleQo?}49x{w!hdrb(!^g6RTvBM;Lt<_fdq_9jZe!a+Ms|RB6+aPS4@u*D%O27b z?{TkuFQ%w$4~bCf&6NG|moNgUT0HiV*V=`Q6 z)eluS0br$)J!IDuq(3=(NGhrcoezmZ75|65FM*D#XxdIf1|o|$D8VS8Q3D1PNrV6~ zL=#AK1|}NzO$7}giV8}iAc(=t0OMsK3L=UNiVME(qKF_d?6?7f3W5lV!o5azS!6N) z^HkqEa}z-D^*!(T&iDPCL+18YU0q#WRb9QEu|H%9GXF>YA$@?#Kk$b%K=Hrh59x|4 zoc_N*-@c$2wTeGvsDL{If5=XAm7RS zA+I>#I`)TL>x6p>f5;FU?kW8tX@GJXe@N?REBixw%&>XZ=?{rTE~h^vf?Tp?b?(1LuPFMU+WJUJjme>X>j}B^@p6lJnRq2#oL@`WbYv=HXe7)^V{2`?S zFz7=5kYmp{X8#X8CpwJ&keP3ZKO_rX`A_{JQ)h<#As*n1Ir{uZs`^9R(;-(J{*bl| z|6PAbH5PLCL-s$3u)`m+4dIjfLte{QM1eo#*BK6q40)D{I_|!7MVQm?4=G}m_WqFJ z3^@ED`3yV!Azc~%D}Tr(18jfD;XLt&xStRELyqGmR%6)MO8$@}rd$4y%}58WZ(xq9 z{*Vafv-}|+5Ka))5-iH4^IV_mOrE`!39(A3W3=N>)}LyNMhw$pLo%(wVJB6l0T%P zpTKZ{{Q}v|10NZ&ciqk`86Kp?o~NGblUSWTQI;v<^G00w7A%VUWY$x%DteFgXVEaRsFz|oTAM)8Gdv0m_L*^mI=?|IBu)`lRo#D#axXInGxD#3CGy;ezwn3DeT>{y$sh6-I_)(6kWG&( z&0fhLvb;nwY88J-KLK|J{*ZA}{se!>MU~L`3xCLUj`|(`kS!qW>HHzJ?Dm|@AF_)G zoahf3?}U2_f5;qA_muvSX%4s!e@F`_+*9~N`r2?$=?`fND5vp<t^U4O_&bHe_R47}=mM*fh| z80n|>hl~S8|3m#DOM*bWl0W1z#+A>(``9sd>YWqWsYsDYZc2d|MGO!ugtN*Y{{*ZX4 zTmFz7q{AO_4RciWhwMR5+y0P7gcFZk|J)z)YiE%0-|&ZYgl;?0ACl+?dH%USWU~)o z#2>PbU$#GFIRcgZAuk7jgu@@=r*;aaHUdA;AF`d;{CE5z>BQs&e@Gm$|Bv`XYQ1|3 zf5@XZqRC-@$kE4a&%_;&gO&Xu4?s4Z%pWqe7+6~VkPZYFOugxG8_Z9z9!~U!)T>;p zKUC{}7&oZ3l0Rhk4FYrg1l22fB#Pw^`C29I43!^_>Z14w_r9b3+Ksk*+ zr2eSN{*cxqZJu@dL-srfzI5ClvXx8l>JJ(I<6rwjs$Gi_^k4OdJb~%oiT;pLOaIsUL)_U8f5=e;{@(o| zFT5D`hcw@OhW?PdFw#%$54j&m{15eq%oz>DEBQmlGUgQike%(T_(PuQP}v`H`FM!; zi(dWr{UPT*a5{g;GE56X{*d<IiMZ(hkXB_WA=aZXwhNZA5t_?{2>>kEB~oK zq+m?gA5yo0%+a6jU)3LybU);Z!ygjQ@Za@^Y%4?|hd*Q;!w!GQ5`<6g4+&%`qQD>W z*+>UPI*p>Dj=Kdtd1n5Q{;bmWhjeAY;ScG+u)`nHlHtGdheWlv{UIB!6n{w4Lt%f& zvh%@SdHpK+Lt>b2`9oetI{YD5GDlT^$X4{U?GJf~aAJ__pZh~LW`d0WhCk$L=(ZF6 zA@vGCo`3ES`EoeGh(BZrzifZVTm&llL!KA`Bpm*bLTaaAY8~(c{UP5HoBxhK9 z8_Zf*4=4IVqAS;07^-y}OrWa%kS!Sk^MMCcuVj)amOo^vO4=MMpO5OQ_(RI>MgFS( zke=#B)$Uz+#d+~>ZE=CuFt>gqF5b>eaO<5Dw7Hp?+T1Rg?LO4Tuf|e&yMEfZ>v2s~ zvC+R>&j%9F#9Li;cpbPqKYE-ya!EoS3VFcwR2waLioxZqZ=)1@DN(%iTb z+&}`}Ge|>(+!gJ{9kg<#81J~pRXnNMM!t5n!@j+oR{PH=6TY_RAVSv7-A8fZ9V)4( zD%pICT}dqfMI}oSA(dQSwUXPGoKVRFfEB(0XDmWiC9kMTwxompX*n^P?*I_sMR9Vy zpcii_#D{D-b&uFoj2QcB^&9Ylue`OJlXB1_7aHQSog#NIJ6fK@L5n+p0}_*r98^akg3D$O7QF`W!0}?acPtYcV8(k@~xFmdCK`i ze2S5y`JUk?U!1Qmak#9~_YuB8`A0!4=~Zvw7bu>#p*zg7ZprG0t3G|eG9n^4tRl1M z&sy5}b+~t`U2Sdr=lBIv-4$IYBE(U+AFAj`HO96?$668C*!S>Iz zi`2$XM%m?A!=ga6SZ(e;G_4{J^~$`>KLQt@l)j28P2LY@*DrSrdjo$UZ*E{~@sGH; zZI|&O$9G_fxgQ7gtoxdacwt`)^tv|g545l7NKC<5M8e;I_@1o37}obB>x*#Ihk}~# zJi;0OE~1MtP<$~6vVH#5n2G`aY8ZpDrAUo%p#KqYDcwqN?_%_Y?!zJ?X9E#pgX^bw zRrE=*d630dvG{!~9(v!X-44y)3xx&>SADL6M@kAO7w2I47CLZvrf+lCXRMC4HL zoo$tS3)x8Kl`FxOn79G8@__`+*G;}~!7(qmBCkFD;s{pua=o8S>xr791$(#W@Rff5)EuN$rFmqxF@%4PU*mS%bhf*!UTJVMEy>`+U|MmR0O;#Si}3 z$j_>F4n|coq_7X|B%LzGqCTTubE%>Hnecu4cPKpG>mhi|!H@Bl$|Y|P{ER0c&FMBC zfRjczUtFQ!d~d<=>V!0M^DS#aB1a6cp8e@D0+V)oc51vsZV`xVVBox)r{k&i<9=%mVPAu}7y z{DGjFEqX!oKhGOjPo{hE_(4T!kOh2FATvU#RVWTL17vU-2AKU-l>UpEm5eCDrCi;$1?0?mzETctkVzTg-h-#78EE6%_6cJf3L2P3A6Pk0cGEcQa&67LX@k zQ7S{S6NHa#NKOV2unQi^6oxTBLcJDW8rue1<8T-x61aENT(Wswt8T*WsrWIn`6aW^xjOU5F6a$LUlfne07t6KgN{~jJz0niXYdYSUCS}Dt|un|Echk77POY z6h1Rm{*M&=b5#CwnSYfde>UL@Us@FMsQhcY2tMoZV?5``znAc(8JP=U`CMk-(fd*}0#3&VEwuMqaTr_|hw_9=DR9q4Bb+zKQifGTM z$9&gXz$SYFyUmHHZ%|2=%-=kLZ?d{smq0=+cEyvKd=!aul3qf6JPk37q5cxW$6$UK zZ-FQ>Gw{m<=b>I6Jid%nc__ghd`8}SaF4Bs!06S+m*B7d!BiCVAH@62A|P-TXaH~a z{OS(;P?47`Z#S1|z8eUxnAagsjAq~ai%>`^@==lJcOT#m)?4FFTXSDS^FG8l#(!}c zt{jEE*;h1v+lUc6p%TBn5)&^ywaxSFs^%9BftTuI?$)Mn;=!lj9SZzfs;;=sI5!3! zoz}UBDvZvzs$u00dJ_lpBJKV%Ln@5H z|2W#PUmN4)>pgcR4%X`9v2DIf7|Sc1+ZrC!0qN3q>&kLwT6< zMrY2VaNBo5P4!^;Tm<>N6sB9Wo}LzJjp_wBxY66IkLvH$hvRYKA%nHL`FPSbbTKqv z4Rw_3B*Dz=@OZoO5aH}Df*bjgj}Wn`_x%0t@m!tcBwV;k8A?wdAJUALBs({dk^sEmo9{5xjxRk-4C*gB7($f+$J4RHjIvRU+wN+;-dk3J@a}jR-8}^G%Zy zI37SVkS7mxC_aoHyaH8%KE3dm4WGycnY^SANyaBCK#6U+f#0+EegPWo39NSO^+1#z zaAao(_Id+6A$ z4K+RhPqNpt_(I^$F(cWF<(I*ZkfuCYIkm6V*+cU*-^U=1C)hJy+J$!DewskNM6@J3 z0FDIep1`Us2np%R9a(%TBqBTThc~c~i01b^EZk|{55a29GZuhs4uRw!3Pot{f-R)dNy15^!3gM3P#KJy8`$m%Kq20g7)yIL zun{ksc#4-t8hgPI5P06m-QKhVh1(%ETag-|jM)+Z6uiI+W8_WyD^3_r$ffzcpow_} zaSPc$Ss#B1AYj_72Z3qZgz(Dxc$131gz*VL8e(fmFIYdlw7MN2n1&2?ujn9Bo$QNu zq$#PI-UX!3yDPE3*%>8BpFjcl2LkSW5Eer&3EXG;fd=14n8|)xii~{aZVCgl5ikP$ znruanW}r6$cs<-0%0Pw$0PL*X&+pO+*&)FR~K+QBAM8cH%&Ze5W zo*(w{S_<8R<7tG&YJN!Yh?IjBPbRa)9My0y&E~i6DuicHUYi#|3zFxdh z)B#shyV~IWJX%kgyxf1Q+qD&WAi!O(UJSdnZr?mc8}808}F#7E87trHKq=tzLqGcP_`JO7UGW& zK*Y_w3$LgL>oo2U_ir$DLk2>6w(w&(MZu#j<`cs zT&5##zZK_p#O=1?@*Ht97#ED2k&ox#c0s+=iiCPuo`W$jXQ;eqqwh9BRf z@WxmGD-DhH1as5_6XSnF{SeLtZ9q-D*!L_P8{Yh(?4F9kOO3anQame`VZ^D`j;%

    E?2 zb5-;KxCV3ah_^q2*wNARFh1Nmo-Pcw#}fcKcwiGxeBTF5J#h4?SDPM0D9|Apsvhj5 z`94t1&?bF>54WBhb8sx5_Jr?n2-!wW{_BiKeFeY+eyKa~A|2j5>!pP0TxJRk=_R$F zkH_KM!JGtl{wNq|9g^IOc0?NmeKA<`yE3A!*kXaMXfbN8h1?#!hNt*p+FE&dg!4RY z(s95`SzDe>em)Gc-Vf&V=4XMd42`C>r=tT5v@TMhxDb_#ad8s_6#6ZCk0-5XtTyQ_ z!13tb_3`d}=!?bhZsUEk5h#@gQ}`*g#+^12-P#XC_3ByZR-_eIL}}v>AO`RXi|h)% zrilZ??w-ItZ!m7!er|2}(w)CJu-<(~*+u^H&WkE8axXgExar{`hX*u05?Fs|i{?HO zSnMg@85NAa);&E-`!G6cP!@W_zqW9BN?CEmS=w`Dp2%hHz)EjZ!+&sOovh_K70u

    ac-uykDz}MshsQ%d8roS7Vp&z_pC)jax z=A(3Ak><;U(SS9TgxLw2Z!)v+%d)h&qg_$RSS@qH=vax*mAGn% zi)LIk=1r5hXvDb~7tOfF66Zo(b;h|ER~K>FuIdw_ud?-%7q(0Q?-u_&j$0LK!-Oh> z{i^vAKqIP&J^b^B2dWbDgfXr!>FlU>FO_$n!V9ymZA*SdvDA>*N=wJf!v3#iM^qj?jGXF$OAw8n+Dr%mcYc;Sks*)@a!jxK^`*|9eaf*P$p{FznSd~ z)xbgtMtT=#HRJ(R$b1Kxl|L{ZSxhfXf3_RXt7tyD3Gju-viN=|c%Y#^GTyUj>xG`P z4x1BL(C$xTQ)d*uG&FB8K4_?uG6?ixr6_{hBYw>>FraYAI z3&*I!-}s#2qj0!d;ROs=gu|~hTrHe`2E#Q%VVFX+YdnD((uM;f`BLBdS8Rkdo6~^a zwZ%a?VIYi2&DU3Q#7#sF*kgI_;wYFf6xR)qjF?QfKD@0v&^1r*nq2&Ad9^(IcgG0fV&pddyP%d?i|djeOwE7 z>z$xTU|73Jjp9FGJ@&5*h?i4iNyq3@5J+at*@mKDqD?#=#{c};Jvb*}Q zTwnzkR+hR0``lmchNdl}N$U>QzNUCbEZ*7;_K4N$RtKdD>XvAA@x0yQ1g&oSJtW

    $q#^`%$fLO@y(o`Y?j&r{yta_ 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

    AU3OJNpIA*(UGb($Ico9j@qeUm_ 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

    H0@Hlxj+$xfObe-crk@_L>8SohS6YwLjl= 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Ņ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 V!23S`) - - - ``edition``: edition to use for the connection. This parameter cannot - be used simultaneously with the cclass parameter - (default: None) - - - ``tag``: identifies the type of connection that should be returned - from a pool. This value is only used in python-oracledb Thick mode - (default: None) - - - ``matchanytag``: a boolean specifying whether any tag can be used - when acquiring a connection from the pool. This value is only used in - python-oracledb Thick mode - (default: False) - - - ``config_dir``: a directory in which the optional tnsnames.ora - configuration file is located. This value is only used in python- - oracledb Thin mode. For python-oracledb Thick mode, it is used if - :attr:`oracledb.defaults.thick_mode_dsn_passthrough - ` is *False*. Otherwise in Thick - mode use the ``config_dir`` parameter of - :meth:`oracledb.init_oracle_client()` - (default: :attr:`oracledb.defaults.config_dir - `) - - - ``appcontext``: application context used by the connection. It should - be a list of 3-tuples (namespace, name, value) and each entry in the - tuple should be a string - (default: None) - - - ``shardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - (default: None) - - - ``supershardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - (default: None) - - - ``debug_jdwp``: a string with the format "host=;port=" - that specifies the host and port of the PL/SQL debugger. This value - is only used in python-oracledb Thin mode. For python-oracledb Thick - mode set the ORA_DEBUG_JDWP environment variable - (default: None) - - - ``connection_id_prefix``: an application specific prefix that is - added to the connection identifier used for tracing - (default: None) - - - ``ssl_context``: an SSLContext object used for connecting to the - database using TLS. This SSL context will be modified to include the - private key or any certificates found in a separately supplied - wallet. This parameter should only be specified if the default - SSLContext object cannot be used - (default: None) - - - ``sdu``: the requested size of the Session Data Unit (SDU), in bytes. - The value tunes internal buffers used for communication to the - database. Bigger values can increase throughput for large queries or - bulk data loads, but at the cost of higher memory use. The SDU size - that will actually be used is negotiated down to the lower of this - value and the database network SDU configuration value - (default: 8192) - - - ``pool_boundary``: one of the values "statement" or "transaction" - indicating when pooled DRCP connections can be returned to the pool. - This requires the use of DRCP with Oracle Database 23.4 or higher - (default: None) - - - ``use_tcp_fast_open``: a boolean indicating whether to use TCP fast - open. This is an Oracle Autonomous Database Serverless (ADB-S) - specific property for clients connecting from within OCI Cloud - network. Please refer to the ADB-S documentation for more information - (default: False) - - - ``ssl_version``: one of the values ssl.TLSVersion.TLSv1_2 or - ssl.TLSVersion.TLSv1_3 indicating which TLS version to use - (default: None) - - - ``program``: a string recorded by Oracle Database as the program from - which the connection originates - (default: :attr:`oracledb.defaults.program - `) - - - ``machine``: a string recorded by Oracle Database as the name of the - machine from which the connection originates - (default: :attr:`oracledb.defaults.machine - `) - - - ``terminal``: a string recorded by Oracle Database as the terminal - identifier from which the connection originates - (default: :attr:`oracledb.defaults.terminal - `) - - - ``osuser``: a string recorded by Oracle Database as the operating - system user who originated the connection - (default: :attr:`oracledb.defaults.osuser - `) - - - ``driver_name``: a string recorded by Oracle Database as the name of - the driver which originated the connection - (default: :attr:`oracledb.defaults.driver_name - `) - - - ``use_sni``: a boolean indicating whether to use the TLS SNI - extension to bypass the second TLS neogiation that would otherwise be - required - (default: False) - - - ``thick_mode_dsn_passthrough``: a boolean indicating whether to pass - the connect string to the Oracle Client libraries unchanged without - parsing by the driver. Setting this to False makes python-oracledb - Thick and Thin mode applications behave similarly regarding - connection string parameter handling and locating any optional - tnsnames.ora configuration file - (default: :attr:`oracledb.defaults.thick_mode_dsn_passthrough - `) - - - ``extra_auth_params``: a dictionary containing configuration - parameters necessary for Oracle Database authentication using - plugins, such as the Azure and OCI cloud-native authentication - plugins - (default: None) - - - ``pool_name``: the name of the DRCP pool when using multi-pool DRCP - with Oracle Database 23.4, or higher - (default: None) - - - ``on_connect_callback``: a callable that is invoked immediately after - a standalone connection is created or a connection is acquired from a - connection pool, but before it is returned to the caller. A common - use of this callback is for creating and setting an end user security - context object for DeepSec support - (default: None) - - - ``handle``: an integer representing a pointer to a valid service - context handle. This value is only used in python-oracledb Thick - mode. It should be used with extreme caution - (default: 0) - """ - pass - - def __repr__(self): - return ( - self.__class__.__qualname__ + "(" - f"user={self.user!r}, " - f"proxy_user={self.proxy_user!r}, " - f"host={self.host!r}, " - f"port={self.port!r}, " - f"protocol={self.protocol!r}, " - f"https_proxy={self.https_proxy!r}, " - f"https_proxy_port={self.https_proxy_port!r}, " - f"service_name={self.service_name!r}, " - f"instance_name={self.instance_name!r}, " - f"sid={self.sid!r}, " - f"server_type={self.server_type!r}, " - f"cclass={self.cclass!r}, " - f"purity={self.purity!r}, " - f"expire_time={self.expire_time!r}, " - f"retry_count={self.retry_count!r}, " - f"retry_delay={self.retry_delay!r}, " - f"tcp_connect_timeout={self.tcp_connect_timeout!r}, " - f"ssl_server_dn_match={self.ssl_server_dn_match!r}, " - f"ssl_server_cert_dn={self.ssl_server_cert_dn!r}, " - f"wallet_location={self.wallet_location!r}, " - f"events={self.events!r}, " - f"externalauth={self.externalauth!r}, " - f"mode={self.mode!r}, " - f"disable_oob={self.disable_oob!r}, " - f"stmtcachesize={self.stmtcachesize!r}, " - f"edition={self.edition!r}, " - f"tag={self.tag!r}, " - f"matchanytag={self.matchanytag!r}, " - f"config_dir={self.config_dir!r}, " - f"appcontext={self.appcontext!r}, " - f"shardingkey={self.shardingkey!r}, " - f"supershardingkey={self.supershardingkey!r}, " - f"debug_jdwp={self.debug_jdwp!r}, " - f"connection_id_prefix={self.connection_id_prefix!r}, " - f"ssl_context={self.ssl_context!r}, " - f"sdu={self.sdu!r}, " - f"pool_boundary={self.pool_boundary!r}, " - f"use_tcp_fast_open={self.use_tcp_fast_open!r}, " - f"ssl_version={self.ssl_version!r}, " - f"program={self.program!r}, " - f"machine={self.machine!r}, " - f"terminal={self.terminal!r}, " - f"osuser={self.osuser!r}, " - f"driver_name={self.driver_name!r}, " - f"use_sni={self.use_sni!r}, " - f"thick_mode_dsn_passthrough={self.thick_mode_dsn_passthrough!r}, " - f"extra_auth_params={self.extra_auth_params!r}, " - f"pool_name={self.pool_name!r}, " - f"on_connect_callback={self.on_connect_callback!r}" - ")" - ) - - def _flatten_value(f): - """ - Helper function used to flatten arrays of values if they only contain a - single item. - """ - - @functools.wraps(f) - def wrapped(self): - values = f(self) - return values if len(values) > 1 else values[0] - - return wrapped - - @property - def appcontext(self) -> list: - """ - Application context used by the connection. It should be a list of - 3-tuples (namespace, name, value) and each entry in the tuple should be - a string. - """ - return self._impl.appcontext - - @property - @_flatten_value - def cclass(self) -> Union[list, str]: - """ - The connection class to use for Database Resident Connection Pooling - (DRCP). - """ - return [d.cclass for d in self._impl.description_list.children] - - @property - def config_dir(self) -> str: - """ - A directory in which the optional tnsnames.ora configuration file is - located. This value is only used in python-oracledb Thin mode. For - python-oracledb Thick mode, it is used if - :attr:`oracledb.defaults.thick_mode_dsn_passthrough - ` is *False*. Otherwise in Thick - mode use the ``config_dir`` parameter of - :meth:`oracledb.init_oracle_client()`. - """ - return self._impl.config_dir - - @property - @_flatten_value - def connection_id_prefix(self) -> Union[list, str]: - """ - An application specific prefix that is added to the connection - identifier used for tracing. - """ - return [ - d.connection_id_prefix - for d in self._impl.description_list.children - ] - - @property - def debug_jdwp(self) -> str: - """ - A string with the format "host=;port=" that specifies the - host and port of the PL/SQL debugger. This value is only used in - python-oracledb Thin mode. For python-oracledb Thick mode set the - ORA_DEBUG_JDWP environment variable. - """ - return self._impl.debug_jdwp - - @property - def disable_oob(self) -> bool: - """ - A boolean indicating whether out-of-band breaks should be disabled. - This value is only used in python-oracledb Thin mode. It has no effect - on Windows which does not support this functionality. - """ - return self._impl.disable_oob - - @property - def driver_name(self) -> str: - """ - A string recorded by Oracle Database as the name of the driver which - originated the connection. - """ - return self._impl.driver_name - - @property - def edition(self) -> str: - """ - Edition to use for the connection. This parameter cannot be used - simultaneously with the cclass parameter. - """ - return self._impl.edition - - @property - def events(self) -> bool: - """ - A boolean specifying whether events mode should be enabled. This value - is only used in python-oracledb Thick mode and is needed for continuous - query notification and high availability event notifications. - """ - return self._impl.events - - @property - @_flatten_value - def expire_time(self) -> Union[list, int]: - """ - The number of minutes between the sending of keepalive probes. If this - parameter is set to a value greater than zero it enables keepalive. - """ - return [d.expire_time for d in self._impl.description_list.children] - - @property - def externalauth(self) -> bool: - """ - A boolean indicating whether to use external authentication. - """ - return self._impl.externalauth - - @property - def extra_auth_params(self) -> dict: - """ - A dictionary containing configuration parameters necessary for Oracle - Database authentication using plugins, such as the Azure and OCI cloud- - native authentication plugins. - """ - return self._impl.extra_auth_params - - @property - @_flatten_value - def host(self) -> Union[list, str]: - """ - The hostname or IP address of the machine hosting the database or the - database listener. - """ - return [a.host for a in self._impl._get_addresses()] - - @property - @_flatten_value - def https_proxy(self) -> Union[list, str]: - """ - The hostname or IP address of a proxy host to use for tunneling secure - connections. - """ - return [a.https_proxy for a in self._impl._get_addresses()] - - @property - @_flatten_value - def https_proxy_port(self) -> Union[list, int]: - """ - The port on which to communicate with the proxy host. - """ - return [a.https_proxy_port for a in self._impl._get_addresses()] - - @property - @_flatten_value - def instance_name(self) -> Union[list, str]: - """ - The instance name of the database. - """ - return [d.instance_name for d in self._impl.description_list.children] - - @property - def machine(self) -> str: - """ - A string recorded by Oracle Database as the name of the machine from - which the connection originates. - """ - return self._impl.machine - - @property - def matchanytag(self) -> bool: - """ - A boolean specifying whether any tag can be used when acquiring a - connection from the pool. This value is only used in python-oracledb - Thick mode. - """ - return self._impl.matchanytag - - @property - def mode(self) -> oracledb.AuthMode: - """ - The authorization mode to use. One of the constants - :data:`oracledb.AUTH_MODE_DEFAULT`, :data:`oracledb.AUTH_MODE_PRELIM`, - :data:`oracledb.AUTH_MODE_SYSASM`, :data:`oracledb.AUTH_MODE_SYSBKP`, - :data:`oracledb.AUTH_MODE_SYSDBA`, :data:`oracledb.AUTH_MODE_SYSDGD`, - :data:`oracledb.AUTH_MODE_SYSKMT`, :data:`oracledb.AUTH_MODE_SYSOPER`, - or :data:`oracledb.AUTH_MODE_SYSRAC`. - """ - return oracledb.AuthMode(self._impl.mode) - - @property - def on_connect_callback(self) -> Callable: - """ - A callable that is invoked immediately after a standalone connection is - created or a connection is acquired from a connection pool, but before - it is returned to the caller. A common use of this callback is for - creating and setting an end user security context object for DeepSec - support. - """ - return self._impl.on_connect_callback - - @property - def osuser(self) -> str: - """ - A string recorded by Oracle Database as the operating system user who - originated the connection. - """ - return self._impl.osuser - - @property - @_flatten_value - def pool_boundary(self) -> Union[list, str]: - """ - One of the values "statement" or "transaction" indicating when pooled - DRCP connections can be returned to the pool. This requires the use of - DRCP with Oracle Database 23.4 or higher. - """ - return [d.pool_boundary for d in self._impl.description_list.children] - - @property - @_flatten_value - def pool_name(self) -> Union[list, str]: - """ - The name of the DRCP pool when using multi-pool DRCP with Oracle - Database 23.4, or higher. - """ - return [d.pool_name for d in self._impl.description_list.children] - - @property - @_flatten_value - def port(self) -> Union[list, int]: - """ - The port number on which the database listener is listening. - """ - return [a.port for a in self._impl._get_addresses()] - - @property - def program(self) -> str: - """ - A string recorded by Oracle Database as the program from which the - connection originates. - """ - return self._impl.program - - @property - @_flatten_value - def protocol(self) -> Union[list, str]: - """ - One of the strings "tcp" or "tcps" indicating whether to use - unencrypted network traffic or encrypted network traffic (TLS). - """ - return [a.protocol for a in self._impl._get_addresses()] - - @property - def proxy_user(self) -> str: - """ - The name of the proxy user to connect to. If this value is not - specified, it will be parsed out of user if user is in the form - "user[proxy_user]". - """ - return self._impl.proxy_user - - @property - @_flatten_value - def purity(self) -> Union[list, oracledb.Purity]: - """ - The connection purity to use for Database Resident Connection Pooling - (DRCP). - """ - return [ - oracledb.Purity(d.purity) - for d in self._impl.description_list.children - ] - - @property - @_flatten_value - def retry_count(self) -> Union[list, int]: - """ - The number of times that initial connection establishment should be - retried before the connection attempt is terminated. - """ - return [d.retry_count for d in self._impl.description_list.children] - - @property - @_flatten_value - def retry_delay(self) -> Union[list, int]: - """ - The number of seconds to wait before retrying to establish a - connection. - """ - return [d.retry_delay for d in self._impl.description_list.children] - - @property - @_flatten_value - def sdu(self) -> Union[list, int]: - """ - The requested size of the Session Data Unit (SDU), in bytes. The value - tunes internal buffers used for communication to the database. Bigger - values can increase throughput for large queries or bulk data loads, - but at the cost of higher memory use. The SDU size that will actually - be used is negotiated down to the lower of this value and the database - network SDU configuration value. - """ - return [d.sdu for d in self._impl.description_list.children] - - @property - @_flatten_value - def server_type(self) -> Union[list, str]: - """ - The type of server connection that should be established. If specified, - it should be one of strings "dedicated", "shared" or "pooled". - """ - return [d.server_type for d in self._impl.description_list.children] - - @property - @_flatten_value - def service_name(self) -> Union[list, str]: - """ - The service name of the database. - """ - return [d.service_name for d in self._impl.description_list.children] - - @property - def shardingkey(self) -> list: - """ - A list of strings, numbers, bytes or dates that identify the database - shard to connect to. This value is only used in python-oracledb Thick - mode. - """ - return self._impl.shardingkey - - @property - @_flatten_value - def sid(self) -> Union[list, str]: - """ - The system identifier (SID) of the database. Note using a service_name - instead is recommended. - """ - return [d.sid for d in self._impl.description_list.children] - - @property - def ssl_context(self) -> Any: - """ - An SSLContext object used for connecting to the database using TLS. - This SSL context will be modified to include the private key or any - certificates found in a separately supplied wallet. This parameter - should only be specified if the default SSLContext object cannot be - used. - """ - return self._impl.ssl_context - - @property - @_flatten_value - def ssl_server_cert_dn(self) -> Union[list, str]: - """ - The distinguished name (DN) which should be matched with the server. - This value is ignored if the ssl_server_dn_match parameter is not set - to the value True. If specified this value is used for any verfication. - Otherwise the hostname will be used. - """ - return [ - d.ssl_server_cert_dn for d in self._impl.description_list.children - ] - - @property - @_flatten_value - def ssl_server_dn_match(self) -> Union[list, bool]: - """ - A boolean indicating whether the server certificate distinguished name - (DN) should be matched in addition to the regular certificate - verification that is performed. Note that if the ssl_server_cert_dn - parameter is not privided, host name matching is performed instead. - """ - return [ - d.ssl_server_dn_match for d in self._impl.description_list.children - ] - - @property - @_flatten_value - def ssl_version(self) -> Union[list, ssl.TLSVersion]: - """ - One of the values ssl.TLSVersion.TLSv1_2 or ssl.TLSVersion.TLSv1_3 - indicating which TLS version to use. - """ - return [d.ssl_version for d in self._impl.description_list.children] - - @property - def stmtcachesize(self) -> int: - """ - The size of the statement cache. - """ - return self._impl.stmtcachesize - - @property - def supershardingkey(self) -> list: - """ - A list of strings, numbers, bytes or dates that identify the database - shard to connect to. This value is only used in python-oracledb Thick - mode. - """ - return self._impl.supershardingkey - - @property - def tag(self) -> str: - """ - Identifies the type of connection that should be returned from a pool. - This value is only used in python-oracledb Thick mode. - """ - return self._impl.tag - - @property - @_flatten_value - def tcp_connect_timeout(self) -> Union[list, float]: - """ - A float indicating the maximum number of seconds to wait when - establishing a connection to the database host. - """ - return [ - d.tcp_connect_timeout for d in self._impl.description_list.children - ] - - @property - def terminal(self) -> str: - """ - A string recorded by Oracle Database as the terminal identifier from - which the connection originates. - """ - return self._impl.terminal - - @property - def thick_mode_dsn_passthrough(self) -> bool: - """ - A boolean indicating whether to pass the connect string to the Oracle - Client libraries unchanged without parsing by the driver. Setting this - to False makes python-oracledb Thick and Thin mode applications behave - similarly regarding connection string parameter handling and locating - any optional tnsnames.ora configuration file. - """ - return self._impl.thick_mode_dsn_passthrough - - @property - def user(self) -> str: - """ - The name of the database user to connect to. - """ - return self._impl.user - - @property - @_flatten_value - def use_sni(self) -> Union[list, bool]: - """ - A boolean indicating whether to use the TLS SNI extension to bypass the - second TLS neogiation that would otherwise be required. - """ - return [d.use_sni for d in self._impl.description_list.children] - - @property - @_flatten_value - def use_tcp_fast_open(self) -> Union[list, bool]: - """ - A boolean indicating whether to use TCP fast open. This is an Oracle - Autonomous Database Serverless (ADB-S) specific property for clients - connecting from within OCI Cloud network. Please refer to the ADB-S - documentation for more information. - """ - return [ - d.use_tcp_fast_open for d in self._impl.description_list.children - ] - - @property - @_flatten_value - def wallet_location(self) -> Union[list, str]: - """ - The directory where the wallet can be found. In python-oracledb Thin - mode this must be the directory containing the PEM-encoded wallet file - ewallet.pem. In python-oracledb Thick mode this must be the directory - containing the file cwallet.sso. - """ - return [ - d.wallet_location for d in self._impl.description_list.children - ] - - def copy(self) -> "ConnectParams": - """ - Creates a copy of the ConnectParams instance and returns it. - """ - params = ConnectParams.__new__(ConnectParams) - params._impl = self._impl.copy() - return params - - def get_connect_string(self) -> str: - """ - Returns the connection string associated with the instance. - """ - return self._impl.get_connect_string() - - def get_network_service_names(self) -> list: - """ - Returns a list of the network service names found in the - :ref:`tnsnames.ora ` file which is inside the directory - that can be identified by the attribute - :attr:`~ConnectParams.config_dir`. If a tnsnames.ora file does not - exist, then an exception is raised. - """ - return self._impl.get_network_service_names() - - def parse_connect_string(self, connect_string: str) -> None: - """ - Parses the connect string into its components and stores the - parameters. - - The ``connect string`` parameter can be an Easy Connect string, - name-value pairs, or a simple alias which is looked up in - ``tnsnames.ora``. Parameters that are found in the connect string - override any currently stored values. - """ - self._impl.parse_connect_string(connect_string) - - def parse_dsn_with_credentials(self, dsn: str) -> tuple: - """ - Parses a DSN in the form /@ or in the - form / and returns a 3-tuple containing the parsed - user, password and connect string. Empty strings are returned as the - value *None*. - """ - return self._impl.parse_dsn_with_credentials(dsn) - - @utils.params_setter - def set( - self, - *, - user: Optional[str] = None, - proxy_user: Optional[str] = None, - password: Optional[str] = None, - newpassword: Optional[str] = None, - wallet_password: Optional[str] = None, - access_token: Optional[Union[str, tuple, Callable]] = None, - host: Optional[str] = None, - port: Optional[int] = None, - protocol: Optional[str] = None, - https_proxy: Optional[str] = None, - https_proxy_port: Optional[int] = None, - service_name: Optional[str] = None, - instance_name: Optional[str] = None, - sid: Optional[str] = None, - server_type: Optional[str] = None, - cclass: Optional[str] = None, - purity: Optional[oracledb.Purity] = None, - expire_time: Optional[int] = None, - retry_count: Optional[int] = None, - retry_delay: Optional[int] = None, - tcp_connect_timeout: Optional[float] = None, - ssl_server_dn_match: Optional[bool] = None, - ssl_server_cert_dn: Optional[str] = None, - wallet_location: Optional[str] = None, - events: Optional[bool] = None, - externalauth: Optional[bool] = None, - mode: Optional[oracledb.AuthMode] = None, - disable_oob: Optional[bool] = None, - stmtcachesize: Optional[int] = None, - edition: Optional[str] = None, - tag: Optional[str] = None, - matchanytag: Optional[bool] = None, - config_dir: Optional[str] = None, - appcontext: Optional[list] = None, - shardingkey: Optional[list] = None, - supershardingkey: Optional[list] = None, - debug_jdwp: Optional[str] = None, - connection_id_prefix: Optional[str] = None, - ssl_context: Optional[Any] = None, - sdu: Optional[int] = None, - pool_boundary: Optional[str] = None, - use_tcp_fast_open: Optional[bool] = None, - ssl_version: Optional[ssl.TLSVersion] = None, - program: Optional[str] = None, - machine: Optional[str] = None, - terminal: Optional[str] = None, - osuser: Optional[str] = None, - driver_name: Optional[str] = None, - use_sni: Optional[bool] = None, - thick_mode_dsn_passthrough: Optional[bool] = None, - extra_auth_params: Optional[dict] = None, - pool_name: Optional[str] = None, - on_connect_callback: Optional[Callable] = None, - handle: Optional[int] = None, - ): - """ - Sets the values for one or more of the parameters of a ConnectParams - object. All parameters are optional. A brief description of each - parameter follows: - - - ``user``: the name of the database user to connect to - - - ``proxy_user``: the name of the proxy user to connect to. If this - value is not specified, it will be parsed out of user if user is in - the form "user[proxy_user]" - - - ``password``: the password for the database user - - - ``newpassword``: a new password for the database user. The new - password will take effect immediately upon a successful connection to - the database - - - ``wallet_password``: the password to use to decrypt the wallet, if it - is encrypted. This is not the database password. For Oracle - Autonomous Database this is the password created when downloading the - wallet. This value is only used in python-oracledb Thin mode. - - - ``access_token``: a string, or a 2-tuple, or a callable. If it is a - string, it specifies an Entra ID OAuth2 token used for Open - Authorization (OAuth 2.0) token based authentication. If it is a - 2-tuple, it specifies the token and private key strings used for - Oracle Cloud Infrastructure (OCI) Identity and Access Management - (IAM) token based authentication. If it is a callable, it returns - either a string or a 2-tuple used for OAuth 2.0 or OCI IAM token - based authentication and is useful when the pool needs to expand and - create new connections but the current authentication token has - expired - - - ``host``: the hostname or IP address of the machine hosting the - database or the database listener - - - ``port``: the port number on which the database listener is listening - - - ``protocol``: one of the strings "tcp" or "tcps" indicating whether - to use unencrypted network traffic or encrypted network traffic (TLS) - - - ``https_proxy``: the hostname or IP address of a proxy host to use - for tunneling secure connections - - - ``https_proxy_port``: the port on which to communicate with the proxy - host - - - ``service_name``: the service name of the database - - - ``instance_name``: the instance name of the database - - - ``sid``: the system identifier (SID) of the database. Note using a - service_name instead is recommended - - - ``server_type``: the type of server connection that should be - established. If specified, it should be one of strings "dedicated", - "shared" or "pooled" - - - ``cclass``: the connection class to use for Database Resident - Connection Pooling (DRCP) - - - ``purity``: the connection purity to use for Database Resident - Connection Pooling (DRCP) - - - ``expire_time``: the number of minutes between the sending of - keepalive probes. If this parameter is set to a value greater than - zero it enables keepalive - - - ``retry_count``: the number of times that initial connection - establishment should be retried before the connection attempt is - terminated - - - ``retry_delay``: the number of seconds to wait before retrying to - establish a connection - - - ``tcp_connect_timeout``: a float indicating the maximum number of - seconds to wait when establishing a connection to the database host - - - ``ssl_server_dn_match``: a boolean indicating whether the server - certificate distinguished name (DN) should be matched in addition to - the regular certificate verification that is performed. Note that if - the ssl_server_cert_dn parameter is not privided, host name matching - is performed instead - - - ``ssl_server_cert_dn``: the distinguished name (DN) which should be - matched with the server. This value is ignored if the - ssl_server_dn_match parameter is not set to the value True. If - specified this value is used for any verfication. Otherwise the - hostname will be used - - - ``wallet_location``: the directory where the wallet can be found. In - python-oracledb Thin mode this must be the directory containing the - PEM-encoded wallet file ewallet.pem. In python-oracledb Thick mode - this must be the directory containing the file cwallet.sso - - - ``events``: a boolean specifying whether events mode should be - enabled. This value is only used in python-oracledb Thick mode and is - needed for continuous query notification and high availability event - notifications - - - ``externalauth``: a boolean indicating whether to use external - authentication - - - ``mode``: the authorization mode to use. One of the constants - :data:`oracledb.AUTH_MODE_DEFAULT`, - :data:`oracledb.AUTH_MODE_PRELIM`, :data:`oracledb.AUTH_MODE_SYSASM`, - :data:`oracledb.AUTH_MODE_SYSBKP`, :data:`oracledb.AUTH_MODE_SYSDBA`, - :data:`oracledb.AUTH_MODE_SYSDGD`, :data:`oracledb.AUTH_MODE_SYSKMT`, - :data:`oracledb.AUTH_MODE_SYSOPER`, or - :data:`oracledb.AUTH_MODE_SYSRAC` - - - ``disable_oob``: a boolean indicating whether out-of-band breaks - should be disabled. This value is only used in python-oracledb Thin - mode. It has no effect on Windows which does not support this - functionality - - - ``stmtcachesize``: the size of the statement cache - - - ``edition``: edition to use for the connection. This parameter cannot - be used simultaneously with the cclass parameter - - - ``tag``: identifies the type of connection that should be returned - from a pool. This value is only used in python-oracledb Thick mode - - - ``matchanytag``: a boolean specifying whether any tag can be used - when acquiring a connection from the pool. This value is only used in - python-oracledb Thick mode - - - ``config_dir``: a directory in which the optional tnsnames.ora - configuration file is located. This value is only used in python- - oracledb Thin mode. For python-oracledb Thick mode, it is used if - :attr:`oracledb.defaults.thick_mode_dsn_passthrough - ` is *False*. Otherwise in Thick - mode use the ``config_dir`` parameter of - :meth:`oracledb.init_oracle_client()` - - - ``appcontext``: application context used by the connection. It should - be a list of 3-tuples (namespace, name, value) and each entry in the - tuple should be a string - - - ``shardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - - - ``supershardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - - - ``debug_jdwp``: a string with the format "host=;port=" - that specifies the host and port of the PL/SQL debugger. This value - is only used in python-oracledb Thin mode. For python-oracledb Thick - mode set the ORA_DEBUG_JDWP environment variable - - - ``connection_id_prefix``: an application specific prefix that is - added to the connection identifier used for tracing - - - ``ssl_context``: an SSLContext object used for connecting to the - database using TLS. This SSL context will be modified to include the - private key or any certificates found in a separately supplied - wallet. This parameter should only be specified if the default - SSLContext object cannot be used - - - ``sdu``: the requested size of the Session Data Unit (SDU), in bytes. - The value tunes internal buffers used for communication to the - database. Bigger values can increase throughput for large queries or - bulk data loads, but at the cost of higher memory use. The SDU size - that will actually be used is negotiated down to the lower of this - value and the database network SDU configuration value - - - ``pool_boundary``: one of the values "statement" or "transaction" - indicating when pooled DRCP connections can be returned to the pool. - This requires the use of DRCP with Oracle Database 23.4 or higher - - - ``use_tcp_fast_open``: a boolean indicating whether to use TCP fast - open. This is an Oracle Autonomous Database Serverless (ADB-S) - specific property for clients connecting from within OCI Cloud - network. Please refer to the ADB-S documentation for more information - - - ``ssl_version``: one of the values ssl.TLSVersion.TLSv1_2 or - ssl.TLSVersion.TLSv1_3 indicating which TLS version to use - - - ``program``: a string recorded by Oracle Database as the program from - which the connection originates - - - ``machine``: a string recorded by Oracle Database as the name of the - machine from which the connection originates - - - ``terminal``: a string recorded by Oracle Database as the terminal - identifier from which the connection originates - - - ``osuser``: a string recorded by Oracle Database as the operating - system user who originated the connection - - - ``driver_name``: a string recorded by Oracle Database as the name of - the driver which originated the connection - - - ``use_sni``: a boolean indicating whether to use the TLS SNI - extension to bypass the second TLS neogiation that would otherwise be - required - - - ``thick_mode_dsn_passthrough``: a boolean indicating whether to pass - the connect string to the Oracle Client libraries unchanged without - parsing by the driver. Setting this to False makes python-oracledb - Thick and Thin mode applications behave similarly regarding - connection string parameter handling and locating any optional - tnsnames.ora configuration file - - - ``extra_auth_params``: a dictionary containing configuration - parameters necessary for Oracle Database authentication using - plugins, such as the Azure and OCI cloud-native authentication - plugins - - - ``pool_name``: the name of the DRCP pool when using multi-pool DRCP - with Oracle Database 23.4, or higher - - - ``on_connect_callback``: a callable that is invoked immediately after - a standalone connection is created or a connection is acquired from a - connection pool, but before it is returned to the caller. A common - use of this callback is for creating and setting an end user security - context object for DeepSec support - - - ``handle``: an integer representing a pointer to a valid service - context handle. This value is only used in python-oracledb Thick - mode. It should be used with extreme caution - """ - pass - - def set_from_config(self, config: dict) -> None: - """ - Sets the property values based on the specified configuration. This - method is intended for use with Centralized Configuration Providers. - - The ``config`` parameter is a dictionary which consists of the - following optional keys: "connect_descriptor", "user", "password", and - "pyo". - - If the key "connect_descriptor" is specified, it is expected to be a - string, which will be parsed and the properties found within it are - stored in the ConnectParams instance. - - If the keys "user" or "password" are specified, and the parameters do - not already have a user or password set, these values will be stored; - otherwise, they will be ignored. The key "user" is expected to be a - string. The "key" password may be a string or it may be a dictionary - which will be examined by a :ref:`registered password type handler - ` to determine the actual password. - - If the key "pyo" is specified, it is expected to be a dictionary - containing keys corresponding to property names. Any property names - accepted by the ConnectParams class will be stored in the ConnectParams - instance; all other values will be ignored. - """ - self._impl.set_from_config(config) diff --git a/.venv/lib/python3.9/site-packages/oracledb/connection.py b/.venv/lib/python3.9/site-packages/oracledb/connection.py deleted file mode 100644 index 3c80252..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/connection.py +++ /dev/null @@ -1,3406 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2020, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# connection.py -# -# Contains the Connection class and the factory method connect() used for -# establishing connections to the database. -# -# *** NOTICE *** This file is generated from a template and should not be -# modified directly. See build_from_template.py in the utils subdirectory for -# more information. -# ----------------------------------------------------------------------------- - -import collections -import functools -import ssl -from typing import Any, Callable, Iterator, Type, Optional, Union - -import oracledb - -from . import base_impl, driver_mode, errors, thick_impl, thin_impl -from . import pool as pool_module -from .aq import AsyncQueue, Queue, MessageProperties -from .arrow_impl import ArrowSchemaImpl -from .base import BaseMetaClass -from .base_impl import DB_TYPE_BLOB, DB_TYPE_CLOB, DB_TYPE_NCLOB, DbType -from .connect_params import ConnectParams -from .cursor import AsyncCursor, Cursor -from .dataframe import DataFrame -from .dbobject import DbObjectType, DbObject -from .lob import AsyncLOB, LOB -from .pipeline import Pipeline, PipelineOpResult -from .soda import SodaDatabase -from .subscr import Subscription -from .utils import normalize_sessionless_transaction_id - -# named tuple used for representing global transactions -Xid = collections.namedtuple( - "Xid", ["format_id", "global_transaction_id", "branch_qualifier"] -) - - -class BaseConnection(metaclass=BaseMetaClass): - _impl = None - - def __init__(self): - self._version = None - - def __repr__(self): - cls_name = self.__class__._public_name - if self._impl is None: - return f"<{cls_name} disconnected>" - elif self.username is None: - return f"<{cls_name} to externally identified user>" - return f"<{cls_name} to {self.username}@{self.dsn}>" - - def _verify_connected(self) -> None: - """ - Verifies that the connection is connected to the database. If it is - not, an exception is raised. - """ - if self._impl is None: - errors._raise_err(errors.ERR_NOT_CONNECTED) - - def _verify_xid(self, xid: Xid) -> None: - """ - Verifies that the supplied xid is of the correct type. - """ - if not isinstance(xid, Xid): - message = "expecting transaction id created with xid()" - raise TypeError(message) - - @property - def action(self) -> str: - """ - This write-only attribute sets the ACTION column in the V$SESSION view. - It is a string attribute but the value *None* is accepted and treated - as an empty string. - """ - raise AttributeError("action is not readable") - - @action.setter - def action(self, value: str) -> None: - self._verify_connected() - self._impl.set_action(value) - - @property - def autocommit(self) -> bool: - """ - This read-write attribute determines whether autocommit mode is on or - off. When autocommit mode is on, all statements are committed as soon - as they have completed executing. - """ - self._verify_connected() - return self._impl.autocommit - - @autocommit.setter - def autocommit(self, value: bool) -> None: - self._verify_connected() - self._impl.autocommit = value - - def begin_sessionless_transaction( - self, - transaction_id: Optional[Union[str, bytes]] = None, - timeout: int = 60, - defer_round_trip: bool = False, - ) -> bytes: - """ - Begins a new sessionless transaction. This method returns the - transaction identifier specified by the user or generated by - python-oracledb. - - The ``transaction_id`` parameter should be of type string or bytes. If - specified, it represents a unique identifier for the transaction. If a - string is passed, then it will be UTF-8 encoded to bytes. If this value - is not specified, then python-oracledb generates a a random - `universally-unique identifier (UUID) - `__ value. An example is - "36b8f84d-df4e-4d49-b662-bcde71a8764f". Any user-chosen value cannot - exceed 64 bytes in length. - - The ``timeout`` parameter is the number of seconds that this - transaction can stay suspended when - :meth:`suspend_sessionless_transaction()` is later called, - or if the transaction is automatically suspended when the - ``suspend_on_success`` parameter is set to to *True* in - :meth:`Cursor.execute()` or :meth:`Cursor.executemany()`. The default - value is *60* seconds. If a transaction is not resumed within this - specified duration, the transaction will be rolled back. - - The ``defer_round_trip`` parameter is a boolean that determines whether - the request to start a transaction is to be sent immediately or with - the next database operation. If set to *False*, the request is sent - immediately. If set to *True*, the request is included with the next - database operation on the connection. The default value is *False*. - """ - self._verify_connected() - normalized_txnid = normalize_sessionless_transaction_id(transaction_id) - - if not isinstance(timeout, int) or timeout <= 0: - raise TypeError("timeout must be a positive integer") - - self._impl.begin_sessionless_transaction( - normalized_txnid, timeout, defer_round_trip - ) - return normalized_txnid - - @property - def call_timeout(self) -> int: - """ - This read-write attribute specifies the amount of time (in - milliseconds) that a single round-trip to the database may take before - a timeout will occur. A value of *0* means that no timeout will take - place. - - In python-oracledb Thick mode, this attribute is only available in - Oracle Client 18c or later. - - If a timeout occurs, the error ``DPI-1067`` will be returned if the - connection is still usable. Alternatively the error ``DPI-1080`` will - be returned if the connection has become invalid and can no longer be - used. - - For consistency and compliance with the PEP 8 naming style, the - attribute ``callTimeout`` was renamed to ``call_timeout``. The old name - will continue to work for a period of time. The error ``DPI-1080`` was - also introduced in this release. - """ - self._verify_connected() - return self._impl.get_call_timeout() - - @call_timeout.setter - def call_timeout(self, value: int) -> None: - self._verify_connected() - self._impl.set_call_timeout(value) - - def cancel(self) -> None: - """ - Breaks a long-running statement. - """ - self._verify_connected() - self._impl.cancel() - - @property - def client_identifier(self) -> str: - """ - This write-only attribute sets the CLIENT_IDENTIFIER column in the - V$SESSION view. - """ - raise AttributeError("client_identifier is not readable") - - @client_identifier.setter - def client_identifier(self, value: str) -> None: - self._verify_connected() - self._impl.set_client_identifier(value) - - @property - def clientinfo(self) -> str: - """ - This write-only attribute sets the CLIENT_INFO column in the V$SESSION - view. - """ - raise AttributeError("clientinfo is not readable") - - @clientinfo.setter - def clientinfo(self, value: str) -> None: - """ - Specifies the client_info column in the v$session table. - """ - self._verify_connected() - self._impl.set_client_info(value) - - @property - def current_schema(self) -> str: - """ - This read-write attribute sets the current schema attribute for the - session. Setting this value is the same as executing the SQL statement - ``ALTER SESSION SET CURRENT_SCHEMA``. The attribute is set (and - verified) on the next call that does a round trip to the server. The - value is placed before unqualified database objects in SQL statements - you then execute. - """ - self._verify_connected() - return self._impl.get_current_schema() - - @current_schema.setter - def current_schema(self, value: str) -> None: - self._verify_connected() - self._impl.set_current_schema(value) - - @property - def db_domain(self) -> str: - """ - This read-only attribute specifies the Oracle Database domain name - associated with the connection. It is the same value returned by the - SQL ``SELECT value FROM V$PARAMETER WHERE NAME = 'db_domain'``. - """ - self._verify_connected() - return self._impl.get_db_domain() - - @property - def db_name(self) -> str: - """ - This read-only attribute specifies the Oracle Database name associated - with the connection. It is the same value returned by the SQL ``SELECT - NAME FROM V$DATABASE``. - """ - self._verify_connected() - return self._impl.get_db_name() - - @property - def dbop(self) -> str: - """ - This write-only attribute sets the database operation that is to be - monitored. This can be viewed in the DBOP_NAME column of the - V$SQL_MONITOR view. - """ - raise AttributeError("dbop is not readable") - - @dbop.setter - def dbop(self, value: str) -> None: - self._verify_connected() - self._impl.set_dbop(value) - - def decode_oson(self, data: bytes) -> Any: - """ - Decodes `OSON-encoded - `__ bytes and returns the - object encoded in those bytes. This is useful for fetching columns - which have the check constraint ``IS JSON FORMAT OSON`` enabled. - """ - self._verify_connected() - return self._impl.decode_oson(data) - - @property - def dsn(self) -> str: - """ - This read-only attribute returns the TNS entry of the database to which - a connection has been established. - """ - self._verify_connected() - return self._impl.dsn - - @property - def econtext_id(self) -> str: - """ - This write-only attribute specifies the execution context id. This - value can be found as the ECID column in the V$SESSION view and - ECONTEXT_ID in the auditing tables. The maximum length is 64 bytes. - """ - raise AttributeError("econtext_id is not readable") - - @econtext_id.setter - def econtext_id(self, value: str) -> None: - self._verify_connected() - self._impl.set_econtext_id(value) - - @property - def edition(self) -> str: - """ - This read-only attribute gets the session edition and is only available - with Oracle Database 11.2, or later. - """ - self._verify_connected() - return self._impl.get_edition() - - def encode_oson(self, value: Any) -> bytes: - """ - Encodes a Python value into `OSON-encoded - `__ bytes and returns - them. This is useful for inserting into columns which have the check - constraint ``IS JSON FORMAT OSON`` enabled. - """ - self._verify_connected() - return self._impl.encode_oson(value) - - @property - def external_name(self) -> str: - """ - This read-write attribute specifies the external name that is used by - the connection when logging distributed transactions. - """ - self._verify_connected() - return self._impl.get_external_name() - - @external_name.setter - def external_name(self, value: str) -> None: - self._verify_connected() - self._impl.set_external_name(value) - - @property - def inputtypehandler(self) -> Callable: - """ - This read-write attribute specifies a method called for each value that - is bound to a statement executed on any cursor associated with this - connection. The method signature is handler(cursor, value, arraysize) - and the return value is expected to be a variable object or *None* in - which case a default variable object will be created. If this attribute - is *None*, the default behavior will take place for all values bound to - statements. - """ - self._verify_connected() - return self._impl.inputtypehandler - - @inputtypehandler.setter - def inputtypehandler(self, value: Callable) -> None: - self._verify_connected() - self._impl.inputtypehandler = value - - @property - def instance_name(self) -> str: - """ - This read-only attribute specifies the Oracle Database instance name - associated with the connection. It is the same value as the SQL - expression ``sys_context('userenv', 'instance_name')``. - """ - self._verify_connected() - return self._impl.get_instance_name() - - @property - def internal_name(self) -> str: - """ - This read-write attribute specifies the internal name that is used by - the connection when logging distributed transactions. - """ - self._verify_connected() - return self._impl.get_internal_name() - - @internal_name.setter - def internal_name(self, value: str) -> None: - self._verify_connected() - self._impl.set_internal_name(value) - - def is_healthy(self) -> bool: - """ - This function returns a boolean indicating the health status of a - connection. - - Connections may become unusable in several cases, such as, if the - network socket is broken, if an Oracle error indicates the connection - is unusable, or, after receiving a planned down notification from the - database. - - This function is best used before starting a new database request on an - existing :ref:`standalone connections `. For - pooled connections, the :meth:`ConnectionPool.acquire()` method - internally performs this check before returning a connection to the - application, see :ref:`poolhealth`. - - If this function returns *False*, the connection should be not be used - by the application and a new connection should be established instead. - - This function performs a local check. To fully check a connection's - health, use :meth:`ping()` which performs a round-trip to - the database. - """ - return self._impl is not None and self._impl.get_is_healthy() - - @property - def ltxid(self) -> bytes: - """ - This read-only attribute returns the logical transaction id for the - connection. It is used within Oracle Transaction Guard as a means of - ensuring that transactions are not duplicated. See :ref:`tg` for more - information. - - This is only available with Oracle Database 12.1 or later. In - python-oracledb Thick mode, it also requires Oracle Client libraries - 12.1 or later. - """ - self._verify_connected() - return self._impl.get_ltxid() - - @property - def max_identifier_length(self) -> int: - """ - This read-only attribute specifies the maximum database identifier - length in bytes supported by the database to which the connection has - been established. See `Database Object Naming Rules - `__. The value may be - *None*, *30*, or *128*. The value *None* indicates the size cannot be - reliably determined by python-oracledb, which occurs when using Thick - mode with Oracle Client libraries 12.1 (or older) to connect to Oracle - Database 12.2, or later. - """ - self._verify_connected() - return self._impl.get_max_identifier_length() - - @property - def max_open_cursors(self) -> int: - """ - This read-only attribute specifies the maximum number of cursors that - the database can have open concurrently. It is the same value returned - by the SQL ``SELECT VALUE FROM V$PARAMETER WHERE NAME = - 'open_cursors'``. When using python-oracledb Thick mode, Oracle Client - libraries 12.1 (or later) are required. - """ - self._verify_connected() - return self._impl.get_max_open_cursors() - - @property - def module(self) -> str: - """ - This write-only attribute sets the MODULE column in the V$SESSION view. - The maximum length for this string is 48 and if you exceed this length - you will get ``ORA-24960``. - """ - raise AttributeError("module is not readable") - - @module.setter - def module(self, value: str) -> None: - self._verify_connected() - self._impl.set_module(value) - - def msgproperties( - self, - payload: Optional[Union[bytes, str, DbObject]] = None, - correlation: Optional[str] = None, - delay: Optional[int] = None, - exceptionq: Optional[str] = None, - expiration: Optional[int] = None, - priority: Optional[int] = None, - recipients: Optional[list] = None, - ) -> MessageProperties: - """ - Returns an object specifying the properties of messages used in - advanced queuing. - - Each of the parameters are optional. If specified, they act as a - shortcut for setting each of the equivalently named properties. - """ - impl = self._impl.create_msg_props_impl() - props = MessageProperties._from_impl(impl) - if payload is not None: - props.payload = payload - if correlation is not None: - props.correlation = correlation - if delay is not None: - props.delay = delay - if exceptionq is not None: - props.exceptionq = exceptionq - if expiration is not None: - props.expiration = expiration - if priority is not None: - props.priority = priority - if recipients is not None: - props.recipients = recipients - return props - - def queue( - self, - name: str, - payload_type: Optional[Union[DbObjectType, str]] = None, - *, - payloadType: Optional[DbObjectType] = None, - ) -> Union[Queue, AsyncQueue]: - """ - Creates a queue which is used to enqueue and dequeue messages in - Advanced Queuing. - - The ``name`` parameter is expected to be a string identifying the queue - in which messages are to be enqueued or dequeued. - - The ``payload_type`` parameter, if specified, is expected to be an - :ref:`object type ` that identifies the type of payload - the queue expects. If the string "JSON" is specified, JSON data is - enqueued and dequeued. If not specified, RAW data is enqueued and - dequeued. - - For consistency and compliance with the PEP 8 naming style, the - parameter ``payloadType`` was renamed to ``payload_type``. The old name - will continue to work as a keyword parameter for a period of time. - """ - self._verify_connected() - payload_type_impl = None - is_json = False - if payloadType is not None: - if payload_type is not None: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="payloadType", - new_name="payload_type", - ) - payload_type = payloadType - if payload_type is not None: - if payload_type == "JSON": - is_json = True - elif not isinstance(payload_type, DbObjectType): - raise TypeError("expecting DbObjectType") - else: - payload_type_impl = payload_type._impl - impl = self._impl.create_queue_impl() - impl.initialize(self._impl, name, payload_type_impl, is_json) - return self._create_queue(impl) - - @property - def outputtypehandler(self) -> Callable: - """ - This read-write attribute specifies a method called for each column - that is going to be fetched from any cursor associated with this - connection. The method signature is ``handler(cursor, metadata)`` and - the return value is expected to be a :ref:`variable object` or - *None* in which case a default variable object will be created. If this - attribute is *None*, the default behavior will take place for all - columns fetched from cursors. - """ - self._verify_connected() - return self._impl.outputtypehandler - - @outputtypehandler.setter - def outputtypehandler(self, value: Callable) -> None: - self._verify_connected() - self._impl.outputtypehandler = value - - @property - def proxy_user(self) -> Union[str, None]: - """ - This read-only attribute returns the name of the user which was used as - a proxy when creating the connection to the database. - """ - self._verify_connected() - return self._impl.proxy_user - - def resume_sessionless_transaction( - self, - transaction_id: Union[str, bytes], - timeout: int = 60, - defer_round_trip: bool = False, - ) -> bytes: - """ - Resumes an existing sessionless transaction using the specified - transaction identifier. This method returns the transaction identifier - used to resume the sessionless transaction. - - The ``transaction_id`` parameter should be a string or bytes value that - uniquely identifies an existing sessionless transaction that is to be - resumed. - - The ``timeout`` parameter is the number of seconds that the current - connection waits to resume a transaction if another connection is using - it. When ``defer_round_trip`` is set to *False*, the wait happens in - the ``resume_sessionless_transaction()`` call itself, and the function - blocks until the transaction becomes available or the timeout expires. - When ``defer_round_trip`` is set to *True*, the resume is deferred and - the wait occurs at the time of the next database operation instead. At - the start of the wait period, if the transaction is not in use by any - other connection, the resume happens immediately. If the transaction - remains in use by the other connection after the timeout period, the - error `ORA-25351 - `__ is raised. If - another connection completes the transaction, the error `ORA-24756 - `__ is raised. - These error messages are only thrown for non-RAC instances. For - information on using Oracle RAC, see :ref:`Sessionless Transactions - with Oracle RAC `. The default value is *60* - seconds. - - The ``defer_round_trip`` parameter is a boolean that determines whether - the request to resume a transaction is to be sent immediately or with - the next database operation. If set to *False*, the request is sent - immediately. If set to *True*, the request is included with the next - database operation on the connection. The default value is *False*. - """ - self._verify_connected() - if transaction_id is None: - raise ValueError("transaction_id is required for resuming") - - normalized_txnid = normalize_sessionless_transaction_id(transaction_id) - - if not (isinstance(timeout, int) and timeout >= 0): - raise TypeError("timeout must be a non-negative integer") - - self._impl.resume_sessionless_transaction( - normalized_txnid, timeout, defer_round_trip - ) - return normalized_txnid - - @property - def sdu(self) -> int: - """ - This read-only attribute specifies the size of the Session Data Unit - (SDU) that is being used by the connection. The value will be the - lesser of the requested python-oracledb size and the maximum size - allowed by the database network configuration. It is available only in - python-oracledb Thin mode. To set the SDU in Thick mode, use a - connection string SDU parameter or set a value for DEFAULT_SDU_SIZE in - a sqlnet.ora configuration file. - """ - self._verify_connected() - return self._impl.get_sdu() - - @property - def serial_num(self) -> int: - """ - This read-only attribute specifies the session serial number associated - with the connection. It is the same value returned by the SQL ``SELECT - SERIAL# FROM V$SESSION WHERE SID=SYS_CONTEXT('USERENV', 'SID')``. It - is available only in python-oracledb Thin mode. - - For applications using :ref:`drcp`, the ``serial_num`` attribute may - not contain the current session state until a round-trip is made to the - database after acquiring a session. It is recommended to not use this - attribute if your application uses DRCP but may not perform a - round-trip. - """ - self._verify_connected() - return self._impl.get_serial_num() - - @property - def service_name(self) -> str: - """ - This read-only attribute specifies the Oracle Database service name - associated with the connection. This is the same value returned by the - SQL ``SELECT SYS_CONTEXT('USERENV', 'SERVICE_NAME') FROM DUAL``. - """ - self._verify_connected() - return self._impl.get_service_name() - - @property - def session_id(self) -> int: - """ - This read-only attribute specifies the session identifier associated - with the connection. It is the same value returned by the SQL ``SELECT - SYS_CONTEXT('USERENV', 'SID') FROM DUAL``. It is available only in - python-oracledb Thin mode. - - For applications using :ref:`drcp`, the ``session_id`` attribute may - not contain the current session state until a round-trip is made to the - database after acquiring a session. It is recommended to not use this - attribute if your application uses DRCP but may not perform a - round-trip. - """ - self._verify_connected() - return self._impl.get_session_id() - - @property - def stmtcachesize(self) -> int: - """ - This read-write attribute specifies the size of the statement cache. - This value can make a significant difference in performance if you have - a small number of statements that you execute repeatedly. - - The default value is *20*. - """ - self._verify_connected() - return self._impl.get_stmt_cache_size() - - @stmtcachesize.setter - def stmtcachesize(self, value: int) -> None: - self._verify_connected() - self._impl.set_stmt_cache_size(value) - - @property - def tag(self) -> str: - """ - This read-write attribute initially contains the actual tag of the - session that was acquired from a pool by - :meth:`ConnectionPool.acquire()`. If the connection was not acquired - from a pool or no tagging parameters were specified (``tag`` and - ``matchanytag``) when the connection was acquired from the pool, this - value will be None. If the value is changed, it must be a string - containing name=value pairs like "k1=v1;k2=v2". - - If this value is not *None* when the connection is released back to the - pool it will be used to retag the session. This value can be overridden - in the call to :meth:`ConnectionPool.release()`. - """ - self._verify_connected() - return self._impl.tag - - @tag.setter - def tag(self, value: str) -> None: - self._verify_connected() - self._impl.tag = value - - @property - def thin(self) -> bool: - """ - This read-only attribute returns a boolean indicating if - python-oracledb is in Thin mode (*True*) or Thick mode (*False*). - """ - self._verify_connected() - return self._impl.thin - - @property - def transaction_in_progress(self) -> bool: - """ - This read-only attribute specifies whether a transaction is currently - in progress on the database associated with the connection. - """ - self._verify_connected() - return self._impl.get_transaction_in_progress() - - @property - def username(self) -> str: - """ - This read-only attribute returns the name of the user which established - the connection to the database. - """ - self._verify_connected() - return self._impl.username - - @property - def version(self) -> str: - """ - This read-only attribute returns the version of the database to which a - connection has been established. - """ - if self._version is None: - self._verify_connected() - self._version = ".".join(str(c) for c in self._impl.server_version) - return self._version - - @property - def warning(self) -> Union[errors._Error, None]: - """ - This read-only attribute provides an - :ref:`oracledb._Error` object giving information about any - database warnings (such as the password being in the grace period, or - the pool being created with a smaller than requested size due to - database resource restrictions) that were generated during connection - establishment or by :meth:`oracledb.create_pool()`. The attribute will - be present if there was a warning, but creation otherwise completed - successfully. The connection will be usable despite the warning. - - For :ref:`standalone connections `, - ``Connection.warning`` will be present for the lifetime of the - connection. - - For :ref:`pooled connections `, ``Connection.warning`` - will be cleared when a connection is released to the pool such as with - :meth:`ConnectionPool.release()`. - - In python-oracledb Thick mode, warnings may be generated during pool - creation itself. These warnings will be placed on new connections - created by the pool, provided no warnings were generated by the - individual connection creations, in which case those connection - warnings will be returned. - - If no warning was generated the value *None* is returned. - """ - self._verify_connected() - return self._impl.warning - - def xid( - self, - format_id: int, - global_transaction_id: Union[bytes, str], - branch_qualifier: Union[bytes, str], - ) -> Xid: - """ - Returns a global transaction identifier (xid) that can be used with the - Two-Phase Commit (TPC) functions. - - The ``xid`` contains a format identifier, a global transaction - identifier, and a branch identifier. There are no checks performed at - the Python level. The values are checked by ODPI-C when they are passed - to the relevant functions. .. When this functionality is also - supported in the thin driver the checks will be performed at the Python - level as well. - - The ``format_id`` parameter should be a positive 32-bit integer. This - value identifies the format of the ``global_transaction_id`` and - ``branch_qualifier`` parameters and the value is determined by the - Transaction Manager (TM), if one is in use. - - The ``global_transaction_id`` and ``branch_qualifier`` parameters - should be of type bytes or string. If a value of type string is passed, - then this value will be UTF-8 encoded to bytes. The values cannot - exceed 64 bytes in length. - """ - return Xid(format_id, global_transaction_id, branch_qualifier) - - -class Connection(BaseConnection): - - def __init__( - self, - dsn: Optional[str] = None, - *, - pool: Optional["pool_module.ConnectionPool"] = None, - params: Optional[ConnectParams] = None, - **kwargs, - ) -> None: - """ - Constructor for creating a connection to the database. - """ - - super().__init__() - self._pool = pool - - # determine if thin mode is being used - with driver_mode.get_manager() as mode_mgr: - thin = mode_mgr.thin - - # determine which connection parameters to use - if params is None: - params_impl = base_impl.ConnectParamsImpl() - elif not isinstance(params, ConnectParams): - errors._raise_err(errors.ERR_INVALID_CONNECT_PARAMS) - else: - params_impl = params._impl.copy() - dsn = params_impl.process_args(dsn, kwargs, thin) - - # see if connection is being acquired from a pool - if pool is None: - pool_impl = None - else: - pool._verify_open() - pool_impl = pool._impl - - # create thin or thick implementation object - if thin: - if ( - params_impl.shardingkey is not None - or params_impl.supershardingkey is not None - ): - errors._raise_err( - errors.ERR_FEATURE_NOT_SUPPORTED, - feature="sharding", - driver_type="thick", - ) - if pool is not None: - impl = pool_impl.acquire(params_impl) - else: - impl = thin_impl.ThinConnImpl(dsn, params_impl) - impl.connect(params_impl) - else: - impl = thick_impl.ThickConnImpl(dsn, params_impl) - impl.connect(params_impl, pool_impl) - self._impl = impl - - # invoke callbacks, as applicable - if params_impl.on_connect_callback is not None: - params_impl.on_connect_callback(self) - if ( - impl.invoke_session_callback - and pool is not None - and pool.session_callback is not None - and callable(pool.session_callback) - ): - pool.session_callback(self, params_impl.tag) - impl.invoke_session_callback = False - - def __del__(self): - if self._impl is not None: - self._close(in_del=True) - - def __enter__(self): - """ - The entry point for the connection as a context manager. It returns - itself. - """ - self._verify_connected() - return self - - def __exit__(self, exc_type, exc_value, exc_tb): - """ - The exit point for the connection as a context manager. This will close - the connection and roll back any uncommitted transaction. - """ - if self._impl is not None: - self._close() - - def _close(self, in_del=False): - """ - Closes the connection and makes it unusable for further operations. An - Error exception will be raised if any operation is attempted with this - connection after this method completes successfully. - """ - if self._pool is not None: - pool_impl = self._pool._impl - if pool_impl is not None: - pool_impl.return_connection(self._impl, in_del) - else: - self._impl.close(in_del) - self._impl = None - - def _create_queue(self, impl): - """ - Returns a queue object that the user can use to dequeue and enqueue - messages. - """ - return Queue._from_impl(self, impl) - - def _get_oci_attr( - self, handle_type: int, attr_num: int, attr_type: int - ) -> Any: - """ - Returns the value of the specified OCI attribute from the internal - handle. This is only supported in python-oracledb thick mode and should - only be used as directed by Oracle. - """ - self._verify_connected() - return self._impl._get_oci_attr(handle_type, attr_num, attr_type) - - def _set_oci_attr( - self, handle_type: int, attr_num: int, attr_type: int, value: Any - ) -> None: - """ - Sets the value of the specified OCI attribute on the internal handle. - This is only supported in python-oracledb thick mode and should only - be used as directed by Oracle. - """ - self._verify_connected() - self._impl._set_oci_attr(handle_type, attr_num, attr_type, value) - - def begin( - self, - format_id: int = -1, - transaction_id: str = "", - branch_id: str = "", - ) -> None: - """ - Explicitly begins a new transaction. Without parameters, this - explicitly begins a local transaction; otherwise, this explicitly - begins a distributed (global) transaction with the given parameters. - See the Oracle documentation for more details. - - Note that in order to make use of global (distributed) transactions, - the :attr:`~Connection.internal_name` and - :attr:`~Connection.external_name` attributes must be set. - """ - if format_id != -1: - self.tpc_begin(self.xid(format_id, transaction_id, branch_id)) - - @property - def callTimeout(self) -> int: - """ - Deprecated. Use property call_timeout instead. - """ - return self.call_timeout - - @callTimeout.setter - def callTimeout(self, value: int) -> None: - self._verify_connected() - self._impl.set_call_timeout(value) - - def changepassword(self, old_password: str, new_password: str) -> None: - """ - Changes the password for the user to which the connection is connected. - """ - self._verify_connected() - self._impl.change_password(old_password, new_password) - - def clear_end_user_security_context(self) -> None: - """ - Clears the end user security context specified on a connection. - - This reverts the connection to its original state in which subsequent - database operations are executed on the connection without any end user - security context. - """ - self._verify_connected() - self._impl.clear_end_user_security_context() - - def close(self) -> None: - """ - Closes the connection now and makes it unusable for further operations. - An Error exception will be raised if any operation is attempted with - this connection after this method is completed successfully. - - All open cursors and LOBs created by the connection will be closed and - will also no longer be usable. - - Internally, references to the connection are held by cursor objects, - LOB objects, subscription objects, etc. Once all of these references - are released, the connection itself will be closed automatically. - Either control references to these related objects carefully or - explicitly close connections in order to ensure sufficient resources - are available. - """ - self._verify_connected() - self._close() - - def commit(self) -> None: - """ - Commits any pending transactions to the database. - """ - self._verify_connected() - self._impl.commit() - - def createlob( - self, lob_type: DbType, data: Optional[Union[str, bytes]] = None - ) -> LOB: - """ - Creates and returns a new temporary LOB object of the specified type. - The ``lob_type`` parameter should be one of - :data:`oracledb.DB_TYPE_CLOB`, :data:`oracledb.DB_TYPE_BLOB`, or - :data:`oracledb.DB_TYPE_NCLOB`. - - If data is supplied, it will be written to the temporary LOB before it - is returned. - """ - self._verify_connected() - if lob_type not in (DB_TYPE_CLOB, DB_TYPE_NCLOB, DB_TYPE_BLOB): - message = ( - "parameter should be one of oracledb.DB_TYPE_CLOB, " - "oracledb.DB_TYPE_BLOB or oracledb.DB_TYPE_NCLOB" - ) - raise TypeError(message) - impl = self._impl.create_temp_lob_impl(lob_type) - lob = LOB._from_impl(impl) - if data: - lob.write(data) - return lob - - def cursor( - self, scrollable: bool = False, handle: Optional[object] = None - ) -> Cursor: - """ - Returns a new :ref:`cursor object ` using the connection. - - The ``scrollable`` parameter specifies whether the cursor should be - scrollable. The :meth:`~Cursor.scroll()` method is only available if - this value is true when the cursor is created. - - The ``handle`` parameter specifies the Oracle Call Interface statement - handle wrapped in a PyCapsule named ``oci_stmt_handle``. It is only - supported in python-oracledb Thick mode. - """ - self._verify_connected() - return Cursor(self, scrollable, handle=handle) - - def direct_path_load( - self, - schema_name: str, - table_name: str, - column_names: list[str], - data: Any, - *, - batch_size: int = 2**32 - 1, - ) -> None: - """ - Load data into Oracle Database using the Direct Path Load interface. - It is available only in python-oracledb Thin mode. - - The ``data`` parameter can be a list of sequences, a DataFrame, or a - third-party DataFrame instance that supports the Apache Arrow PyCapsule - Interface. - - The ``batch_size`` parameter is used to split large data sets into - smaller pieces for sending to the database. It is the number of records - in each batch. This parameter can be used to tune performance. - """ - self._verify_connected() - self._impl.direct_path_load( - schema_name, table_name, column_names, data, batch_size - ) - - def fetch_df_all( - self, - statement: Optional[str] = None, - parameters: Optional[Union[list, tuple, dict]] = None, - arraysize: Optional[int] = None, - *, - fetch_decimals: Optional[bool] = None, - requested_schema: Optional[Any] = None, - handle: Optional[object] = None, - ) -> DataFrame: - """ - Fetches all rows of the SQL query ``statement``, returning them in a - :ref:`DataFrame ` object. An empty DataFrame is - returned if there are no rows available. - - The ``parameters`` parameter can be a list of tuples, where each tuple - item maps to one :ref:`bind variable placeholder ` in - ``statement``. It can also be a list of dictionaries, where the keys - match the bind variable placeholder names in ``statement``. - - The ``arraysize`` parameter can be specified to tune performance of - fetching data across the network. It defaults to - :attr:`oracledb.defaults.arraysize `. Internally, - the ``fetch_df_all()``'s :attr:`Cursor.prefetchrows` size is always set - to the value of the explicit or default ``arraysize`` parameter value. - - The ``fetch_decimals`` parameter specifies whether to return decimal - values when fetching columns of type ``NUMBER`` that are capable of - being represented in Apache Arrow Decimal128 format. The default value - is :data:`oracledb.defaults.fetch_decimals `. - - The ``requested_schema`` parameter specifies an object that implements - the Apache Arrow PyCapsule schema interface. The DataFrame returned by - ``fetch_df_all()`` will have the data types and names of the schema. - - The ``handle`` parameter specifies a PyCapsule named - ``oci_stmt_handle`` containing an OCIStmt handle. This is useful when - needing to fetch data from an existing open cursor that was created - externally. Note that this is only supported in python-oracledb Thick - mode. - - Any LOB fetched must be less than 1 GB. - """ - if not (statement is not None) ^ (handle is not None): - raise ValueError( - "One of the parameters 'statement' or 'handle' " - "is required but not both" - ) - cursor = self.cursor(handle=handle) - cursor._impl.fetching_arrow = True - if requested_schema is not None: - cursor._impl.schema_impl = ArrowSchemaImpl.from_arrow_schema( - requested_schema - ) - if arraysize is not None: - cursor.arraysize = arraysize - cursor.prefetchrows = cursor.arraysize - if statement is not None: - cursor.execute( - statement, - parameters, - fetch_decimals=fetch_decimals, - ) - else: - cursor._verify_fetch() - return cursor._impl.fetch_df_all(cursor) - - def fetch_df_batches( - self, - statement: Optional[str] = None, - parameters: Optional[Union[list, tuple, dict]] = None, - size: Optional[int] = None, - *, - fetch_decimals: Optional[bool] = None, - requested_schema: Optional[Any] = None, - handle: Optional[object] = None, - ) -> Iterator[DataFrame]: - """ - This returns an iterator yielding the next ``size`` rows of the SQL - query ``statement`` in each iteration as a :ref:`DataFrame - ` object. An empty DataFrame is returned if there - are no rows available. - - The ``parameters`` parameter can be a list of tuples, where each tuple - item maps to one :ref:`bind variable placeholder ` in - ``statement``. It can also be a list of dictionaries, where the keys - match the bind variable placeholder names in ``statement``. - - The ``size`` parameter controls the number of records fetched in each - batch. It defaults to - :attr:`oracledb.defaults.arraysize `. Internally, - the ``fetch_df_batches()``'s :attr:`Cursor.arraysize` and - :attr:`Cursor.prefetchrows` sizes are always set to the value of the - explicit or default ``size`` parameter value. - - The ``fetch_decimals`` parameter specifies whether to return decimal - values when fetching columns of type ``NUMBER`` that are capable of - being represented in Apache Arrow Decimal128 format. The default value - is :data:`oracledb.defaults.fetch_decimals `. - - The ``requested_schema`` parameter specifies an object that implements - the Apache Arrow PyCapsule schema interface. The DataFrame returned by - ``fetch_df_all()`` will have the data types and names of the schema. - - The ``handle`` parameter specifies a PyCapsule named - ``oci_stmt_handle`` containing an OCIStmt handle. This is useful when - needing to fetch data from an existing open cursor that was created - externally. Note that this is only supported in python-oracledb Thick - mode. - - Any LOB fetched must be less than 1 GB. - """ - if not (statement is not None) ^ (handle is not None): - raise ValueError( - "One of the parameters 'statement' or 'handle' " - "is required but not both" - ) - cursor = self.cursor(handle=handle) - cursor._impl.fetching_arrow = True - if requested_schema is not None: - cursor._impl.schema_impl = ArrowSchemaImpl.from_arrow_schema( - requested_schema - ) - if size is not None: - cursor.arraysize = size - cursor.prefetchrows = cursor.arraysize - if statement is not None: - cursor.execute( - statement, - parameters, - fetch_decimals=fetch_decimals, - ) - else: - cursor._verify_fetch() - if size is None: - yield cursor._impl.fetch_df_all(cursor) - else: - yield from cursor._impl.fetch_df_batches(cursor, batch_size=size) - - def getSodaDatabase(self) -> SodaDatabase: - """ - Returns a SodaDatabase object for Simple Oracle Document Access (SODA). - All SODA operations are performed either on the returned SodaDatabase - object or from objects created by the returned SodaDatabase object. See - `here `__ for - additional information on SODA. - """ - self._verify_connected() - db_impl = self._impl.create_soda_database_impl(self) - return SodaDatabase._from_impl(self, db_impl) - - def gettype(self, name: str) -> DbObjectType: - """ - Returns a type object given its name. This can then be used to create - objects which can be bound to cursors created by this connection. - """ - self._verify_connected() - obj_type_impl = self._impl.get_type(self, name) - return DbObjectType._from_impl(obj_type_impl) - - @property - def handle(self) -> int: - """ - This read-only attribute returns the Oracle Call Interface (OCI) - service context handle for the connection. It is primarily provided to - facilitate testing the creation of a connection using the OCI service - context handle. - - This property is only relevant to python-oracledb's thick mode. - """ - self._verify_connected() - return self._impl.get_handle() - - @property - def maxBytesPerCharacter(self) -> int: - """ - Deprecated. Use the constant value 4 instead. - """ - return 4 - - def ping(self) -> None: - """ - Pings the database to verify if the connection is valid. An exception - is thrown if it is not, in which case the connection should not be used - by the application and a new connection should be established instead. - - This function performs a :ref:`round-trip ` to the - database, so it should not be used unnecessarily. - - Note connection pools will perform the same health check automatically, - based on configuration settings. See :ref:`poolhealth`. - - Also, see :meth:`is_healthy()` for a lightweight alternative. - """ - self._verify_connected() - self._impl.ping() - - def prepare(self) -> bool: - """ - Prepares the distributed (global) transaction for commit. Returns a - boolean indicating if a transaction was actually prepared in order to - avoid the error ``ORA-24756 (transaction does not exist)``. - """ - return self.tpc_prepare() - - def rollback(self) -> None: - """ - Rolls back any pending transactions. - """ - self._verify_connected() - self._impl.rollback() - - def set_end_user_security_context( - self, - context, - ) -> None: - """ - Sets the end user security context on a connection using the specified - context. - - Once this method is called, the specified end user security context is - applicable to all database operations performed in the connection. - """ - self._verify_connected() - self._impl.set_end_user_security_context(context) - - def shutdown(self, mode: int = 0) -> None: - """ - Shuts down the database. In order to do this the connection must be - connected as :data:`~oracledb.SYSDBA` or :data:`~oracledb.SYSOPER`. Two - calls must be made unless the mode specified is - :data:`~oracledb.DBSHUTDOWN_ABORT`. - """ - self._verify_connected() - self._impl.shutdown(mode) - - def startup( - self, - force: bool = False, - restrict: bool = False, - pfile: Optional[str] = None, - ) -> None: - """ - Starts up the database. This is equivalent to the SQL*Plus command - ``startup nomount``. The connection must be connected as - :data:`~oracledb.SYSDBA` or :data:`~oracledb.SYSOPER` with the - :data:`~oracledb.PRELIM_AUTH` option specified for this to work. - - The ``pfile`` parameter, if specified, is expected to be a string - identifying the location of the parameter file (PFILE) which will be - used instead of the stored parameter file (SPFILE). - """ - self._verify_connected() - self._impl.startup(force, restrict, pfile) - - def subscribe( - self, - namespace: int = oracledb.SUBSCR_NAMESPACE_DBCHANGE, - protocol: int = oracledb.SUBSCR_PROTO_CALLBACK, - callback: Optional[Callable] = None, - timeout: int = 0, - operations: int = oracledb.OPCODE_ALLOPS, - port: int = 0, - qos: int = oracledb.SUBSCR_QOS_DEFAULT, - ip_address: Optional[str] = None, - grouping_class: int = oracledb.SUBSCR_GROUPING_CLASS_NONE, - grouping_value: int = 0, - grouping_type: int = oracledb.SUBSCR_GROUPING_TYPE_SUMMARY, - name: Optional[str] = None, - client_initiated: bool = False, - *, - ipAddress: Optional[str] = None, - groupingClass: int = oracledb.SUBSCR_GROUPING_CLASS_NONE, - groupingValue: int = 0, - groupingType: int = oracledb.SUBSCR_GROUPING_TYPE_SUMMARY, - clientInitiated: bool = False, - ) -> Subscription: - """ - Returns a new subscription object that receives notifications for - events that take place in the database that match the given parameters. - - The ``namespace`` parameter specifies the namespace the subscription - uses. It can be one of :data:`oracledb.SUBSCR_NAMESPACE_DBCHANGE` or - :data:`oracledb.SUBSCR_NAMESPACE_AQ`. - - The ``protocol`` parameter specifies the protocol to use when - notifications are sent. Currently the only valid value is - :data:`oracledb.SUBSCR_PROTO_OCI`. - - The ``callback`` is expected to be a callable that accepts a single - parameter. A :ref:`message object ` is passed to this - callback whenever a notification is received. - - The ``timeout`` value specifies that the subscription expires after the - given time in seconds. The default value of *0* indicates that the - subscription never expires. - - The ``operations`` parameter enables filtering of the messages that are - sent (insert, update, delete). The default value will send - notifications for all operations. This parameter is only used when the - namespace is set to :data:`oracledb.SUBSCR_NAMESPACE_DBCHANGE`. - - The ``port`` parameter specifies the listening port for callback - notifications from the database server. If not specified, an unused - port will be selected by the Oracle Client libraries. - - The ``qos`` parameter specifies quality of service options. It should - be one or more of the following flags, OR'ed together: - :data:`oracledb.SUBSCR_QOS_RELIABLE`, - :data:`oracledb.SUBSCR_QOS_DEREG_NFY`, - :data:`oracledb.SUBSCR_QOS_ROWIDS`, :data:`oracledb.SUBSCR_QOS_QUERY`, - :data:`oracledb.SUBSCR_QOS_BEST_EFFORT`. - - The ``ip_address`` parameter specifies the IP address (*IPv4* or - *IPv6*) in standard string notation to bind for callback notifications - from the database server. If not specified, the client IP address will - be determined by the Oracle Client libraries. - - The ``grouping_class`` parameter specifies what type of grouping of - notifications should take place. Currently, if set, this value can only - be set to the value :data:`oracledb.SUBSCR_GROUPING_CLASS_TIME`, which - will group notifications by the number of seconds specified in the - ``grouping_value`` parameter. The ``grouping_type`` parameter should be - one of the values :data:`oracledb.SUBSCR_GROUPING_TYPE_SUMMARY` (the - default) or :data:`oracledb.SUBSCR_GROUPING_TYPE_LAST`. - - The ``name`` parameter is used to identify the subscription and is - specific to the selected namespace. If the namespace parameter is - :data:`oracledb.SUBSCR_NAMESPACE_DBCHANGE` then the name is optional - and can be any value. If the namespace parameter is - :data:`oracledb.SUBSCR_NAMESPACE_AQ`, however, the name must be in the - format '' for single consumer queues and - ':' for multiple consumer queues, and - identifies the queue that will be monitored for messages. The queue - name may include the schema, if needed. - - The ``client_initiated`` parameter is a boolean that determines if - client initiated connections (the value *True*) or server initiated - connections (the default value *False*) will be established. Client - initiated connections are only available in Oracle Database 19.4 (or - later). For python-oracledb Thick mode, Oracle Client 19.4 (or later) - is additionally required. - - For consistency and compliance with the PEP 8 naming style, the - parameter ``ipAddress`` was renamed to ``ip_address``, the parameter - ``groupingClass`` was renamed to ``grouping_class``, the parameter - ``groupingValue`` was renamed to ``grouping_value``, the parameter - ``groupingType`` was renamed to ``grouping_type`` and the parameter - ``clientInitiated`` was renamed to ``client_initiated``. The old names - will continue to work as keyword parameters for a period of time. - """ - self._verify_connected() - if ipAddress is not None: - if ip_address is not None: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="ipAddress", - new_name="ip_address", - ) - ip_address = ipAddress - if groupingClass != oracledb.SUBSCR_GROUPING_CLASS_NONE: - if grouping_class != oracledb.SUBSCR_GROUPING_CLASS_NONE: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="groupingClass", - new_name="grouping_class", - ) - grouping_class = groupingClass - if groupingValue != 0: - if grouping_value != 0: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="groupingValue", - new_name="grouping_value", - ) - grouping_value = groupingValue - if groupingType != oracledb.SUBSCR_GROUPING_TYPE_SUMMARY: - if grouping_type != oracledb.SUBSCR_GROUPING_TYPE_SUMMARY: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="groupingType", - new_name="grouping_type", - ) - grouping_type = groupingType - if clientInitiated: - if client_initiated: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="clientInitiated", - new_name="client_initiated", - ) - client_initiated = clientInitiated - impl = self._impl.create_subscr_impl( - self, - callback, - namespace, - name, - protocol, - ip_address, - port, - timeout, - operations, - qos, - grouping_class, - grouping_value, - grouping_type, - client_initiated, - ) - subscr = Subscription._from_impl(impl) - impl.subscribe(subscr, self._impl) - return subscr - - def suspend_sessionless_transaction(self) -> None: - """ - Suspends the currently active sessionless transaction immediately. - - This detaches the transaction from the connection, allowing it to be - resumed later with the transaction identifier that was specified during - creation of the sessionless transaction. The ``timeout`` previously - passed to :meth:`begin_sessionless_transaction()` determines how long - the transaction can stay suspended before it is automatically rolled - back. - """ - self._verify_connected() - self._impl.suspend_sessionless_transaction() - - def tpc_begin( - self, xid: Xid, flags: int = oracledb.TPC_BEGIN_NEW, timeout: int = 0 - ) -> None: - """ - Begins a Two-Phase Commit (TPC) on a global transaction using the - specified transaction identifier (xid). - - The ``xid`` parameter should be an object returned by the - :meth:`xid()` method. - - The ``flags`` parameter is one of the constants - :data:`oracledb.TPC_BEGIN_JOIN`, :data:`oracledb.TPC_BEGIN_NEW`, - :data:`oracledb.TPC_BEGIN_PROMOTE`, or - :data:`oracledb.TPC_BEGIN_RESUME`. The default is - :data:`oracledb.TPC_BEGIN_NEW`. - - The ``timeout`` parameter is the number of seconds to wait for a - transaction to become available for resumption when - :data:`~oracledb.TPC_BEGIN_RESUME` is specified in the ``flags`` - parameter. When :data:`~oracledb.TPC_BEGIN_NEW` is specified in the - ``flags`` parameter, the ``timeout`` parameter indicates the number of - seconds the transaction can be inactive before it is automatically - terminated by the system. A transaction is inactive between the time it - is detached with :meth:`tpc_end()` and the time it is resumed with - :meth:`tpc_begin()`.The default is *0* seconds. - """ - self._verify_connected() - self._verify_xid(xid) - if flags not in ( - oracledb.TPC_BEGIN_NEW, - oracledb.TPC_BEGIN_JOIN, - oracledb.TPC_BEGIN_RESUME, - oracledb.TPC_BEGIN_PROMOTE, - ): - errors._raise_err(errors.ERR_INVALID_TPC_BEGIN_FLAGS) - self._impl.tpc_begin(xid, flags, timeout) - - def tpc_commit( - self, xid: Optional[Xid] = None, one_phase: bool = False - ) -> None: - """ - Commits a global transaction. When called with no arguments, this - method commits a transaction previously prepared with - :meth:`tpc_begin()` and optionally prepared with :meth:`tpc_prepare()`. - If :meth:`tpc_prepare()` is not called, a single phase commit is - performed. A transaction manager may choose to do this if only a single - resource is participating in the global transaction. - - If an ``xid`` parameter is passed, then an object should be returned by - the :meth:`xid()` function. This form should be called outside of a - transaction and is intended for use in recovery. - - The ``one_phase`` parameter is a boolean identifying whether to perform - a one-phase or two-phase commit. If ``one_phase`` parameter is *True*, - a single-phase commit is performed. The default value is *False*. This - parameter is only examined if a value is provided for the ``xid`` - parameter. Otherwise, the driver already knows whether - :meth:`tpc_prepare()` was called for the transaction and whether a - one-phase or two-phase commit is required. - """ - self._verify_connected() - if xid is not None: - self._verify_xid(xid) - self._impl.tpc_commit(xid, one_phase) - - def tpc_end( - self, xid: Optional[Xid] = None, flags: int = oracledb.TPC_END_NORMAL - ) -> None: - """ - Ends or suspends work on a global transaction. This function is only - intended for use by transaction managers. - - If an ``xid`` parameter is passed, then an object should be returned by - the :meth:`xid()` function. If no xid parameter is passed, then the - transaction identifier used by the previous :meth:`tpc_begin()` is - used. - - The ``flags`` parameter is one of the constants - :data:`oracledb.TPC_END_NORMAL` or :data:`oracledb.TPC_END_SUSPEND`. - The default is :data:`oracledb.TPC_END_NORMAL`. - - If the flag is :data:`oracledb.TPC_END_SUSPEND` then the transaction - may be resumed later by calling :meth:`tpc_begin()` with the flag - :data:`oracledb.TPC_BEGIN_RESUME`. - """ - self._verify_connected() - if xid is not None: - self._verify_xid(xid) - if flags not in (oracledb.TPC_END_NORMAL, oracledb.TPC_END_SUSPEND): - errors._raise_err(errors.ERR_INVALID_TPC_END_FLAGS) - self._impl.tpc_end(xid, flags) - - def tpc_forget(self, xid: Xid) -> None: - """ - Causes the database to forget a heuristically completed TPC - transaction. This function is only intended to be called by - transaction managers. - - The ``xid`` parameter is mandatory and should be an object should be - returned by the :meth:`xid()` function. - """ - self._verify_connected() - self._verify_xid(xid) - self._impl.tpc_forget(xid) - - def tpc_prepare(self, xid: Optional[Xid] = None) -> bool: - """ - Prepares a two-phase transaction for commit. After this function is - called, no further activity should take place on this connection until - either :meth:`tpc_commit()` or :meth:`tpc_rollback()` have been called. - - Returns a boolean indicating whether a commit is needed or not. If you - attempt to commit when not needed, then it results in the error - ``ORA-24756: transaction does not exist``. - - If an ``xid`` parameter is passed, then an object should be returned by - the :meth:`xid()` function. If an ``xid`` parameter is not passed, then - the transaction identifier used by the previous :meth:`tpc_begin()` is - used. - """ - self._verify_connected() - if xid is not None: - self._verify_xid(xid) - return self._impl.tpc_prepare(xid) - - def tpc_recover(self) -> list: - """ - Returns a list of pending transaction identifiers that require - recovery. Objects of type ``Xid`` (as returned by the - :meth:`xid()` function) are returned and these can be passed to - :meth:`tpc_commit()` or :meth:`tpc_rollback()` as needed. - - This function queries the DBA_PENDING_TRANSACTIONS view and requires - "SELECT" privilege on that view. - """ - with self.cursor() as cursor: - cursor.execute(""" - select - formatid, - globalid, - branchid - from dba_pending_transactions""") - cursor.rowfactory = Xid - return cursor.fetchall() - - def tpc_rollback(self, xid: Optional[Xid] = None) -> None: - """ - If an ``xid`` parameter is not passed, then it rolls back the - transaction that was previously started with - :meth:`tpc_begin()`. - - If an ``xid`` parameter is passed, then an object should be returned by - :meth:`xid()` and the specified transaction is rolled back. This form - should be called outside of a transaction and is intended for use in - recovery. - """ - self._verify_connected() - if xid is not None: - self._verify_xid(xid) - self._impl.tpc_rollback(xid) - - def unsubscribe(self, subscr: Subscription) -> None: - """ - Unsubscribe from events in the database that were originally subscribed - to using :meth:`subscribe()`. The connection used to unsubscribe should - be the same one used to create the subscription, or should access the - same database and be connected as the same user name. - """ - self._verify_connected() - if not isinstance(subscr, Subscription): - raise TypeError("expecting subscription") - if subscr._impl is None: - errors._raise_err(errors.ERR_NOT_SUBSCRIBED) - subscr._impl.unsubscribe(self, self._impl) - subscr._impl = None - - -def _connection_factory( - f: Callable[..., Connection], -) -> Callable[..., Connection]: - """ - Decorator which checks the validity of the supplied keyword parameters by - calling the original function (which does nothing), then creates and - returns an instance of the requested Connection class. The base Connection - class constructor does not check the validity of the supplied keyword - parameters. - """ - - @functools.wraps(f) - def connect( - dsn: Optional[str] = None, - *, - pool: Optional["pool_module.ConnectionPool"] = None, - pool_alias: Optional[str] = None, - conn_class: Type[Connection] = Connection, - params: Optional[ConnectParams] = None, - **kwargs, - ) -> Connection: - f( - dsn=dsn, - pool=pool, - pool_alias=pool_alias, - conn_class=conn_class, - params=params, - **kwargs, - ) - if not issubclass(conn_class, Connection): - errors._raise_err(errors.ERR_INVALID_CONN_CLASS) - if pool is not None and pool_alias is not None: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="pool", - new_name="pool_alias", - ) - if pool_alias is not None: - pool = pool_module.named_pools.pools.get(pool_alias) - if pool is None: - errors._raise_err( - errors.ERR_NAMED_POOL_MISSING, alias=pool_alias - ) - if pool is not None and not isinstance( - pool, pool_module.ConnectionPool - ): - message = "pool must be an instance of oracledb.ConnectionPool" - raise TypeError(message) - return conn_class(dsn=dsn, pool=pool, params=params, **kwargs) - - return connect - - -@_connection_factory -def connect( - dsn: Optional[str] = None, - *, - pool: Optional["pool_module.ConnectionPool"] = None, - pool_alias: Optional[str] = None, - conn_class: Type[Connection] = Connection, - params: Optional[ConnectParams] = None, - user: Optional[str] = None, - proxy_user: Optional[str] = None, - password: Optional[str] = None, - newpassword: Optional[str] = None, - wallet_password: Optional[str] = None, - access_token: Optional[Union[str, tuple, Callable]] = None, - host: Optional[str] = None, - port: Optional[int] = None, - protocol: Optional[str] = None, - https_proxy: Optional[str] = None, - https_proxy_port: Optional[int] = None, - service_name: Optional[str] = None, - instance_name: Optional[str] = None, - sid: Optional[str] = None, - server_type: Optional[str] = None, - cclass: Optional[str] = None, - purity: Optional[oracledb.Purity] = None, - expire_time: Optional[int] = None, - retry_count: Optional[int] = None, - retry_delay: Optional[int] = None, - tcp_connect_timeout: Optional[float] = None, - ssl_server_dn_match: Optional[bool] = None, - ssl_server_cert_dn: Optional[str] = None, - wallet_location: Optional[str] = None, - events: Optional[bool] = None, - externalauth: Optional[bool] = None, - mode: Optional[oracledb.AuthMode] = None, - disable_oob: Optional[bool] = None, - stmtcachesize: Optional[int] = None, - edition: Optional[str] = None, - tag: Optional[str] = None, - matchanytag: Optional[bool] = None, - config_dir: Optional[str] = None, - appcontext: Optional[list] = None, - shardingkey: Optional[list] = None, - supershardingkey: Optional[list] = None, - debug_jdwp: Optional[str] = None, - connection_id_prefix: Optional[str] = None, - ssl_context: Optional[Any] = None, - sdu: Optional[int] = None, - pool_boundary: Optional[str] = None, - use_tcp_fast_open: Optional[bool] = None, - ssl_version: Optional[ssl.TLSVersion] = None, - program: Optional[str] = None, - machine: Optional[str] = None, - terminal: Optional[str] = None, - osuser: Optional[str] = None, - driver_name: Optional[str] = None, - use_sni: Optional[bool] = None, - thick_mode_dsn_passthrough: Optional[bool] = None, - extra_auth_params: Optional[dict] = None, - pool_name: Optional[str] = None, - on_connect_callback: Optional[Callable] = None, - handle: Optional[int] = None, -) -> Connection: - """ - Factory function which creates a connection to the database and returns it. - - The ``dsn`` parameter (data source name) can be a string in the format - user/password@connect_string or can simply be the connect string (in - which case authentication credentials such as the username and password - need to be specified separately). See the documentation on connection - strings for more information. - - The ``pool`` parameter is expected to be a pool object. This parameter was - deprecated in python-oracledb 3.0.0. Use :meth:`ConnectionPool.acquire()` - instead since the use of this parameter is the equivalent of calling this - method. - - The ``conn_class`` parameter is expected to be Connection or a subclass of - Connection. - - The ``params`` parameter is expected to be of type ConnectParams and - contains connection parameters that will be used when establishing the - connection. See the documentation on ConnectParams for more information. - If this parameter is not specified, the additional keyword parameters will - be used to create an instance of ConnectParams. If both the ``params`` - parameter and additional keyword parameters are specified, the values in - the keyword parameters have precedence. Note that if a ``dsn`` is also - supplied, then in python-oracledb Thin mode, the values of the parameters - specified (if any) within the ``dsn`` will override the values passed as - additional keyword parameters, which themselves override the values set in - the ``params`` parameter object. - - The following parameters are all optional. A brief description of each - parameter follows: - - - ``user``: the name of the database user to connect to - (default: None) - - - ``proxy_user``: the name of the proxy user to connect to. If this value - is not specified, it will be parsed out of user if user is in the form - "user[proxy_user]" - (default: None) - - - ``password``: the password for the database user - (default: None) - - - ``newpassword``: a new password for the database user. The new password - will take effect immediately upon a successful connection to the database - (default: None) - - - ``wallet_password``: the password to use to decrypt the wallet, if it is - encrypted. This is not the database password. For Oracle Autonomous - Database this is the password created when downloading the wallet. This - value is only used in python-oracledb Thin mode. - (default: None) - - - ``access_token``: a string, or a 2-tuple, or a callable. If it is a - string, it specifies an Entra ID OAuth2 token used for Open Authorization - (OAuth 2.0) token based authentication. If it is a 2-tuple, it specifies - the token and private key strings used for Oracle Cloud Infrastructure - (OCI) Identity and Access Management (IAM) token based authentication. If - it is a callable, it returns either a string or a 2-tuple used for OAuth - 2.0 or OCI IAM token based authentication and is useful when the pool - needs to expand and create new connections but the current authentication - token has expired - (default: None) - - - ``host``: the hostname or IP address of the machine hosting the database - or the database listener - (default: None) - - - ``port``: the port number on which the database listener is listening - (default: 1521) - - - ``protocol``: one of the strings "tcp" or "tcps" indicating whether to - use unencrypted network traffic or encrypted network traffic (TLS) - (default: "tcp") - - - ``https_proxy``: the hostname or IP address of a proxy host to use for - tunneling secure connections - (default: None) - - - ``https_proxy_port``: the port on which to communicate with the proxy - host - (default: 0) - - - ``service_name``: the service name of the database - (default: None) - - - ``instance_name``: the instance name of the database - (default: None) - - - ``sid``: the system identifier (SID) of the database. Note using a - service_name instead is recommended - (default: None) - - - ``server_type``: the type of server connection that should be - established. If specified, it should be one of strings "dedicated", - "shared" or "pooled" - (default: None) - - - ``cclass``: the connection class to use for Database Resident Connection - Pooling (DRCP) - (default: None) - - - ``purity``: the connection purity to use for Database Resident Connection - Pooling (DRCP) - (default: :attr:`oracledb.PURITY_DEFAULT`) - - - ``expire_time``: the number of minutes between the sending of keepalive - probes. If this parameter is set to a value greater than zero it enables - keepalive - (default: 0) - - - ``retry_count``: the number of times that initial connection - establishment should be retried before the connection attempt is - terminated - (default: 0) - - - ``retry_delay``: the number of seconds to wait before retrying to - establish a connection - (default: 1) - - - ``tcp_connect_timeout``: a float indicating the maximum number of seconds - to wait when establishing a connection to the database host - (default: 20.0) - - - ``ssl_server_dn_match``: a boolean indicating whether the server - certificate distinguished name (DN) should be matched in addition to the - regular certificate verification that is performed. Note that if the - ssl_server_cert_dn parameter is not privided, host name matching is - performed instead - (default: True) - - - ``ssl_server_cert_dn``: the distinguished name (DN) which should be - matched with the server. This value is ignored if the ssl_server_dn_match - parameter is not set to the value True. If specified this value is used - for any verfication. Otherwise the hostname will be used - (default: None) - - - ``wallet_location``: the directory where the wallet can be found. In - python-oracledb Thin mode this must be the directory containing the PEM- - encoded wallet file ewallet.pem. In python-oracledb Thick mode this must - be the directory containing the file cwallet.sso - (default: None) - - - ``events``: a boolean specifying whether events mode should be enabled. - This value is only used in python-oracledb Thick mode and is needed for - continuous query notification and high availability event notifications - (default: False) - - - ``externalauth``: a boolean indicating whether to use external - authentication - (default: False) - - - ``mode``: the authorization mode to use. One of the constants - :data:`oracledb.AUTH_MODE_DEFAULT`, :data:`oracledb.AUTH_MODE_PRELIM`, - :data:`oracledb.AUTH_MODE_SYSASM`, :data:`oracledb.AUTH_MODE_SYSBKP`, - :data:`oracledb.AUTH_MODE_SYSDBA`, :data:`oracledb.AUTH_MODE_SYSDGD`, - :data:`oracledb.AUTH_MODE_SYSKMT`, :data:`oracledb.AUTH_MODE_SYSOPER`, or - :data:`oracledb.AUTH_MODE_SYSRAC` - (default: :attr:`oracledb.AUTH_MODE_DEFAULT`) - - - ``disable_oob``: a boolean indicating whether out-of-band breaks should - be disabled. This value is only used in python-oracledb Thin mode. It has - no effect on Windows which does not support this functionality - (default: False) - - - ``stmtcachesize``: the size of the statement cache - (default: :attr:`oracledb.defaults.stmtcachesize - `) - - - ``edition``: edition to use for the connection. This parameter cannot be - used simultaneously with the cclass parameter - (default: None) - - - ``tag``: identifies the type of connection that should be returned from a - pool. This value is only used in python-oracledb Thick mode - (default: None) - - - ``matchanytag``: a boolean specifying whether any tag can be used when - acquiring a connection from the pool. This value is only used in python- - oracledb Thick mode - (default: False) - - - ``config_dir``: a directory in which the optional tnsnames.ora - configuration file is located. This value is only used in python-oracledb - Thin mode. For python-oracledb Thick mode, it is used if - :attr:`oracledb.defaults.thick_mode_dsn_passthrough - ` is *False*. Otherwise in Thick - mode use the ``config_dir`` parameter of - :meth:`oracledb.init_oracle_client()` - (default: :attr:`oracledb.defaults.config_dir - `) - - - ``appcontext``: application context used by the connection. It should be - a list of 3-tuples (namespace, name, value) and each entry in the tuple - should be a string - (default: None) - - - ``shardingkey``: a list of strings, numbers, bytes or dates that identify - the database shard to connect to. This value is only used in python- - oracledb Thick mode - (default: None) - - - ``supershardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - (default: None) - - - ``debug_jdwp``: a string with the format "host=;port=" that - specifies the host and port of the PL/SQL debugger. This value is only - used in python-oracledb Thin mode. For python-oracledb Thick mode set - the ORA_DEBUG_JDWP environment variable - (default: None) - - - ``connection_id_prefix``: an application specific prefix that is added to - the connection identifier used for tracing - (default: None) - - - ``ssl_context``: an SSLContext object used for connecting to the database - using TLS. This SSL context will be modified to include the private key - or any certificates found in a separately supplied wallet. This parameter - should only be specified if the default SSLContext object cannot be used - (default: None) - - - ``sdu``: the requested size of the Session Data Unit (SDU), in bytes. The - value tunes internal buffers used for communication to the database. - Bigger values can increase throughput for large queries or bulk data - loads, but at the cost of higher memory use. The SDU size that will - actually be used is negotiated down to the lower of this value and the - database network SDU configuration value - (default: 8192) - - - ``pool_boundary``: one of the values "statement" or "transaction" - indicating when pooled DRCP connections can be returned to the pool. This - requires the use of DRCP with Oracle Database 23.4 or higher - (default: None) - - - ``use_tcp_fast_open``: a boolean indicating whether to use TCP fast open. - This is an Oracle Autonomous Database Serverless (ADB-S) specific - property for clients connecting from within OCI Cloud network. Please - refer to the ADB-S documentation for more information - (default: False) - - - ``ssl_version``: one of the values ssl.TLSVersion.TLSv1_2 or - ssl.TLSVersion.TLSv1_3 indicating which TLS version to use - (default: None) - - - ``program``: a string recorded by Oracle Database as the program from - which the connection originates - (default: :attr:`oracledb.defaults.program - `) - - - ``machine``: a string recorded by Oracle Database as the name of the - machine from which the connection originates - (default: :attr:`oracledb.defaults.machine - `) - - - ``terminal``: a string recorded by Oracle Database as the terminal - identifier from which the connection originates - (default: :attr:`oracledb.defaults.terminal - `) - - - ``osuser``: a string recorded by Oracle Database as the operating system - user who originated the connection - (default: :attr:`oracledb.defaults.osuser - `) - - - ``driver_name``: a string recorded by Oracle Database as the name of the - driver which originated the connection - (default: :attr:`oracledb.defaults.driver_name - `) - - - ``use_sni``: a boolean indicating whether to use the TLS SNI extension to - bypass the second TLS neogiation that would otherwise be required - (default: False) - - - ``thick_mode_dsn_passthrough``: a boolean indicating whether to pass the - connect string to the Oracle Client libraries unchanged without parsing - by the driver. Setting this to False makes python-oracledb Thick and Thin - mode applications behave similarly regarding connection string parameter - handling and locating any optional tnsnames.ora configuration file - (default: :attr:`oracledb.defaults.thick_mode_dsn_passthrough - `) - - - ``extra_auth_params``: a dictionary containing configuration parameters - necessary for Oracle Database authentication using plugins, such as the - Azure and OCI cloud-native authentication plugins - (default: None) - - - ``pool_name``: the name of the DRCP pool when using multi-pool DRCP with - Oracle Database 23.4, or higher - (default: None) - - - ``on_connect_callback``: a callable that is invoked immediately after a - standalone connection is created or a connection is acquired from a - connection pool, but before it is returned to the caller. A common use of - this callback is for creating and setting an end user security context - object for DeepSec support - (default: None) - - - ``handle``: an integer representing a pointer to a valid service context - handle. This value is only used in python-oracledb Thick mode. It should - be used with extreme caution - (default: 0) - """ - pass - - -class AsyncConnection(BaseConnection): - - def __init__( - self, - dsn: str, - pool: pool_module.AsyncConnectionPool, - params: ConnectParams, - kwargs: dict, - ) -> None: - """ - Constructor for creating an asynchronous connection to the database. - """ - super().__init__() - self._pool = pool - self._connect_coroutine = self._connect(dsn, pool, params, kwargs) - - def __await__(self): - coroutine = self._connect_coroutine - self._connect_coroutine = None - return coroutine.__await__() - - async def __aenter__(self): - """ - The entry point for the asynchronous connection as a context manager. - It returns itself. - """ - if self._connect_coroutine is not None: - await self._connect_coroutine - else: - self._verify_connected() - return self - - async def __aexit__(self, *exc_info): - """ - The exit point for the asynchronous connection as a context manager. - This will close the connection and roll back any uncommitted - transaction. - """ - if self._impl is not None: - await self._close() - - async def _close(self, in_del=False): - """ - Closes the connection and makes it unusable for further operations. An - Error exception will be raised if any operation is attempted with this - connection after this method completes successfully. - """ - if self._pool is not None: - pool_impl = self._pool._impl - if pool_impl is not None: - await pool_impl.return_connection(self._impl, in_del) - else: - await self._impl.close(in_del) - self._impl = None - - async def _connect(self, dsn, pool, params, kwargs): - """ - Internal method for establishing a connection to the database using - asyncio. - """ - - # mandate that thin mode is required; with asyncio, only thin mode is - # supported and only one thread is executing, so the manager can be - # manipulated directly - driver_mode.manager.thin_mode = True - - # determine which connection parameters to use - if params is None: - params_impl = base_impl.ConnectParamsImpl() - elif not isinstance(params, ConnectParams): - errors._raise_err(errors.ERR_INVALID_CONNECT_PARAMS) - else: - params_impl = params._impl.copy() - dsn = params_impl.process_args(dsn, kwargs, thin=True) - - # see if connection is being acquired from a pool - if pool is None: - pool_impl = None - elif not isinstance(pool, pool_module.AsyncConnectionPool): - message = ( - "pool must be an instance of oracledb.AsyncConnectionPool" - ) - raise TypeError(message) - else: - pool._verify_open() - pool_impl = pool._impl - - # create implementation object - if pool is not None: - impl = await pool_impl.acquire(params_impl) - else: - impl = thin_impl.AsyncThinConnImpl(dsn, params_impl) - await impl.connect(params_impl) - self._impl = impl - - # invoke callbacks, as applicable - if params_impl.on_connect_callback is not None: - await params_impl.on_connect_callback(self) - if ( - impl.invoke_session_callback - and pool is not None - and pool.session_callback is not None - and callable(pool.session_callback) - ): - await pool.session_callback(self, params_impl.tag) - impl.invoke_session_callback = False - - return self - - def _create_queue(self, impl): - """ - Returns a queue object that the user can use to dequeue and enqueue - messages. - """ - return AsyncQueue._from_impl(self, impl) - - def _verify_can_execute( - self, parameters: Any, keyword_parameters: Any - ) -> Any: - """ - Verifies that the connection can be used to execute - Verifies that the connection is connected to the database. If it is - not, an exception is raised. - """ - self._verify_connected() - if keyword_parameters: - if parameters: - errors._raise_err(errors.ERR_ARGS_AND_KEYWORD_ARGS) - return keyword_parameters - elif parameters is not None and not isinstance( - parameters, (list, tuple, dict) - ): - errors._raise_err(errors.ERR_WRONG_EXECUTE_PARAMETERS_TYPE) - return parameters - - async def begin_sessionless_transaction( - self, - transaction_id: Optional[Union[str, bytes]] = None, - timeout: int = 60, - defer_round_trip: bool = False, - ) -> bytes: - """ - Begins a new sessionless transaction. This method returns the - transaction identifier specified by the user or generated by - python-oracledb. - - The ``transaction_id`` parameter should be of type string or bytes. If - specified, it represents a unique identifier for the transaction. If a - string is passed, then it will be UTF-8 encoded to bytes. If this value - is not specified, then python-oracledb generates a a random - `universally-unique identifier (UUID) `__ value when this function is called. An example is - "36b8f84d-df4e-4d49-b662-bcde71a8764f". The user-chosen value cannot - exceed 64 bytes in length. - - The ``timeout`` parameter is the number of seconds that this - transaction can stay suspended when - :meth:`suspend_sessionless_transaction()` is later called, or if the - transaction is automatically suspended when the ``suspend_on_success`` - parameter is set to to *True* in :meth:`AsyncCursor.execute()` or - :meth:`AsyncCursor.executemany()`. The default value is *60* seconds. - If a transaction is not resumed within this specified duration, the - transaction will be rolled back. - - The ``defer_round_trip`` parameter is a boolean that determines whether - the request to start a transaction is to be sent immediately or with - the next database operation. If set to *False*, the request is sent - immediately. If set to *True*, the request is included with the next - database operation on the connection. The default value is *False*. - """ - self._verify_connected() - normalized_txnid = normalize_sessionless_transaction_id(transaction_id) - - if not isinstance(timeout, int) or timeout <= 0: - raise TypeError("timeout must be a positive integer") - - await self._impl.begin_sessionless_transaction( - normalized_txnid, timeout, defer_round_trip - ) - return normalized_txnid - - async def callfunc( - self, - name: str, - return_type: Any, - parameters: Optional[Union[list, tuple]] = None, - keyword_parameters: Optional[dict] = None, - ) -> Any: - """ - Calls a PL/SQL function with the given name. - - This is a shortcut for calling :meth:`cursor()`, - :meth:`AsyncCursor.callfunc()`, and then :meth:`AsyncCursor.close()`. - """ - with self.cursor() as cursor: - return await cursor.callfunc( - name, return_type, parameters, keyword_parameters - ) - - async def callproc( - self, - name: str, - parameters: Optional[Union[list, tuple]] = None, - keyword_parameters: Optional[dict] = None, - ) -> list: - """ - Calls a PL/SQL procedure with the given name. - - This is a shortcut for calling :meth:`cursor()`, - :meth:`AsyncCursor.callproc()`, and then :meth:`AsyncCursor.close()`. - """ - with self.cursor() as cursor: - return await cursor.callproc(name, parameters, keyword_parameters) - - async def changepassword( - self, old_password: str, new_password: str - ) -> None: - """ - Changes the password for the user to which the connection is connected. - """ - self._verify_connected() - await self._impl.change_password(old_password, new_password) - - async def close(self) -> None: - """ - Closes the connection. - """ - self._verify_connected() - await self._close() - - async def commit(self) -> None: - """ - Commits any pending transaction to the database. - """ - self._verify_connected() - await self._impl.commit() - - async def createlob( - self, lob_type: DbType, data: Optional[Union[str, bytes]] = None - ) -> AsyncLOB: - """ - Creates and returns a new temporary LOB of the specified type. - """ - self._verify_connected() - if lob_type not in (DB_TYPE_CLOB, DB_TYPE_NCLOB, DB_TYPE_BLOB): - message = ( - "parameter should be one of oracledb.DB_TYPE_CLOB, " - "oracledb.DB_TYPE_BLOB or oracledb.DB_TYPE_NCLOB" - ) - raise TypeError(message) - impl = await self._impl.create_temp_lob_impl(lob_type) - lob = AsyncLOB._from_impl(impl) - if data: - await lob.write(data) - return lob - - def cursor(self, scrollable: bool = False) -> AsyncCursor: - """ - Returns an :ref:`AsyncCursor object ` associated with - the connection. - """ - self._verify_connected() - return AsyncCursor(self, scrollable) - - async def execute( - self, - statement: str, - parameters: Optional[Union[list, tuple, dict]] = None, - ) -> None: - """ - Executes a statement against the database. - - This is a shortcut for calling :meth:`cursor()`, - :meth:`AsyncCursor.execute()`, and then :meth:`AsyncCursor.close()` - """ - with self.cursor() as cursor: - await cursor.execute(statement, parameters) - - async def executemany( - self, statement: Union[str, None], parameters: Any - ) -> None: - """ - Executes a SQL statement once using all bind value mappings or - sequences found in the sequence parameters. This can be used to insert, - update, or delete multiple rows in a table with a single - python-oracledb call. It can also invoke a PL/SQL procedure multiple - times. - - The ``parameters`` parameter can be a list of tuples, where each tuple - item maps to one bind variable placeholder in ``statement``. It can - also be a list of dictionaries, where the keys match the bind variable - placeholder names in ``statement``. If there are no bind values, or - values have previously been bound, the ``parameters`` value can be an - integer specifying the number of iterations. - - This is a shortcut for calling :meth:`cursor()`, - :meth:`AsyncCursor.executemany()`, and then - :meth:`AsyncCursor.close()`. - """ - with self.cursor() as cursor: - await cursor.executemany(statement, parameters) - - async def fetchall( - self, - statement: str, - parameters: Optional[Union[list, tuple, dict]] = None, - arraysize: Optional[int] = None, - rowfactory: Optional[Callable] = None, - *, - fetch_lobs: Optional[bool] = None, - fetch_decimals: Optional[bool] = None, - ) -> list: - """ - Executes a query and returns all of the rows. - - The default value for ``arraysize`` is - :attr:`oracledb.defaults.arraysize `. - - Internally, this method's :attr:`AsyncCursor.prefetchrows` size is set - to the value of the explicit or default ``arraysize`` parameter value. - - This is a shortcut for calling :meth:`cursor()`, - :meth:`AsyncCursor.fetchall()`, and then :meth:`AsyncCursor.close()`. - """ - with self.cursor() as cursor: - if arraysize is not None: - cursor.arraysize = arraysize - cursor.prefetchrows = cursor.arraysize - await cursor.execute( - statement, - parameters, - fetch_lobs=fetch_lobs, - fetch_decimals=fetch_decimals, - ) - cursor.rowfactory = rowfactory - return await cursor.fetchall() - - async def direct_path_load( - self, - schema_name: str, - table_name: str, - column_names: list[str], - data: Any, - *, - batch_size: int = 2**32 - 1, - ) -> None: - """ - Load data into Oracle Database using the Direct Path Load interface. - It is available only in python-oracledb Thin mode. - - The ``data`` parameter can be a list of sequences, a DataFrame, or a - third-party DataFrame instance that supports the Apache Arrow PyCapsule - Interface. - - The ``batch_size`` parameter is used to split large data sets into - smaller pieces for sending to the database. It is the number of records - in each batch. This parameter can be used to tune performance. - """ - self._verify_connected() - await self._impl.direct_path_load( - schema_name, table_name, column_names, data, batch_size - ) - - async def fetch_df_all( - self, - statement: str, - parameters: Optional[Union[list, tuple, dict]] = None, - arraysize: Optional[int] = None, - *, - fetch_decimals: Optional[bool] = None, - requested_schema: Optional[Any] = None, - ) -> DataFrame: - """ - Fetches all rows of the SQL query ``statement``, returning them in a - :ref:`DataFrame ` object. An empty DataFrame is - returned if there are no rows available. - - The ``parameters`` parameter can be a list of tuples, where each tuple - item maps to one :ref:`bind variable placeholder ` in - ``statement``. It can also be a list of dictionaries, where the keys - match the bind variable placeholder names in ``statement``. - - The ``arraysize`` parameter can be specified to tune performance of - fetching data across the network. It defaults to - :attr:`oracledb.defaults.arraysize `. Internally, - the ``fetch_df_all()``'s :attr:`Cursor.prefetchrows` size is always set - to the value of the explicit or default ``arraysize`` parameter value. - - The ``fetch_decimals`` parameter specifies whether to return decimal - values when fetching columns of type ``NUMBER`` that are capable of - being represented in Apache Arrow Decimal128 format. The default value - is :data:`oracledb.defaults.fetch_decimals `. - - The ``requested_schema`` parameter specifies an object that implements - the Apache Arrow PyCapsule schema interface. The DataFrame returned by - ``fetch_df_all()`` will have the data types and names of the schema. - """ - cursor = self.cursor() - cursor._impl.fetching_arrow = True - if requested_schema is not None: - cursor._impl.schema_impl = ArrowSchemaImpl.from_arrow_schema( - requested_schema - ) - if arraysize is not None: - cursor.arraysize = arraysize - cursor.prefetchrows = cursor.arraysize - await cursor.execute( - statement, - parameters, - fetch_decimals=fetch_decimals, - ) - return await cursor._impl.fetch_df_all(cursor) - - async def fetch_df_batches( - self, - statement: str, - parameters: Optional[Union[list, tuple, dict]] = None, - size: Optional[int] = None, - *, - fetch_decimals: Optional[bool] = None, - requested_schema: Optional[Any] = None, - ) -> Iterator[DataFrame]: - """ - This returns an iterator yielding the next ``size`` rows of the SQL - query ``statement`` in each iteration as a :ref:`DataFrame - ` object. An empty DataFrame is returned if there - are no rows available. - - The ``parameters`` parameter can be a list of tuples, where each tuple - item maps to one :ref:`bind variable placeholder ` in - ``statement``. It can also be a list of dictionaries, where the keys - match the bind variable placeholder names in ``statement``. - - The ``size`` parameter controls the number of records fetched in each - batch. It defaults to - :attr:`oracledb.defaults.arraysize `. Internally, - the ``fetch_df_batches()``'s :attr:`Cursor.arraysize` and - :attr:`Cursor.prefetchrows` sizes are always set to the value of the - explicit or default ``size`` parameter value. - - The ``fetch_decimals`` parameter specifies whether to return - decimal values when fetching columns of type ``NUMBER`` that are - capable of being represented in Arrow Decimal128 format. The default - value is - :data:`oracledb.defaults.fetch_decimals `. - - The ``requested_schema`` parameter specifies an object that implements - the Apache Arrow PyCapsule schema interface. The DataFrame returned by - ``fetch_df_all()`` will have the data types and names of the schema. - """ - cursor = self.cursor() - cursor._impl.fetching_arrow = True - if requested_schema is not None: - cursor._impl.schema_impl = ArrowSchemaImpl.from_arrow_schema( - requested_schema - ) - if size is not None: - cursor.arraysize = size - cursor.prefetchrows = cursor.arraysize - await cursor.execute( - statement, - parameters, - fetch_decimals=fetch_decimals, - ) - if size is None: - yield await cursor._impl.fetch_df_all(cursor) - else: - async for df in cursor._impl.fetch_df_batches(cursor, size): - yield df - - async def fetchmany( - self, - statement: str, - parameters: Optional[Union[list, tuple, dict]] = None, - num_rows: Optional[int] = None, - rowfactory: Optional[Callable] = None, - *, - fetch_lobs: Optional[bool] = None, - fetch_decimals: Optional[bool] = None, - ) -> list: - """ - Executes a query and returns up to the specified number of rows. - - The default value for ``num_rows`` is the value of - :attr:`oracledb.defaults.arraysize `. - - Internally, this method's :attr:`AsyncCursor.prefetchrows` size is set - to the value of the explicit or default ``num_rows`` parameter, - allowing all rows to be fetched in one :ref:`round-trip ` - - Since only one fetch is performed for a query, consider adding a - ``FETCH NEXT`` clause to the statement to prevent the database - processing rows that will never be fetched, see :ref:`rowlimit`. - - This a shortcut for calling :meth:`cursor()`, - :meth:`AsyncCursor.fetchmany()`, and then :meth:`AsyncCursor.close()`. - """ - with self.cursor() as cursor: - if num_rows is None: - num_rows = cursor.arraysize - elif num_rows <= 0: - return [] - cursor.arraysize = cursor.prefetchrows = num_rows - await cursor.execute( - statement, - parameters, - fetch_lobs=fetch_lobs, - fetch_decimals=fetch_decimals, - ) - cursor.rowfactory = rowfactory - return await cursor.fetchmany(num_rows) - - async def fetchone( - self, - statement: str, - parameters: Optional[Union[list, tuple, dict]] = None, - rowfactory: Optional[Callable] = None, - *, - fetch_lobs: Optional[bool] = None, - fetch_decimals: Optional[bool] = None, - ) -> Any: - """ - Executes a query and returns the first row of the result set if one - exists (or *None* if no rows exist). - - Internally, this method's :attr:`Cursor.prefetchrows` and - :attr:`Cursor.arraysize` sizes will be set to *1*. - - Since only one fetch is performed for a query, consider adding a - ``WHERE`` condition or using a ``FETCH NEXT`` clause in the statement - to prevent the database processing rows that will never be fetched, see - :ref:`rowlimit`. - - This a shortcut for calling :meth:`cursor()`, - :meth:`AsyncCursor.fetchone()`, and then :meth:`AsyncCursor.close()`. - """ - with self.cursor() as cursor: - cursor.prefetchrows = cursor.arraysize = 1 - await cursor.execute( - statement, - parameters, - fetch_lobs=fetch_lobs, - fetch_decimals=fetch_decimals, - ) - cursor.rowfactory = rowfactory - return await cursor.fetchone() - - async def gettype(self, name: str) -> DbObjectType: - """ - Returns a type object given its name. This can then be used to create - objects which can be bound to cursors created by this connection. - """ - self._verify_connected() - obj_type_impl = await self._impl.get_type(self, name) - return DbObjectType._from_impl(obj_type_impl) - - async def ping(self) -> None: - """ - Pings the database to verify if the connection is valid. - """ - self._verify_connected() - await self._impl.ping() - - async def resume_sessionless_transaction( - self, - transaction_id: Union[str, bytes], - timeout: int = 60, - defer_round_trip: bool = False, - ) -> bytes: - """ - Resumes an existing sessionless transaction using the specified - transaction identifier. This method returns the transaction identifier - used to resume the sessionless transaction. - - The ``transaction_id`` parameter should be a string or bytes value that - uniquely identifies an existing sessionless transaction that is to be - resumed. - - The ``timeout`` parameter is the number of seconds that the current - connection waits to resume a transaction if another connection is using - it. When ``defer_round_trip`` is set to *False*, the wait happens in - the ``resume_sessionless_transaction()`` call itself, and the function - blocks until the transaction becomes available or the timeout expires. - When ``defer_round_trip`` is set to *True*, the resume is deferred and - the wait occurs at the time of the next database operation instead. At - the start of the wait period, if the transaction is not in use by any - other connection, the resume happens immediately. If the transaction - remains in use by the other connection after the timeout period, the - error `ORA-25351 - `__ is raised. If - another connection completes the transaction, the error `ORA-24756 - `__ is raised. - These error messages are only thrown for non-RAC instances. For - information on using Oracle RAC, see :ref:`Sessionless Transactions - with Oracle RAC `. The default value is *60* - seconds. - - The ``defer_round_trip`` parameter is a boolean that determines whether - the request to resume a transaction is to be sent immediately or with - the next database operation. If set to *False*, the request is sent - immediately. If set to *True*, the request is included with the next - database operation on the connection. The default value is *False*. - """ - self._verify_connected() - if transaction_id is None: - raise ValueError("transaction_id is required for resuming") - - normalized_txnid = normalize_sessionless_transaction_id(transaction_id) - - if not (isinstance(timeout, int) and timeout >= 0): - raise TypeError("timeout must be a non-negative integer") - - await self._impl.resume_sessionless_transaction( - normalized_txnid, timeout, defer_round_trip - ) - return normalized_txnid - - async def rollback(self) -> None: - """ - Rolls back any pending transaction. - """ - self._verify_connected() - await self._impl.rollback() - - async def run_pipeline( - self, - pipeline: Pipeline, - continue_on_error: bool = False, - ) -> list[PipelineOpResult]: - """ - Runs all of the operations in the pipeline and returns a list of - PipelineOpResult, each entry corresponding to an operation executed in - the pipeline. - - The ``continue_on_error`` parameter determines whether operations - should continue to run after an error has occurred. If this parameter - is set to *True*, then the :attr:`PipelineOpResult.error` attribute - will be populated with an :ref:`_Error ` instance which - identifies the error that occurred. If this parameter is set to - *False*, then an exception will be raised as soon as an error is - detected and all subsequent operations will be terminated. The default - value is *False*. - """ - self._verify_connected() - results = [op._create_result() for op in pipeline.operations] - if self._impl.supports_pipelining() and len(results) > 1: - await self._impl.run_pipeline_with_pipelining( - self, results, continue_on_error - ) - else: - await self._impl.run_pipeline_without_pipelining( - self, results, continue_on_error - ) - return results - - async def suspend_sessionless_transaction(self) -> None: - """ - Suspends the currently active sessionless transaction immediately. - - This detaches the transaction from the connection, allowing it to be - resumed later with the transaction identifier that was specified during - creation of the sessionless transaction. The ``timeout`` previously - passed to :meth:`AsyncConnection.begin_sessionless_transaction()` - determines how long the transaction can stay suspended before it is - automatically rolled back. - """ - self._verify_connected() - await self._impl.suspend_sessionless_transaction() - - async def tpc_begin( - self, xid: Xid, flags: int = oracledb.TPC_BEGIN_NEW, timeout: int = 0 - ) -> None: - """ - Begins a Two-Phase Commit (TPC) on a global transaction using the - specified transaction identifier (xid). - - The ``xid`` parameter should be an object returned by the - :meth:`xid()` method. - - The ``flags`` parameter is one of the constants - :data:`oracledb.TPC_BEGIN_JOIN`, :data:`oracledb.TPC_BEGIN_NEW`, - :data:`oracledb.TPC_BEGIN_PROMOTE`, or - :data:`oracledb.TPC_BEGIN_RESUME`. The default is - :data:`oracledb.TPC_BEGIN_NEW`. - - The ``timeout`` parameter is the number of seconds to wait for a - transaction to become available for resumption when - :data:`~oracledb.TPC_BEGIN_RESUME` is specified in the ``flags`` - parameter. When :data:`~oracledb.TPC_BEGIN_NEW` is specified in the - ``flags`` parameter, the ``timeout`` parameter indicates the number of - seconds the transaction can be inactive before it is automatically - terminated by the system. A transaction is inactive between the time it - is detached with :meth:`AsyncConnection.tpc_end()` and the time it is - resumed with :meth:`AsyncConnection.tpc_begin()`.The default is *0* - seconds. - """ - self._verify_connected() - self._verify_xid(xid) - if flags not in ( - oracledb.TPC_BEGIN_NEW, - oracledb.TPC_BEGIN_JOIN, - oracledb.TPC_BEGIN_RESUME, - oracledb.TPC_BEGIN_PROMOTE, - ): - errors._raise_err(errors.ERR_INVALID_TPC_BEGIN_FLAGS) - await self._impl.tpc_begin(xid, flags, timeout) - - async def tpc_commit( - self, xid: Optional[Xid] = None, one_phase: bool = False - ) -> None: - """ - Commits a global transaction. When called with no arguments, this - method commits a transaction previously prepared with - :meth:`~AsyncConnection.tpc_begin()` and optionally prepared with - :meth:`~AsyncConnection.tpc_prepare()`. If - :meth:`~AsyncConnection.tpc_prepare()` is not called, a single phase - commit is performed. A transaction manager may choose to do this if - only a single resource is participating in the global transaction. - - If an ``xid`` parameter is passed, then an object should be returned by - the :meth:`~Connection.xid()` function. This form should be called - outside of a transaction and is intended for use in recovery. - - The ``one_phase`` parameter is a boolean identifying whether to perform - a one-phase or two-phase commit. If ``one_phase`` parameter is *True*, - a single-phase commit is performed. The default value is *False*. This - parameter is only examined if a value is provided for the ``xid`` - parameter. Otherwise, the driver already knows whether - :meth:`tpc_prepare()` was called for the transaction and whether a - one-phase or two-phase commit is required. - """ - self._verify_connected() - if xid is not None: - self._verify_xid(xid) - await self._impl.tpc_commit(xid, one_phase) - - async def tpc_end( - self, xid: Optional[Xid] = None, flags: int = oracledb.TPC_END_NORMAL - ) -> None: - """ - Ends or suspends work on a global transaction. This function is only - intended for use by transaction managers. - - If an ``xid`` parameter is passed, then an object should be returned by - the :meth:`~Connection.xid()` function. If no xid parameter is passed, - then the transaction identifier used by the previous - :meth:`~Connection.tpc_begin()` is used. - - The ``flags`` parameter is one of the constants - :data:`oracledb.TPC_END_NORMAL` or :data:`oracledb.TPC_END_SUSPEND`. - The default is :data:`oracledb.TPC_END_NORMAL`. - - If the flag is :data:`oracledb.TPC_END_SUSPEND` then the transaction - may be resumed later by calling :meth:`AsyncConnection.tpc_begin()` - with the flag :data:`oracledb.TPC_BEGIN_RESUME`. - """ - self._verify_connected() - if xid is not None: - self._verify_xid(xid) - if flags not in (oracledb.TPC_END_NORMAL, oracledb.TPC_END_SUSPEND): - errors._raise_err(errors.ERR_INVALID_TPC_END_FLAGS) - await self._impl.tpc_end(xid, flags) - - async def tpc_forget(self, xid: Xid) -> None: - """ - Causes the database to forget a heuristically completed TPC - transaction. This function is only intended to be called by - transaction managers. - - The ``xid`` parameter is mandatory and should be an object should be - returned by the :meth:`xid()` function. - """ - self._verify_connected() - self._verify_xid(xid) - await self._impl.tpc_forget(xid) - - async def tpc_prepare(self, xid: Optional[Xid] = None) -> bool: - """ - Prepares a two-phase transaction for commit. After this function is - called, no further activity should take place on this connection until - either :meth:`tpc_commit()` or :meth:`tpc_rollback()` have been called. - - Returns a boolean indicating whether a commit is needed or not. If you - attempt to commit when not needed, then it results in the error - ``ORA-24756: transaction does not exist``. - - If an ``xid`` parameter is passed, then an object should be returned by - the :meth:`xid()` function. If an ``xid`` parameter is not passed, then - the transaction identifier used by the previous :meth:`tpc_begin()` is - used. - """ - self._verify_connected() - if xid is not None: - self._verify_xid(xid) - return await self._impl.tpc_prepare(xid) - - async def tpc_recover(self) -> list: - """ - Returns a list of pending transaction identifiers that require - recovery. Objects of type ``Xid`` (as returned by the - :meth:`~Connection.xid()` function) are returned and these can be - passed to :meth:`tpc_commit()` or :meth:`tpc_rollback()` as needed. - - This function queries the view ``DBA_PENDING_TRANSACTIONS`` and - requires ``SELECT`` privilege on that view. - """ - with self.cursor() as cursor: - await cursor.execute(""" - select - formatid, - globalid, - branchid - from dba_pending_transactions""") - cursor.rowfactory = Xid - return await cursor.fetchall() - - async def tpc_rollback(self, xid: Optional[Xid] = None) -> None: - """ - Rolls back a global transaction. - - If an ``xid`` parameter is not passed, then it rolls back the - transaction that was previously started with - :meth:`~AsyncConnection.tpc_begin()`. - - If an ``xid`` parameter is passed, then an object should be returned by - :meth:`~Connection.xid()` and the specified transaction is rolled back. - This form should be called outside of a transaction and is intended for - use in recovery. - """ - self._verify_connected() - if xid is not None: - self._verify_xid(xid) - await self._impl.tpc_rollback(xid) - - -def _async_connection_factory( - f: Callable[..., AsyncConnection], -) -> Callable[..., AsyncConnection]: - """ - Decorator which checks the validity of the supplied keyword parameters by - calling the original function (which does nothing), then creates and - returns an instance of the requested AsyncConnection class. - """ - - @functools.wraps(f) - def connect_async( - dsn: Optional[str] = None, - *, - pool: Optional["pool_module.AsyncConnectionPool"] = None, - pool_alias: Optional[str] = None, - conn_class: Type[AsyncConnection] = AsyncConnection, - params: Optional[ConnectParams] = None, - **kwargs, - ) -> AsyncConnection: - # check arguments - f( - dsn=dsn, - pool=pool, - pool_alias=pool_alias, - conn_class=conn_class, - params=params, - **kwargs, - ) - if not issubclass(conn_class, AsyncConnection): - errors._raise_err(errors.ERR_INVALID_CONN_CLASS) - - if pool is not None and pool_alias is not None: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="pool", - new_name="pool_alias", - ) - if pool_alias is not None: - pool = pool_module.named_pools.pools.get(pool_alias) - if pool is None: - errors._raise_err( - errors.ERR_NAMED_POOL_MISSING, alias=pool_alias - ) - if pool is not None and not isinstance( - pool, pool_module.AsyncConnectionPool - ): - message = ( - "pool must be an instance of oracledb.AsyncConnectionPool" - ) - raise TypeError(message) - if params is not None and not isinstance(params, ConnectParams): - errors._raise_err(errors.ERR_INVALID_CONNECT_PARAMS) - - # build connection class and call the implementation connect to - # actually establish the connection - oracledb.enable_thin_mode() - return conn_class(dsn, pool, params, kwargs) - - return connect_async - - -@_async_connection_factory -def connect_async( - dsn: Optional[str] = None, - *, - pool: Optional["pool_module.AsyncConnectionPool"] = None, - pool_alias: Optional[str] = None, - conn_class: Type[AsyncConnection] = AsyncConnection, - params: Optional[ConnectParams] = None, - user: Optional[str] = None, - proxy_user: Optional[str] = None, - password: Optional[str] = None, - newpassword: Optional[str] = None, - wallet_password: Optional[str] = None, - access_token: Optional[Union[str, tuple, Callable]] = None, - host: Optional[str] = None, - port: Optional[int] = None, - protocol: Optional[str] = None, - https_proxy: Optional[str] = None, - https_proxy_port: Optional[int] = None, - service_name: Optional[str] = None, - instance_name: Optional[str] = None, - sid: Optional[str] = None, - server_type: Optional[str] = None, - cclass: Optional[str] = None, - purity: Optional[oracledb.Purity] = None, - expire_time: Optional[int] = None, - retry_count: Optional[int] = None, - retry_delay: Optional[int] = None, - tcp_connect_timeout: Optional[float] = None, - ssl_server_dn_match: Optional[bool] = None, - ssl_server_cert_dn: Optional[str] = None, - wallet_location: Optional[str] = None, - events: Optional[bool] = None, - externalauth: Optional[bool] = None, - mode: Optional[oracledb.AuthMode] = None, - disable_oob: Optional[bool] = None, - stmtcachesize: Optional[int] = None, - edition: Optional[str] = None, - tag: Optional[str] = None, - matchanytag: Optional[bool] = None, - config_dir: Optional[str] = None, - appcontext: Optional[list] = None, - shardingkey: Optional[list] = None, - supershardingkey: Optional[list] = None, - debug_jdwp: Optional[str] = None, - connection_id_prefix: Optional[str] = None, - ssl_context: Optional[Any] = None, - sdu: Optional[int] = None, - pool_boundary: Optional[str] = None, - use_tcp_fast_open: Optional[bool] = None, - ssl_version: Optional[ssl.TLSVersion] = None, - program: Optional[str] = None, - machine: Optional[str] = None, - terminal: Optional[str] = None, - osuser: Optional[str] = None, - driver_name: Optional[str] = None, - use_sni: Optional[bool] = None, - thick_mode_dsn_passthrough: Optional[bool] = None, - extra_auth_params: Optional[dict] = None, - pool_name: Optional[str] = None, - on_connect_callback: Optional[Callable] = None, - handle: Optional[int] = None, -) -> AsyncConnection: - """ - Factory function which creates a connection to the database and returns it. - - The ``dsn`` parameter (data source name) can be a string in the format - user/password@connect_string or can simply be the connect string (in - which case authentication credentials such as the username and password - need to be specified separately). See the documentation on connection - strings for more information. - - The ``pool`` parameter is expected to be a pool object. This parameter was - deprecated in python-oracledb 3.0.0. Use :meth:`ConnectionPool.acquire()` - instead since the use of this parameter is the equivalent of calling this - method. - - The ``conn_class`` parameter is expected to be AsyncConnection or a - subclass of AsyncConnection. - - The ``params`` parameter is expected to be of type ConnectParams and - contains connection parameters that will be used when establishing the - connection. See the documentation on ConnectParams for more information. If - this parameter is not specified, the additional keyword parameters will be - used to create an instance of ConnectParams. If both the ``params`` - parameter and additional keyword parameters are specified, the values in - the keyword parameters have precedence. Note that if a ``dsn`` is also - supplied, then in python-oracledb Thin mode, the values of the parameters - specified (if any) within the dsn will override the values passed as - additional keyword parameters, which themselves override the values set in - the ``params`` parameter object. - - The following parameters are all optional. A brief description of each - parameter follows: - - - ``user``: the name of the database user to connect to - (default: None) - - - ``proxy_user``: the name of the proxy user to connect to. If this value - is not specified, it will be parsed out of user if user is in the form - "user[proxy_user]" - (default: None) - - - ``password``: the password for the database user - (default: None) - - - ``newpassword``: a new password for the database user. The new password - will take effect immediately upon a successful connection to the database - (default: None) - - - ``wallet_password``: the password to use to decrypt the wallet, if it is - encrypted. This is not the database password. For Oracle Autonomous - Database this is the password created when downloading the wallet. This - value is only used in python-oracledb Thin mode. - (default: None) - - - ``access_token``: a string, or a 2-tuple, or a callable. If it is a - string, it specifies an Entra ID OAuth2 token used for Open Authorization - (OAuth 2.0) token based authentication. If it is a 2-tuple, it specifies - the token and private key strings used for Oracle Cloud Infrastructure - (OCI) Identity and Access Management (IAM) token based authentication. If - it is a callable, it returns either a string or a 2-tuple used for OAuth - 2.0 or OCI IAM token based authentication and is useful when the pool - needs to expand and create new connections but the current authentication - token has expired - (default: None) - - - ``host``: the hostname or IP address of the machine hosting the database - or the database listener - (default: None) - - - ``port``: the port number on which the database listener is listening - (default: 1521) - - - ``protocol``: one of the strings "tcp" or "tcps" indicating whether to - use unencrypted network traffic or encrypted network traffic (TLS) - (default: "tcp") - - - ``https_proxy``: the hostname or IP address of a proxy host to use for - tunneling secure connections - (default: None) - - - ``https_proxy_port``: the port on which to communicate with the proxy - host - (default: 0) - - - ``service_name``: the service name of the database - (default: None) - - - ``instance_name``: the instance name of the database - (default: None) - - - ``sid``: the system identifier (SID) of the database. Note using a - service_name instead is recommended - (default: None) - - - ``server_type``: the type of server connection that should be - established. If specified, it should be one of strings "dedicated", - "shared" or "pooled" - (default: None) - - - ``cclass``: the connection class to use for Database Resident Connection - Pooling (DRCP) - (default: None) - - - ``purity``: the connection purity to use for Database Resident Connection - Pooling (DRCP) - (default: :attr:`oracledb.PURITY_DEFAULT`) - - - ``expire_time``: the number of minutes between the sending of keepalive - probes. If this parameter is set to a value greater than zero it enables - keepalive - (default: 0) - - - ``retry_count``: the number of times that initial connection - establishment should be retried before the connection attempt is - terminated - (default: 0) - - - ``retry_delay``: the number of seconds to wait before retrying to - establish a connection - (default: 1) - - - ``tcp_connect_timeout``: a float indicating the maximum number of seconds - to wait when establishing a connection to the database host - (default: 20.0) - - - ``ssl_server_dn_match``: a boolean indicating whether the server - certificate distinguished name (DN) should be matched in addition to the - regular certificate verification that is performed. Note that if the - ssl_server_cert_dn parameter is not privided, host name matching is - performed instead - (default: True) - - - ``ssl_server_cert_dn``: the distinguished name (DN) which should be - matched with the server. This value is ignored if the ssl_server_dn_match - parameter is not set to the value True. If specified this value is used - for any verfication. Otherwise the hostname will be used - (default: None) - - - ``wallet_location``: the directory where the wallet can be found. In - python-oracledb Thin mode this must be the directory containing the PEM- - encoded wallet file ewallet.pem. In python-oracledb Thick mode this must - be the directory containing the file cwallet.sso - (default: None) - - - ``events``: a boolean specifying whether events mode should be enabled. - This value is only used in python-oracledb Thick mode and is needed for - continuous query notification and high availability event notifications - (default: False) - - - ``externalauth``: a boolean indicating whether to use external - authentication - (default: False) - - - ``mode``: the authorization mode to use. One of the constants - :data:`oracledb.AUTH_MODE_DEFAULT`, :data:`oracledb.AUTH_MODE_PRELIM`, - :data:`oracledb.AUTH_MODE_SYSASM`, :data:`oracledb.AUTH_MODE_SYSBKP`, - :data:`oracledb.AUTH_MODE_SYSDBA`, :data:`oracledb.AUTH_MODE_SYSDGD`, - :data:`oracledb.AUTH_MODE_SYSKMT`, :data:`oracledb.AUTH_MODE_SYSOPER`, or - :data:`oracledb.AUTH_MODE_SYSRAC` - (default: :attr:`oracledb.AUTH_MODE_DEFAULT`) - - - ``disable_oob``: a boolean indicating whether out-of-band breaks should - be disabled. This value is only used in python-oracledb Thin mode. It has - no effect on Windows which does not support this functionality - (default: False) - - - ``stmtcachesize``: the size of the statement cache - (default: :attr:`oracledb.defaults.stmtcachesize - `) - - - ``edition``: edition to use for the connection. This parameter cannot be - used simultaneously with the cclass parameter - (default: None) - - - ``tag``: identifies the type of connection that should be returned from a - pool. This value is only used in python-oracledb Thick mode - (default: None) - - - ``matchanytag``: a boolean specifying whether any tag can be used when - acquiring a connection from the pool. This value is only used in python- - oracledb Thick mode - (default: False) - - - ``config_dir``: a directory in which the optional tnsnames.ora - configuration file is located. This value is only used in python-oracledb - Thin mode. For python-oracledb Thick mode, it is used if - :attr:`oracledb.defaults.thick_mode_dsn_passthrough - ` is *False*. Otherwise in Thick - mode use the ``config_dir`` parameter of - :meth:`oracledb.init_oracle_client()` - (default: :attr:`oracledb.defaults.config_dir - `) - - - ``appcontext``: application context used by the connection. It should be - a list of 3-tuples (namespace, name, value) and each entry in the tuple - should be a string - (default: None) - - - ``shardingkey``: a list of strings, numbers, bytes or dates that identify - the database shard to connect to. This value is only used in python- - oracledb Thick mode - (default: None) - - - ``supershardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - (default: None) - - - ``debug_jdwp``: a string with the format "host=;port=" that - specifies the host and port of the PL/SQL debugger. This value is only - used in python-oracledb Thin mode. For python-oracledb Thick mode set - the ORA_DEBUG_JDWP environment variable - (default: None) - - - ``connection_id_prefix``: an application specific prefix that is added to - the connection identifier used for tracing - (default: None) - - - ``ssl_context``: an SSLContext object used for connecting to the database - using TLS. This SSL context will be modified to include the private key - or any certificates found in a separately supplied wallet. This parameter - should only be specified if the default SSLContext object cannot be used - (default: None) - - - ``sdu``: the requested size of the Session Data Unit (SDU), in bytes. The - value tunes internal buffers used for communication to the database. - Bigger values can increase throughput for large queries or bulk data - loads, but at the cost of higher memory use. The SDU size that will - actually be used is negotiated down to the lower of this value and the - database network SDU configuration value - (default: 8192) - - - ``pool_boundary``: one of the values "statement" or "transaction" - indicating when pooled DRCP connections can be returned to the pool. This - requires the use of DRCP with Oracle Database 23.4 or higher - (default: None) - - - ``use_tcp_fast_open``: a boolean indicating whether to use TCP fast open. - This is an Oracle Autonomous Database Serverless (ADB-S) specific - property for clients connecting from within OCI Cloud network. Please - refer to the ADB-S documentation for more information - (default: False) - - - ``ssl_version``: one of the values ssl.TLSVersion.TLSv1_2 or - ssl.TLSVersion.TLSv1_3 indicating which TLS version to use - (default: None) - - - ``program``: a string recorded by Oracle Database as the program from - which the connection originates - (default: :attr:`oracledb.defaults.program - `) - - - ``machine``: a string recorded by Oracle Database as the name of the - machine from which the connection originates - (default: :attr:`oracledb.defaults.machine - `) - - - ``terminal``: a string recorded by Oracle Database as the terminal - identifier from which the connection originates - (default: :attr:`oracledb.defaults.terminal - `) - - - ``osuser``: a string recorded by Oracle Database as the operating system - user who originated the connection - (default: :attr:`oracledb.defaults.osuser - `) - - - ``driver_name``: a string recorded by Oracle Database as the name of the - driver which originated the connection - (default: :attr:`oracledb.defaults.driver_name - `) - - - ``use_sni``: a boolean indicating whether to use the TLS SNI extension to - bypass the second TLS neogiation that would otherwise be required - (default: False) - - - ``thick_mode_dsn_passthrough``: a boolean indicating whether to pass the - connect string to the Oracle Client libraries unchanged without parsing - by the driver. Setting this to False makes python-oracledb Thick and Thin - mode applications behave similarly regarding connection string parameter - handling and locating any optional tnsnames.ora configuration file - (default: :attr:`oracledb.defaults.thick_mode_dsn_passthrough - `) - - - ``extra_auth_params``: a dictionary containing configuration parameters - necessary for Oracle Database authentication using plugins, such as the - Azure and OCI cloud-native authentication plugins - (default: None) - - - ``pool_name``: the name of the DRCP pool when using multi-pool DRCP with - Oracle Database 23.4, or higher - (default: None) - - - ``on_connect_callback``: a callable that is invoked immediately after a - standalone connection is created or a connection is acquired from a - connection pool, but before it is returned to the caller. A common use of - this callback is for creating and setting an end user security context - object for DeepSec support - (default: None) - - - ``handle``: an integer representing a pointer to a valid service context - handle. This value is only used in python-oracledb Thick mode. It should - be used with extreme caution - (default: 0) - """ - pass diff --git a/.venv/lib/python3.9/site-packages/oracledb/constants.py b/.venv/lib/python3.9/site-packages/oracledb/constants.py deleted file mode 100644 index a63087d..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/constants.py +++ /dev/null @@ -1,96 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2020, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# constants.py -# -# Contains the constants defined by the package. -# ----------------------------------------------------------------------------- - -# AQ delivery modes -MSG_BUFFERED = 2 -MSG_PERSISTENT = 1 -MSG_PERSISTENT_OR_BUFFERED = 3 - -# AQ dequeue modes -DEQ_BROWSE = 1 -DEQ_LOCKED = 2 -DEQ_REMOVE = 3 -DEQ_REMOVE_NODATA = 4 - -# AQ dequeue navigation modes -DEQ_FIRST_MSG = 1 -DEQ_NEXT_MSG = 3 -DEQ_NEXT_TRANSACTION = 2 - -# AQ dequeue visibility modes -DEQ_IMMEDIATE = 1 -DEQ_ON_COMMIT = 2 - -# AQ dequeue wait modes -DEQ_NO_WAIT = 0 -DEQ_WAIT_FOREVER = 2**32 - 1 - -# AQ enqueue visibility modes -ENQ_IMMEDIATE = 1 -ENQ_ON_COMMIT = 2 - -# AQ message states -MSG_EXPIRED = 3 -MSG_PROCESSED = 2 -MSG_READY = 0 -MSG_WAITING = 1 - -# AQ other constants -MSG_NO_DELAY = 0 -MSG_NO_EXPIRATION = -1 - -# shutdown modes -DBSHUTDOWN_ABORT = 4 -DBSHUTDOWN_FINAL = 5 -DBSHUTDOWN_IMMEDIATE = 3 -DBSHUTDOWN_TRANSACTIONAL = 1 -DBSHUTDOWN_TRANSACTIONAL_LOCAL = 2 - -# subscription grouping classes -SUBSCR_GROUPING_CLASS_NONE = 0 -SUBSCR_GROUPING_CLASS_TIME = 1 - -# subscription grouping types -SUBSCR_GROUPING_TYPE_SUMMARY = 1 -SUBSCR_GROUPING_TYPE_LAST = 2 - -# subscription protocols -SUBSCR_PROTO_HTTP = 3 -SUBSCR_PROTO_MAIL = 1 -SUBSCR_PROTO_CALLBACK = 0 -SUBSCR_PROTO_SERVER = 2 - -# flags for tpc_end() -TPC_END_NORMAL = 0 -TPC_END_SUSPEND = 0x00100000 - -# vector metadata flags -VECTOR_META_FLAG_FLEXIBLE_DIM = 0x01 -VECTOR_META_FLAG_SPARSE_VECTOR = 0x02 diff --git a/.venv/lib/python3.9/site-packages/oracledb/constructors.py b/.venv/lib/python3.9/site-packages/oracledb/constructors.py deleted file mode 100644 index 8a58245..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/constructors.py +++ /dev/null @@ -1,100 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2020, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# constructors.py -# -# Contains the constructors mandated by the Python Database API. -# ----------------------------------------------------------------------------- - -import datetime -from typing import Any - -from . import errors - - -def Binary(value: Any) -> bytes: - """ - Constructs an object holding a binary (long) string value. - """ - return bytes(value) - - -def Date(year: int, month: int, day: int) -> datetime.date: - """ - Constructs an object holding a date value. - """ - return datetime.date(year, month, day) - - -def DateFromTicks(ticks: float) -> datetime.date: - """ - Constructor mandated by the database API for creating a date value given - the number of seconds since the epoch (January 1, 1970). This is equivalent - to using datetime.date.fromtimestamp() and that should be used instead. - """ - return datetime.date.fromtimestamp(ticks) - - -def Time(hour: int, minute: int, second: int) -> None: - """ - Constructor mandated by the database API for creating a time value. Since - Oracle doesn't support time only values, an exception is raised when this - method is called. - """ - errors._raise_err(errors.ERR_TIME_NOT_SUPPORTED) - - -def TimeFromTicks(ticks: float) -> None: - """ - Constructor mandated by the database API for creating a time value given - the number of seconds since the epoch (January 1, 1970). Since Oracle - doesn't support time only values, an exception is raised when this method - is called. - """ - errors._raise_err(errors.ERR_TIME_NOT_SUPPORTED) - - -def Timestamp( - year: int, - month: int, - day: int, - hour: int = 0, - minute: int = 0, - second: int = 0, -) -> datetime.datetime: - """ - Constructs an object holding a time stamp value. - """ - return datetime.datetime(year, month, day, hour, minute, second) - - -def TimestampFromTicks(ticks: float) -> datetime.datetime: - """ - Constructor mandated by the database API for creating a timestamp value - given the number of seconds since the epoch (January 1, 1970). This is - equivalent to using datetime.datetime.fromtimestamp() and that should be - used instead. - """ - return datetime.datetime.fromtimestamp(ticks) diff --git a/.venv/lib/python3.9/site-packages/oracledb/cursor.py b/.venv/lib/python3.9/site-packages/oracledb/cursor.py deleted file mode 100644 index bf9a723..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/cursor.py +++ /dev/null @@ -1,1388 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# cursor.py -# -# Contains the Cursor class used for executing statements on connections and -# fetching results from queries. -# ----------------------------------------------------------------------------- - -from typing import Any, Union, Callable, Optional - -from . import connection as connection_module -from . import errors -from . import utils -from .base import BaseMetaClass -from .base_impl import DbType, DB_TYPE_OBJECT -from .dbobject import DbObjectType -from .fetch_info import FetchInfo -from .var import Var - - -class BaseCursor(metaclass=BaseMetaClass): - _impl = None - - def __init__( - self, - connection: "connection_module.Connection", - scrollable: bool = False, - handle: Optional[object] = None, - ) -> None: - self._connection = connection - self._impl = connection._impl.create_cursor_impl(scrollable) - if handle is not None: - self._impl.attach_external_handle(external_handle_capsule=handle) - - def __del__(self): - if self._impl is not None: - self._impl.close(in_del=True) - - def __enter__(self): - """ - The entry point for the cursor as a context manager. It returns itself. - """ - self._verify_open() - return self - - def __exit__(self, exc_type, exc_value, exc_tb): - """ - The exit point for the cursor as a context manager. It closes the - cursor. - """ - self._verify_open() - self._impl.close(in_del=True) - self._impl = None - - def __repr__(self): - cls_name = self.__class__._public_name - return f"<{cls_name} on {self.connection!r}>" - - def _call( - self, - name: str, - parameters: Union[list, tuple], - keyword_parameters: dict, - return_value: Any = None, - ) -> None: - """ - Internal method used for generating the PL/SQL block used to call - stored procedures. - """ - utils.verify_stored_proc_args(parameters, keyword_parameters) - self._verify_open() - statement, bind_values = self._call_get_execute_args( - name, parameters, keyword_parameters, return_value - ) - return self.execute(statement, bind_values) - - def _call_get_execute_args( - self, - name: str, - parameters: Union[list, tuple], - keyword_parameters: dict, - return_value: str = None, - ) -> None: - """ - Internal method used for generating the PL/SQL block used to call - stored procedures and functions. A tuple containing this statement and - the bind values is returned. - """ - bind_names = [] - bind_values = [] - statement_parts = ["begin "] - if return_value is not None: - statement_parts.append(":retval := ") - bind_values.append(return_value) - statement_parts.append(name + "(") - if parameters: - bind_values.extend(parameters) - bind_names = [":%d" % (i + 1) for i in range(len(parameters))] - if keyword_parameters: - for arg_name, arg_value in keyword_parameters.items(): - bind_values.append(arg_value) - bind_names.append(f"{arg_name} => :{len(bind_names) + 1}") - statement_parts.append(",".join(bind_names)) - statement_parts.append("); end;") - statement = "".join(statement_parts) - return (statement, bind_values) - - def _normalize_statement(self, statement: Optional[str]) -> Optional[str]: - """ - Normalizes a statement by stripping leading and trailing spaces. If the - result is an empty string, an error is raised immediately. - """ - if statement is not None: - statement = statement.strip() - if not statement: - errors._raise_err(errors.ERR_EMPTY_STATEMENT) - return statement - - def _prepare( - self, statement: str, tag: str = None, cache_statement: bool = True - ) -> None: - """ - Internal method used for preparing a statement for execution. - """ - self._impl.prepare(statement, tag, cache_statement) - - def _prepare_for_execute( - self, statement, parameters, keyword_parameters=None - ): - """ - Internal method for preparing a statement for execution. - """ - self._verify_open() - self._impl._prepare_for_execute( - self, - self._normalize_statement(statement), - parameters, - keyword_parameters, - ) - - def _verify_fetch(self) -> None: - """ - Verifies that fetching is possible from this cursor. - """ - self._verify_open() - if not self._impl.is_query(self): - errors._raise_err(errors.ERR_NOT_A_QUERY) - - def _verify_open(self) -> None: - """ - Verifies that the cursor is open and the associated connection is - connected. If either condition is false an exception is raised. - """ - if self._impl is None: - errors._raise_err(errors.ERR_CURSOR_NOT_OPEN) - self.connection._verify_connected() - - @property - def arraysize(self) -> int: - """ - This read-write attribute can be used to tune the number of rows - internally fetched and buffered by internal calls to the database when - fetching rows from SELECT statements and REF CURSORS. - - The value of ``arraysize`` can drastically affect the performance of a - query since it directly affects the number of network round trips - between Python and the database. For methods like :meth:`fetchone()` - and :meth:`fetchall()` it affects internal behavior but does not change - how many rows are returned to the application. For :meth:`fetchmany()` - it is the default number of rows to fetch. - - The attribute is only used for tuning row and SODA document fetches - from the database. It does not affect data inserts. - - Due to the performance benefits, the default ``arraysize`` is *100* - instead of the *1* that the Python DB API recommends. - """ - self._verify_open() - return self._impl.arraysize - - @arraysize.setter - def arraysize(self, value: int) -> None: - self._verify_open() - if not isinstance(value, int) or value <= 0: - errors._raise_err(errors.ERR_INVALID_ARRAYSIZE) - self._impl.arraysize = value - - def arrayvar( - self, - typ: Union[DbType, DbObjectType, type], - value: Union[list, int], - size: int = 0, - ) -> Var: - """ - Creates an array variable associated with the cursor of the given type - and size and returns a :ref:`variable object `. The value is - either an integer specifying the number of elements to allocate or it - is a list and the number of elements allocated is drawn from the size - of the list. If the value is a list, the variable is also set with the - contents of the list. If the size is not specified and the type is a - string or binary, 4000 bytes is allocated. This is needed for passing - arrays to PL/SQL (in cases where the list might be empty and the type - cannot be determined automatically) or returning arrays from PL/SQL. - """ - self._verify_open() - if isinstance(value, list): - num_elements = len(value) - elif isinstance(value, int): - num_elements = value - else: - raise TypeError("expecting integer or list of values") - var = self._impl.create_var( - self.connection, - typ, - size=size, - num_elements=num_elements, - is_array=True, - ) - if isinstance(value, list): - var.setvalue(0, value) - return var - - def bindnames(self) -> list: - """ - Returns the list of bind variable names bound to the statement. Note - that a statement must have been prepared first. - """ - self._verify_open() - if self._impl.statement is None: - errors._raise_err(errors.ERR_NO_STATEMENT_PREPARED) - return self._impl.get_bind_names() - - @property - def bindvars(self) -> list: - """ - This read-only attribute provides the bind variables used for the last - statement that was executed on the cursor. The value will be either a - list or a dictionary, depending on whether binding was done by position - or name. Care should be taken when referencing this attribute. In - particular, elements should not be removed or replaced. - """ - self._verify_open() - return self._impl.get_bind_vars() - - def close(self) -> None: - """ - Closes the cursor now, rather than whenever ``__del__`` is called. The - cursor will be unusable from this point forward; an Error exception - will be raised if any operation is attempted with the cursor. - """ - self._verify_open() - self._impl.close() - self._impl = None - - @property - def description(self) -> Union[list[FetchInfo], None]: - """ - This read-only attribute contains information about the columns used in - a query. It is a list of FetchInfo objects, one per column. This - attribute will be *None* for statements that are not SELECT or WITH - statements, or if the cursor has not had :meth:`execute()` invoked yet. - """ - self._verify_open() - if self._impl.is_query(self): - return [FetchInfo._from_impl(i) for i in self._impl.fetch_metadata] - - @property - def fetchvars(self) -> list: - """ - This read-only attribute specifies the list of variables created for - the last SELECT query that was executed on the cursor. Care should be - taken when referencing this attribute. In particular, elements should - not be removed or replaced. - """ - self._verify_open() - return self._impl.get_fetch_vars() - - def getarraydmlrowcounts(self) -> list: - """ - Retrieves the DML row counts after a call to :meth:`executemany()` with - ``arraydmlrowcounts`` enabled. This will return a list of integers - corresponding to the number of rows affected by the DML statement for - each element of the array passed to :meth:`executemany()`. - - This method is only available for Oracle Database 12.1 and later. - """ - self._verify_open() - return self._impl.get_array_dml_row_counts() - - def getbatcherrors(self) -> list: - """ - Retrieves the exceptions that took place after a call to - :meth:`executemany()` with ``batcherrors`` enabled. This will - return a list of Error objects, one error for each iteration that - failed. The offset can be determined by looking at the offset attribute - of the error object. - """ - self._verify_open() - return self._impl.get_batch_errors() - - def getimplicitresults(self) -> list: - """ - Returns a list of cursors which correspond to implicit results made - available from a PL/SQL block or procedure without the use of OUT ref - cursor parameters. The PL/SQL block or procedure opens the cursors and - marks them for return to the client using the procedure - dbms_sql.return_result. In python-oracledb Thick mode, closing the - parent cursor will result in the automatic closure of the implicit - result set cursors. See :ref:`implicitresults`. - - This method is only available for Oracle Database 12.1 (or later). For - python-oracledb :ref:`Thick ` mode, Oracle Client 12.1 - (or later) is additionally required. - """ - self._verify_open() - return self._impl.get_implicit_results(self.connection) - - @property - def inputtypehandler(self) -> Callable: - """ - This read-write attribute specifies a method called for each value that - is bound to a statement executed on the cursor and overrides the - attribute with the same name on the connection if specified. The method - signature is handler(cursor, value, arraysize) and the return value is - expected to be a variable object or *None* in which case a default - variable object will be created. If this attribute is *None*, the - default behavior will take place for all values bound to the - statements. - """ - self._verify_open() - return self._impl.inputtypehandler - - @inputtypehandler.setter - def inputtypehandler(self, value: Callable) -> None: - self._verify_open() - self._impl.inputtypehandler = value - - @property - def lastrowid(self) -> str: - """ - This read-only attribute returns the rowid of the last row modified by - the cursor. If no row was modified by the last operation performed on - the cursor, the value *None* is returned. - """ - self._verify_open() - return self._impl.get_lastrowid() - - @property - def outputtypehandler(self) -> Callable: - """ - This read-write attribute specifies a method called for each column - that is to be fetched from this cursor. The method signature is - handler(cursor, metadata) and the return value is expected to be a - :ref:`variable object ` or *None* in which case a default - variable object will be created. If this attribute is *None*, then the - default behavior will take place for all columns fetched from this - cursor. - """ - self._verify_open() - return self._impl.outputtypehandler - - @outputtypehandler.setter - def outputtypehandler(self, value: Callable) -> None: - self._verify_open() - self._impl.outputtypehandler = value - - @property - def prefetchrows(self) -> int: - """ - This read-write attribute can be used to tune the number of rows that - python-oracledb initially fetches from Oracle Database when a SELECT - query is executed. The value can improve performance by reducing the - number of round-trips to the database. The attribute does not affect - data insertion. - - In python-oracledb Thin mode, prefetching can reuse the - :attr:`arraysize` buffer. However in Thick mode, extra memory is - required. - - Setting this value to *0* can be useful when the timing of fetches must - be explicitly controlled. - - Queries that return :ref:`LOB ` objects and similar types do - not support prefetching. The ``prefetchrows`` attribute is ignored in - queries that involve these types. - """ - self._verify_open() - return self._impl.prefetchrows - - @prefetchrows.setter - def prefetchrows(self, value: int) -> None: - self._verify_open() - self._impl.prefetchrows = value - - def prepare( - self, statement: str, tag: str = None, cache_statement: bool = True - ) -> None: - """ - This can be used before a call to :meth:`execute()` or - :meth:`executemany()` to define the statement that will be - executed. When this is done, the prepare phase will not be performed - when the call to :meth:`execute()` or :meth:`executemany()` is made - with *None* or the same string object as the statement. - - If the ``tag`` parameter is specified and the ``cache_statement`` - parameter is *True*, the statement will be returned to the statement - cache with the given tag. - - If the ``cache_statement`` parameter is *False*, the statement will be - removed from the statement cache (if it was found there) or will simply - not be cached. - """ - self._verify_open() - self._prepare(statement, tag, cache_statement) - - @property - def rowcount(self) -> int: - """ - This read-only attribute specifies the number of rows that have - currently been fetched from the cursor (for select statements) or that - have been affected by the operation (for insert, update, delete, and - merge statements). For all other statements the value is always *0*. If - the cursor or connection is closed, the value returned is *-1*. - """ - if self._impl is not None and self.connection._impl is not None: - return self._impl.rowcount - return -1 - - @property - def rowfactory(self) -> Callable: - """ - This read-write attribute specifies a method to call for each row that - is retrieved from the database. Ordinarily, a tuple is returned for - each row but if this attribute is set, the method is called with the - tuple that would normally be returned, and the result of the method is - returned instead. - - The ``rowfactory`` attribute should be set after each statement - execution before data is fetched from the cursor. - """ - self._verify_open() - return self._impl.rowfactory - - @rowfactory.setter - def rowfactory(self, value: Callable) -> None: - self._verify_open() - self._impl.rowfactory = value - - @property - def scrollable(self) -> bool: - """ - This read-write boolean attribute specifies whether the cursor can be - scrolled or not. By default, cursors are not scrollable, as the server - resources and response times are greater than nonscrollable cursors. - This attribute is checked and the corresponding mode set in Oracle when - calling the method :meth:`execute()`. - """ - self._verify_open() - return self._impl.scrollable - - @scrollable.setter - def scrollable(self, value: bool) -> None: - self._verify_open() - self._impl.scrollable = value - - def setinputsizes(self, *args: Any, **kwargs: Any) -> Union[list, dict]: - """ - This can be used before calls to :meth:`execute()` or - :meth:`executemany()` to predefine memory areas used for - :ref:`bind variables `. Each parameter should be a type object - corresponding to the data that will be used for a bind variable - placeholder in the SQL or PL/SQL statement. Alternatively, it can be an - integer specifying the maximum length of a string bind variable value. - - Use keyword parameters when :ref:`binding by name `. Use - positional parameters when :ref:`binding by position `. - The parameter value can be *None* to indicate that python-oracledb - should determine the required space from the data value provided. - - The parameters or keyword names correspond to the bind variable - placeholders used in the SQL or PL/SQL statement. Note this means that - for use with :meth:`executemany()` it does not correspond to the number - of bind value mappings or sequences being passed. - - When repeated calls to :meth:`execute()` or :meth:`executemany()` are - made binding different string data lengths, using - :meth:`setinputsizes()` can help reduce the database's SQL "version - count" for the statement. See - :ref:`Reducing the SQL Version Count `. - """ - if args and kwargs: - errors._raise_err(errors.ERR_ARGS_AND_KEYWORD_ARGS) - elif args or kwargs: - self._verify_open() - return self._impl.setinputsizes(self.connection, args, kwargs) - return [] - - def setoutputsize(self, size: int, column: int = 0) -> None: - """ - This method does nothing and is retained solely for compatibility with - the DB API. Python-oracledb automatically allocates as much space as - needed to fetch LONG and LONG RAW columns, and also to fetch CLOB as - string and BLOB as bytes. - """ - pass - - @property - def statement(self) -> Union[str, None]: - """ - This read-only attribute provides the string object that was previously - prepared with :meth:`prepare()` or executed with :meth:`execute()`. - """ - if self._impl is not None: - return self._impl.statement - - def var( - self, - typ: Union[DbType, DbObjectType, type], - size: int = 0, - arraysize: int = 1, - inconverter: Callable = None, - outconverter: Callable = None, - typename: str = None, - encoding_errors: str = None, - bypass_decode: bool = False, - convert_nulls: bool = False, - *, - encodingErrors: str = None, - ) -> "Var": - """ - Creates a :ref:`variable object ` with the specified - characteristics. This method can be used for binding to PL/SQL IN and - OUT parameters where the length or type cannot be determined - automatically from the Python variable being bound. It can also be used - in :ref:`input ` and :ref:`output - ` type handlers. - - The ``typ`` parameter specifies the type of data that should be stored - in the variable. This should be one of the :ref:`database type - constants `, :ref:`DB API constants `, an object type - returned from the method :meth:`Connection.gettype()` or one of the - following Python types: - - - bool (uses :attr:`oracledb.DB_TYPE_BOOLEAN`) - - bytes (uses :attr:`oracledb.DB_TYPE_RAW`) - - datetime.date (uses :attr:`oracledb.DB_TYPE_DATE`) - - datetime.datetime (uses :attr:`oracledb.DB_TYPE_DATE`) - - datetime.timedelta (uses :attr:`oracledb.DB_TYPE_INTERVAL_DS`) - - decimal.Decimal (uses :attr:`oracledb.DB_TYPE_NUMBER`) - - float (uses :attr:`oracledb.DB_TYPE_NUMBER`) - - int (uses :attr:`oracledb.DB_TYPE_NUMBER`) - - str (uses :attr:`oracledb.DB_TYPE_VARCHAR`) - - The ``size`` parameter specifies the length of string and raw variables - and is ignored in all other cases. If not specified for string and raw - variables, the value *4000* is used. - - The ``arraysize`` parameter specifies the number of elements the - variable will have. If not specified the bind array size (usually *1*) - is used. When a variable is created in an output type handler this - parameter should be set to the cursor's array size. - - The ``inconverter`` and ``outconverter`` parameters specify methods - used for converting values to/from the database. More information can - be found in the section on :ref:`variable objects`. - - The ``typename`` parameter specifies the name of a SQL object type and - must be specified when using type :data:`oracledb.OBJECT` unless the - type object was passed directly as the first parameter. - - The ``encoding_errors`` parameter specifies what should happen when - decoding byte strings fetched from the database into strings. It should - be one of the values noted in the builtin `decode - `__ - function. - - The ``bypass_decode`` parameter, if specified, should be passed as a - boolean value. Passing a *True* value causes values of database types - :data:`~oracledb.DB_TYPE_VARCHAR`, :data:`~oracledb.DB_TYPE_CHAR`, - :data:`~oracledb.DB_TYPE_NVARCHAR`, :data:`~oracledb.DB_TYPE_NCHAR` and - :data:`~oracledb.DB_TYPE_LONG` to be returned as bytes instead of str, - meaning that python-oracledb does not do any decoding. See - :ref:`Fetching raw data ` for more information. - - The ``convert_nulls`` parameter, if specified, should be passed as a - boolean value. Passing the value *True* causes the ``outconverter`` to - be called when a null value is fetched from the database; otherwise, - the ``outconverter`` is only called when non-null values are fetched - from the database. - - For consistency and compliance with the PEP 8 naming style, the - parameter ``encodingErrors`` was renamed to ``encoding_errors``. The - old name will continue to work as a keyword parameter for a period of - time. - """ - self._verify_open() - if typename is not None: - typ = self.connection.gettype(typename) - elif typ is DB_TYPE_OBJECT: - errors._raise_err(errors.ERR_MISSING_TYPE_NAME_FOR_OBJECT_VAR) - if encodingErrors is not None: - if encoding_errors is not None: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="encodingErrors", - new_name="encoding_errors", - ) - encoding_errors = encodingErrors - return self._impl.create_var( - self.connection, - typ, - size, - arraysize, - inconverter, - outconverter, - encoding_errors, - bypass_decode, - convert_nulls=convert_nulls, - ) - - @property - def warning(self) -> Union[errors._Error, None]: - """ - This read-only attribute provides an - :ref:`oracledb._Error` object giving information about any - database warnings (such as PL/SQL compilation warnings) that were - generated during the last call to :meth:`execute()` or - :meth:`executemany()`. This value is automatically cleared on - the next call to :meth:`execute()` or :meth:`executemany()`. If no - warning was generated the value *None* is returned. - """ - self._verify_open() - return self._impl.warning - - -class Cursor(BaseCursor): - - def __iter__(self): - """ - Returns the cursor itself to be used as an iterator. - """ - return self - - def __next__(self): - self._verify_fetch() - row = self._impl.fetch_next_row(self) - if row is not None: - return row - raise StopIteration - - def _get_oci_attr(self, attr_num: int, attr_type: int) -> Any: - """ - Returns the value of the specified OCI attribute from the internal - handle. This is only supported in python-oracledb's thick mode and - should only be used as directed by Oracle. - """ - self._verify_open() - return self._impl._get_oci_attr(attr_num, attr_type) - - def _set_oci_attr(self, attr_num: int, attr_type: int, value: Any) -> None: - """ - Sets the value of the specified OCI attribute on the internal handle. - This is only supported in python-oracledb's thick mode and should only - be used as directed by Oracle. - """ - self._verify_open() - self._impl._set_oci_attr(attr_num, attr_type, value) - - def callfunc( - self, - name: str, - return_type: Any, - parameters: Optional[Union[list, tuple]] = None, - keyword_parameters: Optional[dict] = None, - *, - keywordParameters: Optional[dict] = None, - ) -> Any: - """ - Calls a PL/SQL function with the given name and returns its value. - - The ``return_type`` parameter is expected to be a Python type, one of - the :ref:`oracledb types ` or an - :ref:`Object Type `. - - The sequence of parameters must contain one entry for each parameter - that the PL/SQL function expects. Any keyword parameters will be - included after the positional parameters. - - Use :meth:`var()` to define any OUT or IN OUT parameters, if necessary. - - For consistency and compliance with the PEP 8 naming style, the - parameter ``keywordParameters`` was renamed to ``keyword_parameters``. - The old name will continue to work for a period of time. - """ - var = self.var(return_type) - if keywordParameters is not None: - if keyword_parameters is not None: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="keywordParameters", - new_name="keyword_parameters", - ) - keyword_parameters = keywordParameters - self._call(name, parameters, keyword_parameters, var) - return var.getvalue() - - def callproc( - self, - name: str, - parameters: Optional[Union[list, tuple]] = None, - keyword_parameters: Optional[dict] = None, - *, - keywordParameters: Optional[dict] = None, - ) -> list: - """ - Calls a PL/SQL procedure with the given name. - - The sequence of parameters must contain one entry for each parameter - that the procedure expects. The result of the call is a modified copy - of the input sequence. Input parameters are left untouched; output and - input/output parameters are replaced with possibly new values. Keyword - parameters will be included after the positional parameters and are not - returned as part of the output sequence. - - Use :meth:`var()` to define any OUT or IN OUT parameters if necessary. - - No query result set is returned by this method. Instead, use - :ref:`REF CURSOR ` parameters or - :ref:`Implicit Results `. - - For consistency and compliance with the PEP 8 naming style, the - parameter ``keywordParameters`` was renamed to ``keyword_parameters``. - The old name will continue to work for a period of time. - """ - if keywordParameters is not None: - if keyword_parameters is not None: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="keywordParameters", - new_name="keyword_parameters", - ) - keyword_parameters = keywordParameters - self._call(name, parameters, keyword_parameters) - if parameters is None: - return [] - return [ - v.get_value(0) for v in self._impl.bind_vars[: len(parameters)] - ] - - @property - def connection(self) -> "connection_module.Connection": - """ - This read-only attribute returns a reference to the connection object - on which the cursor was created. - """ - return self._connection - - @property - def handle(self) -> object: - """ - This read-only attribute returns a PyCapsule named ``oci_stmt_handle`` - wrapping the Oracle Call Interface (OCI) statement handle for the - connection. It is primarily provided to facilitate testing the creation - of a cursor using the OCI statement handle. - - This attribute is only supported in python-oracledb Thick mode. - """ - return self._impl.get_handle() - - def execute( - self, - statement: Optional[str], - parameters: Optional[Union[list, tuple, dict]] = None, - *, - suspend_on_success: bool = False, - fetch_lobs: Optional[bool] = None, - fetch_decimals: Optional[bool] = None, - **keyword_parameters: Any, - ) -> Any: - """ - Executes a statement against the database. See :ref:`sqlexecution`. - - Parameters may be passed as a dictionary or sequence or as keyword - parameters. If the parameters are a dictionary, the values will be - bound by name and if the parameters are a sequence the values will be - bound by position. Note that if the values are bound by position, the - order of the variables is from left to right as they are encountered in - the statement and SQL statements are processed differently than PL/SQL - statements. For this reason, it is generally recommended to bind - parameters by name instead of by position. - - Parameters passed as a dictionary are name and value pairs. The name - maps to the bind variable name used by the statement and the value maps - to the Python value you wish bound to that bind variable. - - A reference to the statement will be retained by the cursor. If *None* - or the same string object is passed in again, the cursor will execute - that statement again without performing a prepare or rebinding and - redefining. This is most effective for algorithms where the same - statement is used, but different parameters are bound to it (many - times). Note that parameters that are not passed in during subsequent - executions will retain the value passed in during the last execution - that contained them. - - The ``suspend_on_success`` parameter is specific to :ref:`sessionless - transactions `. When set to *True*, the active - sessionless transaction will be suspended when ``execute()`` completes - successfully. See :ref:`suspendtxns`. - - The ``fetch_lobs`` parameter specifies whether to return LOB locators - or ``str``/``bytes`` values when fetching LOB columns. The default - value is :data:`oracledb.defaults.fetch_lobs `. - - The ``fetch_decimals`` parameter specifies whether to return - ``decimal.Decimal`` values when fetching columns of type ``NUMBER``. - The default value is :data:`oracledb.defaults.fetch_decimals - `. - - For maximum efficiency when reusing a statement, it is best to use the - :meth:`Cursor.setinputsizes()` method to specify the parameter types - and sizes ahead of time; in particular, *None* is assumed to be a - string of length 1 so any values that are later bound as numbers or - dates will raise a TypeError exception. - - If the statement is a SELECT query, the cursor is returned as a - convenience to the caller (so it can be used directly as an iterator - over the rows in the cursor); otherwise, *None* is returned. - """ - self._prepare_for_execute(statement, parameters, keyword_parameters) - impl = self._impl - if fetch_lobs is not None: - impl.fetch_lobs = fetch_lobs - if fetch_decimals is not None: - impl.fetch_decimals = fetch_decimals - impl.suspend_on_success = suspend_on_success - impl.execute(self) - if impl.fetch_vars is not None: - return self - - def executemany( - self, - statement: Optional[str], - parameters: Any, - *, - batcherrors: bool = False, - arraydmlrowcounts: bool = False, - suspend_on_success: bool = False, - batch_size: int = 2**32 - 1, - ) -> None: - """ - Executes a SQL statement once using all bind value mappings or - sequences found in the sequence parameters. This can be used to insert, - update, or delete multiple rows in a table with a single - python-oracledb call. It can also invoke a PL/SQL procedure multiple - times. See :ref:`batchstmnt`. - - The ``statement`` parameter is managed in the same way as the - :meth:`execute()` method manages it. - - The ``parameters`` parameter can be a list of tuples, where each tuple - item maps to one bind variable placeholder in ``statement``. It can - also be a list of dictionaries, where the keys match the bind variable - placeholder names in ``statement``. If there are no bind values, or - values have previously been bound, the ``parameters`` value can be an - integer specifying the number of iterations. The ``parameters`` - parameter can also be a :ref:`DataFrame `, or a - third-party data frame that supports the `Apache Arrow PyCapsule - `__ Interface. - - In python-oracledb Thick mode, if the size of the buffers allocated for - any of the parameters exceeds 2 GB, you will receive the error - ``DPI-1015: array size of is too large``. If you receive this - error, decrease the number of rows being inserted. - - When *True*, the ``batcherrors`` parameter enables batch error support - within Oracle Database and ensures that the call succeeds even if an - exception takes place in one or more of the sequence of bind values. - The errors can then be retrieved using :meth:`getbatcherrors()`. - - When *True*, the ``arraydmlrowcounts`` parameter enables DML row counts - to be retrieved from Oracle after the method has completed. The row - counts can then be retrieved using - :meth:`getarraydmlrowcounts()`. - - Both the ``batcherrors`` parameter and the ``arraydmlrowcounts`` - parameter can only be *True* when executing an insert, update, delete, - or merge statement; in all other cases an error will be raised. - - The ``suspend_on_success`` parameter is specific to :ref:`sessionless - transactions `. When set to *True*, the active - sessionless transaction will be suspended when ``executemany()`` - completes successfully. See :ref:`suspendtxns`. - - The ``batch_size`` parameter is used to split large data sets into - smaller pieces for sending to the database. It is the number of records - in each batch. This parameter can be used to tune performance. When - ``Connection.autocommit`` is *True*, a commit will take place for each - batch. - - For maximum efficiency, it is best to use the :meth:`setinputsizes()` - method to specify the bind value types and sizes. In particular, if the - type is not explicitly specified, the value *None* is assumed to be a - string of length 1 so any values that are later bound as numbers or - dates will raise a TypeError exception. - """ - self._verify_open() - manager = self._impl._prepare_for_executemany( - self, - self._normalize_statement(statement), - parameters, - batch_size, - ) - self._impl.suspend_on_success = suspend_on_success - while manager.num_rows > 0: - self._impl.executemany( - self, - manager.num_rows, - batcherrors, - arraydmlrowcounts, - manager.message_offset, - ) - manager.next_batch() - - def fetchall(self) -> list: - """ - Fetches all (remaining) rows of a SELECT query result, returning them - as a list of tuples. An empty list is returned if no more rows are - available. An exception is raised if the previous call to - :meth:`execute()` did not produce any result set or no call was issued - yet. - - Note that the cursor's :attr:`~Cursor.arraysize` attribute can affect - the performance of this operation, as internally data is fetched in - batches of that size from the database. See :ref:`Tuning Fetch - Performance `. - - An exception is raised if the previous call to :meth:`execute()` did - not produce any result set or no call was issued yet. - """ - self._verify_fetch() - result = [] - fetch_next_row = self._impl.fetch_next_row - while True: - row = fetch_next_row(self) - if row is None: - break - result.append(row) - return result - - def fetchmany( - self, size: Optional[int] = None, numRows: Optional[int] = None - ) -> list: - """ - Fetches the next set of rows of a SELECT query result, returning a list - of tuples. An empty list is returned if no more rows are available. - Note that the cursor's :attr:`arraysize` attribute can affect the - performance of this operation. - - The number of rows to fetch is specified by the ``size`` parameter. If - it is not given, the cursor's :attr:`arraysize` attribute determines - the number of rows to be fetched. If the number of rows available to be - fetched is fewer than the amount requested, fewer rows will be - returned. - - An exception is raised if the previous call to :meth:`execute()` did - not produce any result set or no call was issued yet. - """ - self._verify_fetch() - if size is None: - if numRows is not None: - size = numRows - else: - size = self._impl.arraysize - elif numRows is not None: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="numRows", - new_name="size", - ) - result = [] - fetch_next_row = self._impl.fetch_next_row - while len(result) < size: - row = fetch_next_row(self) - if row is None: - break - result.append(row) - return result - - def fetchone(self) -> Any: - """ - Fetches the next row of a SELECT query result set, returning a single - tuple or *None* when no more data is available. An exception is raised - if the previous call to :meth:`execute()` did not produce any result - set or no call was issued yet. - - When ``fetchone()`` is used to iterate over a result set, the cursor’s - :attr:`arraysize` attribute can affect performance, as internally data - is fetched in batches of that size from Oracle Database. - """ - self._verify_fetch() - return self._impl.fetch_next_row(self) - - def parse(self, statement: str) -> None: - """ - This can be used to parse a statement without actually executing it - (parsing step is done automatically by Oracle when a statement is - :meth:`executed `). - """ - self._verify_open() - self._prepare(statement) - self._impl.parse(self) - - def scroll(self, value: int = 0, mode: str = "relative") -> None: - """ - Scrolls the cursor in the result set to a new position according to the - mode. - - If mode is *relative* (the default value), the value is taken as an - offset to the current position in the result set. If set to *absolute*, - value states an absolute target position. If set to *first*, the cursor - is positioned at the first row and if set to *last*, the cursor is set - to the last row in the result set. - - An error is raised if the mode is *relative* or *absolute* and the - scroll operation would position the cursor outside of the result set. - """ - self._verify_open() - if not self._impl.scrollable: - errors._raise_err(errors.ERR_SCROLL_NOT_SUPPORTED) - self._impl.scroll(self, value, mode) - - -class AsyncCursor(BaseCursor): - - async def __aenter__(self): - """ - The entry point for the cursor as a context manager. It returns itself. - """ - self._verify_open() - return self - - async def __aexit__(self, *exc_info): - """ - The exit point for the cursor as a context manager. It closes the - cursor. - """ - self._verify_open() - self._impl.close(in_del=True) - self._impl = None - - def __aiter__(self): - """ - Returns the cursor itself to be used as an asynchronous iterator. - """ - return self - - async def __anext__(self): - self._verify_fetch() - row = await self._impl.fetch_next_row(self) - if row is not None: - return row - raise StopAsyncIteration - - async def callfunc( - self, - name: str, - return_type: Any, - parameters: Optional[Union[list, tuple]] = None, - keyword_parameters: Optional[dict] = None, - ) -> Any: - """ - Calls a PL/SQL function with the given name and returns its value. - - The ``return_type`` parameter is expected to be a Python type, one of - the :ref:`oracledb types ` or an :ref:`Object Type - `. - - The sequence of parameters must contain one entry for each parameter - that the PL/SQL function expects. Any keyword parameters will be - included after the positional parameters. - - Use :meth:`var()` to define any OUT or IN OUT parameters, if necessary. - """ - var = self.var(return_type) - await self._call(name, parameters, keyword_parameters, var) - return var.getvalue() - - async def callproc( - self, - name: str, - parameters: Optional[Union[list, tuple]] = None, - keyword_parameters: Optional[dict] = None, - ) -> list: - """ - Calls a PL/SQL procedure with the given name. - - The sequence of parameters must contain one entry for each parameter - that the procedure expects. The result of the call is a modified copy - of the input sequence. Input parameters are left untouched; output and - input/output parameters are replaced with possibly new values. Keyword - parameters will be included after the positional parameters and are not - returned as part of the output sequence. - - Use :meth:`var()` to define any OUT or IN OUT parameters if necessary. - - No query result set is returned by :meth:`callproc()`. Instead, use - :ref:`REF CURSOR ` parameters or :ref:`Implicit Results - `. - """ - await self._call(name, parameters, keyword_parameters) - if parameters is None: - return [] - return [ - v.get_value(0) for v in self._impl.bind_vars[: len(parameters)] - ] - - @property - def connection(self) -> "connection_module.AsyncConnection": - """ - This read-only attribute returns a reference to the connection object - on which the cursor was created. - """ - return self._connection - - async def execute( - self, - statement: Optional[str], - parameters: Optional[Union[list, tuple, dict]] = None, - *, - suspend_on_success: bool = False, - fetch_lobs: Optional[bool] = None, - fetch_decimals: Optional[bool] = None, - **keyword_parameters: Any, - ) -> None: - """ - Executes a statement against the database. See :ref:`sqlexecution`. - - Parameters may be passed as a dictionary or sequence or as keyword - parameters. If the parameters are a dictionary, the values will be - bound by name and if the parameters are a sequence the values will be - bound by position. Note that if the values are bound by position, the - order of the variables is from left to right as they are encountered in - the statement and SQL statements are processed differently than PL/SQL - statements. For this reason, it is generally recommended to bind - parameters by name instead of by position. - - Parameters passed as a dictionary are name and value pairs. The name - maps to the bind variable name used by the statement and the value maps - to the Python value you wish bound to that bind variable. - - A reference to the statement will be retained by the cursor. If *None* - or the same string object is passed in again, the cursor will execute - that statement again without performing a prepare or rebinding and - redefining. This is most effective for algorithms where the same - statement is used, but different parameters are bound to it (many - times). Note that parameters that are not passed in during subsequent - executions will retain the value passed in during the last execution - that contained them. - - The ``suspend_on_success`` parameter is specific to :ref:`sessionless - transactions `. When set to *True*, the active - sessionless transaction will be suspended when ``execute()`` completes - successfully. See :ref:`suspendtxns`. - - The ``fetch_lobs`` parameter specifies whether to return LOB locators - or ``str``/``bytes`` values when fetching LOB columns. The default - value is :data:`oracledb.defaults.fetch_lobs `. - - The ``fetch_decimals`` parameter specifies whether to return - ``decimal.Decimal`` values when fetching columns of type ``NUMBER``. - The default value is :data:`oracledb.defaults.fetch_decimals - `. - - For maximum efficiency when reusing a statement, it is best to use the - :meth:`setinputsizes()` method to specify the parameter types and sizes - ahead of time; in particular, *None* is assumed to be a string of - length 1 so any values that are later bound as numbers or dates will - raise a TypeError exception. - - If the statement is a SELECT query, the cursor is returned as a - convenience to the caller (so it can be used directly as an iterator - over the rows in the cursor); otherwise, *None* is returned. - """ - self._prepare_for_execute(statement, parameters, keyword_parameters) - impl = self._impl - impl.suspend_on_success = suspend_on_success - if fetch_lobs is not None: - impl.fetch_lobs = fetch_lobs - if fetch_decimals is not None: - impl.fetch_decimals = fetch_decimals - await self._impl.execute(self) - - async def executemany( - self, - statement: Optional[str], - parameters: Any, - *, - batcherrors: bool = False, - arraydmlrowcounts: bool = False, - suspend_on_success: bool = False, - batch_size: int = 2**32 - 1, - ) -> None: - """ - Executes a SQL statement once using all bind value mappings or - sequences found in the sequence parameters. This can be used to insert, - update, or delete multiple rows in a table with a single - python-oracledb call. It can also invoke a PL/SQL procedure multiple - times. See :ref:`batchstmnt`. - - The ``statement`` parameter is managed in the same way as the - :meth:`execute()` method manages it. - - The ``parameters`` parameter can be a list of tuples, where each tuple - item maps to one bind variable placeholder in ``statement``. It can - also be a list of dictionaries, where the keys match the bind variable - placeholder names in ``statement``. If there are no bind values, or - values have previously been bound, the ``parameters`` value can be an - integer specifying the number of iterations. The ``parameters`` - parameter can also be a :ref:`DataFrame `, or a - third-party data frame that supports the `Apache Arrow PyCapsule - `__ Interface. - - In python-oracledb Thick mode, if the size of the buffers allocated for - any of the parameters exceeds 2 GB, you will receive the error - ``DPI-1015: array size of is too large``. If you receive this - error, decrease the number of rows being inserted. - - When True, the ``batcherrors`` parameter enables batch error support - within Oracle and ensures that the call succeeds even if an exception - takes place in one or more of the sequence of parameters. The errors - can then be retrieved using :meth:`getbatcherrors()`. - - When True, the ``arraydmlrowcounts`` parameter enables DML row counts - to be retrieved from Oracle after the method has completed. The row - counts can then be retrieved using :meth:`getarraydmlrowcounts()`. - - Both the ``batcherrors`` parameter and the ``arraydmlrowcounts`` - parameter can only be True when executing an insert, update, delete, or - merge statement. In all other cases, an error will be raised. - - The ``suspend_on_success`` parameter is specific to :ref:`sessionless - transactions `. When set to *True*, the active - sessionless transaction will be suspended when ``executemany()`` - completes successfully. See :ref:`suspendtxns`. - - The ``batch_size`` parameter is used to split large data sets into - smaller pieces for sending to the database. It is the number of records - in each batch. This parameter can be used to tune performance. When - ``Connection.autocommit`` is *True*, a commit will take place for each - batch. Do not set ``batch_size`` when ``suspend_on_success`` is *True*. - - For maximum efficiency, it is best to use the :meth:`setinputsizes()` - method to specify the parameter types and sizes ahead of time. In - particular, the value *None* is assumed to be a string of length 1 so - any values that are later bound as numbers or dates will raise a - TypeError exception. - """ - self._verify_open() - manager = self._impl._prepare_for_executemany( - self, self._normalize_statement(statement), parameters, batch_size - ) - self._impl.suspend_on_success = suspend_on_success - while manager.num_rows > 0: - await self._impl.executemany( - self, - manager.num_rows, - batcherrors, - arraydmlrowcounts, - manager.message_offset, - ) - manager.next_batch() - - async def fetchall(self) -> list: - """ - Fetches all (remaining) rows of a SELECT query result, returning them - as a list of tuples. An empty list is returned if no more rows are - available. An exception is raised if the previous call to - :meth:`execute()` did not produce any result set or no call was issued - yet. - - Note that the cursor's :attr:`~AsyncCursor.arraysize` attribute can - affect the performance of this operation, as internally data is fetched - in batches of that size from the database. - """ - self._verify_fetch() - result = [] - fetch_next_row = self._impl.fetch_next_row - while True: - row = await fetch_next_row(self) - if row is None: - break - result.append(row) - return result - - async def fetchmany(self, size: Optional[int] = None) -> list: - """ - Fetches the next set of rows of a SELECT query result, returning a list - of tuples. An empty list is returned if no more rows are available. - Note that the cursor's :attr:`arraysize` attribute can affect the - performance of this operation. - - The number of rows to fetch is specified by the parameter. If it is not - given, the cursor's :attr:`arraysize` attribute determines the number - of rows to be fetched. If the number of rows available to be fetched is - fewer than the amount requested, fewer rows will be returned. - - An exception is raised if the previous call to :meth:`execute()` did - not produce any result set or no call was issued yet. - """ - self._verify_fetch() - if size is None: - size = self._impl.arraysize - result = [] - fetch_next_row = self._impl.fetch_next_row - while len(result) < size: - row = await fetch_next_row(self) - if row is None: - break - result.append(row) - return result - - async def fetchone(self) -> Any: - """ - Fetches the next row of a SELECT query result set, returning a single - tuple or *None* when no more data is available. An exception is raised - if the previous call to :meth:`execute()` did not produce any result - set or no call was issued yet. - - When ``fetchone()`` is used to iterate over a result set, the cursor’s - :attr:`arraysize` attribute can affect performance, as internally data - is fetched in batches of that size from Oracle Database. - """ - self._verify_fetch() - return await self._impl.fetch_next_row(self) - - async def parse(self, statement: str) -> None: - """ - This can be used to parse a statement without actually executing it - (parsing step is done automatically by Oracle when a statement is - :meth:`executed `). - """ - self._verify_open() - self._prepare(statement) - await self._impl.parse(self) - - async def scroll(self, value: int = 0, mode: str = "relative") -> None: - """ - Scrolls the cursor in the result set to a new position according to the - mode. - - If mode is *relative* (the default value), the value is taken as an - offset to the current position in the result set. If set to *absolute*, - value states an absolute target position. If set to *first*, the cursor - is positioned at the first row and if set to *last*, the cursor is set - to the last row in the result set. - - An error is raised if the mode is *relative* or *absolute* and the - scroll operation would position the cursor outside of the result set. - """ - self._verify_open() - if not self._impl.scrollable: - errors._raise_err(errors.ERR_SCROLL_NOT_SUPPORTED) - await self._impl.scroll(self, value, mode) diff --git a/.venv/lib/python3.9/site-packages/oracledb/dataframe.py b/.venv/lib/python3.9/site-packages/oracledb/dataframe.py deleted file mode 100644 index feb74c4..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/dataframe.py +++ /dev/null @@ -1,122 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# dataframe.py -# -# Implement a data frame that can be used for efficiently transferring Arrow -# array data to other data frame libraries. -# ----------------------------------------------------------------------------- - -from .arrow_array import ArrowArray -from .arrow_impl import DataFrameImpl -from .base import BaseMetaClass -from . import errors - - -class DataFrame(metaclass=BaseMetaClass): - _impl = None - - def __init__(self): - errors._raise_err(errors.ERR_INTERNAL_CREATION_REQUIRED) - - @classmethod - def _from_arrow(cls, obj): - df = cls.__new__(cls) - df._initialize(DataFrameImpl.from_arrow_stream(obj)) - return df - - @classmethod - def _from_impl(cls, impl): - df = cls.__new__(cls) - df._initialize(impl) - return df - - def _initialize(self, impl): - """ - Initializes the object given the implementation. - """ - self._impl = impl - self._arrays = [ArrowArray._from_impl(a) for a in impl.get_arrays()] - self._arrays_by_name = {} - for array in self._arrays: - self._arrays_by_name[array.name] = array - - def __arrow_c_stream__(self, requested_schema=None): - """ - Returns the ArrowArrayStream PyCapsule which allows direct conversion - to foreign data frames that support this interface. - """ - if requested_schema is not None: - raise NotImplementedError("requested_schema") - return self._impl.get_stream_capsule() - - def column_arrays(self) -> list[ArrowArray]: - """ - Returns a list of ArrowArray objects, each containing a select list - column. - """ - return self._arrays - - def column_names(self) -> list[str]: - """ - Returns a list of the column names in the data frame. - """ - return [a.name for a in self._arrays] - - def get_column(self, i: int) -> ArrowArray: - """ - Returns an :ref:`ArrowArray ` object for the - column at the given index ``i``. If the index is out of range, an - IndexError exception is raised. - """ - if i < 0 or i >= self.num_columns(): - raise IndexError( - f"Column index {i} is out of bounds for " - f"DataFrame with {self.num_columns()} columns" - ) - return self._arrays[i] - - def get_column_by_name(self, name: str) -> ArrowArray: - """ - Returns an :ref:`ArrowArray ` object for the - column with the given name ``name``. If the column name is not found, - a KeyError exception is raised. - """ - try: - return self._arrays_by_name[name] - except KeyError: - raise KeyError(f"Column {name} not found in DataFrame") - - def num_columns(self) -> int: - """ - Returns the number of columns in the data frame. - """ - return len(self._arrays) - - def num_rows(self) -> int: - """ - Returns the number of rows in the data frame. - """ - return len(self._arrays[0]) diff --git a/.venv/lib/python3.9/site-packages/oracledb/dbobject.py b/.venv/lib/python3.9/site-packages/oracledb/dbobject.py deleted file mode 100644 index fef230e..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/dbobject.py +++ /dev/null @@ -1,392 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# dbobject.py -# -# Contains the classes used for managing database objects and the database -# object type metadata: DbObject, DbObjectType and DbObjectAttr. -# ----------------------------------------------------------------------------- - -from typing import Any, Sequence, Union - -from . import errors -from .base import BaseMetaClass -from .base_impl import DbType - - -class DbObject(metaclass=BaseMetaClass): - - def __getattr__(self, name): - try: - attr_impl = self._impl.type.attrs_by_name[name] - except KeyError: - return super().__getattribute__(name) - return self._impl.get_attr_value(attr_impl) - - def __iter__(self): - self._ensure_is_collection() - ix = self._impl.get_first_index() - while ix is not None: - yield self._impl.get_element_by_index(ix) - ix = self._impl.get_next_index(ix) - - def __repr__(self): - cls_name = self.__class__._public_name - return f"<{cls_name} {self.type._get_full_name()} at {hex(id(self))}>" - - def __setattr__(self, name, value): - if name == "_impl" or name == "_type": - super().__setattr__(name, value) - else: - attr_impl = self._impl.type.attrs_by_name[name] - self._impl.set_attr_value(attr_impl, value) - - def _ensure_is_collection(self): - """ - Ensures that the object refers to a collection. If not, an exception is - raised. - """ - if not self.type.iscollection: - errors._raise_err( - errors.ERR_OBJECT_IS_NOT_A_COLLECTION, - name=self.type._get_full_name(), - ) - - @classmethod - def _from_impl(cls, impl): - obj = cls.__new__(cls) - obj._impl = impl - obj._type = None - return obj - - def append(self, element: Any) -> None: - """ - Appends an element to the collection object. If no elements exist in - the collection, this creates an element at index 0; otherwise, it - creates an element immediately following the highest index available in - the collection. - """ - self._ensure_is_collection() - self._impl.append(element) - - def asdict(self) -> dict: - """ - Returns a dictionary where the collection’s indexes are the keys and - the elements are its values. - """ - self._ensure_is_collection() - result = {} - ix = self._impl.get_first_index() - while ix is not None: - result[ix] = self._impl.get_element_by_index(ix) - ix = self._impl.get_next_index(ix) - return result - - def aslist(self) -> list: - """ - Returns a list of each of the collection’s elements in index order. - """ - return list(self) - - def copy(self) -> "DbObject": - """ - Creates a copy of the object and returns it. - """ - copied_impl = self._impl.copy() - return DbObject._from_impl(copied_impl) - - def delete(self, index: int) -> None: - """ - Delete the element at the specified index of the collection. If the - element does not exist or is otherwise invalid, an error is raised. - Note that the indices of the remaining elements in the collection are - not changed. In other words, the delete operation creates holes in the - collection. - """ - self._ensure_is_collection() - self._impl.delete_by_index(index) - - def exists(self, index: int) -> bool: - """ - Return True or False indicating if an element exists in the collection - at the specified index. - """ - self._ensure_is_collection() - return self._impl.exists_by_index(index) - - def extend(self, seq: list) -> None: - """ - Appends all of the elements in the sequence to the collection. This is - the equivalent of performing append() for each element found in the - sequence. - """ - self._ensure_is_collection() - for value in seq: - self.append(value) - - def first(self) -> int: - """ - Returns the index of the first element in the collection. If the - collection is empty, None is returned. - """ - self._ensure_is_collection() - return self._impl.get_first_index() - - def getelement(self, index: int) -> Any: - """ - Returns the element at the specified index of the collection. If no - element exists at that index, an exception is raised. - """ - self._ensure_is_collection() - return self._impl.get_element_by_index(index) - - def last(self) -> int: - """ - Returns the index of the last element in the collection. If the - collection is empty, None is returned. - """ - self._ensure_is_collection() - return self._impl.get_last_index() - - def next(self, index: int) -> int: - """ - Returns the index of the next element in the collection following the - specified index. If there are no elements in the collection following - the specified index, None is returned. - """ - self._ensure_is_collection() - return self._impl.get_next_index(index) - - def prev(self, index: int) -> int: - """ - Returns the index of the element in the collection preceding the - specified index. If there are no elements in the collection preceding - the specified index, None is returned. - """ - self._ensure_is_collection() - return self._impl.get_prev_index(index) - - def setelement(self, index: int, value: Any) -> None: - """ - Sets the value in the collection at the specified index to the given - value. - """ - self._ensure_is_collection() - self._impl.set_element_by_index(index, value) - - def size(self) -> int: - """ - Returns the number of elements in the collection. - """ - self._ensure_is_collection() - return self._impl.get_size() - - def trim(self, num: int) -> None: - """ - Removes the specified number of elements from the end of the - collection. - """ - self._ensure_is_collection() - self._impl.trim(num) - - @property - def type(self) -> "DbObjectType": - """ - This read-only attribute arturns an ObjectType corresponding to the - type of the object. - """ - if self._type is None: - self._type = DbObjectType._from_impl(self._impl.type) - return self._type - - -class DbObjectAttr(metaclass=BaseMetaClass): - - def __repr__(self): - return f"" - - @classmethod - def _from_impl(cls, impl): - attr = cls.__new__(cls) - attr._impl = impl - attr._type = None - return attr - - @property - def max_size(self) -> Union[int, None]: - """ - This read-only attribute returns the maximum size (in bytes) of the - attribute when the attribute's type is one of - DB_TYPE_RAW, DB_TYPE_CHAR, DB_TYPE_NCHAR, DB_TYPE_VARCHAR and - DB_TYPE_NVARCHAR. For all other types, the value returned is None. - """ - if self._impl.max_size: - return self._impl.max_size - - @property - def name(self) -> str: - """ - This read-only attribute returns the name of the attribute. - """ - return self._impl.name - - @property - def precision(self) -> Union[int, None]: - """ - This read-only attribute returns the precision of the attribute when - the attribute's type is DB_TYPE_NUMBER. For all other types, the value - returned is None. - """ - if self._impl.precision or self._impl.scale: - return self._impl.precision - - @property - def scale(self) -> Union[int, None]: - """ - This read-only attribute returns the scale of the attribute when the - attribute's type is DB_TYPE_NUMBER. For all other types, the value - returned is None. - """ - if self._impl.precision or self._impl.scale: - return self._impl.scale - - @property - def type(self) -> Union["DbObjectType", DbType]: - """ - This read-only attribute returns the type of the attribute. This will - be an Oracle Object Type if the variable binds Oracle objects; - otherwise, it will be one of the database type constants. - """ - if self._type is None: - if self._impl.objtype is not None: - self._type = DbObjectType._from_impl(self._impl.objtype) - else: - self._type = self._impl.dbtype - return self._type - - -class DbObjectType(metaclass=BaseMetaClass): - - def __call__(self, value: Sequence = None) -> DbObject: - """ - The object type may be called directly and serves as an alternative way - of calling :meth:`~DbObjectType.newobject()`. - """ - return self.newobject(value) - - def __eq__(self, other): - if isinstance(other, DbObjectType): - return other._impl == self._impl - return NotImplemented - - def __repr__(self): - return f"" - - @classmethod - def _from_impl(cls, impl): - typ = cls.__new__(cls) - typ._impl = impl - typ._attributes = None - typ._element_type = None - return typ - - def _get_full_name(self): - """ - Returns the full name of the type. - """ - return self._impl._get_fqn() - - @property - def attributes(self) -> list["DbObjectAttr"]: - """ - This read-only attribute returns a list of the attributes that make up - the object type. - """ - if self._attributes is None: - self._attributes = [ - DbObjectAttr._from_impl(i) for i in self._impl.attrs - ] - return self._attributes - - @property - def iscollection(self) -> bool: - """ - This read-only attribute returns a boolean indicating if the object - type refers to a collection or not. - """ - return self._impl.is_collection - - @property - def name(self) -> str: - """ - This read-only attribute returns the name of the type. - """ - return self._impl.name - - @property - def element_type(self) -> Union["DbObjectType", DbType]: - """ - This read-only attribute returns the type of elements found in - collections of this type, if iscollection is True; otherwise, it - returns None. If the collection contains objects, this will be another - object type; otherwise, it will be one of the database type constants. - """ - if self._element_type is None: - if self._impl.element_metadata.objtype is not None: - typ_impl = self._impl.element_metadata.objtype - self._element_type = DbObjectType._from_impl(typ_impl) - else: - self._element_type = self._impl.element_metadata.dbtype - return self._element_type - - def newobject(self, value: Sequence = None) -> DbObject: - """ - Returns a new Oracle object of the given type. This object can then be - modified by setting its attributes and then bound to a cursor for - interaction with Oracle. If the object type refers to a collection, a - sequence may be passed and the collection will be initialized with the - items in that sequence. - """ - obj_impl = self._impl.create_new_object() - obj = DbObject._from_impl(obj_impl) - if value is not None: - obj.extend(value) - return obj - - @property - def package_name(self) -> str: - """ - This read-only attribute returns the name of the package containing the - PL/SQL type or None if the type is not a PL/SQL type. - """ - return self._impl.package_name - - @property - def schema(self) -> str: - """ - This read-only attribute returns the name of the schema that owns the - type. - """ - return self._impl.schema diff --git a/.venv/lib/python3.9/site-packages/oracledb/defaults.py b/.venv/lib/python3.9/site-packages/oracledb/defaults.py deleted file mode 100644 index c717c84..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/defaults.py +++ /dev/null @@ -1,329 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# defaults.py -# -# Contains the Defaults class used for managing default values used throughout -# the module. -# ----------------------------------------------------------------------------- - -from . import base_impl -from . import errors -from .base import BaseMetaClass - - -class Defaults(metaclass=BaseMetaClass): - """ - A singleton Defaults object contains attributes to adjust default - behaviors of python-oracledb. It is accessed using the :data:`defaults` - attribute of the imported module. - """ - - def __init__(self) -> None: - self._impl = base_impl.DEFAULTS - - @property - def arraysize(self) -> int: - """ - This read-write attribute specifies the default arraysize to use when - cursors are created. - - It is an attribute for tuning the performance of fetching rows from - Oracle Database. It does not affect data insertion. - - This value is the default for :attr:`Cursor.arraysize` and - :attr:`AsyncCursor.arraysize`. - - This attribute has an initial value of *100*. - """ - return self._impl.arraysize - - @arraysize.setter - def arraysize(self, value: int): - self._impl.arraysize = value - - @property - def config_dir(self) -> str: - """ - This read-write attribute specifies the directory in which the optional - configuration file ``tnsnames.ora`` will be read in python-oracledb - Thin mode. It is also used in Thick mode if - :attr:`Defaults.thick_mode_dsn_passthrough` is *False*. - - At time of ``import oracledb`` the value of - ``oracledb.defaults.config_dir`` will be set to (first one wins): - - - the value of ``$TNS_ADMIN``, if ``TNS_ADMIN`` is set. - - - ``$ORACLE_HOME/network/admin``, if ``$ORACLE_HOME`` is set. - - Otherwise, ``oracledb.defaults.config_dir`` will not be set. - - At completion of a call to :meth:`oracledb.init_oracle_client()` in - python-oracledb Thick mode, the value of ``config_dir`` may get - changed. - """ - return self._impl.config_dir - - @config_dir.setter - def config_dir(self, value: str): - self._impl.config_dir = value - - @property - def fetch_lobs(self) -> bool: - """ - This read-write attribute specifies whether queries that contain LOBs - should return LOB objects or their contents instead. - - When the value of this attribute is *True*, then queries to LOB columns - return LOB locators. When the value of this attribute is *False*, then - CLOBs and NCLOBs are fetched as strings, and BLOBs are fetched as - bytes. If LOBs are larger than 1 GB, then this attribute should be set - to *True* and the LOBs should be streamed. - - The value of ``oracledb.defaults.fetch_lobs`` does not affect LOBs - returned as OUT binds. - - The value of ``fetch_lobs`` can be overridden at statement execution by - passing an equivalent parameter. - - An output type handler such as the one previously required in the - obsolete cx_Oracle driver can alternatively be used to adjust the - returned type. If a type handler exists and returns a variable (that - is, `cursor.var(...)`), then that return variable is used. If the type - handler returns *None*, then the value of - ``oracledb.defaults.fetch_lobs`` is used. - - This attribute has an initial value of *True*. - """ - return self._impl.fetch_lobs - - @fetch_lobs.setter - def fetch_lobs(self, value: bool): - self._impl.fetch_lobs = value - - @property - def fetch_decimals(self) -> bool: - """ - This read-write attribute specifies whether queries that contain - numbers should be fetched as Python decimal.Decimal objects or floating - point numbers. This can help avoid issues with converting numbers from - Oracle Database's decimal format to Python's binary format. - - The value of ``fetch_decimals`` can be overridden at statement - execution by passing an equivalent parameter. - - An output type handler such as previously required in the obsolete - cx_Oracle driver can alternatively be used to adjust the returned type. - If a type handler exists and returns a variable (that is, - ``cursor.var(...)``), then that return variable is used. If the type - handler returns *None*, then the value of - ``oracledb.defaults.fetch_decimals`` is used to determine whether to - return ``decimal.Decimal`` values. - - This attribute has an initial value of *False*. - """ - return self._impl.fetch_decimals - - @fetch_decimals.setter - def fetch_decimals(self, value: bool): - self._impl.fetch_decimals = value - - @property - def prefetchrows(self) -> int: - """ - This read-write attribute specifies the default number of rows to - prefetch when cursors are executed. - - This is an attribute for tuning the performance of fetching rows from - Oracle Database. It does not affect data insertion. - - This value is the default for :attr:`Cursor.prefetchrows` and - :attr:`AsyncCursor.prefetchrows`. - - This attribute is ignored when using :meth:`Connection.fetch_df_all()` - or :meth:`Connection.fetch_df_batches()` since these methods always set - the internal prefetch size to their relevant ``arraysize`` or ``size`` - parameter value. - - This attribute has an initial value of *2*. - """ - return self._impl.prefetchrows - - @prefetchrows.setter - def prefetchrows(self, value: int): - self._impl.prefetchrows = value - - @property - def stmtcachesize(self) -> int: - """ - This read-write attribute specifies the default size of the statement - cache. - - This is an attribute for tuning statement execution performance when a - statement is executed more than once. - - This value is the default for :attr:`Connection.stmtcachesize`, - :attr:`ConnectionPool.stmtcachesize`, - :attr:`AsyncConnection.stmtcachesize`, and - :attr:`AsyncConnectionPool.stmtcachesize`. - - This attribute has an initial value of *20*. - """ - return self._impl.stmtcachesize - - @stmtcachesize.setter - def stmtcachesize(self, value: int): - self._impl.stmtcachesize = value - - @property - def program(self) -> str: - """ - This read-write attribute is a string recorded by Oracle Database - as the program from which the connection originates. This is the value - used in the PROGRAM column of the V$SESSION view. - - This attribute has an initial value that is populated by - `sys.executable `__. - - This attribute is only used in python-oracledb Thin mode. - """ - return self._impl.program - - @program.setter - def program(self, value: str): - if base_impl.sanitize(value) != value: - errors._raise_err(errors.ERR_INVALID_NETWORK_NAME, name="program") - self._impl.program = value - - @property - def machine(self) -> str: - """ - This read-write attribute is a string recorded by Oracle Database as - the name of machine from which the connection originates. This is the - value used in the MACHINE column of the V$SESSION view. - - This attribute takes the host name where the application is running as - its initial value. - - This attribute is only used in python-oracledb Thin mode. - """ - return self._impl.machine - - @machine.setter - def machine(self, value: str): - if base_impl.sanitize(value) != value: - errors._raise_err(errors.ERR_INVALID_NETWORK_NAME, name="machine") - self._impl.machine = value - - @property - def terminal(self) -> str: - """ - This read-write attribute specifies the terminal identifier from which - the connection originates. This is the value used in the TERMINAL - column of the V$SESSION view. - - This attribute has an initial value of "unknown". - - This attribute is only used in python-oracledb Thin mode. - """ - return self._impl.terminal - - @terminal.setter - def terminal(self, value: str): - self._impl.terminal = value - - @property - def osuser(self) -> str: - """ - This read-write attribute is a string recorded by Oracle Database - as the operating system user who originated the connection. This is the - value used in the OSUSER column of the V$SESSION view. - - This attribute takes the login name of the user as its initial value. - - This attribute is only used in python-oracledb Thin mode. - """ - return self._impl.osuser - - @osuser.setter - def osuser(self, value: str): - if base_impl.sanitize(value) != value: - errors._raise_err(errors.ERR_INVALID_NETWORK_NAME, name="osuser") - self._impl.osuser = value - - @property - def driver_name(self) -> str: - """ - This read-write attribute is a string recorded by Oracle Database - as the name of the driver which originated the connection. This is the - value used in the CLIENT_DRIVER column of the V$SESSION_CONNECT_INFO - view. - - This attribute has an initial value of *None*. It is used as required - in python-oracledb Thick and Thin mode. - - In python-oracledb Thick mode, this attribute is used if the - ``driver_name`` parameter is not specified in - :meth:`oracledb.init_oracle_client()`. In Thin mode, this attribute is - used if the ``driver_name`` parameter is not specified in - :meth:`oracledb.connect()`, :meth:`oracledb.connect_async()`, - :meth:`oracledb.create_pool()`, or - :meth:`oracledb.create_pool_async()`. If the value of this attribute is - *None*, the value set when connecting in python-oracledb Thick mode is - like "python-oracledb thk : " and in Thin mode is like - "python-oracledb thn : ". - """ - return self._impl.driver_name - - @driver_name.setter - def driver_name(self, value: str): - self._impl.driver_name = value - - @property - def thick_mode_dsn_passthrough(self) -> bool: - """ - This read-write attribute determines whether - connection strings passed as the ``dsn`` parameter to - :meth:`oracledb.connect()`, :meth:`oracledb.create_pool()`, - :meth:`oracledb.connect_async()`, and - :meth:`oracledb.create_pool_async()` in python-oracledb Thick mode will - be parsed by Oracle Client libraries or by python-oracledb itself. - - The value of ``thick_mode_dsn_passthrough`` is ignored in - python-oracledb Thin mode, which always parses all connect strings - (including reading a tnsnames.ora file, if required). - - This attribute has an initial value of *True*. - """ - return self._impl.thick_mode_dsn_passthrough - - @thick_mode_dsn_passthrough.setter - def thick_mode_dsn_passthrough(self, value: str): - self._impl.thick_mode_dsn_passthrough = value - - -defaults = Defaults() diff --git a/.venv/lib/python3.9/site-packages/oracledb/driver_mode.py b/.venv/lib/python3.9/site-packages/oracledb/driver_mode.py deleted file mode 100644 index 15c93dc..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/driver_mode.py +++ /dev/null @@ -1,140 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2025 Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# driver_mode.py -# -# Contains a simple method for checking and returning which mode the driver is -# currently using. The driver only supports creating connections and pools with -# either the thin implementation or the thick implementation, not both -# simultaneously. -# ----------------------------------------------------------------------------- - -import threading - -from . import errors - - -# The DriverModeHandler class is used to manage which mode the driver is using. -# -# The "thin_mode" flag contains the current state: -# None: neither thick nor thin implementation has been used yet -# False: thick implementation is being used -# True: thin implementation is being used -# -# The "requested_thin_mode" flag is set to the mode that is being requested: -# False: thick implementation is being initialized -# True: thin implementation is being initialized -class DriverModeManager: - """ - Manages the mode the driver is using. The "thin_mode" flag contains the - current state: - None: neither thick nor thin implementation has been used yet - False: thick implementation is being used - True: thin implementation is being used - The "requested_thin_mode" is set to the mode that is being requested, but - only while initialization is taking place (otherwise, it contains the value - None): - False: thick implementation is being initialized - True: thin implementation is being initialized - The condition is used to ensure that only one thread is performing - initialization. - """ - - def __init__(self): - self.thin_mode = None - self.requested_thin_mode = None - self.condition = threading.Condition() - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_value, exc_tb): - with self.condition: - if ( - exc_type is None - and exc_value is None - and exc_tb is None - and self.requested_thin_mode is not None - ): - self.thin_mode = self.requested_thin_mode - self.requested_thin_mode = None - self.condition.notify() - - @property - def thin(self): - if self.requested_thin_mode is not None: - return self.requested_thin_mode - return self.thin_mode - - -manager = DriverModeManager() - - -def get_manager(requested_thin_mode=None): - """ - Returns the manager, but only after ensuring that no other threads are - attempting to initialize the mode. - """ - with manager.condition: - if manager.thin_mode is None: - if manager.requested_thin_mode is not None: - manager.condition.wait() - if manager.thin_mode is None: - if requested_thin_mode is None: - manager.requested_thin_mode = True - else: - manager.requested_thin_mode = requested_thin_mode - elif ( - requested_thin_mode is not None - and requested_thin_mode != manager.thin_mode - ): - if requested_thin_mode: - errors._raise_err(errors.ERR_THICK_MODE_ENABLED) - else: - errors._raise_err(errors.ERR_THIN_CONNECTION_ALREADY_CREATED) - return manager - - -def is_thin_mode() -> bool: - """ - Returns a boolean indicating if python-oracledb is in Thin mode. - - Immediately after python-oracledb is imported, this function will return - *True* indicating that python-oracledb defaults to Thin mode. If a call to - :func:`oracledb.init_oracle_client()` returns successfully, then a - subsequent call to ``is_thin_mode()`` will return False indicating that - Thick mode is enabled. Once the first standalone connection or connection - pool is created, or a successful call to ``oracledb.init_oracle_client()`` - is made, or :meth:`oracledb.enable_thin_mode()` is called, then - python-oracledb’s mode is fixed and the value returned by - ``is_thin_mode()`` will never change for the lifetime of the process. - - The attribute :attr:`Connection.thin` can be used to check a connection's - mode. The attribute :attr:`ConnectionPool.thin` can be used to check a - pool's mode. - """ - if manager.thin_mode is not None: - return manager.thin_mode - return True diff --git a/.venv/lib/python3.9/site-packages/oracledb/dsn.py b/.venv/lib/python3.9/site-packages/oracledb/dsn.py deleted file mode 100644 index 13bb31c..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/dsn.py +++ /dev/null @@ -1,81 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# dsn.py -# -# Contains makedsn(), a method available for backwards compatibility with -# cx_Oracle. Use of the ConnectParams class or the keyword arguments to -# connect() and create_pool() is recommended instead. -# ----------------------------------------------------------------------------- - -from . import errors - - -def _check_arg(name: str, value: str) -> None: - """ - Checks the argument to ensure that it does not contain (, ) or = as these - characters are not permitted within connect strings. - """ - if "(" in value or ")" in value or "=" in value: - errors._raise_err(errors.ERR_INVALID_MAKEDSN_ARG, name=name) - - -def makedsn( - host: str, - port: int, - sid: str = None, - service_name: str = None, - region: str = None, - sharding_key: str = None, - super_sharding_key: str = None, -) -> str: - """ - Returns a string suitable for use as the ``dsn`` parameter for - :meth:`~oracledb.connect()`. This string is identical to the strings that - are defined by the Oracle names server or defined in the ``tnsnames.ora`` - file. - """ - connect_data_parts = [] - _check_arg("host", host) - if service_name is not None: - _check_arg("service_name", service_name) - connect_data_parts.append(f"(SERVICE_NAME={service_name})") - elif sid is not None: - _check_arg("sid", sid) - connect_data_parts.append(f"(SID={sid})") - if region is not None: - _check_arg("region", region) - connect_data_parts.append(f"(REGION={region})") - if sharding_key is not None: - _check_arg("sharding_key", sharding_key) - connect_data_parts.append(f"(SHARDING_KEY={sharding_key})") - if super_sharding_key is not None: - _check_arg("super_sharding_key", super_sharding_key) - connect_data_parts.append(f"(SUPER_SHARDING_KEY={super_sharding_key})") - connect_data = "".join(connect_data_parts) - return ( - f"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={host})" - f"(PORT={port}))(CONNECT_DATA={connect_data}))" - ) diff --git a/.venv/lib/python3.9/site-packages/oracledb/end_user_security_context.py b/.venv/lib/python3.9/site-packages/oracledb/end_user_security_context.py deleted file mode 100644 index c82e903..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/end_user_security_context.py +++ /dev/null @@ -1,92 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# end_user_security_context.py -# -# Contains the methods required to create the end user security context. -# ----------------------------------------------------------------------------- - -from typing import Dict, List, Optional, Tuple, Union -from . import thin_impl - - -def create_end_user_security_context( - end_user_identity: Union[str, Tuple[str, str], List[str]], - database_access_token: str, - data_roles: Optional[List[str]] = None, - attributes: Optional[Dict] = None, -) -> thin_impl.EndUserSecurityContextImpl: - """ - Creates a new end user security context that contains the identity and - authorization details. - - The ``end_user_identity`` parameter can be a string, a two-tuple or a - two-item list, and specifies the unique identifier of an end user. For OCI - IAM or Microsoft Entra ID users, this parameter must be a string containing - the token issued by these IAMs after user authentication. For database - managed users, this parameter must be a two-tuple or two-item list - containing the database user name and key. - - The ``database_access_token`` parameter is a string containing the security - token issued by OCI IAM or Entra ID that authorizes an application to - access Oracle Database. This can either be an On-Behalf-Of (OBO) token or a - Client Credentials token. - - The ``data_roles`` parameter is a list containing the names of data roles - granted to the application or local database user. - - The ``attributes`` parameter is a dictionary containing the attribute-value - pairs of the end user context attributes. - """ - end_user_token = end_user_name = key = None - - if isinstance(end_user_identity, str) and end_user_identity: - end_user_token = end_user_identity - elif ( - isinstance(end_user_identity, (tuple, list)) - and len(end_user_identity) == 2 - and all( - isinstance(value, str) and value for value in end_user_identity - ) - ): - end_user_name, key = end_user_identity - else: - raise ValueError( - "end_user_identity must be a token string or a tuple/list of " - "(end_user_name, key)." - ) - - if not isinstance(database_access_token, str) or not database_access_token: - raise ValueError("database_access_token must be a non-empty string.") - - cls = thin_impl.EndUserSecurityContextImpl - return cls.create_end_user_security_context( - end_user_token, - end_user_name, - key, - database_access_token, - data_roles, - attributes, - ) diff --git a/.venv/lib/python3.9/site-packages/oracledb/enums.py b/.venv/lib/python3.9/site-packages/oracledb/enums.py deleted file mode 100644 index 64ad212..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/enums.py +++ /dev/null @@ -1,76 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2024, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# enums.py -# -# Contains the enumerations of various constants used throughout the package. -# ----------------------------------------------------------------------------- - -import enum - -from . import base_impl - - -class AuthMode(enum.IntFlag): - DEFAULT = base_impl.AUTH_MODE_DEFAULT - PRELIM = base_impl.AUTH_MODE_PRELIM - SYSASM = base_impl.AUTH_MODE_SYSASM - SYSBKP = base_impl.AUTH_MODE_SYSBKP - SYSDBA = base_impl.AUTH_MODE_SYSDBA - SYSDGD = base_impl.AUTH_MODE_SYSDGD - SYSKMT = base_impl.AUTH_MODE_SYSKMT - SYSOPER = base_impl.AUTH_MODE_SYSOPER - SYSRAC = base_impl.AUTH_MODE_SYSRAC - - -class PipelineOpType(enum.IntFlag): - CALL_FUNC = base_impl.PIPELINE_OP_TYPE_CALL_FUNC - CALL_PROC = base_impl.PIPELINE_OP_TYPE_CALL_PROC - COMMIT = base_impl.PIPELINE_OP_TYPE_COMMIT - EXECUTE = base_impl.PIPELINE_OP_TYPE_EXECUTE - EXECUTE_MANY = base_impl.PIPELINE_OP_TYPE_EXECUTE_MANY - FETCH_ALL = base_impl.PIPELINE_OP_TYPE_FETCH_ALL - FETCH_MANY = base_impl.PIPELINE_OP_TYPE_FETCH_MANY - FETCH_ONE = base_impl.PIPELINE_OP_TYPE_FETCH_ONE - - -class PoolGetMode(enum.IntEnum): - FORCEGET = base_impl.POOL_GETMODE_FORCEGET - NOWAIT = base_impl.POOL_GETMODE_NOWAIT - TIMEDWAIT = base_impl.POOL_GETMODE_TIMEDWAIT - WAIT = base_impl.POOL_GETMODE_WAIT - - -class Purity(enum.IntEnum): - DEFAULT = base_impl.PURITY_DEFAULT - NEW = base_impl.PURITY_NEW - SELF = base_impl.PURITY_SELF - - -class VectorFormat(enum.IntEnum): - BINARY = base_impl.VECTOR_FORMAT_BINARY - FLOAT32 = base_impl.VECTOR_FORMAT_FLOAT32 - FLOAT64 = base_impl.VECTOR_FORMAT_FLOAT64 - INT8 = base_impl.VECTOR_FORMAT_INT8 diff --git a/.venv/lib/python3.9/site-packages/oracledb/errors.py b/.venv/lib/python3.9/site-packages/oracledb/errors.py deleted file mode 100644 index 5980c75..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/errors.py +++ /dev/null @@ -1,1058 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2020, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# errors.py -# -# Contains the _Error class and all of the errors that are raised explicitly by -# the package. Oracle Database errors and ODPI-C errors (when using thick mode) -# are only referenced here if they are transformed into package specific -# errors. -# ----------------------------------------------------------------------------- - -import re - -from .driver_mode import is_thin_mode -from . import exceptions - - -class _Error: - """ - Error class which is used for all errors that are raised by the driver. - """ - - def __init__( - self, - message: str = None, - context: str = None, - isrecoverable: bool = False, - iswarning: bool = False, - code: int = 0, - offset: int = 0, - ) -> None: - self.message = message - self.context = context - self.isrecoverable = isrecoverable - self.iswarning = iswarning - self.code = code - self.offset = offset - self.is_session_dead = False - self.full_code = "" - self.exc_type = exceptions.DatabaseError - self._make_adjustments() - - def _make_adjustments(self): - """ - Make adjustments to the error, if needed, and calculate the full_code - attribute. - """ - if self.message is not None: - pos = self.message.find(":") - if pos > 0: - self.full_code = self.message[:pos] - - # add Oracle Database Error Help Portal URL for database error - # messages, but only in thin mode since this is done - # automatically in thick mode with Oracle Client version 23 and - # higher - if ( - self.code != 0 - and (self.code < 20000 or self.code >= 21000) - and is_thin_mode() - ): - self.message = ( - self.message - + "\n" - + "Help: https://docs.oracle.com/error-help/db/ora-" - + f"{self.code:05}/" - ) - elif self.full_code in ERR_TROUBLESHOOTING_AVAILABLE: - self.message = ( - self.message - + "\n" - + "Help: https://python-oracledb.readthedocs.io/en/" - + "latest/user_guide/troubleshooting.html#" - + self.full_code.lower() - ) - - # transform Oracle and ODPI-C specific error codes to driver errors, - # if applicable - if self.code != 0 or self.full_code.startswith("DPI-"): - args = {} - if self.code != 0: - driver_error_info = ERR_ORACLE_ERROR_XREF.get(self.code) - else: - error_num = int(self.full_code[4:]) - driver_error_info = ERR_DPI_ERROR_XREF.get(error_num) - if driver_error_info is not None: - if isinstance(driver_error_info, tuple): - driver_error_num, pattern = driver_error_info - match = re.search(pattern, self.message) - args = {} if match is None else match.groupdict() - else: - driver_error_num = driver_error_info - driver_error = _get_error_text(driver_error_num, **args) - self.message = f"{driver_error}\n{self.message}" - self.full_code = f"{ERR_PREFIX}-{driver_error_num:04}" - - # determine exception class to use when raising this error - # also determine whether error is recoverable and whether the session - # is deemed "dead" - if self.full_code.startswith("DPY-"): - driver_error_num = int(self.full_code[4:]) - if driver_error_num == ERR_CONNECTION_CLOSED: - self.is_session_dead = self.isrecoverable = True - self.exc_type = ERR_EXCEPTION_TYPES[driver_error_num // 1000] - elif self.code != 0: - if self.code in ERR_RECOVERABLE_ERROR_CODES: - self.isrecoverable = True - if self.code in ERR_INTEGRITY_ERROR_CODES: - self.exc_type = exceptions.IntegrityError - elif self.code in ERR_INTERFACE_ERROR_CODES: - self.exc_type = exceptions.InterfaceError - elif self.code in ERR_OPERATIONAL_ERROR_CODES: - self.exc_type = exceptions.OperationalError - - def __str__(self): - return self.message - - -def _get_error_text(error_num: int, **args) -> str: - """ - Return the error text for the driver specific error number. - """ - message_format = ERR_MESSAGE_FORMATS.get(error_num) - if message_format is None: - message_format = "missing error {error_num}" - args = dict(error_num=error_num) - error_num = ERR_MISSING_ERROR - try: - message = message_format.format(**args) - except KeyError: - message = ( - message_format - + "\nWrong arguments to message format:\n" - + repr(args) - ) - return f"{ERR_PREFIX}-{error_num:04}: {message}" - - -def _create_err( - error_num: int, - context_error_message: str = None, - cause: Exception = None, - **args, -) -> _Error: - """ - Returns a driver specific error object for the specified error number and - supplied arguments. - """ - message = _get_error_text(error_num, **args) - if context_error_message is None and cause is not None: - context_error_message = str(cause) - if context_error_message is not None: - message = f"{message}\n{context_error_message}" - return _Error(message) - - -def _create_warning(error_num: int, **args) -> _Error: - """ - Returns a warning error object for the specified error number and supplied - arguments. - """ - message = _get_error_text(error_num, **args) - return _Error(message, iswarning=True) - - -def _raise_err( - error_num: int, - context_error_message: str = None, - cause: Exception = None, - **args, -) -> None: - """ - Raises a driver specific exception from the specified error number and - supplied arguments. - """ - error = _create_err(error_num, context_error_message, cause, **args) - raise error.exc_type(error) from cause - - -def _raise_not_supported(feature: str) -> None: - """ - Raises an exception that the specified feature is not supported. This is - used as the default implementation of all functions for the implementation - objects. - """ - driver_type = "thick" if is_thin_mode() else "thin" - _raise_err( - ERR_FEATURE_NOT_SUPPORTED, feature=feature, driver_type=driver_type - ) - - -# prefix used for all error messages -ERR_PREFIX = "DPY" - -# error numbers that result in InterfaceError -ERR_MISSING_ERROR = 1000 -ERR_NOT_CONNECTED = 1001 -ERR_POOL_NOT_OPEN = 1002 -ERR_NOT_A_QUERY = 1003 -ERR_NO_STATEMENT_EXECUTED = 1004 -ERR_POOL_HAS_BUSY_CONNECTIONS = 1005 -ERR_CURSOR_NOT_OPEN = 1006 -ERR_NOT_SUBSCRIBED = 1007 - -# error numbers that result in ProgrammingError -ERR_MESSAGE_HAS_NO_PAYLOAD = 2000 -ERR_NO_STATEMENT = 2001 -ERR_NO_STATEMENT_PREPARED = 2002 -ERR_WRONG_EXECUTE_PARAMETERS_TYPE = 2003 -ERR_WRONG_EXECUTEMANY_PARAMETERS_TYPE = 2004 -ERR_ARGS_AND_KEYWORD_ARGS = 2005 -ERR_MIXED_POSITIONAL_AND_NAMED_BINDS = 2006 -ERR_EXPECTING_TYPE = 2007 -ERR_WRONG_OBJECT_TYPE = 2008 -ERR_WRONG_SCROLL_MODE = 2009 -ERR_MIXED_ELEMENT_TYPES = 2010 -ERR_WRONG_ARRAY_DEFINITION = 2011 -ERR_ARGS_MUST_BE_LIST_OR_TUPLE = 2012 -ERR_KEYWORD_ARGS_MUST_BE_DICT = 2013 -ERR_DUPLICATED_PARAMETER = 2014 -ERR_EXPECTING_VAR = 2015 -ERR_INCORRECT_VAR_ARRAYSIZE = 2016 -ERR_LIBRARY_ALREADY_INITIALIZED = 2017 -ERR_WALLET_FILE_MISSING = 2018 -ERR_THIN_CONNECTION_ALREADY_CREATED = 2019 -ERR_INVALID_MAKEDSN_ARG = 2020 -ERR_INIT_ORACLE_CLIENT_NOT_CALLED = 2021 -ERR_INVALID_OCI_ATTR_TYPE = 2022 -ERR_INVALID_CONN_CLASS = 2023 -ERR_INVALID_CONNECT_PARAMS = 2025 -ERR_INVALID_POOL_CLASS = 2026 -ERR_INVALID_POOL_PARAMS = 2027 -ERR_EXPECTING_LIST_FOR_ARRAY_VAR = 2028 -ERR_HTTPS_PROXY_REQUIRES_TCPS = 2029 -ERR_INVALID_LOB_OFFSET = 2030 -ERR_INVALID_ACCESS_TOKEN_PARAM = 2031 -ERR_INVALID_ACCESS_TOKEN_RETURNED = 2032 -ERR_EXPIRED_ACCESS_TOKEN = 2033 -ERR_ACCESS_TOKEN_REQUIRES_TCPS = 2034 -ERR_INVALID_OBJECT_TYPE_NAME = 2035 -ERR_OBJECT_IS_NOT_A_COLLECTION = 2036 -ERR_MISSING_TYPE_NAME_FOR_OBJECT_VAR = 2037 -ERR_INVALID_COLL_INDEX_GET = 2038 -ERR_INVALID_COLL_INDEX_SET = 2039 -ERR_EXECUTE_MODE_ONLY_FOR_DML = 2040 -ERR_MISSING_ENDING_SINGLE_QUOTE = 2041 -ERR_MISSING_ENDING_DOUBLE_QUOTE = 2042 -ERR_DBOBJECT_ATTR_MAX_SIZE_VIOLATED = 2043 -ERR_DBOBJECT_ELEMENT_MAX_SIZE_VIOLATED = 2044 -ERR_INVALID_ARRAYSIZE = 2045 -ERR_CURSOR_HAS_BEEN_CLOSED = 2046 -ERR_INVALID_LOB_AMOUNT = 2047 -ERR_DML_RETURNING_DUP_BINDS = 2048 -ERR_MISSING_ADDRESS = 2049 -ERR_INVALID_TPC_BEGIN_FLAGS = 2050 -ERR_INVALID_TPC_END_FLAGS = 2051 -ERR_MISMATCHED_TOKEN = 2052 -ERR_THICK_MODE_ENABLED = 2053 -ERR_NAMED_POOL_MISSING = 2054 -ERR_NAMED_POOL_EXISTS = 2055 -ERR_PROTOCOL_HANDLER_FAILED = 2056 -ERR_PASSWORD_TYPE_HANDLER_FAILED = 2057 -ERR_PLAINTEXT_PASSWORD_IN_CONFIG = 2058 -ERR_MISSING_CONNECT_DESCRIPTOR = 2059 -ERR_ARROW_C_API_ERROR = 2060 -ERR_PARAMS_HOOK_HANDLER_FAILED = 2061 -ERR_PAYLOAD_CANNOT_BE_ENQUEUED = 2062 -ERR_SCROLL_OUT_OF_RESULT_SET = 2063 -ERR_POOL_MAX_LESS_THAN_MIN = 2064 -ERR_ARROW_SPARSE_VECTOR_NOT_ALLOWED = 2065 -ERR_EMPTY_STATEMENT = 2066 -ERR_WRONG_DIRECT_PATH_DATA_TYPE = 2067 -ERR_SCROLL_NOT_SUPPORTED = 2068 -ERR_WRONG_REQUESTED_SCHEMA_LENGTH = 2069 -ERR_INVALID_CALLABLE_FUN = 2070 -ERR_REGISTER_QUERY_ON_AQ_SUBSCR = 2071 -ERR_INVALID_END_USER_SECURITY_CONTEXT_LENGTH = 2072 -ERR_END_USER_SECURITY_CONTEXT_REQUIRES_TCPS = 2073 -ERR_NAME_HAS_EMBEDDED_QUOTES = 2074 -ERR_PARAM_SIZE_TOO_LARGE = 2075 - -# error numbers that result in NotSupportedError -ERR_TIME_NOT_SUPPORTED = 3000 -ERR_FEATURE_NOT_SUPPORTED = 3001 -ERR_PYTHON_VALUE_NOT_SUPPORTED = 3002 -ERR_PYTHON_TYPE_NOT_SUPPORTED = 3003 -ERR_UNSUPPORTED_TYPE_SET = 3004 -ERR_ARRAYS_OF_ARRAYS = 3005 -ERR_ORACLE_TYPE_NOT_SUPPORTED = 3006 -ERR_DB_TYPE_NOT_SUPPORTED = 3007 -ERR_UNSUPPORTED_INBAND_NOTIFICATION = 3008 -ERR_SELF_BIND_NOT_SUPPORTED = 3009 -ERR_SERVER_VERSION_NOT_SUPPORTED = 3010 -ERR_NCHAR_CS_NOT_SUPPORTED = 3012 -ERR_UNSUPPORTED_PYTHON_TYPE_FOR_DB_TYPE = 3013 -ERR_LOB_OF_WRONG_TYPE = 3014 -ERR_UNSUPPORTED_VERIFIER_TYPE = 3015 -ERR_NO_CRYPTOGRAPHY_PACKAGE = 3016 -ERR_ORACLE_TYPE_NAME_NOT_SUPPORTED = 3017 -ERR_TDS_TYPE_NOT_SUPPORTED = 3018 -ERR_OSON_NODE_TYPE_NOT_SUPPORTED = 3019 -ERR_OSON_FIELD_NAME_LIMITATION = 3020 -ERR_OSON_VERSION_NOT_SUPPORTED = 3021 -ERR_NAMED_TIMEZONE_NOT_SUPPORTED = 3022 -ERR_VECTOR_VERSION_NOT_SUPPORTED = 3023 -ERR_VECTOR_FORMAT_NOT_SUPPORTED = 3024 -ERR_OPERATION_NOT_SUPPORTED_ON_BFILE = 3025 -ERR_OPERATION_ONLY_SUPPORTED_ON_BFILE = 3026 -ERR_CURSOR_DIFF_CONNECTION = 3027 -ERR_UNSUPPORTED_PIPELINE_OPERATION = 3028 -ERR_INVALID_NETWORK_NAME = 3029 -ERR_ARROW_UNSUPPORTED_DATA_TYPE = 3030 -ERR_ARROW_UNSUPPORTED_VECTOR_FORMAT = 3031 -ERR_ARROW_UNSUPPORTED_DATA_FORMAT = 3032 -ERR_ARROW_UNSUPPORTED_CHILD_DATA_FORMAT = 3033 -ERR_SESSIONLESS_DIFFERING_METHODS = 3034 -ERR_SESSIONLESS_ALREADY_ACTIVE = 3035 -ERR_SESSIONLESS_INACTIVE = 3036 -ERR_UNSUPPORTED_ARROW_TYPE = 3037 -ERR_CANNOT_CONVERT_TO_ARROW_TYPE = 3038 -ERR_CANNOT_CONVERT_FROM_ARROW_TYPE = 3039 -ERR_DB_CS_NOT_SUPPORTED = 3040 -ERR_UNSUPPORTED_DEEP_DATA_SECURITY_FEATURE = 3041 - -# error numbers that result in DatabaseError -ERR_TNS_ENTRY_NOT_FOUND = 4000 -ERR_NO_CREDENTIALS = 4001 -ERR_COLUMN_TRUNCATED = 4002 -ERR_ORACLE_NUMBER_NO_REPR = 4003 -ERR_INVALID_NUMBER = 4004 -ERR_POOL_NO_CONNECTION_AVAILABLE = 4005 -ERR_ARRAY_DML_ROW_COUNTS_NOT_ENABLED = 4006 -ERR_INCONSISTENT_DATATYPES = 4007 -ERR_INVALID_BIND_NAME = 4008 -ERR_WRONG_NUMBER_OF_POSITIONAL_BINDS = 4009 -ERR_MISSING_BIND_VALUE = 4010 -ERR_CONNECTION_CLOSED = 4011 -ERR_NUMBER_WITH_INVALID_EXPONENT = 4012 -ERR_NUMBER_STRING_OF_ZERO_LENGTH = 4013 -ERR_NUMBER_STRING_TOO_LONG = 4014 -ERR_NUMBER_WITH_EMPTY_EXPONENT = 4015 -ERR_CONTENT_INVALID_AFTER_NUMBER = 4016 -ERR_INVALID_CONNECT_DESCRIPTOR = 4017 -ERR_CANNOT_PARSE_CONNECT_STRING = 4018 -ERR_INVALID_REDIRECT_DATA = 4019 -ERR_INVALID_PROTOCOL = 4021 -ERR_INVALID_ENUM_VALUE = 4022 -ERR_CALL_TIMEOUT_EXCEEDED = 4024 -ERR_INVALID_REF_CURSOR = 4025 -ERR_MISSING_FILE = 4026 -ERR_NO_CONFIG_DIR = 4027 -ERR_INVALID_SERVER_TYPE = 4028 -ERR_TOO_MANY_BATCH_ERRORS = 4029 -ERR_IFILE_CYCLE_DETECTED = 4030 -ERR_INVALID_VECTOR = 4031 -ERR_INVALID_SSL_VERSION = 4032 -ERR_EXCEEDED_IDLE_TIME = 4033 -ERR_INVALID_PASSWORD_TYPE = 4034 -ERR_INVALID_SERVER_RESPONSE = 4035 -ERR_CANNOT_CONVERT_TO_ARROW_INTEGER = 4036 -ERR_CANNOT_CONVERT_TO_ARROW_DOUBLE = 4037 -ERR_INVALID_INTEGER = 4038 -ERR_CANNOT_CONVERT_TO_ARROW_FLOAT = 4039 -ERR_ARROW_FIXED_SIZE_BINARY_VIOLATED = 4040 -ERR_DPL_TOO_MUCH_DATA = 4041 - -# error numbers that result in InternalError -ERR_MESSAGE_TYPE_UNKNOWN = 5000 -ERR_BUFFER_LENGTH_INSUFFICIENT = 5001 -ERR_INTEGER_TOO_LARGE = 5002 -ERR_UNEXPECTED_NEGATIVE_INTEGER = 5003 -ERR_UNEXPECTED_DATA = 5004 -ERR_UNEXPECTED_REFUSE = 5005 -ERR_UNEXPECTED_END_OF_DATA = 5006 -ERR_UNEXPECTED_XML_TYPE = 5007 -ERR_UNKNOWN_SERVER_PIGGYBACK = 5009 -ERR_UNKNOWN_TRANSACTION_STATE = 5010 -ERR_UNEXPECTED_PIPELINE_FAILURE = 5011 -ERR_NOT_IMPLEMENTED = 5012 -ERR_INTERNAL_CREATION_REQUIRED = 5013 -ERR_UNKNOWN_TRANSACTION_SYNC_VERSION = 5014 -ERR_NUMBER_TOO_LARGE = 5015 - -# error numbers that result in OperationalError -ERR_LISTENER_REFUSED_CONNECTION = 6000 -ERR_INVALID_SERVICE_NAME = 6001 -ERR_INVALID_SERVER_CERT_DN = 6002 -ERR_INVALID_SID = 6003 -ERR_PROXY_FAILURE = 6004 -ERR_CONNECTION_FAILED = 6005 -ERR_INVALID_SERVER_NAME = 6006 -ERR_SUBSCR_FAILED = 6007 - -# error numbers that result in Warning -WRN_COMPILATION_ERROR = 7000 - -# error numbers that result in DataError -ERR_VALUE_TOO_LARGE = 8000 -ERR_NULLS_NOT_ALLOWED = 8001 -ERR_ARROW_DATA_STRUCTURE_OVERFLOW = 8002 - -# Oracle error number cross reference -ERR_ORACLE_ERROR_XREF = { - 22: ERR_CONNECTION_CLOSED, - 28: ERR_CONNECTION_CLOSED, - 31: ERR_CONNECTION_CLOSED, - 45: ERR_CONNECTION_CLOSED, - 378: ERR_CONNECTION_CLOSED, - 600: ERR_CONNECTION_CLOSED, - 602: ERR_CONNECTION_CLOSED, - 603: ERR_CONNECTION_CLOSED, - 609: ERR_CONNECTION_CLOSED, - 1005: ERR_NO_CREDENTIALS, - 1012: ERR_CONNECTION_CLOSED, - 1041: ERR_CONNECTION_CLOSED, - 1043: ERR_CONNECTION_CLOSED, - 1089: ERR_CONNECTION_CLOSED, - 1092: ERR_CONNECTION_CLOSED, - 1740: ERR_MISSING_ENDING_DOUBLE_QUOTE, - 1756: ERR_MISSING_ENDING_SINGLE_QUOTE, - 2396: ERR_CONNECTION_CLOSED, - 3113: ERR_CONNECTION_CLOSED, - 3114: ERR_CONNECTION_CLOSED, - 3122: ERR_CONNECTION_CLOSED, - 3135: ERR_CONNECTION_CLOSED, - 12153: ERR_CONNECTION_CLOSED, - 12537: ERR_CONNECTION_CLOSED, - 12547: ERR_CONNECTION_CLOSED, - 12570: ERR_CONNECTION_CLOSED, - 12583: ERR_CONNECTION_CLOSED, - 22165: ( - ERR_INVALID_COLL_INDEX_SET, - r"index \[(?P\d+)\] must be in the range of " - r"\[(?P\d+)\] to \[(?P\d+)\]", - ), - 22303: (ERR_INVALID_OBJECT_TYPE_NAME, r'type "(?P[^"]*"."[^"]*)"'), - 24422: ERR_POOL_HAS_BUSY_CONNECTIONS, - 24349: ERR_ARRAY_DML_ROW_COUNTS_NOT_ENABLED, - 24457: ERR_POOL_NO_CONNECTION_AVAILABLE, - 24459: ERR_POOL_NO_CONNECTION_AVAILABLE, - 24496: ERR_POOL_NO_CONNECTION_AVAILABLE, - 24338: ERR_INVALID_REF_CURSOR, - 24344: WRN_COMPILATION_ERROR, - 26202: ERR_SESSIONLESS_INACTIVE, - 26211: ERR_SESSIONLESS_DIFFERING_METHODS, - 26216: ERR_SESSIONLESS_ALREADY_ACTIVE, - 27146: ERR_CONNECTION_CLOSED, - 28511: ERR_CONNECTION_CLOSED, - 29970: ERR_NOT_SUBSCRIBED, - 38902: ERR_TOO_MANY_BATCH_ERRORS, - 56600: ERR_CONNECTION_CLOSED, -} - -# ODPI-C error number cross reference -ERR_DPI_ERROR_XREF = { - 1010: ERR_NOT_CONNECTED, - 1024: (ERR_INVALID_COLL_INDEX_GET, r"at index (?P\d+) does"), - 1027: ERR_SCROLL_OUT_OF_RESULT_SET, - 1043: ERR_INVALID_NUMBER, - 1044: ERR_ORACLE_NUMBER_NO_REPR, - 1063: ERR_EXECUTE_MODE_ONLY_FOR_DML, - 1067: (ERR_CALL_TIMEOUT_EXCEEDED, r"call timeout of (?P\d+) ms"), - 1080: ERR_CONNECTION_CLOSED, - 1087: ERR_NOT_A_QUERY, -} - -# Oracle error codes that result in IntegrityError exceptions -ERR_INTEGRITY_ERROR_CODES = [ - 1, # unique constraint violated - 1400, # cannot insert NULL - 1438, # value larger than specified precision - 2290, # check constraint violated - 2291, # integrity constraint violated - parent key not found - 2292, # integrity constraint violated - child record found - 21525, # attribute or collection element violated its constraints - 40479, # internal JSON serializer error -] - -# Oracle error codes that result in InterfaceError exceptions -ERR_INTERFACE_ERROR_CODES = [ - 24422, # error occurred while trying to destroy the Session Pool -] - -# Oracle error codes that result in OperationalError exceptions -ERR_OPERATIONAL_ERROR_CODES = [ - 22, # invalid session ID; access denied - 378, # buffer pools cannot be created as specified - 600, # internal error code - 602, # internal programming exception - 603, # ORACLE server session terminated by fatal error - 604, # error occurred at recursive SQL level - 609, # could not attach to incoming connection - 1012, # not logged on - 1013, # user requested cancel of current operation - 1033, # ORACLE initialization or shutdown in progress - 1034, # ORACLE not available - 1041, # internal error. hostdef extension doesn't exist - 1043, # user side memory corruption - 1089, # immediate shutdown or close in progress - 1090, # shutdown in progress - connection is not permitted - 1092, # ORACLE instance terminated. Disconnection forced - 3111, # break received on communication channel - 3113, # end-of-file on communication channel - 3114, # not connected to ORACLE - 3122, # attempt to close ORACLE-side window on user side - 3135, # connection lost contact - 12153, # TNS:not connected - 12203, # TNS:unable to connect to destination - 12500, # TNS:listener failed to start a dedicated server process - 12571, # TNS:packet writer failure - 27146, # post/wait initialization failed - 28511, # lost RPC connection to heterogeneous remote agent -] - -# Oracle error codes that are deemed recoverable -# NOTE: this does not include the errors that are mapped to -# ERR_CONNECTION_CLOSED since those are all deemed recoverable -ERR_RECOVERABLE_ERROR_CODES = [ - 376, # file %s cannot be read at this time - 1033, # ORACLE initialization or shutdown in progress - 1034, # the Oracle instance is not available for use - 1090, # shutdown in progress - 1115, # IO error reading block from file %s (block # %s) - 12514, # Service %s is not registered with the listener - 12571, # TNS:packet writer failure - 12757, # instance does not currently know of requested service - 16456, # missing or invalid value -] - -# driver error message exception types (multiples of 1000) -ERR_EXCEPTION_TYPES = { - 1: exceptions.InterfaceError, - 2: exceptions.ProgrammingError, - 3: exceptions.NotSupportedError, - 4: exceptions.DatabaseError, - 5: exceptions.InternalError, - 6: exceptions.OperationalError, - 7: exceptions.Warning, - 8: exceptions.DataError, -} - -# error messages that have a troubleshooting section available -ERR_TROUBLESHOOTING_AVAILABLE = set( - [ - "DPI-1047", # Oracle Client library cannot be loaded - "DPI-1072", # Oracle Client library version is unsupported - "DPY-3010", # connections to Oracle Database version not supported - "DPY-3015", # password verifier type is not supported - "DPY-4011", # the database or network closed the connection - ] -) - -# error message formats -ERR_MESSAGE_FORMATS = { - ERR_ACCESS_TOKEN_REQUIRES_TCPS: ( - "access_token requires use of the tcps protocol" - ), - ERR_ARGS_AND_KEYWORD_ARGS: ( - "expecting positional arguments or keyword arguments, not both" - ), - ERR_ARGS_MUST_BE_LIST_OR_TUPLE: "arguments must be a list or tuple", - ERR_ARRAY_DML_ROW_COUNTS_NOT_ENABLED: ( - "array DML row counts mode is not enabled" - ), - ERR_ARRAYS_OF_ARRAYS: "arrays of arrays are not supported", - ERR_ARROW_C_API_ERROR: ( - "Apache Arrow C Data Interface operation failed with error code {code}" - ), - ERR_ARROW_DATA_STRUCTURE_OVERFLOW: ( - "Apache Arrow C Data structure overflow detected. A larger structure " - "is needed." - ), - ERR_ARROW_FIXED_SIZE_BINARY_VIOLATED: ( - "value of length {actual_len} does not match the Apache Arrow fixed " - "size binary length of {fixed_size_len}" - ), - ERR_ARROW_SPARSE_VECTOR_NOT_ALLOWED: ( - "Apache Arrow format does not support sparse vectors with flexible " - "dimensions" - ), - ERR_ARROW_UNSUPPORTED_CHILD_DATA_FORMAT: ( - "conversion from Apache Arrow list with child format " - '"{schema_format}" to Oracle Database vector is not supported' - ), - ERR_ARROW_UNSUPPORTED_DATA_FORMAT: ( - 'conversion from Apache Arrow format "{schema_format}" to Oracle ' - "Database is not supported" - ), - ERR_ARROW_UNSUPPORTED_DATA_TYPE: ( - "conversion from Oracle Database type {db_type_name} to Apache " - "Arrow format is not supported" - ), - ERR_ARROW_UNSUPPORTED_VECTOR_FORMAT: ( - "flexible vector formats are not supported. Only fixed 'FLOAT32', " - "'FLOAT64', 'INT8' or 'BINARY' formats are supported" - ), - ERR_BUFFER_LENGTH_INSUFFICIENT: ( - "internal error: buffer of length {actual_buffer_len} " - "insufficient to hold {required_buffer_len} bytes" - ), - ERR_CALL_TIMEOUT_EXCEEDED: "call timeout of {timeout} ms exceeded", - ERR_CANNOT_CONVERT_FROM_ARROW_TYPE: ( - 'Apache Arrow type "{arrow_type}" cannot be converted to database ' - 'type "{db_type}"' - ), - ERR_CANNOT_CONVERT_TO_ARROW_DOUBLE: ( - "{value} cannot be converted to an Apache Arrow double" - ), - ERR_CANNOT_CONVERT_TO_ARROW_FLOAT: ( - "{value} cannot be converted to an Apache Arrow float" - ), - ERR_CANNOT_CONVERT_TO_ARROW_INTEGER: ( - "{value} cannot be converted to an Apache Arrow integer" - ), - ERR_CANNOT_CONVERT_TO_ARROW_TYPE: ( - 'database type "{db_type}" cannot be converted to Apache Arrow type ' - '"{arrow_type}"' - ), - ERR_CANNOT_PARSE_CONNECT_STRING: 'cannot parse connect string "{data}"', - ERR_COLUMN_TRUNCATED: ( - "column truncated to {col_value_len} {unit}. " - "Untruncated was {actual_len}" - ), - ERR_CONNECTION_CLOSED: "the database or network closed the connection", - ERR_CONNECTION_FAILED: ( - "cannot connect to database (CONNECTION_ID={connection_id})." - ), - ERR_CONTENT_INVALID_AFTER_NUMBER: "invalid number (content after number)", - ERR_CURSOR_DIFF_CONNECTION: ( - "binding a cursor from a different connection is not supported" - ), - ERR_CURSOR_HAS_BEEN_CLOSED: "cursor has been closed by the database", - ERR_CURSOR_NOT_OPEN: "cursor is not open", - ERR_DB_CS_NOT_SUPPORTED: ( - "database character set id {charset_id} is not supported by " - "python-oracledb in thin mode" - ), - ERR_DBOBJECT_ATTR_MAX_SIZE_VIOLATED: ( - "attribute {attr_name} of type {type_name} exceeds its maximum size " - "(actual: {actual_size}, maximum: {max_size})" - ), - ERR_DBOBJECT_ELEMENT_MAX_SIZE_VIOLATED: ( - "element {index} of type {type_name} exceeds its maximum size " - "(actual: {actual_size}, maximum: {max_size})" - ), - ERR_DB_TYPE_NOT_SUPPORTED: 'database type "{name}" is not supported', - ERR_DML_RETURNING_DUP_BINDS: ( - 'the bind variable placeholder ":{name}" cannot be used both before ' - "and after the RETURNING clause in a DML RETURNING statement" - ), - ERR_DPL_TOO_MUCH_DATA: ( - "the maximum size of a Direct Path load has been exceeded" - ), - ERR_DUPLICATED_PARAMETER: ( - '"{deprecated_name}" and "{new_name}" cannot be specified together' - ), - ERR_END_USER_SECURITY_CONTEXT_REQUIRES_TCPS: ( - "end_user_security_context requires use of the tcps protocol" - ), - ERR_EMPTY_STATEMENT: ("an empty statement cannot be executed"), - ERR_EXCEEDED_IDLE_TIME: ( - "the database closed the connection because the connection's idle " - "time has been exceeded" - ), - ERR_EXECUTE_MODE_ONLY_FOR_DML: ( - 'parameters "batcherrors" and "arraydmlrowcounts" may only be ' - "true when used with insert, update, delete and merge statements" - ), - ERR_EXPECTING_LIST_FOR_ARRAY_VAR: ( - "expecting list when setting array variables" - ), - ERR_EXPECTING_TYPE: "expected a type", - ERR_EXPECTING_VAR: ( - "type handler should return None or the value returned by a call " - "to cursor.var()" - ), - ERR_EXPIRED_ACCESS_TOKEN: "access token has expired", - ERR_FEATURE_NOT_SUPPORTED: ( - "{feature} is only supported in python-oracledb {driver_type} mode" - ), - ERR_HTTPS_PROXY_REQUIRES_TCPS: ( - "https_proxy requires use of the tcps protocol" - ), - ERR_IFILE_CYCLE_DETECTED: ( - "file '{including_file_name}' includes file '{included_file_name}', " - "which forms a cycle" - ), - ERR_INCONSISTENT_DATATYPES: ( - "cannot convert from data type {input_type} to {output_type}" - ), - ERR_INCORRECT_VAR_ARRAYSIZE: ( - "variable array size of {var_arraysize} is " - "too small (should be at least {required_arraysize})" - ), - ERR_INIT_ORACLE_CLIENT_NOT_CALLED: ( - "init_oracle_client() must be called first" - ), - ERR_INTEGER_TOO_LARGE: ( - "internal error: read integer of length {length} when expecting " - "integer of no more than length {max_length}" - ), - ERR_INTERNAL_CREATION_REQUIRED: "object may not be created directly", - ERR_INVALID_ACCESS_TOKEN_PARAM: ( - "invalid access token: value must be a string (for OAuth), a " - "2-tuple containing the token and private key strings (for IAM), " - "or a callable that returns a string or 2-tuple" - ), - ERR_INVALID_ACCESS_TOKEN_RETURNED: ( - "invalid access token returned from callable: value must be a " - "string (for OAuth) or a 2-tuple containing the token and private " - "key strings (for IAM)" - ), - ERR_INVALID_ARRAYSIZE: "arraysize must be an integer greater than zero", - ERR_INVALID_BIND_NAME: ( - 'no bind placeholder named ":{name}" was found in the SQL text' - ), - ERR_INVALID_CALLABLE_FUN: "Expected a callable function", - ERR_INVALID_CONN_CLASS: "invalid connection class", - ERR_INVALID_CONNECT_DESCRIPTOR: 'invalid connect descriptor "{data}"', - ERR_INVALID_CONNECT_PARAMS: "invalid connection params", - ERR_INVALID_COLL_INDEX_GET: "element at index {index} does not exist", - ERR_INVALID_COLL_INDEX_SET: ( - "given index {index} must be in the range of {min_index} to " - "{max_index}" - ), - ERR_INVALID_ENUM_VALUE: "invalid value for enumeration {name}: {value}", - ERR_INVALID_END_USER_SECURITY_CONTEXT_LENGTH: ( - "Specified end-user security context exceeds the maximum supported " - "size" - ), - ERR_INVALID_INTEGER: ( - "integer {value} cannot be represented as Apache Arrow type " - "{arrow_type}" - ), - ERR_INVALID_LOB_AMOUNT: "LOB amount must be greater than zero", - ERR_INVALID_LOB_OFFSET: "LOB offset must be greater than zero", - ERR_INVALID_MAKEDSN_ARG: '"{name}" argument contains invalid values', - ERR_INVALID_NETWORK_NAME: ( - '"{name}" includes characters that are not allowed' - ), - ERR_INVALID_NUMBER: "invalid number", - ERR_INVALID_OBJECT_TYPE_NAME: 'invalid object type name: "{name}"', - ERR_INVALID_OCI_ATTR_TYPE: "invalid OCI attribute type {attr_type}", - ERR_INVALID_PASSWORD_TYPE: 'invalid password type "{password_type}"', - ERR_INVALID_POOL_CLASS: "invalid connection pool class", - ERR_INVALID_POOL_PARAMS: "invalid pool params", - ERR_INVALID_PROTOCOL: 'invalid protocol "{protocol}"', - ERR_INVALID_REDIRECT_DATA: "invalid redirect data {data}", - ERR_INVALID_REF_CURSOR: "invalid REF CURSOR: never opened in PL/SQL", - ERR_INVALID_SERVER_CERT_DN: ( - "The distinguished name (DN) on the server certificate does not " - "match the expected value: {expected_dn}" - ), - ERR_INVALID_SERVER_NAME: ( - "The name on the server certificate does not match the expected " - 'value: "{expected_name}"' - ), - ERR_INVALID_SERVER_RESPONSE: ( - "invalid server response to connection request" - ), - ERR_INVALID_SERVER_TYPE: "invalid server_type: {server_type}", - ERR_INVALID_SERVICE_NAME: ( - 'Service "{service_name}" is not registered with the listener at ' - 'host "{host}" port {port}. (Similar to ORA-12514)' - ), - ERR_INVALID_SID: ( - 'SID "{sid}" is not registered with the listener at host "{host}" ' - "port {port}. (Similar to ORA-12505)" - ), - ERR_INVALID_SSL_VERSION: 'invalid value for ssl_version: "{ssl_version}"', - ERR_INVALID_TPC_BEGIN_FLAGS: "invalid flags for tpc_begin()", - ERR_INVALID_TPC_END_FLAGS: "invalid flags for tpc_end()", - ERR_INVALID_VECTOR: "vector cannot contain zero dimensions", - ERR_KEYWORD_ARGS_MUST_BE_DICT: ( - '"keyword_parameters" argument must be a dict' - ), - ERR_LIBRARY_ALREADY_INITIALIZED: ( - "init_oracle_client() was already called with different arguments" - ), - ERR_LISTENER_REFUSED_CONNECTION: ( - "Listener refused connection. (Similar to ORA-{error_code})" - ), - ERR_LOB_OF_WRONG_TYPE: ( - "LOB is of type {actual_type_name} but must be of type " - "{expected_type_name}" - ), - ERR_MESSAGE_HAS_NO_PAYLOAD: "message has no payload", - ERR_MESSAGE_TYPE_UNKNOWN: ( - "internal error: unknown protocol message type {message_type} " - "at position {position}" - ), - ERR_MISMATCHED_TOKEN: ( - "internal error: pipeline token number {token_num} does not match " - "expected token number {expected_token_num}" - ), - ERR_MISSING_ADDRESS: ( - "no addresses are defined in connect descriptor: {connect_string}" - ), - ERR_MISSING_BIND_VALUE: ( - 'a bind variable replacement value for placeholder ":{name}" was ' - "not provided" - ), - ERR_MISSING_CONNECT_DESCRIPTOR: ( - '"connect_descriptor" key missing from configuration' - ), - ERR_MISSING_ENDING_DOUBLE_QUOTE: 'missing ending quote (")', - ERR_MISSING_ENDING_SINGLE_QUOTE: "missing ending quote (')", - ERR_MISSING_FILE: "file '{file_name}' is missing or unreadable", - ERR_MISSING_TYPE_NAME_FOR_OBJECT_VAR: ( - "no object type specified for object variable" - ), - ERR_MIXED_ELEMENT_TYPES: ( - "element {element} is not the same data type as previous elements" - ), - ERR_MIXED_POSITIONAL_AND_NAMED_BINDS: ( - "positional and named binds cannot be intermixed" - ), - ERR_NAME_HAS_EMBEDDED_QUOTES: "name has embedded quotes", - ERR_NAMED_POOL_EXISTS: ( - 'connection pool with alias "{alias}" already exists' - ), - ERR_NAMED_POOL_MISSING: ( - 'connection pool with alias "{alias}" does not exist' - ), - ERR_NAMED_TIMEZONE_NOT_SUPPORTED: ( - "named time zones are not supported in thin mode" - ), - ERR_NCHAR_CS_NOT_SUPPORTED: ( - "national character set id {charset_id} is not supported by " - "python-oracledb in thin mode" - ), - ERR_NO_CONFIG_DIR: "no configuration directory specified", - ERR_NO_CREDENTIALS: "no credentials specified", - ERR_NO_CRYPTOGRAPHY_PACKAGE: ( - "python-oracledb thin mode cannot be used because the " - "cryptography package cannot be imported" - ), - ERR_NO_STATEMENT: "no statement specified and no prior statement prepared", - ERR_NO_STATEMENT_EXECUTED: "no statement executed", - ERR_NO_STATEMENT_PREPARED: "statement must be prepared first", - ERR_NOT_A_QUERY: "the executed statement does not return rows", - ERR_NOT_CONNECTED: "not connected to database", - ERR_NOT_IMPLEMENTED: "not implemented", - ERR_NOT_SUBSCRIBED: "subscription is not active", - ERR_NULLS_NOT_ALLOWED: ( - 'value for column "{column_name}" may not be null on row {row_num}' - ), - ERR_NUMBER_STRING_OF_ZERO_LENGTH: "invalid number: zero length string", - ERR_NUMBER_STRING_TOO_LONG: "invalid number: string too long", - ERR_NUMBER_TOO_LARGE: "encoded number data too long ({num_bytes} bytes)", - ERR_NUMBER_WITH_EMPTY_EXPONENT: "invalid number: empty exponent", - ERR_NUMBER_WITH_INVALID_EXPONENT: "invalid number: invalid exponent", - ERR_OBJECT_IS_NOT_A_COLLECTION: "object {name} is not a collection", - ERR_OPERATION_NOT_SUPPORTED_ON_BFILE: ( - "operation is not supported on BFILE LOBs" - ), - ERR_OPERATION_ONLY_SUPPORTED_ON_BFILE: ( - "operation is only supported on BFILE LOBs" - ), - ERR_ORACLE_NUMBER_NO_REPR: ( - "value cannot be represented as an Oracle number" - ), - ERR_ORACLE_TYPE_NAME_NOT_SUPPORTED: ( - 'Oracle data type name "{name}" is not supported' - ), - ERR_ORACLE_TYPE_NOT_SUPPORTED: "Oracle data type {num} is not supported", - ERR_OSON_FIELD_NAME_LIMITATION: ( - "OSON field names may not exceed {max_fname_size} UTF-8 encoded bytes" - ), - ERR_OSON_NODE_TYPE_NOT_SUPPORTED: ( - "OSON node type 0x{node_type:x} is not supported" - ), - ERR_OSON_VERSION_NOT_SUPPORTED: "OSON version {version} is not supported", - ERR_PARAM_SIZE_TOO_LARGE: ( - 'the length of the "{name}" parameter exceeds the maximum allowed ' - "length of {max_length} UTF-8 encoded bytes" - ), - ERR_PARAMS_HOOK_HANDLER_FAILED: ( - "registered handler for params hook failed" - ), - ERR_PASSWORD_TYPE_HANDLER_FAILED: ( - 'registered handler for password type "{password_type}" failed' - ), - ERR_PAYLOAD_CANNOT_BE_ENQUEUED: ( - "payload cannot be enqueued since it does not match the payload type " - "supported by the queue" - ), - ERR_PLAINTEXT_PASSWORD_IN_CONFIG: ( - "password in configuration must specify a type" - ), - ERR_POOL_HAS_BUSY_CONNECTIONS: ( - "connection pool cannot be closed because connections are busy" - ), - ERR_POOL_MAX_LESS_THAN_MIN: ( - "parameter 'max' should be greater than or equal to parameter 'min'" - ), - ERR_POOL_NO_CONNECTION_AVAILABLE: ( - "timed out waiting for the connection pool to return a connection" - ), - ERR_POOL_NOT_OPEN: "connection pool is not open", - ERR_PROTOCOL_HANDLER_FAILED: ( - 'registered handler for protocol "{protocol}" failed for arg "{arg}"' - ), - ERR_PROXY_FAILURE: "network proxy failed: response was {response}", - ERR_PYTHON_TYPE_NOT_SUPPORTED: "Python type {typ} is not supported", - ERR_PYTHON_VALUE_NOT_SUPPORTED: ( - 'Python value of type "{type_name}" is not supported' - ), - ERR_REGISTER_QUERY_ON_AQ_SUBSCR: ( - "cannot register a query on an AQ subscription" - ), - ERR_SCROLL_NOT_SUPPORTED: ( - "scroll operation is not supported on a non-scrollable cursor" - ), - ERR_SCROLL_OUT_OF_RESULT_SET: ( - "scroll operation would go out of the result set" - ), - ERR_SELF_BIND_NOT_SUPPORTED: "binding to self is not supported", - ERR_SERVER_VERSION_NOT_SUPPORTED: ( - "connections to this database server version are not supported " - "by python-oracledb in thin mode" - ), - ERR_SESSIONLESS_ALREADY_ACTIVE: ( - "suspend, commit, or rollback the current active sessionless " - "transaction before beginning or resuming another one" - ), - ERR_SESSIONLESS_DIFFERING_METHODS: ( - "suspending or resuming a Sessionless Transaction can be done with " - "DBMS_TRANSACTION or with python-oracledb, but not both" - ), - ERR_SESSIONLESS_INACTIVE: ("no Sessionless Transaction is active"), - ERR_SUBSCR_FAILED: "subscription could not be created", - ERR_TDS_TYPE_NOT_SUPPORTED: "Oracle TDS data type {num} is not supported", - ERR_THICK_MODE_ENABLED: ( - "python-oracledb thin mode cannot be used because thick mode has " - "already been enabled" - ), - ERR_THIN_CONNECTION_ALREADY_CREATED: ( - "python-oracledb thick mode cannot be used because thin mode has " - "already been enabled or a thin mode connection has already been " - "created" - ), - ERR_TIME_NOT_SUPPORTED: ( - "Oracle Database does not support time only variables" - ), - ERR_TNS_ENTRY_NOT_FOUND: 'unable to find "{name}" in {file_name}', - ERR_TOO_MANY_BATCH_ERRORS: ( - "the number of batch errors from executemany() exceeds 65535" - ), - ERR_UNEXPECTED_DATA: "unexpected data received: {data}", - ERR_UNEXPECTED_END_OF_DATA: ( - "unexpected end of data: want {num_bytes_wanted} bytes but " - "only {num_bytes_available} bytes are available" - ), - ERR_UNEXPECTED_NEGATIVE_INTEGER: ( - "internal error: read a negative integer when expecting a " - "positive integer" - ), - ERR_UNEXPECTED_REFUSE: ( - "the listener refused the connection but an unexpected error " - "format was returned" - ), - ERR_UNEXPECTED_PIPELINE_FAILURE: "unexpected pipeline failure", - ERR_UNEXPECTED_XML_TYPE: "unexpected XMLType with flag {flag}", - ERR_UNKNOWN_SERVER_PIGGYBACK: ( - "internal error: unknown server side piggyback opcode {opcode}" - ), - ERR_UNKNOWN_TRANSACTION_STATE: ( - "internal error: unknown transaction state {state}" - ), - ERR_UNKNOWN_TRANSACTION_SYNC_VERSION: ( - "internal error: unknown transaction sync version {version}" - ), - ERR_UNSUPPORTED_ARROW_TYPE: 'unsupported Apache Arrow type "{arrow_type}"', - ERR_UNSUPPORTED_DEEP_DATA_SECURITY_FEATURE: ( - "database version does not support the Oracle Deep Data Security feature" - ), - ERR_UNSUPPORTED_INBAND_NOTIFICATION: ( - "unsupported in-band notification with error number {err_num}" - ), - ERR_UNSUPPORTED_PIPELINE_OPERATION: ( - "unsupported pipeline operation type: {op_type}" - ), - ERR_UNSUPPORTED_PYTHON_TYPE_FOR_DB_TYPE: ( - "unsupported Python type {py_type_name} for database type " - "{db_type_name}" - ), - ERR_UNSUPPORTED_TYPE_SET: "type {db_type_name} does not support being set", - ERR_UNSUPPORTED_VERIFIER_TYPE: ( - "password verifier type 0x{verifier_type:x} is not supported by " - "python-oracledb in thin mode" - ), - ERR_VALUE_TOO_LARGE: ( - "value of size {actual_size} exeeds maximum allowed size of " - '{max_size} for column "{column_name}" of row {row_num}' - ), - ERR_VECTOR_FORMAT_NOT_SUPPORTED: ( - "VECTOR type {vector_format} is not supported" - ), - ERR_VECTOR_VERSION_NOT_SUPPORTED: ( - "VECTOR version {version} is not supported" - ), - ERR_WALLET_FILE_MISSING: "wallet file {name} was not found", - ERR_WRONG_ARRAY_DEFINITION: ( - "expecting a list of two elements [type, numelems]" - ), - ERR_WRONG_DIRECT_PATH_DATA_TYPE: ( - "expecting a list or an object implementing the Apache Arrow " - "PyCapsule interface __arrow_c_stream__()" - ), - ERR_WRONG_EXECUTE_PARAMETERS_TYPE: ( - "expecting a dictionary, list or tuple, or keyword args" - ), - ERR_WRONG_EXECUTEMANY_PARAMETERS_TYPE: ( - '"parameters" argument should be a list of sequences or ' - "dictionaries, or an integer specifying the number of " - "times to execute the statement, or an object implementing the Apache " - "Arrow PyCapsule interface __arrow_c_stream__()" - ), - ERR_WRONG_NUMBER_OF_POSITIONAL_BINDS: ( - "{expected_num} positional bind values are required but " - "{actual_num} were provided" - ), - ERR_WRONG_OBJECT_TYPE: ( - 'found object of type "{actual_schema}.{actual_name}" when ' - 'expecting object of type "{expected_schema}.{expected_name}"' - ), - ERR_WRONG_REQUESTED_SCHEMA_LENGTH: ( - "requested schema has {num_schema_columns} columns defined but " - "{num_fetched_columns} are being fetched" - ), - ERR_WRONG_SCROLL_MODE: ( - "scroll mode must be relative, absolute, first or last" - ), - WRN_COMPILATION_ERROR: "creation succeeded with compilation errors", -} diff --git a/.venv/lib/python3.9/site-packages/oracledb/exceptions.py b/.venv/lib/python3.9/site-packages/oracledb/exceptions.py deleted file mode 100644 index b262cac..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/exceptions.py +++ /dev/null @@ -1,125 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2020, 2023, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# exceptions.py -# -# Contains the exception classes mandated by the Python Database API. -# ----------------------------------------------------------------------------- - - -class Warning(Exception): - """ - Exception raised for warnings. - - Exception messages of this class will have the prefix DPY and an error - number in the range 9000 - 9999. - """ - - -class Error(Exception): - """ - Exception that is the base class of all other exceptions defined by - python-oracledb. - """ - - -class DatabaseError(Error): - """ - Exception raised for errors that are related to the database. It is a - subclass of Error. - - Exception messages of this class will have the prefix DPY and an error - number in the range 4000 - 4999. - """ - - -class DataError(DatabaseError): - """ - Exception raised for errors that are due to problems with the processed - data. It is a subclass of DatabaseError. - - Exception messages of this class are generated by the database and will - have a prefix such as ORA. - """ - - -class IntegrityError(DatabaseError): - """ - Exception raised when the relational integrity of the database is affected. - It is a subclass of DatabaseError. - - Exception messages of this class are generated by the database and will - have a prefix such as ORA. - """ - - -class InterfaceError(Error): - """ - Exception raised for errors that are related to the database interface - rather than the database itself. It is a subclass of Error. - - Exception messages of this class will have the prefix DPY and an error - number in the range 1000 - 1999. - """ - - -class InternalError(DatabaseError): - """ - Exception raised when the database encounters an internal error. It is a - subclass of DatabaseError. - - Exception messages of this class will have the prefix DPY and an error - number in the range 5000 - 5999. - """ - - -class NotSupportedError(DatabaseError): - """ - Exception raised when a method or database API was used which is not - supported by the database. It is a subclass of DatabaseError. - - Exception messages of this class will have the prefix DPY and an error - number in the range 3000 - 3999. - """ - - -class OperationalError(DatabaseError): - """ - Exception raised for errors that are related to the operation of the - database but are not necessarily under the control of the programmer. It is - a subclass of DatabaseError. - - Exception messages of this class will have the prefix DPY and an error - number in the range 6000 - 6999. - """ - - -class ProgrammingError(DatabaseError): - """ - Exception raised for programming errors. It is a subclass of DatabaseError. - - Exception messages of this class will have the prefix DPY and an error - number in the range 2000 - 2999. - """ diff --git a/.venv/lib/python3.9/site-packages/oracledb/fetch_info.py b/.venv/lib/python3.9/site-packages/oracledb/fetch_info.py deleted file mode 100644 index a690027..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/fetch_info.py +++ /dev/null @@ -1,310 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2023, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# fetch_info.py -# -# Contains the FetchInfo class which stores metadata about columns that are -# being fetched. -# ----------------------------------------------------------------------------- - -from typing import Union - -import oracledb - -from . import constants -from .base import BaseMetaClass -from .base_impl import ( - DbType, - DB_TYPE_DATE, - DB_TYPE_TIMESTAMP, - DB_TYPE_TIMESTAMP_LTZ, - DB_TYPE_TIMESTAMP_TZ, - DB_TYPE_BINARY_FLOAT, - DB_TYPE_BINARY_DOUBLE, - DB_TYPE_BINARY_INTEGER, - DB_TYPE_NUMBER, - DB_TYPE_VECTOR, -) -from .dbobject import DbObjectType - - -class FetchInfo(metaclass=BaseMetaClass): - """ - Identifies metadata of columns that are being fetched. - """ - - def __eq__(self, other): - return tuple(self) == other - - def __getitem__(self, index): - """ - Return the parts mandated by the Python Database API. - """ - if index == 0 or index == -7: - return self.name - elif index == 1 or index == -6: - return self.type_code - elif index == 2 or index == -5: - return self.display_size - elif index == 3 or index == -4: - return self.internal_size - elif index == 4 or index == -3: - return self.precision - elif index == 5 or index == -2: - return self.scale - elif index == 6 or index == -1: - return self.null_ok - elif isinstance(index, slice): - return tuple(self).__getitem__(index) - raise IndexError("list index out of range") - - def __len__(self): - """ - Length mandated by the Python Database API. - """ - return 7 - - def __repr__(self): - return repr(tuple(self)) - - def __str__(self): - return str(tuple(self)) - - @classmethod - def _from_impl(cls, impl): - info = cls.__new__(cls) - info._impl = impl - info._type = None - return info - - @property - def annotations(self) -> Union[dict, None]: - """ - This read-only attribute returns a dictionary containing the - `annotations `__ associated with the - fetched column. If there are no annotations, the value *None* is - returned. Annotations require Oracle Database version 23, or later. If - using python-oracledb Thick mode, Oracle Client version 23 or later is - also required. - """ - return self._impl.annotations - - @property - def display_size(self) -> Union[int, None]: - """ - This read-only attribute returns the display size of the column. - """ - if self._impl.max_size > 0: - return self._impl.max_size - dbtype = self._impl.dbtype - if ( - dbtype is DB_TYPE_DATE - or dbtype is DB_TYPE_TIMESTAMP - or dbtype is DB_TYPE_TIMESTAMP_LTZ - or dbtype is DB_TYPE_TIMESTAMP_TZ - ): - return 23 - elif ( - dbtype is DB_TYPE_BINARY_FLOAT - or dbtype is DB_TYPE_BINARY_DOUBLE - or dbtype is DB_TYPE_BINARY_INTEGER - or dbtype is DB_TYPE_NUMBER - ): - if self._impl.precision: - display_size = self._impl.precision + 1 - if self._impl.scale > 0: - display_size += self._impl.scale + 1 - else: - display_size = 127 - return display_size - - @property - def domain_name(self) -> Union[str, None]: - """ - This read-only attribute returns the name of the `data use case - domain - `__ associated with the fetched column. If - there is no data use case domain, the value *None* is returned. `Data - use case domains `__ require Oracle - Database version 23, or later. If using python-oracledb Thick mode, - Oracle Client version 23 or later is also required. - """ - return self._impl.domain_name - - @property - def domain_schema(self) -> Union[str, None]: - """ - This read-only attribute returns the schema of the `data use case - domain `__ associated with the fetched - column. If there is no data use case domain, the value *None* is - returned. `Data use case domains `__ - require Oracle Database version 23, or later. If using python-oracledb - Thick mode, Oracle Client version 23 or later is also required. - """ - return self._impl.domain_schema - - @property - def internal_size(self) -> Union[int, None]: - """ - This read-only attribute returns the internal size of the column as - mandated by the Python Database API. - """ - if self._impl.max_size > 0: - return self._impl.buffer_size - - @property - def is_json(self) -> bool: - """ - This read-only attribute returns whether the column is known to contain - JSON data. This will be *True* when the type code is - :data:`oracledb.DB_TYPE_JSON` as well as when an "IS JSON" constraint - is enabled on LOB and VARCHAR2 columns. - """ - return self._impl.is_json - - @property - def is_oson(self) -> bool: - """ - This read-only attribute returns whether the column is known to contain - binary encoded `OSON `__ data. This - will be *True* when an "IS JSON FORMAT OSON" check constraint is - enabled on BLOB columns. - """ - return self._impl.is_oson - - @property - def name(self) -> str: - """ - This read-only attribute returns the name of the column as mandated by - the Python Database API. - """ - return self._impl.name - - @property - def null_ok(self) -> bool: - """ - This read-only attribute returns whether nulls are allowed in the - column as mandated by the Python Database API. - """ - return self._impl.nulls_allowed - - @property - def precision(self) -> Union[int, None]: - """ - This read-only attribute returns the precision of the column as - mandated by the Python Database API. - """ - if self._impl.precision or self._impl.scale: - return self._impl.precision - - @property - def scale(self) -> Union[int, None]: - """ - This read-only attribute returns the scale of the column as mandated by - the Python Database API. - """ - if self._impl.precision or self._impl.scale: - return self._impl.scale - - @property - def type(self) -> Union[DbType, DbObjectType]: - """ - This read-only attribute returns the type of the column. This will be - an :ref:`Oracle Object Type ` if the column contains - Oracle objects; otherwise, it will be one of the - :ref:`database type constants ` defined at the module level. - """ - if self._type is None: - if self._impl.objtype is not None: - self._type = DbObjectType._from_impl(self._impl.objtype) - else: - self._type = self._impl.dbtype - return self._type - - @property - def type_code(self) -> DbType: - """ - This read-only attribute returns the type of the column as mandated by - the Python Database API. The type will be one of the - :ref:`database type constants ` defined at the module level. - """ - return self._impl.dbtype - - @property - def vector_dimensions(self) -> Union[int, None]: - """ - This read-only attribute returns the number of dimensions required by - VECTOR columns. If the column is not a VECTOR column or allows for any - number of dimensions, the value returned is *None*. - """ - if self._impl.dbtype is DB_TYPE_VECTOR: - flags = self._impl.vector_flags - if not (flags & constants.VECTOR_META_FLAG_FLEXIBLE_DIM): - return self._impl.vector_dimensions - - @property - def vector_format(self) -> Union[oracledb.VectorFormat, None]: - """ - This read-only attribute returns the storage type used by VECTOR - columns. The value of this attribute can be: - - - :data:`oracledb.VECTOR_FORMAT_BINARY` which represents 8-bit unsigned - integers - - :data:`oracledb.VECTOR_FORMAT_INT8` which represents 8-bit signed - integers - - :data:`oracledb.VECTOR_FORMAT_FLOAT32` which represents 32-bit - floating-point numbers - - :data:`oracledb.VECTOR_FORMAT_FLOAT64` which represents 64-bit - floating-point numbers - - If the column is not a VECTOR column or allows for any type of storage, - the value returned is *None*. - """ - if ( - self._impl.dbtype is DB_TYPE_VECTOR - and self._impl.vector_format != 0 - ): - return oracledb.VectorFormat(self._impl.vector_format) - - @property - def vector_is_sparse(self) -> Union[bool, None]: - """ - This read-only attribute returns a boolean indicating if the vector is - sparse or not. - - If the column contains vectors that are SPARSE, the value returned is - *True*. If the column contains vectors that are DENSE, the value - returned is *False*. If the column is not a VECTOR column, the value - returned is *None*. - """ - if self._impl.dbtype is DB_TYPE_VECTOR: - flags = self._impl.vector_flags - return bool(flags & constants.VECTOR_META_FLAG_SPARSE_VECTOR) diff --git a/.venv/lib/python3.9/site-packages/oracledb/future.py b/.venv/lib/python3.9/site-packages/oracledb/future.py deleted file mode 100644 index dff545d..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/future.py +++ /dev/null @@ -1,46 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2020, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# future.py -# -# Module for handling backwards incompatible changes. -# ----------------------------------------------------------------------------- - -FEATURES = [] - - -# future object used for managing backwards incompatible changes -class Future: - def __getattr__(self, name): - if name in FEATURES: - return super().__getattr__(name) - return None - - def __setattr__(self, name, value): - if name in FEATURES: - return super().__setattr__(name, value) - - -__future__ = Future() diff --git a/.venv/lib/python3.9/site-packages/oracledb/lob.py b/.venv/lib/python3.9/site-packages/oracledb/lob.py deleted file mode 100644 index 5581303..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/lob.py +++ /dev/null @@ -1,318 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# lob.py -# -# Contains the LOB class for managing BLOB, CLOB, NCLOB and BFILE data. -# ----------------------------------------------------------------------------- - -from typing import Optional, Union - -from .base import BaseMetaClass -from .base_impl import DbType, DB_TYPE_BFILE, DB_TYPE_BLOB -from . import errors - - -class BaseLOB(metaclass=BaseMetaClass): - - def __del__(self): - self._impl.free_lob() - - def _check_is_bfile(self): - if self._impl.dbtype is not DB_TYPE_BFILE: - errors._raise_err(errors.ERR_OPERATION_ONLY_SUPPORTED_ON_BFILE) - - def _check_not_bfile(self): - if self._impl.dbtype is DB_TYPE_BFILE: - errors._raise_err(errors.ERR_OPERATION_NOT_SUPPORTED_ON_BFILE) - - def _check_value_to_write(self, value): - """ - Checks the value to write and returns the actual value to write. - Character LOBs must write strings but can accept UTF-8 encoded bytes - (which will be decoded to strings). Binary LOBs must write bytes but - can accept strings (which will be encoded in UTF-8). - """ - if self.type is DB_TYPE_BLOB: - if isinstance(value, str): - return value.encode() - elif isinstance(value, bytes): - return value - else: - if isinstance(value, str): - return value - elif isinstance(value, bytes): - return value.decode() - raise TypeError("expecting string or bytes") - - @classmethod - def _from_impl(cls, impl): - if isinstance(impl, BaseLOB): - return impl - lob = cls.__new__(cls) - lob._impl = impl - return lob - - def getfilename(self) -> tuple: - """ - Returns a two-tuple consisting of the directory alias and file name for - a BFILE type LOB. - """ - self._check_is_bfile() - return self._impl.get_file_name() - - def setfilename(self, dir_alias: str, name: str) -> None: - """ - Sets the directory alias and name of a BFILE type LOB. - """ - self._check_is_bfile() - self._impl.set_file_name(dir_alias, name) - - @property - def type(self) -> DbType: - """ - This read-only attribute returns the type of the LOB as one of the - database type constants. - """ - return self._impl.dbtype - - -class LOB(BaseLOB): - - def __reduce__(self): - value = self.read() - return (type(value), (value,)) - - def __str__(self): - return self.read() - - def close(self) -> None: - """ - Closes the LOB. Call this when writing is completed so that the indexes - associated with the LOB can be updated -– but only if open() was called - first. - """ - self._impl.close() - - def fileexists(self) -> bool: - """ - Returns a boolean indicating if the file referenced by a BFILE type LOB - exists. - """ - self._check_is_bfile() - return self._impl.file_exists() - - def getchunksize(self) -> int: - """ - Returns the chunk size for the LOB. Reading and writing to the LOB in - chunks of multiples of this size will improve performance. - """ - self._check_not_bfile() - return self._impl.get_chunk_size() - - def isopen(self) -> bool: - """ - Returns a boolean indicating if the LOB has been opened using the - method open(). - """ - return self._impl.get_is_open() - - def open(self) -> None: - """ - Opens the LOB for writing. This will improve performance when writing - to the LOB in chunks and there are functional or extensible indexes - associated with the LOB. If this method is not called, each write will - perform an open internally followed by a close after the write has been - completed. - """ - self._impl.open() - - def read( - self, offset: int = 1, amount: Optional[int] = None - ) -> Union[str, bytes]: - """ - Returns a portion (or all) of the data in the LOB. Note that the amount - and offset are in bytes for BLOB and BFILE type LOBs and in UCS-2 code - points for CLOB and NCLOB type LOBs. UCS-2 code points are equivalent - to characters for all but supplemental characters. If supplemental - characters are in the LOB, the offset and amount will have to be chosen - carefully to avoid splitting a character. - """ - if amount is None: - amount = self._impl.get_max_amount() - if amount >= offset: - amount = amount - offset + 1 - else: - amount = 1 - elif amount <= 0: - errors._raise_err(errors.ERR_INVALID_LOB_AMOUNT) - if offset <= 0: - errors._raise_err(errors.ERR_INVALID_LOB_OFFSET) - return self._impl.read(offset, amount) - - def size(self) -> int: - """ - Returns the size of the data in the LOB. For BLOB and BFILE type LOBs, - this is the number of bytes. For CLOB and NCLOB type LOBs, this is the - number of UCS-2 code points. UCS-2 code points are equivalent to - characters for all but supplemental characters. - """ - return self._impl.get_size() - - def trim( - self, new_size: int = 0, *, newSize: Optional[int] = None - ) -> None: - """ - Trims the LOB to the new size (the second parameter is deprecated and - should not be used). - """ - self._check_not_bfile() - if newSize is not None: - if new_size != 0: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="newSize", - new_name="new_size", - ) - new_size = newSize - self._impl.trim(new_size) - - def write(self, data: Union[str, bytes], offset: int = 1) -> None: - """ - Writes the data to the LOB at the given offset. The offset is in bytes - for BLOB type LOBs and in UCS-2 code points for CLOB and NCLOB type - LOBs. UCS-2 code points are equivalent to characters for all but - supplemental characters. If supplemental characters are in the LOB, the - offset will have to be chosen carefully to avoid splitting a character. - Note that if you want to make the LOB value smaller, you must use the - trim() function. - """ - self._check_not_bfile() - self._impl.write(self._check_value_to_write(data), offset) - - -class AsyncLOB(BaseLOB): - - async def close(self) -> None: - """ - Closes the LOB. Call this when writing is completed so that the indexes - associated with the LOB can be updated -– but only if open() was called - first. - """ - await self._impl.close() - - async def fileexists(self) -> bool: - """ - Returns a boolean indicating if the file referenced by a BFILE type LOB - exists. - """ - self._check_is_bfile() - return await self._impl.file_exists() - - async def getchunksize(self) -> int: - """ - Returns the chunk size for the LOB. Reading and writing to the LOB in - chunks of multiples of this size will improve performance. - """ - self._check_not_bfile() - return await self._impl.get_chunk_size() - - async def isopen(self) -> bool: - """ - Returns a boolean indicating if the LOB has been opened using the - method open(). - """ - return await self._impl.get_is_open() - - async def open(self) -> None: - """ - Opens the LOB for writing. This will improve performance when writing - to the LOB in chunks and there are functional or extensible indexes - associated with the LOB. If this method is not called, each write will - perform an open internally followed by a close after the write has been - completed. - """ - await self._impl.open() - - async def read( - self, offset: int = 1, amount: Optional[int] = None - ) -> Union[str, bytes]: - """ - Returns a portion (or all) of the data in the LOB. Note that the amount - and offset are in bytes for BLOB and BFILE type LOBs and in UCS-2 code - points for CLOB and NCLOB type LOBs. UCS-2 code points are equivalent - to characters for all but supplemental characters. If supplemental - characters are in the LOB, the offset and amount will have to be chosen - carefully to avoid splitting a character. - """ - if amount is None: - amount = self._impl.get_max_amount() - if amount >= offset: - amount = amount - offset + 1 - else: - amount = 1 - if offset <= 0: - errors._raise_err(errors.ERR_INVALID_LOB_OFFSET) - return await self._impl.read(offset, amount) - - async def size(self) -> int: - """ - Returns the size of the data in the LOB. For BLOB and BFILE type LOBs - this is the number of bytes. For CLOB and NCLOB type LOBs this is the - number of UCS-2 code points. UCS-2 code points are equivalent to - characters for all but supplemental characters. - """ - return await self._impl.get_size() - - async def trim( - self, new_size: int = 0, *, newSize: Optional[int] = None - ) -> None: - """ - Trims the LOB to the new size (the second parameter is deprecated and - should not be used). - """ - self._check_not_bfile() - if newSize is not None: - if new_size != 0: - errors._raise_err( - errors.ERR_DUPLICATED_PARAMETER, - deprecated_name="newSize", - new_name="new_size", - ) - new_size = newSize - await self._impl.trim(new_size) - - async def write(self, data: Union[str, bytes], offset: int = 1) -> None: - """ - Writes the data to the LOB at the given offset. The offset is in bytes - for BLOB type LOBs and in UCS-2 code points for CLOB and NCLOB type - LOBs. UCS-2 code points are equivalent to characters for all but - supplemental characters. If supplemental characters are in the LOB, the - offset will have to be chosen carefully to avoid splitting a character. - Note that if you want to make the LOB value smaller, you must use the - trim() function. - """ - self._check_not_bfile() - await self._impl.write(self._check_value_to_write(data), offset) diff --git a/.venv/lib/python3.9/site-packages/oracledb/pipeline.py b/.venv/lib/python3.9/site-packages/oracledb/pipeline.py deleted file mode 100644 index bb2d056..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/pipeline.py +++ /dev/null @@ -1,491 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2024, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# pipeline.py -# -# Contains the Pipeline class used for executing multiple operations. -# ----------------------------------------------------------------------------- - -from typing import Any, Callable, Optional, Union - -from . import utils -from .base import BaseMetaClass -from .base_impl import PipelineImpl, PipelineOpImpl, PipelineOpResultImpl -from .defaults import defaults -from .enums import PipelineOpType -from .errors import _Error -from .fetch_info import FetchInfo - - -class PipelineOp(metaclass=BaseMetaClass): - - def __repr__(self): - cls_name = self.__class__._public_name - return f"<{cls_name} of type {self.op_type.name}>" - - def _create_result(self): - """ - Internal method used for creating a result object that is returned when - running a pipeline. - """ - impl = PipelineOpResultImpl(self._impl) - result = PipelineOpResult.__new__(PipelineOpResult) - result._operation = self - result._impl = impl - return result - - @property - def arraysize(self) -> int: - """ - This read-only attribute returns the array size that will be used when - fetching query rows with :meth:`Pipeline.add_fetchall()`. For all other - operations, the value returned is *0*. - """ - return self._impl.arraysize - - @property - def fetch_decimals(self) -> bool: - """ - Returns whether or not to fetch columns of type ``NUMBER`` as - ``decimal.Decimal`` values for a query. - """ - return self._impl.fetch_decimals - - @property - def fetch_lobs(self) -> bool: - """ - Returns whether or not to fetch LOB locators for a query. - """ - return self._impl.fetch_lobs - - @property - def keyword_parameters(self) -> Any: - """ - This read-only attribute returns the keyword parameters to the stored - procedure or function being called by the operation, if applicable. - """ - return self._impl.keyword_parameters - - @property - def name(self) -> Union[str, None]: - """ - This read-only attribute returns the name of the stored procedure or - function being called by the operation, if applicable. - """ - return self._impl.name - - @property - def num_rows(self) -> int: - """ - This read-only attribute returns the number of rows to fetch when - performing a query of a specific number of rows. For all other - operations, the value returned is *0*. - """ - return self._impl.num_rows - - @property - def op_type(self) -> PipelineOpType: - """ - This read-only attribute returns the type of operation that is taking - place. - """ - return PipelineOpType(self._impl.op_type) - - @property - def parameters(self) -> Any: - """ - This read-only attribute returns the parameters to the stored procedure - or function or the parameters bound to the statement being executed by - the operation, if applicable. - """ - return self._impl.parameters - - @property - def return_type(self) -> Any: - """ - This read-only attribute returns the return type of the stored function - being called by the operation, if applicable. - """ - return self._impl.return_type - - @property - def rowfactory(self) -> Union[Callable, None]: - """ - This read-only attribute returns the row factory callable function to - be used in a query executed by the operation, if applicable. - """ - return self._impl.rowfactory - - @property - def statement(self) -> Union[str, None]: - """ - This read-only attribute returns the statement being executed by the - operation, if applicable. - """ - return self._impl.statement - - -class PipelineOpResult(metaclass=BaseMetaClass): - - def __repr__(self): - cls_name = self.__class__._public_name - return ( - f"<{cls_name} for operation of type {self.operation.op_type.name}>" - ) - - @property - def columns(self) -> Union[list[FetchInfo], None]: - """ - This read-only attribute is a list of FetchInfo objects. This - attribute will be *None* for operations that do not return rows. - """ - if self._impl.fetch_metadata is not None: - return [FetchInfo._from_impl(i) for i in self._impl.fetch_metadata] - - @property - def error(self) -> Union[_Error, None]: - """ - This read-only attribute returns the error that occurred when running - this operation. If no error occurred, then the value *None* is - returned. - """ - return self._impl.error - - @property - def operation(self) -> PipelineOp: - """ - This read-only attribute returns the PipelineOp operation object that - generated the result. - """ - return self._operation - - @property - def return_value(self) -> Any: - """ - This read-only attribute returns the return value of the called PL/SQL - function, if a function was called for the operation. - """ - return self._impl.return_value - - @property - def rows(self) -> Union[list, None]: - """ - This read-only attribute returns the rows that were fetched by the - operation, if a query was executed. - """ - return self._impl.rows - - @property - def warning(self) -> Union[_Error, None]: - """ - This read-only attribute returns any warning that was encountered when - running this operation. If no warning was encountered, then the value - *None* is returned. - """ - return self._impl.warning - - -class Pipeline(metaclass=BaseMetaClass): - - def __repr__(self): - cls_name = self.__class__._public_name - return f"<{cls_name} with {len(self._impl.operations)} operations>" - - def _add_op(self, op_impl): - """ - Internal method for adding an PipelineOpImpl instance to the list of - operations, creating an associated PipelineOp instance to correspond to - it. - """ - self._impl.operations.append(op_impl) - op = PipelineOp.__new__(PipelineOp) - op._impl = op_impl - self._operations.append(op) - return op - - def add_callfunc( - self, - name: str, - return_type: Any, - parameters: Optional[Union[list, tuple]] = None, - keyword_parameters: Optional[dict] = None, - ) -> PipelineOp: - """ - Adds an operation to the pipeline that calls a stored PL/SQL function - with the given parameters and return type. The created PipelineOp - object is also returned from this function. - - When the Pipeline is executed, the PipelineOpResult object that is - returned for this operation will have the - :attr:`~PipelineOpResult.return_value` attribute populated with the - return value of the PL/SQL function if the call completes - successfully. - """ - utils.verify_stored_proc_args(parameters, keyword_parameters) - op_impl = PipelineOpImpl( - op_type=PipelineOpType.CALL_FUNC, - name=name, - return_type=return_type, - parameters=parameters, - keyword_parameters=keyword_parameters, - ) - return self._add_op(op_impl) - - def add_callproc( - self, - name: str, - parameters: Optional[Union[list, tuple]] = None, - keyword_parameters: Optional[dict] = None, - ) -> PipelineOp: - """ - Adds an operation that calls a stored procedure with the given - parameters. The created PipelineOp object is also returned from - this function. - """ - utils.verify_stored_proc_args(parameters, keyword_parameters) - op_impl = PipelineOpImpl( - op_type=PipelineOpType.CALL_PROC, - name=name, - parameters=parameters, - keyword_parameters=keyword_parameters, - ) - return self._add_op(op_impl) - - def add_commit(self) -> PipelineOp: - """ - Adds an operation that performs a commit. - """ - op_impl = PipelineOpImpl(op_type=PipelineOpType.COMMIT) - return self._add_op(op_impl) - - def add_execute( - self, - statement: str, - parameters: Optional[Union[list, tuple, dict]] = None, - ) -> PipelineOp: - """ - Adds an operation that executes a statement with the given parameters. - The created PipelineOp object is also returned from this function. - - Do not use this for queries that return rows. Instead use - :meth:`Pipeline.add_fetchall()`, :meth:`Pipeline.add_fetchmany()`, or - :meth:`Pipeline.add_fetchone()`. - """ - op_impl = PipelineOpImpl( - op_type=PipelineOpType.EXECUTE, - statement=statement, - parameters=parameters, - ) - return self._add_op(op_impl) - - def add_executemany( - self, - statement: str, - parameters: Union[list, int], - ) -> PipelineOp: - """ - Adds an operation that executes a SQL statement once using all bind - value mappings or sequences found in the sequence parameters. This can - be used to insert, update, or delete multiple rows in a table. It can - also invoke a PL/SQL procedure multiple times. - - The created PipelineOp object is also returned from this function. - - The ``parameters`` parameter can be a list of tuples, where each tuple - item maps to one bind variable placeholder in ``statement``. It can - also be a list of dictionaries, where the keys match the bind variable - placeholder names in ``statement``. If there are no bind values, or - values have previously been bound, the ``parameters`` value can be an - integer specifying the number of iterations. - """ - op_impl = PipelineOpImpl( - op_type=PipelineOpType.EXECUTE_MANY, - statement=statement, - parameters=parameters, - ) - return self._add_op(op_impl) - - def add_fetchall( - self, - statement: str, - parameters: Optional[Union[list, tuple, dict]] = None, - arraysize: Optional[int] = None, - rowfactory: Optional[Callable] = None, - fetch_lobs: Optional[bool] = None, - fetch_decimals: Optional[bool] = None, - ) -> PipelineOp: - """ - Adds an operation that executes a query and returns all of the rows - from the result set. The created PipelineOp object is also returned - from this function. - - When the Pipeline is executed, the PipelineOpResult object that is - returned for this operation will have the - :attr:`~PipelineOpResult.rows` attribute populated with the list of - rows returned by the query. - - The default value for ``arraysize`` is - :attr:`oracledb.defaults.arraysize `. - - Internally, this operation's :attr:`Cursor.prefetchrows` size is set - to the value of the explicit or default ``arraysize`` parameter value. - - The ``fetch_lobs`` parameter specifies whether to return LOB locators - or ``str``/``bytes`` values when fetching LOB columns. The default - value is :data:`oracledb.defaults.fetch_lobs `. - - The ``fetch_decimals`` parameter specifies whether to return - ``decimal.Decimal`` values when fetching columns of type ``NUMBER``. - The default value is - :data:`oracledb.defaults.fetch_decimals `. - """ - if arraysize is None: - arraysize = defaults.arraysize - op_impl = PipelineOpImpl( - op_type=PipelineOpType.FETCH_ALL, - statement=statement, - parameters=parameters, - arraysize=arraysize, - rowfactory=rowfactory, - fetch_lobs=fetch_lobs, - fetch_decimals=fetch_decimals, - ) - return self._add_op(op_impl) - - def add_fetchmany( - self, - statement: str, - parameters: Optional[Union[list, tuple, dict]] = None, - num_rows: Optional[int] = None, - rowfactory: Optional[Callable] = None, - fetch_lobs: Optional[bool] = None, - fetch_decimals: Optional[bool] = None, - ) -> PipelineOp: - """ - Adds an operation that executes a query and returns up to the specified - number of rows from the result set. The created PipelineOp object is - also returned from this function. - - When the Pipeline is executed, the PipelineOpResult object that is - returned for this operation will have the - :attr:`~PipelineOpResult.rows` attribute populated with the list of - rows returned by the query. - - The default value for ``num_rows`` is the value of - :attr:`oracledb.defaults.arraysize `. - - Internally, this operation's :attr:`Cursor.prefetchrows` size is set to - the value of the explicit or default ``num_rows`` parameter, allowing - all rows to be fetched in one round-trip. - - Since only one fetch is performed for a query operation, consider - adding a ``FETCH NEXT`` clause to the statement to prevent the - database processing rows that will never be fetched. - - The ``fetch_lobs`` parameter specifies whether to return LOB locators - or ``str``/``bytes`` values when fetching LOB columns. The default - value is :data:`oracledb.defaults.fetch_lobs `. - - The ``fetch_decimals`` parameter specifies whether to return - ``decimal.Decimal`` values when fetching columns of type ``NUMBER``. - The default value is - :data:`oracledb.defaults.fetch_decimals `. - """ - if num_rows is None: - num_rows = defaults.arraysize - op_impl = PipelineOpImpl( - op_type=PipelineOpType.FETCH_MANY, - statement=statement, - parameters=parameters, - num_rows=num_rows, - rowfactory=rowfactory, - fetch_lobs=fetch_lobs, - fetch_decimals=fetch_decimals, - ) - return self._add_op(op_impl) - - def add_fetchone( - self, - statement: str, - parameters: Optional[Union[list, tuple, dict]] = None, - rowfactory: Optional[Callable] = None, - fetch_lobs: Optional[bool] = None, - fetch_decimals: Optional[bool] = None, - ) -> PipelineOp: - """ - Adds an operation that executes a query and returns the first row of - the result set if one exists (or *None*, if no rows exist). The - created PipelineOp object is also returned from this function. - - When the Pipeline is executed, the PipelineOpResult object that is - returned for this operation will have the - :attr:`~PipelineOpResult.rows` attribute populated with this row if the - query is performed successfully. - - Internally, this operation's :attr:`Cursor.prefetchrows` and - :attr:`Cursor.arraysize` sizes will be set to *1*. - - Since only one fetch is performed for a query operation, consider - adding a ``WHERE`` condition or using a ``FETCH NEXT`` clause in the - statement to prevent the database processing rows that will never be - fetched. - - The ``fetch_lobs`` parameter specifies whether to return LOB locators - or ``str``/``bytes`` values when fetching LOB columns. The default - value is :data:`oracledb.defaults.fetch_lobs `. - - The ``fetch_decimals`` parameter specifies whether to return - ``decimal.Decimal`` values when fetching columns of type ``NUMBER``. - The default value is - :data:`oracledb.defaults.fetch_decimals `. - """ - op_impl = PipelineOpImpl( - op_type=PipelineOpType.FETCH_ONE, - statement=statement, - parameters=parameters, - rowfactory=rowfactory, - fetch_lobs=fetch_lobs, - fetch_decimals=fetch_decimals, - ) - return self._add_op(op_impl) - - @property - def operations(self) -> list[PipelineOp]: - """ - This read-only attribute returns the list of operations associated with - the pipeline. - """ - return self._operations - - -def create_pipeline() -> Pipeline: - """ - Creates a pipeline object which can be used to process a set of operations - against a database. - """ - pipeline = Pipeline.__new__(Pipeline) - pipeline._impl = PipelineImpl() - pipeline._operations = [] - return pipeline diff --git a/.venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/azure_config_provider.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/azure_config_provider.cpython-39.pyc deleted file mode 100644 index 4d54a83adb53702d8e27e0ea46071d407d922ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5596 zcmZu#TW{RP73Pp!E|*%ZF1F>!x3I3$bkle@$i=x-aH`5mqa;=h%SjqG?tb=zQx)Z^KdUrb2?qo38tp&C2R4~<@4yL;^!3^5U+LClx@F)2UpT*mpI4hpur+#bl)BMasJDBHl{48|O@hA8^ zp6B^Fejd*Y!rZ^eFNkvoCNuDUiC+{K=$*4Qqwar&-5INOGk5#4(+g!Pa#uZCAEkAc zpI;pGrC99smXi2hw9%Jg7A5ggClYan=IWYgOOYMb&)gPi(wA+qnq+Sz{g^LHnaFx6 zpVKOZx)dD!qp*{oSrRgf?nUh|6H8<9{LL^9Hw0f%dfCpgrn#lfFp34gliU~aG5MM0 zcsr6w+{MUaahuWpil2$6ga0M`r_ZAp8v8JVD$N6SVD7RZj<(NaW61W|fuZWweN#5L zdWXU6)w~w=vrSq*77b(MPFG}`2@fV0gLiK)w{9%IvH0#gcVJR$Lu7fW-|Gp9ng_Fn zP!%%GCuoS4?)N7{&SEW(e%ahix}v!rrJE1JEg`aICeo}Ki+fos6>?k1R`zk+>dB-n z(zMyw7V&no6Rlr+vDw?f0^%1MuQt;t6IXj-`#!9fHWL}PJA$t_d!7D96sOIQPP5fk zXGtS%M_kB8Zzn(3!dhD=H&(2V43$<<7;Kig>d$8KH0mdeTY|vFzcTKB@Uj7uWias` z+ck$KXMH2RfTsy_ZgXpBY#Z_|GIM5TsBwEwKTE~a+B5g81ICQ_S?(z9ZKZ90tF|-J zE@t{Qo@LDRM;va6y9aF78d_KbgM{XEP^)~(X#A`^WP6Nz(Ecl**tIivXz#I4SbVx@ zsiNf{0ERbjtQo3zWzSGOy&?Myvijs8@_hVmi>xo>)CWBLum}70WCURQ?IUFS8xhV; zDMWFvpZO`^0dL~|`i_z&GQvrP9W@>fDi&=hWipC48cMdBpVc^9TfY6?%F=S{*6o$m zrIlNY@8qY7<5k`X%wXCqpVGoi#9^GZB0dtdwH5>yPjqXK9kSI6v(0=?Pj_>1b@3<5 zH(DzPLqO@5wE0jh8ixAq}+wO!JU+s>f#j1r__|=qx~U- z>5owuj?G+i8lGY^Q+v$+%tNO&1 zidse0Dhoz@jaOBlFGqduv6H=2eble2`c)T8cO!$q*{wIsPK?p8sCh?_@p~kap5WZuMo9 zm$t)BU*w(w^EN5ucD4h?CdQMKRGgt=j*7EXJVC`g73ZipkD~78_Ew5eQ0gQhPxC37 z|AuHMT&MsjzXPS*>VXf4H|3L55Gdxqo>udzntR8>J~7<2{*leacnd7CU3Z)@^M#n>yugC(&_P z+wi32l;uCiQd5=u!6xK#(@e?lv?+#-ezdcr-EE;Vcm+6wXB{wkj`pK=WA2vXn%W&a z3%j%6H^vqlmJnaePt9EizWEGnVeYJJTMTXaA);Riy5?>fK3dj3%I!4+Ug~V&SuYLV z`9?g!S&S1fKNVR<78!>V&9u+@_r;DM#@q*sijEE$k64qk5wrlHBpzJ3Sy*($nB*+S zhKK5F{wne|7Yv&|h_cOKo)Ux;T8J=e5t7JBL0lq{CTDQ;V&sdc2IaKB-ok+LCDd|v zG-Kd}?W`Yms42IS^{sC^ue_>|UQG0R43Lr|8UU;Zpx2O*Q~_DyP?yQq(1MLt5qPtt zopf5E+{hgSK?LO!xe6_q(5rG4I$NCxf=d~&2@G@dEHe3Dne!@p$$;D~Aa>W{HZMIi zhSt7)VBDZK8<~qWWTc5a!@&sP&3%WL4_NvO@K^a|#iU>^7tBRxTNx~>vjx^up+f#q zuu3(+DSH@g!N(T*l+vEa0Uoi}PaOObl2Xd#%;bF^rZ$M-bzjm7^N;}#h6*l8fk zVa}mr&5khkCfZL}ozjXUEPaLw<-8mS+Ou$dK#b2l~Qz5vE>Q$&lS-YR%2BX4zv=AOCh4&D9A5D47zaLV4Q zI?ch{Ja_fgM(gU`AJm&VElr!GuHWAlJJ$=fyJPjMcb}^hk}v_M!OvORm~P?}gs05P2MGLr6= zhh^^JiuDkwWEmGf6M9Gk3%!Yv9;B4==~=4Bq)7b=>EuXCU{+&(kvaS2As~<5lb}+z z54h7Mj1$OfgWH-^_2pRTE7*x>1p-ZQHK2P15v&F|K5RS|`IMFpn*(&haMco7>@yjt(Q=C&7nyk~?Gbn;7#K;!qM@5WAS9PDMjh3pSOsbG9 zU#4ypoOMig^a|xwNOHFbw&~+sIW_w9P|Wa8Xs6GkFiHf{Dl@+(czTw)^&p9yQ{M}a zjxz7iL*j|DL|+hUmi!rdeIu77&R4*t5D(zuHllMyf@|@;${eh!gMJg<;@?Z8zlmI@ zLz&RAC^|mrFfI;S@38oMrJ+zx)c~B8XzDrGH$j7ZgxiJ!^!iC9s z@tMy^>7)!Bxkx~Lo<=dKYR#+4*@2HHgmreO{-i#=w^0q;(U+RM3i8B9orVfz<5(EX zsqT%VkXdX+L1WYi{!v`g&>WO%W;>&Mwt@bJ7+ri*m9zyl-8QJ7Q_8wEEdQ*37 tccGi`en(vQF>FfnBhfSIa$Qw_7bq<@01dCFhtE&a}LC2M`5Fo(lga?YIdednThe!k6c zHUHTieR`R(@95$D)xg6Y4E+}f!2}<(etqYCZl9gLWAAR?eaM6(+#@Dj=}A6n9D03U zc%pH{`c2`BChma?Naq(|lToRX$ zy#AtekC)`)3FkP)Bi4QMdz^@EBqYyY4j%4c=t~fi(J664e(avGz9$@f=~ltri5Y&e zSIFw}-TjG@kEGg76ZyGHvm`Cz@kX~%1yPj6J2Hx@b`XG{gSS@AE`8|FK*x0&kU*YQY7(=$?=UM2@7($FPUWFBWxq4Gp(-CN(4*=}!~ zZr-}tEB4GV&purLxTjMiZxnH|9dAk9%T=6=rP%Bh0V3+k4(NTGreByDYE8>#0J#pcr#zxgj#;MFql!|J3I!%-m zSW4q@)r#T6T%~5O>nb9Vnj_JH=sK0RqvLV^?R$APNT*-iv%B3bigB96Ce5>Fyz+}! z#XI`B>r@NhSBuf+Bpr*0Hi_b*xQ<0_iON0h)8Bv964qwyBNS*@`_?fru}#ZFNcF%g=922ptc~4 zbr^?)DA*Ggr}SC3`&7P8@c?Xk{9fK<;@E*M8Y&&YzfIWu@Me-t^-!o3hN`8nCGp_JT=P477 zZ{0)w4MGt9^}#56@ByNxf8ixY>3%2AqD?uB$Ac&z?7#EdEXkFUi3xY(@kE~aKcWqO z9aen3>s9WSG}U#8NW>=IjJ1r;`+4e2>j3**b>;Q%=9_u_PWwwzcwebp0fq%3Wuavf z)nu*O6F9wwQN0Pzya>R`Yc-G`Yv1!W5A0vtQSV@NhRFozS)~3Q4=+b4R=gE9@D8|P z$6)vr7dGMQX6cM92A2J9>5jbmZLq%q_ItuFyUiOX5p0J?JBBABUWbq1;BM3h}P`DT&z_RI6C~9fqci%p9Atxc?u|C)j;A;1_UT zaN3}O&pSVO?h?1(%!DANLLbA1;6E^d(_c#0QzA4D97_ZTumN&GM7Ra$pA*3=JrIF* z0C6l8oP!3a&;S*NmI{qCDm124z^|AQ6`E5jG-s#~SSmQBUj|bu_^+ix*Xb|Vz=<`& z$HHV8V#%@g*{7dPv+Sz~Qak!5aDlo4(e0?8(fnN!j-j-(K?+ zc#k_g_#frm7vQIFAI#wI(jFKVf3mwq|CpUHO2USZC=IU}w@$-#Z?pd!TYMhMOe*jn z^(hN&k271#C{cy7ZqBB=Ssx1e%0C9piSE7da8*7*rvj^JGNk;@S|sBRa40U z0%NGCw!9Du)xy^FD0RmC2CryhHS;=Pzq*OpO!6a($#QEo6@IdMg2saEvqi`SACdB~ z%JXX_KjtUQpqztw-u^>tJ<@kd(N9G@HlciMR9u(QI)#U*rY1%g6~(Ud9}@b}34TbQc_h*$c6{9sdv zVShricF5J0Ke7QV7tT>|z_I4Q5AGA{iR%{TBYS!a_zhjiBpswlILz~HTRo>xq}dh> zw<)ZKdPX_*iKLhU(-x~*IY6R|Ju2}HKK#9-yY|9QGc>N`w_OL6Knti>m*WFxmp_NUnF(EB4P8c)ov9py}0{d z@zRuTZKva^kMZ2)54y`X4^*DaCOc}LcA|`e{f(-;`?N?rtg8$4Mz%=X6s;&wYY))5 z`t#^d_qltrm}&yz`<}Yc|i~? Q1npooSZlX}_R{?S0b3bK4FCWD diff --git a/.venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/end_user_sec_provider.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/end_user_sec_provider.cpython-39.pyc deleted file mode 100644 index e53a65bc1ea2d9cdf6f0044e5dad3320873e4252..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3537 zcmZ`*TW=f372cU$k}HZ*BwKRhwssdmQJZK?x{cvBspG~MH4%(ZhApS?0>yU48HuD; zyY$RZwp8jRGSKwFzo01~J^F{_2lREH3iQd(eaofpcVyv!hpupi_uL6RQ4(c5OCLL; zBK+r$@DF)d7BixXuN5&XYIyo$PR!#uBYCeX-ujY>1+n#`7#vtjTQ$Oj8J$ktEAX>e<(pq0#f81uYJNnVOgmDK${~6N|Y7QLz2ZNPihkUf+ z#@*zHT-`L@&^cs+ZPU6WxNx6?@-Ds|GSHTVcgQ|xrqc7xjHw>Y4xM90mwVwtIS0yB zTCX_dOld(MJPb|aZA?SwPYVYOIxy1VGlw}(IGujUT6LaRySkfd6Q^yNyV@vx;*G00 z+kNRMAE&?mOS6;h$mT{@cb>*QDNWNzZJMdvG?A8SSE|T7OQXKZ+EVLgV^^lT&7`|= z{aUlXXF6H>UgQ0y?izWeAGf#TEvcKCira}48_j+)*n;$?Ohq&RGcarur`@iQs?p!e zXKrlCR6gsgn+@pl9}H*zvX&;AoB(BNx@NC&BgxuvqHi`PNA{ntq#_``!I&!88E6x1 z$e@*_^4%Z~aN};e6=VwQUtckUejNG z@vbDZC~5NL|BJuq-pb?L>**}bOJcCo*L9Ycc8QU7UNOy()a6sHb_rYh=a?K`e$Bc6 zU+&eu<)!L3yu9!=pW%$Z_B@Yq<}?1C`Vr{bL_Gdc#M8xW#Qy>d_&r&UsXr7kIrXuOz_m&?; z-Lz|>=q@(36~p!~oTfu#OgW_tIfV>mmFZw1oCChUWSk>5WIbH+JfP%&|ItZrc#d)R z))`=dLFJxz1R%nmJ9GhFOx+*4M`ht27puy#BfRtA_1H=IRmb>4eh8!-I!7}@M((Yb zTDd>=LU`tr_4WJFtw-yhtUXu_Z>_Jcwe~BwB}}J+R}?(;s&%y@oC+&<*4FN=t~|{B zdvebvLg;rkWxlJ?V3(r(*2}sY&=@?)jf3q9P)~iPX<6I^)q^#jR&R^ zb&!Qponm01MG{3HgHlrvI*j6ciPi8wgTMd71}{#w>ZKfhB8-Tlyc$J2nHVIru0_$4 zL7Wsj>LPe6O0*L?*dV67R6oIFy<}a+eAj-NawfTdl4bAUWmwdVi$z^A+*Xr|#uaeJ z=S;Y8gSY?BYJlGZX$C6Qr(+sWZ<0AC+m>mgY7borRyPBSB0*ON@fajOyct|xyS)~) zmd$na<1c_Lp1T%>Rqg-yh$~nf?=J08w+#^NXG+C$tn1d z|K0h=C;^Z75WYU<2cB_z9`FPxiu6P>+NVd|zzdJ?2}!5>-N@|q<^JNhcr-@kwUJk$ zX&k96kvgx&1~qSEfGS@1!o^7djFUEBCgP1)%P4MBNsnx3C@R3Ji3w;p)7|N3%Am^U zbH#EL{NZ_mxYHR}qz_QY$Z8X@K=pw_{T|y4IA9RTk1XR5VCJ%SyEhu<%>nrAz)rutV{qM)H}cT~bS ztG!mgA%qA*#tzOQ?4B#j3}%S zMAYq4Ls=f(faO)hb&AC7X6clyu^cMXR@N6q_@co)L=X?rTB2%PGi=C*Xg3+;e&L`> za8wlM2vx;))+7to`X!hk1F1UOM6qTMFHE&66SIsG4fO95J)JGGv@+Ux$*lQ{7_eD- z7Pv6FM?|2#fev&Z=kx+5@_ZSi3ZIkr_peWd+=yw^$+GP?&E+W!>r7F*Q7>5+sq0wV zt|qVEnV1l*wKPB#a*m}gl>8mNT20UYpzK}H6p#Wk R%YJ2k!GFu2_sa`s{s(RJd{h7c diff --git a/.venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/oci_config_provider.cpython-39.pyc b/.venv/lib/python3.9/site-packages/oracledb/plugins/__pycache__/oci_config_provider.cpython-39.pyc deleted file mode 100644 index b7e8b1e330873b4e4ce825b0a6904b9c7da1f5f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5323 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 diff --git a/.venv/lib/python3.9/site-packages/oracledb/plugins/azure_config_provider.py b/.venv/lib/python3.9/site-packages/oracledb/plugins/azure_config_provider.py deleted file mode 100644 index 52719f8..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/plugins/azure_config_provider.py +++ /dev/null @@ -1,274 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2024, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# azure_config_provider.py -# -# Python file contains the hook method config_azure_hook() that fetches config -# store from Azure App Configuration. -# ----------------------------------------------------------------------------- - -import json -import re - -import oracledb - -from urllib.parse import urlparse, parse_qs -from azure.appconfiguration import AzureAppConfigurationClient -from azure.keyvault.secrets import SecretClient -from azure.core.exceptions import ResourceNotFoundError -from azure.identity import ( - ClientSecretCredential, - CertificateCredential, - ManagedIdentityCredential, - ChainedTokenCredential, - EnvironmentCredential, -) - - -def _get_authentication_method(parameters): - auth_method = parameters.get("authentication", parameters.get("method")) - if auth_method is not None: - auth_method = auth_method.upper() - if auth_method == "AZURE_DEFAULT": - auth_method = None - return auth_method - - -def _get_credential(parameters): - """ - Returns the appropriate credential given the input supplied by the original - connect string. - """ - - tokens = [] - auth_method = _get_authentication_method(parameters) - - if auth_method is None or auth_method == "AZURE_SERVICE_PRINCIPAL": - if "azure_client_secret" in parameters: - tokens.append( - ClientSecretCredential( - _get_required_parameter(parameters, "azure_tenant_id"), - _get_required_parameter(parameters, "azure_client_id"), - _get_required_parameter(parameters, "azure_client_secret"), - ) - ) - elif "azure_client_certificate_path" in parameters: - tokens.append( - CertificateCredential( - _get_required_parameter(parameters, "azure_tenant_id"), - _get_required_parameter(parameters, "azure_client_id"), - _get_required_parameter( - parameters, "azure_client_certificate_path" - ), - ) - ) - if auth_method is None or auth_method == "AZURE_MANAGED_IDENTITY": - client_id = parameters.get("azure_managed_identity_client_id") - if client_id is not None: - tokens.append(ManagedIdentityCredential(client_id=client_id)) - - if len(tokens) == 0: - message = ( - "Authentication options were not available in Connection String" - ) - raise Exception(message) - elif len(tokens) == 1: - return tokens[0] - tokens.append(EnvironmentCredential()) - return ChainedTokenCredential(*tokens) - - -def _get_password(pwd_string, parameters): - try: - pwd = json.loads(pwd_string) - except json.JSONDecodeError: - message = ( - "Password is expected to be JSON" - " containing Azure Vault details." - ) - raise Exception(message) - - pwd["value"] = pwd.pop("uri") - pwd["type"] = "azurevault" - - # make authentication section - pwd["authentication"] = authentication = {} - - authentication["method"] = auth_method = _get_authentication_method( - parameters - ) - - if auth_method is None or auth_method == "AZURE_SERVICE_PRINCIPAL": - if "azure_client_secret" in parameters: - authentication["azure_tenant_id"] = _get_required_parameter( - parameters, "azure_tenant_id" - ) - authentication["azure_client_id"] = _get_required_parameter( - parameters, "azure_client_id" - ) - authentication["azure_client_secret"] = _get_required_parameter( - parameters, "azure_client_secret" - ) - - elif "azure_client_certificate_path" in parameters: - authentication["azure_tenant_id"] = ( - _get_required_parameter(parameters, "azure_tenant_id"), - ) - authentication["azure_client_id"] = ( - _get_required_parameter(parameters, "azure_client_id"), - ) - authentication["azure_client_certificate_path"] = ( - _get_required_parameter( - parameters, "azure_client_certificate_path" - ) - ) - - if auth_method is None or auth_method == "AZURE_MANAGED_IDENTITY": - authentication["azure_managed_identity_client_id"] = parameters.get( - "azure_managed_identity_client_id" - ) - return pwd - - -def _get_required_parameter(parameters, name, location="connection string"): - try: - return parameters[name] - except KeyError: - message = f'Parameter named "{name}" is missing from {location}' - raise Exception(message) from None - - -def _get_setting(client, key, sub_key, label, required=True): - """ - Returns the configuration setting given the client, key and label. - """ - try: - if key.endswith("/"): - actual_key = f"{key}{sub_key}" - else: - actual_key = f"{key}/{sub_key}" - obj = client.get_configuration_setting(key=actual_key, label=label) - except ResourceNotFoundError: - if required: - message = f"Missing required configuration key: {actual_key}" - raise Exception(message) - return None - return obj.value - - -def _parse_parameters(protocol_arg: str) -> dict: - """ - Parse the parameters from the protocol argument string. - """ - pos = protocol_arg.find("?") - parsed_url = urlparse(protocol_arg[pos + 1 :]) - parsed_values = parse_qs(parsed_url.path) - parameters = { - key.lower(): value[0] for key, value in parsed_values.items() - } - config_name = protocol_arg[:pos].rstrip("/") - if not config_name.endswith(".azconfig.io"): - config_name += ".azconfig.io" - parameters["appconfigname"] = config_name - return parameters - - -def password_type_azure_vault_hook(args): - uri = _get_required_parameter(args, "value", '"password" key section') - credential = args.get("credential") - - if credential is None: - # if credential not present, this might be coming - # from oci config provider, so create credential - # for azure key vault. - auth = args.get("authentication") - if auth is None: - raise Exception( - "Azure Vault authentication details were not provided." - ) - credential = _get_credential(auth) - - pattern = re.compile( - r"(?Phttps://[A-Za-z0-9._-]+)/" - r"secrets/(?P[A-Za-z][A-Za-z0-9-]*)$" - ) - match = pattern.match(uri) - if match is None: - raise Exception("Invalid Azure Vault details") - vault_url = match.group("vault_url") - secret_key = match.group("secretKey") - secret_client = SecretClient(vault_url, credential) - return secret_client.get_secret(secret_key).value - - -def _process_config(parameters, connect_params): - """ - Processes the configuration stored in the Azure App configuration store. - """ - - credential = _get_credential(parameters) - client = AzureAppConfigurationClient( - "https://" + _get_required_parameter(parameters, "appconfigname"), - credential, - ) - key = _get_required_parameter(parameters, "key") - label = parameters.get("label") - - # get the common parameters - config = {} - config["connect_descriptor"] = _get_setting( - client, key, "connect_descriptor", label - ) - config["user"] = _get_setting(client, key, "user", label, required=False) - pwd = _get_setting(client, key, "password", label, required=False) - if pwd is not None: - config["password"] = _get_password(pwd, parameters) - - config["config_time_to_live"] = _get_setting( - client, key, "config_time_to_live", label, required=False - ) - config["config_time_to_live_grace_period"] = _get_setting( - client, key, "config_time_to_live_grace_period", label, required=False - ) - - # get the python-oracledb specific parameters - settings = _get_setting(client, key, "pyo", label, required=False) - if settings is not None: - config["pyo"] = json.loads(settings) - - # set the configuration - connect_params.set_from_config(config) - - -def config_azure_hook(protocol, protocol_arg, connect_params): - """ - Hook for handling parameters stored in an Azure configuration store. - """ - parameters = _parse_parameters(protocol_arg) - _process_config(parameters, connect_params) - - -oracledb.register_password_type("azurevault", password_type_azure_vault_hook) -oracledb.register_protocol("config-azure", config_azure_hook) diff --git a/.venv/lib/python3.9/site-packages/oracledb/plugins/azure_tokens.py b/.venv/lib/python3.9/site-packages/oracledb/plugins/azure_tokens.py deleted file mode 100644 index aef484c..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/plugins/azure_tokens.py +++ /dev/null @@ -1,162 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2024, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# azure_tokens.py -# -# Methods that generates an OAuth2 access token using the MSAL SDK -# ----------------------------------------------------------------------------- - -import datetime -import enum - -import msal -import oracledb - - -class AuthType(str, enum.Enum): - AzureServicePrincipal = "AzureServicePrincipal".lower() - - -def _build_msal_app(params): - return msal.ConfidentialClientApplication( - client_id=params["client_id"], - client_credential=params["client_credential"], - authority=params["authority"], - ) - - -def _service_principal_credentials(token_auth_config): - """ - Returns the access token for authentication as a service principal. - """ - # Initialize the Confidential Client Application - cca = _build_msal_app(token_auth_config) - auth_response = cca.acquire_token_for_client( - scopes=[token_auth_config["scopes"]] - ) - - if "access_token" in auth_response: - return auth_response["access_token"] - - -def get_database_access_token(deepsec_params, user_token): - auth_flow = deepsec_params.get("auth_flow") - if auth_flow == "client_credentials": - return get_database_access_token_client_cred_flow(deepsec_params) - elif auth_flow == "on_behalf_of": - return get_database_access_token_obo_flow(deepsec_params, user_token) - else: - raise ValueError(f"Incorrect value for auth_flow: {auth_flow}.") - - -def get_database_access_token_client_cred_flow(deepsec_params): - key = ( - deepsec_params["authority"], - deepsec_params["client_id"], - deepsec_params["client_credential"], - deepsec_params["scopes"], - ) - secret_value = oracledb.get_secret(key) - if secret_value is not None: - return secret_value.value - - # fetch fresh token, if not present in cache - app = _build_msal_app(deepsec_params) - result = app.acquire_token_for_client(scopes=[deepsec_params["scopes"]]) - if "access_token" not in result: - raise Exception(f"Token acquisition failed: {result}") - - token = result.get("access_token") - expires_in = result.get("expires_in") - expires = datetime.datetime.fromtimestamp( - expires_in - 60, datetime.timezone.utc - ) - oracledb.save_secret(key, token, expires=expires) - return token - - -def get_database_access_token_obo_flow(deepsec_params, user_token): - key = ( - user_token, - deepsec_params["authority"], - deepsec_params["client_id"], - deepsec_params["client_credential"], - deepsec_params["scopes"], - ) - secret_value = oracledb.get_secret(key) - if secret_value is not None: - return secret_value.value - - # fetch fresh token, if not present in cache - app = _build_msal_app(deepsec_params) - result = app.acquire_token_on_behalf_of( - user_assertion=user_token, - scopes=[deepsec_params["scopes"]], - ) - if "access_token" not in result: - raise Exception(f"OBO token acquisition failed: {result}") - - token = result.get("access_token") - expires_in = result.get("expires_in") - expires = datetime.datetime.fromtimestamp( - expires_in - 60, datetime.timezeon.utc - ) - oracledb.save_secret(key, token, expires=expires) - return token - - -def generate_token(token_auth_config, refresh=False): - """ - Generates an Azure access token based on provided credentials. - """ - auth_type = token_auth_config["auth_type"].lower() - if auth_type == AuthType.AzureServicePrincipal: - return _service_principal_credentials(token_auth_config) - - -def has_azure_auth_type(extra_auth_params): - """ - Validates that extra_auth_params contains a valid 'auth_type' - """ - if extra_auth_params is None: - return False - auth_type = extra_auth_params.get("auth_type") - return auth_type is not None and auth_type.lower() in AuthType - - -def azure_token_hook(params: oracledb.ConnectParams): - """ - Azure-specific hook for generating a token. - """ - if has_azure_auth_type(params.extra_auth_params): - - def token_callback(refresh): - return generate_token(params.extra_auth_params, refresh) - - params.set(access_token=token_callback) - - -# Register the token hook for Azure -oracledb.register_params_hook(azure_token_hook) diff --git a/.venv/lib/python3.9/site-packages/oracledb/plugins/end_user_sec_provider.py b/.venv/lib/python3.9/site-packages/oracledb/plugins/end_user_sec_provider.py deleted file mode 100644 index c171067..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/plugins/end_user_sec_provider.py +++ /dev/null @@ -1,136 +0,0 @@ -# ------------------------------------------------------------------------------ -# Copyright (c) 2026 Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ------------------------------------------------------------------------------ - -# ------------------------------------------------------------------------------ -# end_user_sec_provider.pyx -# -# Python file that automates token retrieval and context setup. -# ------------------------------------------------------------------------------ - -import importlib -import json -import oracledb - -# key to use in thread local cache -END_USER_IDENTITY_KEY = "EUC_END_USER_IDENTITY" - - -def set_end_user_identity(value): - if not ( - value is None - or isinstance(value, str) - or ( - isinstance(value, (list, tuple)) - and len(value) == 2 - and all(isinstance(v, str) for v in value) - ) - ): - raise ValueError( - "End user identity must be None, a string or a 2-tuple " - "(end_user_name, key) and each entry in the tuple must be a string" - ) - oracledb.save_secret( - END_USER_IDENTITY_KEY, - json.dumps(value), - thread_local=True, - ) - - -def get_end_user_identity(): - secret = oracledb.get_secret(END_USER_IDENTITY_KEY, thread_local=True) - if secret is not None: - return json.loads(secret.value) - - -# Django specific Middleware -class EndUserSecMiddleware: - def __init__(self, get_response): - self.get_response = get_response - - def __call__(self, request): - identity = None - try: - identity = json.loads(request.COOKIES["identity"]) - except KeyError: - auth_header = request.META.get("HTTP_AUTHORIZATION") - if auth_header is not None and auth_header.startswith("Bearer "): - identity = auth_header.split()[1] - set_end_user_identity(identity) - return self.get_response(request) - - -def validate_context_value(identity, auth_flow): - """ - Returns (end_user_name, key) or end_user_token. - - - If value is a string => (OBO can be used) - - If value is a tuple/list => (OBO should not be used) - expected format: (end_user_name, key) - """ - if auth_flow == "on_behalf_of" and isinstance(identity, (tuple, list)): - raise ValueError( - "auth_flow='on_behalf_of': cannot be used with " - "(end_user_name, key)." - ) - - -def get_end_user_sec_context(end_user_sec_params, identity): - spi_type = end_user_sec_params["spi_type"] - supporting_plugin = importlib.import_module(f"oracledb.plugins.{spi_type}") - database_access_token = supporting_plugin.get_database_access_token( - end_user_sec_params, identity - ) - return oracledb.create_end_user_security_context( - end_user_identity=identity, - database_access_token=database_access_token, - data_roles=end_user_sec_params.get("data_roles"), - attributes=end_user_sec_params.get("attributes"), - ) - - -def has_security_params(extra_auth_params): - return bool( - extra_auth_params and extra_auth_params.get("end_user_sec_params") - ) - - -def end_user_sec_context_hook(params: oracledb.ConnectParams): - if has_security_params(params.extra_auth_params): - end_user_sec_params = params.extra_auth_params["end_user_sec_params"] - - def on_connect_callback(connection: oracledb.Connection): - auth_flow = end_user_sec_params["auth_flow"] - identity = get_end_user_identity() - if identity is not None: - validate_context_value(identity, auth_flow) - context = get_end_user_sec_context( - end_user_sec_params, identity - ) - connection.set_end_user_security_context(context) - - params.set(on_connect_callback=on_connect_callback) - - -# Register the hook for end_user_sec_provider -oracledb.register_params_hook(end_user_sec_context_hook) diff --git a/.venv/lib/python3.9/site-packages/oracledb/plugins/oci_config_provider.py b/.venv/lib/python3.9/site-packages/oracledb/plugins/oci_config_provider.py deleted file mode 100644 index 7abf3aa..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/plugins/oci_config_provider.py +++ /dev/null @@ -1,253 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2024, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# oci_config_provider.py -# -# Python file contains the hook method config_oci_hook() that fetches config -# store from OCI Object Storage. -# ----------------------------------------------------------------------------- - -import base64 -import json -import oci -import oracledb -import re - -from urllib.parse import urlparse, parse_qs - -oci_from_file = oci.config.from_file -oci_client_error = oci.exceptions.ClientError -oci_object_storage_client = oci.object_storage.ObjectStorageClient -oci_secrets_client = oci.secrets.SecretsClient - - -""" -Pattern to parse OCI Object Connect String -""" -cloud_net_naming_pattern_oci = re.compile( - r"(?P[^/]+)/n/(?P[^/]+)/b/(?P[^/]+)/o/(?P[^/]+)(/c/(?P[^/]+))?" -) - - -def _get_config(parameters, connect_params): - config = {} - - credential, signer = _get_credential(parameters) - auth_method = parameters.get("authentication") - if auth_method is not None: - auth_method = auth_method.upper() - - if auth_method is None or auth_method == "OCI_DEFAULT": - client_oci = oci_object_storage_client(credential) - elif ( - auth_method == "OCI_INSTANCE_PRINCIPAL" - or auth_method == "OCI_RESOURCE_PRINCIPAL" - ): - client_oci = oci_object_storage_client( - config=credential, signer=signer - ) - get_object_request = { - "object_name": _get_required_parameter(parameters, "filename"), - "bucket_name": _get_required_parameter(parameters, "bucketname"), - "namespace_name": _get_required_parameter(parameters, "namespace"), - } - - get_object_response = client_oci.get_object(**get_object_request) - resp = _stream_to_string(get_object_response.data) - settings = json.loads(resp) - user_alias = parameters.get("alias") - if user_alias: - settings = settings[user_alias] - - # Connect Descriptor - config["connect_descriptor"] = _get_required_parameter( - settings, "connect_descriptor" - ) - - # user and password - if connect_params.user is None: - config["user"] = settings.get("user") - if "password" in settings: - config["password"] = pwd = settings["password"] - if pwd["type"] == "ocivault": - authentication = pwd.setdefault("authentication", {}) - authentication.setdefault("method", auth_method) - authentication["credential"] = credential - - # config cache settings - config["config_time_to_live"] = settings.get("config_time_to_live") - config["config_time_to_live_grace_period"] = settings.get( - "config_time_to_live_grace_period" - ) - - # pyo parameters settings - config["pyo"] = settings.get("pyo", None) - - # set the configuration - connect_params.set_from_config(config) - - -def _get_credential(parameters): - """ - Returns the appropriate credential given the input supplied by the original - connect string. - """ - auth_method = parameters.get("authentication", parameters.get("method")) - - if auth_method is not None: - auth_method = auth_method.upper() - - # if region is not in connection string, retrieve from object server name. - region = parameters.get( - "oci_region", _retrieve_region(parameters.get("objservername")) - ) - - try: - if auth_method is None or auth_method == "OCI_DEFAULT": - # Default Authentication - # default path ~/.oci/config - return oci_from_file(), None - except oci.exceptions.ClientError: - # try to create config with connection string parameters. - if "oci_tenancy" in parameters and "oci_user" in parameters: - with open(parameters["oci_key_file"], "r") as file_content: - public_key = file_content.read() - provider = dict( - tenancy=parameters["oci_tenancy"], - user=parameters["oci_user"], - fingerprint=parameters["oci_fingerprint"], - key_file=parameters["oci_key_file"], - private_key_content=public_key, - region=region, - ) - return provider, None - - if auth_method == "OCI_INSTANCE_PRINCIPAL": - signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner() - return ( - dict(region=region), - signer, - ) - - elif auth_method == "OCI_RESOURCE_PRINCIPAL": - signer = oci.auth.signers.get_resource_principals_signer() - return {}, signer - else: - msg = "Authentication options were not available in Connection String" - raise Exception(msg) - - -def _get_required_parameter(parameters, name, location="connection string"): - try: - return parameters[name] - except KeyError: - message = f'Parameter named "{name}" is missing from {location}' - raise Exception(message) from None - - -def _parse_parameters(protocol_arg: str) -> dict: - """ - Parse the parameters from the protocol argument string. - """ - pos = protocol_arg.find("?") - parsed_url = urlparse(protocol_arg[pos + 1 :]) - parsed_values = parse_qs(parsed_url.path) - parameters = { - key.lower(): value[0] for key, value in parsed_values.items() - } - - match = cloud_net_naming_pattern_oci.match(protocol_arg[:pos]) - if match: - parameters["objservername"] = match.group("objservername") - parameters["namespace"] = match.group("namespace") - parameters["bucketname"] = match.group("bucketname") - parameters["filename"] = match.group("filename") - if match.group("alias"): - parameters["alias"] = match.group("alias") - return parameters - - -def password_type_oci_vault_hook(args): - secret_id = _get_required_parameter( - args, "value", '"password" key section' - ) - authentication = args.get("authentication") - if authentication is None: - raise Exception( - "OCI Key Vault authentication details were not provided." - ) - - # if credentials are not present, create credentials with given - # authentication details. - credential = authentication.get("credential") - if credential is None: - credential, signer = _get_credential(authentication) - - auth_method = authentication.get("method") - if auth_method is not None: - auth_method = auth_method.upper() - if auth_method is None or auth_method == "OCI_DEFAULT": - secret_client_oci = oci_secrets_client(credential) - elif auth_method == "OCI_INSTANCE_PRINCIPAL": - signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner() - secret_client_oci = oci_secrets_client( - config=credential, signer=signer - ) - elif auth_method == "OCI_RESOURCE_PRINCIPAL": - signer = oci.auth.signers.get_resource_principals_signer() - secret_client_oci = oci_secrets_client( - config=credential, signer=signer - ) - - get_secret_bundle_response = secret_client_oci.get_secret_bundle( - secret_id=secret_id - ) - # decoding the vault content - b64content = get_secret_bundle_response.data.secret_bundle_content.content - return base64.b64decode(b64content).decode() - - -def _retrieve_region(objservername): - if objservername is not None: - arr = objservername.split(".") - return arr[1].lower().replace("_", "-") - - -def _stream_to_string(stream): - return b"".join(stream).decode() - - -def config_oci_hook( - protocol: str, protocol_arg: str, connect_params: oracledb.ConnectParams -): - """ - Hook for handling parameters stored in an OCI Object store. - """ - parameters = _parse_parameters(protocol_arg) - _get_config(parameters, connect_params) - - -oracledb.register_password_type("ocivault", password_type_oci_vault_hook) -oracledb.register_protocol("config-ociobject", config_oci_hook) diff --git a/.venv/lib/python3.9/site-packages/oracledb/plugins/oci_tokens.py b/.venv/lib/python3.9/site-packages/oracledb/plugins/oci_tokens.py deleted file mode 100644 index 80319e6..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/plugins/oci_tokens.py +++ /dev/null @@ -1,292 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2024, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# oci_tokens.py -# -# Methods that generates an OCI access token using the OCI SDK -# ----------------------------------------------------------------------------- - -import base64 -import datetime -import enum -import pathlib - -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives.asymmetric import rsa -import oci -import oracledb -import requests - - -class AuthType(str, enum.Enum): - ConfigFileAuthentication = "ConfigFileAuthentication".lower() - InstancePrincipal = "InstancePrincipal".lower() - ResourcePrincipal = "ResourcePrincipal".lower() - SecurityToken = "SecurityToken".lower() - SecurityTokenSimple = "SecurityTokenSimple".lower() - SimpleAuthentication = "SimpleAuthentication".lower() - - -def _config_file_based_authentication(token_auth_config): - """ - Config file base authentication implementation: config parameters - are provided in a file. - """ - config = _load_oci_config(token_auth_config) - client = oci.identity_data_plane.DataplaneClient(config) - return _generate_access_token(client, token_auth_config) - - -def _generate_access_token(client, token_auth_config): - """ - Token generation logic used by authentication methods. - """ - key_pair = _get_key_pair() - scope = token_auth_config.get("scope", "urn:oracle:db::id::*") - - details = oci.identity_data_plane.models.GenerateScopedAccessTokenDetails( - scope=scope, public_key=key_pair["public_key"] - ) - response = client.generate_scoped_access_token( - generate_scoped_access_token_details=details - ) - - return (response.data.token, key_pair["private_key"]) - - -def _get_key_pair(): - """ - Generates a public-private key pair for proof of possession. - """ - private_key = rsa.generate_private_key( - public_exponent=65537, - key_size=4096, - ) - private_key_pem = private_key.private_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PrivateFormat.PKCS8, - encryption_algorithm=serialization.NoEncryption(), - ).decode("utf-8") - - public_key_pem = ( - private_key.public_key() - .public_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PublicFormat.SubjectPublicKeyInfo, - ) - .decode("utf-8") - ) - - if not oracledb.is_thin_mode(): - private_key_pem = "".join( - line.strip() - for line in private_key_pem.splitlines() - if not ( - line.startswith("-----BEGIN") or line.startswith("-----END") - ) - ) - - return {"private_key": private_key_pem, "public_key": public_key_pem} - - -def _instance_principal_authentication(token_auth_config): - """ - Instance principal authentication: for compute instances - with dynamic group access. - """ - signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner() - client = oci.identity_data_plane.DataplaneClient(config={}, signer=signer) - return _generate_access_token(client, token_auth_config) - - -def _load_oci_config(token_auth_config): - """ - Load OCI configuration using the file location and profile specified - in token_auth_config, or fall back to OCI defaults. - """ - file_location = token_auth_config.get( - "file_location", oci.config.DEFAULT_LOCATION - ) - profile = token_auth_config.get("profile", oci.config.DEFAULT_PROFILE) - config = oci.config.from_file(file_location, profile) - return config - - -def _resource_principal_authentication(token_auth_config): - """ - Resource principal authentication: allows to access OCI resources - with a resource principal. - """ - signer = oci.auth.signers.get_resource_principals_signer() - client = oci.identity_data_plane.DataplaneClient(config={}, signer=signer) - return _generate_access_token(client, token_auth_config) - - -def _security_token_authentication(token_auth_config): - """ - Session token-based authentication: uses the security token specified by - the security_token_file parameter based on the OCI config file. - """ - config = _load_oci_config(token_auth_config) - client = _security_token_create_dataplane_client(config) - return _generate_access_token(client, token_auth_config) - - -def _security_token_create_dataplane_client(config): - """ - Create and return an OCI Identity Data Plane client using - the security token and private key specified in the given OCI config. - """ - token = pathlib.Path(config["security_token_file"]).read_text() - private_key = oci.signer.load_private_key_from_file(config["key_file"]) - signer = oci.auth.signers.SecurityTokenSigner(token, private_key) - return oci.identity_data_plane.DataplaneClient(config, signer=signer) - - -def _security_token_simple_authentication(token_auth_config): - """ - Session token-based authentication: uses security token authentication. - Config parameters are passed as parameters. - """ - config = { - "key_file": token_auth_config["key_file"], - "fingerprint": token_auth_config["fingerprint"], - "tenancy": token_auth_config["tenancy"], - "region": token_auth_config["region"], - "security_token_file": token_auth_config["security_token_file"], - } - client = _security_token_create_dataplane_client(config) - return _generate_access_token(client, token_auth_config) - - -def _simple_authentication(token_auth_config): - """ - Simple authentication: config parameters are passed as parameters - """ - config = { - "user": token_auth_config["user"], - "key_file": token_auth_config["key_file"], - "fingerprint": token_auth_config["fingerprint"], - "tenancy": token_auth_config["tenancy"], - "region": token_auth_config["region"], - "profile": token_auth_config["profile"], - } - - client = oci.identity_data_plane.DataplaneClient(config) - return _generate_access_token(client, token_auth_config) - - -def get_database_access_token(deepsec_params, user_token): - auth_flow = deepsec_params.get("auth_flow") - if auth_flow == "client_credentials": - return get_database_access_token_client_cred_flow(deepsec_params) - else: - raise ValueError(f"Incorrect value for auth_flow: {auth_flow}.") - - -# Function to get mid-tier app access token (OCI-IAM) -def get_database_access_token_client_cred_flow(end_user_sec_params): - key = ( - end_user_sec_params["authority"], - end_user_sec_params["client_id"], - end_user_sec_params["client_credential"], - end_user_sec_params["scopes"], - ) - secret_value = oracledb.get_secret(key) - if secret_value is not None: - return secret_value.value - - # fetch fresh token, if not present in cache - auth_str = f"{end_user_sec_params.get('client_id')}:{end_user_sec_params.get('client_credential')}" - b64_auth = base64.b64encode(auth_str.encode()).decode() - headers = { - "Authorization": f"Basic {b64_auth}", - "Content-Type": "application/x-www-form-urlencoded", - } - payload = { - "grant_type": "client_credentials", - "scope": end_user_sec_params.get("scopes"), - } - response = requests.post( - end_user_sec_params.get("authority"), headers=headers, data=payload - ) - if response.status_code == 200: - result = response.json() - token = result.get("access_token") - expires_in = result.get("expires_in") - else: - raise RuntimeError(f"Token request failed: {response.status_code}") - - # save token in the cache - expires = datetime.datetime.fromtimestamp( - expires_in - 60, datetime.timezone.utc - ) - oracledb.save_secret(key, token, expires=expires) - return token - - -def generate_token(token_auth_config, refresh=False): - """ - Generates an OCI access token based on provided credentials. - """ - auth_type = token_auth_config["auth_type"].lower() - if auth_type == AuthType.ConfigFileAuthentication: - return _config_file_based_authentication(token_auth_config) - elif auth_type == AuthType.InstancePrincipal: - return _instance_principal_authentication(token_auth_config) - elif auth_type == AuthType.ResourcePrincipal: - return _resource_principal_authentication(token_auth_config) - elif auth_type == AuthType.SecurityToken: - return _security_token_authentication(token_auth_config) - elif auth_type == AuthType.SecurityTokenSimple: - return _security_token_simple_authentication(token_auth_config) - elif auth_type == AuthType.SimpleAuthentication: - return _simple_authentication(token_auth_config) - - -def has_oci_auth_type(extra_auth_params): - """ - Validates that extra_auth_params contains a valid 'auth_type' - """ - if extra_auth_params is None: - return False - auth_type = extra_auth_params.get("auth_type") - return auth_type is not None and auth_type.lower() in AuthType - - -def oci_token_hook(params: oracledb.ConnectParams): - """ - OCI-specific hook for generating a token. - """ - if has_oci_auth_type(params.extra_auth_params): - - def token_callback(refresh): - return generate_token(params.extra_auth_params, refresh) - - params.set(access_token=token_callback) - - -# Register the token hook for OCI -oracledb.register_params_hook(oci_token_hook) diff --git a/.venv/lib/python3.9/site-packages/oracledb/pool.py b/.venv/lib/python3.9/site-packages/oracledb/pool.py deleted file mode 100644 index 1dc8932..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/pool.py +++ /dev/null @@ -1,1723 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2020, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# pool.py -# -# Contains the ConnectionPool class and the factory method create_pool() used -# for creating connection pools. -# -# *** NOTICE *** This file is generated from a template and should not be -# modified directly. See build_from_template.py in the utils subdirectory for -# more information. -# ----------------------------------------------------------------------------- - -import functools -import ssl -import threading -from typing import Callable, Type, Union, Any, Optional - -import oracledb - -from . import base_impl, thick_impl, thin_impl -from . import connection as connection_module -from . import driver_mode -from . import errors -from .base import BaseMetaClass -from .pool_params import PoolParams - - -class BaseConnectionPool(metaclass=BaseMetaClass): - _impl = None - - def __init__( - self, - dsn: Optional[str] = None, - *, - params: Optional[PoolParams] = None, - cache_name: Optional[str] = None, - **kwargs, - ) -> None: - """ - Constructor for creating a connection pool. - """ - if params is None: - params_impl = base_impl.PoolParamsImpl() - elif not isinstance(params, PoolParams): - errors._raise_err(errors.ERR_INVALID_POOL_PARAMS) - else: - params_impl = params._impl.copy() - with driver_mode.get_manager() as mode_mgr: - thin = mode_mgr.thin - dsn = params_impl.process_args(dsn, kwargs, thin) - self._set_connection_type(params_impl.connectiontype) - self._cache_name = cache_name - if cache_name is not None: - named_pools.add_pool(cache_name, self) - try: - if issubclass( - self._connection_type, connection_module.AsyncConnection - ): - impl = thin_impl.AsyncThinPoolImpl(dsn, params_impl) - elif thin: - impl = thin_impl.ThinPoolImpl(dsn, params_impl) - else: - impl = thick_impl.ThickPoolImpl(dsn, params_impl) - self._impl = impl - self.session_callback = params_impl.session_callback - self.on_connect_callback = params_impl.on_connect_callback - except: - if cache_name is not None: - del named_pools.pools[cache_name] - raise - - def _verify_open(self) -> None: - """ - Verifies that the pool is open and able to perform its work. - """ - if self._impl is None: - errors._raise_err(errors.ERR_POOL_NOT_OPEN) - - @property - def busy(self) -> int: - """ - This read-only attribute returns the number of connections currently - acquired. - """ - self._verify_open() - return self._impl.get_busy_count() - - @property - def dsn(self) -> str: - """ - This read-only attribute returns the TNS entry of the database to which - a connection has been established. - """ - self._verify_open() - return self._impl.dsn - - @property - def getmode(self) -> oracledb.PoolGetMode: - """ - This read-write attribute determines how connections are returned from - the pool. If :data:`~oracledb.POOL_GETMODE_FORCEGET` is specified, a - new connection will be returned even if there are no free connections - in the pool. :data:`~oracledb.POOL_GETMODE_NOWAIT` will raise an - exception if there are no free connections are available in the pool. - If :data:`~oracledb.POOL_GETMODE_WAIT` is specified and there are no - free connections in the pool, the caller will wait until a free - connection is available. :data:`~oracledb.POOL_GETMODE_TIMEDWAIT` uses - the value of :data:`~ConnectionPool.wait_timeout` to determine how long - the caller should wait for a connection to become available before - returning an error. - """ - self._verify_open() - return oracledb.PoolGetMode(self._impl.get_getmode()) - - @getmode.setter - def getmode(self, value: oracledb.PoolGetMode) -> None: - self._verify_open() - self._impl.set_getmode(value) - - @property - def homogeneous(self) -> bool: - """ - This read-only boolean attribute indicates whether the pool is - considered :ref:`homogeneous ` or not. If the pool is - not homogeneous, different authentication can be used for each - connection acquired from the pool. - """ - self._verify_open() - return self._impl.homogeneous - - @property - def increment(self) -> int: - """ - This read-only attribute returns the number of connections that will be - established when additional connections need to be created. - """ - self._verify_open() - return self._impl.increment - - @property - def max(self) -> int: - """ - This read-only attribute returns the maximum number of connections that - the pool can control. - """ - self._verify_open() - return self._impl.max - - @property - def max_lifetime_session(self) -> int: - """ - This read-write attribute is the maximum length of time (in seconds) - that a pooled connection may exist since first being created. A value - of *0* means there is no limit. Connections become candidates for - termination when they are acquired or released back to the pool, and - have existed for longer than ``max_lifetime_session`` seconds. - Connections that are in active use will not be closed. In - python-oracledb Thick mode, Oracle Client libraries 12.1 or later must - be used and, prior to Oracle Client 21, cleanup only occurs when the - pool is accessed. - """ - self._verify_open() - return self._impl.get_max_lifetime_session() - - @max_lifetime_session.setter - def max_lifetime_session(self, value: int) -> None: - self._verify_open() - self._impl.set_max_lifetime_session(value) - - @property - def max_sessions_per_shard(self) -> int: - """ - This read-write attribute returns the number of sessions that can be - created per shard in the pool. Setting this attribute greater than zero - specifies the maximum number of sessions in the pool that can be used - for any given shard in a sharded database. This lets connections in the - pool be balanced across the shards. A value of *0* will not set any - maximum number of sessions for each shard. This attribute is only - available in Oracle Client 18.3 and higher. - """ - self._verify_open() - return self._impl.get_max_sessions_per_shard() - - @max_sessions_per_shard.setter - def max_sessions_per_shard(self, value: int) -> None: - self._verify_open() - self._impl.set_max_sessions_per_shard(value) - - @property - def min(self) -> int: - """ - This read-only attribute returns the number of connections with which - the connection pool was created and the minimum number of connections - that will be controlled by the connection pool. - """ - self._verify_open() - return self._impl.min - - @property - def name(self) -> str: - """ - This read-only attribute returns the name assigned to the pool by - Oracle. - """ - self._verify_open() - return self._impl.name - - @property - def opened(self) -> int: - """ - This read-only attribute returns the number of connections currently - opened by the pool. - """ - self._verify_open() - return self._impl.get_open_count() - - @property - def ping_interval(self) -> int: - """ - This read-write integer attribute specifies the pool ping interval in - seconds. When a connection is acquired from the pool, a check is first - made to see how long it has been since the connection was put into the - pool. If this idle time exceeds ``ping_interval``, then a - :ref:`round-trip ` ping to the database is performed. If - the connection is unusable, it is discarded and a different connection - is selected to be returned by :meth:`acquire()`. Setting - ``ping_interval`` to a negative value disables pinging. Setting it to - *0* forces a ping for every :meth:`acquire()` and is not recommended. - """ - self._verify_open() - return self._impl.get_ping_interval() - - @ping_interval.setter - def ping_interval(self, value: int) -> None: - self._impl.set_ping_interval(value) - - @property - def soda_metadata_cache(self) -> bool: - """ - This read-write boolean attribute returns whether the SODA metadata - cache is enabled or not. Enabling the cache significantly improves the - performance of methods :meth:`SodaDatabase.createCollection()` (when - not specifying a value for the ``metadata`` parameter) and - :meth:`SodaDatabase.openCollection()`. Note that the cache can become - out of date if changes to the metadata of cached collections are made - externally. - """ - self._verify_open() - return self._impl.get_soda_metadata_cache() - - @soda_metadata_cache.setter - def soda_metadata_cache(self, value: bool) -> None: - if not isinstance(value, bool): - message = "soda_metadata_cache must be a boolean value." - raise TypeError(message) - self._verify_open() - self._impl.set_soda_metadata_cache(value) - - @property - def stmtcachesize(self) -> int: - """ - This read-write attribute specifies the size of the statement cache - that will be used for connections obtained from the pool. Once a - connection is created, that connection’s statement cache size can only - be changed by setting the ``stmtcachesize`` attribute on the connection - itself. - """ - self._verify_open() - return self._impl.get_stmt_cache_size() - - @stmtcachesize.setter - def stmtcachesize(self, value: int) -> None: - self._verify_open() - self._impl.set_stmt_cache_size(value) - - @property - def thin(self) -> bool: - """ - This read-only attribute returns a boolean indicating if - python-oracledb is in Thin mode (*True*) or Thick mode (*False*). - """ - self._verify_open() - return not isinstance(self._impl, thick_impl.ThickPoolImpl) - - @property - def timeout(self) -> int: - """ - This read-write attribute specifies the time (in seconds) after which - idle connections will be terminated in order to maintain an optimum - number of open connections. A value of *0* means that no idle - connections are terminated. Note that in python-oracledb Thick mode - with older Oracle Client Libraries, the termination only occurs when - the pool is accessed. - """ - self._verify_open() - return self._impl.get_timeout() - - @timeout.setter - def timeout(self, value: int) -> None: - self._verify_open() - self._impl.set_timeout(value) - - @property - def tnsentry(self) -> str: - """ - Deprecated. Use dsn instead. - """ - return self.dsn - - @property - def username(self) -> str: - """ - This read-only attribute returns the name of the user which established - the connection to the database. - """ - self._verify_open() - return self._impl.username - - @property - def wait_timeout(self) -> int: - """ - This read-write attribute specifies the time (in milliseconds) that the - caller should wait for a connection to become available in the pool - before returning with an error. This value is only used if the - ``getmode`` parameter to :meth:`oracledb.create_pool()` was the value - :data:`oracledb.POOL_GETMODE_TIMEDWAIT`. - """ - self._verify_open() - return self._impl.get_wait_timeout() - - @wait_timeout.setter - def wait_timeout(self, value: int) -> None: - self._verify_open() - self._impl.set_wait_timeout(value) - - -class ConnectionPool(BaseConnectionPool): - - def __del__(self): - if self._impl is not None: - self._impl.close(True) - self._impl = None - - def _set_connection_type(self, conn_class): - """ - Called internally when the pool is created to ensure that the correct - connection class is used for all connections created by the pool. - """ - if conn_class is None: - conn_class = connection_module.Connection - elif not issubclass( - conn_class, connection_module.Connection - ) or issubclass(conn_class, connection_module.AsyncConnection): - errors._raise_err(errors.ERR_INVALID_CONN_CLASS) - self._connection_type = conn_class - - def acquire( - self, - user: Optional[str] = None, - password: Optional[str] = None, - cclass: Optional[str] = None, - purity: int = oracledb.PURITY_DEFAULT, - tag: Optional[str] = None, - matchanytag: bool = False, - shardingkey: Optional[list] = None, - supershardingkey: Optional[list] = None, - ) -> "connection_module.Connection": - """ - Acquires a connection from the session pool and returns a - :ref:`connection object `. - - If the pool is :ref:`homogeneous `, the ``user`` and - ``password`` parameters cannot be specified. If they are, an exception - will be raised. - - The ``cclass`` parameter, if specified, should be a string - corresponding to the connection class for :ref:`drcp`. - - The ``purity`` parameter is expected to be one of - :data:`~oracledb.PURITY_NEW`, :data:`~oracledb.PURITY_SELF`, or - :data:`~oracledb.PURITY_DEFAULT`. - - The ``tag`` parameter, if specified, is expected to be a string with - name=value pairs like "k1=v1;k2=v2" and will limit the connections that - can be returned from a connection pool unless the ``matchanytag`` - parameter is set to *True*. In that case, connections with the - specified tag will be preferred over others, but if no such connections - are available, then a connection with a different tag may be returned - instead. In any case, untagged connections will always be returned if - no connections with the specified tag are available. Connections are - tagged when they are :meth:`released ` back to - the pool. - - The ``shardingkey`` and ``supershardingkey`` parameters, if specified, - are expected to be a sequence of values which will be used to identify - the database shard to connect to. The key values can be strings, - numbers, bytes, or dates. See :ref:`connsharding`. - - When using the :ref:`connection pool cache `, calling - :meth:`oracledb.connect()` with a ``pool_alias`` parameter is the same - as calling ``pool.acquire()``. - """ - self._verify_open() - - return oracledb.connect( - conn_class=self._connection_type, - user=user, - password=password, - cclass=cclass, - purity=purity, - tag=tag, - matchanytag=matchanytag, - shardingkey=shardingkey, - supershardingkey=supershardingkey, - on_connect_callback=self.on_connect_callback, - pool=self, - ) - - def close(self, force: bool = False) -> None: - """ - Closes the pool now, rather than when the last reference to it is - released, which makes it unusable for further work. - - If any connections have been acquired and not released back to the - pool, this method will fail unless the ``force`` parameter is set to - *True*. - """ - self._verify_open() - self._impl.close(force) - if self._cache_name is not None: - named_pools.remove_pool(self._cache_name) - self._impl = None - - def drop(self, connection: "connection_module.Connection") -> None: - """ - Drops the connection from the pool which is useful if the connection is - no longer usable (such as when the session is killed). - """ - self._verify_open() - if not isinstance(connection, connection_module.Connection): - message = "connection must be an instance of oracledb.Connection" - raise TypeError(message) - connection._verify_connected() - self._impl.drop(connection._impl) - connection._impl = None - - def reconfigure( - self, - min: Optional[int] = None, - max: Optional[int] = None, - increment: Optional[int] = None, - getmode: Optional[int] = None, - timeout: Optional[int] = None, - wait_timeout: Optional[int] = None, - max_lifetime_session: Optional[int] = None, - max_sessions_per_shard: Optional[int] = None, - soda_metadata_cache: Optional[bool] = None, - stmtcachesize: Optional[int] = None, - ping_interval: Optional[int] = None, - ) -> None: - """ - Reconfigures various parameters of a connection pool. The pool size can - be altered with ``reconfigure()`` by passing values for - :data:`~ConnectionPool.min`, :data:`~ConnectionPool.max` or - :data:`~ConnectionPool.increment`. The - :data:`~ConnectionPool.getmode`, :data:`~ConnectionPool.timeout`, - :data:`~ConnectionPool.wait_timeout`, - :data:`~ConnectionPool.max_lifetime_session`, - :data:`~ConnectionPool.max_sessions_per_shard`, - :data:`~ConnectionPool.soda_metadata_cache`, - :data:`~ConnectionPool.stmtcachesize` and - :data:`~ConnectionPool.ping_interval` attributes can be set directly or - with ``reconfigure()``. - - All parameters are optional. Unspecified parameters will leave those - pool attributes unchanged. The parameters are processed in two stages. - After any size change has been processed, reconfiguration on the other - parameters is done sequentially. If an error such as an invalid value - occurs when changing one attribute, then an exception will be generated - but any already changed attributes will retain their new values. - - During reconfiguration of a pool's size, the behavior of - :meth:`ConnectionPool.acquire()` depends on the ``getmode`` in effect - when ``acquire()`` is called: - - * With mode :data:`~oracledb.POOL_GETMODE_FORCEGET`, an ``acquire()`` - call will wait until the pool has been reconfigured. - - * With mode :data:`~oracledb.POOL_GETMODE_TIMEDWAIT`, an ``acquire()`` - call will try to acquire a connection in the time specified by - pool.wait_timeout and return an error if the time taken exceeds that - value. - - * With mode :data:`~oracledb.POOL_GETMODE_WAIT`, an ``acquire()`` call - will wait until after the pool has been reconfigured and a connection - is available. - - * With mode :data:`~oracledb.POOL_GETMODE_NOWAIT`, if the number of - busy connections is less than the pool size, ``acquire()`` will - return a new connection after pool reconfiguration is complete. - - Closing connections with :meth:`ConnectionPool.release()` or - :meth:`Connection.close()` will wait until any pool size - reconfiguration is complete. - - Closing the connection pool with :meth:`ConnectionPool.close()` will - wait until reconfiguration is complete. - """ - - if min is None: - min = self.min - if max is None: - max = self.max - if increment is None: - increment = self.increment - if self.min != min or self.max != max or self.increment != increment: - self._impl.reconfigure(min, max, increment) - if getmode is not None: - self.getmode = getmode - if timeout is not None: - self.timeout = timeout - if wait_timeout is not None: - self.wait_timeout = wait_timeout - if max_lifetime_session is not None: - self.max_lifetime_session = max_lifetime_session - if max_sessions_per_shard is not None: - self.max_sessions_per_shard = max_sessions_per_shard - if soda_metadata_cache is not None: - self.soda_metadata_cache = soda_metadata_cache - if stmtcachesize is not None: - self.stmtcachesize = stmtcachesize - if ping_interval is not None: - self.ping_interval = ping_interval - - def release( - self, - connection: "connection_module.Connection", - tag: Optional[str] = None, - ) -> None: - """ - Releases the connection back to the pool now, rather than whenever - __del__ is called. The connection will be unusable from this point - forward; an Error exception will be raised if any operation is - attempted with the connection. Any cursors or LOBs created by the - connection will also be marked unusable and an Error exception will be - raised if any operation is attempted with them. - - Internally, references to the connection are held by cursor objects, - LOB objects, etc. Once all of these references are released, the - connection itself will be released back to the pool automatically. - Either control references to these related objects carefully or - explicitly release connections back to the pool in order to ensure - sufficient resources are available. - - If the tag is not *None*, it is expected to be a string with name=value - pairs like "k1=v1;k2=v2" and will override the value in the property - :attr:`Connection.tag`. If either :attr:`Connection.tag` or the tag - parameter are not *None*, the connection will be retagged when it is - released back to the pool. - """ - self._verify_open() - if not isinstance(connection, connection_module.Connection): - message = "connection must be an instance of oracledb.Connection" - raise TypeError(message) - connection._verify_connected() - if tag is not None: - connection.tag = tag - self._impl.return_connection(connection._impl) - connection._impl = None - - -def _pool_factory( - f: Callable[..., ConnectionPool], -) -> Callable[..., ConnectionPool]: - """ - Decorator which checks the validity of the supplied keyword parameters by - calling the original function (which does nothing), then creates and - returns an instance of the requested ConnectionPool class. The base - ConnectionPool class constructor does not check the validity of the - supplied keyword parameters. - """ - - @functools.wraps(f) - def create_pool( - dsn: Optional[str] = None, - *, - pool_class: Type[ConnectionPool] = ConnectionPool, - pool_alias: Optional[str] = None, - params: Optional[PoolParams] = None, - **kwargs, - ) -> ConnectionPool: - f( - dsn=dsn, - pool_class=pool_class, - pool_alias=pool_alias, - params=params, - **kwargs, - ) - if not issubclass(pool_class, ConnectionPool): - errors._raise_err(errors.ERR_INVALID_POOL_CLASS) - return pool_class(dsn, params=params, cache_name=pool_alias, **kwargs) - - return create_pool - - -@_pool_factory -def create_pool( - dsn: Optional[str] = None, - *, - pool_class: Type[ConnectionPool] = ConnectionPool, - pool_alias: Optional[str] = None, - params: Optional[PoolParams] = None, - min: Optional[int] = None, - max: Optional[int] = None, - increment: Optional[int] = None, - connectiontype: Optional[Type["oracledb.Connection"]] = None, - getmode: Optional[oracledb.PoolGetMode] = None, - homogeneous: Optional[bool] = None, - timeout: Optional[int] = None, - wait_timeout: Optional[int] = None, - max_lifetime_session: Optional[int] = None, - session_callback: Optional[Callable] = None, - max_sessions_per_shard: Optional[int] = None, - soda_metadata_cache: Optional[bool] = None, - ping_interval: Optional[int] = None, - ping_timeout: Optional[int] = None, - user: Optional[str] = None, - proxy_user: Optional[str] = None, - password: Optional[str] = None, - newpassword: Optional[str] = None, - wallet_password: Optional[str] = None, - access_token: Optional[Union[str, tuple, Callable]] = None, - host: Optional[str] = None, - port: Optional[int] = None, - protocol: Optional[str] = None, - https_proxy: Optional[str] = None, - https_proxy_port: Optional[int] = None, - service_name: Optional[str] = None, - instance_name: Optional[str] = None, - sid: Optional[str] = None, - server_type: Optional[str] = None, - cclass: Optional[str] = None, - purity: Optional[oracledb.Purity] = None, - expire_time: Optional[int] = None, - retry_count: Optional[int] = None, - retry_delay: Optional[int] = None, - tcp_connect_timeout: Optional[float] = None, - ssl_server_dn_match: Optional[bool] = None, - ssl_server_cert_dn: Optional[str] = None, - wallet_location: Optional[str] = None, - events: Optional[bool] = None, - externalauth: Optional[bool] = None, - mode: Optional[oracledb.AuthMode] = None, - disable_oob: Optional[bool] = None, - stmtcachesize: Optional[int] = None, - edition: Optional[str] = None, - tag: Optional[str] = None, - matchanytag: Optional[bool] = None, - config_dir: Optional[str] = None, - appcontext: Optional[list] = None, - shardingkey: Optional[list] = None, - supershardingkey: Optional[list] = None, - debug_jdwp: Optional[str] = None, - connection_id_prefix: Optional[str] = None, - ssl_context: Optional[Any] = None, - sdu: Optional[int] = None, - pool_boundary: Optional[str] = None, - use_tcp_fast_open: Optional[bool] = None, - ssl_version: Optional[ssl.TLSVersion] = None, - program: Optional[str] = None, - machine: Optional[str] = None, - terminal: Optional[str] = None, - osuser: Optional[str] = None, - driver_name: Optional[str] = None, - use_sni: Optional[bool] = None, - thick_mode_dsn_passthrough: Optional[bool] = None, - extra_auth_params: Optional[dict] = None, - pool_name: Optional[str] = None, - on_connect_callback: Optional[Callable] = None, - handle: Optional[int] = None, -) -> ConnectionPool: - """ - Creates a connection pool with the supplied parameters and returns it. - - The ``dsn`` parameter (data source name) can be a string in the format - user/password@connect_string or can simply be the connect string (in - which case authentication credentials such as the username and password - need to be specified separately). See the documentation on connection - strings for more information. - - The ``pool_class`` parameter is expected to be ConnectionPool or a subclass - of ConnectionPool. - - The ``pool_alias`` parameter is expected to be a string representing the - name used to store and reference the pool in the python-oracledb connection - pool cache. If this parameter is not specified, then the pool will not be - added to the cache. The value of this parameter can be used with the - :meth:`oracledb.get_pool()` and :meth:`oracledb.connect()` methods to - access the pool. - - The ``params`` parameter is expected to be of type PoolParams and contains - parameters that are used to create the pool. See the documentation on - PoolParams for more information. If this parameter is not specified, the - additional keyword parameters will be used to create an instance of - PoolParams. If both the ``params`` parameter and additional keyword - parameters are specified, the values in the keyword parameters have - precedence. Note that if a ``dsn`` is also supplied, then in - python-oracledb Thin mode, the values of the parameters specified (if any) - within the dsn will override the values passed as additional keyword - parameters, which themselves override the values set in the ``params`` - parameter object. - - The following parameters are all optional. A brief description of each - parameter follows: - - - ``min``: the minimum number of connections the pool should contain - (default: 1) - - - ``max``: the maximum number of connections the pool should contain - (default: 2) - - - ``increment``: the number of connections that should be added to the pool - whenever the pool needs to grow - (default: 1) - - - ``connectiontype``: the class of the connection that should be returned - during calls to pool.acquire(). It must be oracledb.Connection or a - subclass of oracledb.Connection - (default: None) - - - ``getmode``: how pool.acquire() will behave. One of the constants - :data:`oracledb.POOL_GETMODE_WAIT`, :data:`oracledb.POOL_GETMODE_NOWAIT`, - :data:`oracledb.POOL_GETMODE_FORCEGET`, or - :data:`oracledb.POOL_GETMODE_TIMEDWAIT` - (default: :attr:`oracledb.POOL_GETMODE_WAIT`) - - - ``homogeneous``: a boolean indicating whether the connections in the pool - are homogeneous (same user) or heterogeneous (multiple users) - (default: True) - - - ``timeout``: the length of time (in seconds) that a connection may remain - idle in the pool before it is terminated. If it is 0 then connections are - never terminated - (default: 0) - - - ``wait_timeout``: the length of time (in milliseconds) that a caller - should wait when acquiring a connection from the pool with getmode set to - :data:`oracledb.POOL_GETMODE_TIMEDWAIT` - (default: 0) - - - ``max_lifetime_session``: the length of time (in seconds) that - connections can remain in the pool. If it is 0 then connections may - remain in the pool indefinitely - (default: 0) - - - ``session_callback``: a callable that is invoked when a connection is - returned from the pool for the first time, or when the connection tag - differs from the one requested - (default: None) - - - ``max_sessions_per_shard``: the maximum number of connections that may be - associated with a particular shard - (default: 0) - - - ``soda_metadata_cache``: a boolean indicating whether or not the SODA - metadata cache should be enabled - (default: False) - - - ``ping_interval``: the length of time (in seconds) after which an unused - connection in the pool will be a candidate for pinging when - pool.acquire() is called. If the ping to the database indicates the - connection is not alive a replacement connection will be returned by - pool.acquire(). If ping_interval is a negative value the ping - functionality will be disabled - (default: 60) - - - ``ping_timeout``: the maximum length of time (in milliseconds) to wait - for a connection in the pool to respond to an internal ping to the - database before being discarded and replaced during a call to acquire() - (default: 5000) - - - ``user``: the name of the database user to connect to - (default: None) - - - ``proxy_user``: the name of the proxy user to connect to. If this value - is not specified, it will be parsed out of user if user is in the form - "user[proxy_user]" - (default: None) - - - ``password``: the password for the database user - (default: None) - - - ``newpassword``: a new password for the database user. The new password - will take effect immediately upon a successful connection to the database - (default: None) - - - ``wallet_password``: the password to use to decrypt the wallet, if it is - encrypted. This is not the database password. For Oracle Autonomous - Database this is the password created when downloading the wallet. This - value is only used in python-oracledb Thin mode. - (default: None) - - - ``access_token``: a string, or a 2-tuple, or a callable. If it is a - string, it specifies an Entra ID OAuth2 token used for Open Authorization - (OAuth 2.0) token based authentication. If it is a 2-tuple, it specifies - the token and private key strings used for Oracle Cloud Infrastructure - (OCI) Identity and Access Management (IAM) token based authentication. If - it is a callable, it returns either a string or a 2-tuple used for OAuth - 2.0 or OCI IAM token based authentication and is useful when the pool - needs to expand and create new connections but the current authentication - token has expired - (default: None) - - - ``host``: the hostname or IP address of the machine hosting the database - or the database listener - (default: None) - - - ``port``: the port number on which the database listener is listening - (default: 1521) - - - ``protocol``: one of the strings "tcp" or "tcps" indicating whether to - use unencrypted network traffic or encrypted network traffic (TLS) - (default: "tcp") - - - ``https_proxy``: the hostname or IP address of a proxy host to use for - tunneling secure connections - (default: None) - - - ``https_proxy_port``: the port on which to communicate with the proxy - host - (default: 0) - - - ``service_name``: the service name of the database - (default: None) - - - ``instance_name``: the instance name of the database - (default: None) - - - ``sid``: the system identifier (SID) of the database. Note using a - service_name instead is recommended - (default: None) - - - ``server_type``: the type of server connection that should be - established. If specified, it should be one of strings "dedicated", - "shared" or "pooled" - (default: None) - - - ``cclass``: the connection class to use for Database Resident Connection - Pooling (DRCP) - (default: None) - - - ``purity``: the connection purity to use for Database Resident Connection - Pooling (DRCP) - (default: :attr:`oracledb.PURITY_DEFAULT`) - - - ``expire_time``: the number of minutes between the sending of keepalive - probes. If this parameter is set to a value greater than zero it enables - keepalive - (default: 0) - - - ``retry_count``: the number of times that initial connection - establishment should be retried before the connection attempt is - terminated - (default: 0) - - - ``retry_delay``: the number of seconds to wait before retrying to - establish a connection - (default: 1) - - - ``tcp_connect_timeout``: a float indicating the maximum number of seconds - to wait when establishing a connection to the database host - (default: 20.0) - - - ``ssl_server_dn_match``: a boolean indicating whether the server - certificate distinguished name (DN) should be matched in addition to the - regular certificate verification that is performed. Note that if the - ssl_server_cert_dn parameter is not privided, host name matching is - performed instead - (default: True) - - - ``ssl_server_cert_dn``: the distinguished name (DN) which should be - matched with the server. This value is ignored if the ssl_server_dn_match - parameter is not set to the value True. If specified this value is used - for any verfication. Otherwise the hostname will be used - (default: None) - - - ``wallet_location``: the directory where the wallet can be found. In - python-oracledb Thin mode this must be the directory containing the PEM- - encoded wallet file ewallet.pem. In python-oracledb Thick mode this must - be the directory containing the file cwallet.sso - (default: None) - - - ``events``: a boolean specifying whether events mode should be enabled. - This value is only used in python-oracledb Thick mode and is needed for - continuous query notification and high availability event notifications - (default: False) - - - ``externalauth``: a boolean indicating whether to use external - authentication - (default: False) - - - ``mode``: the authorization mode to use. One of the constants - :data:`oracledb.AUTH_MODE_DEFAULT`, :data:`oracledb.AUTH_MODE_PRELIM`, - :data:`oracledb.AUTH_MODE_SYSASM`, :data:`oracledb.AUTH_MODE_SYSBKP`, - :data:`oracledb.AUTH_MODE_SYSDBA`, :data:`oracledb.AUTH_MODE_SYSDGD`, - :data:`oracledb.AUTH_MODE_SYSKMT`, :data:`oracledb.AUTH_MODE_SYSOPER`, or - :data:`oracledb.AUTH_MODE_SYSRAC` - (default: :attr:`oracledb.AUTH_MODE_DEFAULT`) - - - ``disable_oob``: a boolean indicating whether out-of-band breaks should - be disabled. This value is only used in python-oracledb Thin mode. It has - no effect on Windows which does not support this functionality - (default: False) - - - ``stmtcachesize``: the size of the statement cache - (default: :attr:`oracledb.defaults.stmtcachesize - `) - - - ``edition``: edition to use for the connection. This parameter cannot be - used simultaneously with the cclass parameter - (default: None) - - - ``tag``: identifies the type of connection that should be returned from a - pool. This value is only used in python-oracledb Thick mode - (default: None) - - - ``matchanytag``: a boolean specifying whether any tag can be used when - acquiring a connection from the pool. This value is only used in python- - oracledb Thick mode - (default: False) - - - ``config_dir``: a directory in which the optional tnsnames.ora - configuration file is located. This value is only used in python-oracledb - Thin mode. For python-oracledb Thick mode, it is used if - :attr:`oracledb.defaults.thick_mode_dsn_passthrough - ` is *False*. Otherwise in Thick - mode use the ``config_dir`` parameter of - :meth:`oracledb.init_oracle_client()` - (default: :attr:`oracledb.defaults.config_dir - `) - - - ``appcontext``: application context used by the connection. It should be - a list of 3-tuples (namespace, name, value) and each entry in the tuple - should be a string - (default: None) - - - ``shardingkey``: a list of strings, numbers, bytes or dates that identify - the database shard to connect to. This value is only used in python- - oracledb Thick mode - (default: None) - - - ``supershardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - (default: None) - - - ``debug_jdwp``: a string with the format "host=;port=" that - specifies the host and port of the PL/SQL debugger. This value is only - used in python-oracledb Thin mode. For python-oracledb Thick mode set - the ORA_DEBUG_JDWP environment variable - (default: None) - - - ``connection_id_prefix``: an application specific prefix that is added to - the connection identifier used for tracing - (default: None) - - - ``ssl_context``: an SSLContext object used for connecting to the database - using TLS. This SSL context will be modified to include the private key - or any certificates found in a separately supplied wallet. This parameter - should only be specified if the default SSLContext object cannot be used - (default: None) - - - ``sdu``: the requested size of the Session Data Unit (SDU), in bytes. The - value tunes internal buffers used for communication to the database. - Bigger values can increase throughput for large queries or bulk data - loads, but at the cost of higher memory use. The SDU size that will - actually be used is negotiated down to the lower of this value and the - database network SDU configuration value - (default: 8192) - - - ``pool_boundary``: one of the values "statement" or "transaction" - indicating when pooled DRCP connections can be returned to the pool. This - requires the use of DRCP with Oracle Database 23.4 or higher - (default: None) - - - ``use_tcp_fast_open``: a boolean indicating whether to use TCP fast open. - This is an Oracle Autonomous Database Serverless (ADB-S) specific - property for clients connecting from within OCI Cloud network. Please - refer to the ADB-S documentation for more information - (default: False) - - - ``ssl_version``: one of the values ssl.TLSVersion.TLSv1_2 or - ssl.TLSVersion.TLSv1_3 indicating which TLS version to use - (default: None) - - - ``program``: a string recorded by Oracle Database as the program from - which the connection originates - (default: :attr:`oracledb.defaults.program - `) - - - ``machine``: a string recorded by Oracle Database as the name of the - machine from which the connection originates - (default: :attr:`oracledb.defaults.machine - `) - - - ``terminal``: a string recorded by Oracle Database as the terminal - identifier from which the connection originates - (default: :attr:`oracledb.defaults.terminal - `) - - - ``osuser``: a string recorded by Oracle Database as the operating system - user who originated the connection - (default: :attr:`oracledb.defaults.osuser - `) - - - ``driver_name``: a string recorded by Oracle Database as the name of the - driver which originated the connection - (default: :attr:`oracledb.defaults.driver_name - `) - - - ``use_sni``: a boolean indicating whether to use the TLS SNI extension to - bypass the second TLS neogiation that would otherwise be required - (default: False) - - - ``thick_mode_dsn_passthrough``: a boolean indicating whether to pass the - connect string to the Oracle Client libraries unchanged without parsing - by the driver. Setting this to False makes python-oracledb Thick and Thin - mode applications behave similarly regarding connection string parameter - handling and locating any optional tnsnames.ora configuration file - (default: :attr:`oracledb.defaults.thick_mode_dsn_passthrough - `) - - - ``extra_auth_params``: a dictionary containing configuration parameters - necessary for Oracle Database authentication using plugins, such as the - Azure and OCI cloud-native authentication plugins - (default: None) - - - ``pool_name``: the name of the DRCP pool when using multi-pool DRCP with - Oracle Database 23.4, or higher - (default: None) - - - ``on_connect_callback``: a callable that is invoked immediately after a - standalone connection is created or a connection is acquired from a - connection pool, but before it is returned to the caller. A common use of - this callback is for creating and setting an end user security context - object for DeepSec support - (default: None) - - - ``handle``: an integer representing a pointer to a valid service context - handle. This value is only used in python-oracledb Thick mode. It should - be used with extreme caution - (default: 0) - """ - pass - - -class AsyncConnectionPool(BaseConnectionPool): - - def _set_connection_type(self, conn_class): - """ - Called internally when the pool is created to ensure that the correct - connection class is used for all connections created by the pool. - """ - if conn_class is None: - conn_class = connection_module.AsyncConnection - elif not issubclass(conn_class, connection_module.AsyncConnection): - errors._raise_err(errors.ERR_INVALID_CONN_CLASS) - self._connection_type = conn_class - - def acquire( - self, - user: Optional[str] = None, - password: Optional[str] = None, - cclass: Optional[str] = None, - purity: int = oracledb.PURITY_DEFAULT, - tag: Optional[str] = None, - matchanytag: bool = False, - shardingkey: Optional[list] = None, - supershardingkey: Optional[list] = None, - ) -> "connection_module.AsyncConnection": - """ - Acquires a connection from the pool and returns an :ref:`asynchronous - connection object `. - - If the pool is :ref:`homogeneous `, the ``user`` and - ``password`` parameters cannot be specified. If they are, an exception - will be raised. - - The ``cclass`` parameter, if specified, should be a string - corresponding to the connection class for :ref:`drcp`. - - The ``purity`` parameter is expected to be one of - :data:`~oracledb.PURITY_NEW`, :data:`~oracledb.PURITY_SELF`, or - :data:`~oracledb.PURITY_DEFAULT`. - - The ``tag``, ``matchanytag``, ``shardingkey``, and ``supershardingkey`` - parameters are ignored in python-oracledb Thin mode. - """ - self._verify_open() - - return oracledb.connect_async( - conn_class=self._connection_type, - user=user, - password=password, - cclass=cclass, - purity=purity, - tag=tag, - matchanytag=matchanytag, - shardingkey=shardingkey, - supershardingkey=supershardingkey, - on_connect_callback=self.on_connect_callback, - pool=self, - ) - - async def close(self, force: bool = False) -> None: - """ - Closes the pool now, rather than when the last reference to it is - released, which makes it unusable for further work. - - If any connections have been acquired and not released back to the - pool, this method will fail unless the ``force`` parameter is set to - *True*. - """ - self._verify_open() - await self._impl.close(force) - if self._cache_name is not None: - named_pools.remove_pool(self._cache_name) - self._impl = None - - async def drop(self, connection: "connection_module.Connection") -> None: - """ - Drops the connection from the pool which is useful if the connection is - no longer usable (such as when the session is killed). - """ - self._verify_open() - if not isinstance(connection, connection_module.AsyncConnection): - message = ( - "connection must be an instance of oracledb.AsyncConnection" - ) - raise TypeError(message) - connection._verify_connected() - await self._impl.drop(connection._impl) - connection._impl = None - - async def release( - self, - connection: "connection_module.AsyncConnection", - tag: Optional[str] = None, - ) -> None: - """ - Releases the connection back to the pool now. The connection will be - unusable from this point forward. An Error exception will be raised if - any operation is attempted with the connection. Any cursors or LOBs - created by the connection will also be marked unusable and an Error - exception will be raised if any operation is attempted with them. - - The ``tag`` parameter is ignored in python-oracledb Thin mode. - """ - self._verify_open() - if not isinstance(connection, connection_module.AsyncConnection): - message = ( - "connection must be an instance of oracledb.AsyncConnection" - ) - raise TypeError(message) - if tag is not None: - connection.tag = tag - await self._impl.return_connection(connection._impl) - connection._impl = None - - -def _async_pool_factory( - f: Callable[..., AsyncConnectionPool], -) -> Callable[..., AsyncConnectionPool]: - """ - Decorator which checks the validity of the supplied keyword parameters by - calling the original function (which does nothing), then creates and - returns an instance of the requested ConnectionPool class. The base - ConnectionPool class constructor does not check the validity of the - supplied keyword parameters. - """ - - @functools.wraps(f) - def create_pool_async( - dsn: Optional[str] = None, - *, - pool_class: Type[ConnectionPool] = AsyncConnectionPool, - pool_alias: Optional[str] = None, - params: Optional[PoolParams] = None, - **kwargs, - ) -> AsyncConnectionPool: - f( - dsn=dsn, - pool_class=pool_class, - pool_alias=pool_alias, - params=params, - **kwargs, - ) - oracledb.enable_thin_mode() - if not issubclass(pool_class, AsyncConnectionPool): - errors._raise_err(errors.ERR_INVALID_POOL_CLASS) - return pool_class(dsn, params=params, cache_name=pool_alias, **kwargs) - - return create_pool_async - - -@_async_pool_factory -def create_pool_async( - dsn: Optional[str] = None, - *, - pool_class: Type[ConnectionPool] = AsyncConnectionPool, - pool_alias: Optional[str] = None, - params: Optional[PoolParams] = None, - min: Optional[int] = None, - max: Optional[int] = None, - increment: Optional[int] = None, - connectiontype: Optional[Type["oracledb.AsyncConnection"]] = None, - getmode: Optional[oracledb.PoolGetMode] = None, - homogeneous: Optional[bool] = None, - timeout: Optional[int] = None, - wait_timeout: Optional[int] = None, - max_lifetime_session: Optional[int] = None, - session_callback: Optional[Callable] = None, - max_sessions_per_shard: Optional[int] = None, - soda_metadata_cache: Optional[bool] = None, - ping_interval: Optional[int] = None, - ping_timeout: Optional[int] = None, - user: Optional[str] = None, - proxy_user: Optional[str] = None, - password: Optional[str] = None, - newpassword: Optional[str] = None, - wallet_password: Optional[str] = None, - access_token: Optional[Union[str, tuple, Callable]] = None, - host: Optional[str] = None, - port: Optional[int] = None, - protocol: Optional[str] = None, - https_proxy: Optional[str] = None, - https_proxy_port: Optional[int] = None, - service_name: Optional[str] = None, - instance_name: Optional[str] = None, - sid: Optional[str] = None, - server_type: Optional[str] = None, - cclass: Optional[str] = None, - purity: Optional[oracledb.Purity] = None, - expire_time: Optional[int] = None, - retry_count: Optional[int] = None, - retry_delay: Optional[int] = None, - tcp_connect_timeout: Optional[float] = None, - ssl_server_dn_match: Optional[bool] = None, - ssl_server_cert_dn: Optional[str] = None, - wallet_location: Optional[str] = None, - events: Optional[bool] = None, - externalauth: Optional[bool] = None, - mode: Optional[oracledb.AuthMode] = None, - disable_oob: Optional[bool] = None, - stmtcachesize: Optional[int] = None, - edition: Optional[str] = None, - tag: Optional[str] = None, - matchanytag: Optional[bool] = None, - config_dir: Optional[str] = None, - appcontext: Optional[list] = None, - shardingkey: Optional[list] = None, - supershardingkey: Optional[list] = None, - debug_jdwp: Optional[str] = None, - connection_id_prefix: Optional[str] = None, - ssl_context: Optional[Any] = None, - sdu: Optional[int] = None, - pool_boundary: Optional[str] = None, - use_tcp_fast_open: Optional[bool] = None, - ssl_version: Optional[ssl.TLSVersion] = None, - program: Optional[str] = None, - machine: Optional[str] = None, - terminal: Optional[str] = None, - osuser: Optional[str] = None, - driver_name: Optional[str] = None, - use_sni: Optional[bool] = None, - thick_mode_dsn_passthrough: Optional[bool] = None, - extra_auth_params: Optional[dict] = None, - pool_name: Optional[str] = None, - on_connect_callback: Optional[Callable] = None, - handle: Optional[int] = None, -) -> AsyncConnectionPool: - """ - Creates a connection pool with the supplied parameters and returns it. - - The ``dsn`` parameter (data source name) can be a string in the format - user/password@connect_string or can simply be the connect string (in - which case authentication credentials such as the username and password - need to be specified separately). See the documentation on connection - strings for more information. - - The ``pool_class`` parameter is expected to be AsyncConnectionPool or a - subclass of AsyncConnectionPool. - - The ``pool_alias`` parameter is expected to be a string representing the - name used to store and reference the pool in the python-oracledb connection - pool cache. If this parameter is not specified, then the pool will not be - added to the cache. The value of this parameter can be used with the - :meth:`oracledb.get_pool()` and :meth:o`racledb.connect_async()` methods to - access the pool. - - The ``params`` parameter is expected to be of type PoolParams and contains - parameters that are used to create the pool. See the documentation on - PoolParams for more information. If this parameter is not specified, the - additional keyword parameters will be used to create an instance of - PoolParams. If both the ``params`` parameter and additional keyword - parameters are specified, the values in the keyword parameters have - precedence. Note that if a ``dsn`` is also supplied, then in - python-oracledb Thin mode, the values of the parameters specified (if any) - within the ``dsn`` will override the values passed as additional keyword - parameters, which themselves override the values set in the ``params`` - parameter object. - - The following parameters are all optional. A brief description of each - parameter follows: - - - ``min``: the minimum number of connections the pool should contain - (default: 1) - - - ``max``: the maximum number of connections the pool should contain - (default: 2) - - - ``increment``: the number of connections that should be added to the pool - whenever the pool needs to grow - (default: 1) - - - ``connectiontype``: the class of the connection that should be returned - during calls to pool.acquire(). It must be oracledb.AsyncConnection or a - subclass of oracledb.AsyncConnection - (default: None) - - - ``getmode``: how pool.acquire() will behave. One of the constants - :data:`oracledb.POOL_GETMODE_WAIT`, :data:`oracledb.POOL_GETMODE_NOWAIT`, - :data:`oracledb.POOL_GETMODE_FORCEGET`, or - :data:`oracledb.POOL_GETMODE_TIMEDWAIT` - (default: :attr:`oracledb.POOL_GETMODE_WAIT`) - - - ``homogeneous``: a boolean indicating whether the connections in the pool - are homogeneous (same user) or heterogeneous (multiple users) - (default: True) - - - ``timeout``: the length of time (in seconds) that a connection may remain - idle in the pool before it is terminated. If it is 0 then connections are - never terminated - (default: 0) - - - ``wait_timeout``: the length of time (in milliseconds) that a caller - should wait when acquiring a connection from the pool with getmode set to - :data:`oracledb.POOL_GETMODE_TIMEDWAIT` - (default: 0) - - - ``max_lifetime_session``: the length of time (in seconds) that - connections can remain in the pool. If it is 0 then connections may - remain in the pool indefinitely - (default: 0) - - - ``session_callback``: a callable that is invoked when a connection is - returned from the pool for the first time, or when the connection tag - differs from the one requested - (default: None) - - - ``max_sessions_per_shard``: the maximum number of connections that may be - associated with a particular shard - (default: 0) - - - ``soda_metadata_cache``: a boolean indicating whether or not the SODA - metadata cache should be enabled - (default: False) - - - ``ping_interval``: the length of time (in seconds) after which an unused - connection in the pool will be a candidate for pinging when - pool.acquire() is called. If the ping to the database indicates the - connection is not alive a replacement connection will be returned by - pool.acquire(). If ping_interval is a negative value the ping - functionality will be disabled - (default: 60) - - - ``ping_timeout``: the maximum length of time (in milliseconds) to wait - for a connection in the pool to respond to an internal ping to the - database before being discarded and replaced during a call to acquire() - (default: 5000) - - - ``user``: the name of the database user to connect to - (default: None) - - - ``proxy_user``: the name of the proxy user to connect to. If this value - is not specified, it will be parsed out of user if user is in the form - "user[proxy_user]" - (default: None) - - - ``password``: the password for the database user - (default: None) - - - ``newpassword``: a new password for the database user. The new password - will take effect immediately upon a successful connection to the database - (default: None) - - - ``wallet_password``: the password to use to decrypt the wallet, if it is - encrypted. This is not the database password. For Oracle Autonomous - Database this is the password created when downloading the wallet. This - value is only used in python-oracledb Thin mode. - (default: None) - - - ``access_token``: a string, or a 2-tuple, or a callable. If it is a - string, it specifies an Entra ID OAuth2 token used for Open Authorization - (OAuth 2.0) token based authentication. If it is a 2-tuple, it specifies - the token and private key strings used for Oracle Cloud Infrastructure - (OCI) Identity and Access Management (IAM) token based authentication. If - it is a callable, it returns either a string or a 2-tuple used for OAuth - 2.0 or OCI IAM token based authentication and is useful when the pool - needs to expand and create new connections but the current authentication - token has expired - (default: None) - - - ``host``: the hostname or IP address of the machine hosting the database - or the database listener - (default: None) - - - ``port``: the port number on which the database listener is listening - (default: 1521) - - - ``protocol``: one of the strings "tcp" or "tcps" indicating whether to - use unencrypted network traffic or encrypted network traffic (TLS) - (default: "tcp") - - - ``https_proxy``: the hostname or IP address of a proxy host to use for - tunneling secure connections - (default: None) - - - ``https_proxy_port``: the port on which to communicate with the proxy - host - (default: 0) - - - ``service_name``: the service name of the database - (default: None) - - - ``instance_name``: the instance name of the database - (default: None) - - - ``sid``: the system identifier (SID) of the database. Note using a - service_name instead is recommended - (default: None) - - - ``server_type``: the type of server connection that should be - established. If specified, it should be one of strings "dedicated", - "shared" or "pooled" - (default: None) - - - ``cclass``: the connection class to use for Database Resident Connection - Pooling (DRCP) - (default: None) - - - ``purity``: the connection purity to use for Database Resident Connection - Pooling (DRCP) - (default: :attr:`oracledb.PURITY_DEFAULT`) - - - ``expire_time``: the number of minutes between the sending of keepalive - probes. If this parameter is set to a value greater than zero it enables - keepalive - (default: 0) - - - ``retry_count``: the number of times that initial connection - establishment should be retried before the connection attempt is - terminated - (default: 0) - - - ``retry_delay``: the number of seconds to wait before retrying to - establish a connection - (default: 1) - - - ``tcp_connect_timeout``: a float indicating the maximum number of seconds - to wait when establishing a connection to the database host - (default: 20.0) - - - ``ssl_server_dn_match``: a boolean indicating whether the server - certificate distinguished name (DN) should be matched in addition to the - regular certificate verification that is performed. Note that if the - ssl_server_cert_dn parameter is not privided, host name matching is - performed instead - (default: True) - - - ``ssl_server_cert_dn``: the distinguished name (DN) which should be - matched with the server. This value is ignored if the ssl_server_dn_match - parameter is not set to the value True. If specified this value is used - for any verfication. Otherwise the hostname will be used - (default: None) - - - ``wallet_location``: the directory where the wallet can be found. In - python-oracledb Thin mode this must be the directory containing the PEM- - encoded wallet file ewallet.pem. In python-oracledb Thick mode this must - be the directory containing the file cwallet.sso - (default: None) - - - ``events``: a boolean specifying whether events mode should be enabled. - This value is only used in python-oracledb Thick mode and is needed for - continuous query notification and high availability event notifications - (default: False) - - - ``externalauth``: a boolean indicating whether to use external - authentication - (default: False) - - - ``mode``: the authorization mode to use. One of the constants - :data:`oracledb.AUTH_MODE_DEFAULT`, :data:`oracledb.AUTH_MODE_PRELIM`, - :data:`oracledb.AUTH_MODE_SYSASM`, :data:`oracledb.AUTH_MODE_SYSBKP`, - :data:`oracledb.AUTH_MODE_SYSDBA`, :data:`oracledb.AUTH_MODE_SYSDGD`, - :data:`oracledb.AUTH_MODE_SYSKMT`, :data:`oracledb.AUTH_MODE_SYSOPER`, or - :data:`oracledb.AUTH_MODE_SYSRAC` - (default: :attr:`oracledb.AUTH_MODE_DEFAULT`) - - - ``disable_oob``: a boolean indicating whether out-of-band breaks should - be disabled. This value is only used in python-oracledb Thin mode. It has - no effect on Windows which does not support this functionality - (default: False) - - - ``stmtcachesize``: the size of the statement cache - (default: :attr:`oracledb.defaults.stmtcachesize - `) - - - ``edition``: edition to use for the connection. This parameter cannot be - used simultaneously with the cclass parameter - (default: None) - - - ``tag``: identifies the type of connection that should be returned from a - pool. This value is only used in python-oracledb Thick mode - (default: None) - - - ``matchanytag``: a boolean specifying whether any tag can be used when - acquiring a connection from the pool. This value is only used in python- - oracledb Thick mode - (default: False) - - - ``config_dir``: a directory in which the optional tnsnames.ora - configuration file is located. This value is only used in python-oracledb - Thin mode. For python-oracledb Thick mode, it is used if - :attr:`oracledb.defaults.thick_mode_dsn_passthrough - ` is *False*. Otherwise in Thick - mode use the ``config_dir`` parameter of - :meth:`oracledb.init_oracle_client()` - (default: :attr:`oracledb.defaults.config_dir - `) - - - ``appcontext``: application context used by the connection. It should be - a list of 3-tuples (namespace, name, value) and each entry in the tuple - should be a string - (default: None) - - - ``shardingkey``: a list of strings, numbers, bytes or dates that identify - the database shard to connect to. This value is only used in python- - oracledb Thick mode - (default: None) - - - ``supershardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - (default: None) - - - ``debug_jdwp``: a string with the format "host=;port=" that - specifies the host and port of the PL/SQL debugger. This value is only - used in python-oracledb Thin mode. For python-oracledb Thick mode set - the ORA_DEBUG_JDWP environment variable - (default: None) - - - ``connection_id_prefix``: an application specific prefix that is added to - the connection identifier used for tracing - (default: None) - - - ``ssl_context``: an SSLContext object used for connecting to the database - using TLS. This SSL context will be modified to include the private key - or any certificates found in a separately supplied wallet. This parameter - should only be specified if the default SSLContext object cannot be used - (default: None) - - - ``sdu``: the requested size of the Session Data Unit (SDU), in bytes. The - value tunes internal buffers used for communication to the database. - Bigger values can increase throughput for large queries or bulk data - loads, but at the cost of higher memory use. The SDU size that will - actually be used is negotiated down to the lower of this value and the - database network SDU configuration value - (default: 8192) - - - ``pool_boundary``: one of the values "statement" or "transaction" - indicating when pooled DRCP connections can be returned to the pool. This - requires the use of DRCP with Oracle Database 23.4 or higher - (default: None) - - - ``use_tcp_fast_open``: a boolean indicating whether to use TCP fast open. - This is an Oracle Autonomous Database Serverless (ADB-S) specific - property for clients connecting from within OCI Cloud network. Please - refer to the ADB-S documentation for more information - (default: False) - - - ``ssl_version``: one of the values ssl.TLSVersion.TLSv1_2 or - ssl.TLSVersion.TLSv1_3 indicating which TLS version to use - (default: None) - - - ``program``: a string recorded by Oracle Database as the program from - which the connection originates - (default: :attr:`oracledb.defaults.program - `) - - - ``machine``: a string recorded by Oracle Database as the name of the - machine from which the connection originates - (default: :attr:`oracledb.defaults.machine - `) - - - ``terminal``: a string recorded by Oracle Database as the terminal - identifier from which the connection originates - (default: :attr:`oracledb.defaults.terminal - `) - - - ``osuser``: a string recorded by Oracle Database as the operating system - user who originated the connection - (default: :attr:`oracledb.defaults.osuser - `) - - - ``driver_name``: a string recorded by Oracle Database as the name of the - driver which originated the connection - (default: :attr:`oracledb.defaults.driver_name - `) - - - ``use_sni``: a boolean indicating whether to use the TLS SNI extension to - bypass the second TLS neogiation that would otherwise be required - (default: False) - - - ``thick_mode_dsn_passthrough``: a boolean indicating whether to pass the - connect string to the Oracle Client libraries unchanged without parsing - by the driver. Setting this to False makes python-oracledb Thick and Thin - mode applications behave similarly regarding connection string parameter - handling and locating any optional tnsnames.ora configuration file - (default: :attr:`oracledb.defaults.thick_mode_dsn_passthrough - `) - - - ``extra_auth_params``: a dictionary containing configuration parameters - necessary for Oracle Database authentication using plugins, such as the - Azure and OCI cloud-native authentication plugins - (default: None) - - - ``pool_name``: the name of the DRCP pool when using multi-pool DRCP with - Oracle Database 23.4, or higher - (default: None) - - - ``on_connect_callback``: a callable that is invoked immediately after a - standalone connection is created or a connection is acquired from a - connection pool, but before it is returned to the caller. A common use of - this callback is for creating and setting an end user security context - object for DeepSec support - (default: None) - - - ``handle``: an integer representing a pointer to a valid service context - handle. This value is only used in python-oracledb Thick mode. It should - be used with extreme caution - (default: 0) - """ - pass - - -class NamedPools: - - def __init__(self): - self.lock = threading.Lock() - self.pools = {} - - def add_pool(self, alias, pool): - """ - Adds a pool to the cache. An exception is raised if a pool is already - cached with the given alias. - """ - if not isinstance(alias, str): - raise TypeError("pool_alias must be a string") - with self.lock: - if alias in self.pools: - errors._raise_err(errors.ERR_NAMED_POOL_EXISTS, alias=alias) - self.pools[alias] = pool - - def remove_pool(self, alias): - """ - Removes the pool with the given alias from the cache. An exception is - raised if there is no pool cached with the given alias. - """ - with self.lock: - if alias not in self.pools: - errors._raise_err(errors.ERR_NAMED_POOL_MISSING, alias=alias) - del self.pools[alias] - - -named_pools = NamedPools() - - -def get_pool( - pool_alias: str, -) -> Union[ConnectionPool, AsyncConnectionPool, None]: - """ - Returns a :ref:`ConnectionPool object ` from the python-oracledb - pool cache. The pool must have been previously created by passing the same - ``pool_alias`` value to :meth:`oracledb.create_pool()` or - :meth:`oracledb.create_pool_async()`. - - If a pool with the given name does not exist, *None* is returned. - """ - return named_pools.pools.get(pool_alias) diff --git a/.venv/lib/python3.9/site-packages/oracledb/pool_params.py b/.venv/lib/python3.9/site-packages/oracledb/pool_params.py deleted file mode 100644 index b58f66b..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/pool_params.py +++ /dev/null @@ -1,1033 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2022, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# pool_params.py -# -# Contains the PoolParams class used for managing the parameters required to -# create a connection pool. -# -# *** NOTICE *** This file is generated from a template and should not be -# modified directly. See build_from_template.py in the utils subdirectory for -# more information. -# ----------------------------------------------------------------------------- - -import ssl -from typing import Callable, Type, Union, Any, Optional - -import oracledb - -from . import base_impl, utils -from .connect_params import ConnectParams - - -class PoolParams(ConnectParams): - """ - Contains all parameters used for creating a connection pool. - """ - - __module__ = oracledb.__name__ - __slots__ = ["_impl"] - _impl_class = base_impl.PoolParamsImpl - - @utils.params_initer - def __init__( - self, - *, - min: Optional[int] = None, - max: Optional[int] = None, - increment: Optional[int] = None, - connectiontype: Optional[Type["oracledb.Connection"]] = None, - getmode: Optional[oracledb.PoolGetMode] = None, - homogeneous: Optional[bool] = None, - timeout: Optional[int] = None, - wait_timeout: Optional[int] = None, - max_lifetime_session: Optional[int] = None, - session_callback: Optional[Callable] = None, - max_sessions_per_shard: Optional[int] = None, - soda_metadata_cache: Optional[bool] = None, - ping_interval: Optional[int] = None, - ping_timeout: Optional[int] = None, - user: Optional[str] = None, - proxy_user: Optional[str] = None, - password: Optional[str] = None, - newpassword: Optional[str] = None, - wallet_password: Optional[str] = None, - access_token: Optional[Union[str, tuple, Callable]] = None, - host: Optional[str] = None, - port: Optional[int] = None, - protocol: Optional[str] = None, - https_proxy: Optional[str] = None, - https_proxy_port: Optional[int] = None, - service_name: Optional[str] = None, - instance_name: Optional[str] = None, - sid: Optional[str] = None, - server_type: Optional[str] = None, - cclass: Optional[str] = None, - purity: Optional[oracledb.Purity] = None, - expire_time: Optional[int] = None, - retry_count: Optional[int] = None, - retry_delay: Optional[int] = None, - tcp_connect_timeout: Optional[float] = None, - ssl_server_dn_match: Optional[bool] = None, - ssl_server_cert_dn: Optional[str] = None, - wallet_location: Optional[str] = None, - events: Optional[bool] = None, - externalauth: Optional[bool] = None, - mode: Optional[oracledb.AuthMode] = None, - disable_oob: Optional[bool] = None, - stmtcachesize: Optional[int] = None, - edition: Optional[str] = None, - tag: Optional[str] = None, - matchanytag: Optional[bool] = None, - config_dir: Optional[str] = None, - appcontext: Optional[list] = None, - shardingkey: Optional[list] = None, - supershardingkey: Optional[list] = None, - debug_jdwp: Optional[str] = None, - connection_id_prefix: Optional[str] = None, - ssl_context: Optional[Any] = None, - sdu: Optional[int] = None, - pool_boundary: Optional[str] = None, - use_tcp_fast_open: Optional[bool] = None, - ssl_version: Optional[ssl.TLSVersion] = None, - program: Optional[str] = None, - machine: Optional[str] = None, - terminal: Optional[str] = None, - osuser: Optional[str] = None, - driver_name: Optional[str] = None, - use_sni: Optional[bool] = None, - thick_mode_dsn_passthrough: Optional[bool] = None, - extra_auth_params: Optional[dict] = None, - pool_name: Optional[str] = None, - on_connect_callback: Optional[Callable] = None, - handle: Optional[int] = None, - ): - """ - All parameters are optional. A brief description of each parameter - follows: - - - ``min``: the minimum number of connections the pool should contain - (default: 1) - - - ``max``: the maximum number of connections the pool should contain - (default: 2) - - - ``increment``: the number of connections that should be added to the - pool whenever the pool needs to grow - (default: 1) - - - ``connectiontype``: the class of the connection that should be - returned during calls to pool.acquire(). It must be - oracledb.Connection or a subclass of oracledb.Connection - (default: None) - - - ``getmode``: how pool.acquire() will behave. One of the constants - :data:`oracledb.POOL_GETMODE_WAIT`, - :data:`oracledb.POOL_GETMODE_NOWAIT`, - :data:`oracledb.POOL_GETMODE_FORCEGET`, or - :data:`oracledb.POOL_GETMODE_TIMEDWAIT` - (default: :attr:`oracledb.POOL_GETMODE_WAIT`) - - - ``homogeneous``: a boolean indicating whether the connections in the - pool are homogeneous (same user) or heterogeneous (multiple users) - (default: True) - - - ``timeout``: the length of time (in seconds) that a connection may - remain idle in the pool before it is terminated. If it is 0 then - connections are never terminated - (default: 0) - - - ``wait_timeout``: the length of time (in milliseconds) that a caller - should wait when acquiring a connection from the pool with getmode - set to :data:`oracledb.POOL_GETMODE_TIMEDWAIT` - (default: 0) - - - ``max_lifetime_session``: the length of time (in seconds) that - connections can remain in the pool. If it is 0 then connections may - remain in the pool indefinitely - (default: 0) - - - ``session_callback``: a callable that is invoked when a connection is - returned from the pool for the first time, or when the connection tag - differs from the one requested - (default: None) - - - ``max_sessions_per_shard``: the maximum number of connections that - may be associated with a particular shard - (default: 0) - - - ``soda_metadata_cache``: a boolean indicating whether or not the SODA - metadata cache should be enabled - (default: False) - - - ``ping_interval``: the length of time (in seconds) after which an - unused connection in the pool will be a candidate for pinging when - pool.acquire() is called. If the ping to the database indicates the - connection is not alive a replacement connection will be returned by - pool.acquire(). If ping_interval is a negative value the ping - functionality will be disabled - (default: 60) - - - ``ping_timeout``: the maximum length of time (in milliseconds) to - wait for a connection in the pool to respond to an internal ping to - the database before being discarded and replaced during a call to - acquire() - (default: 5000) - - - ``user``: the name of the database user to connect to - (default: None) - - - ``proxy_user``: the name of the proxy user to connect to. If this - value is not specified, it will be parsed out of user if user is in - the form "user[proxy_user]" - (default: None) - - - ``password``: the password for the database user - (default: None) - - - ``newpassword``: a new password for the database user. The new - password will take effect immediately upon a successful connection to - the database - (default: None) - - - ``wallet_password``: the password to use to decrypt the wallet, if it - is encrypted. This is not the database password. For Oracle - Autonomous Database this is the password created when downloading the - wallet. This value is only used in python-oracledb Thin mode. - (default: None) - - - ``access_token``: a string, or a 2-tuple, or a callable. If it is a - string, it specifies an Entra ID OAuth2 token used for Open - Authorization (OAuth 2.0) token based authentication. If it is a - 2-tuple, it specifies the token and private key strings used for - Oracle Cloud Infrastructure (OCI) Identity and Access Management - (IAM) token based authentication. If it is a callable, it returns - either a string or a 2-tuple used for OAuth 2.0 or OCI IAM token - based authentication and is useful when the pool needs to expand and - create new connections but the current authentication token has - expired - (default: None) - - - ``host``: the hostname or IP address of the machine hosting the - database or the database listener - (default: None) - - - ``port``: the port number on which the database listener is listening - (default: 1521) - - - ``protocol``: one of the strings "tcp" or "tcps" indicating whether - to use unencrypted network traffic or encrypted network traffic (TLS) - (default: "tcp") - - - ``https_proxy``: the hostname or IP address of a proxy host to use - for tunneling secure connections - (default: None) - - - ``https_proxy_port``: the port on which to communicate with the proxy - host - (default: 0) - - - ``service_name``: the service name of the database - (default: None) - - - ``instance_name``: the instance name of the database - (default: None) - - - ``sid``: the system identifier (SID) of the database. Note using a - service_name instead is recommended - (default: None) - - - ``server_type``: the type of server connection that should be - established. If specified, it should be one of strings "dedicated", - "shared" or "pooled" - (default: None) - - - ``cclass``: the connection class to use for Database Resident - Connection Pooling (DRCP) - (default: None) - - - ``purity``: the connection purity to use for Database Resident - Connection Pooling (DRCP) - (default: :attr:`oracledb.PURITY_DEFAULT`) - - - ``expire_time``: the number of minutes between the sending of - keepalive probes. If this parameter is set to a value greater than - zero it enables keepalive - (default: 0) - - - ``retry_count``: the number of times that initial connection - establishment should be retried before the connection attempt is - terminated - (default: 0) - - - ``retry_delay``: the number of seconds to wait before retrying to - establish a connection - (default: 1) - - - ``tcp_connect_timeout``: a float indicating the maximum number of - seconds to wait when establishing a connection to the database host - (default: 20.0) - - - ``ssl_server_dn_match``: a boolean indicating whether the server - certificate distinguished name (DN) should be matched in addition to - the regular certificate verification that is performed. Note that if - the ssl_server_cert_dn parameter is not privided, host name matching - is performed instead - (default: True) - - - ``ssl_server_cert_dn``: the distinguished name (DN) which should be - matched with the server. This value is ignored if the - ssl_server_dn_match parameter is not set to the value True. If - specified this value is used for any verfication. Otherwise the - hostname will be used - (default: None) - - - ``wallet_location``: the directory where the wallet can be found. In - python-oracledb Thin mode this must be the directory containing the - PEM-encoded wallet file ewallet.pem. In python-oracledb Thick mode - this must be the directory containing the file cwallet.sso - (default: None) - - - ``events``: a boolean specifying whether events mode should be - enabled. This value is only used in python-oracledb Thick mode and is - needed for continuous query notification and high availability event - notifications - (default: False) - - - ``externalauth``: a boolean indicating whether to use external - authentication - (default: False) - - - ``mode``: the authorization mode to use. One of the constants - :data:`oracledb.AUTH_MODE_DEFAULT`, - :data:`oracledb.AUTH_MODE_PRELIM`, :data:`oracledb.AUTH_MODE_SYSASM`, - :data:`oracledb.AUTH_MODE_SYSBKP`, :data:`oracledb.AUTH_MODE_SYSDBA`, - :data:`oracledb.AUTH_MODE_SYSDGD`, :data:`oracledb.AUTH_MODE_SYSKMT`, - :data:`oracledb.AUTH_MODE_SYSOPER`, or - :data:`oracledb.AUTH_MODE_SYSRAC` - (default: :attr:`oracledb.AUTH_MODE_DEFAULT`) - - - ``disable_oob``: a boolean indicating whether out-of-band breaks - should be disabled. This value is only used in python-oracledb Thin - mode. It has no effect on Windows which does not support this - functionality - (default: False) - - - ``stmtcachesize``: the size of the statement cache - (default: :attr:`oracledb.defaults.stmtcachesize - `) - - - ``edition``: edition to use for the connection. This parameter cannot - be used simultaneously with the cclass parameter - (default: None) - - - ``tag``: identifies the type of connection that should be returned - from a pool. This value is only used in python-oracledb Thick mode - (default: None) - - - ``matchanytag``: a boolean specifying whether any tag can be used - when acquiring a connection from the pool. This value is only used in - python-oracledb Thick mode - (default: False) - - - ``config_dir``: a directory in which the optional tnsnames.ora - configuration file is located. This value is only used in python- - oracledb Thin mode. For python-oracledb Thick mode, it is used if - :attr:`oracledb.defaults.thick_mode_dsn_passthrough - ` is *False*. Otherwise in Thick - mode use the ``config_dir`` parameter of - :meth:`oracledb.init_oracle_client()` - (default: :attr:`oracledb.defaults.config_dir - `) - - - ``appcontext``: application context used by the connection. It should - be a list of 3-tuples (namespace, name, value) and each entry in the - tuple should be a string - (default: None) - - - ``shardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - (default: None) - - - ``supershardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - (default: None) - - - ``debug_jdwp``: a string with the format "host=;port=" - that specifies the host and port of the PL/SQL debugger. This value - is only used in python-oracledb Thin mode. For python-oracledb Thick - mode set the ORA_DEBUG_JDWP environment variable - (default: None) - - - ``connection_id_prefix``: an application specific prefix that is - added to the connection identifier used for tracing - (default: None) - - - ``ssl_context``: an SSLContext object used for connecting to the - database using TLS. This SSL context will be modified to include the - private key or any certificates found in a separately supplied - wallet. This parameter should only be specified if the default - SSLContext object cannot be used - (default: None) - - - ``sdu``: the requested size of the Session Data Unit (SDU), in bytes. - The value tunes internal buffers used for communication to the - database. Bigger values can increase throughput for large queries or - bulk data loads, but at the cost of higher memory use. The SDU size - that will actually be used is negotiated down to the lower of this - value and the database network SDU configuration value - (default: 8192) - - - ``pool_boundary``: one of the values "statement" or "transaction" - indicating when pooled DRCP connections can be returned to the pool. - This requires the use of DRCP with Oracle Database 23.4 or higher - (default: None) - - - ``use_tcp_fast_open``: a boolean indicating whether to use TCP fast - open. This is an Oracle Autonomous Database Serverless (ADB-S) - specific property for clients connecting from within OCI Cloud - network. Please refer to the ADB-S documentation for more information - (default: False) - - - ``ssl_version``: one of the values ssl.TLSVersion.TLSv1_2 or - ssl.TLSVersion.TLSv1_3 indicating which TLS version to use - (default: None) - - - ``program``: a string recorded by Oracle Database as the program from - which the connection originates - (default: :attr:`oracledb.defaults.program - `) - - - ``machine``: a string recorded by Oracle Database as the name of the - machine from which the connection originates - (default: :attr:`oracledb.defaults.machine - `) - - - ``terminal``: a string recorded by Oracle Database as the terminal - identifier from which the connection originates - (default: :attr:`oracledb.defaults.terminal - `) - - - ``osuser``: a string recorded by Oracle Database as the operating - system user who originated the connection - (default: :attr:`oracledb.defaults.osuser - `) - - - ``driver_name``: a string recorded by Oracle Database as the name of - the driver which originated the connection - (default: :attr:`oracledb.defaults.driver_name - `) - - - ``use_sni``: a boolean indicating whether to use the TLS SNI - extension to bypass the second TLS neogiation that would otherwise be - required - (default: False) - - - ``thick_mode_dsn_passthrough``: a boolean indicating whether to pass - the connect string to the Oracle Client libraries unchanged without - parsing by the driver. Setting this to False makes python-oracledb - Thick and Thin mode applications behave similarly regarding - connection string parameter handling and locating any optional - tnsnames.ora configuration file - (default: :attr:`oracledb.defaults.thick_mode_dsn_passthrough - `) - - - ``extra_auth_params``: a dictionary containing configuration - parameters necessary for Oracle Database authentication using - plugins, such as the Azure and OCI cloud-native authentication - plugins - (default: None) - - - ``pool_name``: the name of the DRCP pool when using multi-pool DRCP - with Oracle Database 23.4, or higher - (default: None) - - - ``on_connect_callback``: a callable that is invoked immediately after - a standalone connection is created or a connection is acquired from a - connection pool, but before it is returned to the caller. A common - use of this callback is for creating and setting an end user security - context object for DeepSec support - (default: None) - - - ``handle``: an integer representing a pointer to a valid service - context handle. This value is only used in python-oracledb Thick - mode. It should be used with extreme caution - (default: 0) - """ - pass - - def __repr__(self): - return ( - self.__class__.__qualname__ + "(" - f"min={self.min!r}, " - f"max={self.max!r}, " - f"increment={self.increment!r}, " - f"connectiontype={self.connectiontype!r}, " - f"getmode={self.getmode!r}, " - f"homogeneous={self.homogeneous!r}, " - f"timeout={self.timeout!r}, " - f"wait_timeout={self.wait_timeout!r}, " - f"max_lifetime_session={self.max_lifetime_session!r}, " - f"session_callback={self.session_callback!r}, " - f"max_sessions_per_shard={self.max_sessions_per_shard!r}, " - f"soda_metadata_cache={self.soda_metadata_cache!r}, " - f"ping_interval={self.ping_interval!r}, " - f"ping_timeout={self.ping_timeout!r}, " - f"user={self.user!r}, " - f"proxy_user={self.proxy_user!r}, " - f"host={self.host!r}, " - f"port={self.port!r}, " - f"protocol={self.protocol!r}, " - f"https_proxy={self.https_proxy!r}, " - f"https_proxy_port={self.https_proxy_port!r}, " - f"service_name={self.service_name!r}, " - f"instance_name={self.instance_name!r}, " - f"sid={self.sid!r}, " - f"server_type={self.server_type!r}, " - f"cclass={self.cclass!r}, " - f"purity={self.purity!r}, " - f"expire_time={self.expire_time!r}, " - f"retry_count={self.retry_count!r}, " - f"retry_delay={self.retry_delay!r}, " - f"tcp_connect_timeout={self.tcp_connect_timeout!r}, " - f"ssl_server_dn_match={self.ssl_server_dn_match!r}, " - f"ssl_server_cert_dn={self.ssl_server_cert_dn!r}, " - f"wallet_location={self.wallet_location!r}, " - f"events={self.events!r}, " - f"externalauth={self.externalauth!r}, " - f"mode={self.mode!r}, " - f"disable_oob={self.disable_oob!r}, " - f"stmtcachesize={self.stmtcachesize!r}, " - f"edition={self.edition!r}, " - f"tag={self.tag!r}, " - f"matchanytag={self.matchanytag!r}, " - f"config_dir={self.config_dir!r}, " - f"appcontext={self.appcontext!r}, " - f"shardingkey={self.shardingkey!r}, " - f"supershardingkey={self.supershardingkey!r}, " - f"debug_jdwp={self.debug_jdwp!r}, " - f"connection_id_prefix={self.connection_id_prefix!r}, " - f"ssl_context={self.ssl_context!r}, " - f"sdu={self.sdu!r}, " - f"pool_boundary={self.pool_boundary!r}, " - f"use_tcp_fast_open={self.use_tcp_fast_open!r}, " - f"ssl_version={self.ssl_version!r}, " - f"program={self.program!r}, " - f"machine={self.machine!r}, " - f"terminal={self.terminal!r}, " - f"osuser={self.osuser!r}, " - f"driver_name={self.driver_name!r}, " - f"use_sni={self.use_sni!r}, " - f"thick_mode_dsn_passthrough={self.thick_mode_dsn_passthrough!r}, " - f"extra_auth_params={self.extra_auth_params!r}, " - f"pool_name={self.pool_name!r}, " - f"on_connect_callback={self.on_connect_callback!r}" - ")" - ) - - @property - def connectiontype(self) -> Type["oracledb.Connection"]: - """ - The class of the connection that should be returned during calls to - pool.acquire(). It must be oracledb.Connection or a subclass of - oracledb.Connection. - """ - return self._impl.connectiontype - - @property - def getmode(self) -> oracledb.PoolGetMode: - """ - How pool.acquire() will behave. One of the constants - :data:`oracledb.POOL_GETMODE_WAIT`, - :data:`oracledb.POOL_GETMODE_NOWAIT`, - :data:`oracledb.POOL_GETMODE_FORCEGET`, or - :data:`oracledb.POOL_GETMODE_TIMEDWAIT`. - """ - return oracledb.PoolGetMode(self._impl.getmode) - - @property - def homogeneous(self) -> bool: - """ - A boolean indicating whether the connections in the pool are - homogeneous (same user) or heterogeneous (multiple users). - """ - return self._impl.homogeneous - - @property - def increment(self) -> int: - """ - The number of connections that should be added to the pool whenever the - pool needs to grow. - """ - return self._impl.increment - - @property - def max(self) -> int: - """ - The maximum number of connections the pool should contain. - """ - return self._impl.max - - @property - def max_lifetime_session(self) -> int: - """ - The length of time (in seconds) that connections can remain in the - pool. If it is 0 then connections may remain in the pool indefinitely. - """ - return self._impl.max_lifetime_session - - @property - def max_sessions_per_shard(self) -> int: - """ - The maximum number of connections that may be associated with a - particular shard. - """ - return self._impl.max_sessions_per_shard - - @property - def min(self) -> int: - """ - The minimum number of connections the pool should contain. - """ - return self._impl.min - - @property - def ping_interval(self) -> int: - """ - The length of time (in seconds) after which an unused connection in the - pool will be a candidate for pinging when pool.acquire() is called. If - the ping to the database indicates the connection is not alive a - replacement connection will be returned by pool.acquire(). If - ping_interval is a negative value the ping functionality will be - disabled. - """ - return self._impl.ping_interval - - @property - def ping_timeout(self) -> int: - """ - The maximum length of time (in milliseconds) to wait for a connection - in the pool to respond to an internal ping to the database before being - discarded and replaced during a call to acquire(). - """ - return self._impl.ping_timeout - - @property - def session_callback(self) -> Callable: - """ - A callable that is invoked when a connection is returned from the pool - for the first time, or when the connection tag differs from the one - requested. - """ - return self._impl.session_callback - - @property - def soda_metadata_cache(self) -> bool: - """ - A boolean indicating whether or not the SODA metadata cache should be - enabled. - """ - return self._impl.soda_metadata_cache - - @property - def timeout(self) -> int: - """ - The length of time (in seconds) that a connection may remain idle in - the pool before it is terminated. If it is 0 then connections are never - terminated. - """ - return self._impl.timeout - - @property - def wait_timeout(self) -> int: - """ - The length of time (in milliseconds) that a caller should wait when - acquiring a connection from the pool with getmode set to - :data:`oracledb.POOL_GETMODE_TIMEDWAIT`. - """ - return self._impl.wait_timeout - - def copy(self) -> "PoolParams": - """ - Creates a copy of the parameters and returns it. - """ - params = PoolParams.__new__(PoolParams) - params._impl = self._impl.copy() - return params - - @utils.params_setter - def set( - self, - *, - min: Optional[int] = None, - max: Optional[int] = None, - increment: Optional[int] = None, - connectiontype: Optional[Type["oracledb.Connection"]] = None, - getmode: Optional[oracledb.PoolGetMode] = None, - homogeneous: Optional[bool] = None, - timeout: Optional[int] = None, - wait_timeout: Optional[int] = None, - max_lifetime_session: Optional[int] = None, - session_callback: Optional[Callable] = None, - max_sessions_per_shard: Optional[int] = None, - soda_metadata_cache: Optional[bool] = None, - ping_interval: Optional[int] = None, - ping_timeout: Optional[int] = None, - user: Optional[str] = None, - proxy_user: Optional[str] = None, - password: Optional[str] = None, - newpassword: Optional[str] = None, - wallet_password: Optional[str] = None, - access_token: Optional[Union[str, tuple, Callable]] = None, - host: Optional[str] = None, - port: Optional[int] = None, - protocol: Optional[str] = None, - https_proxy: Optional[str] = None, - https_proxy_port: Optional[int] = None, - service_name: Optional[str] = None, - instance_name: Optional[str] = None, - sid: Optional[str] = None, - server_type: Optional[str] = None, - cclass: Optional[str] = None, - purity: Optional[oracledb.Purity] = None, - expire_time: Optional[int] = None, - retry_count: Optional[int] = None, - retry_delay: Optional[int] = None, - tcp_connect_timeout: Optional[float] = None, - ssl_server_dn_match: Optional[bool] = None, - ssl_server_cert_dn: Optional[str] = None, - wallet_location: Optional[str] = None, - events: Optional[bool] = None, - externalauth: Optional[bool] = None, - mode: Optional[oracledb.AuthMode] = None, - disable_oob: Optional[bool] = None, - stmtcachesize: Optional[int] = None, - edition: Optional[str] = None, - tag: Optional[str] = None, - matchanytag: Optional[bool] = None, - config_dir: Optional[str] = None, - appcontext: Optional[list] = None, - shardingkey: Optional[list] = None, - supershardingkey: Optional[list] = None, - debug_jdwp: Optional[str] = None, - connection_id_prefix: Optional[str] = None, - ssl_context: Optional[Any] = None, - sdu: Optional[int] = None, - pool_boundary: Optional[str] = None, - use_tcp_fast_open: Optional[bool] = None, - ssl_version: Optional[ssl.TLSVersion] = None, - program: Optional[str] = None, - machine: Optional[str] = None, - terminal: Optional[str] = None, - osuser: Optional[str] = None, - driver_name: Optional[str] = None, - use_sni: Optional[bool] = None, - thick_mode_dsn_passthrough: Optional[bool] = None, - extra_auth_params: Optional[dict] = None, - pool_name: Optional[str] = None, - on_connect_callback: Optional[Callable] = None, - handle: Optional[int] = None, - ): - """ - All parameters are optional. A brief description of each parameter - follows: - - - ``min``: the minimum number of connections the pool should contain - - - ``max``: the maximum number of connections the pool should contain - - - ``increment``: the number of connections that should be added to the - pool whenever the pool needs to grow - - - ``connectiontype``: the class of the connection that should be - returned during calls to pool.acquire(). It must be - oracledb.Connection or a subclass of oracledb.Connection - - - ``getmode``: how pool.acquire() will behave. One of the constants - :data:`oracledb.POOL_GETMODE_WAIT`, - :data:`oracledb.POOL_GETMODE_NOWAIT`, - :data:`oracledb.POOL_GETMODE_FORCEGET`, or - :data:`oracledb.POOL_GETMODE_TIMEDWAIT` - - - ``homogeneous``: a boolean indicating whether the connections in the - pool are homogeneous (same user) or heterogeneous (multiple users) - - - ``timeout``: the length of time (in seconds) that a connection may - remain idle in the pool before it is terminated. If it is 0 then - connections are never terminated - - - ``wait_timeout``: the length of time (in milliseconds) that a caller - should wait when acquiring a connection from the pool with getmode - set to :data:`oracledb.POOL_GETMODE_TIMEDWAIT` - - - ``max_lifetime_session``: the length of time (in seconds) that - connections can remain in the pool. If it is 0 then connections may - remain in the pool indefinitely - - - ``session_callback``: a callable that is invoked when a connection is - returned from the pool for the first time, or when the connection tag - differs from the one requested - - - ``max_sessions_per_shard``: the maximum number of connections that - may be associated with a particular shard - - - ``soda_metadata_cache``: a boolean indicating whether or not the SODA - metadata cache should be enabled - - - ``ping_interval``: the length of time (in seconds) after which an - unused connection in the pool will be a candidate for pinging when - pool.acquire() is called. If the ping to the database indicates the - connection is not alive a replacement connection will be returned by - pool.acquire(). If ping_interval is a negative value the ping - functionality will be disabled - - - ``ping_timeout``: the maximum length of time (in milliseconds) to - wait for a connection in the pool to respond to an internal ping to - the database before being discarded and replaced during a call to - acquire() - - - ``user``: the name of the database user to connect to - - - ``proxy_user``: the name of the proxy user to connect to. If this - value is not specified, it will be parsed out of user if user is in - the form "user[proxy_user]" - - - ``password``: the password for the database user - - - ``newpassword``: a new password for the database user. The new - password will take effect immediately upon a successful connection to - the database - - - ``wallet_password``: the password to use to decrypt the wallet, if it - is encrypted. This is not the database password. For Oracle - Autonomous Database this is the password created when downloading the - wallet. This value is only used in python-oracledb Thin mode. - - - ``access_token``: a string, or a 2-tuple, or a callable. If it is a - string, it specifies an Entra ID OAuth2 token used for Open - Authorization (OAuth 2.0) token based authentication. If it is a - 2-tuple, it specifies the token and private key strings used for - Oracle Cloud Infrastructure (OCI) Identity and Access Management - (IAM) token based authentication. If it is a callable, it returns - either a string or a 2-tuple used for OAuth 2.0 or OCI IAM token - based authentication and is useful when the pool needs to expand and - create new connections but the current authentication token has - expired - - - ``host``: the hostname or IP address of the machine hosting the - database or the database listener - - - ``port``: the port number on which the database listener is listening - - - ``protocol``: one of the strings "tcp" or "tcps" indicating whether - to use unencrypted network traffic or encrypted network traffic (TLS) - - - ``https_proxy``: the hostname or IP address of a proxy host to use - for tunneling secure connections - - - ``https_proxy_port``: the port on which to communicate with the proxy - host - - - ``service_name``: the service name of the database - - - ``instance_name``: the instance name of the database - - - ``sid``: the system identifier (SID) of the database. Note using a - service_name instead is recommended - - - ``server_type``: the type of server connection that should be - established. If specified, it should be one of strings "dedicated", - "shared" or "pooled" - - - ``cclass``: the connection class to use for Database Resident - Connection Pooling (DRCP) - - - ``purity``: the connection purity to use for Database Resident - Connection Pooling (DRCP) - - - ``expire_time``: the number of minutes between the sending of - keepalive probes. If this parameter is set to a value greater than - zero it enables keepalive - - - ``retry_count``: the number of times that initial connection - establishment should be retried before the connection attempt is - terminated - - - ``retry_delay``: the number of seconds to wait before retrying to - establish a connection - - - ``tcp_connect_timeout``: a float indicating the maximum number of - seconds to wait when establishing a connection to the database host - - - ``ssl_server_dn_match``: a boolean indicating whether the server - certificate distinguished name (DN) should be matched in addition to - the regular certificate verification that is performed. Note that if - the ssl_server_cert_dn parameter is not privided, host name matching - is performed instead - - - ``ssl_server_cert_dn``: the distinguished name (DN) which should be - matched with the server. This value is ignored if the - ssl_server_dn_match parameter is not set to the value True. If - specified this value is used for any verfication. Otherwise the - hostname will be used - - - ``wallet_location``: the directory where the wallet can be found. In - python-oracledb Thin mode this must be the directory containing the - PEM-encoded wallet file ewallet.pem. In python-oracledb Thick mode - this must be the directory containing the file cwallet.sso - - - ``events``: a boolean specifying whether events mode should be - enabled. This value is only used in python-oracledb Thick mode and is - needed for continuous query notification and high availability event - notifications - - - ``externalauth``: a boolean indicating whether to use external - authentication - - - ``mode``: the authorization mode to use. One of the constants - :data:`oracledb.AUTH_MODE_DEFAULT`, - :data:`oracledb.AUTH_MODE_PRELIM`, :data:`oracledb.AUTH_MODE_SYSASM`, - :data:`oracledb.AUTH_MODE_SYSBKP`, :data:`oracledb.AUTH_MODE_SYSDBA`, - :data:`oracledb.AUTH_MODE_SYSDGD`, :data:`oracledb.AUTH_MODE_SYSKMT`, - :data:`oracledb.AUTH_MODE_SYSOPER`, or - :data:`oracledb.AUTH_MODE_SYSRAC` - - - ``disable_oob``: a boolean indicating whether out-of-band breaks - should be disabled. This value is only used in python-oracledb Thin - mode. It has no effect on Windows which does not support this - functionality - - - ``stmtcachesize``: the size of the statement cache - - - ``edition``: edition to use for the connection. This parameter cannot - be used simultaneously with the cclass parameter - - - ``tag``: identifies the type of connection that should be returned - from a pool. This value is only used in python-oracledb Thick mode - - - ``matchanytag``: a boolean specifying whether any tag can be used - when acquiring a connection from the pool. This value is only used in - python-oracledb Thick mode - - - ``config_dir``: a directory in which the optional tnsnames.ora - configuration file is located. This value is only used in python- - oracledb Thin mode. For python-oracledb Thick mode, it is used if - :attr:`oracledb.defaults.thick_mode_dsn_passthrough - ` is *False*. Otherwise in Thick - mode use the ``config_dir`` parameter of - :meth:`oracledb.init_oracle_client()` - - - ``appcontext``: application context used by the connection. It should - be a list of 3-tuples (namespace, name, value) and each entry in the - tuple should be a string - - - ``shardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - - - ``supershardingkey``: a list of strings, numbers, bytes or dates that - identify the database shard to connect to. This value is only used in - python-oracledb Thick mode - - - ``debug_jdwp``: a string with the format "host=;port=" - that specifies the host and port of the PL/SQL debugger. This value - is only used in python-oracledb Thin mode. For python-oracledb Thick - mode set the ORA_DEBUG_JDWP environment variable - - - ``connection_id_prefix``: an application specific prefix that is - added to the connection identifier used for tracing - - - ``ssl_context``: an SSLContext object used for connecting to the - database using TLS. This SSL context will be modified to include the - private key or any certificates found in a separately supplied - wallet. This parameter should only be specified if the default - SSLContext object cannot be used - - - ``sdu``: the requested size of the Session Data Unit (SDU), in bytes. - The value tunes internal buffers used for communication to the - database. Bigger values can increase throughput for large queries or - bulk data loads, but at the cost of higher memory use. The SDU size - that will actually be used is negotiated down to the lower of this - value and the database network SDU configuration value - - - ``pool_boundary``: one of the values "statement" or "transaction" - indicating when pooled DRCP connections can be returned to the pool. - This requires the use of DRCP with Oracle Database 23.4 or higher - - - ``use_tcp_fast_open``: a boolean indicating whether to use TCP fast - open. This is an Oracle Autonomous Database Serverless (ADB-S) - specific property for clients connecting from within OCI Cloud - network. Please refer to the ADB-S documentation for more information - - - ``ssl_version``: one of the values ssl.TLSVersion.TLSv1_2 or - ssl.TLSVersion.TLSv1_3 indicating which TLS version to use - - - ``program``: a string recorded by Oracle Database as the program from - which the connection originates - - - ``machine``: a string recorded by Oracle Database as the name of the - machine from which the connection originates - - - ``terminal``: a string recorded by Oracle Database as the terminal - identifier from which the connection originates - - - ``osuser``: a string recorded by Oracle Database as the operating - system user who originated the connection - - - ``driver_name``: a string recorded by Oracle Database as the name of - the driver which originated the connection - - - ``use_sni``: a boolean indicating whether to use the TLS SNI - extension to bypass the second TLS neogiation that would otherwise be - required - - - ``thick_mode_dsn_passthrough``: a boolean indicating whether to pass - the connect string to the Oracle Client libraries unchanged without - parsing by the driver. Setting this to False makes python-oracledb - Thick and Thin mode applications behave similarly regarding - connection string parameter handling and locating any optional - tnsnames.ora configuration file - - - ``extra_auth_params``: a dictionary containing configuration - parameters necessary for Oracle Database authentication using - plugins, such as the Azure and OCI cloud-native authentication - plugins - - - ``pool_name``: the name of the DRCP pool when using multi-pool DRCP - with Oracle Database 23.4, or higher - - - ``on_connect_callback``: a callable that is invoked immediately after - a standalone connection is created or a connection is acquired from a - connection pool, but before it is returned to the caller. A common - use of this callback is for creating and setting an end user security - context object for DeepSec support - - - ``handle``: an integer representing a pointer to a valid service - context handle. This value is only used in python-oracledb Thick - mode. It should be used with extreme caution - """ - pass diff --git a/.venv/lib/python3.9/site-packages/oracledb/py.typed b/.venv/lib/python3.9/site-packages/oracledb/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/oracledb/secret_values.py b/.venv/lib/python3.9/site-packages/oracledb/secret_values.py deleted file mode 100644 index 1a0bc08..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/secret_values.py +++ /dev/null @@ -1,170 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# secret_values.py -# -# Contains classes that allow storage of secret values that should not be -# exposed in memory dumps. -# ----------------------------------------------------------------------------- - -import datetime -import threading -from typing import Any, Optional, Union - -from .base_impl import SecretValueImpl - - -class SecretValue: - - def __init__( - self, value: str, *, expires: Optional[datetime.datetime] = None - ): - self._impl = SecretValueImpl(value, expires) - - def __hash__(self): - return self._impl.__hash__() - - @property - def value(self) -> Optional[str]: - """ - Returns the secret value as a string. If the value has expired, *None* - will be returned instead. - """ - return self._impl.get_value() - - @value.setter - def value( - self, value: str, expires: Optional[datetime.datetime] = None - ) -> None: - """ - Sets the value of the secret from a string. - """ - self._impl.set_value(value, expires) - - @property - def value_bytes(self) -> Optional[bytes]: - """ - Returns the secret value as bytes. If the value has expired, *None* - will be returned instead. - """ - return self._impl.get_value_as_bytes() - - @value_bytes.setter - def value_bytes( - self, value: bytes, expires: Optional[datetime.datetime] = None - ) -> None: - """ - Sets the value of the secret from bytes. - """ - self._impl.set_value(value, expires) - - -class SecretValueCache: - - def __init__(self): - self.lock = threading.Lock() - self.thread_local_data = threading.local() - self.global_data = dict() - - def get_value( - self, key: Any, thread_local: bool = False - ) -> Optional[SecretValue]: - """ - Returns a value in the cache, or *None* if the key is not found. If the - value has expired, *None* is also returned and the value is removed - from the cache. - """ - with self.lock: - d = ( - self.thread_local_data.__dict__ - if thread_local - else self.global_data - ) - secret_value = d.get(key) - if secret_value is not None and secret_value.value is None: - del d[key] - return None - return secret_value - - def store_value( - self, - key: Any, - value: Union[str, bytes], - thread_local: bool = False, - expires: Optional[datetime.datetime] = None, - ) -> SecretValue: - """ - Stores a value in the cache. - """ - with self.lock: - d = ( - self.thread_local_data.__dict__ - if thread_local - else self.global_data - ) - if value is None: - if key in d: - del d[key] - else: - secret_value = SecretValue(value, expires=expires) - d[key] = secret_value - return secret_value - - -# create an instance of the cache for use by the functions below -secret_value_cache = SecretValueCache() - - -def get_secret( - key: Any, *, thread_local: bool = False -) -> Optional[SecretValue]: - """ - Returns a secret stored in the cache. If the ``thread_local`` parameter is - *True*, it will be specific to the particular thread that is running; - otherwise, it will be the value available to all threads. If the value is - not found in the cache, *None* is returned. If the value is found in the - cache but it has expired, *None* is also returned and the value is removed - from the cache. - """ - return secret_value_cache.get_value(key, thread_local) - - -def save_secret( - key: Any, - value: Optional[Union[str, bytes]], - *, - thread_local: bool = False, - expires: Optional[datetime.datetime] = None, -) -> SecretValue: - """ - Saves a secret in an internal cache for later retrieval. This can help - protect a secret from being exposed in memory dumps. If the - ``thread_local`` parameter is *True*, the cache will be specific to the - particular thread that is running; otherwise, the value will be available - to all threads. If the value supplied is *None* and a value already exists - in the cache for the supplied key, then the stored value will be removed - from the cache. - """ - return secret_value_cache.store_value(key, value, thread_local, expires) diff --git a/.venv/lib/python3.9/site-packages/oracledb/soda.py b/.venv/lib/python3.9/site-packages/oracledb/soda.py deleted file mode 100644 index 39a6fa7..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/soda.py +++ /dev/null @@ -1,746 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# soda.py -# -# Contains the classes for managing Simple Oracle Document Access (SODA): -# SodaDatabase, SodaCollection, SodaDocument, SodaDocCursor and SodaOperation. -# ----------------------------------------------------------------------------- - -from typing import Any, Optional, Union -from typing_extensions import Self -import json - -from .base import BaseMetaClass -from . import errors - - -class SodaDatabase(metaclass=BaseMetaClass): - def __repr__(self): - cls_name = self.__class__._public_name - return f"<{cls_name} on {self._conn!r}>" - - @classmethod - def _from_impl(cls, conn, impl): - db = cls.__new__(cls) - db._conn = conn - db._impl = impl - return db - - def _create_doc_impl( - self, content: Any, key: str = None, media_type: str = None - ) -> "SodaDocument": - """ - Internal method used for creating a document implementation object with - the given content, key and media type. - """ - if isinstance(content, str): - content_bytes = content.encode() - elif isinstance(content, bytes): - content_bytes = content - elif self._impl.supports_json: - return self._impl.create_json_document(content, key) - else: - content_bytes = json.dumps(content).encode() - return self._impl.create_document(content_bytes, key, media_type) - - def createCollection( - self, - name: str, - metadata: Optional[Union[str, dict]] = None, - mapMode: bool = False, - ) -> "SodaCollection": - """ - Creates a SODA collection with the given name and returns a new SODA - collection object. If you try to create a collection, and a collection - with the same name and metadata already exists, then that existing - collection is opened without error. - - If ``metadata`` is specified, it is expected to be a string containing - valid JSON or a dictionary that will be transformed into a JSON string. - This JSON permits you to specify the configuration of the collection - including storage options; specifying the presence or absence of - columns for creation timestamp, last modified timestamp and version; - whether the collection can store only JSON documents; and methods of - key and version generation. The default metadata creates a collection - that only supports JSON documents and uses system generated keys. - - If the ``mapMode`` parameter is set to *True*, the new collection is - mapped to an existing table instead of creating a table. If a - collection is created in this way, dropping the collection will not - drop the existing table either. - """ - if metadata is not None and not isinstance(metadata, str): - metadata = json.dumps(metadata) - collection_impl = self._impl.create_collection(name, metadata, mapMode) - return SodaCollection._from_impl(self, collection_impl) - - def createDocument( - self, - content: Any, - key: Optional[str] = None, - mediaType: str = "application/json", - ) -> "SodaDocument": - """ - Creates a SODA document usable for SODA write operations. You only need - to use this method if your collection requires client-assigned keys or - has non-JSON content; otherwise, you can pass your content directly to - SODA write operations. SodaDocument attributes - :attr:`~SodaDoc.createdOn`, :attr:`~SodaDoc.lastModified`, and - :attr:`~SodaDoc.version` will be *None*. - - The ``content`` parameter can be a dictionary or list which will be - transformed into a JSON string and then UTF-8 encoded. It can also be a - string which will be UTF-8 encoded or it can be a bytes object which - will be stored unchanged. If a bytes object is provided and the content - is expected to be JSON, note that SODA only supports UTF-8, UTF-16LE, - and UTF-16BE encodings. - - The ``key`` parameter should only be supplied if the collection in - which the document is to be placed requires client-assigned keys. - - The ``mediaType`` parameter should only be supplied if the collection - in which the document is to be placed supports non-JSON documents and - the content for this document is non-JSON. Using a standard MIME type - for this value is recommended but any string will be accepted. - """ - doc_impl = self._create_doc_impl(content, key, mediaType) - return SodaDocument._from_impl(doc_impl) - - def getCollectionNames( - self, startName: Optional[str] = None, limit: int = 0 - ) -> list[str]: - """ - Returns a list of the names of collections in the database that match - the criteria, in alphabetical order. - - If the ``startName`` parameter is specified, the list of names returned - will start with this value and also contain any names that fall after - this value in alphabetical order. - - If the ``limit`` parameter is specified and is non-zero, the number of - collection names returned will be limited to this value. - """ - return self._impl.get_collection_names(startName, limit) - - def openCollection(self, name: str) -> "SodaCollection": - """ - Opens an existing collection with the given name and returns a new SODA - collection object. If a collection with that name does not exist, - *None* is returned. - """ - collection_impl = self._impl.open_collection(name) - if collection_impl is not None: - return SodaCollection._from_impl(self, collection_impl) - - -class SodaCollection(metaclass=BaseMetaClass): - @classmethod - def _from_impl(cls, db, impl): - coll = cls.__new__(cls) - coll._db = db - coll._impl = impl - return coll - - def _process_doc_arg(self, arg): - if isinstance(arg, SodaDocument): - return arg._impl - return self._db._create_doc_impl(arg) - - def createIndex(self, spec: Union[dict, str]) -> None: - """ - Creates an index on a SODA collection. - - The ``spec`` parameter is expected to be a dictionary or a JSON-encoded - string. - - Note that a commit should be performed before attempting to create an - index. - """ - if isinstance(spec, dict): - spec = json.dumps(spec) - elif not isinstance(spec, str): - raise TypeError("expecting a dictionary or string") - self._impl.create_index(spec) - - def drop(self) -> bool: - """ - Drops the collection from the database, if it exists. Note that if the - collection was created with ``mapMode`` set to *True*, the underlying - table will not be dropped. - - A boolean value is returned indicating if the collection was actually - dropped. - """ - return self._impl.drop() - - def dropIndex(self, name: str, force: bool = False) -> bool: - """ - Drops the index with the specified name, if it exists. - - The force parameter, if set to *True*, can be used to force the - dropping of an index that the underlying Oracle Database domain index - does not normally permit. This is only applicable to spatial and JSON - search indexes. - - A boolean value is returned indicating if the index was actually - dropped. - """ - return self._impl.drop_index(name, force) - - def find(self) -> "SodaOperation": - """ - Begins an operation that will act upon documents in the collection. It - creates and returns a SodaOperation object which is used to specify the - criteria and the operation that will be performed on the documents that - match that criteria. - """ - return SodaOperation(self) - - def getDataGuide(self) -> "SodaDocument": - """ - Returns a SODA document object containing property names, data types, - and lengths inferred from the JSON documents in the collection. It can - be useful for exploring the schema of a collection. Note that this - method is only supported for JSON-only collections where a JSON search - index has been created with the ‘dataguide’ option enabled. If there - are no documents in the collection, *None* is returned. - """ - doc_impl = self._impl.get_data_guide() - if doc_impl is not None: - return SodaDocument._from_impl(doc_impl) - - def insertMany(self, docs: list) -> None: - """ - Inserts a list of documents into the collection at one time. Each of - the input documents can be a dictionary or list or an existing SODA - document object. - - This method requires Oracle Client 18.5 (or later) and is available - only as a preview. - """ - doc_impls = [self._process_doc_arg(d) for d in docs] - self._impl.insert_many(doc_impls, hint=None, return_docs=False) - - def insertManyAndGet( - self, docs: list, hint: Optional[str] = None - ) -> list["SodaDocument"]: - """ - Similar to :meth:`SodaCollection.insertMany()`, this method inserts a - list of documents into the collection at one time. The only difference - is that it returns a list of SODA Document objects. Note that for - performance reasons the returned documents do not contain the content. - - The ``hint`` parameter, if specified, supplies a hint to the database - when processing the SODA operation. This is expected to be a string in - the same format as SQL hints but without any comment characters, for - example hint="MONITOR". While you could use this to pass any SQL hint, - the hints MONITOR (turn on monitoring) and NO_MONITOR (turn off - monitoring) are the most useful. Use of the ``hint`` parameter requires - Oracle Client 21.3 or later (or Oracle Client 19 from 19.11). - - This method requires Oracle Client 18.5 (or later). - """ - doc_impls = [self._process_doc_arg(d) for d in docs] - if hint is not None and not isinstance(hint, str): - raise TypeError("expecting a string") - return_doc_impls = self._impl.insert_many( - doc_impls, hint, return_docs=True - ) - return [SodaDocument._from_impl(i) for i in return_doc_impls] - - def insertOne(self, doc: Any) -> None: - """ - Inserts a given document into the collection. The input document can be - a dictionary or list or an existing SODA document object. - """ - doc_impl = self._process_doc_arg(doc) - self._impl.insert_one(doc_impl, hint=None, return_doc=False) - - def insertOneAndGet( - self, doc: Any, hint: Optional[str] = None - ) -> "SodaDocument": - """ - Similar to :meth:`~SodaCollection.insertOne()`, this method inserts a - given document into the collection. The only difference is that it - returns a SODA Document object. Note that for performance reasons the - returned document does not contain the content. - - The ``hint`` parameter, if specified, supplies a hint to the database - when processing the SODA operation. This is expected to be a string in - the same format as SQL hints but without any comment characters, for - example hint="MONITOR". While you could use this to pass any SQL hint, - the hints MONITOR (turn on monitoring) and NO_MONITOR (turn off - monitoring) are the most useful. Use of the ``hint`` parameter requires - Oracle Client 21.3 or later (or Oracle Client 19 from 19.11). - """ - doc_impl = self._process_doc_arg(doc) - if hint is not None and not isinstance(hint, str): - raise TypeError("expecting a string") - return_doc_impl = self._impl.insert_one( - doc_impl, hint, return_doc=True - ) - return SodaDocument._from_impl(return_doc_impl) - - def listIndexes(self) -> list: - """ - Returns a list of specifications for the indexes found on the - collection. - - This method requires Oracle Client 21.3 or later (or Oracle Client 19 - from 19.13). - """ - return [json.loads(s) for s in self._impl.list_indexes()] - - @property - def metadata(self) -> dict: - """ - This read-only attribute returns a dictionary containing the metadata - that was used to create the collection. - """ - return json.loads(self._impl.get_metadata()) - - @property - def name(self) -> str: - """ - This read-only attribute returns the name of the collection. - """ - return self._impl.name - - def save(self, doc: Any) -> None: - """ - Saves a document into the collection. This method is equivalent to - :meth:`~SodaCollection.insertOne()` except that if client-assigned keys - are used, and the document with the specified key already exists in the - collection, it will be replaced with the input document. - - This method requires Oracle Client 19.9 (or later) in addition to the - usual SODA requirements. - """ - doc_impl = self._process_doc_arg(doc) - self._impl.save(doc_impl, hint=None, return_doc=False) - - def saveAndGet( - self, doc: Any, hint: Optional[str] = None - ) -> "SodaDocument": - """ - Saves a document into the collection. This method is equivalent to - :meth:`~SodaCollection.insertOneAndGet()` except that if - client-assigned keys are used, and the document with the specified key - already exists in the collection, it will be replaced with the input - document. - - The ``hint`` parameter, if specified, supplies a hint to the database - when processing the SODA operation. This is expected to be a string in - the same format as SQL hints but without any comment characters, for - example hint="MONITOR". While you could use this to pass any SQL hint, - the hints MONITOR (turn on monitoring) and NO_MONITOR (turn off - monitoring) are the most useful. Use of the ``hint`` parameter requires - Oracle Client 21.3 or later (or Oracle Client 19 from 19.11). - - This method requires Oracle Client 19.9 (or later) in addition to the - usual SODA requirements. - """ - doc_impl = self._process_doc_arg(doc) - if hint is not None and not isinstance(hint, str): - raise TypeError("expecting a string") - return_doc_impl = self._impl.save(doc_impl, hint, return_doc=True) - return SodaDocument._from_impl(return_doc_impl) - - def truncate(self) -> None: - """ - Removes all of the documents in the collection, similarly to what is - done for rows in a table by the TRUNCATE TABLE statement. - """ - self._impl.truncate() - - -class SodaDocument(metaclass=BaseMetaClass): - @classmethod - def _from_impl(cls, impl): - doc = cls.__new__(cls) - doc._impl = impl - return doc - - @property - def createdOn(self) -> str: - """ - This read-only attribute returns the creation time of the document in - ISO 8601 format. Documents created by - :meth:`SodaDatabase.createDocument()` or fetched from collections where - this attribute is not stored will return *None*. - """ - return self._impl.get_created_on() - - def getContent(self) -> Union[dict, list]: - """ - Returns the content of the document as a dictionary or list. This - method assumes that the content is application/json and will raise an - exception if this is not the case. If there is no content, however, - *None* will be returned. - """ - content, encoding = self._impl.get_content() - if isinstance(content, bytes) and self.mediaType == "application/json": - return json.loads(content.decode(encoding)) - return content - - def getContentAsBytes(self) -> bytes: - """ - Returns the content of the document as a bytes object. If there is no - content, however, *None* will be returned. - """ - content, encoding = self._impl.get_content() - if isinstance(content, bytes): - return content - elif content is not None: - return str(content).encode() - - def getContentAsString(self) -> str: - """ - Returns the content of the document as a string. If the document - encoding is not known, UTF-8 will be used. If there is no content, - however, *None* will be returned. - """ - content, encoding = self._impl.get_content() - if isinstance(content, bytes): - return content.decode(encoding) - elif content is not None: - return str(content) - - @property - def key(self) -> str: - """ - This read-only attribute returns the unique key assigned to this - document. Documents created by :meth:`SodaDatabase.createDocument()` - may not have a value assigned to them and return *None*. - """ - return self._impl.get_key() - - @property - def lastModified(self) -> str: - """ - This read-only attribute returns the last modified time of the document - in ISO 8601 format. Documents created by - :meth:`SodaDatabase.createDocument()` or fetched from collections where - this attribute is not stored will return *None*. - """ - return self._impl.get_last_modified() - - @property - def mediaType(self) -> str: - """ - This read-only attribute returns the media type assigned to the - document. By convention this is expected to be a MIME type but no - checks are performed on this value. If a value is not specified when - calling :meth:`SodaDatabase.createDocument()` or the document is - fetched from a collection where this component is not stored, the - string “application/json” is returned. - """ - return self._impl.get_media_type() - - @property - def version(self) -> str: - """ - This read-only attribute returns the version assigned to this document. - Documents created by :meth:`SodaDatabase.createDocument()` or fetched - from collections where this attribute is not stored will return *None*. - """ - return self._impl.get_version() - - -class SodaDocCursor(metaclass=BaseMetaClass): - def __iter__(self): - return self - - def __next__(self): - if self._impl is None: - errors._raise_err(errors.ERR_CURSOR_NOT_OPEN) - doc_impl = self._impl.get_next_doc() - if doc_impl is not None: - return SodaDocument._from_impl(doc_impl) - raise StopIteration - - @classmethod - def _from_impl(cls, impl): - cursor = cls.__new__(cls) - cursor._impl = impl - return cursor - - def close(self) -> None: - """ - Closes the cursor now, rather than whenever __del__ is called. The - cursor will be unusable from this point forward; an Error exception - will be raised if any operation is attempted with the cursor. - """ - if self._impl is None: - errors._raise_err(errors.ERR_CURSOR_NOT_OPEN) - self._impl.close() - self._impl = None - - -class SodaOperation(metaclass=BaseMetaClass): - def __init__(self, collection: SodaCollection) -> None: - self._collection = collection - self._key = None - self._keys = None - self._version = None - self._filter = None - self._hint = None - self._skip = None - self._limit = None - self._fetch_array_size = None - self._lock = False - - def count(self) -> int: - """ - Returns a count of the number of documents in the collection that match - the criteria. If :meth:`~SodaOperation.skip()` or - :meth:`~SodaOperation.limit()` were called on this object, an - exception is raised. - """ - return self._collection._impl.get_count(self) - - def fetchArraySize(self, value: int) -> Self: - """ - This is a tuning method to specify the number of documents that are - internally fetched in batches by calls to - :meth:`~SodaOperation.getCursor()` and - :meth:`~SodaOperation.getDocuments()`. It does not affect how many - documents are returned to the application. - - If ``fetchArraySize()`` is not used, or the ``value`` parameter is *0*, - the array size will default to *100*. - - As a convenience, the SodaOperation object is returned so that further - criteria can be specified by chaining methods together. - - This method is only available when using Oracle Client 19.5, or later. - """ - if not isinstance(value, int) or value < 0: - raise TypeError("expecting integer >= 0") - if value == 0: - self._fetch_array_size = None - else: - self._fetch_array_size = value - return self - - def filter(self, value: Union[dict, str]) -> Self: - """ - Sets a filter specification for complex document queries and ordering - of JSON documents. Filter specifications must be provided as a - dictionary or JSON-encoded string and can include comparisons, regular - expressions, logical and spatial operators, among others. - - As a convenience, the SodaOperation object is returned so that further - criteria can be specified by chaining methods together. - """ - if isinstance(value, dict): - self._filter = json.dumps(value) - elif isinstance(value, str): - self._filter = value - else: - raise TypeError("expecting string or dictionary") - return self - - def getCursor(self) -> "SodaDocCursor": - """ - Returns a SodaDocCursor object that can be used to iterate over the - documents that match the criteria. - """ - impl = self._collection._impl.get_cursor(self) - return SodaDocCursor._from_impl(impl) - - def getDocuments(self) -> list["SodaDocument"]: - """ - Returns a list of SodaDocument objects that match the criteria. - """ - return [d for d in self.getCursor()] - - def getOne(self) -> Union["SodaDocument", None]: - """ - Returns a single SodaDocument object that matches the criteria. Note - that if multiple documents match the criteria only the first one is - returned. - """ - doc_impl = self._collection._impl.get_one(self) - if doc_impl is not None: - return SodaDocument._from_impl(doc_impl) - - def hint(self, value: str) -> Self: - """ - Specifies a hint that will be provided to the SODA operation when it is - performed. This is expected to be a string in the same format as SQL - hints but without any comment characters. While you could use this to - pass any SQL hint, the hints MONITOR (turn on monitoring) and - NO_MONITOR (turn off monitoring) are the most useful. Use of this - method requires Oracle Client 21.3 or later (or Oracle Client 19 from - 19.11). - - As a convenience, the SodaOperation object is returned so that further - criteria can be specified by chaining methods together. - """ - if not isinstance(value, str): - raise TypeError("expecting a string") - self._hint = value - return self - - def lock(self) -> Self: - """ - Specifies whether the documents fetched from the collection should be - locked (equivalent to SQL "select for update"). Use of this method - requires Oracle Client 21.3 or later (or Oracle Client 19 from 19.11). - - The next commit or rollback on the connection made after the operation - is performed will "unlock" the documents. Ensure that the connection is - not in autocommit mode or the documents will be unlocked immediately - after the operation is complete. - - This method should only be used with read operations (other than - :func:`~SodaOperation.count()`) and should not be used in conjunction - with non-terminal methods :meth:`~SodaOperation.skip()` and - :meth:`~SodaOperation.limit()`. - - If this method is specified in conjunction with a write operation, this - method is ignored. - - As a convenience, the SodaOperation object is returned so that further - criteria can be specified by chaining methods together. - """ - self._lock = True - return self - - def key(self, value: str) -> Self: - """ - Specifies that the document with the specified key should be returned. - This causes any previous calls made to this method and - :meth:`~SodaOperation.keys()` to be ignored. - - As a convenience, the SodaOperation object is returned so that further - criteria can be specified by chaining methods together. - """ - if not isinstance(value, str): - raise TypeError("expecting string") - self._key = value - self._keys = None - return self - - def keys(self, value: list) -> Self: - """ - Specifies that documents that match the keys found in the supplied - sequence should be returned. This causes any previous calls made to - this method and :meth:`~SodaOperation.key()` to be ignored. - - As a convenience, the SodaOperation object is returned so that further - criteria can be specified by chaining methods together. - """ - value_as_list = list(value) - for element in value_as_list: - if not isinstance(element, str): - raise TypeError("expecting sequence of strings") - self._keys = value_as_list - self._key = None - return self - - def limit(self, value: int) -> Self: - """ - Specifies that only the specified number of documents should be - returned. This method is only usable for read operations such as - :meth:`~SodaOperation.getCursor()` and - :meth:`~SodaOperation.getDocuments()`. For write operations, any value - set using this method is ignored. - - As a convenience, the SodaOperation object is returned so that further - criteria can be specified by chaining methods together. - """ - if not isinstance(value, int) or value <= 0: - raise TypeError("expecting positive integer") - self._limit = value - return self - - def remove(self) -> int: - """ - Removes all of the documents in the collection that match the criteria. - The number of documents that have been removed is returned. - """ - return self._collection._impl.remove(self) - - def replaceOne(self, doc: Any) -> bool: - """ - Replaces a single document in the collection with the specified - document. The input document can be a dictionary or list or an existing - SODA document object. A boolean indicating if a document was replaced - or not is returned. - - Currently, the method :meth:`~SodaOperation.key()` must be called - before this method can be called. - """ - doc_impl = self._collection._process_doc_arg(doc) - return self._collection._impl.replace_one( - self, doc_impl, return_doc=False - ) - - def replaceOneAndGet(self, doc: Any) -> "SodaDocument": - """ - Similar to :meth:`~SodaOperation.replaceOne()`, this method replaces a - single document in the collection with the specified document. The only - difference is that it returns a SodaDocument object. Note that for - performance reasons the returned document does not contain the content. - """ - doc_impl = self._collection._process_doc_arg(doc) - return_doc_impl = self._collection._impl.replace_one( - self, doc_impl, return_doc=True - ) - return SodaDocument._from_impl(return_doc_impl) - - def skip(self, value: int) -> Self: - """ - Specifies the number of documents that match the other criteria that - will be skipped. This method is only usable for read operations such as - :meth:`~SodaOperation.getOne()`, :meth:`~SodaOperation.getCursor()`, - and :meth:`~SodaOperation.getDocuments()`. For write operations, any - value set using this method is ignored. - - As a convenience, the SodaOperation object is returned so that further - criteria can be specified by chaining methods together. - """ - if not isinstance(value, int) or value < 0: - raise TypeError("expecting integer >= 0") - self._skip = value - return self - - def version(self, value: str) -> Self: - """ - Specifies that documents with the specified version should be returned. - Typically this is used with :meth:`~SodaOperation.key()` to implement - optimistic locking, so that the write operation called later does not - affect a document that someone else has modified. - - As a convenience, the SodaOperation object is returned so that further - criteria can be specified by chaining methods together. - """ - if not isinstance(value, str): - raise TypeError("expecting string") - self._version = value - return self diff --git a/.venv/lib/python3.9/site-packages/oracledb/sparse_vector.py b/.venv/lib/python3.9/site-packages/oracledb/sparse_vector.py deleted file mode 100644 index 7898e72..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/sparse_vector.py +++ /dev/null @@ -1,123 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2024, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# sparse_vector.py -# -# Contains the SparseVector class which stores information about a sparse -# vector. Sparse vectors are available in Oracle Database 23.6 and higher. -# ----------------------------------------------------------------------------- - -import array -from typing import Union - -from .base import BaseMetaClass -from .base_impl import get_array_type_code_uint32, SparseVectorImpl - -ARRAY_TYPE_CODE_UINT32 = get_array_type_code_uint32() - - -class SparseVector(metaclass=BaseMetaClass): - """ - Provides information about sparse vectors. - """ - - def __init__( - self, - num_dimensions: int, - indices: Union[list, array.array], - values: Union[list, array.array], - ): - """ - Creates and returns a :ref:`SparseVector object `. - - The ``num_dimensions`` parameter is the number of dimensions contained - in the vector. - - The ``indices`` parameter is the indices (zero-based) of non-zero - values in the vector. - - The ``values`` parameter is the non-zero values stored in the vector. - """ - if ( - not isinstance(indices, array.array) - or indices.typecode != ARRAY_TYPE_CODE_UINT32 - ): - indices = array.array(ARRAY_TYPE_CODE_UINT32, indices) - if not isinstance(values, array.array): - values = array.array("d", values) - if len(indices) != len(values): - raise TypeError("indices and values must be of the same length!") - self._impl = SparseVectorImpl.from_values( - num_dimensions, indices, values - ) - - def __eq__(self, other): - if isinstance(other, SparseVector): - return ( - other.num_dimensions == self.num_dimensions - and other.indices == self.indices - and other.values == self.values - ) - return NotImplemented - - def __repr__(self): - cls_name = self.__class__._public_name - return ( - f"{cls_name}({self.num_dimensions}, " - f"{self.indices}, {self.values})" - ) - - def __str__(self): - return ( - f"[{self.num_dimensions}, {list(self.indices)}, " - f"{list(self.values)}]" - ) - - @classmethod - def _from_impl(cls, impl): - vector = cls.__new__(cls) - vector._impl = impl - return vector - - @property - def indices(self) -> array.array: - """ - Returns the indices (zero-based) of non-zero values in the vector. - """ - return self._impl.indices - - @property - def num_dimensions(self) -> int: - """ - Returns the number of dimensions contained in the vector. - """ - return self._impl.num_dimensions - - @property - def values(self) -> array.array: - """ - Returns the non-zero values stored in the vector. - """ - return self._impl.values diff --git a/.venv/lib/python3.9/site-packages/oracledb/subscr.py b/.venv/lib/python3.9/site-packages/oracledb/subscr.py deleted file mode 100644 index 419e98a..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/subscr.py +++ /dev/null @@ -1,382 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# subscr.py -# -# Contains the Subscription class and Message classes used for managing -# subscriptions to database events and the messages that are sent when those -# events are detected. -# ----------------------------------------------------------------------------- - -from typing import Callable, Optional, Union -from .base import BaseMetaClass -from . import connection, errors - -import oracledb - - -class Subscription(metaclass=BaseMetaClass): - def __repr__(self): - return f"" - - @classmethod - def _from_impl(cls, impl): - subscr = cls.__new__(cls) - subscr._impl = impl - return subscr - - @property - def callback(self) -> Callable: - """ - This read-only attribute returns the callback that was registered when - the subscription was created. - """ - return self._impl.callback - - @property - def connection(self) -> "connection.Connection": - """ - This read-only attribute returns the connection that was used to - register the subscription when it was created. - """ - return self._impl.connection - - @property - def id(self) -> int: - """ - This read-only attribute returns the value of REGID found in the - database view USER_CHANGE_NOTIFICATION_REGS or the value of REG_ID - found in the database view USER_SUBSCR_REGISTRATIONS. For AQ - subscriptions, this value is *0*. - """ - return self._impl.id - - @property - def ip_address(self) -> str: - """ - This read-only attribute returns the IP address used for callback - notifications from the database server. If not set during construction, - this value is *None*. - """ - return self._impl.ip_address - - @property - def ipAddress(self) -> str: - """ - Deprecated. Use property ip_address instead. - """ - return self.ip_address - - @property - def name(self) -> str: - """ - This read-only attribute returns the name used to register the - subscription when it was created. - """ - return self._impl.name - - @property - def namespace(self) -> int: - """ - This read-only attribute returns the namespace used to register the - subscription when it was created. - """ - return self._impl.namespace - - @property - def operations(self) -> int: - """ - This read-only attribute returns the operations that will send - notifications for each table or query that is registered using this - subscription. - """ - return self._impl.operations - - @property - def port(self) -> int: - """ - This read-only attribute returns the port used for callback - notifications from the database server. If not set during - construction, this value is *0*. - """ - return self._impl.port - - @property - def protocol(self) -> int: - """ - This read-only attribute returns the protocol used to register the - subscription when it was created. - """ - return self._impl.protocol - - @property - def qos(self) -> int: - """ - This read-only attribute returns the quality of service flags used to - register the subscription when it was created. - """ - return self._impl.qos - - def registerquery( - self, statement: str, args: Optional[Union[list, dict]] = None - ) -> int: - """ - Registers the query for subsequent notification when tables referenced - by the query are changed. This behaves similarly to - :meth:`Cursor.execute()` but only queries are permitted and the - ``args`` parameter, if specified, must be a sequence or dictionary. If - the ``qos`` parameter included the flag - :data:`oracledb.SUBSCR_QOS_QUERY` when the subscription was created, - then the ID for the registered query is returned; otherwise, *None* is - returned. - """ - if args is not None and not isinstance(args, (list, dict)): - raise TypeError("expecting args to be a dictionary or list") - if self._impl.namespace == oracledb.SUBSCR_NAMESPACE_AQ: - errors._raise_err(errors.ERR_REGISTER_QUERY_ON_AQ_SUBSCR) - return self._impl.register_query(statement, args) - - @property - def timeout(self) -> int: - """ - This read-only attribute returns the timeout (in seconds) that was - specified when the subscription was created. A value of *0* indicates - that there is no timeout. - """ - return self._impl.timeout - - -class Message(metaclass=BaseMetaClass): - def __init__(self, subscription: Subscription) -> None: - self._subscription = subscription - self._consumer_name = None - self._dbname = None - self._queries = [] - self._queue_name = None - self._registered = False - self._tables = [] - self._txid = None - self._type = 0 - self._msgid = None - - @property - def consumer_name(self) -> Union[str, None]: - """ - This read-only attribute returns the name of the consumer which - generated the notification. It will be populated if the - subscription was created with the namespace - :data:`oracledb.SUBSCR_NAMESPACE_AQ` and the queue is a multiple - consumer queue. - """ - return self._consumer_name - - @property - def consumerName(self) -> Union[str, None]: - """ - Deprecated. Use property consumer_name instead. - """ - return self.consumer_name - - @property - def dbname(self) -> Union[str, None]: - """ - This read-only attribute returns the name of the database that - generated the notification. - """ - return self._dbname - - @property - def msgid(self) -> Union[bytes, None]: - """ - This read-only attribute returns the message id of the AQ message that - generated the notification. It will only be populated if the - subscription was created with the namespace - :data:`oracledb.SUBSCR_NAMESPACE_AQ`. - """ - return self._msgid - - @property - def queries(self) -> list["MessageQuery"]: - """ - This read-only attribute returns a list of message query objects that - give information about query result sets changed for this notification. - This attribute will be an empty list if the ``qos`` parameter did not - include the flag :data:`~oracledb.SUBSCR_QOS_QUERY` when the - subscription was created. - """ - return self._queries - - @property - def queue_name(self) -> Union[str, None]: - """ - This read-only attribute returns the name of the queue which generated - the notification. It will only be populated if the subscription was - created with the namespace :data:`oracledb.SUBSCR_NAMESPACE_AQ`. - """ - return self._queue_name - - @property - def queueName(self) -> Union[str, None]: - """ - Deprecated. Use property queue_name instead. - """ - return self.queue_name - - @property - def registered(self) -> bool: - """ - This read-only attribute returns whether the subscription which - generated this notification is still registered with the database. The - subscription is automatically deregistered with the database when the - subscription timeout value is reached or when the first notification is - sent (when the quality of service flag - :data:`oracledb.SUBSCR_QOS_DEREG_NFY` is used). - """ - return self._registered - - @property - def subscription(self) -> Subscription: - """ - This read-only attribute returns the subscription object for which this - notification was generated. - """ - return self._subscription - - @property - def tables(self) -> list["MessageTable"]: - """ - This read-only attribute returns a list of message table objects that - give information about the tables changed for this notification. This - attribute will be an empty list if the ``qos`` parameter included the - flag :data:`~oracledb.SUBSCR_QOS_QUERY` when the subscription was - created. - """ - return self._tables - - @property - def txid(self) -> Union[bytes, None]: - """ - This read-only attribute returns the id of the transaction that - generated the notification. - """ - return self._txid - - @property - def type(self) -> int: - """ - This read-only attribute returns the type of message that has been - sent. - """ - return self._type - - -class MessageQuery(metaclass=BaseMetaClass): - def __init__(self) -> None: - self._id = 0 - self._operation = 0 - self._tables = [] - - @property - def id(self) -> int: - """ - This read-only attribute returns the query id of the query for which - the result set changed. The value will match the value returned by - :meth:`Subscription.registerquery()` when the related query was - registered. - """ - return self._id - - @property - def operation(self) -> int: - """ - This read-only attribute returns the operation that took place on the - query result set that was changed. Valid values for this attribute are - :data:`~oracledb.EVENT_DEREG` and :data:`~oracledb.EVENT_QUERYCHANGE`. - """ - return self._operation - - @property - def tables(self) -> list["MessageTable"]: - """ - This read-only attribute returns a list of message table objects that - give information about the table changes that caused the query result - set to change for this notification. - """ - return self._tables - - -class MessageRow(metaclass=BaseMetaClass): - def __init__(self) -> None: - self._operation = 0 - self._rowid = None - - @property - def operation(self) -> int: - """ - This read-only attribute returns the operation that took place on the - row that was changed. - """ - return self._operation - - @property - def rowid(self) -> Union[str, None]: - """ - This read-only attribute returns the rowid of the row that was changed. - """ - return self._rowid - - -class MessageTable(metaclass=BaseMetaClass): - def __init__(self) -> None: - self._name = None - self._operation = 0 - self._rows = [] - - @property - def name(self) -> Union[str, None]: - """ - This read-only attribute returns the name of the table that was - changed. - """ - return self._name - - @property - def operation(self) -> int: - """ - This read-only attribute returns the operation that took place on the - table that was changed. - """ - return self._operation - - @property - def rows(self) -> list["MessageRow"]: - """ - This read-only attribute returns a list of message row objects that - give information about the rows changed on the table. This value is - only filled in if the ``qos`` parameter to the - :meth:`Connection.subscribe()` method included the flag - :data:`~oracledb.SUBSCR_QOS_ROWIDS`. - """ - return self._rows diff --git a/.venv/lib/python3.9/site-packages/oracledb/thick_impl.cpython-39-x86_64-linux-gnu.so b/.venv/lib/python3.9/site-packages/oracledb/thick_impl.cpython-39-x86_64-linux-gnu.so deleted file mode 100755 index da42e260c671ff70afda040c973d609e2c1d723a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1319616 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�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 z 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 z�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

    OKr+OfFl$i)yo!lIdirq?@MfX?;=ZkgJq%g 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

    oFuV%y1S3MKqh)xxVUU^|vY-PBKY%bbmw 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

    bw*wJ4y!kIWgHX^&M!r#gkjjsA@PyHrY4!dw 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

    1iu9 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

    dd=g3Y0_#PFN5{gC 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
    y~df9_e(FhU{8 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

    BJX<=*7$pp$VY$4EagTInBLy73j2mvX?BZ+um0 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%0A9Dh%exl;*Jbtb|xKdM+8kU=xZSo#XPE7vI| zV~J?uC)du}aaenJ-xC`-cHuyDxs@A@7$gx*p8_G}Hvl2&F;dss2hfP2bqpxL5WE8_ zb~3(;Rbi(1x9_t-SKGd-+V^+tq_;+9chcvfTmjAL?*TNog!ALwWwd9pe`J^owQRO_&7)tcb29-8 zS~x&WcC#j*=(y8cGQlynCBY_Vas6#r*pR99Zlev2qK~a0FZ0qpM0QvlBK3q`1%*KK z?92U2TTBl9;)9_OqedVj>f#q}eRS>?Y9q(bdIuVr3i#Ls#!q`wKxS4uZ8bjX|IL<$ z`}E~3&0WF1IaPt}0KR(U?Q>=N)o_XSaW$O-ukp@I7Hg^%6;qT57q;Pe(u{rYkKO3@ z($yIQf#gXGlN}S7n%gsv~8nmN)5N$ZjR# zD$3$6|3Ix3tiuH1B}JD30FHMcpu6h=|4H<)H3Pd+K6EuZ<~q8NDIeKk*wi~zbNjFX z!#D6=PMEbQniwFZM~)jE_*g!bUh^i57=J1`z4J~8-stPmvcCgE%)vXz?ZJ1c(m627 z+0Q%l!+!AO5>GxA7`m0#&�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

    KdMuJt-w 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°%nmdfNM1xBCm>CmFmZm~P4orc)`6+FA8+D4595@-AhhL__N()zqB` z&9%kYteNwr>ZMoOBbo6Qh!W`lU1dL6fUpckB2ss%AA5tZY`t(I093{s7Xtfg|GS@Z z@}7tBK>AQ&A@1GY$I;4A!4UV)p;%rHdZYR3E8L&<#}w!acIL-hI4#Hjqt=j|J<_{d zWbd{zsWRS4Yoabzz{}D)>|WT_aEmD)tkMGp;`+5o6PTasB;K{k_XY z1n+LKU3!+kyX#Nm8BLa()#}}K@$TGmX&oG8V6%^<)>2E-avP1ZK}~qSrwK_b96s`j zQPuo8lDV7FkNhvG70j2nlPYJMsMGC&tU#T1Hkju@vMJR5`pN=q? zpU014dt5F9U6A_m)knBW);IXOL(%Sga-b9RImTYO;z>DrlMYR zE0c9)p3ZY3KD`d5!mY^uyxhGXuL1SMt?vrJ8KtKmK*#hJ4$j91X#5~5w`972eFCRE3oq8g9I;)RQ0pR&fy}z9gc=9KS6DX>!)93o6=v zG<7nIMtCXh6RJsB7=H+~s11nJovW01$EgwVG}`mIWW>>!{kMTkyj;WG&PMN8vU@I? z{teUN&oJs|UnYI4m&#|0&#nT8PuqtIa8dZ!5AC^6*dOKjR*_F;7|L_sK$$%!l;oG9 z3B_wSpji%-)-YliTO6fs5kB+VxDIUNu6OIfv9=x{?XTJ*-r|i|-B((ad%qFOF6IYv zwhIEd?nAAVBTx%L{(Efd-jv`L9_w`Vkq0O`%l~;c%l&3Hc7By9VB<8~8u-wILC_pW zuQ~_5)kKA(XQf*~9Xb9=uNavA#@jTg-?jfr z{wRb8ruVE&?^W!0wFa84yMRfr%Dhl2JAGzasmJ%6Exw3vvbQ^1ybcwVDzSP!f>aMn zRRpODOAQKA&K5sBNDa4dqk@#P#gDU8vUD8X+UJQuhA6@^?hi8V4>O((GM)`HW&{~C z$ne%oXGTI>yq4qY{joE?yt+L$kQTOZlpVMg=tY=c^Q99`U-PVLAe`>e+Mg}H;s}IO z2a_M=AF+{U|GZ=Z!f6I2BdcQMr>(E!3WRxNMl#7xm%h!eTWx(`rkv;`=+=M@umJG? zKY;jar)>`Le^@2N*Gl|n%BFU3h;R9YL;QvLRiOv#<@Bwc#9rGEX;Z;Bx4+FC&b8e5 zou>5p$1sIr-1`oI3$KD(D>K8m3CY73Gru6@&+Pw5u-G-rNNW}TLCmMgKecv^gm|X# zA1gz{z_SuRnZt{$XX7sHQMNwBZY&i~L0nh|c%?b%nNV`pf&7MA^=(6aq6zSiJijOX z3?R`jb3VGzX9Guk>u)FO3wJ)!pTgw>5{)GvMo^gO7Z4SmcaXlbZ?ttU08BUU53yFX zwxsAoUn~6GH9AvzFcnF=@)v$B4CIQipYg_5`h&wd+t# zei1q7xq{S3{K_2OC39Ks+C13k>K`roaj2{C{?R)aH!vIO{v_F)SCpSR(4j6aZvfyLV*Q=S%b`w+qJP^rl*$x7^G%4lSwM`Z4U8eT(P2W_=_F!R3ldmzu#g}dpA|i%Uk@!T>$LOnS7{R5g6<4D zd)w>VeS0*v3 zFL(t(4dKg_C(WTq=kFGx+j`CPpEODHMFNci+XyF#EYw~*5fL?#r;CI$#S6cd zapM44eo_a+Al{WC|NViTeSuTie(D~=-Y7VNP1wA6xCy(rX+Qolo)k``bN%{%GzwYe z{es>h?fQN&h0yEVxF|kik^dOTL<7xPtPGhC*qr5?xFcv{YS2W3kR4dBPOyP!%pB$2 zJX|U5w#@;K-L?}kv1jJ7?KY+P76xI@NpXM9+0VWK{cc#aFhNFG&bwl%+fA1_RciBV zwgnfDcl#K%c@`7Bq$>T1e?gv9E4+>Y^Ho@v{@Kt`Q@UpnFs@JVC5oVK!RQv3IRs_J zyX-xtk#?S4)w^lAe-fgVnuXJREOlw1E}ytB^EHx$*IjZ`Tet7bFsWmPQ_Wt1GUp

    Kj`AM!$gO53t`xeSLyG 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 E9|KNkHUIzs diff --git a/.venv/lib/python3.9/site-packages/oracledb/utils.py b/.venv/lib/python3.9/site-packages/oracledb/utils.py deleted file mode 100644 index aceb5e0..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/utils.py +++ /dev/null @@ -1,448 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2020, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# utils.py -# -# Contains utility classes and methods. -# ----------------------------------------------------------------------------- - -import functools -from typing import Any, Callable, Optional, Union -import uuid - -from .arrow_array import ArrowArray -from .dataframe import DataFrame - -from . import base_impl -from . import driver_mode -from . import errors -from . import thick_impl - - -def check_parameter_length(name: str, value: str, max_length: int) -> None: - """ - Checks the maximum parameter length and raises an error if it exceeds it. - """ - if value is not None and len(value) > max_length: - errors._raise_err( - errors.ERR_PARAM_SIZE_TOO_LARGE, name=name, max_length=max_length - ) - - -def clientversion() -> tuple: - """ - This function can only be called when python-oracledb is in Thick mode. - Using it in Thin mode will throw an exception. - """ - return thick_impl.clientversion() - - -def enable_thin_mode(): - """ - Makes python-oracledb be in Thin mode. After this method is called, Thick - mode cannot be enabled. If python-oracledb is already in Thick mode, then - calling ``enable_thin_mode()`` will fail. If Thin mode connections have - already been opened, or a connection pool created in Thin mode, then - calling ``enable_thin_mode()`` is a no-op. - - Since python-oracledb defaults to Thin mode, almost all applications do not - need to call this method. However, because it bypasses python-oracledb's - internal mode-determination heuristic, it may be useful for applications - with multiple threads that concurrently create :ref:`standalone connections - ` when the application starts. - """ - with driver_mode.get_manager(requested_thin_mode=True): - pass - - -def enquote_literal(value: str) -> str: - """ - Returns the supplied string as a new string that is safe to include as a - literal in a SQL statement. - """ - return "'" + value.replace("'", "''") + "'" - - -def enquote_name(value: str, capitalize: bool = True) -> str: - """ - Returns the supplied string as a new string that is safe to include as a - quoted name in a SQL statement. Since embedded quotes are not allowed in - quoted identifiers, an error is returned if embedded quotes are detected. - If the ``capitalize`` parameter is *true*, the string is converted to - uppercase. - """ - if '"' in value: - errors._raise_err(errors.ERR_NAME_HAS_EMBEDDED_QUOTES) - if capitalize: - value = value.upper() - return f'"{value}"' - - -def from_arrow(obj: Any) -> Union[DataFrame, ArrowArray]: - """ - This method converts a data frame to a - :ref:`DataFrame ` or - :ref:`ArrowArray ` instance. - - If ``obj`` supports the Arrow PyCapsule interface ``__arrow_c_stream__`` - method, then ``from_arrow()`` returns the instance as a :ref:`DataFrame - `. If ``obj`` does not support that method, but does - support ``__arrow_c_array__``, then an :ref:`ArrowArray - ` is returned. - """ - if hasattr(obj, "__arrow_c_stream__"): - return DataFrame._from_arrow(obj) - elif hasattr(obj, "__arrow_c_array__"): - return ArrowArray._from_arrow(obj) - msg = "object must implement the PyCapsule stream or array interfaces" - raise ValueError(msg) - - -def init_oracle_client( - lib_dir: Optional[Union[str, bytes]] = None, - config_dir: Optional[Union[str, bytes]] = None, - error_url: Optional[str] = None, - driver_name: Optional[str] = None, -): - """ - Enables python-oracledb Thick mode by initializing the Oracle Client - library, see :ref:`enablingthick`. If a standalone connection or pool has - already been created in Thin mode, ``init_oracle_client()`` will raise an - exception and python-oracledb will remain in Thin mode. - - If a standalone connection or pool has *not* already been created in Thin - mode, but ``init_oracle_client()`` raises an exception, python-oracledb - will remain in Thin mode but further calls to ``init_oracle_client()`` can - be made, if desired. - - The ``init_oracle_client()`` method can be called multiple times in each - Python process as long as the arguments are the same each time. - - The ``lib_dir`` parameter is a string or a bytes object that specifies the - directory containing Oracle Client libraries. If the ``lib_dir`` parameter - is set, then the specified directory is the only one searched for the - Oracle Client libraries; otherwise, the operating system library search - path is used to locate the Oracle Client library. If you are using Python - 3.11 and later, then the value specified in this parameter is encoded - using `locale.getencoding() `__. For all other Python versions, the encoding - "utf-8" is used. If a bytes object is specified in this parameter, then - this value will be used as is without any encoding. - - The ``config_dir`` parameter is a string or a bytes object that specifies - the directory in which the - :ref:`Optional Oracle Net Configuration ` and - :ref:`Optional Oracle Client Configuration ` files reside. - If the ``config_dir`` parameter is set, then the specified directory is - used to find Oracle Client library configuration files. This is - equivalent to setting the environment variable ``TNS_ADMIN`` and overrides - any value already set in ``TNS_ADMIN``. If this parameter is not set, the - :ref:`Oracle standard ` way of locating Oracle Client - library configuration files is used. If you are using Python 3.11 and - later, then the value specified in this parameter is encoded using - `locale.getencoding() `__. For all other Python versions, the encoding - "utf-8" is used. If a bytes object is specified in this parameter, then - this value will be used as is without any encoding. - - The ``error_url`` parameter is a string that specifies the URL which is - included in the python-oracledb exception message if the Oracle Client - libraries cannot be loaded. If the ``error_url`` parameter is set, then - the specified value is included in the message of the exception raised - when the Oracle Client library cannot be loaded; otherwise, the - :ref:`installation` URL is included. This parameter lets your application - display custom installation instructions. - - The ``driver_name`` parameter is a string that specifies the driver name - value. If the ``driver_name`` parameter is set, then the specified value - can be found in database views that give information about connections. - For example, it is in the CLIENT_DRIVER column of the - V$SESSION_CONNECT_INFO view. From Oracle Database 12.2, the name displayed - can be 30 characters. The standard is to set this value to ``" : - version>"``, where is the name of the driver and is its - version. There should be a single space character before and after the - colon. If this parameter is not set, then the value specified in - :attr:`oracledb.defaults.driver_name ` is used. If - the value of this attribute is *None*, then the default value in - python-oracledb Thick mode is like "python-oracledb thk : ". See - :ref:`otherinit`. - - At successful completion of a call to ``oracledb.init_oracle_client()``, - the attribute :attr:`oracledb.defaults.config_dir ` - will be set as determined below (first one wins): - - - the value of the ``oracledb.init_oracle_client()`` parameter - ``config_dir``, if one was passed. - - - the value of :attr:`oracledb.defaults.config_dir ` - if it has one. i.e. - :attr:`oracledb.defaults.config_dir ` remains - unchanged after ``oracledb.init_oracle_client()`` completes. - - - the value of the environment variable ``$TNS_ADMIN``, if it is set. - - - the value of ``$ORACLE_HOME/network/admin`` if the environment variable - ``$ORACLE_HOME`` is set. - - - the directory of the loaded Oracle Client library, appended with - ``network/admin``. Note this directory is not determinable on AIX. - - - otherwise the value *None* is used. (Leaving - :attr:`oracledb.defaults.config_dir ` unchanged). - """ - thick_impl.init_oracle_client(lib_dir, config_dir, error_url, driver_name) - - -def is_qualified_sql_name(value: str) -> bool: - """ - Returns a boolean indicating if the supplied string contains a valid - qualified SQL name. Leading and trailing spaces are ignored. The name must - be one or more simple SQL names separated by periods (and any amount of - whitespace), optionally followed by the '@' symbol and one or more simple - SQL names referring to a database link name. - """ - return base_impl.is_qualified_sql_name(value) - - -def is_simple_sql_name(value: str) -> bool: - """ - Returns a boolean indicating if the supplied string contains a valid simple - SQL name. Leading and trailing spaces are ignored. If the value is not - quoted, the first character must be alphabetic and the remaining characters - must be alphanumeric or contain the characters '_', '$', or '#'. A quoted - name may not contain embedded quotes and no characters other than - whitespace are allowed outside the quotes. - """ - return base_impl.is_simple_sql_name(value) - - -def normalize_sessionless_transaction_id( - value: Optional[Union[bytes, str]] = None, -) -> bytes: - """ - Normalize and validate the transaction_id. - - - If `value` is a string, it's UTF-8 encoded. - - If `value` is None, a UUID4-based transaction_id is generated. - - If `value` is not str/bytes/None, raises TypeError. - - If transaction_id exceeds 64 bytes, raises ValueError. - - Returns: - bytes: Normalized transaction_id - """ - if value is None: - value = uuid.uuid4().bytes - elif isinstance(value, str): - value = value.encode("utf-8") - elif not isinstance(value, bytes): - raise TypeError("invalid transaction_id: must be str, bytes, or None") - - if len(value) > 64: - raise ValueError( - f"transaction_id size exceeds 64 bytes (got {len(value)})" - ) - - return value - - -def params_initer(f): - """ - Decorator function which is used on the ConnectParams and PoolParams - classes. It creates the implementation object using the implementation - class stored on the parameter class. It first, however, calls the original - method to ensure that the keyword parameters supplied are valid (the - original method itself does nothing). - """ - - @functools.wraps(f) - def wrapped_f(self, *args, **kwargs): - f(self, *args, **kwargs) - self._impl = self._impl_class() - if kwargs: - self._impl.set(kwargs) - - return wrapped_f - - -def params_setter(f): - """ - Decorator function which is used on the ConnectParams and PoolParams - classes. It calls the set() method on the parameter implementation object - with the supplied keyword arguments. It first, however, calls the original - method to ensure that the keyword parameters supplied are valid (the - original method itself does nothing). - """ - - @functools.wraps(f) - def wrapped_f(self, *args, **kwargs): - f(self, *args, **kwargs) - self._impl.set(kwargs) - - return wrapped_f - - -def register_params_hook(hook_function: Callable) -> None: - """ - Registers a user parameter hook function that will be called internally by - python-oracledb prior to connection or pool creation. The hook function - accepts a copy of the parameters that will be used to create the pool or - standalone connection and may modify them. For example, the cloud native - authentication plugins modify the "access_token" parameter with a function - that will acquire the token using information found in the - "extra_auth_parms" parameter. - - Multiple hooks may be registered. They will be invoked in order of - registration. - """ - if hook_function is None or not callable(hook_function): - raise TypeError("hook_function must be a callable and cannot be None") - base_impl.REGISTERED_PARAMS_HOOKS.append(hook_function) - - -def register_password_type( - password_type: str, hook_function: Callable -) -> None: - """ - Registers a user password hook function that will be called internally by - python-oracledb when a password is supplied as a dictionary containing the - given ``password_type`` as the key "type". The hook function is called for - passwords specified as the ``password``, ``newpassword`` and - ``wallet_parameter`` parameters in calls to :meth:`oracledb.connect()`, - :meth:`oracledb.create_pool()`, :meth:`oracledb.connect_async()`, and - :meth:`oracledb.create_pool_async()`. - - Your hook function is expected to accept the dictionary supplied by the - application and return the valid password. - - Calling :meth:`~oracledb.register_password_type()` with the - ``hook_function`` parameter set to *None* will result in a previously - registered user function being removed and the default behavior restored. - """ - if not isinstance(password_type, str): - raise TypeError("password_type must be a string") - if hook_function is not None and not callable(hook_function): - raise TypeError("hook_function must be a callable") - password_type = password_type.lower() - if hook_function is None: - base_impl.REGISTERED_PASSWORD_TYPES.pop(password_type) - else: - base_impl.REGISTERED_PASSWORD_TYPES[password_type] = hook_function - - -def register_protocol(protocol: str, hook_function: Callable) -> None: - """ - Registers a user protocol hook function that will be called internally by - python-oracledb Thin mode prior to connection or pool creation. The hook - function will be invoked when :func:`oracledb.connect`, - :func:`oracledb.create_pool`, :meth:`oracledb.connect_async()`, or - :meth:`oracledb.create_pool_async()` are called with a ``dsn`` parameter - value prefixed with the specified protocol. The user function will also be - invoked when :meth:`ConnectParams.parse_connect_string()` is called in Thin - or Thick modes with a similar ``connect_string`` parameter value. - - Your hook function is expected to construct valid connection details. For - example, if a hook function is registered for the "ldaps" protocol, then - calling :func:`oracledb.connect` with a connection string prefixed with - "ldaps://" will invoke the function. The function can then perform LDAP - lookup to retrieve and set the actual database information that will be - used internally by python-oracledb to complete the connection creation. - - The ``protocol`` parameter is a string that will be matched against the - prefix appearing before "://" in connection strings. - - The ``hook_function`` parameter should be a function with the signature:: - - hook_function(protocol, protocol_arg, params) - - The hook function will be called with the following arguments: - - - The ``protocol`` parameter is the value that was registered. - - - The ``protocol_arg`` parameter is the section after "://" in the - connection string used in the connection or pool creation call, or passed - to :meth:`~ConnectParams.parse_connect_string()`. - - - The ``params`` parameter is an instance of :ref:`ConnectParams - `. - - When your hook function is invoked internally prior to connection or pool - creation, ``params`` will be the ConnectParams instance originally passed - to the :func:`oracledb.connect`, :func:`oracledb.create_pool`, - :meth:`oracledb.connect_async()`, or :meth:`oracledb.create_pool_async()` - call, if such an instance was passed. Otherwise it will be a new - ConnectParams instance. The hook function should parse ``protocol`` and - ``protocol_arg`` and take any desired action to update ``params`` - :ref:`attributes ` with appropriate connection - parameters. Attributes can be set using :meth:`ConnectParams.set()` or - :meth:`ConnectParams.parse_connect_string()`. The ConnectParams instance - will then be used to complete the connection or pool creation. - - When your hook function is invoked by - :meth:`ConnectParams.parse_connect_string()`, then ``params`` will be the - invoking ConnectParams instance that you can update using - :meth:`ConnectParams.set()` or - :meth:`ConnectParams.parse_connect_string()`. - - Internal hook functions for the "tcp" and "tcps" protocols are - pre-registered but can be overridden if needed. If any other protocol has - not been registered, then connecting will result in the error ``DPY-4021: - invalid protocol``. - - Calling :meth:`~oracledb.register_protocol()` with the ``hook_function`` - parameter set to *None* will result in a previously registered user - function being removed and the default behavior restored. - """ - if not isinstance(protocol, str): - raise TypeError("protocol must be a string") - if hook_function is not None and not callable(hook_function): - raise TypeError("hook_function must be a callable") - protocol = protocol.lower() - if hook_function is None: - base_impl.REGISTERED_PROTOCOLS.pop(protocol) - else: - base_impl.REGISTERED_PROTOCOLS[protocol] = hook_function - - -def unregister_params_hook(hook_function: Callable) -> None: - """ - Unregisters a user parameter function that was earlier registered with a - call to :meth:`oracledb.register_params_hook()`. - """ - base_impl.REGISTERED_PARAMS_HOOKS.remove(hook_function) - - -def verify_stored_proc_args( - parameters: Union[list, tuple], keyword_parameters: dict -) -> None: - """ - Verifies that the arguments to a call to a stored procedure or function - are acceptable. - """ - if parameters is not None and not isinstance(parameters, (list, tuple)): - errors._raise_err(errors.ERR_ARGS_MUST_BE_LIST_OR_TUPLE) - if keyword_parameters is not None and not isinstance( - keyword_parameters, dict - ): - errors._raise_err(errors.ERR_KEYWORD_ARGS_MUST_BE_DICT) diff --git a/.venv/lib/python3.9/site-packages/oracledb/var.py b/.venv/lib/python3.9/site-packages/oracledb/var.py deleted file mode 100644 index 85e6836..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/var.py +++ /dev/null @@ -1,186 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2025, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# var.py -# -# Contains the Var class used for managing variables used during bind and -# fetch. These hold the metadata as well as any necessary buffers. -# ----------------------------------------------------------------------------- - -from typing import Any, Callable, Optional, Union -from .dbobject import DbObjectType -from .base import BaseMetaClass -from .base_impl import DbType - - -class Var(metaclass=BaseMetaClass): - def __repr__(self): - value = self._impl.get_all_values() - if not self._impl.is_array and len(value) == 1: - value = value[0] - typ = self._type - return f"" - - @classmethod - def _from_impl(cls, impl, typ=None): - var = cls.__new__(cls) - var._impl = impl - if typ is not None: - var._type = typ - elif impl.metadata.objtype is not None: - var._type = DbObjectType._from_impl(impl.metadata.objtype) - else: - var._type = impl.metadata.dbtype - return var - - @property - def actual_elements(self) -> int: - """ - This read-only attribute returns the actual number of elements in the - variable. This corresponds to the number of elements in a PL/SQL - index-by table for variables that are created using the method - :meth:`Cursor.arrayvar()`. For all other variables, this value will be - identical to the attribute num_elements. - """ - if self._impl.is_array: - return self._impl.num_elements_in_array - return self._impl.num_elements - - @property - def actualElements(self) -> int: - """ - Deprecated. Use property actual_elements instead. - """ - return self.actual_elements - - @property - def buffer_size(self) -> int: - """ - This read-only attribute returns the size of the buffer allocated for - each element in bytes. - """ - return self._impl.metadata.buffer_size - - @property - def bufferSize(self) -> int: - """ - Deprecated. Use property buffer_size intead(). - """ - return self.buffer_size - - @property - def convert_nulls(self) -> bool: - """ - This read-only attribute returns whether null values are converted - using the supplied ``outconverter``. - """ - return self._impl.convert_nulls - - def getvalue(self, pos: int = 0) -> Any: - """ - Returns the value at the given position in the variable. For variables - created using the method :meth:`Cursor.arrayvar()`, the value returned - will be a list of each of the values in the PL/SQL index-by table. For - variables bound to DML returning statements, the value returned will - also be a list corresponding to the returned data for the given - execution of the statement (as identified by the ``pos`` parameter). - """ - return self._impl.get_value(pos) - - @property - def inconverter(self) -> Optional[Callable]: - """ - This read-only attribute specifies the method used to convert data from - Python to the Oracle database. The method signature is converter(value) - and the expected return value is the value to bind to the database. If - this attribute is *None*, the value is bound directly without any - conversion. - """ - return self._impl.inconverter - - @property - def num_elements(self) -> int: - """ - This read-only attribute returns the number of elements allocated in an - array, or the number of scalar items that can be fetched into the - variable or bound to the variable. - """ - return self._impl.num_elements - - @property - def numElements(self) -> int: - """ - Deprecated. Use property num_elements instead. - """ - return self.num_elements - - @property - def outconverter(self) -> Optional[Callable]: - """ - This read-only attribute specifies the method used to convert data from - the Oracle database to Python. The method signature is converter(value) - and the expected return value is the value to return to Python. If this - attribute is *None*, the value is returned directly without any - conversion. - """ - return self._impl.outconverter - - def setvalue(self, pos: int, value: Any) -> None: - """ - Sets the value at the given position in the variable. - """ - self._impl.set_value(pos, value) - - @property - def size(self) -> int: - """ - This read-only attribute returns the size of the variable. For strings - this value is the size in characters. For all others, this is the same - value as the attribute buffer_size. - """ - return self._impl.metadata.max_size - - @property - def type(self) -> Union[DbType, DbObjectType]: - """ - This read-only attribute returns the type of the variable. This will be - an :ref:`Oracle Object Type ` if the variable binds - Oracle objects; otherwise, it will be one of the - :ref:`database type constants `. - - Database type constants are now used when the variable is not used for - binding Oracle objects. - """ - return self._type - - @property - def values(self) -> list: - """ - This read-only attribute returns a copy of the value of all actual - positions in the variable as a list. This is the equivalent of calling - getvalue() for each valid position and the length will correspond to - the value of the actual_elements attribute. - """ - return self._impl.get_all_values() diff --git a/.venv/lib/python3.9/site-packages/oracledb/version.py b/.venv/lib/python3.9/site-packages/oracledb/version.py deleted file mode 100644 index bfd7d07..0000000 --- a/.venv/lib/python3.9/site-packages/oracledb/version.py +++ /dev/null @@ -1,33 +0,0 @@ -# ----------------------------------------------------------------------------- -# Copyright (c) 2021, 2026, Oracle and/or its affiliates. -# -# This software is dual-licensed to you under the Universal Permissive License -# (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License -# 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose -# either license. -# -# If you elect to accept the software under the Apache License, Version 2.0, -# the following applies: -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ----------------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# version.py -# -# Defines the version of the package. This is the only place where this is -# found. The pyproject.toml configuration file and the documentation -# configuration file doc/src/conf.py both reference this file directly. -# ----------------------------------------------------------------------------- - -__version__ = "4.0.1" diff --git a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/INSTALLER b/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/LICENSE.txt b/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/LICENSE.txt deleted file mode 100644 index 00addc2..0000000 --- a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2008-2021 The pip developers (see AUTHORS.txt file) - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/METADATA b/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/METADATA deleted file mode 100644 index 9d031ed..0000000 --- a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/METADATA +++ /dev/null @@ -1,93 +0,0 @@ -Metadata-Version: 2.1 -Name: pip -Version: 21.3.1 -Summary: The PyPA recommended tool for installing Python packages. -Home-page: https://pip.pypa.io/ -Author: The pip developers -Author-email: distutils-sig@python.org -License: MIT -Project-URL: Documentation, https://pip.pypa.io -Project-URL: Source, https://github.com/pypa/pip -Project-URL: Changelog, https://pip.pypa.io/en/stable/news/ -Platform: UNKNOWN -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: MIT License -Classifier: Topic :: Software Development :: Build Tools -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Requires-Python: >=3.6 -License-File: LICENSE.txt - -pip - The Python Package Installer -================================== - -.. image:: https://img.shields.io/pypi/v/pip.svg - :target: https://pypi.org/project/pip/ - -.. image:: https://readthedocs.org/projects/pip/badge/?version=latest - :target: https://pip.pypa.io/en/latest - -pip is the `package installer`_ for Python. You can use pip to install packages from the `Python Package Index`_ and other indexes. - -Please take a look at our documentation for how to install and use pip: - -* `Installation`_ -* `Usage`_ - -We release updates regularly, with a new version every 3 months. Find more details in our documentation: - -* `Release notes`_ -* `Release process`_ - -In pip 20.3, we've `made a big improvement to the heart of pip`_; `learn more`_. We want your input, so `sign up for our user experience research studies`_ to help us do it right. - -**Note**: pip 21.0, in January 2021, removed Python 2 support, per pip's `Python 2 support policy`_. Please migrate to Python 3. - -If you find bugs, need help, or want to talk to the developers, please use our mailing lists or chat rooms: - -* `Issue tracking`_ -* `Discourse channel`_ -* `User IRC`_ - -If you want to get involved head over to GitHub to get the source code, look at our development documentation and feel free to jump on the developer mailing lists and chat rooms: - -* `GitHub page`_ -* `Development documentation`_ -* `Development mailing list`_ -* `Development IRC`_ - -Code of Conduct ---------------- - -Everyone interacting in the pip project's codebases, issue trackers, chat -rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_. - -.. _package installer: https://packaging.python.org/guides/tool-recommendations/ -.. _Python Package Index: https://pypi.org -.. _Installation: https://pip.pypa.io/en/stable/installation/ -.. _Usage: https://pip.pypa.io/en/stable/ -.. _Release notes: https://pip.pypa.io/en/stable/news.html -.. _Release process: https://pip.pypa.io/en/latest/development/release-process/ -.. _GitHub page: https://github.com/pypa/pip -.. _Development documentation: https://pip.pypa.io/en/latest/development -.. _made a big improvement to the heart of pip: https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html -.. _learn more: https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020 -.. _sign up for our user experience research studies: https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html -.. _Python 2 support policy: https://pip.pypa.io/en/latest/development/release-process/#python-2-support -.. _Issue tracking: https://github.com/pypa/pip/issues -.. _Discourse channel: https://discuss.python.org/c/packaging -.. _Development mailing list: https://mail.python.org/mailman3/lists/distutils-sig.python.org/ -.. _User IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa -.. _Development IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev -.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md - - diff --git a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/RECORD b/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/RECORD deleted file mode 100644 index b7f05c5..0000000 --- a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/RECORD +++ /dev/null @@ -1,812 +0,0 @@ -../../../bin/pip,sha256=CZh8S-IQRzUDzCWbQgYW18S2yoaL3n6j-XKiGxeoyEY,268 -../../../bin/pip3,sha256=CZh8S-IQRzUDzCWbQgYW18S2yoaL3n6j-XKiGxeoyEY,268 -../../../bin/pip3.9,sha256=CZh8S-IQRzUDzCWbQgYW18S2yoaL3n6j-XKiGxeoyEY,268 -pip-21.3.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -pip-21.3.1.dist-info/LICENSE.txt,sha256=I6c2HCsVgQKLxiO52ivSSZeryqR4Gs5q1ESjeUT42uE,1090 -pip-21.3.1.dist-info/METADATA,sha256=PjWcvFEqJd4gOfiQam8il34_wPNKxf8ubyYI2wYm7tc,4216 -pip-21.3.1.dist-info/RECORD,, -pip-21.3.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip-21.3.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92 -pip-21.3.1.dist-info/entry_points.txt,sha256=5ExSa1s54zSPNA_1epJn5SX06786S8k5YHwskMvVYzw,125 -pip-21.3.1.dist-info/top_level.txt,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -pip/__init__.py,sha256=798yhPIf6eMHi7R5Ogb3BJ5ALJ0Id8IwEuOSU2DFlp0,357 -pip/__main__.py,sha256=mXwWDftNLMKfwVqKFWGE_uuBZvGSIiUELhLkeysIuZc,1198 -pip/__pycache__/__init__.cpython-39.pyc,, -pip/__pycache__/__main__.cpython-39.pyc,, -pip/_internal/__init__.py,sha256=FU88-ODK1jGlVF2Qxp1gJqTwg0wujj12LayXQgFhlh8,587 -pip/_internal/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/__pycache__/build_env.cpython-39.pyc,, -pip/_internal/__pycache__/cache.cpython-39.pyc,, -pip/_internal/__pycache__/configuration.cpython-39.pyc,, -pip/_internal/__pycache__/exceptions.cpython-39.pyc,, -pip/_internal/__pycache__/main.cpython-39.pyc,, -pip/_internal/__pycache__/pyproject.cpython-39.pyc,, -pip/_internal/__pycache__/self_outdated_check.cpython-39.pyc,, -pip/_internal/__pycache__/wheel_builder.cpython-39.pyc,, -pip/_internal/build_env.py,sha256=uIg4HJDgZK542FXVTl3jkPDNbklNgb8Rj6DeZef_oS8,9950 -pip/_internal/cache.py,sha256=71eaYwrls34HJ6gzbmmYiotiKhPNFTM_tqYJXD5nf3s,9441 -pip/_internal/cli/__init__.py,sha256=FkHBgpxxb-_gd6r1FjnNhfMOzAUYyXoXKJ6abijfcFU,132 -pip/_internal/cli/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc,, -pip/_internal/cli/__pycache__/base_command.cpython-39.pyc,, -pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc,, -pip/_internal/cli/__pycache__/command_context.cpython-39.pyc,, -pip/_internal/cli/__pycache__/main.cpython-39.pyc,, -pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc,, -pip/_internal/cli/__pycache__/parser.cpython-39.pyc,, -pip/_internal/cli/__pycache__/progress_bars.cpython-39.pyc,, -pip/_internal/cli/__pycache__/req_command.cpython-39.pyc,, -pip/_internal/cli/__pycache__/spinners.cpython-39.pyc,, -pip/_internal/cli/__pycache__/status_codes.cpython-39.pyc,, -pip/_internal/cli/autocompletion.py,sha256=NK5yqe49SgExZOCFVEUT5Bf0QV2CuITGK27WSo2MWg8,6399 -pip/_internal/cli/base_command.py,sha256=oFuvjLsYE17V67L1dHeTo-YePZN97RKpOuGEXwCKwLc,7790 -pip/_internal/cli/cmdoptions.py,sha256=o6hueHSc3VWZ-_do9eeoZKEaxqh18zlXKAzVZ00Kg-o,28391 -pip/_internal/cli/command_context.py,sha256=a1pBBvvGLDiZ1Kw64_4tT6HmRTwYDoYy8JFgG5Czn7s,760 -pip/_internal/cli/main.py,sha256=ioJ8IVlb2K1qLOxR-tXkee9lURhYV89CDM71MKag7YY,2472 -pip/_internal/cli/main_parser.py,sha256=Q9TnytfuC5Z2JSjBFWVGtEdYLFy7rukNIb04movHdAo,2614 -pip/_internal/cli/parser.py,sha256=CDXTuFr2UD8ozOlZYf1KDziQdo9-X_IaYOiUcyJQwrA,10788 -pip/_internal/cli/progress_bars.py,sha256=ha8wowclY8_PaoM0cz4G6qK37zjnzuxQ-ydOtzx4EMI,8300 -pip/_internal/cli/req_command.py,sha256=La6J8YonTxoPtJ8HMPN4RTKyzg0VS_R4vxfVf_HmFZw,17097 -pip/_internal/cli/spinners.py,sha256=TFhjxtOnLeNJ5YmRvQm4eKPgPbJNkZiqO8jOXuxRaYU,5076 -pip/_internal/cli/status_codes.py,sha256=sEFHUaUJbqv8iArL3HAtcztWZmGOFX01hTesSytDEh0,116 -pip/_internal/commands/__init__.py,sha256=Vc1HjsLEtyCh7506OozPHPKXe2Hk-z9cFkFF3BMj1lM,3736 -pip/_internal/commands/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/commands/__pycache__/cache.cpython-39.pyc,, -pip/_internal/commands/__pycache__/check.cpython-39.pyc,, -pip/_internal/commands/__pycache__/completion.cpython-39.pyc,, -pip/_internal/commands/__pycache__/configuration.cpython-39.pyc,, -pip/_internal/commands/__pycache__/debug.cpython-39.pyc,, -pip/_internal/commands/__pycache__/download.cpython-39.pyc,, -pip/_internal/commands/__pycache__/freeze.cpython-39.pyc,, -pip/_internal/commands/__pycache__/hash.cpython-39.pyc,, -pip/_internal/commands/__pycache__/help.cpython-39.pyc,, -pip/_internal/commands/__pycache__/index.cpython-39.pyc,, -pip/_internal/commands/__pycache__/install.cpython-39.pyc,, -pip/_internal/commands/__pycache__/list.cpython-39.pyc,, -pip/_internal/commands/__pycache__/search.cpython-39.pyc,, -pip/_internal/commands/__pycache__/show.cpython-39.pyc,, -pip/_internal/commands/__pycache__/uninstall.cpython-39.pyc,, -pip/_internal/commands/__pycache__/wheel.cpython-39.pyc,, -pip/_internal/commands/cache.py,sha256=p9gvc6W_xgxE2zO0o8NXqO1gGJEinEK42qEC-a7Cnuk,7524 -pip/_internal/commands/check.py,sha256=0gjXR7j36xJT5cs2heYU_dfOfpnFfzX8OoPNNoKhqdM,1685 -pip/_internal/commands/completion.py,sha256=kTG_I1VR3N5kGC4Ma9pQTSoY9Q1URCrNyseHSQ-rCL4,2958 -pip/_internal/commands/configuration.py,sha256=arE8vLstjBg-Ar1krXF-bBmT1qBtnL7Fpk-NVh38a0U,8944 -pip/_internal/commands/debug.py,sha256=krET-y45CnQzXwKR1qA3M_tJE4LE2vnQtm3yfGyDSnE,6629 -pip/_internal/commands/download.py,sha256=p4lmYDgawRrwDFUpde_-1Gld45FnsMNHUFtOWFUCcSE,4904 -pip/_internal/commands/freeze.py,sha256=gCjoD6foBZPBAAYx5t8zZLkJhsF_ZRtnb3dPuD7beO8,2951 -pip/_internal/commands/hash.py,sha256=EVVOuvGtoPEdFi8SNnmdqlCQrhCxV-kJsdwtdcCnXGQ,1703 -pip/_internal/commands/help.py,sha256=gcc6QDkcgHMOuAn5UxaZwAStsRBrnGSn_yxjS57JIoM,1132 -pip/_internal/commands/index.py,sha256=1VVXXj5MsI2qH-N7uniQQyVkg-KCn_RdjiyiUmkUS5U,4762 -pip/_internal/commands/install.py,sha256=HTWdTb72Bcrm2tA_d55_hX6yQbchnr_XRdA2Xs8uApU,27851 -pip/_internal/commands/list.py,sha256=SnCh19e5zQKonNP7j25c_xru0Wm7wWWF8j49f-Dy9Bw,12203 -pip/_internal/commands/search.py,sha256=sbBZiARRc050QquOKcCvOr2K3XLsoYebLKZGRi__iUI,5697 -pip/_internal/commands/show.py,sha256=OREbPHF6UzvQiGLC1UIjG52Kc_jYDgcXZMYzgKXMbBI,8064 -pip/_internal/commands/uninstall.py,sha256=DNTYAGJNljMO_YYBxrpcwj0FEl7lo_P55_98O6g2TNk,3526 -pip/_internal/commands/wheel.py,sha256=xGSwLPYUM7jP_McD-wnM4D3zsP0n-NSkHFp4d0mAWIg,6168 -pip/_internal/configuration.py,sha256=dKHBEl8aXnqVuRB0NW7Nz7lyYMwr7XCfkMZvUORaSRo,13153 -pip/_internal/distributions/__init__.py,sha256=Hq6kt6gXBgjNit5hTTWLAzeCNOKoB-N0pGYSqehrli8,858 -pip/_internal/distributions/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/distributions/__pycache__/base.cpython-39.pyc,, -pip/_internal/distributions/__pycache__/installed.cpython-39.pyc,, -pip/_internal/distributions/__pycache__/sdist.cpython-39.pyc,, -pip/_internal/distributions/__pycache__/wheel.cpython-39.pyc,, -pip/_internal/distributions/base.py,sha256=3FUYD8Gb4YuSu3pggC_FRctZBDbpm5ZK89tPksIUjoE,1172 -pip/_internal/distributions/installed.py,sha256=QObf6KALGtwGx-Ap3Ua5FfcfaRMXWOk_wcrm7n5gYII,767 -pip/_internal/distributions/sdist.py,sha256=3fsErGhAWdGzuO7Wea0F_8b9fKyUL1PoYet273OoAoM,5598 -pip/_internal/distributions/wheel.py,sha256=-NgzdIs-w_hcer_U81yzgpVTljJRg5m79xufqvbjv0s,1115 -pip/_internal/exceptions.py,sha256=XyfiRZn2X8WR61X-JF50BU72TdmVkneWPy9cnuKv2Rg,12762 -pip/_internal/index/__init__.py,sha256=vpt-JeTZefh8a-FC22ZeBSXFVbuBcXSGiILhQZJaNpQ,30 -pip/_internal/index/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/index/__pycache__/collector.cpython-39.pyc,, -pip/_internal/index/__pycache__/package_finder.cpython-39.pyc,, -pip/_internal/index/__pycache__/sources.cpython-39.pyc,, -pip/_internal/index/collector.py,sha256=7rhUeH0IU_dUMk13-lBAN9czRuJ6dbG76Un7xuQ36Ck,17534 -pip/_internal/index/package_finder.py,sha256=_N9LIcwAXbGDN3BUDlikSB93WI9PHv3MvkJ4YapfrPY,36344 -pip/_internal/index/sources.py,sha256=SVyPitv08-Qalh2_Bk5diAJ9GAA_d-a93koouQodAG0,6557 -pip/_internal/locations/__init__.py,sha256=CpH6Cz9HSZ0csN_KPtOcvS9TGYLb7ZNGtCAAmVtjXW0,14444 -pip/_internal/locations/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/locations/__pycache__/_distutils.cpython-39.pyc,, -pip/_internal/locations/__pycache__/_sysconfig.cpython-39.pyc,, -pip/_internal/locations/__pycache__/base.cpython-39.pyc,, -pip/_internal/locations/_distutils.py,sha256=Sk7tw8ZP1DWMYJ8MibABsa8IME2Ejv1PKeGlYQCBTZc,5871 -pip/_internal/locations/_sysconfig.py,sha256=LQNKTJKyjVqxXaPntlBwdUqTG1xwYf6GVCKMbyRJx5M,7918 -pip/_internal/locations/base.py,sha256=x5D1ONktmPJd8nnUTh-ELsAJ7fiXA-k-0a_vhfi2_Us,1579 -pip/_internal/main.py,sha256=r-UnUe8HLo5XFJz8inTcOOTiu_sxNhgHb6VwlGUllOI,340 -pip/_internal/metadata/__init__.py,sha256=HzTS3lRukzn-MJaEZkUQhAFe6ulxvNe7nNoBvUzy-DU,1660 -pip/_internal/metadata/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/metadata/__pycache__/base.cpython-39.pyc,, -pip/_internal/metadata/__pycache__/pkg_resources.cpython-39.pyc,, -pip/_internal/metadata/base.py,sha256=gbNbb9blWO5hejmror-2n4_wLuYVrTyqwUluY9OmnMg,11103 -pip/_internal/metadata/pkg_resources.py,sha256=-LiuojtAfl3yhNx8rnUKYN3ECBVCVcDWszCupithXAw,5089 -pip/_internal/models/__init__.py,sha256=3DHUd_qxpPozfzouoqa9g9ts1Czr5qaHfFxbnxriepM,63 -pip/_internal/models/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/models/__pycache__/candidate.cpython-39.pyc,, -pip/_internal/models/__pycache__/direct_url.cpython-39.pyc,, -pip/_internal/models/__pycache__/format_control.cpython-39.pyc,, -pip/_internal/models/__pycache__/index.cpython-39.pyc,, -pip/_internal/models/__pycache__/link.cpython-39.pyc,, -pip/_internal/models/__pycache__/scheme.cpython-39.pyc,, -pip/_internal/models/__pycache__/search_scope.cpython-39.pyc,, -pip/_internal/models/__pycache__/selection_prefs.cpython-39.pyc,, -pip/_internal/models/__pycache__/target_python.cpython-39.pyc,, -pip/_internal/models/__pycache__/wheel.cpython-39.pyc,, -pip/_internal/models/candidate.py,sha256=6pcABsaR7CfIHlbJbr2_kMkVJFL_yrYjTx6SVWUnCPQ,990 -pip/_internal/models/direct_url.py,sha256=7XtGQSLLDQb5ZywI2EMnnLcddtf5CJLx44lMtTHPxFw,6350 -pip/_internal/models/format_control.py,sha256=DJpMYjxeYKKQdwNcML2_F0vtAh-qnKTYe-CpTxQe-4g,2520 -pip/_internal/models/index.py,sha256=tYnL8oxGi4aSNWur0mG8DAP7rC6yuha_MwJO8xw0crI,1030 -pip/_internal/models/link.py,sha256=hoT_qsOBAgLBm9GKqpBrNF_mrEXeGXQE-aH_RX2cGgg,9817 -pip/_internal/models/scheme.py,sha256=3EFQp_ICu_shH1-TBqhl0QAusKCPDFOlgHFeN4XowWs,738 -pip/_internal/models/search_scope.py,sha256=LwloG0PJAmtI1hFXIypsD95kWE9xfR5hf_a2v1Vw7sk,4520 -pip/_internal/models/selection_prefs.py,sha256=KZdi66gsR-_RUXUr9uejssk3rmTHrQVJWeNA2sV-VSY,1907 -pip/_internal/models/target_python.py,sha256=qKpZox7J8NAaPmDs5C_aniwfPDxzvpkrCKqfwndG87k,3858 -pip/_internal/models/wheel.py,sha256=hN9Ub-m-cAJCajCcQHyQNsqpcDCbPPDlEzBDwaBMc14,3500 -pip/_internal/network/__init__.py,sha256=jf6Tt5nV_7zkARBrKojIXItgejvoegVJVKUbhAa5Ioc,50 -pip/_internal/network/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/network/__pycache__/auth.cpython-39.pyc,, -pip/_internal/network/__pycache__/cache.cpython-39.pyc,, -pip/_internal/network/__pycache__/download.cpython-39.pyc,, -pip/_internal/network/__pycache__/lazy_wheel.cpython-39.pyc,, -pip/_internal/network/__pycache__/session.cpython-39.pyc,, -pip/_internal/network/__pycache__/utils.cpython-39.pyc,, -pip/_internal/network/__pycache__/xmlrpc.cpython-39.pyc,, -pip/_internal/network/auth.py,sha256=a3C7Xaa8kTJjXkdi_wrUjqaySc8Z9Yz7U6QIbXfzMyc,12190 -pip/_internal/network/cache.py,sha256=HoprMCecwd4IS2wDZowc9B_OpaBlFjJYJl4xOxvtuwU,2100 -pip/_internal/network/download.py,sha256=VmiR-KKIBugShZS4JlD7N8mq3hErx-0fK-D8aTYU3Og,6016 -pip/_internal/network/lazy_wheel.py,sha256=1b8ZJ1w4bSBzpGzGwJR_CL2yQ6AFIwWQkS1vbPPw2XU,7627 -pip/_internal/network/session.py,sha256=38IKGKC64MTVUIH5XOR1hr2pOCzp39RccykdmGAvqRU,16729 -pip/_internal/network/utils.py,sha256=igLlTu_-q0LmL8FdJKq-Uj7AT_owrQ-T9FfyarkhK5U,4059 -pip/_internal/network/xmlrpc.py,sha256=AzQgG4GgS152_cqmGr_Oz2MIXsCal-xfsis7fA7nmU0,1791 -pip/_internal/operations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_internal/operations/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/operations/__pycache__/check.cpython-39.pyc,, -pip/_internal/operations/__pycache__/freeze.cpython-39.pyc,, -pip/_internal/operations/__pycache__/prepare.cpython-39.pyc,, -pip/_internal/operations/build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_internal/operations/build/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/operations/build/__pycache__/metadata.cpython-39.pyc,, -pip/_internal/operations/build/__pycache__/metadata_editable.cpython-39.pyc,, -pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-39.pyc,, -pip/_internal/operations/build/__pycache__/wheel.cpython-39.pyc,, -pip/_internal/operations/build/__pycache__/wheel_editable.cpython-39.pyc,, -pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-39.pyc,, -pip/_internal/operations/build/metadata.py,sha256=KEsyrRFOBs2jhR-AcjyJyeV5GlsK1ubQqAB1j-b0Zu4,1119 -pip/_internal/operations/build/metadata_editable.py,sha256=RnA8UgQqZwtBjBdqi1DW1gI3xaZ7qhKp1Xd-0YTktSk,1177 -pip/_internal/operations/build/metadata_legacy.py,sha256=hjAJ75iKuJfKQYALZD0U6wJ7ElJ_BAEvjDxF8b9_l5k,1945 -pip/_internal/operations/build/wheel.py,sha256=AO9XnTGhTgHtZmU8Dkbfo1OGr41rBuSDjIgAa4zUKgE,1063 -pip/_internal/operations/build/wheel_editable.py,sha256=TVETY-L_M_dSEKBhTIcQOP75zKVXw8tuq1U354Mm30A,1405 -pip/_internal/operations/build/wheel_legacy.py,sha256=aFMVOvyG-_CAIuXEVxuPJkz5UfCppSeu9FBPzn2tWvI,3047 -pip/_internal/operations/check.py,sha256=ca4O9CkPt9Em9sLCf3H0iVt1GIcW7M8C0U5XooaBuT4,5109 -pip/_internal/operations/freeze.py,sha256=ZiYw5GlUpLVx4VJHz4S1AP2JFNyvH0iq5kpcYj2ovyw,9770 -pip/_internal/operations/install/__init__.py,sha256=mX7hyD2GNBO2mFGokDQ30r_GXv7Y_PLdtxcUv144e-s,51 -pip/_internal/operations/install/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/operations/install/__pycache__/editable_legacy.cpython-39.pyc,, -pip/_internal/operations/install/__pycache__/legacy.cpython-39.pyc,, -pip/_internal/operations/install/__pycache__/wheel.cpython-39.pyc,, -pip/_internal/operations/install/editable_legacy.py,sha256=J4VCOHvk_BgA_wG02WmlDtSWLwZJ5S_g9SXBkjYojaw,1298 -pip/_internal/operations/install/legacy.py,sha256=YKrZvH894Iqf2oEkYqF9O7CK1DjTgfZCP3R9Azpjeqo,4158 -pip/_internal/operations/install/wheel.py,sha256=QuQyCZE-XjuJjDYRixo40oUt2ucFhNmSrCbcXY7A9aE,27412 -pip/_internal/operations/prepare.py,sha256=Dg-lFYsFhYeib8NuQvGOxd0wxcmTqXfe_c5zYb3ep64,23838 -pip/_internal/pyproject.py,sha256=YgcyleTgyuh7NwGH9j8_21htqnF_VxgKiPc4ecLBWKk,7215 -pip/_internal/req/__init__.py,sha256=A7mUvT1KAcCYP3H7gUOTx2GRMlgoDur3H68Q0OJqM5A,2793 -pip/_internal/req/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/req/__pycache__/constructors.cpython-39.pyc,, -pip/_internal/req/__pycache__/req_file.cpython-39.pyc,, -pip/_internal/req/__pycache__/req_install.cpython-39.pyc,, -pip/_internal/req/__pycache__/req_set.cpython-39.pyc,, -pip/_internal/req/__pycache__/req_tracker.cpython-39.pyc,, -pip/_internal/req/__pycache__/req_uninstall.cpython-39.pyc,, -pip/_internal/req/constructors.py,sha256=FVWkWeGt3fK0DTC3Gurd2jglp_Z10CK-abd6yM3HD-A,15285 -pip/_internal/req/req_file.py,sha256=5N8OTouPCof-305StC2YK9HBxQMw-xO46skRoBPbkZo,17421 -pip/_internal/req/req_install.py,sha256=N8xohvY6CIaVt6D1sU9VWv2muO9oPjixIDisqBXUr0E,33804 -pip/_internal/req/req_set.py,sha256=kHYiLvkKRx21WaLTwOI-54Ng0SSzZZ9SE7FD0PsfvYA,7584 -pip/_internal/req/req_tracker.py,sha256=jK7JDu-Wt73X-gqozrFtgJVlUlnQo0P4IQ4x4_gPlfM,4117 -pip/_internal/req/req_uninstall.py,sha256=Uf8Kx-PgoQIudFq9Y7sFP-uz_I6x1gEfPpJJxujOf14,23748 -pip/_internal/resolution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_internal/resolution/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/resolution/__pycache__/base.cpython-39.pyc,, -pip/_internal/resolution/base.py,sha256=qlmh325SBVfvG6Me9gc5Nsh5sdwHBwzHBq6aEXtKsLA,583 -pip/_internal/resolution/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_internal/resolution/legacy/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc,, -pip/_internal/resolution/legacy/resolver.py,sha256=Fr7bfTaKqXoaIfSte7mvFRLMb8pAaiozgydoHeIyiHI,18312 -pip/_internal/resolution/resolvelib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/resolution/resolvelib/__pycache__/base.cpython-39.pyc,, -pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-39.pyc,, -pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-39.pyc,, -pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-39.pyc,, -pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-39.pyc,, -pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-39.pyc,, -pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-39.pyc,, -pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-39.pyc,, -pip/_internal/resolution/resolvelib/base.py,sha256=u1O4fkvCO4mhmu5i32xrDv9AX5NgUci_eYVyBDQhTIM,5220 -pip/_internal/resolution/resolvelib/candidates.py,sha256=5q66J90AoMKKwy1HsdXvEeleOJG8QkAbo8OidFekee0,18210 -pip/_internal/resolution/resolvelib/factory.py,sha256=GnjXkaWRbfjdtQJcjcmkXUyPIgjckCHTu6wkneDMck8,26806 -pip/_internal/resolution/resolvelib/found_candidates.py,sha256=hvL3Hoa9VaYo-qEOZkBi2Iqw251UDxPz-uMHVaWmLpE,5705 -pip/_internal/resolution/resolvelib/provider.py,sha256=HUMHvkU001rtlqvs11NPmMtlyMMLlVQfAl6qXdsLxZQ,9205 -pip/_internal/resolution/resolvelib/reporter.py,sha256=3ZVVYrs5PqvLFJkGLcuXoMK5mTInFzl31xjUpDBpZZk,2526 -pip/_internal/resolution/resolvelib/requirements.py,sha256=pcsnwz7txyDNZUEOWJOZEfivy3COWHPf_DIU7fwZ-Kk,5455 -pip/_internal/resolution/resolvelib/resolver.py,sha256=bkrMZs_jJHP_KFAbg36-lcN4Ums7ESgllup8piHXOz0,9580 -pip/_internal/self_outdated_check.py,sha256=nVLSc0nl4JZ9VI7GsZvblE-zzT-T5ofmMgplned8s_s,6393 -pip/_internal/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_internal/utils/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/utils/__pycache__/_log.cpython-39.pyc,, -pip/_internal/utils/__pycache__/appdirs.cpython-39.pyc,, -pip/_internal/utils/__pycache__/compat.cpython-39.pyc,, -pip/_internal/utils/__pycache__/compatibility_tags.cpython-39.pyc,, -pip/_internal/utils/__pycache__/datetime.cpython-39.pyc,, -pip/_internal/utils/__pycache__/deprecation.cpython-39.pyc,, -pip/_internal/utils/__pycache__/direct_url_helpers.cpython-39.pyc,, -pip/_internal/utils/__pycache__/distutils_args.cpython-39.pyc,, -pip/_internal/utils/__pycache__/egg_link.cpython-39.pyc,, -pip/_internal/utils/__pycache__/encoding.cpython-39.pyc,, -pip/_internal/utils/__pycache__/entrypoints.cpython-39.pyc,, -pip/_internal/utils/__pycache__/filesystem.cpython-39.pyc,, -pip/_internal/utils/__pycache__/filetypes.cpython-39.pyc,, -pip/_internal/utils/__pycache__/glibc.cpython-39.pyc,, -pip/_internal/utils/__pycache__/hashes.cpython-39.pyc,, -pip/_internal/utils/__pycache__/inject_securetransport.cpython-39.pyc,, -pip/_internal/utils/__pycache__/logging.cpython-39.pyc,, -pip/_internal/utils/__pycache__/misc.cpython-39.pyc,, -pip/_internal/utils/__pycache__/models.cpython-39.pyc,, -pip/_internal/utils/__pycache__/packaging.cpython-39.pyc,, -pip/_internal/utils/__pycache__/parallel.cpython-39.pyc,, -pip/_internal/utils/__pycache__/pkg_resources.cpython-39.pyc,, -pip/_internal/utils/__pycache__/setuptools_build.cpython-39.pyc,, -pip/_internal/utils/__pycache__/subprocess.cpython-39.pyc,, -pip/_internal/utils/__pycache__/temp_dir.cpython-39.pyc,, -pip/_internal/utils/__pycache__/unpacking.cpython-39.pyc,, -pip/_internal/utils/__pycache__/urls.cpython-39.pyc,, -pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc,, -pip/_internal/utils/__pycache__/wheel.cpython-39.pyc,, -pip/_internal/utils/_log.py,sha256=-jHLOE_THaZz5BFcCnoSL9EYAtJ0nXem49s9of4jvKw,1015 -pip/_internal/utils/appdirs.py,sha256=swgcTKOm3daLeXTW6v5BUS2Ti2RvEnGRQYH_yDXklAo,1665 -pip/_internal/utils/compat.py,sha256=ACyBfLgj3_XG-iA5omEDrXqDM0cQKzi8h8HRBInzG6Q,1884 -pip/_internal/utils/compatibility_tags.py,sha256=ydin8QG8BHqYRsPY4OL6cmb44CbqXl1T0xxS97VhHkk,5377 -pip/_internal/utils/datetime.py,sha256=m21Y3wAtQc-ji6Veb6k_M5g6A0ZyFI4egchTdnwh-pQ,242 -pip/_internal/utils/deprecation.py,sha256=NKo8VqLioJ4nnXXGmW4KdasxF90EFHkZaHeX1fT08C8,3627 -pip/_internal/utils/direct_url_helpers.py,sha256=6F1tc2rcKaCZmgfVwsE6ObIe_Pux23mUVYA-2D9wCFc,3206 -pip/_internal/utils/distutils_args.py,sha256=mcAscyp80vTt3xAGTipnpgc83V-_wCvydNELVXLq7JI,1249 -pip/_internal/utils/egg_link.py,sha256=5MVlpz5LirT4iLQq86OYzjXaYF0D4Qk1dprEI7ThST4,2203 -pip/_internal/utils/encoding.py,sha256=bdZ3YgUpaOEBI5MP4-DEXiQarCW3V0rxw1kRz-TaU1Q,1169 -pip/_internal/utils/entrypoints.py,sha256=g4QKi37JkZ2r6A9WbYLMwVzOiE3dn_lsqVhaFy0Erq0,1130 -pip/_internal/utils/filesystem.py,sha256=rrl-rY1w8TYyKYndUyZlE9ffkQyA4-jI9x_59zXkn5s,5893 -pip/_internal/utils/filetypes.py,sha256=i8XAQ0eFCog26Fw9yV0Yb1ygAqKYB1w9Cz9n0fj8gZU,716 -pip/_internal/utils/glibc.py,sha256=tDfwVYnJCOC0BNVpItpy8CGLP9BjkxFHdl0mTS0J7fc,3110 -pip/_internal/utils/hashes.py,sha256=anpZfFGIT6HcIj2td9NHtE8AWg6GeAIhwpP8GPvZE0E,4811 -pip/_internal/utils/inject_securetransport.py,sha256=o-QRVMGiENrTJxw3fAhA7uxpdEdw6M41TjHYtSVRrcg,795 -pip/_internal/utils/logging.py,sha256=oEkBvjj2A6NtVo75_Q-sL7qqH0bMFuY0pK4d8t40SKg,11532 -pip/_internal/utils/misc.py,sha256=HfMsfc9LQbjNlf_EdYm79Ggxb63Nd9WOfoZSW3H4wmo,20432 -pip/_internal/utils/models.py,sha256=5GoYU586SrxURMvDn_jBMJInitviJg4O5-iOU-6I0WY,1193 -pip/_internal/utils/packaging.py,sha256=wA29RPW_KkorI2PIfkm9cWCytpcVbk-wubwUE8YTmbQ,2952 -pip/_internal/utils/parallel.py,sha256=Z-vNgYsyiAx8JfZYbD6ZSzkkPfpk0ANQI_YpCBE0Pxo,3196 -pip/_internal/utils/pkg_resources.py,sha256=A7HUm5lSk7n1_7qypyI4QkXErXgb5iXDlKPXo8r_1Hk,987 -pip/_internal/utils/setuptools_build.py,sha256=yDrfmxUgd0A9SDKV-7UuSTA3YLmVav5J86G9Fym-2FE,4697 -pip/_internal/utils/subprocess.py,sha256=cy2c6XRuYkX3XJF_lIjY5nQL2XygBHLJr6WXwTsjfnc,10058 -pip/_internal/utils/temp_dir.py,sha256=zob3PYMVevONkheOMUp_4jDofrEY3HIu5DHK78cSspI,7662 -pip/_internal/utils/unpacking.py,sha256=Lpgq9-na7nS5lEQybICpLisXZVELLP1YyWhb-SLEPSc,12481 -pip/_internal/utils/urls.py,sha256=AhaesUGl-9it6uvG6fsFPOr9ynFpGaTMk4t5XTX7Z_Q,1759 -pip/_internal/utils/virtualenv.py,sha256=4_48qMzCwB_F5jIK5BC_ua7uiAMVifmQWU9NdaGUoVA,3459 -pip/_internal/utils/wheel.py,sha256=YwsLfuDzPJhFLuGotZ69i0bxJVGSweGuIHG2SxZvZtM,6163 -pip/_internal/vcs/__init__.py,sha256=UAqvzpbi0VbZo3Ub6skEeZAw-ooIZR-zX_WpCbxyCoU,596 -pip/_internal/vcs/__pycache__/__init__.cpython-39.pyc,, -pip/_internal/vcs/__pycache__/bazaar.cpython-39.pyc,, -pip/_internal/vcs/__pycache__/git.cpython-39.pyc,, -pip/_internal/vcs/__pycache__/mercurial.cpython-39.pyc,, -pip/_internal/vcs/__pycache__/subversion.cpython-39.pyc,, -pip/_internal/vcs/__pycache__/versioncontrol.cpython-39.pyc,, -pip/_internal/vcs/bazaar.py,sha256=pNMHrCLx1jSJzu1t1ycDVwhXQ23XI4Q483cvewaTUDs,2857 -pip/_internal/vcs/git.py,sha256=Ph_hThbfTG040GpJRz1z0ByiNkj5eHgF_shCCbNnCw0,17804 -pip/_internal/vcs/mercurial.py,sha256=LgB5xoX8CPtkl5pvvhXw9xQAXA0SF8CSmyVkGHScP78,4956 -pip/_internal/vcs/subversion.py,sha256=h4_nYmYN9kcfeTPp9wjkHhIeTpFZwoCp1UVm4hbBq90,11596 -pip/_internal/vcs/versioncontrol.py,sha256=W1zLW32PeuYiCV1I_dhqlk_n74B_GFTjNC5xdxs-1Ek,22414 -pip/_internal/wheel_builder.py,sha256=ZakEA7CEJyp70yHoX0QLE8TAwM7vxF9PYPtjBxT3F1I,12247 -pip/_vendor/__init__.py,sha256=xjcBX0EP50pkaMdCssrsBXoZgo2hTtYxlcH1CIyA3T4,4708 -pip/_vendor/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/__pycache__/distro.cpython-39.pyc,, -pip/_vendor/__pycache__/pyparsing.cpython-39.pyc,, -pip/_vendor/__pycache__/six.cpython-39.pyc,, -pip/_vendor/cachecontrol/__init__.py,sha256=pJtAaUxOsMPnytI1A3juAJkXYDr8krdSnsg4Yg3OBEg,302 -pip/_vendor/cachecontrol/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-39.pyc,, -pip/_vendor/cachecontrol/__pycache__/adapter.cpython-39.pyc,, -pip/_vendor/cachecontrol/__pycache__/cache.cpython-39.pyc,, -pip/_vendor/cachecontrol/__pycache__/compat.cpython-39.pyc,, -pip/_vendor/cachecontrol/__pycache__/controller.cpython-39.pyc,, -pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-39.pyc,, -pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-39.pyc,, -pip/_vendor/cachecontrol/__pycache__/serialize.cpython-39.pyc,, -pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-39.pyc,, -pip/_vendor/cachecontrol/_cmd.py,sha256=URGE0KrA87QekCG3SGPatlSPT571dZTDjNa-ZXX3pDc,1295 -pip/_vendor/cachecontrol/adapter.py,sha256=sSwaSYd93IIfCFU4tOMgSo6b2LCt_gBSaQUj8ktJFOA,4882 -pip/_vendor/cachecontrol/cache.py,sha256=1fc4wJP8HYt1ycnJXeEw5pCpeBL2Cqxx6g9Fb0AYDWQ,805 -pip/_vendor/cachecontrol/caches/__init__.py,sha256=-gHNKYvaeD0kOk5M74eOrsSgIKUtC6i6GfbmugGweEo,86 -pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-39.pyc,, -pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-39.pyc,, -pip/_vendor/cachecontrol/caches/file_cache.py,sha256=nYVKsJtXh6gJXvdn1iWyrhxvkwpQrK-eKoMRzuiwkKk,4153 -pip/_vendor/cachecontrol/caches/redis_cache.py,sha256=HxelMpNCo-dYr2fiJDwM3hhhRmxUYtB5tXm1GpAAT4Y,856 -pip/_vendor/cachecontrol/compat.py,sha256=kHNvMRdt6s_Xwqq_9qJmr9ou3wYMOMUMxPPcwNxT8Mc,695 -pip/_vendor/cachecontrol/controller.py,sha256=CWEX3pedIM9s60suf4zZPtm_JvVgnvogMGK_OiBG5F8,14149 -pip/_vendor/cachecontrol/filewrapper.py,sha256=vACKO8Llzu_ZWyjV1Fxn1MA4TGU60N5N3GSrAFdAY2Q,2533 -pip/_vendor/cachecontrol/heuristics.py,sha256=BFGHJ3yQcxvZizfo90LLZ04T_Z5XSCXvFotrp7Us0sc,4070 -pip/_vendor/cachecontrol/serialize.py,sha256=vIa4jvq4x_KSOLdEIedoknX2aXYHQujLDFV4-F21Dno,7091 -pip/_vendor/cachecontrol/wrapper.py,sha256=5LX0uJwkNQUtYSEw3aGmGu9WY8wGipd81mJ8lG0d0M4,690 -pip/_vendor/certifi/__init__.py,sha256=-b78tXibbl0qtgCzv9tc9v6ozwcNX915lT9Tf4a9lds,62 -pip/_vendor/certifi/__main__.py,sha256=1k3Cr95vCxxGRGDljrW3wMdpZdL3Nhf0u1n-k2qdsCY,255 -pip/_vendor/certifi/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/certifi/__pycache__/__main__.cpython-39.pyc,, -pip/_vendor/certifi/__pycache__/core.cpython-39.pyc,, -pip/_vendor/certifi/core.py,sha256=xcXTRTzkcnYHuGFEjzUFUvg9MOnYkD1gjqhsWOUiB0Y,2846 -pip/_vendor/chardet/__init__.py,sha256=mWZaWmvZkhwfBEAT9O1Y6nRTfKzhT7FHhQTTAujbqUA,3271 -pip/_vendor/chardet/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/big5freq.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/big5prober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/chardistribution.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/charsetprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/compat.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/cp949prober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/enums.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/escprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/escsm.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/eucjpprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/euckrfreq.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/euckrprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/euctwfreq.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/euctwprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/gb2312freq.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/gb2312prober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/hebrewprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/jisfreq.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/jpcntx.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/langthaimodel.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/latin1prober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/mbcssm.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/sjisprober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/universaldetector.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/utf8prober.cpython-39.pyc,, -pip/_vendor/chardet/__pycache__/version.cpython-39.pyc,, -pip/_vendor/chardet/big5freq.py,sha256=D_zK5GyzoVsRes0HkLJziltFQX0bKCLOrFe9_xDvO_8,31254 -pip/_vendor/chardet/big5prober.py,sha256=kBxHbdetBpPe7xrlb-e990iot64g_eGSLd32lB7_h3M,1757 -pip/_vendor/chardet/chardistribution.py,sha256=3woWS62KrGooKyqz4zQSnjFbJpa6V7g02daAibTwcl8,9411 -pip/_vendor/chardet/charsetgroupprober.py,sha256=GZLReHP6FRRn43hvSOoGCxYamErKzyp6RgOQxVeC3kg,3839 -pip/_vendor/chardet/charsetprober.py,sha256=KSmwJErjypyj0bRZmC5F5eM7c8YQgLYIjZXintZNstg,5110 -pip/_vendor/chardet/cli/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 -pip/_vendor/chardet/cli/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-39.pyc,, -pip/_vendor/chardet/cli/chardetect.py,sha256=XK5zqjUG2a4-y6eLHZ8ThYcp6WWUrdlmELxNypcc2SE,2747 -pip/_vendor/chardet/codingstatemachine.py,sha256=VYp_6cyyki5sHgXDSZnXW4q1oelHc3cu9AyQTX7uug8,3590 -pip/_vendor/chardet/compat.py,sha256=40zr6wICZwknxyuLGGcIOPyve8DTebBCbbvttvnmp5Q,1200 -pip/_vendor/chardet/cp949prober.py,sha256=TZ434QX8zzBsnUvL_8wm4AQVTZ2ZkqEEQL_lNw9f9ow,1855 -pip/_vendor/chardet/enums.py,sha256=Aimwdb9as1dJKZaFNUH2OhWIVBVd6ZkJJ_WK5sNY8cU,1661 -pip/_vendor/chardet/escprober.py,sha256=kkyqVg1Yw3DIOAMJ2bdlyQgUFQhuHAW8dUGskToNWSc,3950 -pip/_vendor/chardet/escsm.py,sha256=RuXlgNvTIDarndvllNCk5WZBIpdCxQ0kcd9EAuxUh84,10510 -pip/_vendor/chardet/eucjpprober.py,sha256=iD8Jdp0ISRjgjiVN7f0e8xGeQJ5GM2oeZ1dA8nbSeUw,3749 -pip/_vendor/chardet/euckrfreq.py,sha256=-7GdmvgWez4-eO4SuXpa7tBiDi5vRXQ8WvdFAzVaSfo,13546 -pip/_vendor/chardet/euckrprober.py,sha256=MqFMTQXxW4HbzIpZ9lKDHB3GN8SP4yiHenTmf8g_PxY,1748 -pip/_vendor/chardet/euctwfreq.py,sha256=No1WyduFOgB5VITUA7PLyC5oJRNzRyMbBxaKI1l16MA,31621 -pip/_vendor/chardet/euctwprober.py,sha256=13p6EP4yRaxqnP4iHtxHOJ6R2zxHq1_m8hTRjzVZ95c,1747 -pip/_vendor/chardet/gb2312freq.py,sha256=JX8lsweKLmnCwmk8UHEQsLgkr_rP_kEbvivC4qPOrlc,20715 -pip/_vendor/chardet/gb2312prober.py,sha256=gGvIWi9WhDjE-xQXHvNIyrnLvEbMAYgyUSZ65HUfylw,1754 -pip/_vendor/chardet/hebrewprober.py,sha256=c3SZ-K7hvyzGY6JRAZxJgwJ_sUS9k0WYkvMY00YBYFo,13838 -pip/_vendor/chardet/jisfreq.py,sha256=vpmJv2Bu0J8gnMVRPHMFefTRvo_ha1mryLig8CBwgOg,25777 -pip/_vendor/chardet/jpcntx.py,sha256=PYlNqRUQT8LM3cT5FmHGP0iiscFlTWED92MALvBungo,19643 -pip/_vendor/chardet/langbulgarianmodel.py,sha256=Ys1irPhpi61ywJpv6a-6JQOLwn7Ed7YqTBpGZ7adhOk,105675 -pip/_vendor/chardet/langgreekmodel.py,sha256=en5Np_mAnOAR1Akoh0562eSe7phGWuq7H2_KoEv4eQU,99549 -pip/_vendor/chardet/langhebrewmodel.py,sha256=NHkt2JO49NbzkgPzgYgrGIKvpO040WOjUMEPRzkZVDo,98754 -pip/_vendor/chardet/langhungarianmodel.py,sha256=IA_31i27hFJwCRhHQ_0CdUIeBr_qndYmj2SJqDdw1n4,102476 -pip/_vendor/chardet/langrussianmodel.py,sha256=QzrKRvQInhNxnMkYTugNqEfvVFZl_WI1bj9rFLdjYgQ,131158 -pip/_vendor/chardet/langthaimodel.py,sha256=Ju2fDTy26CdiZYkioD8I5ZzKEGe8Et-49zon1_OOZI4,103290 -pip/_vendor/chardet/langturkishmodel.py,sha256=ycEZsKGFiLl-FgoZLiUmWeS8F7F2ts3RrNdgRzArDlU,95924 -pip/_vendor/chardet/latin1prober.py,sha256=S2IoORhFk39FEFOlSFWtgVybRiP6h7BlLldHVclNkU8,5370 -pip/_vendor/chardet/mbcharsetprober.py,sha256=AR95eFH9vuqSfvLQZN-L5ijea25NOBCoXqw8s5O9xLQ,3413 -pip/_vendor/chardet/mbcsgroupprober.py,sha256=h6TRnnYq2OxG1WdD5JOyxcdVpn7dG0q-vB8nWr5mbh4,2012 -pip/_vendor/chardet/mbcssm.py,sha256=SY32wVIF3HzcjY3BaEspy9metbNSKxIIB0RKPn7tjpI,25481 -pip/_vendor/chardet/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/chardet/metadata/__pycache__/languages.cpython-39.pyc,, -pip/_vendor/chardet/metadata/languages.py,sha256=Bn9KbnR_sctMbPDMw9IwxOyYeOGuE4tcVNjvE2FOEmA,19452 -pip/_vendor/chardet/sbcharsetprober.py,sha256=nmyMyuxzG87DN6K3Rk2MUzJLMLR69MrWpdnHzOwVUwQ,6136 -pip/_vendor/chardet/sbcsgroupprober.py,sha256=hqefQuXmiFyDBArOjujH6hd6WFXlOD1kWCsxDhjx5Vc,4309 -pip/_vendor/chardet/sjisprober.py,sha256=IIt-lZj0WJqK4rmUZzKZP4GJlE8KUEtFYVuY96ek5MQ,3774 -pip/_vendor/chardet/universaldetector.py,sha256=DpZTXCX0nUHXxkQ9sr4GZxGB_hveZ6hWt3uM94cgWKs,12503 -pip/_vendor/chardet/utf8prober.py,sha256=IdD8v3zWOsB8OLiyPi-y_fqwipRFxV9Nc1eKBLSuIEw,2766 -pip/_vendor/chardet/version.py,sha256=A4CILFAd8MRVG1HoXPp45iK9RLlWyV73a1EtwE8Tvn8,242 -pip/_vendor/colorama/__init__.py,sha256=pCdErryzLSzDW5P-rRPBlPLqbBtIRNJB6cMgoeJns5k,239 -pip/_vendor/colorama/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/colorama/__pycache__/ansi.cpython-39.pyc,, -pip/_vendor/colorama/__pycache__/ansitowin32.cpython-39.pyc,, -pip/_vendor/colorama/__pycache__/initialise.cpython-39.pyc,, -pip/_vendor/colorama/__pycache__/win32.cpython-39.pyc,, -pip/_vendor/colorama/__pycache__/winterm.cpython-39.pyc,, -pip/_vendor/colorama/ansi.py,sha256=Top4EeEuaQdBWdteKMEcGOTeKeF19Q-Wo_6_Cj5kOzQ,2522 -pip/_vendor/colorama/ansitowin32.py,sha256=yV7CEmCb19MjnJKODZEEvMH_fnbJhwnpzo4sxZuGXmA,10517 -pip/_vendor/colorama/initialise.py,sha256=PprovDNxMTrvoNHFcL2NZjpH2XzDc8BLxLxiErfUl4k,1915 -pip/_vendor/colorama/win32.py,sha256=bJ8Il9jwaBN5BJ8bmN6FoYZ1QYuMKv2j8fGrXh7TJjw,5404 -pip/_vendor/colorama/winterm.py,sha256=2y_2b7Zsv34feAsP67mLOVc-Bgq51mdYGo571VprlrM,6438 -pip/_vendor/distlib/__init__.py,sha256=HTGLP7dnTRTQCbEZNGUxBq-0sobr0KQUMn3yd6uEObA,581 -pip/_vendor/distlib/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/compat.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/database.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/index.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/locators.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/manifest.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/markers.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/metadata.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/resources.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/scripts.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/util.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/version.cpython-39.pyc,, -pip/_vendor/distlib/__pycache__/wheel.cpython-39.pyc,, -pip/_vendor/distlib/_backport/__init__.py,sha256=bqS_dTOH6uW9iGgd0uzfpPjo6vZ4xpPZ7kyfZJ2vNaw,274 -pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/distlib/_backport/__pycache__/misc.cpython-39.pyc,, -pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-39.pyc,, -pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-39.pyc,, -pip/_vendor/distlib/_backport/__pycache__/tarfile.cpython-39.pyc,, -pip/_vendor/distlib/_backport/misc.py,sha256=KWecINdbFNOxSOP1fGF680CJnaC6S4fBRgEtaYTw0ig,971 -pip/_vendor/distlib/_backport/shutil.py,sha256=IX_G2NPqwecJibkIDje04bqu0xpHkfSQ2GaGdEVqM5Y,25707 -pip/_vendor/distlib/_backport/sysconfig.cfg,sha256=swZKxq9RY5e9r3PXCrlvQPMsvOdiWZBTHLEbqS8LJLU,2617 -pip/_vendor/distlib/_backport/sysconfig.py,sha256=BQHFlb6pubCl_dvT1NjtzIthylofjKisox239stDg0U,26854 -pip/_vendor/distlib/_backport/tarfile.py,sha256=Ihp7rXRcjbIKw8COm9wSePV9ARGXbSF9gGXAMn2Q-KU,92628 -pip/_vendor/distlib/compat.py,sha256=fbsxc5PfJ2wBx1K4k6mQ2goAYs-GZW0tcOPIlE_vf0I,41495 -pip/_vendor/distlib/database.py,sha256=Kl0YvPQKc4OcpVi7k5cFziydM1xOK8iqdxLGXgbZHV4,51059 -pip/_vendor/distlib/index.py,sha256=UfcimNW19AB7IKWam4VaJbXuCBvArKfSxhV16EwavzE,20739 -pip/_vendor/distlib/locators.py,sha256=AKlB3oZvfOTg4E0CtfwOzujFL19X5V4XUA4eHdKOu44,51965 -pip/_vendor/distlib/manifest.py,sha256=nQEhYmgoreaBZzyFzwYsXxJARu3fo4EkunU163U16iE,14811 -pip/_vendor/distlib/markers.py,sha256=9c70ISEKwBjmUOHuIdOygVnRVESOKdNYp9a2TVn4qrI,4989 -pip/_vendor/distlib/metadata.py,sha256=vatoxFdmBr6ie-sTVXVNPOPG3uwMDWJTnEECnm7xDCw,39109 -pip/_vendor/distlib/resources.py,sha256=LwbPksc0A1JMbi6XnuPdMBUn83X7BPuFNWqPGEKI698,10820 -pip/_vendor/distlib/scripts.py,sha256=tjSwENINeV91ROZxec5zTSMRg2jEeKc4enyCHDzNvEE,17720 -pip/_vendor/distlib/util.py,sha256=0Uq_qa63FCLtdyNdWvMnmPbiSvVa-ykHM2E8HT7LSIU,67766 -pip/_vendor/distlib/version.py,sha256=WG__LyAa2GwmA6qSoEJtvJE8REA1LZpbSizy8WvhJLk,23513 -pip/_vendor/distlib/wheel.py,sha256=pj5VVCjqZMcHvgizORWwAFPS7hOk61CZ59dxP8laQ4E,42943 -pip/_vendor/distro.py,sha256=O1EeHMq1-xAO373JI2_6pYEtd09yEkxtmrYkdY-9S-w,48414 -pip/_vendor/html5lib/__init__.py,sha256=BYzcKCqeEii52xDrqBFruhnmtmkiuHXFyFh-cglQ8mk,1160 -pip/_vendor/html5lib/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-39.pyc,, -pip/_vendor/html5lib/__pycache__/_inputstream.cpython-39.pyc,, -pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-39.pyc,, -pip/_vendor/html5lib/__pycache__/_utils.cpython-39.pyc,, -pip/_vendor/html5lib/__pycache__/constants.cpython-39.pyc,, -pip/_vendor/html5lib/__pycache__/html5parser.cpython-39.pyc,, -pip/_vendor/html5lib/__pycache__/serializer.cpython-39.pyc,, -pip/_vendor/html5lib/_ihatexml.py,sha256=ifOwF7pXqmyThIXc3boWc96s4MDezqRrRVp7FwDYUFs,16728 -pip/_vendor/html5lib/_inputstream.py,sha256=jErNASMlkgs7MpOM9Ve_VdLDJyFFweAjLuhVutZz33U,32353 -pip/_vendor/html5lib/_tokenizer.py,sha256=04mgA2sNTniutl2fxFv-ei5bns4iRaPxVXXHh_HrV_4,77040 -pip/_vendor/html5lib/_trie/__init__.py,sha256=nqfgO910329BEVJ5T4psVwQtjd2iJyEXQ2-X8c1YxwU,109 -pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-39.pyc,, -pip/_vendor/html5lib/_trie/__pycache__/py.cpython-39.pyc,, -pip/_vendor/html5lib/_trie/_base.py,sha256=CaybYyMro8uERQYjby2tTeSUatnWDfWroUN9N7ety5w,1013 -pip/_vendor/html5lib/_trie/py.py,sha256=wXmQLrZRf4MyWNyg0m3h81m9InhLR7GJ002mIIZh-8o,1775 -pip/_vendor/html5lib/_utils.py,sha256=Dx9AKntksRjFT1veBj7I362pf5OgIaT0zglwq43RnfU,4931 -pip/_vendor/html5lib/constants.py,sha256=Ll-yzLU_jcjyAI_h57zkqZ7aQWE5t5xA4y_jQgoUUhw,83464 -pip/_vendor/html5lib/filters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-39.pyc,, -pip/_vendor/html5lib/filters/__pycache__/base.cpython-39.pyc,, -pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-39.pyc,, -pip/_vendor/html5lib/filters/__pycache__/lint.cpython-39.pyc,, -pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-39.pyc,, -pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-39.pyc,, -pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-39.pyc,, -pip/_vendor/html5lib/filters/alphabeticalattributes.py,sha256=lViZc2JMCclXi_5gduvmdzrRxtO5Xo9ONnbHBVCsykU,919 -pip/_vendor/html5lib/filters/base.py,sha256=z-IU9ZAYjpsVsqmVt7kuWC63jR11hDMr6CVrvuao8W0,286 -pip/_vendor/html5lib/filters/inject_meta_charset.py,sha256=egDXUEHXmAG9504xz0K6ALDgYkvUrC2q15YUVeNlVQg,2945 -pip/_vendor/html5lib/filters/lint.py,sha256=jk6q56xY0ojiYfvpdP-OZSm9eTqcAdRqhCoPItemPYA,3643 -pip/_vendor/html5lib/filters/optionaltags.py,sha256=8lWT75J0aBOHmPgfmqTHSfPpPMp01T84NKu0CRedxcE,10588 -pip/_vendor/html5lib/filters/sanitizer.py,sha256=m6oGmkBhkGAnn2nV6D4hE78SCZ6WEnK9rKdZB3uXBIc,26897 -pip/_vendor/html5lib/filters/whitespace.py,sha256=8eWqZxd4UC4zlFGW6iyY6f-2uuT8pOCSALc3IZt7_t4,1214 -pip/_vendor/html5lib/html5parser.py,sha256=anr-aXre_ImfrkQ35c_rftKXxC80vJCREKe06Tq15HA,117186 -pip/_vendor/html5lib/serializer.py,sha256=_PpvcZF07cwE7xr9uKkZqh5f4UEaI8ltCU2xPJzaTpk,15759 -pip/_vendor/html5lib/treeadapters/__init__.py,sha256=A0rY5gXIe4bJOiSGRO_j_tFhngRBO8QZPzPtPw5dFzo,679 -pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-39.pyc,, -pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-39.pyc,, -pip/_vendor/html5lib/treeadapters/genshi.py,sha256=CH27pAsDKmu4ZGkAUrwty7u0KauGLCZRLPMzaO3M5vo,1715 -pip/_vendor/html5lib/treeadapters/sax.py,sha256=BKS8woQTnKiqeffHsxChUqL4q2ZR_wb5fc9MJ3zQC8s,1776 -pip/_vendor/html5lib/treebuilders/__init__.py,sha256=AysSJyvPfikCMMsTVvaxwkgDieELD5dfR8FJIAuq7hY,3592 -pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-39.pyc,, -pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-39.pyc,, -pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-39.pyc,, -pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-39.pyc,, -pip/_vendor/html5lib/treebuilders/base.py,sha256=z-o51vt9r_l2IDG5IioTOKGzZne4Fy3_Fc-7ztrOh4I,14565 -pip/_vendor/html5lib/treebuilders/dom.py,sha256=22whb0C71zXIsai5mamg6qzBEiigcBIvaDy4Asw3at0,8925 -pip/_vendor/html5lib/treebuilders/etree.py,sha256=w5ZFpKk6bAxnrwD2_BrF5EVC7vzz0L3LMi9Sxrbc_8w,12836 -pip/_vendor/html5lib/treebuilders/etree_lxml.py,sha256=9gqDjs-IxsPhBYa5cpvv2FZ1KZlG83Giusy2lFmvIkE,14766 -pip/_vendor/html5lib/treewalkers/__init__.py,sha256=OBPtc1TU5mGyy18QDMxKEyYEz0wxFUUNj5v0-XgmYhY,5719 -pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-39.pyc,, -pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-39.pyc,, -pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-39.pyc,, -pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-39.pyc,, -pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-39.pyc,, -pip/_vendor/html5lib/treewalkers/base.py,sha256=ouiOsuSzvI0KgzdWP8PlxIaSNs9falhbiinAEc_UIJY,7476 -pip/_vendor/html5lib/treewalkers/dom.py,sha256=EHyFR8D8lYNnyDU9lx_IKigVJRyecUGua0mOi7HBukc,1413 -pip/_vendor/html5lib/treewalkers/etree.py,sha256=xo1L5m9VtkfpFJK0pFmkLVajhqYYVisVZn3k9kYpPkI,4551 -pip/_vendor/html5lib/treewalkers/etree_lxml.py,sha256=_b0LAVWLcVu9WaU_-w3D8f0IRSpCbjf667V-3NRdhTw,6357 -pip/_vendor/html5lib/treewalkers/genshi.py,sha256=4D2PECZ5n3ZN3qu3jMl9yY7B81jnQApBQSVlfaIuYbA,2309 -pip/_vendor/idna/__init__.py,sha256=KJQN1eQBr8iIK5SKrJ47lXvxG0BJ7Lm38W4zT0v_8lk,849 -pip/_vendor/idna/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/idna/__pycache__/codec.cpython-39.pyc,, -pip/_vendor/idna/__pycache__/compat.cpython-39.pyc,, -pip/_vendor/idna/__pycache__/core.cpython-39.pyc,, -pip/_vendor/idna/__pycache__/idnadata.cpython-39.pyc,, -pip/_vendor/idna/__pycache__/intranges.cpython-39.pyc,, -pip/_vendor/idna/__pycache__/package_data.cpython-39.pyc,, -pip/_vendor/idna/__pycache__/uts46data.cpython-39.pyc,, -pip/_vendor/idna/codec.py,sha256=QsPFD3Je8gN17rfs14e7zTGRWlnL7bNf2ZqcHTRVYHs,3453 -pip/_vendor/idna/compat.py,sha256=5A9xR04puRHCsyjBNewZlVSiarth7K1bZqyEOeob1fA,360 -pip/_vendor/idna/core.py,sha256=P2QG1RwnhYqke_iRW32NRD5T05fPrEGItqm9TC7Oivk,12689 -pip/_vendor/idna/idnadata.py,sha256=MmZj0WS3ewh_OUIhfg3ZtTrMo_VTm0KEEwp21Mxo_yc,73831 -pip/_vendor/idna/intranges.py,sha256=EqgXwyATAn-CTACInqH9tYsYAitGB2VcQ50RZt_Cpjs,1933 -pip/_vendor/idna/package_data.py,sha256=_028B4fvadRIaXMwMYjhuQPP3AxTIt1IRE7X6RDR4Mk,21 -pip/_vendor/idna/uts46data.py,sha256=DGzwDQv8JijY17I_7ondo3stjFjNnjvVAbA-z0k1XOE,201849 -pip/_vendor/msgpack/__init__.py,sha256=2gJwcsTIaAtCM0GMi2rU-_Y6kILeeQuqRkrQ22jSANc,1118 -pip/_vendor/msgpack/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/msgpack/__pycache__/_version.cpython-39.pyc,, -pip/_vendor/msgpack/__pycache__/exceptions.cpython-39.pyc,, -pip/_vendor/msgpack/__pycache__/ext.cpython-39.pyc,, -pip/_vendor/msgpack/__pycache__/fallback.cpython-39.pyc,, -pip/_vendor/msgpack/_version.py,sha256=dFR03oACnj4lsKd1RnwD7BPMiVI_FMygdOL1TOBEw_U,20 -pip/_vendor/msgpack/exceptions.py,sha256=dCTWei8dpkrMsQDcjQk74ATl9HsIBH0ybt8zOPNqMYc,1081 -pip/_vendor/msgpack/ext.py,sha256=4l356Y4sVEcvCla2dh_cL57vh4GMhZfa3kuWHFHYz6A,6088 -pip/_vendor/msgpack/fallback.py,sha256=Rpv1Ldey8f8ueRnQznD4ARKBn9dxM2PywVNkXI8IEeE,38026 -pip/_vendor/packaging/__about__.py,sha256=p_OQloqH2saadcbUQmWEsWK857dI6_ff5E3aSiCqGFA,661 -pip/_vendor/packaging/__init__.py,sha256=b9Kk5MF7KxhhLgcDmiUWukN-LatWFxPdNug0joPhHSk,497 -pip/_vendor/packaging/__pycache__/__about__.cpython-39.pyc,, -pip/_vendor/packaging/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/packaging/__pycache__/_manylinux.cpython-39.pyc,, -pip/_vendor/packaging/__pycache__/_musllinux.cpython-39.pyc,, -pip/_vendor/packaging/__pycache__/_structures.cpython-39.pyc,, -pip/_vendor/packaging/__pycache__/markers.cpython-39.pyc,, -pip/_vendor/packaging/__pycache__/requirements.cpython-39.pyc,, -pip/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc,, -pip/_vendor/packaging/__pycache__/tags.cpython-39.pyc,, -pip/_vendor/packaging/__pycache__/utils.cpython-39.pyc,, -pip/_vendor/packaging/__pycache__/version.cpython-39.pyc,, -pip/_vendor/packaging/_manylinux.py,sha256=XcbiXB-qcjv3bcohp6N98TMpOP4_j3m-iOA8ptK2GWY,11488 -pip/_vendor/packaging/_musllinux.py,sha256=z5yeG1ygOPx4uUyLdqj-p8Dk5UBb5H_b0NIjW9yo8oA,4378 -pip/_vendor/packaging/_structures.py,sha256=TMiAgFbdUOPmIfDIfiHc3KFhSJ8kMjof2QS5I-2NyQ8,1629 -pip/_vendor/packaging/markers.py,sha256=AJBOcY8Oq0kYc570KuuPTkvuqjAlhufaE2c9sCUbm64,8487 -pip/_vendor/packaging/requirements.py,sha256=NtDlPBtojpn1IUC85iMjPNsUmufjpSlwnNA-Xb4m5NA,4676 -pip/_vendor/packaging/specifiers.py,sha256=MZ-fYcNL3u7pNrt-6g2EQO7AbRXkjc-SPEYwXMQbLmc,30964 -pip/_vendor/packaging/tags.py,sha256=akIerYw8W0sz4OW9HHozgawWnbt2GGOPm3sviW0jowY,15714 -pip/_vendor/packaging/utils.py,sha256=dJjeat3BS-TYn1RrUFVwufUMasbtzLfYRoy_HXENeFQ,4200 -pip/_vendor/packaging/version.py,sha256=AOLsewGcHCskMRdz2ykO3Gv7U7YZwgzE5Pj9ifjd6S8,14479 -pip/_vendor/pep517/__init__.py,sha256=Y1bATL2qbFNN6M_DQa4yyrwqjpIiL-j9T6kBmR0DS14,130 -pip/_vendor/pep517/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/pep517/__pycache__/build.cpython-39.pyc,, -pip/_vendor/pep517/__pycache__/check.cpython-39.pyc,, -pip/_vendor/pep517/__pycache__/colorlog.cpython-39.pyc,, -pip/_vendor/pep517/__pycache__/compat.cpython-39.pyc,, -pip/_vendor/pep517/__pycache__/dirtools.cpython-39.pyc,, -pip/_vendor/pep517/__pycache__/envbuild.cpython-39.pyc,, -pip/_vendor/pep517/__pycache__/meta.cpython-39.pyc,, -pip/_vendor/pep517/__pycache__/wrappers.cpython-39.pyc,, -pip/_vendor/pep517/build.py,sha256=2bar6EdjwIz2Dlfy94qdxn3oA9mVnnny40mfoT5f-qI,3457 -pip/_vendor/pep517/check.py,sha256=bCORq1WrHjhpTONa-zpAqG0EB9rHNuhO1ORu6DsDuL8,6084 -pip/_vendor/pep517/colorlog.py,sha256=Tk9AuYm_cLF3BKTBoSTJt9bRryn0aFojIQOwbfVUTxQ,4098 -pip/_vendor/pep517/compat.py,sha256=NmLImE5oiDT3gbEhJ4w7xeoMFcpAPrGu_NltBytSJUY,1253 -pip/_vendor/pep517/dirtools.py,sha256=2mkAkAL0mRz_elYFjRKuekTJVipH1zTn4tbf1EDev84,1129 -pip/_vendor/pep517/envbuild.py,sha256=zFde--rmzjXMLXcm7SA_3hDtgk5VCTA8hjpk88RbF6E,6100 -pip/_vendor/pep517/in_process/__init__.py,sha256=MyWoAi8JHdcBv7yXuWpUSVADbx6LSB9rZh7kTIgdA8Y,563 -pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-39.pyc,, -pip/_vendor/pep517/in_process/_in_process.py,sha256=D3waguyNSGcwosociD5USfcycYr2RCzCjYtxX5UHQmQ,11201 -pip/_vendor/pep517/meta.py,sha256=8mnM5lDnT4zXQpBTliJbRGfesH7iioHwozbDxALPS9Y,2463 -pip/_vendor/pep517/wrappers.py,sha256=impq7Cz_LL1iDF1iiOzYWB4MaEu6O6Gps7TJ5qsJz1Q,13429 -pip/_vendor/pkg_resources/__init__.py,sha256=NnpQ3g6BCHzpMgOR_OLBmYtniY4oOzdKpwqghfq_6ug,108287 -pip/_vendor/pkg_resources/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-39.pyc,, -pip/_vendor/pkg_resources/py31compat.py,sha256=CRk8fkiPRDLsbi5pZcKsHI__Pbmh_94L8mr9Qy9Ab2U,562 -pip/_vendor/platformdirs/__init__.py,sha256=3iz938Grn-6IRg8gSuMxJtgiBfH0xqRqAlMBo-vPGUw,12859 -pip/_vendor/platformdirs/__main__.py,sha256=SzGvNkYWuosrWXs2yL2VqcXEh-kivWq3-53-BpTco0o,1140 -pip/_vendor/platformdirs/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/platformdirs/__pycache__/__main__.cpython-39.pyc,, -pip/_vendor/platformdirs/__pycache__/android.cpython-39.pyc,, -pip/_vendor/platformdirs/__pycache__/api.cpython-39.pyc,, -pip/_vendor/platformdirs/__pycache__/macos.cpython-39.pyc,, -pip/_vendor/platformdirs/__pycache__/unix.cpython-39.pyc,, -pip/_vendor/platformdirs/__pycache__/version.cpython-39.pyc,, -pip/_vendor/platformdirs/__pycache__/windows.cpython-39.pyc,, -pip/_vendor/platformdirs/android.py,sha256=dadYfG2oc900YVi5AONQWw2WEvk-kmgkZs5iiNSiWiE,3994 -pip/_vendor/platformdirs/api.py,sha256=yhRR6RkcZzPBfJD4Sn90vCHZbRMQ9nwtnRaa93X1wR8,4922 -pip/_vendor/platformdirs/macos.py,sha256=vIowPYKkHksJcWVjqHQoa-oI1i2D0S7gsSdyFzZDJEA,2619 -pip/_vendor/platformdirs/unix.py,sha256=7JdDnsyTFn2IHC8IFdiNYH7_R8VS-rPx8ivh4_dT1DU,6905 -pip/_vendor/platformdirs/version.py,sha256=uUssQTtUqVP-PxbOSNBzNGRW27X5u1GvOllg--kzyuw,80 -pip/_vendor/platformdirs/windows.py,sha256=91nNccR0CSxX_myMppSvUT1qtQao6kaO96e6ior8-Xw,6416 -pip/_vendor/progress/__init__.py,sha256=1HejNZtv2ouUNQeStUDAtZrtwkz_3FmYKQ476hJ7zOs,5294 -pip/_vendor/progress/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/progress/__pycache__/bar.cpython-39.pyc,, -pip/_vendor/progress/__pycache__/colors.cpython-39.pyc,, -pip/_vendor/progress/__pycache__/counter.cpython-39.pyc,, -pip/_vendor/progress/__pycache__/spinner.cpython-39.pyc,, -pip/_vendor/progress/bar.py,sha256=GbedY0oZ-Q1duXjmvVLO0tSf-uTSH7hJ3zzyI91Esws,2942 -pip/_vendor/progress/colors.py,sha256=cCYXQnYFYVmQKKmYEbQ_lj6SPSFzdw4FN98F2x2kR-U,2655 -pip/_vendor/progress/counter.py,sha256=zYt9DWH0_05s8Q9TrJwHVud-WwsyyaR3PwYtk5hxwwQ,1613 -pip/_vendor/progress/spinner.py,sha256=u5ElzW94XEiLGH-aAlr54VJtKfeK745xr6UfGvvflzU,1461 -pip/_vendor/pyparsing.py,sha256=J1b4z3S_KwyJW7hKGnoN-hXW9pgMIzIP6QThyY5yJq4,273394 -pip/_vendor/requests/__init__.py,sha256=g4Bh1QYh6JKjMS4YLobx0uOLq-41sINaXjvbhX2VI8g,5113 -pip/_vendor/requests/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/__version__.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/_internal_utils.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/adapters.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/api.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/auth.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/certs.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/compat.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/cookies.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/exceptions.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/help.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/hooks.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/models.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/packages.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/sessions.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/status_codes.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/structures.cpython-39.pyc,, -pip/_vendor/requests/__pycache__/utils.cpython-39.pyc,, -pip/_vendor/requests/__version__.py,sha256=PZEyPTSIN_jRIAIB51wV7pw81m3qAw0InSR7OrKZUnE,441 -pip/_vendor/requests/_internal_utils.py,sha256=Zx3PnEUccyfsB-ie11nZVAW8qClJy0gx1qNME7rgT18,1096 -pip/_vendor/requests/adapters.py,sha256=ERCyw7DS8_GmsyAHV0jo6amFT6nJGAcNjPE62H5V4mo,23532 -pip/_vendor/requests/api.py,sha256=hjuoP79IAEmX6Dysrw8t032cLfwLHxbI_wM4gC5G9t0,6402 -pip/_vendor/requests/auth.py,sha256=OMoJIVKyRLy9THr91y8rxysZuclwPB-K1Xg1zBomUhQ,10207 -pip/_vendor/requests/certs.py,sha256=nXRVq9DtGmv_1AYbwjTu9UrgAcdJv05ZvkNeaoLOZxY,465 -pip/_vendor/requests/compat.py,sha256=LQWuCR4qXk6w7-qQopXyz0WNHUdAD40k0mKnaAEf1-g,2045 -pip/_vendor/requests/cookies.py,sha256=Y-bKX6TvW3FnYlE6Au0SXtVVWcaNdFvuAwQxw-G0iTI,18430 -pip/_vendor/requests/exceptions.py,sha256=dwIi512RCDqXJ2T81nLC88mqPNhUFnOI_CgKKDXhTO8,3250 -pip/_vendor/requests/help.py,sha256=dyhe3lcmHXnFCzDiZVjcGmVvvO_jtsfAm-AC542ndw8,3972 -pip/_vendor/requests/hooks.py,sha256=QReGyy0bRcr5rkwCuObNakbYsc7EkiKeBwG4qHekr2Q,757 -pip/_vendor/requests/models.py,sha256=9_LS_t1t6HbbaWFE3ZkxGmmHN2V8BgxziiOU84rrQ50,34924 -pip/_vendor/requests/packages.py,sha256=njJmVifY4aSctuW3PP5EFRCxjEwMRDO6J_feG2dKWsI,695 -pip/_vendor/requests/sessions.py,sha256=57O4ud9yRL6eLYh-dtFbqC1kO4d_EwZcCgYXEkujlfs,30168 -pip/_vendor/requests/status_codes.py,sha256=gT79Pbs_cQjBgp-fvrUgg1dn2DQO32bDj4TInjnMPSc,4188 -pip/_vendor/requests/structures.py,sha256=msAtr9mq1JxHd-JRyiILfdFlpbJwvvFuP3rfUQT_QxE,3005 -pip/_vendor/requests/utils.py,sha256=U_-i6WxLw-67KEij43xHbcvL0DdeQ5Jbd4hfifWJzQY,31394 -pip/_vendor/resolvelib/__init__.py,sha256=fzWkeoLV8ol6l2fvBVRZZLylOePc9w9tKRvUb8RJsCY,537 -pip/_vendor/resolvelib/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/resolvelib/__pycache__/providers.cpython-39.pyc,, -pip/_vendor/resolvelib/__pycache__/reporters.cpython-39.pyc,, -pip/_vendor/resolvelib/__pycache__/resolvers.cpython-39.pyc,, -pip/_vendor/resolvelib/__pycache__/structs.cpython-39.pyc,, -pip/_vendor/resolvelib/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-39.pyc,, -pip/_vendor/resolvelib/compat/collections_abc.py,sha256=uy8xUZ-NDEw916tugUXm8HgwCGiMO0f-RcdnpkfXfOs,156 -pip/_vendor/resolvelib/providers.py,sha256=roVmFBItQJ0TkhNua65h8LdNny7rmeqVEXZu90QiP4o,5872 -pip/_vendor/resolvelib/reporters.py,sha256=hQvvXuuEBOyEWO8KDfLsWKVjX55UFMAUwO0YZMNpzAw,1364 -pip/_vendor/resolvelib/resolvers.py,sha256=UjFUEVrUa1hCzfEEakmjHEjYAL9J5ACJmwZyHFdmzvE,17540 -pip/_vendor/resolvelib/structs.py,sha256=IVIYof6sA_N4ZEiE1C1UhzTX495brCNnyCdgq6CYq28,4794 -pip/_vendor/six.py,sha256=TOOfQi7nFGfMrIvtdr6wX4wyHH8M7aknmuLfo2cBBrM,34549 -pip/_vendor/tenacity/__init__.py,sha256=GLLsTFD4Bd5VDgTR6mU_FxyOsrxc48qONorVaRebeD4,18257 -pip/_vendor/tenacity/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/tenacity/__pycache__/_asyncio.cpython-39.pyc,, -pip/_vendor/tenacity/__pycache__/_utils.cpython-39.pyc,, -pip/_vendor/tenacity/__pycache__/after.cpython-39.pyc,, -pip/_vendor/tenacity/__pycache__/before.cpython-39.pyc,, -pip/_vendor/tenacity/__pycache__/before_sleep.cpython-39.pyc,, -pip/_vendor/tenacity/__pycache__/nap.cpython-39.pyc,, -pip/_vendor/tenacity/__pycache__/retry.cpython-39.pyc,, -pip/_vendor/tenacity/__pycache__/stop.cpython-39.pyc,, -pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-39.pyc,, -pip/_vendor/tenacity/__pycache__/wait.cpython-39.pyc,, -pip/_vendor/tenacity/_asyncio.py,sha256=HEb0BVJEeBJE9P-m9XBxh1KcaF96BwoeqkJCL5sbVcQ,3314 -pip/_vendor/tenacity/_utils.py,sha256=-y68scDcyoqvTJuJJ0GTfjdSCljEYlbCYvgk7nM4NdM,1944 -pip/_vendor/tenacity/after.py,sha256=dlmyxxFy2uqpLXDr838DiEd7jgv2AGthsWHGYcGYsaI,1496 -pip/_vendor/tenacity/before.py,sha256=7XtvRmO0dRWUp8SVn24OvIiGFj8-4OP5muQRUiWgLh0,1376 -pip/_vendor/tenacity/before_sleep.py,sha256=ThyDvqKU5yle_IvYQz_b6Tp6UjUS0PhVp6zgqYl9U6Y,1908 -pip/_vendor/tenacity/nap.py,sha256=fRWvnz1aIzbIq9Ap3gAkAZgDH6oo5zxMrU6ZOVByq0I,1383 -pip/_vendor/tenacity/retry.py,sha256=62R71W59bQjuNyFKsDM7hE2aEkEPtwNBRA0tnsEvgSk,6645 -pip/_vendor/tenacity/stop.py,sha256=sKHmHaoSaW6sKu3dTxUVKr1-stVkY7lw4Y9yjZU30zQ,2790 -pip/_vendor/tenacity/tornadoweb.py,sha256=E8lWO2nwe6dJgoB-N2HhQprYLDLB_UdSgFnv-EN6wKE,2145 -pip/_vendor/tenacity/wait.py,sha256=e_Saa6I2tsNLpCL1t9897wN2fGb0XQMQlE4bU2t9V2w,6691 -pip/_vendor/tomli/__init__.py,sha256=z1Elt0nLAqU5Y0DOn9p__8QnLWavlEOpRyQikdYgKro,230 -pip/_vendor/tomli/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/tomli/__pycache__/_parser.cpython-39.pyc,, -pip/_vendor/tomli/__pycache__/_re.cpython-39.pyc,, -pip/_vendor/tomli/_parser.py,sha256=50BD4o9YbzFAGAYyZLqZC8F81DQ7iWWyJnrHNwBKa6A,22415 -pip/_vendor/tomli/_re.py,sha256=5GPfgXKteg7wRFCF-DzlkAPI2ilHbkMK2-JC49F-AJQ,2681 -pip/_vendor/urllib3/__init__.py,sha256=j3yzHIbmW7CS-IKQJ9-PPQf_YKO8EOAey_rMW0UR7us,2763 -pip/_vendor/urllib3/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/urllib3/__pycache__/_collections.cpython-39.pyc,, -pip/_vendor/urllib3/__pycache__/_version.cpython-39.pyc,, -pip/_vendor/urllib3/__pycache__/connection.cpython-39.pyc,, -pip/_vendor/urllib3/__pycache__/connectionpool.cpython-39.pyc,, -pip/_vendor/urllib3/__pycache__/exceptions.cpython-39.pyc,, -pip/_vendor/urllib3/__pycache__/fields.cpython-39.pyc,, -pip/_vendor/urllib3/__pycache__/filepost.cpython-39.pyc,, -pip/_vendor/urllib3/__pycache__/poolmanager.cpython-39.pyc,, -pip/_vendor/urllib3/__pycache__/request.cpython-39.pyc,, -pip/_vendor/urllib3/__pycache__/response.cpython-39.pyc,, -pip/_vendor/urllib3/_collections.py,sha256=Rp1mVyBgc_UlAcp6M3at1skJBXR5J43NawRTvW2g_XY,10811 -pip/_vendor/urllib3/_version.py,sha256=CA4bKbKLwUBfKitbVR-44Whe53HWyInIVElDQQniAJU,63 -pip/_vendor/urllib3/connection.py,sha256=8TiEbQrJMgySqOllKNeX5tMv8nluKRjNj5j9hyzS6x0,20080 -pip/_vendor/urllib3/connectionpool.py,sha256=FQoodlNAP1KeUi4htGdl5TJEvKL5LWisCbmFNewxRpg,37587 -pip/_vendor/urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc,, -pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-39.pyc,, -pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc,, -pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc,, -pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc,, -pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-39.pyc,, -pip/_vendor/urllib3/contrib/_appengine_environ.py,sha256=bDbyOEhW2CKLJcQqAKAyrEHN-aklsyHFKq6vF8ZFsmk,957 -pip/_vendor/urllib3/contrib/_securetransport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc,, -pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc,, -pip/_vendor/urllib3/contrib/_securetransport/bindings.py,sha256=eRy1Mj-wpg7sR6-OSvnSV4jUbjMT464dLN_CWxbIRVw,17649 -pip/_vendor/urllib3/contrib/_securetransport/low_level.py,sha256=B2JBB2_NRP02xK6DCa1Pa9IuxrPwxzDzZbixQkb7U9M,13922 -pip/_vendor/urllib3/contrib/appengine.py,sha256=lfzpHFmJiO82shClLEm3QB62SYgHWnjpZOH_2JhU5Tc,11034 -pip/_vendor/urllib3/contrib/ntlmpool.py,sha256=ej9gGvfAb2Gt00lafFp45SIoRz-QwrQ4WChm6gQmAlM,4538 -pip/_vendor/urllib3/contrib/pyopenssl.py,sha256=DD4pInv_3OEEGffEFynBoirc8ldR789sLmGSKukzA0E,16900 -pip/_vendor/urllib3/contrib/securetransport.py,sha256=4qUKo7PUV-vVIqXmr2BD-sH7qplB918jiD5eNsRI9vU,34449 -pip/_vendor/urllib3/contrib/socks.py,sha256=aRi9eWXo9ZEb95XUxef4Z21CFlnnjbEiAo9HOseoMt4,7097 -pip/_vendor/urllib3/exceptions.py,sha256=0Mnno3KHTNfXRfY7638NufOPkUb6mXOm-Lqj-4x2w8A,8217 -pip/_vendor/urllib3/fields.py,sha256=kvLDCg_JmH1lLjUUEY_FLS8UhY7hBvDPuVETbY8mdrM,8579 -pip/_vendor/urllib3/filepost.py,sha256=5b_qqgRHVlL7uLtdAYBzBh-GHmU5AfJVt_2N0XS3PeY,2440 -pip/_vendor/urllib3/packages/__init__.py,sha256=h4BLhD4tLaBx1adaDtKXfupsgqY0wWLXb_f1_yVlV6A,108 -pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/urllib3/packages/__pycache__/six.cpython-39.pyc,, -pip/_vendor/urllib3/packages/backports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc,, -pip/_vendor/urllib3/packages/backports/makefile.py,sha256=nbzt3i0agPVP07jqqgjhaYjMmuAi_W5E0EywZivVO8E,1417 -pip/_vendor/urllib3/packages/six.py,sha256=1LVW7ljqRirFlfExjwl-v1B7vSAUNTmzGMs-qays2zg,34666 -pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py,sha256=ZVMwCkHx-py8ERsxxM3Il-MiREZktV-8iLBmCfRRHI4,927 -pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc,, -pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py,sha256=6dZ-q074g7XhsJ27MFCgkct8iVNZB3sMZvKhf-KUVy0,5679 -pip/_vendor/urllib3/poolmanager.py,sha256=zcldh-BB6YUuyML51JdMhusEeaSJoXFlquGRZ1haa7Q,20716 -pip/_vendor/urllib3/request.py,sha256=ZFSIqX0C6WizixecChZ3_okyu7BEv0lZu1VT0s6h4SM,5985 -pip/_vendor/urllib3/response.py,sha256=hGhGBh7TkEkh_IQg5C1W_xuPNrgIKv5BUXPyE-q0LuE,28203 -pip/_vendor/urllib3/util/__init__.py,sha256=JEmSmmqqLyaw8P51gUImZh8Gwg9i1zSe-DoqAitn2nc,1155 -pip/_vendor/urllib3/util/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/connection.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/proxy.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/queue.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/request.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/response.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/retry.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/timeout.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/url.cpython-39.pyc,, -pip/_vendor/urllib3/util/__pycache__/wait.cpython-39.pyc,, -pip/_vendor/urllib3/util/connection.py,sha256=KykjNIXzUZEzeKEOpl5xvKs6IsESXP9o9eTrjE0W_Ys,4920 -pip/_vendor/urllib3/util/proxy.py,sha256=zUvPPCJrp6dOF0N4GAVbOcl6o-4uXKSrGiTkkr5vUS4,1605 -pip/_vendor/urllib3/util/queue.py,sha256=nRgX8_eX-_VkvxoX096QWoz8Ps0QHUAExILCY_7PncM,498 -pip/_vendor/urllib3/util/request.py,sha256=NnzaEKQ1Pauw5MFMV6HmgEMHITf0Aua9fQuzi2uZzGc,4123 -pip/_vendor/urllib3/util/response.py,sha256=GJpg3Egi9qaJXRwBh5wv-MNuRWan5BIu40oReoxWP28,3510 -pip/_vendor/urllib3/util/retry.py,sha256=vhwG-XxNEJQ9Bc-JQjE5qV4OkKG0ojgqXzRv2y-hFC0,21438 -pip/_vendor/urllib3/util/ssl_.py,sha256=X4-AqW91aYPhPx6-xbf66yHFQKbqqfC_5Zt4WkLX1Hc,17177 -pip/_vendor/urllib3/util/ssltransport.py,sha256=F_UncOXGcc-MgeWFTA1H4QCt_RRNQXRbF6onje3SyHY,6931 -pip/_vendor/urllib3/util/timeout.py,sha256=QSbBUNOB9yh6AnDn61SrLQ0hg5oz0I9-uXEG91AJuIg,10003 -pip/_vendor/urllib3/util/url.py,sha256=QVEzcbHipbXyCWwH6R4K4TR-N8T4LM55WEMwNUTBmLE,14047 -pip/_vendor/urllib3/util/wait.py,sha256=3MUKRSAUJDB2tgco7qRUskW0zXGAWYvRRE4Q1_6xlLs,5404 -pip/_vendor/vendor.txt,sha256=vux9Tgc3pSRZZnXz9TNDdn514NdkDdnb-QPC0LCHkK4,432 -pip/_vendor/webencodings/__init__.py,sha256=qOBJIuPy_4ByYH6W_bNgJF-qYQ2DoU-dKsDu5yRWCXg,10579 -pip/_vendor/webencodings/__pycache__/__init__.cpython-39.pyc,, -pip/_vendor/webencodings/__pycache__/labels.cpython-39.pyc,, -pip/_vendor/webencodings/__pycache__/mklabels.cpython-39.pyc,, -pip/_vendor/webencodings/__pycache__/tests.cpython-39.pyc,, -pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-39.pyc,, -pip/_vendor/webencodings/labels.py,sha256=4AO_KxTddqGtrL9ns7kAPjb0CcN6xsCIxbK37HY9r3E,8979 -pip/_vendor/webencodings/mklabels.py,sha256=GYIeywnpaLnP0GSic8LFWgd0UVvO_l1Nc6YoF-87R_4,1305 -pip/_vendor/webencodings/tests.py,sha256=OtGLyjhNY1fvkW1GvLJ_FV9ZoqC9Anyjr7q3kxTbzNs,6563 -pip/_vendor/webencodings/x_user_defined.py,sha256=yOqWSdmpytGfUgh_Z6JYgDNhoc-BAHyyeeT15Fr42tM,4307 -pip/py.typed,sha256=EBVvvPRTn_eIpz5e5QztSCdrMX7Qwd7VP93RSoIlZ2I,286 diff --git a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/REQUESTED b/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/REQUESTED deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/WHEEL b/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/WHEEL deleted file mode 100644 index becc9a6..0000000 --- a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: bdist_wheel (0.37.1) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/entry_points.txt b/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/entry_points.txt deleted file mode 100644 index 9609f72..0000000 --- a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/entry_points.txt +++ /dev/null @@ -1,5 +0,0 @@ -[console_scripts] -pip = pip._internal.cli.main:main -pip3 = pip._internal.cli.main:main -pip3.9 = pip._internal.cli.main:main - diff --git a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/top_level.txt b/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/top_level.txt deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.9/site-packages/pip/__init__.py b/.venv/lib/python3.9/site-packages/pip/__init__.py deleted file mode 100644 index acead99..0000000 --- a/.venv/lib/python3.9/site-packages/pip/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -from typing import List, Optional - -__version__ = "21.3.1" - - -def main(args: Optional[List[str]] = None) -> int: - """This is an internal API only meant for use by pip's own console scripts. - - For additional details, see https://github.com/pypa/pip/issues/7498. - """ - from pip._internal.utils.entrypoints import _wrapper - - return _wrapper(args) diff --git a/.venv/lib/python3.9/site-packages/pip/__main__.py b/.venv/lib/python3.9/site-packages/pip/__main__.py deleted file mode 100644 index fe34a7b..0000000 --- a/.venv/lib/python3.9/site-packages/pip/__main__.py +++ /dev/null @@ -1,31 +0,0 @@ -import os -import sys -import warnings - -# Remove '' and current working directory from the first entry -# of sys.path, if present to avoid using current directory -# in pip commands check, freeze, install, list and show, -# when invoked as python -m pip -if sys.path[0] in ("", os.getcwd()): - sys.path.pop(0) - -# If we are running from a wheel, add the wheel to sys.path -# This allows the usage python pip-*.whl/pip install pip-*.whl -if __package__ == "": - # __file__ is pip-*.whl/pip/__main__.py - # first dirname call strips of '/__main__.py', second strips off '/pip' - # Resulting path is the name of the wheel itself - # Add that to sys.path so we can import pip - path = os.path.dirname(os.path.dirname(__file__)) - sys.path.insert(0, path) - -if __name__ == "__main__": - # Work around the error reported in #9540, pending a proper fix. - # Note: It is essential the warning filter is set *before* importing - # pip, as the deprecation happens at import time, not runtime. - warnings.filterwarnings( - "ignore", category=DeprecationWarning, module=".*packaging\\.version" - ) - from pip._internal.cli.main import main as _main - - sys.exit(_main()) diff --git a/.venv/lib/python3.9/site-packages/pip/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 3557f5df6b1e542f25396809663624bc337bb36a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmYk4!HN_y5QdZPp4oA9!Go7QnVU3dhusx)MMMzQv7dQy)hb#%CC4KQh8fSJ{=RIez!^d z#z%+EadUW@Kk2x{VH_c?qgxQge=8`<{+t|dQ83&TncySm?2=!yPnQV`GHycFKGz34!@B+h&kYXmXxMX=!x3cqz?;T`%G1TLZt37hFukiDQ%ZH)bk zDhwoTTf8d}K&(;<_(;m7O{?|1S@=$dK4?iZrA1r=$_MvP9yYr{F>j{k!$fVP4gn(V z_BK^E>K|pZPBgj!mtr40y~Q}rJw?nXzstX~IHCNvk}KbVoLgLN^*KP22{1_qXGtN% z4MdebI2EE_0HSO*;5M?gbK*-Y?~a=ji8jH#pcn7;k~lN6A`+XFYC=C$owhEkW7cM) z8%4}NN6k;`yxdHl*GSl*#Tb(*K+;jap%ptg(vw? Kb`m#>s{8{5AFFWy diff --git a/.venv/lib/python3.9/site-packages/pip/__pycache__/__main__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/__pycache__/__main__.cpython-39.pyc deleted file mode 100644 index 7eea019a2fab75d8da975daedcd36badb5940491..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmYjNy^ho{5VoD44R^bHfKDgi4T3~mP=OGlpr)ZfijXW{Je&1i;zYLDy``n5qkwKx z((n*GhFdCLfd(eo17XW!%{Sl7d^2*fI3akxe9t%EVnTk5&i^Mt=LJ6Z8I2-}Hl#fM zw4{^IN(OWjDRQ4E2ILSAWW~0`J{{3RqR2ogfmE?8W)%>`W;Zq)=s?S8;@wgNqJbgv zL`BH_1Z;DvVwkH$r5__Y_MA0~c3GYwhaPUj*@vmJqOVDw{X})-RUjb~qLtbR5mH^7 z&cgfi;$bhVD_Lt(zb&?4o$gG|LRLu+b!Yb>Z9Da@ft-eT%+2ov*0~V5y$jh+T7!u$ z#J%+Ekk;UAV`ad0Go`JOEsP3Qx*4HV8wb{p$QVIni4hO>U(vfSp|^lS zP|}-Yr*P5hz7X0V&&Z~z8eNR4>| z^W4D73lxE43x91yZ@UVdItqTh$?*>OwH dDfV;^&}0;EdO_!LmYmZi%i@@(ztd>W{s3_pvqk^_ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/__init__.py deleted file mode 100644 index faf25af..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -from typing import List, Optional - -import pip._internal.utils.inject_securetransport # noqa -from pip._internal.utils import _log - -# init_logging() must be called before any call to logging.getLogger() -# which happens at import of most modules. -_log.init_logging() - - -def main(args: (Optional[List[str]]) = None) -> int: - """This is preserved for old console scripts that may still be referencing - it. - - For additional details, see https://github.com/pypa/pip/issues/7498. - """ - from pip._internal.utils.entrypoints import _wrapper - - return _wrapper(args, _nowarn=True) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index f753d15ba38436b37c528620eb6df76b6a6bd2f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 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 E0#TeHaR2}S diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/__pycache__/configuration.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/__pycache__/configuration.cpython-39.pyc deleted file mode 100644 index a0c263b806dd4b800e2dfe77aa318f533b6b250c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11136 zcmb7KYjYb%cAXa<1WAyhUKB0Mqqks7puF~GvyOISSr41B3@MT=tzo<1A-YKp1lgbDG1!p(PIXwUffOIM$3yq$h zo}TV|Z{Kt7ZFsY@1p|M7^G~Hs?viX4TZ+R@Ktq zcGcG3PSwG;-N-bv)oe3Y%{BAYd~>Qg)htvC&FSiNbEZ0Datx<2+bmX#&AIBFzRon} zn+K`~bUoWxXdbK{)b(8BQ1fv0u&(DDN18{gN1Kb)MbnVx=CSHASrAil>4{Z+MjlkZ z7KOkP)79f*ruwX06tkiz=ES@>AQryNR8Pngo6q6n;&T$8Q}~=-%T&+w+j#Hfnq56B z56g2;%<6f$B$vd&uPkv$9RA#?Ucfcpb)B;$6gP`DR1r5j7t z^n51G#H{Lq=tEdgL|Q>~){tt`|jN-S=WC z+{b>r;d<#Hm)wW4gH9EUh!L8relY0a$LAwVqORw4p3=P#MzLIR^qfHsgmq^BV5IFoyd=6V$0xBH-`eE zP^C=bymRly-6Z?^t=q3%y_GokR^Gmm*f%QolN^fL{i}B|tV7`^Sp~yTK^?X;{A1n0 z=NdlI^C)`8wy|Su>utGXZSmR?_KvB}^$g*N%+Fw+Y=s$SyI0@x9>PMjMNn4}1WgN6 za@|t`<`lW%nj3{}RhRAs%-L6Aplvi%+TKcuS^L(!)U_^M`o_ZBDh}r5XGK~BN|`HRL9ZlYeSvE*SEp)25fwJ)sHqFdz(_m%dw2&M( zwU!F&n96eb5oWO5@K={xop>V*UMl}^nIgT^^6C$YK9Ticm&w5XKa6>|wtO)FavQu=BCy1{=)_1h-__y(86z z*NWUu*mfUdr=d?Ay09eod}>JLPqxlu-$PZN`2BBa0g!rjjZ2Hw6fToY)N1%~$9s{7-rtGo?5o`TgS

    LOacHr2EE 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 VzNyKn=ckHOWB7Xw<{{Ve6dJq5r diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/__pycache__/main.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/__pycache__/main.cpython-39.pyc deleted file mode 100644 index 1376b9c9885098b97cca8dc8e8f325b08efa3881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 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 None: - self.path = path - self.setup = False - self.bin_dir = get_paths( - "nt" if os.name == "nt" else "posix_prefix", - vars={"base": path, "platbase": path}, - )["scripts"] - self.lib_dirs = get_prefixed_libs(path) - - -@contextlib.contextmanager -def _create_standalone_pip() -> Iterator[str]: - """Create a "standalone pip" zip file. - - The zip file's content is identical to the currently-running pip. - It will be used to install requirements into the build environment. - """ - source = pathlib.Path(pip_location).resolve().parent - - # Return the current instance if `source` is not a directory. We can't build - # a zip from this, and it likely means the instance is already standalone. - if not source.is_dir(): - yield str(source) - return - - with TempDirectory(kind="standalone-pip") as tmp_dir: - pip_zip = os.path.join(tmp_dir.path, "__env_pip__.zip") - kwargs = {} - if sys.version_info >= (3, 8): - kwargs["strict_timestamps"] = False - with zipfile.ZipFile(pip_zip, "w", **kwargs) as zf: - for child in source.rglob("*"): - zf.write(child, child.relative_to(source.parent).as_posix()) - yield os.path.join(pip_zip, "pip") - - -class BuildEnvironment: - """Creates and manages an isolated environment to install build deps""" - - def __init__(self) -> None: - temp_dir = TempDirectory(kind=tempdir_kinds.BUILD_ENV, globally_managed=True) - - self._prefixes = OrderedDict( - (name, _Prefix(os.path.join(temp_dir.path, name))) - for name in ("normal", "overlay") - ) - - self._bin_dirs: List[str] = [] - self._lib_dirs: List[str] = [] - for prefix in reversed(list(self._prefixes.values())): - self._bin_dirs.append(prefix.bin_dir) - self._lib_dirs.extend(prefix.lib_dirs) - - # Customize site to: - # - ensure .pth files are honored - # - prevent access to system site packages - system_sites = { - os.path.normcase(site) for site in (get_purelib(), get_platlib()) - } - self._site_dir = os.path.join(temp_dir.path, "site") - if not os.path.exists(self._site_dir): - os.mkdir(self._site_dir) - with open(os.path.join(self._site_dir, "sitecustomize.py"), "w") as fp: - fp.write( - textwrap.dedent( - """ - import os, site, sys - - # First, drop system-sites related paths. - original_sys_path = sys.path[:] - known_paths = set() - for path in {system_sites!r}: - site.addsitedir(path, known_paths=known_paths) - system_paths = set( - os.path.normcase(path) - for path in sys.path[len(original_sys_path):] - ) - original_sys_path = [ - path for path in original_sys_path - if os.path.normcase(path) not in system_paths - ] - sys.path = original_sys_path - - # Second, add lib directories. - # ensuring .pth file are processed. - for path in {lib_dirs!r}: - assert not path in sys.path - site.addsitedir(path) - """ - ).format(system_sites=system_sites, lib_dirs=self._lib_dirs) - ) - - def __enter__(self) -> None: - self._save_env = { - name: os.environ.get(name, None) - for name in ("PATH", "PYTHONNOUSERSITE", "PYTHONPATH") - } - - path = self._bin_dirs[:] - old_path = self._save_env["PATH"] - if old_path: - path.extend(old_path.split(os.pathsep)) - - pythonpath = [self._site_dir] - - os.environ.update( - { - "PATH": os.pathsep.join(path), - "PYTHONNOUSERSITE": "1", - "PYTHONPATH": os.pathsep.join(pythonpath), - } - ) - - def __exit__( - self, - exc_type: Optional[Type[BaseException]], - exc_val: Optional[BaseException], - exc_tb: Optional[TracebackType], - ) -> None: - for varname, old_value in self._save_env.items(): - if old_value is None: - os.environ.pop(varname, None) - else: - os.environ[varname] = old_value - - def check_requirements( - self, reqs: Iterable[str] - ) -> Tuple[Set[Tuple[str, str]], Set[str]]: - """Return 2 sets: - - conflicting requirements: set of (installed, wanted) reqs tuples - - missing requirements: set of reqs - """ - missing = set() - conflicting = set() - if reqs: - env = get_environment(self._lib_dirs) - for req_str in reqs: - req = Requirement(req_str) - dist = env.get_distribution(req.name) - if not dist: - missing.add(req_str) - continue - if isinstance(dist.version, Version): - installed_req_str = f"{req.name}=={dist.version}" - else: - installed_req_str = f"{req.name}==={dist.version}" - if dist.version not in req.specifier: - conflicting.add((installed_req_str, req_str)) - # FIXME: Consider direct URL? - return conflicting, missing - - def install_requirements( - self, - finder: "PackageFinder", - requirements: Iterable[str], - prefix_as_string: str, - message: str, - ) -> None: - prefix = self._prefixes[prefix_as_string] - assert not prefix.setup - prefix.setup = True - if not requirements: - return - with contextlib.ExitStack() as ctx: - # TODO: Remove this block when dropping 3.6 support. Python 3.6 - # lacks importlib.resources and pep517 has issues loading files in - # a zip, so we fallback to the "old" method by adding the current - # pip directory to the child process's sys.path. - if sys.version_info < (3, 7): - pip_runnable = os.path.dirname(pip_location) - else: - pip_runnable = ctx.enter_context(_create_standalone_pip()) - self._install_requirements( - pip_runnable, - finder, - requirements, - prefix, - message, - ) - - @staticmethod - def _install_requirements( - pip_runnable: str, - finder: "PackageFinder", - requirements: Iterable[str], - prefix: _Prefix, - message: str, - ) -> None: - args: List[str] = [ - sys.executable, - pip_runnable, - "install", - "--ignore-installed", - "--no-user", - "--prefix", - prefix.path, - "--no-warn-script-location", - ] - if logger.getEffectiveLevel() <= logging.DEBUG: - args.append("-v") - for format_control in ("no_binary", "only_binary"): - formats = getattr(finder.format_control, format_control) - args.extend( - ( - "--" + format_control.replace("_", "-"), - ",".join(sorted(formats or {":none:"})), - ) - ) - - index_urls = finder.index_urls - if index_urls: - args.extend(["-i", index_urls[0]]) - for extra_index in index_urls[1:]: - args.extend(["--extra-index-url", extra_index]) - else: - args.append("--no-index") - for link in finder.find_links: - args.extend(["--find-links", link]) - - for host in finder.trusted_hosts: - args.extend(["--trusted-host", host]) - if finder.allow_all_prereleases: - args.append("--pre") - if finder.prefer_binary: - args.append("--prefer-binary") - args.append("--") - args.extend(requirements) - extra_environ = {"_PIP_STANDALONE_CERT": where()} - with open_spinner(message) as spinner: - call_subprocess(args, spinner=spinner, extra_environ=extra_environ) - - -class NoOpBuildEnvironment(BuildEnvironment): - """A no-op drop-in replacement for BuildEnvironment""" - - def __init__(self) -> None: - pass - - def __enter__(self) -> None: - pass - - def __exit__( - self, - exc_type: Optional[Type[BaseException]], - exc_val: Optional[BaseException], - exc_tb: Optional[TracebackType], - ) -> None: - pass - - def cleanup(self) -> None: - pass - - def install_requirements( - self, - finder: "PackageFinder", - requirements: Iterable[str], - prefix_as_string: str, - message: str, - ) -> None: - raise NotImplementedError() diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cache.py b/.venv/lib/python3.9/site-packages/pip/_internal/cache.py deleted file mode 100644 index 1d6df22..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cache.py +++ /dev/null @@ -1,264 +0,0 @@ -"""Cache Management -""" - -import hashlib -import json -import logging -import os -from typing import Any, Dict, List, Optional, Set - -from pip._vendor.packaging.tags import Tag, interpreter_name, interpreter_version -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.exceptions import InvalidWheelFilename -from pip._internal.models.format_control import FormatControl -from pip._internal.models.link import Link -from pip._internal.models.wheel import Wheel -from pip._internal.utils.temp_dir import TempDirectory, tempdir_kinds -from pip._internal.utils.urls import path_to_url - -logger = logging.getLogger(__name__) - - -def _hash_dict(d: Dict[str, str]) -> str: - """Return a stable sha224 of a dictionary.""" - s = json.dumps(d, sort_keys=True, separators=(",", ":"), ensure_ascii=True) - return hashlib.sha224(s.encode("ascii")).hexdigest() - - -class Cache: - """An abstract class - provides cache directories for data from links - - - :param cache_dir: The root of the cache. - :param format_control: An object of FormatControl class to limit - binaries being read from the cache. - :param allowed_formats: which formats of files the cache should store. - ('binary' and 'source' are the only allowed values) - """ - - def __init__( - self, cache_dir: str, format_control: FormatControl, allowed_formats: Set[str] - ) -> None: - super().__init__() - assert not cache_dir or os.path.isabs(cache_dir) - self.cache_dir = cache_dir or None - self.format_control = format_control - self.allowed_formats = allowed_formats - - _valid_formats = {"source", "binary"} - assert self.allowed_formats.union(_valid_formats) == _valid_formats - - def _get_cache_path_parts(self, link: Link) -> List[str]: - """Get parts of part that must be os.path.joined with cache_dir""" - - # We want to generate an url to use as our cache key, we don't want to - # just re-use the URL because it might have other items in the fragment - # and we don't care about those. - key_parts = {"url": link.url_without_fragment} - if link.hash_name is not None and link.hash is not None: - key_parts[link.hash_name] = link.hash - if link.subdirectory_fragment: - key_parts["subdirectory"] = link.subdirectory_fragment - - # Include interpreter name, major and minor version in cache key - # to cope with ill-behaved sdists that build a different wheel - # depending on the python version their setup.py is being run on, - # and don't encode the difference in compatibility tags. - # https://github.com/pypa/pip/issues/7296 - key_parts["interpreter_name"] = interpreter_name() - key_parts["interpreter_version"] = interpreter_version() - - # Encode our key url with sha224, we'll use this because it has similar - # security properties to sha256, but with a shorter total output (and - # thus less secure). However the differences don't make a lot of - # difference for our use case here. - hashed = _hash_dict(key_parts) - - # We want to nest the directories some to prevent having a ton of top - # level directories where we might run out of sub directories on some - # FS. - parts = [hashed[:2], hashed[2:4], hashed[4:6], hashed[6:]] - - return parts - - def _get_candidates(self, link: Link, canonical_package_name: str) -> List[Any]: - can_not_cache = not self.cache_dir or not canonical_package_name or not link - if can_not_cache: - return [] - - formats = self.format_control.get_allowed_formats(canonical_package_name) - if not self.allowed_formats.intersection(formats): - return [] - - candidates = [] - path = self.get_path_for_link(link) - if os.path.isdir(path): - for candidate in os.listdir(path): - candidates.append((candidate, path)) - return candidates - - def get_path_for_link(self, link: Link) -> str: - """Return a directory to store cached items in for link.""" - raise NotImplementedError() - - def get( - self, - link: Link, - package_name: Optional[str], - supported_tags: List[Tag], - ) -> Link: - """Returns a link to a cached item if it exists, otherwise returns the - passed link. - """ - raise NotImplementedError() - - -class SimpleWheelCache(Cache): - """A cache of wheels for future installs.""" - - def __init__(self, cache_dir: str, format_control: FormatControl) -> None: - super().__init__(cache_dir, format_control, {"binary"}) - - def get_path_for_link(self, link: Link) -> str: - """Return a directory to store cached wheels for link - - Because there are M wheels for any one sdist, we provide a directory - to cache them in, and then consult that directory when looking up - cache hits. - - We only insert things into the cache if they have plausible version - numbers, so that we don't contaminate the cache with things that were - not unique. E.g. ./package might have dozens of installs done for it - and build a version of 0.0...and if we built and cached a wheel, we'd - end up using the same wheel even if the source has been edited. - - :param link: The link of the sdist for which this will cache wheels. - """ - parts = self._get_cache_path_parts(link) - assert self.cache_dir - # Store wheels within the root cache_dir - return os.path.join(self.cache_dir, "wheels", *parts) - - def get( - self, - link: Link, - package_name: Optional[str], - supported_tags: List[Tag], - ) -> Link: - candidates = [] - - if not package_name: - return link - - canonical_package_name = canonicalize_name(package_name) - for wheel_name, wheel_dir in self._get_candidates(link, canonical_package_name): - try: - wheel = Wheel(wheel_name) - except InvalidWheelFilename: - continue - if canonicalize_name(wheel.name) != canonical_package_name: - logger.debug( - "Ignoring cached wheel %s for %s as it " - "does not match the expected distribution name %s.", - wheel_name, - link, - package_name, - ) - continue - if not wheel.supported(supported_tags): - # Built for a different python/arch/etc - continue - candidates.append( - ( - wheel.support_index_min(supported_tags), - wheel_name, - wheel_dir, - ) - ) - - if not candidates: - return link - - _, wheel_name, wheel_dir = min(candidates) - return Link(path_to_url(os.path.join(wheel_dir, wheel_name))) - - -class EphemWheelCache(SimpleWheelCache): - """A SimpleWheelCache that creates it's own temporary cache directory""" - - def __init__(self, format_control: FormatControl) -> None: - self._temp_dir = TempDirectory( - kind=tempdir_kinds.EPHEM_WHEEL_CACHE, - globally_managed=True, - ) - - super().__init__(self._temp_dir.path, format_control) - - -class CacheEntry: - def __init__( - self, - link: Link, - persistent: bool, - ): - self.link = link - self.persistent = persistent - - -class WheelCache(Cache): - """Wraps EphemWheelCache and SimpleWheelCache into a single Cache - - This Cache allows for gracefully degradation, using the ephem wheel cache - when a certain link is not found in the simple wheel cache first. - """ - - def __init__(self, cache_dir: str, format_control: FormatControl) -> None: - super().__init__(cache_dir, format_control, {"binary"}) - self._wheel_cache = SimpleWheelCache(cache_dir, format_control) - self._ephem_cache = EphemWheelCache(format_control) - - def get_path_for_link(self, link: Link) -> str: - return self._wheel_cache.get_path_for_link(link) - - def get_ephem_path_for_link(self, link: Link) -> str: - return self._ephem_cache.get_path_for_link(link) - - def get( - self, - link: Link, - package_name: Optional[str], - supported_tags: List[Tag], - ) -> Link: - cache_entry = self.get_cache_entry(link, package_name, supported_tags) - if cache_entry is None: - return link - return cache_entry.link - - def get_cache_entry( - self, - link: Link, - package_name: Optional[str], - supported_tags: List[Tag], - ) -> Optional[CacheEntry]: - """Returns a CacheEntry with a link to a cached item if it exists or - None. The cache entry indicates if the item was found in the persistent - or ephemeral cache. - """ - retval = self._wheel_cache.get( - link=link, - package_name=package_name, - supported_tags=supported_tags, - ) - if retval is not link: - return CacheEntry(retval, persistent=True) - - retval = self._ephem_cache.get( - link=link, - package_name=package_name, - supported_tags=supported_tags, - ) - if retval is not link: - return CacheEntry(retval, persistent=False) - - return None diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__init__.py deleted file mode 100644 index e589bb9..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -"""Subpackage containing all of pip's command line interface related code -""" - -# This file intentionally does not import submodules diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index e0fc8779cb38553c859d39e15bc343f508cb0b2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmYjMF-`+95cH)Xij+UNLsxKHP$5N#j*ccB&B|x*B@RB@vNs2z<`X=DZ}5z?Jb{ji zO+>*+GppGxX4Wj13nh5}YD3i3FTd!1?dEMZV^oY Z8$6&`&xl<<9OtVsxqYD9)5G6F^$UM$Rzm;) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc deleted file mode 100644 index c988ee8f42c8d545b59ce29784db659d941f3e82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5140 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-39.pyc deleted file mode 100644 index 69da3c2718aed7f54da50c53caefecffebbdee5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6146 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc deleted file mode 100644 index e73d214006ecd4d9b12b29ce07fb17baeba88204..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22576 zcmch934C0~dEcJ60g?~}k<|4B9ROtRf+DR8rf5;TZ3%=3in3OgmW!PSV9C8S?=49@ zfv#gJk)2eIo7A^rlZs=9PMkJwo93|V#I2L&XdTCKlD;%Y?Z&C<9Icbql59))|G$~H z7a>{JFYSUmJMYam*EipM*L=gm@bEwkpAUY1>cn4GW3jLCq5ZQ74|n71Z3o-~F%`?j zR9q#>@mySf6S;)^CUZ&rCd;WxI+uxpkHGx%HI|xeb-k+^CfGmM^Pp%x#o>U-|ONSZ+-6{pBkvn{t~Z zKTzIW*^=8L`N8s)m8)`BRj$rmEzd*cYbw{~u9f_7*{NKYyH4^W)lCrWHGTh=8n1jYU9&Mb-5Zt z$<6PHt4Vjz-QW&xj-k#KDA}YoKatM84kc44*^0MU;_X%HYP`*`ZT_ii(E7E?K^xhQ zch{+Lyqi7{Q`f5-o`|U%+`e^3(O9Id3^`Wb_?@*b*s9KP;M`vdULmSK;3Sk?ofBC z8TAIN`A&hltpjStLfxfyNq=vY{%-Gp*=1qwR=d?bfZ8K-yQ2f<9t*Qq?Nj@uw*%7K zogGm7E!07ENWICOaW|cR!-d$nxO%g?SKW7hr+K~*zapk)@jZ+=-PKY5kksF%=G6V_ zh?-YN@%Ml__EcYPR|nj@?dL)D7MayUGOIUsz`Vu68OPN=-uBxgA`q=|o*rw|0F`0!{ z9(v!~QR6Xbd7JW81274EPpQ+u$-WM#hVB21T2X;|T&=p-o!GC=s<&YT2Ra}hZ;s%f zsJCMT2Zb7cK)pk7bWU(|sH4U^nl+wKKZqJ{vNQN0^(3C&Y@gn#-i4=o?b8pdAHmao z_UWIhr|>ju_s;-k@$RS7>POXk@b<7^;Gd}LNz@N%b?p^s$cqKY{)y-BJ8KsBV@$y}_N_9Ai%X?9&PLDfM$`=`CG- z{|ogm@%ABU|L4`G@%MiBAy8bx9a8@awEwT4>d)mm`uQ~aAusti>KE{rQ2!Qd*^_&? z1LhYj%rB~6Qok%C{uLSVTRWhB2~hoL;WHTBXVt&MI3588uUDVL^RKF3!}FsS3!hj2 z9#45$k^i8+;9jNPhxPb%^&7y#@s2jXfHn<>VWu)h4@4DN9w<*Q2nt` zuG<0gUoRQupQt~@C>Ldvf2RH%Z70-!lbTEJh`U|=xo!2UD0{!Vi1q1JU&HK|rS!ks z(!Wq&2e$uG{SWml=2z638CGDK-fcaYs z^S=d0-&B7G43s+{{@z0TAA$J40#WIJ_?CruPCYL$FUU-*9Wc)WrnQpXm)}<30gh^d zqwlI0frpxU2~skKZydO&x7WwJgy{vjB)%#3gx|FE^;j2dN?^C4ya$wZR9!@_7vDbM zNO!^Z19lMW13Cr70KS75mq+SEehA-TsXv0;I(*mTy8+|#yV@CTj_)!+Y_#LMT*lYv zg5B7J9RutY_-;}cmtsqt`{rljNIADF!BtOn)x4@%^J+j`gRj)Y@3r_kOPs@X__FTl zuDatp+5YwJE$$BY_3o|iZSEcJo$fC8jqcs1h_jb48o^nqw zadbC4oyeVO(|We!-Hp=PP3{5rpnJ%D(^AU9t#rXn?1UyXADg^69*Y(BAQ|wM3))pq zt?rjYOJ)V+a$qsy*S*QIK)R4=>Eva4OENe}tszrCJv(WIJ zo2xbdW~Ws3{6f_)6@1t6m)*+1Qn|KJD3@2V&S6y3Zo#Wnodvg4T|#-mZ#HzgVjk2mv_yhHV=Q$XPG@Nyg)-Wii2sD&D->v!pFSi;yUBbg+tz531 z#;Ab^<$9&1YIfjRD(16O@vs*|!mP_v>2P@dfw{RO`{w8K2lw4O7xo+$^oE1x_W%(b z4w;8J&O?Vi#|q_!>!Fz**2}hP(Kkw;czOJ$2XHa8!e@#~kKAQG*t&A6`xs|y?Z0cx1 z1A1=7U#?XNIDhoW;n@TEgS+PsN?-k+ul?FW4Yg8Xk1QT0T{Cz|R=lOKN4tJQSBpvF z(|(xm!FLb7-Zmtw@ejj_SxtO6_7lmo2|sooyy$#lHE}+9A$B2tA$~To8atm_O za!Ag{rc%MD1{{2j6iS|p^|!gkdl~ zeah8&|4bFjTPwPrH=RA@R!>crOAFI=S;rmOJEy&p?`Gp62>rG>`P3NNxHC-&1 zri&G2X6t3^E8(ann)BvOUIsUgfp}cQSpP_TV_e^a+*C453zsqDz8bHJ34+*93cviy zvTsGk$HK2-;Wx+5CAh>2s@LAwBkRv5vGnoPO&m3V!6WmM_!Zs%CG$)*s?usY%4ZTQxp(}ZI z=43+)K$v3vu-8_dO6W8u6Alz$PndU8DLsK#f`@R(;?1B&R+GypYpHK!%?*{p$tHRQ zjGMyiLlWy5i4Vm`;+psZMNHu*94;=q#gn!#PhWy)4u^>5KJ#)&-U%c(VtQyb_AVgZ zkNebd6Hh0ej4eXetJD)iXA?^?m3}6EHt8pQ>@*-haW1Zpt;SBI&!$#W=X);1;xWJX zL?7gRFQj~eHawQ4KltL_l1EPFoL+X_vgec*ow}H(W?kT3CfmaZ1>>N1K#kj}{Fw27P>#4ZT0^nj? zXYkXu(!Bs6@f>6uvNz(v>&!GnzLv}Rg+{5Y@tTxx8vr|GaB~sE z5ix}8qIN7muwa&loRACA0Kcp)Mr)-S5au;uS+*dPk@hpDx-*S^V0vhOWBahLvd?lR z5Dx)q*a$ zUf6fKpsN_N7p9n-N(@m;+eCHteDHe}lIMGUUJ(YV=!qb(o_igZ)Kcmk#FwA; zdteI3m*e1ceBZm8JejQBhFsrJ3>z$=53Z*4K_BMbx%fNct8x7(-aU%)0q;?~P4cZu zVZ)_^U)|rRiaG_wMT4H92vthN7HPfM@cdfEsh0~r(HxPs!;L3McGdT}`PSHS1|Kud zgUc?Yopvw`?y+doaU7Y90itqgltK^~y5@EZ(lZ#!Oz=(AuR?PKp@27wtd53Fja4KP zloZTQ^fw=3sEUni#Cj%U#90RN&Vz2b6stS~^0(H=>jthkp zO=dFHT1L5b@sln`J{wo0v9UdaeGuG}SKZHE!TA+-&JDI)?*8_p!UZEKTwnSmB745g~YDc4|=H z3EB%s3_|i2Az^=n4(uYd?1dwpn9!HARuZ$;Z(!~+D84oA=7AIF=q@Y-*VCgc88B;^ zS0x>7#e4XEBX+KzZ!Tc13jMCL}Iwb6PWfk^Og?HrWIKzn|91>w(d5Mp(l^} zMXV>0NMW1e?>mW?QvD-|^)DrQ`{Ic>p88Vp0m>+H@Yv>3$fYUub7{BNO^a`!55Gy+n!<*{{<%{9un22t zK=-4eaHxGS`a!&s_p=ZNeR(s&d^nKLS8A$JcJujgD4&0l2fZ1vh=s;dI3Pb9x=T67ed6ne8!X)GVlP*h zK^bLe7w(y&D>(6BWY_A2C7R2%hVPY>n9WWFJPgXn0*pm)JXqM2rSPy(D3@zXOWfaJ zPZcr^&sR{kvlml32r682jCMTQv+fV+7$Fils5!%a9T22EA(C?8Pj1sS0wD<(6D<)n03zU}hE25Za;EB!yWnAKsr?3DfeU z@8CRQ!OjRR1@7WAE8Iial&o2C9_Ge?1>$+9)!mOsdDfWSGxeJGqam7+wU7XEhbkl5 zZEuuGLZ5k-3S@BPzQUPOrBQLJjmiS{9k_u7a@<03nftH`0~h4z7*Cf2JHy30 z8U@LL1R7ij;Zw3C&56Sn5(5>*9UmTri@2j}!-sAR2XPWcXzH0bO;KxR_R++g4c28c z*mIumWek%Jhs|T&^6VPgfLA5%h4E4tKOM#w!gv83UA&FLID?1w8U$EZBrPB?MmT@y zoh-wBsaC+f*~g4C=}o~=P+Z>XOqQlZDMIe_RH+W8Gr2GYk=v*vSD0Fm1@CQ}w}+7! z(m&3eV1=6iwjkx(nxgCND42qI>1{+NMl*z(42%-I(4bVxI)`AA>)I*EAO!^%J4+)A3m9u`$s+5_yRI`aKYy>Y zr>%iwt~PCf@FutmC{R?b2)Bw=r)4(@r!G~wJ&d5R+tloVCJusO%m7As)i)CvG!J>1 z&&g;$9D^xnp9^@NLw6qh3}hhO5I#hy@JCDo9_>?{F}yg!p*gj7Okn81lWgDuwy5D) zZCkW8#zdw>?o@&Xd?wS-WwNdMO1;E<*e|d1%qAZ=a&PdtdkRqFk>iGCpT<=RHYQq` zbBL{6x^br9mZr1WZsj_Be_}lqu<7eHIOl3`j2FSL$|bnmjnisw-<)&nwjIu->`c+* z+o5;EVM}wT05%D}3U8MNzhFD%LP=y?#Kb&kTTMh*)k3D<+_FWIVf%*~=^lKAK%>2? zQf8k%)q_3SJ4+q|pQbLfP#3P37jP{C3q+cye*~>)s%b%GAAyNGc;B= zJLwsuSjBKEd&zRppCZdaH%9kzsNSb~u^@f3&`%bFq4sve0rruXK4cNXBo?IrS6&Pp zLe_#LBrK6KxautX6&#OXzilOT+v6G8@@Alf(#2(HV<6@R9sr*vRnScCqKbIpc`3hS z`Cip-f({4!0;Yk=EZ1P24BMwXpFFdAeFqQEAD!KO-@f3H`wIFbmIyqB>}kK9P)rc0n- z97jeVa51rx< z&_|Xs4dxb{jHWHByf6UpiwIn-VJLZ7tTtR%jk=GcOwSot^kLWPQalcpMU+L7HR2-? z*D45iL0{QdCWNpr>h)7EgOx<$IsGAE1?q`-uXw_grx#sZOmY|~sx%eJ=)*j}d+_xf zBt9I_#)$>Db8;2_95|8F@Fpd3ViSuTTRnOXu*PlETUhWonXnfq;PFM+BOWtP)LN)= za%S~m!nXz@Qc{u|Q4kL1jR%AW%b(%&IHnkmuJlLoOA8PMK_7l<4PA7(ZA~r%wjGSN zKN+bBP zx`@+-kMM=y^^(&&`T>*p%8DAdG*UiJ>Tzb6 z0xg5E0%u-6FLH|)69;vTT8uW+FL|Y9~ zzD;uzO56}pVzaqF;=G8+SaOJ`Jaiy`SAP=E|8Hife+o_OPcZp7lb>dC3H~h>+GhH- zHOKigs9nUj`2kd{DInP_Pjt`87i$so6ULPGajuKgNf^?i4?;nQRRe#RL9uxJ4O!CX zQ8q1TqjXeePssg1b3OqvX3Y&_W$U3t%*pm{;w*=sICFL0zth- z;>kuvzbEuXkz|RO2U@y>NIFqFO~l#vOC|bevDy&Dan`7X&l!1tn1q`BP_)fTP?++rzW+`zt9*lt__o@CTAj9_plHmXk#;O}rF+aKT z_Bf(y;<1NfYG6LL4QGC;cac(lF!%#GDTmntdxhfOnk_gJl4F~4>7?t7?-&Oi@3C3se#26@quKYYpv#+z|=JKHk`VA3`WC(U9FrXd68@`z&t z55#tHrWq5!<2aD%lB=vN zzE<7CzT#zuIF3np^s&c!Q;Ae!06KXpF_h@T??yP9$MD;i(7%H64sECxFR1hF!PlEX zVos#r3T^LfdNqxBGQ>C`N)u6=tLY1gvpqgy#-OM6sN_@7|5j7b4wHGDC4-t%!49FD zgK|hp!m!S0c)dDcp#ZCtq|iw<5n9#VvbmTmZUS-4sjJz$s^%l`57f#N>1Jyn zbkCV|v+&4)Wyx%IWVdCvk$Girk6zr)7cD*pANg*amY=BU45FKAT3Tx#3gY7AjMBI< zgyC4`$RJP3UyP>JZ+kz80w(e!i%pER<5-rp^e?VpSKQ2gF6>vomuQTZwIlk-+1c6F zF0fqUWuji6*y>E2SYcXZo~W28)hEPLDy~Ws7{ntSFj;dT8CjuiYvy!zKx>uyX4VmT zJ5gVmpkxI_L1pd)%@p9NhD}wp!ahs09f3o7ALfhry@gWYUXbmpoHt{cb|PubaHYPI zfBh}r|Ag3*UqEzQG?Uk$IG~MJr!zPQ%yk1uvz1x{svL}wstaOoQ%AZ9qBHc2TeN%A z6QfnTU)oe2nCtLtR3vQJ#__fbHs+J~l4E$UM?%enwjRTxC7)=^+i+=lpEB=TVlS<4 zMt#xogaK*Nuq-UjXMc_PPD>)(%xGpC_GKBKF<`tW$?&K+(Y?bz{dwde_NLg(C2AI+ zTfzS3tQQWcju=T?MoOK9ss&Mzn1x6bO>`Zor9f@K-QTFf*A}kr@TN20$lbkTvKdS zI<~COQny0l*7jGX0oy$Ke+wR<^HP_%HyAP+Mmz@X_%>+A@s&5l5gHqh1=kqe0^Upn z)2amZiwCJQ$IqtTmZ}bz-)+#JmH0dJ&`w0_c$aYbIdc!ff%v0h)lxnvRXI}=CKRE= z#$8&C`6!Q6@DC~*$RC2ubF+s{C{pB+6nXXv?NHLp>d#=R`=@&JX8h`3WO5S|I$w-- z@*Bvljl?hsA6YjIZ;Z4N1~zf*T)&^=nv17vs1LdwFAhxh>)%Anj0s{eR5Z(AG>VI9 zu5~kTUHZw$5F}uW%(2mfclb6uqEQd>BhVu-&Ew{h+O@fJ_nS56>vPTNrAn z!8oX<)z3H_9t?n#1How0qDX-uAi4-4o(P$QpHNs!t1TN0f)RX=?y2Q*u;XogHk-M$ zZ`oJ~RWkZ3=WiKHvSsIl11$uv%}~}fZ!T|RD6Iy*Nsc1Ieh9Wr&qz{#iQ62|mLQ}-t z#DffFPo^Rc8HT3_F6$;+h_=Rt3ug%#RF8 zZnicd+X}jeCN=}rS9(v(#xMd5EYEnq+u|y)&3r_<$&4xcjme2K!CJWi%4TV&Xb{0q zJX5I1Do1GD!IyV_Z*)#H2fRQInit!4qS;H!9+O_M@*P)@G*#iCXu7e7b8X0YrKO|H z#!SIcjFJ;AC3a!kNa*F{4ccZ1aoH_YgX@fFEAoM%#xnC}cna=HAe3A}4O^i_ChS;h z!<2#s7(8^SD#u;mTP}niim>>!80?8NPwgY?ALjc#D^Y;nRtdcmFB^k+V9dzLcMCR5 zvi&O&=xL5oG6>a+?#5&wy^ANq&9*3yqNZ*wMZx1{a=5rxs^Ov}&}4lG@J`GfB2h&5 zjKmd;{lHK&D5uc?B!-L8=FpW+!MiOdIpo}`cDjn#QW&6z7|#ZNE_X0xH%qKkwnLKj zU~QXT*>~Up(hBB+x4tB~d_35Q%b}27@X#iVHwyaVIP}Hj%6{WbT}_^ctUI4x#m!+_ zN)N@V3HVl1e$T16UY61nOI7-Ouipb0xmRrZIp4R6u(k_{^ZoE@p{|nPw%{bgx*0BN zR7ki$%8d3OFO-*RGpdA3v_71$Cfrn*g?UH3A#4C7E<9c0{7?;V8P^8dK{%3iU$Z5L z$5YuC;xqc^N#RFvNx8+59zWaC8xX1EEekX_Eu-JiDB7{Z+ln6H9ma(RK;4D^3Sj%K zx6Kq5iptGqv%yWfZ3StA-D=3p3SvL7Sm=Z-vy5w!4O}4R?{yC+@=w*1FZ&(MSqaT--dzgSY%}5+aB_ z$I^XpuqANan8&!OMB>H7O9OaEb8X-y+yP4KKL(Us^*}xSha6Oo@d*V>#~8}WqXKxF z$tI4OF+NKI{VHP=+K#23%!fL@1K zV5}&iDHH8MiGJqwvu4~SdTVRi!~(H@yf>s2=|4m;r9$xN5qouy6fGh$a#2MCkZ52L zAu>Yl1Zrtb6L<3E!>SNeZi7<=fyc3!#vbWsD{{Z8;}igLoCjV;1-=Fuco}d5o4y8b z6lp?l!I3yl1aOZMVKDGC1lw_{P0t$GJw!3WpUu1`42QxKbQC=yjyQW=VFF{iA8m&z z7KLe%<8nt1ZWQr<+<;O;)Hf2&-f3$N*_HDQsdX#nk zM6MWH6zrPEsW<+M5SlxPG&Tzz-P)DKZq$KSu6Co^I;=BJQC!Z!=`m24Sp>y4v>UFs z887cvNx>@YwQq3oe|Y=0?c1CzVAmE!s=6 z2xs*1e}u@s=K(#`1I7_ysJvl{A=>lIEZCJOlr8N;6iNx`7p-y~2Aqe;%iEE0Cvy%F z1~BL=Tlom8Iip~m(P~>0*?`5$)E3)ku-DF@)sC~)M8qwLnP|5HFA*mq`)?5;HQLRF zV;pI#iD)RnI_uoDx2Zfh?IuBcLb>5EkG=38t>oo@AP6p>vz+0O#IPSWx7xx%k=X`j zikIH^PX%FbK95TQxWXqvW!JLFyO4zaGIoa4X>QH14~$5BC>r!{qZw$nYD#@gx0=}Ex&s>YWqO%b)13BZ@m!Yy|2u65)CkQX!mAx!P zErd-JcV+J3Zdnsju&o*A9geRF(BZ`tzi8Oik{~5ZK>`U*Y2A$*15hc!LJ{wj_@u-; zwUzVO%_=GWA1`vX*4)5+fF;M66j;12pBGkY<_|(xV9_FzWhNyiCz+I)RFH%z@}V%r z|93<52VG^6&*T)7(@a*FoMrNMChuhOE+kMk}3)#;US_N;dS}T#oH}@VR5Bu`t8KUrhkjM-)8bV zOuoqEOH61V>)&H?D-&8tV#DY!Gxz&UzQTmsi~bWPf6C;~m{2z8zhLrpCeJeY29v*H z^4CmSB1du}clvgkOSZcx7QIhnyY;|;=igBLDt>VUY`pjD@nrv!8%MSbCtgZW%X)EW z%h=?`)W+2M!KU+=5kxPH^|w7I63>qft?_JcFiFXCW1TG^3TbShtxk8Fmp&sdc5I|o z1NXe?+so!HujkvxASKUt&kVtZ&yB4c8E&h` z*$j-V9~l}M#^1WJbVnI`g7zx!{(fw9v_~+Hl>+_;M@C0RJD`b&^*3B2r5id*ObfUN zpZM0;AFV(z)I(e=IS2S>W+jFps@ukL{FTyOT%iOp}1^>x7yODmf@-(K2V z*P9o{y0O+yXM)AH7CU?Wb_Y!o*34v+)JR74Qs3GlR787$?@}*p656%+$McrKjj}!l vf@$jcEkeC*bp&rxCau8!c&-Iw+8W@y4X{uI;#H>4CSKffO|#B-5-e<>%hwqDNNg+|IQd%nn=i zG}n%c*(?D!Ear<`mw96ga=bn$bsFX;1jRCtEaMU+KZQ4J2Pn;xQRXRM1rn}eDW@O< z8J_q{$U-$x(N(4*IXLAqlEV`}8@^#a%VI1dc9*y3HKr?9d6ox{nkl9eYGwCzQ$QEF z2ihaG%)@D}Ay~F#@8CT{0^yhmZoMVL)t3x?^XbDRaDmxxm3EO3Wm8%q+ypnG&JoVY z(&W;OKe2rP=Nnb+;5rndsB&Y3_`v?Q>F&H%>GRU;zRLHMvZ+TIqS#zvaj=Ya-dLxA1FZ+ndfFCR~rvzuq9YKydkA*u+ATQe$PWHV< F?;k7GF_i!S diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main.cpython-39.pyc deleted file mode 100644 index 925491896f7127bfeb6b5167c8005dc66966dc1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1373 zcmZWoOOG5i5VqaVdG73P7&lE>~55Rh9L6Z3OG*KSr~cErk9u zhuh1A!{@N&Pe3S25XF>moM6jILM(R@$8tAufjitQ{lqVWB*4brlhs)Hl(dz32oEP_g?Zg zC10XZZxuZiMVX0Zlr;@6@=O(V6|qW*Wm6ZG8n<6T{^)c>v^y!J(&3ZFm}Go}bvK)< zIRc%6$QJHBjCfy})0S4c?Gvs5*6# z@|WLXv~l3}BX}EZLrT`pFX%UNjp3cusMf5#J8e4@8|fMP3gT^?=T6n$@dxMuS{AgqE%XJ=2&K8ZA1-G4l-YEe|vh#3r{`!c$`U{xfUQbx<`JmYND zJ~=65%>j8+gz&X|M>}#UEzk=Qf^R)6DycHg)5}a$;34JpbPB#r_X^LDz?k_`QP67d zQWT15QcE51qGFOY+GSUT(*7>AZb2$HqCa_6hF zv0x%qS5?}GI%iVG;{~f0F)z;JW~naf>cjEJv4lT4X|nv=Y|3QZ6iu8$zcT@?9p}7= zO={z2Dc*&6C$MD%1mO_(osjs1-~sOA1K5#EfDg!B*w%W4Pe(^ONK;zpX)1>B4B&#l z2Y|&PoJ8NKe6?(hh8T@wG!bMmex1b_vKZf*Fqk@97yaJ<%}lbXojzg9ricHr*^Q*! z!G84SC1A|#P)l3w{q}d&VUE cw5;izv(HRd%OfBz2?0;@4M-Q?e5C#Uzd7c5!2kdN diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc deleted file mode 100644 index 587eb158714a38652f44d9961acdf25a0ea17b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2170 zcmZWqOK%)S5T5RN?s#|o$cuy^MwUoer0j+ufsld)a)>~R04d=z5RJyu?e(mC9(4CQ zwl#af;mCm_N+PWRj9~U|wLle(I5G%F_BAB5VnJ>@qxFt6}q-{>w2icZ`q!ZpQjGJaM_|R zz0hjg__9TMPci9}5XLVOeBT-@AAa;nB=U01XjHQ_qtSN7qpT{0!L`k*+|I{e8pBs+ zrF!G*nxy)GJ9ImpGATZztiD_EB9)SISk%j^qJYCiLh?+i^J6L#krz2jd2%uYCv`X5 zX`gal>1E4$UY*y;9_0egSAj9`YOK~WPE$z}?Lg8xpnB$evLWo}aVn?0%(P=Cj}3|s zZ4;VcAf(ByL`N2}B?jsI=+3Ohn%l<~vZQkadg4lN?n`eHG}bYmAsFp6=omr1To?_B zH%7!K!DCA<&AZ3e9qR~PvSyfc=Dh|V!~CS*SdgRe@ZC*waba@N-cOuOg-IOveO*MG z_dY+o624V~&(ZBgs5YW+7WsI1S9xPrZKZ7BDt9W(5J~XioVhnyiyz(u0JHrhk))R-I22ZRf)-(Gj{G9{dV1;je z@DfE3YF|tt!~9@iD?Gf(&%p+&ySQ(Xm)q4Z7JnU#FYD1xRnXB^E_NQJ6H4VsQXxkr z-3CZd4w+8mKBSaa85LqQ+@s~*h~-qMMxAE6;I0@!oJMd00If{f zC}a8P6efoCfeLRkz%$&X-ng!vb3l05`}^?Ps~8&IW>uClu>s1-B89@iGS{);o)$|W z)Mb*3bc@mUWKjb^DM?a37F<^rURM5xGkZuke$_7>m=YLt2d!L^en)~&dzyIl~g&`f468zcQX zy8Y?-0S@dw3T@90vG-TtbTMSsF~0O+&HrE$fI)}C(C2qhq;+HgA?0_xT8BMDLqYpwuAVn@ z8b>beA^xlEHqH^6xdbdvfQZlRF`9Xe%bz#iyhlK5t>(Nw@#o8pcZ`nE_i$4J?+;K! zXMW?)R~kppX`II2)`c|qf@@|dN3-aKRu5OFDwOa!yDLFQ2-Lag96+KFs7+NffuA^*_;0Wc^X|Z diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/parser.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/parser.cpython-39.pyc deleted file mode 100644 index b45ac44d1b41cd1221a92d688c86061ecb9b7f1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9954 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 V|5fypu(H5!jgmQcy>8Df{5R>=3cCOR diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-39.pyc deleted file mode 100644 index 9b65c8c712ce53cf3a8a8f0a9a57b74bb004f6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7630 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 Nt+NGv^!sz6{5OCQ@QeTe diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-39.pyc deleted file mode 100644 index 38af440c303b701c7bd0254ee6b78e9d90e30246..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12365 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 P!n*ipdaiP`diZ| diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-39.pyc deleted file mode 100644 index 5a9dde31f2bbf42f247c987ac8628e9e8c865842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4953 zcmaJ_-ESMm5x>1J9w~~VWLff864kA1(}+n2P0%Jy8v*`kl)6-5xivxrxYFE}MEQ7R zc9*gx&@Yi+i@vs~3s7(Me^K;r=+i#74@Lh4J@q$xq(nXNl9uep!RrzT0r^uh;PGuixn1@bY=oU$ zBgbgImqeX>Bi|`B3byYjGo50iXxl+D+bK0l%n|NzPLvN>WBykT4|(pj!*d62V*$O0 z=h4fHg#)i~0sR7>L4U^f7tt^BS@dTy`=W4mmc+8iiG|A!FTHX3952824_M=p<%DAS zvLkYwfjbZG0>5CnmpR*TDvSSvo=&~u8h35oL~B~ertV7gXTDs!{~*5iyT=>rkIl@+ zm+MbQoeDF#r)%~5>rXe(oZAvQZl_$Nx~bdUv_D*>7%N>J?xFnJPGWAIBfsoX>F@Cji z;I5uIa26f(oMiycvUA7)FFs}z$@42g{oxT?*$-B#)#{2Q7pcs`d}BR4wWmy|H1GDc z31X|&%wy>AsNI1dOEVh-3PhZYx_L|?KM~yIiLbleM46zq*TQkk#Myb+PVhp~gdBD> zVf>=a^>!u5{O^5?$q$IE5cvU-cRhm~4EyLfz6_=!S8}3|MJ&W$frW0-y~g&hp0!zZ z{2f9DYE2Io0wc1*i3M0`pd(kat2ss!S&f>&Ty+#(LC!1gasJD|)ic}zY7pT}~ykY=3!*^yFX?Df=w?kx{KdKSpCx_8}WsIWY!<@{_i2O+^u7Z_AF7wg^htTji-T3@Zh z*DWYmD6q+m%sGCjP47Lt>PH|MVp>dO8dzx~&>J{I$ZGMAkk6|>G&w+kM6QQXe~9lg z%ig4xb<*4ju*acxBEu;olL6>p6lE+jGNI7^`%|?#h9G$tbI)YyW8fhPGCw8YLCeM% zAjN|k)DPgd-Uvk8`hIvreYSE#O-7mg1Z$Wu>27TSs{MAl*|mCBMv0!Fu|WvPGCihaMHX?yt3Zpg((NQ!k^MAnr&~x$75@Y^_bWb?60Wg|AsV+vxifS(7~_oFO75G%8Rz%UdhtS z%FQEo^9fGeqK1|IJec?c$v*ZVpDnQcYttnkp#+n^z!#PLRDAe3SQ#+bJ-;6qKF8$W zjCYUNVpt9U1T@;h`_4mlUB#=&7Gof=MU#uL&T4fZ1y_Ke&norM*6r-1+=8VGlA;VZ ziY&WNtyc-*?$J&ZY?C29@|CPwam}^(drB)5ok>&aaUhQze@aPV&uW{tqbx@;yuUb6 z=$u6D8E>Z(IhK`RTRTJN(0K(PA1B<^h+4>E$vGy z;RwmK zi4cVoZqXC=A=8**w}<6M%sxgG6(3IS5-Ye7b6Jty!i$RA(#VyRI4?AV`=fE zeb-iNnQ!MMWik1P$SM&6IZ2sXt`nicSW>)8g8T~0O*1TR<4)=E^-=WEbjX9HioiItVt=nOsMy8!dtd%lY|(JMO^)>G5$foyRwRZ7;K@c zS0}=lE0*6L{cE7wM_yFbR=3kb!ADw|tJ5ZoJR`eT<>5MyZ1T?nbQPc3EA)xW*g!L- zk@THrircHqDoiq^Rd2#6?9o`yh(6Em^}i&es_P&T?qAto*)8LWQFIGlDJp+bzEUdr JY-!nN{|A*O{89h_ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-39.pyc deleted file mode 100644 index 60e12aea1a72869fec832517f37b22cf27b519e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmYk2&q~8U5XSSj6(Qh3(1S0~gV}>8LByIw4AzY#O@&;RG&`EqG>O@5w2$H=_!>S& zuAce|p4_zx&M?2>gKrr4Qp?&^M7@2C7F_I4DgKu##Dy4kBtVr!p=zR1Ezzi+=+sCI zY9=NfM9OHm5e{V|4>p>FE@4O<2;kA6A4aj`cu~}wUKj>pZ^ifq2ltq4<^IeMr}22= z;Tgfflw1WdcKgG-(3|-|9Ffb|pSZ;J!(aa%4#@3z>Rfx#*88rsmU#7puV<9kOF;92 z6|rmZtz4A~u29V&}CYSuijs}uVav4X>KlV(rpBQVqy p4I)Lwp{>#qWo3aFPx*?Gtfs*1X5H_cEo-_e;arBmWUz+%*WZ3JV$%Qs diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py deleted file mode 100644 index 3cad148..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py +++ /dev/null @@ -1,163 +0,0 @@ -"""Logic that powers autocompletion installed by ``pip completion``. -""" - -import optparse -import os -import sys -from itertools import chain -from typing import Any, Iterable, List, Optional - -from pip._internal.cli.main_parser import create_main_parser -from pip._internal.commands import commands_dict, create_command -from pip._internal.metadata import get_default_environment - - -def autocomplete() -> None: - """Entry Point for completion of main and subcommand options.""" - # Don't complete if user hasn't sourced bash_completion file. - if "PIP_AUTO_COMPLETE" not in os.environ: - return - cwords = os.environ["COMP_WORDS"].split()[1:] - cword = int(os.environ["COMP_CWORD"]) - try: - current = cwords[cword - 1] - except IndexError: - current = "" - - parser = create_main_parser() - subcommands = list(commands_dict) - options = [] - - # subcommand - subcommand_name: Optional[str] = None - for word in cwords: - if word in subcommands: - subcommand_name = word - break - # subcommand options - if subcommand_name is not None: - # special case: 'help' subcommand has no options - if subcommand_name == "help": - sys.exit(1) - # special case: list locally installed dists for show and uninstall - should_list_installed = not current.startswith("-") and subcommand_name in [ - "show", - "uninstall", - ] - if should_list_installed: - env = get_default_environment() - lc = current.lower() - installed = [ - dist.canonical_name - for dist in env.iter_installed_distributions(local_only=True) - if dist.canonical_name.startswith(lc) - and dist.canonical_name not in cwords[1:] - ] - # if there are no dists installed, fall back to option completion - if installed: - for dist in installed: - print(dist) - sys.exit(1) - - subcommand = create_command(subcommand_name) - - for opt in subcommand.parser.option_list_all: - if opt.help != optparse.SUPPRESS_HELP: - for opt_str in opt._long_opts + opt._short_opts: - options.append((opt_str, opt.nargs)) - - # filter out previously specified options from available options - prev_opts = [x.split("=")[0] for x in cwords[1 : cword - 1]] - options = [(x, v) for (x, v) in options if x not in prev_opts] - # filter options by current input - options = [(k, v) for k, v in options if k.startswith(current)] - # get completion type given cwords and available subcommand options - completion_type = get_path_completion_type( - cwords, - cword, - subcommand.parser.option_list_all, - ) - # get completion files and directories if ``completion_type`` is - # ````, ``

    `` or ```` - if completion_type: - paths = auto_complete_paths(current, completion_type) - options = [(path, 0) for path in paths] - for option in options: - opt_label = option[0] - # append '=' to options which require args - if option[1] and option[0][:2] == "--": - opt_label += "=" - print(opt_label) - else: - # show main parser options only when necessary - - opts = [i.option_list for i in parser.option_groups] - opts.append(parser.option_list) - flattened_opts = chain.from_iterable(opts) - if current.startswith("-"): - for opt in flattened_opts: - if opt.help != optparse.SUPPRESS_HELP: - subcommands += opt._long_opts + opt._short_opts - else: - # get completion type given cwords and all available options - completion_type = get_path_completion_type(cwords, cword, flattened_opts) - if completion_type: - subcommands = list(auto_complete_paths(current, completion_type)) - - print(" ".join([x for x in subcommands if x.startswith(current)])) - sys.exit(1) - - -def get_path_completion_type( - cwords: List[str], cword: int, opts: Iterable[Any] -) -> Optional[str]: - """Get the type of path completion (``file``, ``dir``, ``path`` or None) - - :param cwords: same as the environmental variable ``COMP_WORDS`` - :param cword: same as the environmental variable ``COMP_CWORD`` - :param opts: The available options to check - :return: path completion type (``file``, ``dir``, ``path`` or None) - """ - if cword < 2 or not cwords[cword - 2].startswith("-"): - return None - for opt in opts: - if opt.help == optparse.SUPPRESS_HELP: - continue - for o in str(opt).split("/"): - if cwords[cword - 2].split("=")[0] == o: - if not opt.metavar or any( - x in ("path", "file", "dir") for x in opt.metavar.split("/") - ): - return opt.metavar - return None - - -def auto_complete_paths(current: str, completion_type: str) -> Iterable[str]: - """If ``completion_type`` is ``file`` or ``path``, list all regular files - and directories starting with ``current``; otherwise only list directories - starting with ``current``. - - :param current: The word to be completed - :param completion_type: path completion type(`file`, `path` or `dir`)i - :return: A generator of regular files and/or directories - """ - directory, filename = os.path.split(current) - current_path = os.path.abspath(directory) - # Don't complete paths if they can't be accessed - if not os.access(current_path, os.R_OK): - return - filename = os.path.normcase(filename) - # list all files that start with ``filename`` - file_list = ( - x for x in os.listdir(current_path) if os.path.normcase(x).startswith(filename) - ) - for f in file_list: - opt = os.path.join(current_path, f) - comp_file = os.path.normcase(os.path.join(directory, f)) - # complete regular files when there is not ```` after option - # complete directories when there is ````, ```` or - # ````after option - if completion_type != "dir" and os.path.isfile(opt): - yield comp_file - elif os.path.isdir(opt): - yield os.path.join(comp_file, "") diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/base_command.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/base_command.py deleted file mode 100644 index 0afe7e7..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/base_command.py +++ /dev/null @@ -1,214 +0,0 @@ -"""Base Command class, and related routines""" - -import functools -import logging -import logging.config -import optparse -import os -import sys -import traceback -from optparse import Values -from typing import Any, Callable, List, Optional, Tuple - -from pip._internal.cli import cmdoptions -from pip._internal.cli.command_context import CommandContextMixIn -from pip._internal.cli.parser import ConfigOptionParser, UpdatingDefaultsHelpFormatter -from pip._internal.cli.status_codes import ( - ERROR, - PREVIOUS_BUILD_DIR_ERROR, - UNKNOWN_ERROR, - VIRTUALENV_NOT_FOUND, -) -from pip._internal.exceptions import ( - BadCommand, - CommandError, - InstallationError, - NetworkConnectionError, - PreviousBuildDirError, - UninstallationError, -) -from pip._internal.utils.filesystem import check_path_owner -from pip._internal.utils.logging import BrokenStdoutLoggingError, setup_logging -from pip._internal.utils.misc import get_prog, normalize_path -from pip._internal.utils.temp_dir import TempDirectoryTypeRegistry as TempDirRegistry -from pip._internal.utils.temp_dir import global_tempdir_manager, tempdir_registry -from pip._internal.utils.virtualenv import running_under_virtualenv - -__all__ = ["Command"] - -logger = logging.getLogger(__name__) - - -class Command(CommandContextMixIn): - usage: str = "" - ignore_require_venv: bool = False - - def __init__(self, name: str, summary: str, isolated: bool = False) -> None: - super().__init__() - - self.name = name - self.summary = summary - self.parser = ConfigOptionParser( - usage=self.usage, - prog=f"{get_prog()} {name}", - formatter=UpdatingDefaultsHelpFormatter(), - add_help_option=False, - name=name, - description=self.__doc__, - isolated=isolated, - ) - - self.tempdir_registry: Optional[TempDirRegistry] = None - - # Commands should add options to this option group - optgroup_name = f"{self.name.capitalize()} Options" - self.cmd_opts = optparse.OptionGroup(self.parser, optgroup_name) - - # Add the general options - gen_opts = cmdoptions.make_option_group( - cmdoptions.general_group, - self.parser, - ) - self.parser.add_option_group(gen_opts) - - self.add_options() - - def add_options(self) -> None: - pass - - def handle_pip_version_check(self, options: Values) -> None: - """ - This is a no-op so that commands by default do not do the pip version - check. - """ - # Make sure we do the pip version check if the index_group options - # are present. - assert not hasattr(options, "no_index") - - def run(self, options: Values, args: List[str]) -> int: - raise NotImplementedError - - def parse_args(self, args: List[str]) -> Tuple[Values, List[str]]: - # factored out for testability - return self.parser.parse_args(args) - - def main(self, args: List[str]) -> int: - try: - with self.main_context(): - return self._main(args) - finally: - logging.shutdown() - - def _main(self, args: List[str]) -> int: - # We must initialize this before the tempdir manager, otherwise the - # configuration would not be accessible by the time we clean up the - # tempdir manager. - self.tempdir_registry = self.enter_context(tempdir_registry()) - # Intentionally set as early as possible so globally-managed temporary - # directories are available to the rest of the code. - self.enter_context(global_tempdir_manager()) - - options, args = self.parse_args(args) - - # Set verbosity so that it can be used elsewhere. - self.verbosity = options.verbose - options.quiet - - level_number = setup_logging( - verbosity=self.verbosity, - no_color=options.no_color, - user_log_file=options.log, - ) - - # TODO: Try to get these passing down from the command? - # without resorting to os.environ to hold these. - # This also affects isolated builds and it should. - - if options.no_input: - os.environ["PIP_NO_INPUT"] = "1" - - if options.exists_action: - os.environ["PIP_EXISTS_ACTION"] = " ".join(options.exists_action) - - if options.require_venv and not self.ignore_require_venv: - # If a venv is required check if it can really be found - if not running_under_virtualenv(): - logger.critical("Could not find an activated virtualenv (required).") - sys.exit(VIRTUALENV_NOT_FOUND) - - if options.cache_dir: - options.cache_dir = normalize_path(options.cache_dir) - if not check_path_owner(options.cache_dir): - logger.warning( - "The directory '%s' or its parent directory is not owned " - "or is not writable by the current user. The cache " - "has been disabled. Check the permissions and owner of " - "that directory. If executing pip with sudo, you should " - "use sudo's -H flag.", - options.cache_dir, - ) - options.cache_dir = None - - if "2020-resolver" in options.features_enabled: - logger.warning( - "--use-feature=2020-resolver no longer has any effect, " - "since it is now the default dependency resolver in pip. " - "This will become an error in pip 21.0." - ) - - def intercepts_unhandled_exc( - run_func: Callable[..., int] - ) -> Callable[..., int]: - @functools.wraps(run_func) - def exc_logging_wrapper(*args: Any) -> int: - try: - status = run_func(*args) - assert isinstance(status, int) - return status - except PreviousBuildDirError as exc: - logger.critical(str(exc)) - logger.debug("Exception information:", exc_info=True) - - return PREVIOUS_BUILD_DIR_ERROR - except ( - InstallationError, - UninstallationError, - BadCommand, - NetworkConnectionError, - ) as exc: - logger.critical(str(exc)) - logger.debug("Exception information:", exc_info=True) - - return ERROR - except CommandError as exc: - logger.critical("%s", exc) - logger.debug("Exception information:", exc_info=True) - - return ERROR - except BrokenStdoutLoggingError: - # Bypass our logger and write any remaining messages to - # stderr because stdout no longer works. - print("ERROR: Pipe to stdout was broken", file=sys.stderr) - if level_number <= logging.DEBUG: - traceback.print_exc(file=sys.stderr) - - return ERROR - except KeyboardInterrupt: - logger.critical("Operation cancelled by user") - logger.debug("Exception information:", exc_info=True) - - return ERROR - except BaseException: - logger.critical("Exception:", exc_info=True) - - return UNKNOWN_ERROR - - return exc_logging_wrapper - - try: - if not options.debug_mode: - run = intercepts_unhandled_exc(self.run) - else: - run = self.run - return run(options, args) - finally: - self.handle_pip_version_check(options) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/cmdoptions.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/cmdoptions.py deleted file mode 100644 index 626fd00..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/cmdoptions.py +++ /dev/null @@ -1,1010 +0,0 @@ -""" -shared options and groups - -The principle here is to define options once, but *not* instantiate them -globally. One reason being that options with action='append' can carry state -between parses. pip parses general options twice internally, and shouldn't -pass on state. To be consistent, all options will follow this design. -""" - -# The following comment should be removed at some point in the future. -# mypy: strict-optional=False - -import os -import textwrap -import warnings -from functools import partial -from optparse import SUPPRESS_HELP, Option, OptionGroup, OptionParser, Values -from textwrap import dedent -from typing import Any, Callable, Dict, Optional, Tuple - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.cli.parser import ConfigOptionParser -from pip._internal.cli.progress_bars import BAR_TYPES -from pip._internal.exceptions import CommandError -from pip._internal.locations import USER_CACHE_DIR, get_src_prefix -from pip._internal.models.format_control import FormatControl -from pip._internal.models.index import PyPI -from pip._internal.models.target_python import TargetPython -from pip._internal.utils.hashes import STRONG_HASHES -from pip._internal.utils.misc import strtobool - - -def raise_option_error(parser: OptionParser, option: Option, msg: str) -> None: - """ - Raise an option parsing error using parser.error(). - - Args: - parser: an OptionParser instance. - option: an Option instance. - msg: the error text. - """ - msg = f"{option} error: {msg}" - msg = textwrap.fill(" ".join(msg.split())) - parser.error(msg) - - -def make_option_group(group: Dict[str, Any], parser: ConfigOptionParser) -> OptionGroup: - """ - Return an OptionGroup object - group -- assumed to be dict with 'name' and 'options' keys - parser -- an optparse Parser - """ - option_group = OptionGroup(parser, group["name"]) - for option in group["options"]: - option_group.add_option(option()) - return option_group - - -def check_install_build_global( - options: Values, check_options: Optional[Values] = None -) -> None: - """Disable wheels if per-setup.py call options are set. - - :param options: The OptionParser options to update. - :param check_options: The options to check, if not supplied defaults to - options. - """ - if check_options is None: - check_options = options - - def getname(n: str) -> Optional[Any]: - return getattr(check_options, n, None) - - names = ["build_options", "global_options", "install_options"] - if any(map(getname, names)): - control = options.format_control - control.disallow_binaries() - warnings.warn( - "Disabling all use of wheels due to the use of --build-option " - "/ --global-option / --install-option.", - stacklevel=2, - ) - - -def check_dist_restriction(options: Values, check_target: bool = False) -> None: - """Function for determining if custom platform options are allowed. - - :param options: The OptionParser options. - :param check_target: Whether or not to check if --target is being used. - """ - dist_restriction_set = any( - [ - options.python_version, - options.platforms, - options.abis, - options.implementation, - ] - ) - - binary_only = FormatControl(set(), {":all:"}) - sdist_dependencies_allowed = ( - options.format_control != binary_only and not options.ignore_dependencies - ) - - # Installations or downloads using dist restrictions must not combine - # source distributions and dist-specific wheels, as they are not - # guaranteed to be locally compatible. - if dist_restriction_set and sdist_dependencies_allowed: - raise CommandError( - "When restricting platform and interpreter constraints using " - "--python-version, --platform, --abi, or --implementation, " - "either --no-deps must be set, or --only-binary=:all: must be " - "set and --no-binary must not be set (or must be set to " - ":none:)." - ) - - if check_target: - if dist_restriction_set and not options.target_dir: - raise CommandError( - "Can not use any platform or abi specific options unless " - "installing via '--target'" - ) - - -def _path_option_check(option: Option, opt: str, value: str) -> str: - return os.path.expanduser(value) - - -def _package_name_option_check(option: Option, opt: str, value: str) -> str: - return canonicalize_name(value) - - -class PipOption(Option): - TYPES = Option.TYPES + ("path", "package_name") - TYPE_CHECKER = Option.TYPE_CHECKER.copy() - TYPE_CHECKER["package_name"] = _package_name_option_check - TYPE_CHECKER["path"] = _path_option_check - - -########### -# options # -########### - -help_: Callable[..., Option] = partial( - Option, - "-h", - "--help", - dest="help", - action="help", - help="Show help.", -) - -debug_mode: Callable[..., Option] = partial( - Option, - "--debug", - dest="debug_mode", - action="store_true", - default=False, - help=( - "Let unhandled exceptions propagate outside the main subroutine, " - "instead of logging them to stderr." - ), -) - -isolated_mode: Callable[..., Option] = partial( - Option, - "--isolated", - dest="isolated_mode", - action="store_true", - default=False, - help=( - "Run pip in an isolated mode, ignoring environment variables and user " - "configuration." - ), -) - -require_virtualenv: Callable[..., Option] = partial( - Option, - # Run only if inside a virtualenv, bail if not. - "--require-virtualenv", - "--require-venv", - dest="require_venv", - action="store_true", - default=False, - help=SUPPRESS_HELP, -) - -verbose: Callable[..., Option] = partial( - Option, - "-v", - "--verbose", - dest="verbose", - action="count", - default=0, - help="Give more output. Option is additive, and can be used up to 3 times.", -) - -no_color: Callable[..., Option] = partial( - Option, - "--no-color", - dest="no_color", - action="store_true", - default=False, - help="Suppress colored output.", -) - -version: Callable[..., Option] = partial( - Option, - "-V", - "--version", - dest="version", - action="store_true", - help="Show version and exit.", -) - -quiet: Callable[..., Option] = partial( - Option, - "-q", - "--quiet", - dest="quiet", - action="count", - default=0, - help=( - "Give less output. Option is additive, and can be used up to 3" - " times (corresponding to WARNING, ERROR, and CRITICAL logging" - " levels)." - ), -) - -progress_bar: Callable[..., Option] = partial( - Option, - "--progress-bar", - dest="progress_bar", - type="choice", - choices=list(BAR_TYPES.keys()), - default="on", - help=( - "Specify type of progress to be displayed [" - + "|".join(BAR_TYPES.keys()) - + "] (default: %default)" - ), -) - -log: Callable[..., Option] = partial( - PipOption, - "--log", - "--log-file", - "--local-log", - dest="log", - metavar="path", - type="path", - help="Path to a verbose appending log.", -) - -no_input: Callable[..., Option] = partial( - Option, - # Don't ask for input - "--no-input", - dest="no_input", - action="store_true", - default=False, - help="Disable prompting for input.", -) - -proxy: Callable[..., Option] = partial( - Option, - "--proxy", - dest="proxy", - type="str", - default="", - help="Specify a proxy in the form [user:passwd@]proxy.server:port.", -) - -retries: Callable[..., Option] = partial( - Option, - "--retries", - dest="retries", - type="int", - default=5, - help="Maximum number of retries each connection should attempt " - "(default %default times).", -) - -timeout: Callable[..., Option] = partial( - Option, - "--timeout", - "--default-timeout", - metavar="sec", - dest="timeout", - type="float", - default=15, - help="Set the socket timeout (default %default seconds).", -) - - -def exists_action() -> Option: - return Option( - # Option when path already exist - "--exists-action", - dest="exists_action", - type="choice", - choices=["s", "i", "w", "b", "a"], - default=[], - action="append", - metavar="action", - help="Default action when a path already exists: " - "(s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort.", - ) - - -cert: Callable[..., Option] = partial( - PipOption, - "--cert", - dest="cert", - type="path", - metavar="path", - help=( - "Path to PEM-encoded CA certificate bundle. " - "If provided, overrides the default. " - "See 'SSL Certificate Verification' in pip documentation " - "for more information." - ), -) - -client_cert: Callable[..., Option] = partial( - PipOption, - "--client-cert", - dest="client_cert", - type="path", - default=None, - metavar="path", - help="Path to SSL client certificate, a single file containing the " - "private key and the certificate in PEM format.", -) - -index_url: Callable[..., Option] = partial( - Option, - "-i", - "--index-url", - "--pypi-url", - dest="index_url", - metavar="URL", - default=PyPI.simple_url, - help="Base URL of the Python Package Index (default %default). " - "This should point to a repository compliant with PEP 503 " - "(the simple repository API) or a local directory laid out " - "in the same format.", -) - - -def extra_index_url() -> Option: - return Option( - "--extra-index-url", - dest="extra_index_urls", - metavar="URL", - action="append", - default=[], - help="Extra URLs of package indexes to use in addition to " - "--index-url. Should follow the same rules as " - "--index-url.", - ) - - -no_index: Callable[..., Option] = partial( - Option, - "--no-index", - dest="no_index", - action="store_true", - default=False, - help="Ignore package index (only looking at --find-links URLs instead).", -) - - -def find_links() -> Option: - return Option( - "-f", - "--find-links", - dest="find_links", - action="append", - default=[], - metavar="url", - help="If a URL or path to an html file, then parse for links to " - "archives such as sdist (.tar.gz) or wheel (.whl) files. " - "If a local path or file:// URL that's a directory, " - "then look for archives in the directory listing. " - "Links to VCS project URLs are not supported.", - ) - - -def trusted_host() -> Option: - return Option( - "--trusted-host", - dest="trusted_hosts", - action="append", - metavar="HOSTNAME", - default=[], - help="Mark this host or host:port pair as trusted, even though it " - "does not have valid or any HTTPS.", - ) - - -def constraints() -> Option: - return Option( - "-c", - "--constraint", - dest="constraints", - action="append", - default=[], - metavar="file", - help="Constrain versions using the given constraints file. " - "This option can be used multiple times.", - ) - - -def requirements() -> Option: - return Option( - "-r", - "--requirement", - dest="requirements", - action="append", - default=[], - metavar="file", - help="Install from the given requirements file. " - "This option can be used multiple times.", - ) - - -def editable() -> Option: - return Option( - "-e", - "--editable", - dest="editables", - action="append", - default=[], - metavar="path/url", - help=( - "Install a project in editable mode (i.e. setuptools " - '"develop mode") from a local project path or a VCS url.' - ), - ) - - -def _handle_src(option: Option, opt_str: str, value: str, parser: OptionParser) -> None: - value = os.path.abspath(value) - setattr(parser.values, option.dest, value) - - -src: Callable[..., Option] = partial( - PipOption, - "--src", - "--source", - "--source-dir", - "--source-directory", - dest="src_dir", - type="path", - metavar="dir", - default=get_src_prefix(), - action="callback", - callback=_handle_src, - help="Directory to check out editable projects into. " - 'The default in a virtualenv is "/src". ' - 'The default for global installs is "/src".', -) - - -def _get_format_control(values: Values, option: Option) -> Any: - """Get a format_control object.""" - return getattr(values, option.dest) - - -def _handle_no_binary( - option: Option, opt_str: str, value: str, parser: OptionParser -) -> None: - existing = _get_format_control(parser.values, option) - FormatControl.handle_mutual_excludes( - value, - existing.no_binary, - existing.only_binary, - ) - - -def _handle_only_binary( - option: Option, opt_str: str, value: str, parser: OptionParser -) -> None: - existing = _get_format_control(parser.values, option) - FormatControl.handle_mutual_excludes( - value, - existing.only_binary, - existing.no_binary, - ) - - -def no_binary() -> Option: - format_control = FormatControl(set(), set()) - return Option( - "--no-binary", - dest="format_control", - action="callback", - callback=_handle_no_binary, - type="str", - default=format_control, - help="Do not use binary packages. Can be supplied multiple times, and " - 'each time adds to the existing value. Accepts either ":all:" to ' - 'disable all binary packages, ":none:" to empty the set (notice ' - "the colons), or one or more package names with commas between " - "them (no colons). Note that some packages are tricky to compile " - "and may fail to install when this option is used on them.", - ) - - -def only_binary() -> Option: - format_control = FormatControl(set(), set()) - return Option( - "--only-binary", - dest="format_control", - action="callback", - callback=_handle_only_binary, - type="str", - default=format_control, - help="Do not use source packages. Can be supplied multiple times, and " - 'each time adds to the existing value. Accepts either ":all:" to ' - 'disable all source packages, ":none:" to empty the set, or one ' - "or more package names with commas between them. Packages " - "without binary distributions will fail to install when this " - "option is used on them.", - ) - - -platforms: Callable[..., Option] = partial( - Option, - "--platform", - dest="platforms", - metavar="platform", - action="append", - default=None, - help=( - "Only use wheels compatible with . Defaults to the " - "platform of the running system. Use this option multiple times to " - "specify multiple platforms supported by the target interpreter." - ), -) - - -# This was made a separate function for unit-testing purposes. -def _convert_python_version(value: str) -> Tuple[Tuple[int, ...], Optional[str]]: - """ - Convert a version string like "3", "37", or "3.7.3" into a tuple of ints. - - :return: A 2-tuple (version_info, error_msg), where `error_msg` is - non-None if and only if there was a parsing error. - """ - if not value: - # The empty string is the same as not providing a value. - return (None, None) - - parts = value.split(".") - if len(parts) > 3: - return ((), "at most three version parts are allowed") - - if len(parts) == 1: - # Then we are in the case of "3" or "37". - value = parts[0] - if len(value) > 1: - parts = [value[0], value[1:]] - - try: - version_info = tuple(int(part) for part in parts) - except ValueError: - return ((), "each version part must be an integer") - - return (version_info, None) - - -def _handle_python_version( - option: Option, opt_str: str, value: str, parser: OptionParser -) -> None: - """ - Handle a provided --python-version value. - """ - version_info, error_msg = _convert_python_version(value) - if error_msg is not None: - msg = "invalid --python-version value: {!r}: {}".format( - value, - error_msg, - ) - raise_option_error(parser, option=option, msg=msg) - - parser.values.python_version = version_info - - -python_version: Callable[..., Option] = partial( - Option, - "--python-version", - dest="python_version", - metavar="python_version", - action="callback", - callback=_handle_python_version, - type="str", - default=None, - help=dedent( - """\ - The Python interpreter version to use for wheel and "Requires-Python" - compatibility checks. Defaults to a version derived from the running - interpreter. The version can be specified using up to three dot-separated - integers (e.g. "3" for 3.0.0, "3.7" for 3.7.0, or "3.7.3"). A major-minor - version can also be given as a string without dots (e.g. "37" for 3.7.0). - """ - ), -) - - -implementation: Callable[..., Option] = partial( - Option, - "--implementation", - dest="implementation", - metavar="implementation", - default=None, - help=( - "Only use wheels compatible with Python " - "implementation , e.g. 'pp', 'jy', 'cp', " - " or 'ip'. If not specified, then the current " - "interpreter implementation is used. Use 'py' to force " - "implementation-agnostic wheels." - ), -) - - -abis: Callable[..., Option] = partial( - Option, - "--abi", - dest="abis", - metavar="abi", - action="append", - default=None, - help=( - "Only use wheels compatible with Python abi , e.g. 'pypy_41'. " - "If not specified, then the current interpreter abi tag is used. " - "Use this option multiple times to specify multiple abis supported " - "by the target interpreter. Generally you will need to specify " - "--implementation, --platform, and --python-version when using this " - "option." - ), -) - - -def add_target_python_options(cmd_opts: OptionGroup) -> None: - cmd_opts.add_option(platforms()) - cmd_opts.add_option(python_version()) - cmd_opts.add_option(implementation()) - cmd_opts.add_option(abis()) - - -def make_target_python(options: Values) -> TargetPython: - target_python = TargetPython( - platforms=options.platforms, - py_version_info=options.python_version, - abis=options.abis, - implementation=options.implementation, - ) - - return target_python - - -def prefer_binary() -> Option: - return Option( - "--prefer-binary", - dest="prefer_binary", - action="store_true", - default=False, - help="Prefer older binary packages over newer source packages.", - ) - - -cache_dir: Callable[..., Option] = partial( - PipOption, - "--cache-dir", - dest="cache_dir", - default=USER_CACHE_DIR, - metavar="dir", - type="path", - help="Store the cache data in .", -) - - -def _handle_no_cache_dir( - option: Option, opt: str, value: str, parser: OptionParser -) -> None: - """ - Process a value provided for the --no-cache-dir option. - - This is an optparse.Option callback for the --no-cache-dir option. - """ - # The value argument will be None if --no-cache-dir is passed via the - # command-line, since the option doesn't accept arguments. However, - # the value can be non-None if the option is triggered e.g. by an - # environment variable, like PIP_NO_CACHE_DIR=true. - if value is not None: - # Then parse the string value to get argument error-checking. - try: - strtobool(value) - except ValueError as exc: - raise_option_error(parser, option=option, msg=str(exc)) - - # Originally, setting PIP_NO_CACHE_DIR to a value that strtobool() - # converted to 0 (like "false" or "no") caused cache_dir to be disabled - # rather than enabled (logic would say the latter). Thus, we disable - # the cache directory not just on values that parse to True, but (for - # backwards compatibility reasons) also on values that parse to False. - # In other words, always set it to False if the option is provided in - # some (valid) form. - parser.values.cache_dir = False - - -no_cache: Callable[..., Option] = partial( - Option, - "--no-cache-dir", - dest="cache_dir", - action="callback", - callback=_handle_no_cache_dir, - help="Disable the cache.", -) - -no_deps: Callable[..., Option] = partial( - Option, - "--no-deps", - "--no-dependencies", - dest="ignore_dependencies", - action="store_true", - default=False, - help="Don't install package dependencies.", -) - -ignore_requires_python: Callable[..., Option] = partial( - Option, - "--ignore-requires-python", - dest="ignore_requires_python", - action="store_true", - help="Ignore the Requires-Python information.", -) - -no_build_isolation: Callable[..., Option] = partial( - Option, - "--no-build-isolation", - dest="build_isolation", - action="store_false", - default=True, - help="Disable isolation when building a modern source distribution. " - "Build dependencies specified by PEP 518 must be already installed " - "if this option is used.", -) - - -def _handle_no_use_pep517( - option: Option, opt: str, value: str, parser: OptionParser -) -> None: - """ - Process a value provided for the --no-use-pep517 option. - - This is an optparse.Option callback for the no_use_pep517 option. - """ - # Since --no-use-pep517 doesn't accept arguments, the value argument - # will be None if --no-use-pep517 is passed via the command-line. - # However, the value can be non-None if the option is triggered e.g. - # by an environment variable, for example "PIP_NO_USE_PEP517=true". - if value is not None: - msg = """A value was passed for --no-use-pep517, - probably using either the PIP_NO_USE_PEP517 environment variable - or the "no-use-pep517" config file option. Use an appropriate value - of the PIP_USE_PEP517 environment variable or the "use-pep517" - config file option instead. - """ - raise_option_error(parser, option=option, msg=msg) - - # Otherwise, --no-use-pep517 was passed via the command-line. - parser.values.use_pep517 = False - - -use_pep517: Any = partial( - Option, - "--use-pep517", - dest="use_pep517", - action="store_true", - default=None, - help="Use PEP 517 for building source distributions " - "(use --no-use-pep517 to force legacy behaviour).", -) - -no_use_pep517: Any = partial( - Option, - "--no-use-pep517", - dest="use_pep517", - action="callback", - callback=_handle_no_use_pep517, - default=None, - help=SUPPRESS_HELP, -) - -install_options: Callable[..., Option] = partial( - Option, - "--install-option", - dest="install_options", - action="append", - metavar="options", - help="Extra arguments to be supplied to the setup.py install " - 'command (use like --install-option="--install-scripts=/usr/local/' - 'bin"). Use multiple --install-option options to pass multiple ' - "options to setup.py install. If you are using an option with a " - "directory path, be sure to use absolute path.", -) - -build_options: Callable[..., Option] = partial( - Option, - "--build-option", - dest="build_options", - metavar="options", - action="append", - help="Extra arguments to be supplied to 'setup.py bdist_wheel'.", -) - -global_options: Callable[..., Option] = partial( - Option, - "--global-option", - dest="global_options", - action="append", - metavar="options", - help="Extra global options to be supplied to the setup.py " - "call before the install or bdist_wheel command.", -) - -no_clean: Callable[..., Option] = partial( - Option, - "--no-clean", - action="store_true", - default=False, - help="Don't clean up build directories.", -) - -pre: Callable[..., Option] = partial( - Option, - "--pre", - action="store_true", - default=False, - help="Include pre-release and development versions. By default, " - "pip only finds stable versions.", -) - -disable_pip_version_check: Callable[..., Option] = partial( - Option, - "--disable-pip-version-check", - dest="disable_pip_version_check", - action="store_true", - default=False, - help="Don't periodically check PyPI to determine whether a new version " - "of pip is available for download. Implied with --no-index.", -) - - -def _handle_merge_hash( - option: Option, opt_str: str, value: str, parser: OptionParser -) -> None: - """Given a value spelled "algo:digest", append the digest to a list - pointed to in a dict by the algo name.""" - if not parser.values.hashes: - parser.values.hashes = {} - try: - algo, digest = value.split(":", 1) - except ValueError: - parser.error( - "Arguments to {} must be a hash name " # noqa - "followed by a value, like --hash=sha256:" - "abcde...".format(opt_str) - ) - if algo not in STRONG_HASHES: - parser.error( - "Allowed hash algorithms for {} are {}.".format( # noqa - opt_str, ", ".join(STRONG_HASHES) - ) - ) - parser.values.hashes.setdefault(algo, []).append(digest) - - -hash: Callable[..., Option] = partial( - Option, - "--hash", - # Hash values eventually end up in InstallRequirement.hashes due to - # __dict__ copying in process_line(). - dest="hashes", - action="callback", - callback=_handle_merge_hash, - type="string", - help="Verify that the package's archive matches this " - "hash before installing. Example: --hash=sha256:abcdef...", -) - - -require_hashes: Callable[..., Option] = partial( - Option, - "--require-hashes", - dest="require_hashes", - action="store_true", - default=False, - help="Require a hash to check each requirement against, for " - "repeatable installs. This option is implied when any package in a " - "requirements file has a --hash option.", -) - - -list_path: Callable[..., Option] = partial( - PipOption, - "--path", - dest="path", - type="path", - action="append", - help="Restrict to the specified installation path for listing " - "packages (can be used multiple times).", -) - - -def check_list_path_option(options: Values) -> None: - if options.path and (options.user or options.local): - raise CommandError("Cannot combine '--path' with '--user' or '--local'") - - -list_exclude: Callable[..., Option] = partial( - PipOption, - "--exclude", - dest="excludes", - action="append", - metavar="package", - type="package_name", - help="Exclude specified package from the output", -) - - -no_python_version_warning: Callable[..., Option] = partial( - Option, - "--no-python-version-warning", - dest="no_python_version_warning", - action="store_true", - default=False, - help="Silence deprecation warnings for upcoming unsupported Pythons.", -) - - -use_new_feature: Callable[..., Option] = partial( - Option, - "--use-feature", - dest="features_enabled", - metavar="feature", - action="append", - default=[], - choices=["2020-resolver", "fast-deps", "in-tree-build"], - help="Enable new functionality, that may be backward incompatible.", -) - -use_deprecated_feature: Callable[..., Option] = partial( - Option, - "--use-deprecated", - dest="deprecated_features_enabled", - metavar="feature", - action="append", - default=[], - choices=["legacy-resolver", "out-of-tree-build"], - help=("Enable deprecated functionality, that will be removed in the future."), -) - - -########## -# groups # -########## - -general_group: Dict[str, Any] = { - "name": "General Options", - "options": [ - help_, - debug_mode, - isolated_mode, - require_virtualenv, - verbose, - version, - quiet, - log, - no_input, - proxy, - retries, - timeout, - exists_action, - trusted_host, - cert, - client_cert, - cache_dir, - no_cache, - disable_pip_version_check, - no_color, - no_python_version_warning, - use_new_feature, - use_deprecated_feature, - ], -} - -index_group: Dict[str, Any] = { - "name": "Package Index Options", - "options": [ - index_url, - extra_index_url, - no_index, - find_links, - ], -} diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/command_context.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/command_context.py deleted file mode 100644 index ed68322..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/command_context.py +++ /dev/null @@ -1,27 +0,0 @@ -from contextlib import ExitStack, contextmanager -from typing import ContextManager, Iterator, TypeVar - -_T = TypeVar("_T", covariant=True) - - -class CommandContextMixIn: - def __init__(self) -> None: - super().__init__() - self._in_main_context = False - self._main_context = ExitStack() - - @contextmanager - def main_context(self) -> Iterator[None]: - assert not self._in_main_context - - self._in_main_context = True - try: - with self._main_context: - yield - finally: - self._in_main_context = False - - def enter_context(self, context_provider: ContextManager[_T]) -> _T: - assert self._in_main_context - - return self._main_context.enter_context(context_provider) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/main.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/main.py deleted file mode 100644 index 0e31221..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/main.py +++ /dev/null @@ -1,70 +0,0 @@ -"""Primary application entrypoint. -""" -import locale -import logging -import os -import sys -from typing import List, Optional - -from pip._internal.cli.autocompletion import autocomplete -from pip._internal.cli.main_parser import parse_command -from pip._internal.commands import create_command -from pip._internal.exceptions import PipError -from pip._internal.utils import deprecation - -logger = logging.getLogger(__name__) - - -# Do not import and use main() directly! Using it directly is actively -# discouraged by pip's maintainers. The name, location and behavior of -# this function is subject to change, so calling it directly is not -# portable across different pip versions. - -# In addition, running pip in-process is unsupported and unsafe. This is -# elaborated in detail at -# https://pip.pypa.io/en/stable/user_guide/#using-pip-from-your-program. -# That document also provides suggestions that should work for nearly -# all users that are considering importing and using main() directly. - -# However, we know that certain users will still want to invoke pip -# in-process. If you understand and accept the implications of using pip -# in an unsupported manner, the best approach is to use runpy to avoid -# depending on the exact location of this entry point. - -# The following example shows how to use runpy to invoke pip in that -# case: -# -# sys.argv = ["pip", your, args, here] -# runpy.run_module("pip", run_name="__main__") -# -# Note that this will exit the process after running, unlike a direct -# call to main. As it is not safe to do any processing after calling -# main, this should not be an issue in practice. - - -def main(args: Optional[List[str]] = None) -> int: - if args is None: - args = sys.argv[1:] - - # Configure our deprecation warnings to be sent through loggers - deprecation.install_warning_logger() - - autocomplete() - - try: - cmd_name, cmd_args = parse_command(args) - except PipError as exc: - sys.stderr.write(f"ERROR: {exc}") - sys.stderr.write(os.linesep) - sys.exit(1) - - # Needed for locale.getpreferredencoding(False) to work - # in pip._internal.utils.encoding.auto_decode - try: - locale.setlocale(locale.LC_ALL, "") - except locale.Error as e: - # setlocale can apparently crash if locale are uninitialized - logger.debug("Ignoring error %s when setting locale", e) - command = create_command(cmd_name, isolated=("--isolated" in cmd_args)) - - return command.main(cmd_args) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py deleted file mode 100644 index 3666ab0..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py +++ /dev/null @@ -1,87 +0,0 @@ -"""A single place for constructing and exposing the main parser -""" - -import os -import sys -from typing import List, Tuple - -from pip._internal.cli import cmdoptions -from pip._internal.cli.parser import ConfigOptionParser, UpdatingDefaultsHelpFormatter -from pip._internal.commands import commands_dict, get_similar_commands -from pip._internal.exceptions import CommandError -from pip._internal.utils.misc import get_pip_version, get_prog - -__all__ = ["create_main_parser", "parse_command"] - - -def create_main_parser() -> ConfigOptionParser: - """Creates and returns the main parser for pip's CLI""" - - parser = ConfigOptionParser( - usage="\n%prog [options]", - add_help_option=False, - formatter=UpdatingDefaultsHelpFormatter(), - name="global", - prog=get_prog(), - ) - parser.disable_interspersed_args() - - parser.version = get_pip_version() - - # add the general options - gen_opts = cmdoptions.make_option_group(cmdoptions.general_group, parser) - parser.add_option_group(gen_opts) - - # so the help formatter knows - parser.main = True # type: ignore - - # create command listing for description - description = [""] + [ - f"{name:27} {command_info.summary}" - for name, command_info in commands_dict.items() - ] - parser.description = "\n".join(description) - - return parser - - -def parse_command(args: List[str]) -> Tuple[str, List[str]]: - parser = create_main_parser() - - # Note: parser calls disable_interspersed_args(), so the result of this - # call is to split the initial args into the general options before the - # subcommand and everything else. - # For example: - # args: ['--timeout=5', 'install', '--user', 'INITools'] - # general_options: ['--timeout==5'] - # args_else: ['install', '--user', 'INITools'] - general_options, args_else = parser.parse_args(args) - - # --version - if general_options.version: - sys.stdout.write(parser.version) - sys.stdout.write(os.linesep) - sys.exit() - - # pip || pip help -> print_help() - if not args_else or (args_else[0] == "help" and len(args_else) == 1): - parser.print_help() - sys.exit() - - # the subcommand name - cmd_name = args_else[0] - - if cmd_name not in commands_dict: - guess = get_similar_commands(cmd_name) - - msg = [f'unknown command "{cmd_name}"'] - if guess: - msg.append(f'maybe you meant "{guess}"') - - raise CommandError(" - ".join(msg)) - - # all the args without the subcommand - cmd_args = args[:] - cmd_args.remove(cmd_name) - - return cmd_name, cmd_args diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/parser.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/parser.py deleted file mode 100644 index a1c99a8..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/parser.py +++ /dev/null @@ -1,292 +0,0 @@ -"""Base option parser setup""" - -import logging -import optparse -import shutil -import sys -import textwrap -from contextlib import suppress -from typing import Any, Dict, Iterator, List, Tuple - -from pip._internal.cli.status_codes import UNKNOWN_ERROR -from pip._internal.configuration import Configuration, ConfigurationError -from pip._internal.utils.misc import redact_auth_from_url, strtobool - -logger = logging.getLogger(__name__) - - -class PrettyHelpFormatter(optparse.IndentedHelpFormatter): - """A prettier/less verbose help formatter for optparse.""" - - def __init__(self, *args: Any, **kwargs: Any) -> None: - # help position must be aligned with __init__.parseopts.description - kwargs["max_help_position"] = 30 - kwargs["indent_increment"] = 1 - kwargs["width"] = shutil.get_terminal_size()[0] - 2 - super().__init__(*args, **kwargs) - - def format_option_strings(self, option: optparse.Option) -> str: - return self._format_option_strings(option) - - def _format_option_strings( - self, option: optparse.Option, mvarfmt: str = " <{}>", optsep: str = ", " - ) -> str: - """ - Return a comma-separated list of option strings and metavars. - - :param option: tuple of (short opt, long opt), e.g: ('-f', '--format') - :param mvarfmt: metavar format string - :param optsep: separator - """ - opts = [] - - if option._short_opts: - opts.append(option._short_opts[0]) - if option._long_opts: - opts.append(option._long_opts[0]) - if len(opts) > 1: - opts.insert(1, optsep) - - if option.takes_value(): - assert option.dest is not None - metavar = option.metavar or option.dest.lower() - opts.append(mvarfmt.format(metavar.lower())) - - return "".join(opts) - - def format_heading(self, heading: str) -> str: - if heading == "Options": - return "" - return heading + ":\n" - - def format_usage(self, usage: str) -> str: - """ - Ensure there is only one newline between usage and the first heading - if there is no description. - """ - msg = "\nUsage: {}\n".format(self.indent_lines(textwrap.dedent(usage), " ")) - return msg - - def format_description(self, description: str) -> str: - # leave full control over description to us - if description: - if hasattr(self.parser, "main"): - label = "Commands" - else: - label = "Description" - # some doc strings have initial newlines, some don't - description = description.lstrip("\n") - # some doc strings have final newlines and spaces, some don't - description = description.rstrip() - # dedent, then reindent - description = self.indent_lines(textwrap.dedent(description), " ") - description = f"{label}:\n{description}\n" - return description - else: - return "" - - def format_epilog(self, epilog: str) -> str: - # leave full control over epilog to us - if epilog: - return epilog - else: - return "" - - def indent_lines(self, text: str, indent: str) -> str: - new_lines = [indent + line for line in text.split("\n")] - return "\n".join(new_lines) - - -class UpdatingDefaultsHelpFormatter(PrettyHelpFormatter): - """Custom help formatter for use in ConfigOptionParser. - - This is updates the defaults before expanding them, allowing - them to show up correctly in the help listing. - - Also redact auth from url type options - """ - - def expand_default(self, option: optparse.Option) -> str: - default_values = None - if self.parser is not None: - assert isinstance(self.parser, ConfigOptionParser) - self.parser._update_defaults(self.parser.defaults) - assert option.dest is not None - default_values = self.parser.defaults.get(option.dest) - help_text = super().expand_default(option) - - if default_values and option.metavar == "URL": - if isinstance(default_values, str): - default_values = [default_values] - - # If its not a list, we should abort and just return the help text - if not isinstance(default_values, list): - default_values = [] - - for val in default_values: - help_text = help_text.replace(val, redact_auth_from_url(val)) - - return help_text - - -class CustomOptionParser(optparse.OptionParser): - def insert_option_group( - self, idx: int, *args: Any, **kwargs: Any - ) -> optparse.OptionGroup: - """Insert an OptionGroup at a given position.""" - group = self.add_option_group(*args, **kwargs) - - self.option_groups.pop() - self.option_groups.insert(idx, group) - - return group - - @property - def option_list_all(self) -> List[optparse.Option]: - """Get a list of all options, including those in option groups.""" - res = self.option_list[:] - for i in self.option_groups: - res.extend(i.option_list) - - return res - - -class ConfigOptionParser(CustomOptionParser): - """Custom option parser which updates its defaults by checking the - configuration files and environmental variables""" - - def __init__( - self, - *args: Any, - name: str, - isolated: bool = False, - **kwargs: Any, - ) -> None: - self.name = name - self.config = Configuration(isolated) - - assert self.name - super().__init__(*args, **kwargs) - - def check_default(self, option: optparse.Option, key: str, val: Any) -> Any: - try: - return option.check_value(key, val) - except optparse.OptionValueError as exc: - print(f"An error occurred during configuration: {exc}") - sys.exit(3) - - def _get_ordered_configuration_items(self) -> Iterator[Tuple[str, Any]]: - # Configuration gives keys in an unordered manner. Order them. - override_order = ["global", self.name, ":env:"] - - # Pool the options into different groups - section_items: Dict[str, List[Tuple[str, Any]]] = { - name: [] for name in override_order - } - for section_key, val in self.config.items(): - # ignore empty values - if not val: - logger.debug( - "Ignoring configuration key '%s' as it's value is empty.", - section_key, - ) - continue - - section, key = section_key.split(".", 1) - if section in override_order: - section_items[section].append((key, val)) - - # Yield each group in their override order - for section in override_order: - for key, val in section_items[section]: - yield key, val - - def _update_defaults(self, defaults: Dict[str, Any]) -> Dict[str, Any]: - """Updates the given defaults with values from the config files and - the environ. Does a little special handling for certain types of - options (lists).""" - - # Accumulate complex default state. - self.values = optparse.Values(self.defaults) - late_eval = set() - # Then set the options with those values - for key, val in self._get_ordered_configuration_items(): - # '--' because configuration supports only long names - option = self.get_option("--" + key) - - # Ignore options not present in this parser. E.g. non-globals put - # in [global] by users that want them to apply to all applicable - # commands. - if option is None: - continue - - assert option.dest is not None - - if option.action in ("store_true", "store_false"): - try: - val = strtobool(val) - except ValueError: - self.error( - "{} is not a valid value for {} option, " # noqa - "please specify a boolean value like yes/no, " - "true/false or 1/0 instead.".format(val, key) - ) - elif option.action == "count": - with suppress(ValueError): - val = strtobool(val) - with suppress(ValueError): - val = int(val) - if not isinstance(val, int) or val < 0: - self.error( - "{} is not a valid value for {} option, " # noqa - "please instead specify either a non-negative integer " - "or a boolean value like yes/no or false/true " - "which is equivalent to 1/0.".format(val, key) - ) - elif option.action == "append": - val = val.split() - val = [self.check_default(option, key, v) for v in val] - elif option.action == "callback": - assert option.callback is not None - late_eval.add(option.dest) - opt_str = option.get_opt_string() - val = option.convert_value(opt_str, val) - # From take_action - args = option.callback_args or () - kwargs = option.callback_kwargs or {} - option.callback(option, opt_str, val, self, *args, **kwargs) - else: - val = self.check_default(option, key, val) - - defaults[option.dest] = val - - for key in late_eval: - defaults[key] = getattr(self.values, key) - self.values = None - return defaults - - def get_default_values(self) -> optparse.Values: - """Overriding to make updating the defaults after instantiation of - the option parser possible, _update_defaults() does the dirty work.""" - if not self.process_default_values: - # Old, pre-Optik 1.5 behaviour. - return optparse.Values(self.defaults) - - # Load the configuration, or error out in case of an error - try: - self.config.load() - except ConfigurationError as err: - self.exit(UNKNOWN_ERROR, str(err)) - - defaults = self._update_defaults(self.defaults.copy()) # ours - for option in self._get_all_options(): - assert option.dest is not None - default = defaults.get(option.dest) - if isinstance(default, str): - opt_str = option.get_opt_string() - defaults[option.dest] = option.check_value(opt_str, default) - return optparse.Values(defaults) - - def error(self, msg: str) -> None: - self.print_usage(sys.stderr) - self.exit(UNKNOWN_ERROR, f"{msg}\n") diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py deleted file mode 100644 index f3db295..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py +++ /dev/null @@ -1,250 +0,0 @@ -import itertools -import sys -from signal import SIGINT, default_int_handler, signal -from typing import Any - -from pip._vendor.progress.bar import Bar, FillingCirclesBar, IncrementalBar -from pip._vendor.progress.spinner import Spinner - -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.logging import get_indentation -from pip._internal.utils.misc import format_size - -try: - from pip._vendor import colorama -# Lots of different errors can come from this, including SystemError and -# ImportError. -except Exception: - colorama = None - - -def _select_progress_class(preferred: Bar, fallback: Bar) -> Bar: - encoding = getattr(preferred.file, "encoding", None) - - # If we don't know what encoding this file is in, then we'll just assume - # that it doesn't support unicode and use the ASCII bar. - if not encoding: - return fallback - - # Collect all of the possible characters we want to use with the preferred - # bar. - characters = [ - getattr(preferred, "empty_fill", ""), - getattr(preferred, "fill", ""), - ] - characters += list(getattr(preferred, "phases", [])) - - # Try to decode the characters we're using for the bar using the encoding - # of the given file, if this works then we'll assume that we can use the - # fancier bar and if not we'll fall back to the plaintext bar. - try: - "".join(characters).encode(encoding) - except UnicodeEncodeError: - return fallback - else: - return preferred - - -_BaseBar: Any = _select_progress_class(IncrementalBar, Bar) - - -class InterruptibleMixin: - """ - Helper to ensure that self.finish() gets called on keyboard interrupt. - - This allows downloads to be interrupted without leaving temporary state - (like hidden cursors) behind. - - This class is similar to the progress library's existing SigIntMixin - helper, but as of version 1.2, that helper has the following problems: - - 1. It calls sys.exit(). - 2. It discards the existing SIGINT handler completely. - 3. It leaves its own handler in place even after an uninterrupted finish, - which will have unexpected delayed effects if the user triggers an - unrelated keyboard interrupt some time after a progress-displaying - download has already completed, for example. - """ - - def __init__(self, *args: Any, **kwargs: Any) -> None: - """ - Save the original SIGINT handler for later. - """ - # https://github.com/python/mypy/issues/5887 - super().__init__(*args, **kwargs) # type: ignore - - self.original_handler = signal(SIGINT, self.handle_sigint) - - # If signal() returns None, the previous handler was not installed from - # Python, and we cannot restore it. This probably should not happen, - # but if it does, we must restore something sensible instead, at least. - # The least bad option should be Python's default SIGINT handler, which - # just raises KeyboardInterrupt. - if self.original_handler is None: - self.original_handler = default_int_handler - - def finish(self) -> None: - """ - Restore the original SIGINT handler after finishing. - - This should happen regardless of whether the progress display finishes - normally, or gets interrupted. - """ - super().finish() # type: ignore - signal(SIGINT, self.original_handler) - - def handle_sigint(self, signum, frame): # type: ignore - """ - Call self.finish() before delegating to the original SIGINT handler. - - This handler should only be in place while the progress display is - active. - """ - self.finish() - self.original_handler(signum, frame) - - -class SilentBar(Bar): - def update(self) -> None: - pass - - -class BlueEmojiBar(IncrementalBar): - - suffix = "%(percent)d%%" - bar_prefix = " " - bar_suffix = " " - phases = ("\U0001F539", "\U0001F537", "\U0001F535") - - -class DownloadProgressMixin: - def __init__(self, *args: Any, **kwargs: Any) -> None: - # https://github.com/python/mypy/issues/5887 - super().__init__(*args, **kwargs) # type: ignore - self.message: str = (" " * (get_indentation() + 2)) + self.message - - @property - def downloaded(self) -> str: - return format_size(self.index) # type: ignore - - @property - def download_speed(self) -> str: - # Avoid zero division errors... - if self.avg == 0.0: # type: ignore - return "..." - return format_size(1 / self.avg) + "/s" # type: ignore - - @property - def pretty_eta(self) -> str: - if self.eta: # type: ignore - return f"eta {self.eta_td}" # type: ignore - return "" - - def iter(self, it): # type: ignore - for x in it: - yield x - # B305 is incorrectly raised here - # https://github.com/PyCQA/flake8-bugbear/issues/59 - self.next(len(x)) # noqa: B305 - self.finish() - - -class WindowsMixin: - def __init__(self, *args: Any, **kwargs: Any) -> None: - # The Windows terminal does not support the hide/show cursor ANSI codes - # even with colorama. So we'll ensure that hide_cursor is False on - # Windows. - # This call needs to go before the super() call, so that hide_cursor - # is set in time. The base progress bar class writes the "hide cursor" - # code to the terminal in its init, so if we don't set this soon - # enough, we get a "hide" with no corresponding "show"... - if WINDOWS and self.hide_cursor: # type: ignore - self.hide_cursor = False - - # https://github.com/python/mypy/issues/5887 - super().__init__(*args, **kwargs) # type: ignore - - # Check if we are running on Windows and we have the colorama module, - # if we do then wrap our file with it. - if WINDOWS and colorama: - self.file = colorama.AnsiToWin32(self.file) # type: ignore - # The progress code expects to be able to call self.file.isatty() - # but the colorama.AnsiToWin32() object doesn't have that, so we'll - # add it. - self.file.isatty = lambda: self.file.wrapped.isatty() - # The progress code expects to be able to call self.file.flush() - # but the colorama.AnsiToWin32() object doesn't have that, so we'll - # add it. - self.file.flush = lambda: self.file.wrapped.flush() - - -class BaseDownloadProgressBar(WindowsMixin, InterruptibleMixin, DownloadProgressMixin): - - file = sys.stdout - message = "%(percent)d%%" - suffix = "%(downloaded)s %(download_speed)s %(pretty_eta)s" - - -class DefaultDownloadProgressBar(BaseDownloadProgressBar, _BaseBar): - pass - - -class DownloadSilentBar(BaseDownloadProgressBar, SilentBar): - pass - - -class DownloadBar(BaseDownloadProgressBar, Bar): - pass - - -class DownloadFillingCirclesBar(BaseDownloadProgressBar, FillingCirclesBar): - pass - - -class DownloadBlueEmojiProgressBar(BaseDownloadProgressBar, BlueEmojiBar): - pass - - -class DownloadProgressSpinner( - WindowsMixin, InterruptibleMixin, DownloadProgressMixin, Spinner -): - - file = sys.stdout - suffix = "%(downloaded)s %(download_speed)s" - - def next_phase(self) -> str: - if not hasattr(self, "_phaser"): - self._phaser = itertools.cycle(self.phases) - return next(self._phaser) - - def update(self) -> None: - message = self.message % self - phase = self.next_phase() - suffix = self.suffix % self - line = "".join( - [ - message, - " " if message else "", - phase, - " " if suffix else "", - suffix, - ] - ) - - self.writeln(line) - - -BAR_TYPES = { - "off": (DownloadSilentBar, DownloadSilentBar), - "on": (DefaultDownloadProgressBar, DownloadProgressSpinner), - "ascii": (DownloadBar, DownloadProgressSpinner), - "pretty": (DownloadFillingCirclesBar, DownloadProgressSpinner), - "emoji": (DownloadBlueEmojiProgressBar, DownloadProgressSpinner), -} - - -def DownloadProgressProvider(progress_bar, max=None): # type: ignore - if max is None or max == 0: - return BAR_TYPES[progress_bar][1]().iter - else: - return BAR_TYPES[progress_bar][0](max=max).iter diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/req_command.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/req_command.py deleted file mode 100644 index dbd15cb..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/req_command.py +++ /dev/null @@ -1,469 +0,0 @@ -"""Contains the Command base classes that depend on PipSession. - -The classes in this module are in a separate module so the commands not -needing download / PackageFinder capability don't unnecessarily import the -PackageFinder machinery and all its vendored dependencies, etc. -""" - -import logging -import os -import sys -from functools import partial -from optparse import Values -from typing import Any, List, Optional, Tuple - -from pip._internal.cache import WheelCache -from pip._internal.cli import cmdoptions -from pip._internal.cli.base_command import Command -from pip._internal.cli.command_context import CommandContextMixIn -from pip._internal.exceptions import CommandError, PreviousBuildDirError -from pip._internal.index.collector import LinkCollector -from pip._internal.index.package_finder import PackageFinder -from pip._internal.models.selection_prefs import SelectionPreferences -from pip._internal.models.target_python import TargetPython -from pip._internal.network.session import PipSession -from pip._internal.operations.prepare import RequirementPreparer -from pip._internal.req.constructors import ( - install_req_from_editable, - install_req_from_line, - install_req_from_parsed_requirement, - install_req_from_req_string, -) -from pip._internal.req.req_file import parse_requirements -from pip._internal.req.req_install import InstallRequirement -from pip._internal.req.req_tracker import RequirementTracker -from pip._internal.resolution.base import BaseResolver -from pip._internal.self_outdated_check import pip_self_version_check -from pip._internal.utils.deprecation import deprecated -from pip._internal.utils.temp_dir import ( - TempDirectory, - TempDirectoryTypeRegistry, - tempdir_kinds, -) -from pip._internal.utils.virtualenv import running_under_virtualenv - -logger = logging.getLogger(__name__) - - -class SessionCommandMixin(CommandContextMixIn): - - """ - A class mixin for command classes needing _build_session(). - """ - - def __init__(self) -> None: - super().__init__() - self._session: Optional[PipSession] = None - - @classmethod - def _get_index_urls(cls, options: Values) -> Optional[List[str]]: - """Return a list of index urls from user-provided options.""" - index_urls = [] - if not getattr(options, "no_index", False): - url = getattr(options, "index_url", None) - if url: - index_urls.append(url) - urls = getattr(options, "extra_index_urls", None) - if urls: - index_urls.extend(urls) - # Return None rather than an empty list - return index_urls or None - - def get_default_session(self, options: Values) -> PipSession: - """Get a default-managed session.""" - if self._session is None: - self._session = self.enter_context(self._build_session(options)) - # there's no type annotation on requests.Session, so it's - # automatically ContextManager[Any] and self._session becomes Any, - # then https://github.com/python/mypy/issues/7696 kicks in - assert self._session is not None - return self._session - - def _build_session( - self, - options: Values, - retries: Optional[int] = None, - timeout: Optional[int] = None, - ) -> PipSession: - assert not options.cache_dir or os.path.isabs(options.cache_dir) - session = PipSession( - cache=( - os.path.join(options.cache_dir, "http") if options.cache_dir else None - ), - retries=retries if retries is not None else options.retries, - trusted_hosts=options.trusted_hosts, - index_urls=self._get_index_urls(options), - ) - - # Handle custom ca-bundles from the user - if options.cert: - session.verify = options.cert - - # Handle SSL client certificate - if options.client_cert: - session.cert = options.client_cert - - # Handle timeouts - if options.timeout or timeout: - session.timeout = timeout if timeout is not None else options.timeout - - # Handle configured proxies - if options.proxy: - session.proxies = { - "http": options.proxy, - "https": options.proxy, - } - - # Determine if we can prompt the user for authentication or not - session.auth.prompting = not options.no_input - - return session - - -class IndexGroupCommand(Command, SessionCommandMixin): - - """ - Abstract base class for commands with the index_group options. - - This also corresponds to the commands that permit the pip version check. - """ - - def handle_pip_version_check(self, options: Values) -> None: - """ - Do the pip version check if not disabled. - - This overrides the default behavior of not doing the check. - """ - # Make sure the index_group options are present. - assert hasattr(options, "no_index") - - if options.disable_pip_version_check or options.no_index: - return - - # Otherwise, check if we're using the latest version of pip available. - session = self._build_session( - options, retries=0, timeout=min(5, options.timeout) - ) - with session: - pip_self_version_check(session, options) - - -KEEPABLE_TEMPDIR_TYPES = [ - tempdir_kinds.BUILD_ENV, - tempdir_kinds.EPHEM_WHEEL_CACHE, - tempdir_kinds.REQ_BUILD, -] - - -def warn_if_run_as_root() -> None: - """Output a warning for sudo users on Unix. - - In a virtual environment, sudo pip still writes to virtualenv. - On Windows, users may run pip as Administrator without issues. - This warning only applies to Unix root users outside of virtualenv. - """ - if running_under_virtualenv(): - return - if not hasattr(os, "getuid"): - return - # On Windows, there are no "system managed" Python packages. Installing as - # Administrator via pip is the correct way of updating system environments. - # - # We choose sys.platform over utils.compat.WINDOWS here to enable Mypy platform - # checks: https://mypy.readthedocs.io/en/stable/common_issues.html - if sys.platform == "win32" or sys.platform == "cygwin": - return - - if os.getuid() != 0: - return - - logger.warning( - "Running pip as the 'root' user can result in broken permissions and " - "conflicting behaviour with the system package manager. " - "It is recommended to use a virtual environment instead: " - "https://pip.pypa.io/warnings/venv" - ) - - -def with_cleanup(func: Any) -> Any: - """Decorator for common logic related to managing temporary - directories. - """ - - def configure_tempdir_registry(registry: TempDirectoryTypeRegistry) -> None: - for t in KEEPABLE_TEMPDIR_TYPES: - registry.set_delete(t, False) - - def wrapper( - self: RequirementCommand, options: Values, args: List[Any] - ) -> Optional[int]: - assert self.tempdir_registry is not None - if options.no_clean: - configure_tempdir_registry(self.tempdir_registry) - - try: - return func(self, options, args) - except PreviousBuildDirError: - # This kind of conflict can occur when the user passes an explicit - # build directory with a pre-existing folder. In that case we do - # not want to accidentally remove it. - configure_tempdir_registry(self.tempdir_registry) - raise - - return wrapper - - -class RequirementCommand(IndexGroupCommand): - def __init__(self, *args: Any, **kw: Any) -> None: - super().__init__(*args, **kw) - - self.cmd_opts.add_option(cmdoptions.no_clean()) - - @staticmethod - def determine_resolver_variant(options: Values) -> str: - """Determines which resolver should be used, based on the given options.""" - if "legacy-resolver" in options.deprecated_features_enabled: - return "legacy" - - return "2020-resolver" - - @classmethod - def make_requirement_preparer( - cls, - temp_build_dir: TempDirectory, - options: Values, - req_tracker: RequirementTracker, - session: PipSession, - finder: PackageFinder, - use_user_site: bool, - download_dir: Optional[str] = None, - ) -> RequirementPreparer: - """ - Create a RequirementPreparer instance for the given parameters. - """ - temp_build_dir_path = temp_build_dir.path - assert temp_build_dir_path is not None - - resolver_variant = cls.determine_resolver_variant(options) - if resolver_variant == "2020-resolver": - lazy_wheel = "fast-deps" in options.features_enabled - if lazy_wheel: - logger.warning( - "pip is using lazily downloaded wheels using HTTP " - "range requests to obtain dependency information. " - "This experimental feature is enabled through " - "--use-feature=fast-deps and it is not ready for " - "production." - ) - else: - lazy_wheel = False - if "fast-deps" in options.features_enabled: - logger.warning( - "fast-deps has no effect when used with the legacy resolver." - ) - - in_tree_build = "out-of-tree-build" not in options.deprecated_features_enabled - if "in-tree-build" in options.features_enabled: - deprecated( - reason="In-tree builds are now the default.", - replacement="to remove the --use-feature=in-tree-build flag", - gone_in="22.1", - ) - if "out-of-tree-build" in options.deprecated_features_enabled: - deprecated( - reason="Out-of-tree builds are deprecated.", - replacement=None, - gone_in="22.1", - ) - - return RequirementPreparer( - build_dir=temp_build_dir_path, - src_dir=options.src_dir, - download_dir=download_dir, - build_isolation=options.build_isolation, - req_tracker=req_tracker, - session=session, - progress_bar=options.progress_bar, - finder=finder, - require_hashes=options.require_hashes, - use_user_site=use_user_site, - lazy_wheel=lazy_wheel, - in_tree_build=in_tree_build, - ) - - @classmethod - def make_resolver( - cls, - preparer: RequirementPreparer, - finder: PackageFinder, - options: Values, - wheel_cache: Optional[WheelCache] = None, - use_user_site: bool = False, - ignore_installed: bool = True, - ignore_requires_python: bool = False, - force_reinstall: bool = False, - upgrade_strategy: str = "to-satisfy-only", - use_pep517: Optional[bool] = None, - py_version_info: Optional[Tuple[int, ...]] = None, - ) -> BaseResolver: - """ - Create a Resolver instance for the given parameters. - """ - make_install_req = partial( - install_req_from_req_string, - isolated=options.isolated_mode, - use_pep517=use_pep517, - ) - resolver_variant = cls.determine_resolver_variant(options) - # The long import name and duplicated invocation is needed to convince - # Mypy into correctly typechecking. Otherwise it would complain the - # "Resolver" class being redefined. - if resolver_variant == "2020-resolver": - import pip._internal.resolution.resolvelib.resolver - - return pip._internal.resolution.resolvelib.resolver.Resolver( - preparer=preparer, - finder=finder, - wheel_cache=wheel_cache, - make_install_req=make_install_req, - use_user_site=use_user_site, - ignore_dependencies=options.ignore_dependencies, - ignore_installed=ignore_installed, - ignore_requires_python=ignore_requires_python, - force_reinstall=force_reinstall, - upgrade_strategy=upgrade_strategy, - py_version_info=py_version_info, - ) - import pip._internal.resolution.legacy.resolver - - return pip._internal.resolution.legacy.resolver.Resolver( - preparer=preparer, - finder=finder, - wheel_cache=wheel_cache, - make_install_req=make_install_req, - use_user_site=use_user_site, - ignore_dependencies=options.ignore_dependencies, - ignore_installed=ignore_installed, - ignore_requires_python=ignore_requires_python, - force_reinstall=force_reinstall, - upgrade_strategy=upgrade_strategy, - py_version_info=py_version_info, - ) - - def get_requirements( - self, - args: List[str], - options: Values, - finder: PackageFinder, - session: PipSession, - ) -> List[InstallRequirement]: - """ - Parse command-line arguments into the corresponding requirements. - """ - requirements: List[InstallRequirement] = [] - for filename in options.constraints: - for parsed_req in parse_requirements( - filename, - constraint=True, - finder=finder, - options=options, - session=session, - ): - req_to_add = install_req_from_parsed_requirement( - parsed_req, - isolated=options.isolated_mode, - user_supplied=False, - ) - requirements.append(req_to_add) - - for req in args: - req_to_add = install_req_from_line( - req, - None, - isolated=options.isolated_mode, - use_pep517=options.use_pep517, - user_supplied=True, - ) - requirements.append(req_to_add) - - for req in options.editables: - req_to_add = install_req_from_editable( - req, - user_supplied=True, - isolated=options.isolated_mode, - use_pep517=options.use_pep517, - ) - requirements.append(req_to_add) - - # NOTE: options.require_hashes may be set if --require-hashes is True - for filename in options.requirements: - for parsed_req in parse_requirements( - filename, finder=finder, options=options, session=session - ): - req_to_add = install_req_from_parsed_requirement( - parsed_req, - isolated=options.isolated_mode, - use_pep517=options.use_pep517, - user_supplied=True, - ) - requirements.append(req_to_add) - - # If any requirement has hash options, enable hash checking. - if any(req.has_hash_options for req in requirements): - options.require_hashes = True - - if not (args or options.editables or options.requirements): - opts = {"name": self.name} - if options.find_links: - raise CommandError( - "You must give at least one requirement to {name} " - '(maybe you meant "pip {name} {links}"?)'.format( - **dict(opts, links=" ".join(options.find_links)) - ) - ) - else: - raise CommandError( - "You must give at least one requirement to {name} " - '(see "pip help {name}")'.format(**opts) - ) - - return requirements - - @staticmethod - def trace_basic_info(finder: PackageFinder) -> None: - """ - Trace basic information about the provided objects. - """ - # Display where finder is looking for packages - search_scope = finder.search_scope - locations = search_scope.get_formatted_locations() - if locations: - logger.info(locations) - - def _build_package_finder( - self, - options: Values, - session: PipSession, - target_python: Optional[TargetPython] = None, - ignore_requires_python: Optional[bool] = None, - ) -> PackageFinder: - """ - Create a package finder appropriate to this requirement command. - - :param ignore_requires_python: Whether to ignore incompatible - "Requires-Python" values in links. Defaults to False. - """ - link_collector = LinkCollector.create(session, options=options) - selection_prefs = SelectionPreferences( - allow_yanked=True, - format_control=options.format_control, - allow_all_prereleases=options.pre, - prefer_binary=options.prefer_binary, - ignore_requires_python=ignore_requires_python, - ) - - return PackageFinder.create( - link_collector=link_collector, - selection_prefs=selection_prefs, - target_python=target_python, - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.py deleted file mode 100644 index 1e313e1..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.py +++ /dev/null @@ -1,157 +0,0 @@ -import contextlib -import itertools -import logging -import sys -import time -from typing import IO, Iterator - -from pip._vendor.progress import HIDE_CURSOR, SHOW_CURSOR - -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.logging import get_indentation - -logger = logging.getLogger(__name__) - - -class SpinnerInterface: - def spin(self) -> None: - raise NotImplementedError() - - def finish(self, final_status: str) -> None: - raise NotImplementedError() - - -class InteractiveSpinner(SpinnerInterface): - def __init__( - self, - message: str, - file: IO[str] = None, - spin_chars: str = "-\\|/", - # Empirically, 8 updates/second looks nice - min_update_interval_seconds: float = 0.125, - ): - self._message = message - if file is None: - file = sys.stdout - self._file = file - self._rate_limiter = RateLimiter(min_update_interval_seconds) - self._finished = False - - self._spin_cycle = itertools.cycle(spin_chars) - - self._file.write(" " * get_indentation() + self._message + " ... ") - self._width = 0 - - def _write(self, status: str) -> None: - assert not self._finished - # Erase what we wrote before by backspacing to the beginning, writing - # spaces to overwrite the old text, and then backspacing again - backup = "\b" * self._width - self._file.write(backup + " " * self._width + backup) - # Now we have a blank slate to add our status - self._file.write(status) - self._width = len(status) - self._file.flush() - self._rate_limiter.reset() - - def spin(self) -> None: - if self._finished: - return - if not self._rate_limiter.ready(): - return - self._write(next(self._spin_cycle)) - - def finish(self, final_status: str) -> None: - if self._finished: - return - self._write(final_status) - self._file.write("\n") - self._file.flush() - self._finished = True - - -# Used for dumb terminals, non-interactive installs (no tty), etc. -# We still print updates occasionally (once every 60 seconds by default) to -# act as a keep-alive for systems like Travis-CI that take lack-of-output as -# an indication that a task has frozen. -class NonInteractiveSpinner(SpinnerInterface): - def __init__(self, message: str, min_update_interval_seconds: float = 60.0) -> None: - self._message = message - self._finished = False - self._rate_limiter = RateLimiter(min_update_interval_seconds) - self._update("started") - - def _update(self, status: str) -> None: - assert not self._finished - self._rate_limiter.reset() - logger.info("%s: %s", self._message, status) - - def spin(self) -> None: - if self._finished: - return - if not self._rate_limiter.ready(): - return - self._update("still running...") - - def finish(self, final_status: str) -> None: - if self._finished: - return - self._update(f"finished with status '{final_status}'") - self._finished = True - - -class RateLimiter: - def __init__(self, min_update_interval_seconds: float) -> None: - self._min_update_interval_seconds = min_update_interval_seconds - self._last_update: float = 0 - - def ready(self) -> bool: - now = time.time() - delta = now - self._last_update - return delta >= self._min_update_interval_seconds - - def reset(self) -> None: - self._last_update = time.time() - - -@contextlib.contextmanager -def open_spinner(message: str) -> Iterator[SpinnerInterface]: - # Interactive spinner goes directly to sys.stdout rather than being routed - # through the logging system, but it acts like it has level INFO, - # i.e. it's only displayed if we're at level INFO or better. - # Non-interactive spinner goes through the logging system, so it is always - # in sync with logging configuration. - if sys.stdout.isatty() and logger.getEffectiveLevel() <= logging.INFO: - spinner: SpinnerInterface = InteractiveSpinner(message) - else: - spinner = NonInteractiveSpinner(message) - try: - with hidden_cursor(sys.stdout): - yield spinner - except KeyboardInterrupt: - spinner.finish("canceled") - raise - except Exception: - spinner.finish("error") - raise - else: - spinner.finish("done") - - -@contextlib.contextmanager -def hidden_cursor(file: IO[str]) -> Iterator[None]: - # The Windows terminal does not support the hide/show cursor ANSI codes, - # even via colorama. So don't even try. - if WINDOWS: - yield - # We don't want to clutter the output with control characters if we're - # writing to a file, or if the user is running with --quiet. - # See https://github.com/pypa/pip/issues/3418 - elif not file.isatty() or logger.getEffectiveLevel() > logging.INFO: - yield - else: - file.write(HIDE_CURSOR) - try: - yield - finally: - file.write(SHOW_CURSOR) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/cli/status_codes.py b/.venv/lib/python3.9/site-packages/pip/_internal/cli/status_codes.py deleted file mode 100644 index 5e29502..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/cli/status_codes.py +++ /dev/null @@ -1,6 +0,0 @@ -SUCCESS = 0 -ERROR = 1 -UNKNOWN_ERROR = 2 -VIRTUALENV_NOT_FOUND = 3 -PREVIOUS_BUILD_DIR_ERROR = 4 -NO_MATCHES_FOUND = 23 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__init__.py deleted file mode 100644 index c72f24f..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__init__.py +++ /dev/null @@ -1,127 +0,0 @@ -""" -Package containing all pip commands -""" - -import importlib -from collections import namedtuple -from typing import Any, Dict, Optional - -from pip._internal.cli.base_command import Command - -CommandInfo = namedtuple("CommandInfo", "module_path, class_name, summary") - -# This dictionary does a bunch of heavy lifting for help output: -# - Enables avoiding additional (costly) imports for presenting `--help`. -# - The ordering matters for help display. -# -# Even though the module path starts with the same "pip._internal.commands" -# prefix, the full path makes testing easier (specifically when modifying -# `commands_dict` in test setup / teardown). -commands_dict: Dict[str, CommandInfo] = { - "install": CommandInfo( - "pip._internal.commands.install", - "InstallCommand", - "Install packages.", - ), - "download": CommandInfo( - "pip._internal.commands.download", - "DownloadCommand", - "Download packages.", - ), - "uninstall": CommandInfo( - "pip._internal.commands.uninstall", - "UninstallCommand", - "Uninstall packages.", - ), - "freeze": CommandInfo( - "pip._internal.commands.freeze", - "FreezeCommand", - "Output installed packages in requirements format.", - ), - "list": CommandInfo( - "pip._internal.commands.list", - "ListCommand", - "List installed packages.", - ), - "show": CommandInfo( - "pip._internal.commands.show", - "ShowCommand", - "Show information about installed packages.", - ), - "check": CommandInfo( - "pip._internal.commands.check", - "CheckCommand", - "Verify installed packages have compatible dependencies.", - ), - "config": CommandInfo( - "pip._internal.commands.configuration", - "ConfigurationCommand", - "Manage local and global configuration.", - ), - "search": CommandInfo( - "pip._internal.commands.search", - "SearchCommand", - "Search PyPI for packages.", - ), - "cache": CommandInfo( - "pip._internal.commands.cache", - "CacheCommand", - "Inspect and manage pip's wheel cache.", - ), - "index": CommandInfo( - "pip._internal.commands.index", - "IndexCommand", - "Inspect information available from package indexes.", - ), - "wheel": CommandInfo( - "pip._internal.commands.wheel", - "WheelCommand", - "Build wheels from your requirements.", - ), - "hash": CommandInfo( - "pip._internal.commands.hash", - "HashCommand", - "Compute hashes of package archives.", - ), - "completion": CommandInfo( - "pip._internal.commands.completion", - "CompletionCommand", - "A helper command used for command completion.", - ), - "debug": CommandInfo( - "pip._internal.commands.debug", - "DebugCommand", - "Show information useful for debugging.", - ), - "help": CommandInfo( - "pip._internal.commands.help", - "HelpCommand", - "Show help for commands.", - ), -} - - -def create_command(name: str, **kwargs: Any) -> Command: - """ - Create an instance of the Command class with the given name. - """ - module_path, class_name, summary = commands_dict[name] - module = importlib.import_module(module_path) - command_class = getattr(module, class_name) - command = command_class(name=name, summary=summary, **kwargs) - - return command - - -def get_similar_commands(name: str) -> Optional[str]: - """Command name auto-correct.""" - from difflib import get_close_matches - - name = name.lower() - - close_commands = get_close_matches(name, commands_dict.keys()) - - if close_commands: - return close_commands[0] - else: - return None diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index a84c2c43e067b7b49e730f9de2d41fe54cee4070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3060 zcmd5;NpBlB6rN3swb@SGB+fc%oJEN}YMN$kk|uQ!)M%RoaMJ=pfx&nlrI~mZm89%Q zkWTKo=N9lG0eb1JhyH^83|@QcUno$Zj~tETv{ufQFy!MK^5e(vJ(AlF=uKmFc( z@nb{N{*aCRzr)ygfDc>JHSM_uT3Z7hj7V?mSeua%n{88jGSaOUi1(Ww@fOWmo}6SuOYgt}5$8xCS37>pI+k zn>!}l+MR1xNs-h@rDH5=qz}?WYO%!X!+(wiiWqFYKW!j=cm}prlMd}Tg?>cbp2ve_+mAfPT#2@9vp!Bk2gB1i zr{jhRClrC4e0C>H7)MH?v6dMV)ZzT3ZTGSzFlTsX3IwFvNtAjZW*<$g9OO{$*oPt) ze-M#As*_Qfd!Cy)&fz`JKA=-mfI5_rArbY*s?H&@ME%Z0Q7VW7Npyvx{hUzaalGHBbyz=ZF?K(frOpm z$tleIfcTrDwkoR}_vY7xhMmCy?CikXlBpSE)`S}ov4QkR0wnQ6g5h48Hc6Uv!fv19 zpfnK+tNWYzq!+&Q5}Ef=>U)umX>NC;bOTM?2yX^E!)Y;O#G`&7>g%e`Q5UnO{cP}T zO-5-igzr$qLrqW-S>-V2F|~Wd=ZY8ZK}i(XdXd@N0U^jycAgFyqC_u6ZB14=wcy?+A#CS%j@Xt$}%+8@#9@+tkdW7ajoZV-* z-DJG{?CerGmkpY(0+5YiXqU5`u zAaj~?qLiOU<-G%L=FK5hoE$TjIt?r)_j3XB2KQevOL9@1WN|?ylqh70Q^>+=shCty zkzC3`wqi??5%q~w%musw@H(*MaW0CR+aB#QQKW?TY2xEuy!R`kRlw(SeApcp$q@(x`-Ymoa=?vGKP` ziHAwzCE4+j_(Wz34~RVxFuQB)?T`n`-NnpFY{}J808N87k%}ly?xChdFUj^y823`j zqi{piGtZ*jtSDNGC&?oeP~$?y@LM*gWg2nL?(I#?YDwz zqQk;x6(4p33-!^Z#rjy+F?6qt*V7EsmyI7DDurS7Bk>-*xj&E2E3(cq*WuswOdfA}&uq`*C>q6?g zE?vR4sQPIXA!EFF7&WA)$Ok>#@>J?XrBGCE0rBszohWoRJY3d<7%j@4C0VF!G#RI2 z)^)ukNiq2(JWeSCqj>CFhD;=?)>6KkW!-%#9{UxGqE*&w7}1(hsTjKY|7{fhm)37b IzB*L<2g6UzIRF3v diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/cache.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/cache.cpython-39.pyc deleted file mode 100644 index 86d13417c8089f0bc54c2d2585e36b29833f7eaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6187 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 Q+w*l_JJOC!U-yiE0aui;IsgCw diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/completion.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/completion.cpython-39.pyc deleted file mode 100644 index bfb1ee0fe34b7304959dd14c323e0e9c9f7e7e97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3149 zcmai0-ESMk7T<5L?IbN97YY~9+z_NJXl(-06`-b~xVfmhrHSGe#L{ZD*%>=)*1Ox8 zaoRZXQ~Fw@`-s$s=`%ws!W+nKS2{`JIoQXmPQo!SBbP zz1|OXP5T8W^FIqFpTi>x7^p_|R13y$J-u`jwzk(st_h zt3kD-owU}k2X&w;!2)$@mDXtexfv{esnG?x_*A2dta4-qOH^-b-qNpNRlDoy%K17< z2TTBE-AROmccqp0`%y-bY~OFSHrj0<-7b@1!Sn9$R_$F?)8-!{o*}ax3|KZ_wQ|nxZ%#m zy^ZxXva&`#y3wR;ubB+#Q*OL5glBNXxK@_?rHup1b7Y|LIi_QrBCLv zjjTdAu}0D)!-#rhdHM1!WsZ^63(nq;>$|mwGv!#br}Z;S;YsZE`yR$w!SRhavR z#;UaP+{A7N+!{5Zv(?l~t!YC73Zpdq_$Gl~RWOdt3OPjPWQUP~V3c(78GCXx=w*$2 zWq0IE4tN$r-b{Z;yYRH&5f5NE)OuP^r#dyzOZ1Ueo;ms{AA7M0-Poq}GkoaEz+VFX zl_}piHtAK=cVb{yhx5F2cj)*&VmCDW9aR@H=L~W+6OvcJxU$POJbZhj522j-4JCCDJLrXhqBAP%A!n2Wg#p>+xHu{A5z3jR=kUHhN$$O02OB$!_Y-ZPZZ_>eDxWH}!X*I=q@*HgH(V8CwNhxu>tXhZKj z(tMCLu9qK2aRZ3cJqpYy3qQGF!x`UON;|`A8{6BP+n^w<8d%vW{GaP%dhhX1$_O0TZmFwCMp z3qw^4!+uT&DbfpJ_-GKNla)#s(mV$CD@ixQuEp7-K>}|qO#TM?gQ>tV$>EfeD-%%Q zP2|nIEh%)88+CMUEv>~#CtF(7wTx-RZzQfQAGD$_FpFj>_MEUzTEaQM)UvwPh fULWIj0~=%+23L3W1%1JQ2S&>_sz%-Tzw_>&erZG? diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-39.pyc deleted file mode 100644 index 94e33d4e2f0587d7bfbd4e5bcb2577690be18c0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8330 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 PCSZ4F9dd%pM$!CVaK?5` diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/debug.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/debug.cpython-39.pyc deleted file mode 100644 index 6320aedd00426b200051f8cec6e8b0b0f35f3e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6665 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 LLZj03noIu&V8hBo diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/download.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/download.cpython-39.pyc deleted file mode 100644 index fa72fe8f24cd6b39f5692ae1853a127efdd918a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3971 zcmbVP&2QVt73Y^oilXGt*m1I15CM{|fLiMAc3ZS?(*Q|Zv<-qqz1;)1DM53_78QPF zhO{F?y41NE=(WHe>`Q_E8~rO5bM2}39@^~(`reSTWf|Q=DR4M%-presH}ChGr?A^~ z6nOsd=l=ME4Mq723X6{c!c%zpAE6)$Q4__lzpAf-tR-5i`?`v4dSaw4za{HNVy2dF z$$BfX)3)E1bu)3&j^9aL-<7hJbkm;SlXW{;Nmu<AJt3ZulGNroSoMoa9cr zNr3ZjIDSyjMD zYya2Jp8aHhAFA6pm|YJEN)|@1DeLRPp&73j4M@yHFUwgPCh;i^im)7kMHZJd$g8rb zaAn=kXj(jnX`?b{lL)u4__RQH3NPP-f-2~IUn8oo6U{e>PK+;A(jw+N!*5ZOTGXcP z9fdl?`cfx0X}>ehRKG)XaE~Kap64f7l82<(UHC#(6vu;SuJ8)jLU=^EcgXVehmKV4 zdY?`{{kiu6_`}P~5oKPS5&9PV>s36?j=TjYc)Xxdd>B*42hHHmpY3}E%g3-muVTqn z`-?mZlPe9lN_rrsOC53s_S3wi9?vTlQ7>fCC_ct+a)Kf*yfERp$E%{qS;;-p>=KuT z+wdMPED&}UCzL<@ws$g$qY=)391|){g_%b~KJiY%iC2O_xs{0*Lf1T@9?gzpmS-3q zs6L=qGf`4+HoQM~sOLQb%SYZ9P0+pa_7)a#?WHH)7mdqzrBipW`VR)R&D)lC*$rd$ zj{YA*d&d#KIsiDDC*J>_bT7GaTo}sV*u6O=Jn`XGXNgTl%Zg*Eb#5&PU$74X9*dIUWI^*g0D-U501Qk$vxy|_!-Q}t4leySzx4Kh&> z_%BbjU2oB(er;VR-9^P6Q+kTnbjXa2HU+ zg_Y$2p#>Mcqa;5F6SRPoF4~|tfE}@k=;T>4nG4;5(L>7SqRv?)bZ8U3#%?eQ`G~?i zh*m~94-R0>>u9cu6B5KcPo$rOQ*mH$T72^1_eB@<3*uIM1SC)AmjQ3C6rtr@m{G;R zGhzp~dE>^pTKt;4jq0rgM=Y-j(UD}(2xbv7PMO$cN3ikX;1~#Qn8XLe`bPYC z@Pi?Tt7>E!+DGh3h@5*Y4S&i=BH37>gqTBG*i_Ueuk?3 z-R!uUp~CM!Myscu-k--@b8!t8W`XP0numb_H#%o4Fk__Syv@^tZyR1oFOMMti8@sS zeK`)Eu0AgX?MI$luBV=LG3Qo zRQ|VLD8Eyu?TejhS6Xl{?x7CrZ@!wkzgOAA@;+%3=il^H2 z@SLzXga|-QbZ^8kdyGnZ9szI`CZP!}sW4tcK#J8GrvOOErXa5%KkZwhS3<_q;0vHp zPtXBC&NC?X30gG|F{Bw=MWKsugO>#ulKqyj0mXm|(EkYZ(nh_Qm0}V=XyalbRu6MX zv9_WSja~;$frB3z|(!zjh(h zfE@!Lmh^4OFoanb2id?sGA9KG-%LWe*pY0qK$`&Y+Eb$2sDRVJL!wvXeC{o=iU}+Q z0_1TdT_-HqlI**Kvzo^;s}?Q?M&yv=k>Fq=j4Vv4*yiCe4U#x}4Xq243o|SVni1xr z1!J7Y8MC3<@38@V>T~-p*6_^P_pp!$is`OsLwGbdkpV_I`!TlK^HqtJg_*#urEunv z2uG!ZQW9ZZe27DJR%O403jZw>if-zr=4h_!KxqTr)HG!L%d}igQzb3^+cZ~!imnL? z>i;mEc?(d~KTX@wdeEn*I?ZdUtJ>+tGHJoweOK5)fF271;RHdNlPbZw8w78vFljVa z5Rg2A=2pc4HS8l;EVHn{Oo<`42_1q>=)lJ8H`s=Zzfjs5yc}Z?_U9T_@3E%J z_WpfgCHc`2B+2YspcXceXnoP(9KtLo1?q4ve+`&_aK-$CD2ZkC`|sUqA6);>s^j~? z?JjUG5YzJi6*IxS+?ja)c1HkRS#jtK8HJ1*v1AP_4bWQi&r2di+`Vb2Dr5N1k;Xid zP^^(Dqj72Vbw|lf$Vw7uZGhJc@Dk9>E9n(<83^dv1#e5|%K)?Y>LY!Ec@Dn|g{|7E RtGWTOb#nURSUZ&53=BU|$}buu?{HSbU_^CMsLE^TB% z6lmU~&8!u*H1E@Pwh%2KV`SjQuPC~3&%gn0J~wca_|L3p5u;6`)A|c`H|}?kbRQ+O zA{;pTo0JQ92ZIb3rAUihNxh9C%aR-`cJtxJ#+}VgVBKv-$d~}viFx z5O%Tm+>Tu05uY^H3=&}fg@qe90BIB3aI&Us-_^cN{2uQIAv_N%QC1>Mb1o7}2@cC- zu$v4C2T{n#lPYB-Be~$=cEPel^a8zXrj;-fQaBf^gat`BNI2<&HInmGq z0|x&c$f2=g>>!M=i7jjo4eY4E9D8W`#aAK0P29q5yl@QQnXI^g7qxT=q)sh8LBc$- zPK{GE(^|$Wpmp)Y#_yas!aYT&2(KOk94A&T;mh!S?M$X^crzRRNdsR|x~Ce>kd&+U z$7Yv}+uiP5sAX$z!lj#(CCRb0w^K^SM-Mp(#fa1aRWVnSAw>Gkbb)pV_zY9X-2kwv zlL#ow!y(BDOGKIv!$POO7yd9xc~~a`QkaKZB&;~3Evu+VORyx;jPPE^kv1k=fKvli z2-3r3I{_W(Wke)<36u7S&=O8X$6mKfi$OxAQ@;W(3PxhVDsp%H@T=__FncKzRYFO= z2Pa8HI7)apq{UW3!(=cZoUezt2=hWre4Tux2MT3xV7Aw>*)rgOttfI)kyRjLx7&r& zfNzS9*B|8cU}|j!E7h0F&O>>2{$oWKb7&4E%WgcI^<~O-mJi$jF?TIy*Y9 zH^QHe#^!q1vF6;;9xZpfWPd;_Ou7W8BH5xu0{FEgo=V2o?$nZSDw*yRZnGkrCXcB) z=mgS-{uDzFxeOAlImi%G9Yi)%iN<9jM$n;j9ZP$sNOS4mzVj&l?(2J-vZYlfE=adb zn2OknDrF{=Suhq4Sy7eH+-y$h_HPFJ5RAVn`=cTw{jHRbo+dklh`s=b^mDQ;VpzOK zSSZq`v)==#?)9NH_R9k?D)LWzU-VU|yVDr{gAXvgH253LhR*t)x*9fw_4 zbNJ#YiEvN6L+CER`5!sT-aGWSvs__c}e%HCy&H3 zbQkM>$CJ&uW+DS!iE#l1AR7wgHR~v3aOtPKpb2zq$S**fT?MBl3OXy&f}4u@FlASi z%&kfcdhC5Q@h6z!HPluIBQn^HXMmePhk0uC1w}3?qS7X9jmY+N+c+zr=j&Z9xB{dL zcK|dfxEmSZgSoJz7tey zm?pAkKj2>mjb$`mI-hM=-Dycbj`JiVaV&#a`BzcJx8nE-G_A=OFOG3B0I^eXxH@H% z7Q+~>dXi+EeGGduQxOFYh@@cB0&p{RqtCglomYOd77&FduKqCj$aZbhHWxnA^3D?b z9Hi0*@YN-%OiNcBl+e!g7SR&aPj6N~y#Y<@%)I+Qd2b7D>v&RNOaWHDMG3mBs5q!W z=hsPy-aBupDD`y$|BHHcjp}5}E9bQ;ky74+%^>MDmK1#SsooX_>EEoweM_}BuG+ef NT97>$_0ROJ{{W4O@Ie3o diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/hash.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/hash.cpython-39.pyc deleted file mode 100644 index 2565cbd5889397031458a708ad00908cf7b019c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2142 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/install.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/install.cpython-39.pyc deleted file mode 100644 index 10d0b3aa3c35773c4ebb219d53d3af5e36495dae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17694 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 E4=_D0*8l(j diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/list.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/list.cpython-39.pyc deleted file mode 100644 index 4cc555eff5c2e03b299979ce326c6251acd3b78a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10158 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 GrT+#CR$bo! diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/search.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/search.cpython-39.pyc deleted file mode 100644 index 9ea181436b02ac25c712cad297544409bfec30b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5332 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/show.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/show.cpython-39.pyc deleted file mode 100644 index 1531f40cf288ed0bad1725f9fcd5e12d6440aa46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8477 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 bs|3kV@v&qT?b!>n^RJ#ey`FuB{Ga~?p|X#@ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-39.pyc deleted file mode 100644 index 638bb70c6daa8724f03d5aa2924a60282d78a1e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3110 zcmZuzOONBm5#~!IMM?AA^{(T@X|J=16<89G1bJ*0hLK$(Fk&wZOg2Cm7#t3}C2^Lo z>28j81kEMu>->Nq4lr|b{)7)Xra2{AOF2)82`Y@=GB79`*4ddfKY>)nGxdC%FNsfEfdFfX6H`m=&_TvayNAKxRrUi zANqRiX6-x(gS-=V^xVt3c`xkgv7c?_+u^nzx3ismH{8|ZAlu9L!~OhLcuUVa+3ozb z@HNw5#^oJ$_sR@k|FuE8wD*}od(3CS3n%;*H4lvb)<3~o<4NCC?(gEPW&%deN2!qT z+)d)5EYc*-(m9KYIA_509+i0>7qoAw{R1XMS{6&r$LaI5Q2Vo(7g0KncwI!XhB+SK{nq%G=x=7cTgGLQMM8>~&e&u!|{HgE%KgKq=1^R!r+y7W=}E7LFn z0@vydsp8~WJYixO=oertNd<|IGDc)c>T3-oFNGvab&RgX$Zv{rRuJ|)VHIu+WI21# zC>xMZYR(9SfYvh2#7b&I(JYlya(Gys$!S>-!DL+xtF!9`hllTy*)&b2+BiZo7N0V5 z#HQdnQj{cTGN!SN(N@YN<2ghKBw|U%X~qPZF)(0d_E4)Ckb{J$l_WDBR~6%8y?`8@ zeS` zr2x`n`^nrI@Of`A*sw-*Hzq>4=$?Wq2Yop|UMCIUhsY^g$1{TvLsq1PW>3;nR*+3q zdY3~&emjNaYWzh2-w;Vs3lPlfOr{m)T$)2J_FKxKOh~XG!K6|iW#bsuC=Vlk8gu1L zSysUo&gQMb;EV}nBMF2oIg2E(+5AV3%i;%;#Nrtlmz*SJF;01|(MQVhMru=*F`c@@ zzRmZ+!Tc7IJ4n#^eMk98P9v}zz7SJALaSU2e6IE(!5Ejg0HHnMWnDo9a0JW7e>M1b zLC3$vXj7;VvBM;P{34&^XzXtxK0$ixwvC$sVlsK=#48C;f%D zFc&tpFKpm^|J;}Dg?~fa;SFtvCr=iR_(BHM0WjEq2IwrG?q6Cj%s-m4L%oG_YEb{e z1mHNA-77A-EX!cW4LZe}H ze(+&&3XP0zg5m+W&q+EdAYmyPXyB}Z2idCo9MshcdWay{|6Y*>kXRhUsXWm%!ubz> zU)F#msM82Q0yPlICCo}Fi5p<|^_2}%u)C)_)md6huz58Y zuv9m$Wf?7Dq&&#jqf)T`zS^HK87%<{xvaY~@1SYDYX?N2ktqjv!Lhw5H!CL-#+8Q+ z8$QH$fXgv&cozv4JPrpPSP71UlYwfloWt)Tzug#+$}{Dnw^GSH6!L-e1O6tC(Lelc zB=>=YyWj;8!6w$K-UYt0fv&Vauu5$Zg3~P^x8WA(RNr(0$Jx50x&1ekharT}DIcmqQwdSIa^+ct5!D}g z0}^N$K{2BxA2ziM-VOC}pvi5DlCtLNMuP=g_t=3?z(a~4m zpbd_DvKFuwI*QH?b@x?m>$8haJGJ}jYxs~(%$vG_KLj*@7wZJNj?gKuv-jo)^lpcF zDv~Cp+W?r4bpG?7q2&W4=<5yt>u?a@DgR*;-}kT=3Cw-p?3!H*e&!C2;J4#+t-$_2 Dvo@DK diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-39.pyc deleted file mode 100644 index 6ff384efd3b357b7cf5134a1dce8f6a0094a3248..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4838 zcmai2&2JmW72jPhm*nz8lx0iuXEv!Fhp9!T=tmO6HQYFHkswHcI*k#g>0-qhi7V{~ zJu{Rofy^Pw)qt-Bib6j2-ct`f^qf93f& zpPWt4_0O4lJy}iH`fKTWf8EfHUulU-O6KSn!l*>TaH!+gyd>L~y7?G}z?=^Z7iJW5Gif3*E|ckw!^;z{63bh8WoVkf)=!v7CX* z#Xi`}o8vfP`idOpD25|?kyoG{WWMNp>?w6R;cUg(K zf3R7Zd0)8wGWU3eS9$Hc#eG)!Ly1*c?F;wN?$=ofdi8aq&|Wc9^k>_$`~c5ew6MVR z1(6sG<2^0|tSs2i$0AtRybPezfbkK}7|#YVmtEgTD8|O<4`^R%V+18d+nl7Nk-A~V z-%^hv!2>oH)X4X^*bm~uOx@rf zR+#40%~cd9@XPIioGn@ zA44TqN&ENdsKdAJ+l{R z?-X4*MORPJwNtczimsoc8>i^zDY|uvUOGj$PtnUKGeFh0FOuvjxygODZA2k#e9V_GE~9KL=F?YD1`hvOvE*kavU~%e5pV75T9${isxJY_97sOq z_YSVTooCloP;>?HRsmqeiK8{_0o57i66fGw+KUDhZp0c0f#7T%ls7g;f**YRZZ=59 zjKj(KhTsS|5-?}ba*rqZh=LMLLZ@GLgSYnQ`@9hlfaF=SkHeQS86XI4Cj5lAQxX?x zw&N)Ud4K1;t|Iz{IQ&xk5i>Q&)=n<92cH@Y6#&K2t+86xajbNJ-8_FMI1@a>lmgCvZ?B_bpf4q9z{*K=Qr}MQ}1=qaA0qwUP*T(O^ zZnLEsiRaGnM1Sm(osviQBr=Dt{wb?*kO91|) zG_9bwHG$-b3yJQu3NTulK+eRQl+Xrw%w^>#m1zwDdus#M9PurihGr#!0X1!)TwI5zp*C$JdHuHB&SixV^E3AHKe{QP|V7u{w zE*m`l5XScykV|px0&1CV7iSNUfm|BN8oSr2=$1lWJ3|V>m^a}Ix{gyh&x~~iSrEaT z_6X2$_8KgIlqGq@Odx0yir^I?9gvQvs{kULQZB?>kTnx%mJ|*s(HE~$^Hmf`t5?x5 z*bU`)G|GkItVpsX@cAAs#4B)IY|xM{ii0A%rO07Kn!NTJ5*=iWoZSqrNdu<`FWoZ@ z!EyGLXGl(G38on-JFgaidZAdtEDxQjqEMAyq3gmd3IQhyJ)E2I%rd;NP>Y~@oUWNI z7I%muS;kEuQzB19llHJeMT0n-h#*iJ^&*cHbOuF>I;sFtbHjnbp1-U}ecr(10w@Eq z3T5l&tP5xlrJX2Qx9N(*0md>O0I{}mT>&~9u2*P24jp?$q3qdguXao>eO z7A6yI!yk?4!XTDt#pkIwwvKjbkX|zRA@q_I*C*}C;aJ6qb_Y42vGS|?=8~qpB;VeK zLsf7q$Y4_KW>Ly@DdCx@kzmRLJImrHR42z2H>vmq6~?#7N5mZzx^|pLXcsG%;vH(O z&Nr%;7PbLHD%~WmP|bp*E`iibMXZwJ0R;i5q*XMKbKzzvwara5DT>!=hLRX(92NN( zh2{A8HS88%d>zL&aQ}_x5nRuK-vMv~`u&p@0Qpy5&39VhYGF*nuG)=K!SC6=?SJi8 zs`jc)63-%F&`7-BxaF(huQ~_q2a5p!OX@UqH4I6cVW|BuOmjAdF+$x4!-u$m%z7$e zh-(v?%VP;Z5N}`)qCy2_;ez4>g1!>Egh(fLsg0uPLP1Ip6hkPTlJrMM)plEMrFGM> zO?&4hT_H2Wyy6Nme}Y0+5tWKaP7`TQ?T?7TOt^y3+C2`f-2yY{aP^l@^(1j|f-iro z9hbs~^DDUUXj_?upTo{2vm@FH0;KG{Dt874B5&EP|j3iNmI z%>HXIXZ`dvbUtJ^jpe|=gFy>@>G`D;JO;1{stsCPe4eGiS>v_<0dqvnp{)T*-Z!UB tB&3etQ9*WFu%$7r@#^ZW!eMSxYAOR1Rk$Ra5-x}rE=c9P)^_~T{{W_kpauW{ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/cache.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/cache.py deleted file mode 100644 index f1a489d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/cache.py +++ /dev/null @@ -1,223 +0,0 @@ -import os -import textwrap -from optparse import Values -from typing import Any, List - -import pip._internal.utils.filesystem as filesystem -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import ERROR, SUCCESS -from pip._internal.exceptions import CommandError, PipError -from pip._internal.utils.logging import getLogger - -logger = getLogger(__name__) - - -class CacheCommand(Command): - """ - Inspect and manage pip's wheel cache. - - Subcommands: - - - dir: Show the cache directory. - - info: Show information about the cache. - - list: List filenames of packages stored in the cache. - - remove: Remove one or more package from the cache. - - purge: Remove all items from the cache. - - ```` can be a glob expression or a package name. - """ - - ignore_require_venv = True - usage = """ - %prog dir - %prog info - %prog list [] [--format=[human, abspath]] - %prog remove - %prog purge - """ - - def add_options(self) -> None: - - self.cmd_opts.add_option( - "--format", - action="store", - dest="list_format", - default="human", - choices=("human", "abspath"), - help="Select the output format among: human (default) or abspath", - ) - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options: Values, args: List[str]) -> int: - handlers = { - "dir": self.get_cache_dir, - "info": self.get_cache_info, - "list": self.list_cache_items, - "remove": self.remove_cache_items, - "purge": self.purge_cache, - } - - if not options.cache_dir: - logger.error("pip cache commands can not function since cache is disabled.") - return ERROR - - # Determine action - if not args or args[0] not in handlers: - logger.error( - "Need an action (%s) to perform.", - ", ".join(sorted(handlers)), - ) - return ERROR - - action = args[0] - - # Error handling happens here, not in the action-handlers. - try: - handlers[action](options, args[1:]) - except PipError as e: - logger.error(e.args[0]) - return ERROR - - return SUCCESS - - def get_cache_dir(self, options: Values, args: List[Any]) -> None: - if args: - raise CommandError("Too many arguments") - - logger.info(options.cache_dir) - - def get_cache_info(self, options: Values, args: List[Any]) -> None: - if args: - raise CommandError("Too many arguments") - - num_http_files = len(self._find_http_files(options)) - num_packages = len(self._find_wheels(options, "*")) - - http_cache_location = self._cache_dir(options, "http") - wheels_cache_location = self._cache_dir(options, "wheels") - http_cache_size = filesystem.format_directory_size(http_cache_location) - wheels_cache_size = filesystem.format_directory_size(wheels_cache_location) - - message = ( - textwrap.dedent( - """ - Package index page cache location: {http_cache_location} - Package index page cache size: {http_cache_size} - Number of HTTP files: {num_http_files} - Wheels location: {wheels_cache_location} - Wheels size: {wheels_cache_size} - Number of wheels: {package_count} - """ - ) - .format( - http_cache_location=http_cache_location, - http_cache_size=http_cache_size, - num_http_files=num_http_files, - wheels_cache_location=wheels_cache_location, - package_count=num_packages, - wheels_cache_size=wheels_cache_size, - ) - .strip() - ) - - logger.info(message) - - def list_cache_items(self, options: Values, args: List[Any]) -> None: - if len(args) > 1: - raise CommandError("Too many arguments") - - if args: - pattern = args[0] - else: - pattern = "*" - - files = self._find_wheels(options, pattern) - if options.list_format == "human": - self.format_for_human(files) - else: - self.format_for_abspath(files) - - def format_for_human(self, files: List[str]) -> None: - if not files: - logger.info("Nothing cached.") - return - - results = [] - for filename in files: - wheel = os.path.basename(filename) - size = filesystem.format_file_size(filename) - results.append(f" - {wheel} ({size})") - logger.info("Cache contents:\n") - logger.info("\n".join(sorted(results))) - - def format_for_abspath(self, files: List[str]) -> None: - if not files: - return - - results = [] - for filename in files: - results.append(filename) - - logger.info("\n".join(sorted(results))) - - def remove_cache_items(self, options: Values, args: List[Any]) -> None: - if len(args) > 1: - raise CommandError("Too many arguments") - - if not args: - raise CommandError("Please provide a pattern") - - files = self._find_wheels(options, args[0]) - - no_matching_msg = "No matching packages" - if args[0] == "*": - # Only fetch http files if no specific pattern given - files += self._find_http_files(options) - else: - # Add the pattern to the log message - no_matching_msg += ' for pattern "{}"'.format(args[0]) - - if not files: - logger.warning(no_matching_msg) - - for filename in files: - os.unlink(filename) - logger.verbose("Removed %s", filename) - logger.info("Files removed: %s", len(files)) - - def purge_cache(self, options: Values, args: List[Any]) -> None: - if args: - raise CommandError("Too many arguments") - - return self.remove_cache_items(options, ["*"]) - - def _cache_dir(self, options: Values, subdir: str) -> str: - return os.path.join(options.cache_dir, subdir) - - def _find_http_files(self, options: Values) -> List[str]: - http_dir = self._cache_dir(options, "http") - return filesystem.find_files(http_dir, "*") - - def _find_wheels(self, options: Values, pattern: str) -> List[str]: - wheel_dir = self._cache_dir(options, "wheels") - - # The wheel filename format, as specified in PEP 427, is: - # {distribution}-{version}(-{build})?-{python}-{abi}-{platform}.whl - # - # Additionally, non-alphanumeric values in the distribution are - # normalized to underscores (_), meaning hyphens can never occur - # before `-{version}`. - # - # Given that information: - # - If the pattern we're given contains a hyphen (-), the user is - # providing at least the version. Thus, we can just append `*.whl` - # to match the rest of it. - # - If the pattern we're given doesn't contain a hyphen (-), the - # user is only providing the name. Thus, we append `-*.whl` to - # match the hyphen before the version, followed by anything else. - # - # PEP 427: https://www.python.org/dev/peps/pep-0427/ - pattern = pattern + ("*.whl" if "-" in pattern else "-*.whl") - - return filesystem.find_files(wheel_dir, pattern) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/check.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/check.py deleted file mode 100644 index 3864220..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/check.py +++ /dev/null @@ -1,53 +0,0 @@ -import logging -from optparse import Values -from typing import List - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import ERROR, SUCCESS -from pip._internal.operations.check import ( - check_package_set, - create_package_set_from_installed, -) -from pip._internal.utils.misc import write_output - -logger = logging.getLogger(__name__) - - -class CheckCommand(Command): - """Verify installed packages have compatible dependencies.""" - - usage = """ - %prog [options]""" - - def run(self, options: Values, args: List[str]) -> int: - - package_set, parsing_probs = create_package_set_from_installed() - missing, conflicting = check_package_set(package_set) - - for project_name in missing: - version = package_set[project_name].version - for dependency in missing[project_name]: - write_output( - "%s %s requires %s, which is not installed.", - project_name, - version, - dependency[0], - ) - - for project_name in conflicting: - version = package_set[project_name].version - for dep_name, dep_version, req in conflicting[project_name]: - write_output( - "%s %s has requirement %s, but you have %s %s.", - project_name, - version, - req, - dep_name, - dep_version, - ) - - if missing or conflicting or parsing_probs: - return ERROR - else: - write_output("No broken requirements found.") - return SUCCESS diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/completion.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/completion.py deleted file mode 100644 index c0fb4ca..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/completion.py +++ /dev/null @@ -1,96 +0,0 @@ -import sys -import textwrap -from optparse import Values -from typing import List - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import SUCCESS -from pip._internal.utils.misc import get_prog - -BASE_COMPLETION = """ -# pip {shell} completion start{script}# pip {shell} completion end -""" - -COMPLETION_SCRIPTS = { - "bash": """ - _pip_completion() - {{ - COMPREPLY=( $( COMP_WORDS="${{COMP_WORDS[*]}}" \\ - COMP_CWORD=$COMP_CWORD \\ - PIP_AUTO_COMPLETE=1 $1 2>/dev/null ) ) - }} - complete -o default -F _pip_completion {prog} - """, - "zsh": """ - function _pip_completion {{ - local words cword - read -Ac words - read -cn cword - reply=( $( COMP_WORDS="$words[*]" \\ - COMP_CWORD=$(( cword-1 )) \\ - PIP_AUTO_COMPLETE=1 $words[1] 2>/dev/null )) - }} - compctl -K _pip_completion {prog} - """, - "fish": """ - function __fish_complete_pip - set -lx COMP_WORDS (commandline -o) "" - set -lx COMP_CWORD ( \\ - math (contains -i -- (commandline -t) $COMP_WORDS)-1 \\ - ) - set -lx PIP_AUTO_COMPLETE 1 - string split \\ -- (eval $COMP_WORDS[1]) - end - complete -fa "(__fish_complete_pip)" -c {prog} - """, -} - - -class CompletionCommand(Command): - """A helper command to be used for command completion.""" - - ignore_require_venv = True - - def add_options(self) -> None: - self.cmd_opts.add_option( - "--bash", - "-b", - action="store_const", - const="bash", - dest="shell", - help="Emit completion code for bash", - ) - self.cmd_opts.add_option( - "--zsh", - "-z", - action="store_const", - const="zsh", - dest="shell", - help="Emit completion code for zsh", - ) - self.cmd_opts.add_option( - "--fish", - "-f", - action="store_const", - const="fish", - dest="shell", - help="Emit completion code for fish", - ) - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options: Values, args: List[str]) -> int: - """Prints the completion code of the given shell""" - shells = COMPLETION_SCRIPTS.keys() - shell_options = ["--" + shell for shell in sorted(shells)] - if options.shell in shells: - script = textwrap.dedent( - COMPLETION_SCRIPTS.get(options.shell, "").format(prog=get_prog()) - ) - print(BASE_COMPLETION.format(script=script, shell=options.shell)) - return SUCCESS - else: - sys.stderr.write( - "ERROR: You must pass {}\n".format(" or ".join(shell_options)) - ) - return SUCCESS diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/configuration.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/configuration.py deleted file mode 100644 index c6c74ed..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/configuration.py +++ /dev/null @@ -1,266 +0,0 @@ -import logging -import os -import subprocess -from optparse import Values -from typing import Any, List, Optional - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import ERROR, SUCCESS -from pip._internal.configuration import ( - Configuration, - Kind, - get_configuration_files, - kinds, -) -from pip._internal.exceptions import PipError -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import get_prog, write_output - -logger = logging.getLogger(__name__) - - -class ConfigurationCommand(Command): - """ - Manage local and global configuration. - - Subcommands: - - - list: List the active configuration (or from the file specified) - - edit: Edit the configuration file in an editor - - get: Get the value associated with name - - set: Set the name=value - - unset: Unset the value associated with name - - debug: List the configuration files and values defined under them - - If none of --user, --global and --site are passed, a virtual - environment configuration file is used if one is active and the file - exists. Otherwise, all modifications happen to the user file by - default. - """ - - ignore_require_venv = True - usage = """ - %prog [] list - %prog [] [--editor ] edit - - %prog [] get name - %prog [] set name value - %prog [] unset name - %prog [] debug - """ - - def add_options(self) -> None: - self.cmd_opts.add_option( - "--editor", - dest="editor", - action="store", - default=None, - help=( - "Editor to use to edit the file. Uses VISUAL or EDITOR " - "environment variables if not provided." - ), - ) - - self.cmd_opts.add_option( - "--global", - dest="global_file", - action="store_true", - default=False, - help="Use the system-wide configuration file only", - ) - - self.cmd_opts.add_option( - "--user", - dest="user_file", - action="store_true", - default=False, - help="Use the user configuration file only", - ) - - self.cmd_opts.add_option( - "--site", - dest="site_file", - action="store_true", - default=False, - help="Use the current environment configuration file only", - ) - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options: Values, args: List[str]) -> int: - handlers = { - "list": self.list_values, - "edit": self.open_in_editor, - "get": self.get_name, - "set": self.set_name_value, - "unset": self.unset_name, - "debug": self.list_config_values, - } - - # Determine action - if not args or args[0] not in handlers: - logger.error( - "Need an action (%s) to perform.", - ", ".join(sorted(handlers)), - ) - return ERROR - - action = args[0] - - # Determine which configuration files are to be loaded - # Depends on whether the command is modifying. - try: - load_only = self._determine_file( - options, need_value=(action in ["get", "set", "unset", "edit"]) - ) - except PipError as e: - logger.error(e.args[0]) - return ERROR - - # Load a new configuration - self.configuration = Configuration( - isolated=options.isolated_mode, load_only=load_only - ) - self.configuration.load() - - # Error handling happens here, not in the action-handlers. - try: - handlers[action](options, args[1:]) - except PipError as e: - logger.error(e.args[0]) - return ERROR - - return SUCCESS - - def _determine_file(self, options: Values, need_value: bool) -> Optional[Kind]: - file_options = [ - key - for key, value in ( - (kinds.USER, options.user_file), - (kinds.GLOBAL, options.global_file), - (kinds.SITE, options.site_file), - ) - if value - ] - - if not file_options: - if not need_value: - return None - # Default to user, unless there's a site file. - elif any( - os.path.exists(site_config_file) - for site_config_file in get_configuration_files()[kinds.SITE] - ): - return kinds.SITE - else: - return kinds.USER - elif len(file_options) == 1: - return file_options[0] - - raise PipError( - "Need exactly one file to operate upon " - "(--user, --site, --global) to perform." - ) - - def list_values(self, options: Values, args: List[str]) -> None: - self._get_n_args(args, "list", n=0) - - for key, value in sorted(self.configuration.items()): - write_output("%s=%r", key, value) - - def get_name(self, options: Values, args: List[str]) -> None: - key = self._get_n_args(args, "get [name]", n=1) - value = self.configuration.get_value(key) - - write_output("%s", value) - - def set_name_value(self, options: Values, args: List[str]) -> None: - key, value = self._get_n_args(args, "set [name] [value]", n=2) - self.configuration.set_value(key, value) - - self._save_configuration() - - def unset_name(self, options: Values, args: List[str]) -> None: - key = self._get_n_args(args, "unset [name]", n=1) - self.configuration.unset_value(key) - - self._save_configuration() - - def list_config_values(self, options: Values, args: List[str]) -> None: - """List config key-value pairs across different config files""" - self._get_n_args(args, "debug", n=0) - - self.print_env_var_values() - # Iterate over config files and print if they exist, and the - # key-value pairs present in them if they do - for variant, files in sorted(self.configuration.iter_config_files()): - write_output("%s:", variant) - for fname in files: - with indent_log(): - file_exists = os.path.exists(fname) - write_output("%s, exists: %r", fname, file_exists) - if file_exists: - self.print_config_file_values(variant) - - def print_config_file_values(self, variant: Kind) -> None: - """Get key-value pairs from the file of a variant""" - for name, value in self.configuration.get_values_in_config(variant).items(): - with indent_log(): - write_output("%s: %s", name, value) - - def print_env_var_values(self) -> None: - """Get key-values pairs present as environment variables""" - write_output("%s:", "env_var") - with indent_log(): - for key, value in sorted(self.configuration.get_environ_vars()): - env_var = f"PIP_{key.upper()}" - write_output("%s=%r", env_var, value) - - def open_in_editor(self, options: Values, args: List[str]) -> None: - editor = self._determine_editor(options) - - fname = self.configuration.get_file_to_edit() - if fname is None: - raise PipError("Could not determine appropriate file.") - - try: - subprocess.check_call([editor, fname]) - except subprocess.CalledProcessError as e: - raise PipError( - "Editor Subprocess exited with exit code {}".format(e.returncode) - ) - - def _get_n_args(self, args: List[str], example: str, n: int) -> Any: - """Helper to make sure the command got the right number of arguments""" - if len(args) != n: - msg = ( - "Got unexpected number of arguments, expected {}. " - '(example: "{} config {}")' - ).format(n, get_prog(), example) - raise PipError(msg) - - if n == 1: - return args[0] - else: - return args - - def _save_configuration(self) -> None: - # We successfully ran a modifying command. Need to save the - # configuration. - try: - self.configuration.save() - except Exception: - logger.exception( - "Unable to save configuration. Please report this as a bug." - ) - raise PipError("Internal Error.") - - def _determine_editor(self, options: Values) -> str: - if options.editor is not None: - return options.editor - elif "VISUAL" in os.environ: - return os.environ["VISUAL"] - elif "EDITOR" in os.environ: - return os.environ["EDITOR"] - else: - raise PipError("Could not determine editor to use.") diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/debug.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/debug.py deleted file mode 100644 index d3f1f28..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/debug.py +++ /dev/null @@ -1,202 +0,0 @@ -import locale -import logging -import os -import sys -from optparse import Values -from types import ModuleType -from typing import Any, Dict, List, Optional - -import pip._vendor -from pip._vendor.certifi import where -from pip._vendor.packaging.version import parse as parse_version - -from pip import __file__ as pip_location -from pip._internal.cli import cmdoptions -from pip._internal.cli.base_command import Command -from pip._internal.cli.cmdoptions import make_target_python -from pip._internal.cli.status_codes import SUCCESS -from pip._internal.configuration import Configuration -from pip._internal.metadata import get_environment -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import get_pip_version - -logger = logging.getLogger(__name__) - - -def show_value(name: str, value: Any) -> None: - logger.info("%s: %s", name, value) - - -def show_sys_implementation() -> None: - logger.info("sys.implementation:") - implementation_name = sys.implementation.name - with indent_log(): - show_value("name", implementation_name) - - -def create_vendor_txt_map() -> Dict[str, str]: - vendor_txt_path = os.path.join( - os.path.dirname(pip_location), "_vendor", "vendor.txt" - ) - - with open(vendor_txt_path) as f: - # Purge non version specifying lines. - # Also, remove any space prefix or suffixes (including comments). - lines = [ - line.strip().split(" ", 1)[0] for line in f.readlines() if "==" in line - ] - - # Transform into "module" -> version dict. - return dict(line.split("==", 1) for line in lines) # type: ignore - - -def get_module_from_module_name(module_name: str) -> ModuleType: - # Module name can be uppercase in vendor.txt for some reason... - module_name = module_name.lower() - # PATCH: setuptools is actually only pkg_resources. - if module_name == "setuptools": - module_name = "pkg_resources" - - __import__(f"pip._vendor.{module_name}", globals(), locals(), level=0) - return getattr(pip._vendor, module_name) - - -def get_vendor_version_from_module(module_name: str) -> Optional[str]: - module = get_module_from_module_name(module_name) - version = getattr(module, "__version__", None) - - if not version: - # Try to find version in debundled module info. - env = get_environment([os.path.dirname(module.__file__)]) - dist = env.get_distribution(module_name) - if dist: - version = str(dist.version) - - return version - - -def show_actual_vendor_versions(vendor_txt_versions: Dict[str, str]) -> None: - """Log the actual version and print extra info if there is - a conflict or if the actual version could not be imported. - """ - for module_name, expected_version in vendor_txt_versions.items(): - extra_message = "" - actual_version = get_vendor_version_from_module(module_name) - if not actual_version: - extra_message = ( - " (Unable to locate actual module version, using" - " vendor.txt specified version)" - ) - actual_version = expected_version - elif parse_version(actual_version) != parse_version(expected_version): - extra_message = ( - " (CONFLICT: vendor.txt suggests version should" - " be {})".format(expected_version) - ) - logger.info("%s==%s%s", module_name, actual_version, extra_message) - - -def show_vendor_versions() -> None: - logger.info("vendored library versions:") - - vendor_txt_versions = create_vendor_txt_map() - with indent_log(): - show_actual_vendor_versions(vendor_txt_versions) - - -def show_tags(options: Values) -> None: - tag_limit = 10 - - target_python = make_target_python(options) - tags = target_python.get_tags() - - # Display the target options that were explicitly provided. - formatted_target = target_python.format_given() - suffix = "" - if formatted_target: - suffix = f" (target: {formatted_target})" - - msg = "Compatible tags: {}{}".format(len(tags), suffix) - logger.info(msg) - - if options.verbose < 1 and len(tags) > tag_limit: - tags_limited = True - tags = tags[:tag_limit] - else: - tags_limited = False - - with indent_log(): - for tag in tags: - logger.info(str(tag)) - - if tags_limited: - msg = ( - "...\n[First {tag_limit} tags shown. Pass --verbose to show all.]" - ).format(tag_limit=tag_limit) - logger.info(msg) - - -def ca_bundle_info(config: Configuration) -> str: - levels = set() - for key, _ in config.items(): - levels.add(key.split(".")[0]) - - if not levels: - return "Not specified" - - levels_that_override_global = ["install", "wheel", "download"] - global_overriding_level = [ - level for level in levels if level in levels_that_override_global - ] - if not global_overriding_level: - return "global" - - if "global" in levels: - levels.remove("global") - return ", ".join(levels) - - -class DebugCommand(Command): - """ - Display debug information. - """ - - usage = """ - %prog """ - ignore_require_venv = True - - def add_options(self) -> None: - cmdoptions.add_target_python_options(self.cmd_opts) - self.parser.insert_option_group(0, self.cmd_opts) - self.parser.config.load() - - def run(self, options: Values, args: List[str]) -> int: - logger.warning( - "This command is only meant for debugging. " - "Do not use this with automation for parsing and getting these " - "details, since the output and options of this command may " - "change without notice." - ) - show_value("pip version", get_pip_version()) - show_value("sys.version", sys.version) - show_value("sys.executable", sys.executable) - show_value("sys.getdefaultencoding", sys.getdefaultencoding()) - show_value("sys.getfilesystemencoding", sys.getfilesystemencoding()) - show_value( - "locale.getpreferredencoding", - locale.getpreferredencoding(), - ) - show_value("sys.platform", sys.platform) - show_sys_implementation() - - show_value("'cert' config value", ca_bundle_info(self.parser.config)) - show_value("REQUESTS_CA_BUNDLE", os.environ.get("REQUESTS_CA_BUNDLE")) - show_value("CURL_CA_BUNDLE", os.environ.get("CURL_CA_BUNDLE")) - show_value("pip._vendor.certifi.where()", where()) - show_value("pip._vendor.DEBUNDLED", pip._vendor.DEBUNDLED) - - show_vendor_versions() - - show_tags(options) - - return SUCCESS diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/download.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/download.py deleted file mode 100644 index 7de207f..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/download.py +++ /dev/null @@ -1,139 +0,0 @@ -import logging -import os -from optparse import Values -from typing import List - -from pip._internal.cli import cmdoptions -from pip._internal.cli.cmdoptions import make_target_python -from pip._internal.cli.req_command import RequirementCommand, with_cleanup -from pip._internal.cli.status_codes import SUCCESS -from pip._internal.req.req_tracker import get_requirement_tracker -from pip._internal.utils.misc import ensure_dir, normalize_path, write_output -from pip._internal.utils.temp_dir import TempDirectory - -logger = logging.getLogger(__name__) - - -class DownloadCommand(RequirementCommand): - """ - Download packages from: - - - PyPI (and other indexes) using requirement specifiers. - - VCS project urls. - - Local project directories. - - Local or remote source archives. - - pip also supports downloading from "requirements files", which provide - an easy way to specify a whole environment to be downloaded. - """ - - usage = """ - %prog [options] [package-index-options] ... - %prog [options] -r [package-index-options] ... - %prog [options] ... - %prog [options] ... - %prog [options] ...""" - - def add_options(self) -> None: - self.cmd_opts.add_option(cmdoptions.constraints()) - self.cmd_opts.add_option(cmdoptions.requirements()) - self.cmd_opts.add_option(cmdoptions.no_deps()) - self.cmd_opts.add_option(cmdoptions.global_options()) - self.cmd_opts.add_option(cmdoptions.no_binary()) - self.cmd_opts.add_option(cmdoptions.only_binary()) - self.cmd_opts.add_option(cmdoptions.prefer_binary()) - self.cmd_opts.add_option(cmdoptions.src()) - self.cmd_opts.add_option(cmdoptions.pre()) - self.cmd_opts.add_option(cmdoptions.require_hashes()) - self.cmd_opts.add_option(cmdoptions.progress_bar()) - self.cmd_opts.add_option(cmdoptions.no_build_isolation()) - self.cmd_opts.add_option(cmdoptions.use_pep517()) - self.cmd_opts.add_option(cmdoptions.no_use_pep517()) - self.cmd_opts.add_option(cmdoptions.ignore_requires_python()) - - self.cmd_opts.add_option( - "-d", - "--dest", - "--destination-dir", - "--destination-directory", - dest="download_dir", - metavar="dir", - default=os.curdir, - help="Download packages into .", - ) - - cmdoptions.add_target_python_options(self.cmd_opts) - - index_opts = cmdoptions.make_option_group( - cmdoptions.index_group, - self.parser, - ) - - self.parser.insert_option_group(0, index_opts) - self.parser.insert_option_group(0, self.cmd_opts) - - @with_cleanup - def run(self, options: Values, args: List[str]) -> int: - - options.ignore_installed = True - # editable doesn't really make sense for `pip download`, but the bowels - # of the RequirementSet code require that property. - options.editables = [] - - cmdoptions.check_dist_restriction(options) - - options.download_dir = normalize_path(options.download_dir) - ensure_dir(options.download_dir) - - session = self.get_default_session(options) - - target_python = make_target_python(options) - finder = self._build_package_finder( - options=options, - session=session, - target_python=target_python, - ignore_requires_python=options.ignore_requires_python, - ) - - req_tracker = self.enter_context(get_requirement_tracker()) - - directory = TempDirectory( - delete=not options.no_clean, - kind="download", - globally_managed=True, - ) - - reqs = self.get_requirements(args, options, finder, session) - - preparer = self.make_requirement_preparer( - temp_build_dir=directory, - options=options, - req_tracker=req_tracker, - session=session, - finder=finder, - download_dir=options.download_dir, - use_user_site=False, - ) - - resolver = self.make_resolver( - preparer=preparer, - finder=finder, - options=options, - ignore_requires_python=options.ignore_requires_python, - py_version_info=options.python_version, - ) - - self.trace_basic_info(finder) - - requirement_set = resolver.resolve(reqs, check_supported_wheels=True) - - downloaded: List[str] = [] - for req in requirement_set.requirements.values(): - if req.satisfied_by is None: - assert req.name is not None - preparer.save_linked_requirement(req) - downloaded.append(req.name) - if downloaded: - write_output("Successfully downloaded %s", " ".join(downloaded)) - - return SUCCESS diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/freeze.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/freeze.py deleted file mode 100644 index 5fa6d39..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/freeze.py +++ /dev/null @@ -1,97 +0,0 @@ -import sys -from optparse import Values -from typing import List - -from pip._internal.cli import cmdoptions -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import SUCCESS -from pip._internal.operations.freeze import freeze -from pip._internal.utils.compat import stdlib_pkgs - -DEV_PKGS = {"pip", "setuptools", "distribute", "wheel"} - - -class FreezeCommand(Command): - """ - Output installed packages in requirements format. - - packages are listed in a case-insensitive sorted order. - """ - - usage = """ - %prog [options]""" - log_streams = ("ext://sys.stderr", "ext://sys.stderr") - - def add_options(self) -> None: - self.cmd_opts.add_option( - "-r", - "--requirement", - dest="requirements", - action="append", - default=[], - metavar="file", - help=( - "Use the order in the given requirements file and its " - "comments when generating output. This option can be " - "used multiple times." - ), - ) - self.cmd_opts.add_option( - "-l", - "--local", - dest="local", - action="store_true", - default=False, - help=( - "If in a virtualenv that has global access, do not output " - "globally-installed packages." - ), - ) - self.cmd_opts.add_option( - "--user", - dest="user", - action="store_true", - default=False, - help="Only output packages installed in user-site.", - ) - self.cmd_opts.add_option(cmdoptions.list_path()) - self.cmd_opts.add_option( - "--all", - dest="freeze_all", - action="store_true", - help=( - "Do not skip these packages in the output:" - " {}".format(", ".join(DEV_PKGS)) - ), - ) - self.cmd_opts.add_option( - "--exclude-editable", - dest="exclude_editable", - action="store_true", - help="Exclude editable package from output.", - ) - self.cmd_opts.add_option(cmdoptions.list_exclude()) - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options: Values, args: List[str]) -> int: - skip = set(stdlib_pkgs) - if not options.freeze_all: - skip.update(DEV_PKGS) - - if options.excludes: - skip.update(options.excludes) - - cmdoptions.check_list_path_option(options) - - for line in freeze( - requirement=options.requirements, - local_only=options.local, - user_only=options.user, - paths=options.path, - isolated=options.isolated_mode, - skip=skip, - exclude_editable=options.exclude_editable, - ): - sys.stdout.write(line + "\n") - return SUCCESS diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/hash.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/hash.py deleted file mode 100644 index 042dac8..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/hash.py +++ /dev/null @@ -1,59 +0,0 @@ -import hashlib -import logging -import sys -from optparse import Values -from typing import List - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import ERROR, SUCCESS -from pip._internal.utils.hashes import FAVORITE_HASH, STRONG_HASHES -from pip._internal.utils.misc import read_chunks, write_output - -logger = logging.getLogger(__name__) - - -class HashCommand(Command): - """ - Compute a hash of a local package archive. - - These can be used with --hash in a requirements file to do repeatable - installs. - """ - - usage = "%prog [options] ..." - ignore_require_venv = True - - def add_options(self) -> None: - self.cmd_opts.add_option( - "-a", - "--algorithm", - dest="algorithm", - choices=STRONG_HASHES, - action="store", - default=FAVORITE_HASH, - help="The hash algorithm to use: one of {}".format( - ", ".join(STRONG_HASHES) - ), - ) - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options: Values, args: List[str]) -> int: - if not args: - self.parser.print_usage(sys.stderr) - return ERROR - - algorithm = options.algorithm - for path in args: - write_output( - "%s:\n--hash=%s:%s", path, algorithm, _hash_of_file(path, algorithm) - ) - return SUCCESS - - -def _hash_of_file(path: str, algorithm: str) -> str: - """Return the hash digest of a file.""" - with open(path, "rb") as archive: - hash = hashlib.new(algorithm) - for chunk in read_chunks(archive): - hash.update(chunk) - return hash.hexdigest() diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/help.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/help.py deleted file mode 100644 index 6206631..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/help.py +++ /dev/null @@ -1,41 +0,0 @@ -from optparse import Values -from typing import List - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import SUCCESS -from pip._internal.exceptions import CommandError - - -class HelpCommand(Command): - """Show help for commands""" - - usage = """ - %prog """ - ignore_require_venv = True - - def run(self, options: Values, args: List[str]) -> int: - from pip._internal.commands import ( - commands_dict, - create_command, - get_similar_commands, - ) - - try: - # 'pip help' with no args is handled by pip.__init__.parseopt() - cmd_name = args[0] # the command we need help for - except IndexError: - return SUCCESS - - if cmd_name not in commands_dict: - guess = get_similar_commands(cmd_name) - - msg = [f'unknown command "{cmd_name}"'] - if guess: - msg.append(f'maybe you meant "{guess}"') - - raise CommandError(" - ".join(msg)) - - command = create_command(cmd_name) - command.parser.print_help() - - return SUCCESS diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/index.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/index.py deleted file mode 100644 index b4bf0ac..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/index.py +++ /dev/null @@ -1,138 +0,0 @@ -import logging -from optparse import Values -from typing import Any, Iterable, List, Optional, Union - -from pip._vendor.packaging.version import LegacyVersion, Version - -from pip._internal.cli import cmdoptions -from pip._internal.cli.req_command import IndexGroupCommand -from pip._internal.cli.status_codes import ERROR, SUCCESS -from pip._internal.commands.search import print_dist_installation_info -from pip._internal.exceptions import CommandError, DistributionNotFound, PipError -from pip._internal.index.collector import LinkCollector -from pip._internal.index.package_finder import PackageFinder -from pip._internal.models.selection_prefs import SelectionPreferences -from pip._internal.models.target_python import TargetPython -from pip._internal.network.session import PipSession -from pip._internal.utils.misc import write_output - -logger = logging.getLogger(__name__) - - -class IndexCommand(IndexGroupCommand): - """ - Inspect information available from package indexes. - """ - - usage = """ - %prog versions - """ - - def add_options(self) -> None: - cmdoptions.add_target_python_options(self.cmd_opts) - - self.cmd_opts.add_option(cmdoptions.ignore_requires_python()) - self.cmd_opts.add_option(cmdoptions.pre()) - self.cmd_opts.add_option(cmdoptions.no_binary()) - self.cmd_opts.add_option(cmdoptions.only_binary()) - - index_opts = cmdoptions.make_option_group( - cmdoptions.index_group, - self.parser, - ) - - self.parser.insert_option_group(0, index_opts) - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options: Values, args: List[str]) -> int: - handlers = { - "versions": self.get_available_package_versions, - } - - logger.warning( - "pip index is currently an experimental command. " - "It may be removed/changed in a future release " - "without prior warning." - ) - - # Determine action - if not args or args[0] not in handlers: - logger.error( - "Need an action (%s) to perform.", - ", ".join(sorted(handlers)), - ) - return ERROR - - action = args[0] - - # Error handling happens here, not in the action-handlers. - try: - handlers[action](options, args[1:]) - except PipError as e: - logger.error(e.args[0]) - return ERROR - - return SUCCESS - - def _build_package_finder( - self, - options: Values, - session: PipSession, - target_python: Optional[TargetPython] = None, - ignore_requires_python: Optional[bool] = None, - ) -> PackageFinder: - """ - Create a package finder appropriate to the index command. - """ - link_collector = LinkCollector.create(session, options=options) - - # Pass allow_yanked=False to ignore yanked versions. - selection_prefs = SelectionPreferences( - allow_yanked=False, - allow_all_prereleases=options.pre, - ignore_requires_python=ignore_requires_python, - ) - - return PackageFinder.create( - link_collector=link_collector, - selection_prefs=selection_prefs, - target_python=target_python, - ) - - def get_available_package_versions(self, options: Values, args: List[Any]) -> None: - if len(args) != 1: - raise CommandError("You need to specify exactly one argument") - - target_python = cmdoptions.make_target_python(options) - query = args[0] - - with self._build_session(options) as session: - finder = self._build_package_finder( - options=options, - session=session, - target_python=target_python, - ignore_requires_python=options.ignore_requires_python, - ) - - versions: Iterable[Union[LegacyVersion, Version]] = ( - candidate.version for candidate in finder.find_all_candidates(query) - ) - - if not options.pre: - # Remove prereleases - versions = ( - version for version in versions if not version.is_prerelease - ) - versions = set(versions) - - if not versions: - raise DistributionNotFound( - "No matching distribution found for {}".format(query) - ) - - formatted_versions = [str(ver) for ver in sorted(versions, reverse=True)] - latest = formatted_versions[0] - - write_output("{} ({})".format(query, latest)) - write_output("Available versions: {}".format(", ".join(formatted_versions))) - print_dist_installation_info(query, latest) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/install.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/install.py deleted file mode 100644 index eedb1ff..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/install.py +++ /dev/null @@ -1,770 +0,0 @@ -import errno -import operator -import os -import shutil -import site -from optparse import SUPPRESS_HELP, Values -from typing import Iterable, List, Optional - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.cache import WheelCache -from pip._internal.cli import cmdoptions -from pip._internal.cli.cmdoptions import make_target_python -from pip._internal.cli.req_command import ( - RequirementCommand, - warn_if_run_as_root, - with_cleanup, -) -from pip._internal.cli.status_codes import ERROR, SUCCESS -from pip._internal.exceptions import CommandError, InstallationError -from pip._internal.locations import get_scheme -from pip._internal.metadata import get_environment -from pip._internal.models.format_control import FormatControl -from pip._internal.operations.check import ConflictDetails, check_install_conflicts -from pip._internal.req import install_given_reqs -from pip._internal.req.req_install import InstallRequirement -from pip._internal.req.req_tracker import get_requirement_tracker -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.distutils_args import parse_distutils_args -from pip._internal.utils.filesystem import test_writable_dir -from pip._internal.utils.logging import getLogger -from pip._internal.utils.misc import ( - ensure_dir, - get_pip_version, - protect_pip_from_modification_on_windows, - write_output, -) -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.utils.virtualenv import ( - running_under_virtualenv, - virtualenv_no_global, -) -from pip._internal.wheel_builder import ( - BinaryAllowedPredicate, - build, - should_build_for_install_command, -) - -logger = getLogger(__name__) - - -def get_check_binary_allowed(format_control: FormatControl) -> BinaryAllowedPredicate: - def check_binary_allowed(req: InstallRequirement) -> bool: - canonical_name = canonicalize_name(req.name or "") - allowed_formats = format_control.get_allowed_formats(canonical_name) - return "binary" in allowed_formats - - return check_binary_allowed - - -class InstallCommand(RequirementCommand): - """ - Install packages from: - - - PyPI (and other indexes) using requirement specifiers. - - VCS project urls. - - Local project directories. - - Local or remote source archives. - - pip also supports installing from "requirements files", which provide - an easy way to specify a whole environment to be installed. - """ - - usage = """ - %prog [options] [package-index-options] ... - %prog [options] -r [package-index-options] ... - %prog [options] [-e] ... - %prog [options] [-e] ... - %prog [options] ...""" - - def add_options(self) -> None: - self.cmd_opts.add_option(cmdoptions.requirements()) - self.cmd_opts.add_option(cmdoptions.constraints()) - self.cmd_opts.add_option(cmdoptions.no_deps()) - self.cmd_opts.add_option(cmdoptions.pre()) - - self.cmd_opts.add_option(cmdoptions.editable()) - self.cmd_opts.add_option( - "-t", - "--target", - dest="target_dir", - metavar="dir", - default=None, - help=( - "Install packages into . " - "By default this will not replace existing files/folders in " - ". Use --upgrade to replace existing packages in " - "with new versions." - ), - ) - cmdoptions.add_target_python_options(self.cmd_opts) - - self.cmd_opts.add_option( - "--user", - dest="use_user_site", - action="store_true", - help=( - "Install to the Python user install directory for your " - "platform. Typically ~/.local/, or %APPDATA%\\Python on " - "Windows. (See the Python documentation for site.USER_BASE " - "for full details.)" - ), - ) - self.cmd_opts.add_option( - "--no-user", - dest="use_user_site", - action="store_false", - help=SUPPRESS_HELP, - ) - self.cmd_opts.add_option( - "--root", - dest="root_path", - metavar="dir", - default=None, - help="Install everything relative to this alternate root directory.", - ) - self.cmd_opts.add_option( - "--prefix", - dest="prefix_path", - metavar="dir", - default=None, - help=( - "Installation prefix where lib, bin and other top-level " - "folders are placed" - ), - ) - - self.cmd_opts.add_option(cmdoptions.src()) - - self.cmd_opts.add_option( - "-U", - "--upgrade", - dest="upgrade", - action="store_true", - help=( - "Upgrade all specified packages to the newest available " - "version. The handling of dependencies depends on the " - "upgrade-strategy used." - ), - ) - - self.cmd_opts.add_option( - "--upgrade-strategy", - dest="upgrade_strategy", - default="only-if-needed", - choices=["only-if-needed", "eager"], - help=( - "Determines how dependency upgrading should be handled " - "[default: %default]. " - '"eager" - dependencies are upgraded regardless of ' - "whether the currently installed version satisfies the " - "requirements of the upgraded package(s). " - '"only-if-needed" - are upgraded only when they do not ' - "satisfy the requirements of the upgraded package(s)." - ), - ) - - self.cmd_opts.add_option( - "--force-reinstall", - dest="force_reinstall", - action="store_true", - help="Reinstall all packages even if they are already up-to-date.", - ) - - self.cmd_opts.add_option( - "-I", - "--ignore-installed", - dest="ignore_installed", - action="store_true", - help=( - "Ignore the installed packages, overwriting them. " - "This can break your system if the existing package " - "is of a different version or was installed " - "with a different package manager!" - ), - ) - - self.cmd_opts.add_option(cmdoptions.ignore_requires_python()) - self.cmd_opts.add_option(cmdoptions.no_build_isolation()) - self.cmd_opts.add_option(cmdoptions.use_pep517()) - self.cmd_opts.add_option(cmdoptions.no_use_pep517()) - - self.cmd_opts.add_option(cmdoptions.install_options()) - self.cmd_opts.add_option(cmdoptions.global_options()) - - self.cmd_opts.add_option( - "--compile", - action="store_true", - dest="compile", - default=True, - help="Compile Python source files to bytecode", - ) - - self.cmd_opts.add_option( - "--no-compile", - action="store_false", - dest="compile", - help="Do not compile Python source files to bytecode", - ) - - self.cmd_opts.add_option( - "--no-warn-script-location", - action="store_false", - dest="warn_script_location", - default=True, - help="Do not warn when installing scripts outside PATH", - ) - self.cmd_opts.add_option( - "--no-warn-conflicts", - action="store_false", - dest="warn_about_conflicts", - default=True, - help="Do not warn about broken dependencies", - ) - - self.cmd_opts.add_option(cmdoptions.no_binary()) - self.cmd_opts.add_option(cmdoptions.only_binary()) - self.cmd_opts.add_option(cmdoptions.prefer_binary()) - self.cmd_opts.add_option(cmdoptions.require_hashes()) - self.cmd_opts.add_option(cmdoptions.progress_bar()) - - index_opts = cmdoptions.make_option_group( - cmdoptions.index_group, - self.parser, - ) - - self.parser.insert_option_group(0, index_opts) - self.parser.insert_option_group(0, self.cmd_opts) - - @with_cleanup - def run(self, options: Values, args: List[str]) -> int: - if options.use_user_site and options.target_dir is not None: - raise CommandError("Can not combine '--user' and '--target'") - - cmdoptions.check_install_build_global(options) - upgrade_strategy = "to-satisfy-only" - if options.upgrade: - upgrade_strategy = options.upgrade_strategy - - cmdoptions.check_dist_restriction(options, check_target=True) - - install_options = options.install_options or [] - - logger.verbose("Using %s", get_pip_version()) - options.use_user_site = decide_user_install( - options.use_user_site, - prefix_path=options.prefix_path, - target_dir=options.target_dir, - root_path=options.root_path, - isolated_mode=options.isolated_mode, - ) - - target_temp_dir: Optional[TempDirectory] = None - target_temp_dir_path: Optional[str] = None - if options.target_dir: - options.ignore_installed = True - options.target_dir = os.path.abspath(options.target_dir) - if ( - # fmt: off - os.path.exists(options.target_dir) and - not os.path.isdir(options.target_dir) - # fmt: on - ): - raise CommandError( - "Target path exists but is not a directory, will not continue." - ) - - # Create a target directory for using with the target option - target_temp_dir = TempDirectory(kind="target") - target_temp_dir_path = target_temp_dir.path - self.enter_context(target_temp_dir) - - global_options = options.global_options or [] - - session = self.get_default_session(options) - - target_python = make_target_python(options) - finder = self._build_package_finder( - options=options, - session=session, - target_python=target_python, - ignore_requires_python=options.ignore_requires_python, - ) - wheel_cache = WheelCache(options.cache_dir, options.format_control) - - req_tracker = self.enter_context(get_requirement_tracker()) - - directory = TempDirectory( - delete=not options.no_clean, - kind="install", - globally_managed=True, - ) - - try: - reqs = self.get_requirements(args, options, finder, session) - - # Only when installing is it permitted to use PEP 660. - # In other circumstances (pip wheel, pip download) we generate - # regular (i.e. non editable) metadata and wheels. - for req in reqs: - req.permit_editable_wheels = True - - reject_location_related_install_options(reqs, options.install_options) - - preparer = self.make_requirement_preparer( - temp_build_dir=directory, - options=options, - req_tracker=req_tracker, - session=session, - finder=finder, - use_user_site=options.use_user_site, - ) - resolver = self.make_resolver( - preparer=preparer, - finder=finder, - options=options, - wheel_cache=wheel_cache, - use_user_site=options.use_user_site, - ignore_installed=options.ignore_installed, - ignore_requires_python=options.ignore_requires_python, - force_reinstall=options.force_reinstall, - upgrade_strategy=upgrade_strategy, - use_pep517=options.use_pep517, - ) - - self.trace_basic_info(finder) - - requirement_set = resolver.resolve( - reqs, check_supported_wheels=not options.target_dir - ) - - try: - pip_req = requirement_set.get_requirement("pip") - except KeyError: - modifying_pip = False - else: - # If we're not replacing an already installed pip, - # we're not modifying it. - modifying_pip = pip_req.satisfied_by is None - protect_pip_from_modification_on_windows(modifying_pip=modifying_pip) - - check_binary_allowed = get_check_binary_allowed(finder.format_control) - - reqs_to_build = [ - r - for r in requirement_set.requirements.values() - if should_build_for_install_command(r, check_binary_allowed) - ] - - _, build_failures = build( - reqs_to_build, - wheel_cache=wheel_cache, - verify=True, - build_options=[], - global_options=[], - ) - - # If we're using PEP 517, we cannot do a legacy setup.py install - # so we fail here. - pep517_build_failure_names: List[str] = [ - r.name for r in build_failures if r.use_pep517 # type: ignore - ] - if pep517_build_failure_names: - raise InstallationError( - "Could not build wheels for {}, which is required to " - "install pyproject.toml-based projects".format( - ", ".join(pep517_build_failure_names) - ) - ) - - # For now, we just warn about failures building legacy - # requirements, as we'll fall through to a setup.py install for - # those. - for r in build_failures: - if not r.use_pep517: - r.legacy_install_reason = 8368 - - to_install = resolver.get_installation_order(requirement_set) - - # Check for conflicts in the package set we're installing. - conflicts: Optional[ConflictDetails] = None - should_warn_about_conflicts = ( - not options.ignore_dependencies and options.warn_about_conflicts - ) - if should_warn_about_conflicts: - conflicts = self._determine_conflicts(to_install) - - # Don't warn about script install locations if - # --target or --prefix has been specified - warn_script_location = options.warn_script_location - if options.target_dir or options.prefix_path: - warn_script_location = False - - installed = install_given_reqs( - to_install, - install_options, - global_options, - root=options.root_path, - home=target_temp_dir_path, - prefix=options.prefix_path, - warn_script_location=warn_script_location, - use_user_site=options.use_user_site, - pycompile=options.compile, - ) - - lib_locations = get_lib_location_guesses( - user=options.use_user_site, - home=target_temp_dir_path, - root=options.root_path, - prefix=options.prefix_path, - isolated=options.isolated_mode, - ) - env = get_environment(lib_locations) - - installed.sort(key=operator.attrgetter("name")) - items = [] - for result in installed: - item = result.name - try: - installed_dist = env.get_distribution(item) - if installed_dist is not None: - item = f"{item}-{installed_dist.version}" - except Exception: - pass - items.append(item) - - if conflicts is not None: - self._warn_about_conflicts( - conflicts, - resolver_variant=self.determine_resolver_variant(options), - ) - - installed_desc = " ".join(items) - if installed_desc: - write_output( - "Successfully installed %s", - installed_desc, - ) - except OSError as error: - show_traceback = self.verbosity >= 1 - - message = create_os_error_message( - error, - show_traceback, - options.use_user_site, - ) - logger.error(message, exc_info=show_traceback) # noqa - - return ERROR - - if options.target_dir: - assert target_temp_dir - self._handle_target_dir( - options.target_dir, target_temp_dir, options.upgrade - ) - - warn_if_run_as_root() - return SUCCESS - - def _handle_target_dir( - self, target_dir: str, target_temp_dir: TempDirectory, upgrade: bool - ) -> None: - ensure_dir(target_dir) - - # Checking both purelib and platlib directories for installed - # packages to be moved to target directory - lib_dir_list = [] - - # Checking both purelib and platlib directories for installed - # packages to be moved to target directory - scheme = get_scheme("", home=target_temp_dir.path) - purelib_dir = scheme.purelib - platlib_dir = scheme.platlib - data_dir = scheme.data - - if os.path.exists(purelib_dir): - lib_dir_list.append(purelib_dir) - if os.path.exists(platlib_dir) and platlib_dir != purelib_dir: - lib_dir_list.append(platlib_dir) - if os.path.exists(data_dir): - lib_dir_list.append(data_dir) - - for lib_dir in lib_dir_list: - for item in os.listdir(lib_dir): - if lib_dir == data_dir: - ddir = os.path.join(data_dir, item) - if any(s.startswith(ddir) for s in lib_dir_list[:-1]): - continue - target_item_dir = os.path.join(target_dir, item) - if os.path.exists(target_item_dir): - if not upgrade: - logger.warning( - "Target directory %s already exists. Specify " - "--upgrade to force replacement.", - target_item_dir, - ) - continue - if os.path.islink(target_item_dir): - logger.warning( - "Target directory %s already exists and is " - "a link. pip will not automatically replace " - "links, please remove if replacement is " - "desired.", - target_item_dir, - ) - continue - if os.path.isdir(target_item_dir): - shutil.rmtree(target_item_dir) - else: - os.remove(target_item_dir) - - shutil.move(os.path.join(lib_dir, item), target_item_dir) - - def _determine_conflicts( - self, to_install: List[InstallRequirement] - ) -> Optional[ConflictDetails]: - try: - return check_install_conflicts(to_install) - except Exception: - logger.exception( - "Error while checking for conflicts. Please file an issue on " - "pip's issue tracker: https://github.com/pypa/pip/issues/new" - ) - return None - - def _warn_about_conflicts( - self, conflict_details: ConflictDetails, resolver_variant: str - ) -> None: - package_set, (missing, conflicting) = conflict_details - if not missing and not conflicting: - return - - parts: List[str] = [] - if resolver_variant == "legacy": - parts.append( - "pip's legacy dependency resolver does not consider dependency " - "conflicts when selecting packages. This behaviour is the " - "source of the following dependency conflicts." - ) - else: - assert resolver_variant == "2020-resolver" - parts.append( - "pip's dependency resolver does not currently take into account " - "all the packages that are installed. This behaviour is the " - "source of the following dependency conflicts." - ) - - # NOTE: There is some duplication here, with commands/check.py - for project_name in missing: - version = package_set[project_name][0] - for dependency in missing[project_name]: - message = ( - "{name} {version} requires {requirement}, " - "which is not installed." - ).format( - name=project_name, - version=version, - requirement=dependency[1], - ) - parts.append(message) - - for project_name in conflicting: - version = package_set[project_name][0] - for dep_name, dep_version, req in conflicting[project_name]: - message = ( - "{name} {version} requires {requirement}, but {you} have " - "{dep_name} {dep_version} which is incompatible." - ).format( - name=project_name, - version=version, - requirement=req, - dep_name=dep_name, - dep_version=dep_version, - you=("you" if resolver_variant == "2020-resolver" else "you'll"), - ) - parts.append(message) - - logger.critical("\n".join(parts)) - - -def get_lib_location_guesses( - user: bool = False, - home: Optional[str] = None, - root: Optional[str] = None, - isolated: bool = False, - prefix: Optional[str] = None, -) -> List[str]: - scheme = get_scheme( - "", - user=user, - home=home, - root=root, - isolated=isolated, - prefix=prefix, - ) - return [scheme.purelib, scheme.platlib] - - -def site_packages_writable(root: Optional[str], isolated: bool) -> bool: - return all( - test_writable_dir(d) - for d in set(get_lib_location_guesses(root=root, isolated=isolated)) - ) - - -def decide_user_install( - use_user_site: Optional[bool], - prefix_path: Optional[str] = None, - target_dir: Optional[str] = None, - root_path: Optional[str] = None, - isolated_mode: bool = False, -) -> bool: - """Determine whether to do a user install based on the input options. - - If use_user_site is False, no additional checks are done. - If use_user_site is True, it is checked for compatibility with other - options. - If use_user_site is None, the default behaviour depends on the environment, - which is provided by the other arguments. - """ - # In some cases (config from tox), use_user_site can be set to an integer - # rather than a bool, which 'use_user_site is False' wouldn't catch. - if (use_user_site is not None) and (not use_user_site): - logger.debug("Non-user install by explicit request") - return False - - if use_user_site: - if prefix_path: - raise CommandError( - "Can not combine '--user' and '--prefix' as they imply " - "different installation locations" - ) - if virtualenv_no_global(): - raise InstallationError( - "Can not perform a '--user' install. User site-packages " - "are not visible in this virtualenv." - ) - logger.debug("User install by explicit request") - return True - - # If we are here, user installs have not been explicitly requested/avoided - assert use_user_site is None - - # user install incompatible with --prefix/--target - if prefix_path or target_dir: - logger.debug("Non-user install due to --prefix or --target option") - return False - - # If user installs are not enabled, choose a non-user install - if not site.ENABLE_USER_SITE: - logger.debug("Non-user install because user site-packages disabled") - return False - - # If we have permission for a non-user install, do that, - # otherwise do a user install. - if site_packages_writable(root=root_path, isolated=isolated_mode): - logger.debug("Non-user install because site-packages writeable") - return False - - logger.info( - "Defaulting to user installation because normal site-packages " - "is not writeable" - ) - return True - - -def reject_location_related_install_options( - requirements: List[InstallRequirement], options: Optional[List[str]] -) -> None: - """If any location-changing --install-option arguments were passed for - requirements or on the command-line, then show a deprecation warning. - """ - - def format_options(option_names: Iterable[str]) -> List[str]: - return ["--{}".format(name.replace("_", "-")) for name in option_names] - - offenders = [] - - for requirement in requirements: - install_options = requirement.install_options - location_options = parse_distutils_args(install_options) - if location_options: - offenders.append( - "{!r} from {}".format( - format_options(location_options.keys()), requirement - ) - ) - - if options: - location_options = parse_distutils_args(options) - if location_options: - offenders.append( - "{!r} from command line".format(format_options(location_options.keys())) - ) - - if not offenders: - return - - raise CommandError( - "Location-changing options found in --install-option: {}." - " This is unsupported, use pip-level options like --user," - " --prefix, --root, and --target instead.".format("; ".join(offenders)) - ) - - -def create_os_error_message( - error: OSError, show_traceback: bool, using_user_site: bool -) -> str: - """Format an error message for an OSError - - It may occur anytime during the execution of the install command. - """ - parts = [] - - # Mention the error if we are not going to show a traceback - parts.append("Could not install packages due to an OSError") - if not show_traceback: - parts.append(": ") - parts.append(str(error)) - else: - parts.append(".") - - # Spilt the error indication from a helper message (if any) - parts[-1] += "\n" - - # Suggest useful actions to the user: - # (1) using user site-packages or (2) verifying the permissions - if error.errno == errno.EACCES: - user_option_part = "Consider using the `--user` option" - permissions_part = "Check the permissions" - - if not running_under_virtualenv() and not using_user_site: - parts.extend( - [ - user_option_part, - " or ", - permissions_part.lower(), - ] - ) - else: - parts.append(permissions_part) - parts.append(".\n") - - # Suggest the user to enable Long Paths if path length is - # more than 260 - if ( - WINDOWS - and error.errno == errno.ENOENT - and error.filename - and len(error.filename) > 260 - ): - parts.append( - "HINT: This error might have occurred since " - "this system does not have Windows Long Path " - "support enabled. You can find information on " - "how to enable this at " - "https://pip.pypa.io/warnings/enable-long-paths\n" - ) - - return "".join(parts).strip() + "\n" diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/list.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/list.py deleted file mode 100644 index 75d8dd4..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/list.py +++ /dev/null @@ -1,361 +0,0 @@ -import json -import logging -from optparse import Values -from typing import TYPE_CHECKING, Iterator, List, Optional, Sequence, Tuple, cast - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.cli import cmdoptions -from pip._internal.cli.req_command import IndexGroupCommand -from pip._internal.cli.status_codes import SUCCESS -from pip._internal.exceptions import CommandError -from pip._internal.index.collector import LinkCollector -from pip._internal.index.package_finder import PackageFinder -from pip._internal.metadata import BaseDistribution, get_environment -from pip._internal.models.selection_prefs import SelectionPreferences -from pip._internal.network.session import PipSession -from pip._internal.utils.compat import stdlib_pkgs -from pip._internal.utils.misc import tabulate, write_output -from pip._internal.utils.parallel import map_multithread - -if TYPE_CHECKING: - from pip._internal.metadata.base import DistributionVersion - - class _DistWithLatestInfo(BaseDistribution): - """Give the distribution object a couple of extra fields. - - These will be populated during ``get_outdated()``. This is dirty but - makes the rest of the code much cleaner. - """ - - latest_version: DistributionVersion - latest_filetype: str - - _ProcessedDists = Sequence[_DistWithLatestInfo] - - -logger = logging.getLogger(__name__) - - -class ListCommand(IndexGroupCommand): - """ - List installed packages, including editables. - - Packages are listed in a case-insensitive sorted order. - """ - - ignore_require_venv = True - usage = """ - %prog [options]""" - - def add_options(self) -> None: - self.cmd_opts.add_option( - "-o", - "--outdated", - action="store_true", - default=False, - help="List outdated packages", - ) - self.cmd_opts.add_option( - "-u", - "--uptodate", - action="store_true", - default=False, - help="List uptodate packages", - ) - self.cmd_opts.add_option( - "-e", - "--editable", - action="store_true", - default=False, - help="List editable projects.", - ) - self.cmd_opts.add_option( - "-l", - "--local", - action="store_true", - default=False, - help=( - "If in a virtualenv that has global access, do not list " - "globally-installed packages." - ), - ) - self.cmd_opts.add_option( - "--user", - dest="user", - action="store_true", - default=False, - help="Only output packages installed in user-site.", - ) - self.cmd_opts.add_option(cmdoptions.list_path()) - self.cmd_opts.add_option( - "--pre", - action="store_true", - default=False, - help=( - "Include pre-release and development versions. By default, " - "pip only finds stable versions." - ), - ) - - self.cmd_opts.add_option( - "--format", - action="store", - dest="list_format", - default="columns", - choices=("columns", "freeze", "json"), - help="Select the output format among: columns (default), freeze, or json", - ) - - self.cmd_opts.add_option( - "--not-required", - action="store_true", - dest="not_required", - help="List packages that are not dependencies of installed packages.", - ) - - self.cmd_opts.add_option( - "--exclude-editable", - action="store_false", - dest="include_editable", - help="Exclude editable package from output.", - ) - self.cmd_opts.add_option( - "--include-editable", - action="store_true", - dest="include_editable", - help="Include editable package from output.", - default=True, - ) - self.cmd_opts.add_option(cmdoptions.list_exclude()) - index_opts = cmdoptions.make_option_group(cmdoptions.index_group, self.parser) - - self.parser.insert_option_group(0, index_opts) - self.parser.insert_option_group(0, self.cmd_opts) - - def _build_package_finder( - self, options: Values, session: PipSession - ) -> PackageFinder: - """ - Create a package finder appropriate to this list command. - """ - link_collector = LinkCollector.create(session, options=options) - - # Pass allow_yanked=False to ignore yanked versions. - selection_prefs = SelectionPreferences( - allow_yanked=False, - allow_all_prereleases=options.pre, - ) - - return PackageFinder.create( - link_collector=link_collector, - selection_prefs=selection_prefs, - ) - - def run(self, options: Values, args: List[str]) -> int: - if options.outdated and options.uptodate: - raise CommandError("Options --outdated and --uptodate cannot be combined.") - - cmdoptions.check_list_path_option(options) - - skip = set(stdlib_pkgs) - if options.excludes: - skip.update(canonicalize_name(n) for n in options.excludes) - - packages: "_ProcessedDists" = [ - cast("_DistWithLatestInfo", d) - for d in get_environment(options.path).iter_installed_distributions( - local_only=options.local, - user_only=options.user, - editables_only=options.editable, - include_editables=options.include_editable, - skip=skip, - ) - ] - - # get_not_required must be called firstly in order to find and - # filter out all dependencies correctly. Otherwise a package - # can't be identified as requirement because some parent packages - # could be filtered out before. - if options.not_required: - packages = self.get_not_required(packages, options) - - if options.outdated: - packages = self.get_outdated(packages, options) - elif options.uptodate: - packages = self.get_uptodate(packages, options) - - self.output_package_listing(packages, options) - return SUCCESS - - def get_outdated( - self, packages: "_ProcessedDists", options: Values - ) -> "_ProcessedDists": - return [ - dist - for dist in self.iter_packages_latest_infos(packages, options) - if dist.latest_version > dist.version - ] - - def get_uptodate( - self, packages: "_ProcessedDists", options: Values - ) -> "_ProcessedDists": - return [ - dist - for dist in self.iter_packages_latest_infos(packages, options) - if dist.latest_version == dist.version - ] - - def get_not_required( - self, packages: "_ProcessedDists", options: Values - ) -> "_ProcessedDists": - dep_keys = { - canonicalize_name(dep.name) - for dist in packages - for dep in (dist.iter_dependencies() or ()) - } - - # Create a set to remove duplicate packages, and cast it to a list - # to keep the return type consistent with get_outdated and - # get_uptodate - return list({pkg for pkg in packages if pkg.canonical_name not in dep_keys}) - - def iter_packages_latest_infos( - self, packages: "_ProcessedDists", options: Values - ) -> Iterator["_DistWithLatestInfo"]: - with self._build_session(options) as session: - finder = self._build_package_finder(options, session) - - def latest_info( - dist: "_DistWithLatestInfo", - ) -> Optional["_DistWithLatestInfo"]: - all_candidates = finder.find_all_candidates(dist.canonical_name) - if not options.pre: - # Remove prereleases - all_candidates = [ - candidate - for candidate in all_candidates - if not candidate.version.is_prerelease - ] - - evaluator = finder.make_candidate_evaluator( - project_name=dist.canonical_name, - ) - best_candidate = evaluator.sort_best_candidate(all_candidates) - if best_candidate is None: - return None - - remote_version = best_candidate.version - if best_candidate.link.is_wheel: - typ = "wheel" - else: - typ = "sdist" - dist.latest_version = remote_version - dist.latest_filetype = typ - return dist - - for dist in map_multithread(latest_info, packages): - if dist is not None: - yield dist - - def output_package_listing( - self, packages: "_ProcessedDists", options: Values - ) -> None: - packages = sorted( - packages, - key=lambda dist: dist.canonical_name, - ) - if options.list_format == "columns" and packages: - data, header = format_for_columns(packages, options) - self.output_package_listing_columns(data, header) - elif options.list_format == "freeze": - for dist in packages: - if options.verbose >= 1: - write_output( - "%s==%s (%s)", dist.raw_name, dist.version, dist.location - ) - else: - write_output("%s==%s", dist.raw_name, dist.version) - elif options.list_format == "json": - write_output(format_for_json(packages, options)) - - def output_package_listing_columns( - self, data: List[List[str]], header: List[str] - ) -> None: - # insert the header first: we need to know the size of column names - if len(data) > 0: - data.insert(0, header) - - pkg_strings, sizes = tabulate(data) - - # Create and add a separator. - if len(data) > 0: - pkg_strings.insert(1, " ".join(map(lambda x: "-" * x, sizes))) - - for val in pkg_strings: - write_output(val) - - -def format_for_columns( - pkgs: "_ProcessedDists", options: Values -) -> Tuple[List[List[str]], List[str]]: - """ - Convert the package data into something usable - by output_package_listing_columns. - """ - header = ["Package", "Version"] - - running_outdated = options.outdated - if running_outdated: - header.extend(["Latest", "Type"]) - - has_editables = any(x.editable for x in pkgs) - if has_editables: - header.append("Editable project location") - - if options.verbose >= 1: - header.append("Location") - if options.verbose >= 1: - header.append("Installer") - - data = [] - for proj in pkgs: - # if we're working on the 'outdated' list, separate out the - # latest_version and type - row = [proj.raw_name, str(proj.version)] - - if running_outdated: - row.append(str(proj.latest_version)) - row.append(proj.latest_filetype) - - if has_editables: - row.append(proj.editable_project_location or "") - - if options.verbose >= 1: - row.append(proj.location or "") - if options.verbose >= 1: - row.append(proj.installer) - - data.append(row) - - return data, header - - -def format_for_json(packages: "_ProcessedDists", options: Values) -> str: - data = [] - for dist in packages: - info = { - "name": dist.raw_name, - "version": str(dist.version), - } - if options.verbose >= 1: - info["location"] = dist.location or "" - info["installer"] = dist.installer - if options.outdated: - info["latest_version"] = str(dist.latest_version) - info["latest_filetype"] = dist.latest_filetype - editable_project_location = dist.editable_project_location - if editable_project_location: - info["editable_project_location"] = editable_project_location - data.append(info) - return json.dumps(data) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/search.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/search.py deleted file mode 100644 index 03ed925..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/search.py +++ /dev/null @@ -1,174 +0,0 @@ -import logging -import shutil -import sys -import textwrap -import xmlrpc.client -from collections import OrderedDict -from optparse import Values -from typing import TYPE_CHECKING, Dict, List, Optional - -from pip._vendor.packaging.version import parse as parse_version - -from pip._internal.cli.base_command import Command -from pip._internal.cli.req_command import SessionCommandMixin -from pip._internal.cli.status_codes import NO_MATCHES_FOUND, SUCCESS -from pip._internal.exceptions import CommandError -from pip._internal.metadata import get_default_environment -from pip._internal.models.index import PyPI -from pip._internal.network.xmlrpc import PipXmlrpcTransport -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import write_output - -if TYPE_CHECKING: - from typing import TypedDict - - class TransformedHit(TypedDict): - name: str - summary: str - versions: List[str] - - -logger = logging.getLogger(__name__) - - -class SearchCommand(Command, SessionCommandMixin): - """Search for PyPI packages whose name or summary contains .""" - - usage = """ - %prog [options] """ - ignore_require_venv = True - - def add_options(self) -> None: - self.cmd_opts.add_option( - "-i", - "--index", - dest="index", - metavar="URL", - default=PyPI.pypi_url, - help="Base URL of Python Package Index (default %default)", - ) - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options: Values, args: List[str]) -> int: - if not args: - raise CommandError("Missing required argument (search query).") - query = args - pypi_hits = self.search(query, options) - hits = transform_hits(pypi_hits) - - terminal_width = None - if sys.stdout.isatty(): - terminal_width = shutil.get_terminal_size()[0] - - print_results(hits, terminal_width=terminal_width) - if pypi_hits: - return SUCCESS - return NO_MATCHES_FOUND - - def search(self, query: List[str], options: Values) -> List[Dict[str, str]]: - index_url = options.index - - session = self.get_default_session(options) - - transport = PipXmlrpcTransport(index_url, session) - pypi = xmlrpc.client.ServerProxy(index_url, transport) - try: - hits = pypi.search({"name": query, "summary": query}, "or") - except xmlrpc.client.Fault as fault: - message = "XMLRPC request failed [code: {code}]\n{string}".format( - code=fault.faultCode, - string=fault.faultString, - ) - raise CommandError(message) - assert isinstance(hits, list) - return hits - - -def transform_hits(hits: List[Dict[str, str]]) -> List["TransformedHit"]: - """ - The list from pypi is really a list of versions. We want a list of - packages with the list of versions stored inline. This converts the - list from pypi into one we can use. - """ - packages: Dict[str, "TransformedHit"] = OrderedDict() - for hit in hits: - name = hit["name"] - summary = hit["summary"] - version = hit["version"] - - if name not in packages.keys(): - packages[name] = { - "name": name, - "summary": summary, - "versions": [version], - } - else: - packages[name]["versions"].append(version) - - # if this is the highest version, replace summary and score - if version == highest_version(packages[name]["versions"]): - packages[name]["summary"] = summary - - return list(packages.values()) - - -def print_dist_installation_info(name: str, latest: str) -> None: - env = get_default_environment() - dist = env.get_distribution(name) - if dist is not None: - with indent_log(): - if dist.version == latest: - write_output("INSTALLED: %s (latest)", dist.version) - else: - write_output("INSTALLED: %s", dist.version) - if parse_version(latest).pre: - write_output( - "LATEST: %s (pre-release; install" - " with `pip install --pre`)", - latest, - ) - else: - write_output("LATEST: %s", latest) - - -def print_results( - hits: List["TransformedHit"], - name_column_width: Optional[int] = None, - terminal_width: Optional[int] = None, -) -> None: - if not hits: - return - if name_column_width is None: - name_column_width = ( - max( - [ - len(hit["name"]) + len(highest_version(hit.get("versions", ["-"]))) - for hit in hits - ] - ) - + 4 - ) - - for hit in hits: - name = hit["name"] - summary = hit["summary"] or "" - latest = highest_version(hit.get("versions", ["-"])) - if terminal_width is not None: - target_width = terminal_width - name_column_width - 5 - if target_width > 10: - # wrap and indent summary to fit terminal - summary_lines = textwrap.wrap(summary, target_width) - summary = ("\n" + " " * (name_column_width + 3)).join(summary_lines) - - name_latest = f"{name} ({latest})" - line = f"{name_latest:{name_column_width}} - {summary}" - try: - write_output(line) - print_dist_installation_info(name, latest) - except UnicodeEncodeError: - pass - - -def highest_version(versions: List[str]) -> str: - return max(versions, key=parse_version) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/show.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/show.py deleted file mode 100644 index 872292a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/show.py +++ /dev/null @@ -1,235 +0,0 @@ -import csv -import logging -import pathlib -from optparse import Values -from typing import Iterator, List, NamedTuple, Optional, Tuple - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import ERROR, SUCCESS -from pip._internal.metadata import BaseDistribution, get_default_environment -from pip._internal.utils.misc import write_output - -logger = logging.getLogger(__name__) - - -class ShowCommand(Command): - """ - Show information about one or more installed packages. - - The output is in RFC-compliant mail header format. - """ - - usage = """ - %prog [options] ...""" - ignore_require_venv = True - - def add_options(self) -> None: - self.cmd_opts.add_option( - "-f", - "--files", - dest="files", - action="store_true", - default=False, - help="Show the full list of installed files for each package.", - ) - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options: Values, args: List[str]) -> int: - if not args: - logger.warning("ERROR: Please provide a package name or names.") - return ERROR - query = args - - results = search_packages_info(query) - if not print_results( - results, list_files=options.files, verbose=options.verbose - ): - return ERROR - return SUCCESS - - -class _PackageInfo(NamedTuple): - name: str - version: str - location: str - requires: List[str] - required_by: List[str] - installer: str - metadata_version: str - classifiers: List[str] - summary: str - homepage: str - author: str - author_email: str - license: str - entry_points: List[str] - files: Optional[List[str]] - - -def _convert_legacy_entry(entry: Tuple[str, ...], info: Tuple[str, ...]) -> str: - """Convert a legacy installed-files.txt path into modern RECORD path. - - The legacy format stores paths relative to the info directory, while the - modern format stores paths relative to the package root, e.g. the - site-packages directory. - - :param entry: Path parts of the installed-files.txt entry. - :param info: Path parts of the egg-info directory relative to package root. - :returns: The converted entry. - - For best compatibility with symlinks, this does not use ``abspath()`` or - ``Path.resolve()``, but tries to work with path parts: - - 1. While ``entry`` starts with ``..``, remove the equal amounts of parts - from ``info``; if ``info`` is empty, start appending ``..`` instead. - 2. Join the two directly. - """ - while entry and entry[0] == "..": - if not info or info[-1] == "..": - info += ("..",) - else: - info = info[:-1] - entry = entry[1:] - return str(pathlib.Path(*info, *entry)) - - -def search_packages_info(query: List[str]) -> Iterator[_PackageInfo]: - """ - Gather details from installed distributions. Print distribution name, - version, location, and installed files. Installed files requires a - pip generated 'installed-files.txt' in the distributions '.egg-info' - directory. - """ - env = get_default_environment() - - installed = {dist.canonical_name: dist for dist in env.iter_distributions()} - query_names = [canonicalize_name(name) for name in query] - missing = sorted( - [name for name, pkg in zip(query, query_names) if pkg not in installed] - ) - if missing: - logger.warning("Package(s) not found: %s", ", ".join(missing)) - - def _get_requiring_packages(current_dist: BaseDistribution) -> Iterator[str]: - return ( - dist.metadata["Name"] or "UNKNOWN" - for dist in installed.values() - if current_dist.canonical_name - in {canonicalize_name(d.name) for d in dist.iter_dependencies()} - ) - - def _files_from_record(dist: BaseDistribution) -> Optional[Iterator[str]]: - try: - text = dist.read_text("RECORD") - except FileNotFoundError: - return None - # This extra Path-str cast normalizes entries. - return (str(pathlib.Path(row[0])) for row in csv.reader(text.splitlines())) - - def _files_from_legacy(dist: BaseDistribution) -> Optional[Iterator[str]]: - try: - text = dist.read_text("installed-files.txt") - except FileNotFoundError: - return None - paths = (p for p in text.splitlines(keepends=False) if p) - root = dist.location - info = dist.info_directory - if root is None or info is None: - return paths - try: - info_rel = pathlib.Path(info).relative_to(root) - except ValueError: # info is not relative to root. - return paths - if not info_rel.parts: # info *is* root. - return paths - return ( - _convert_legacy_entry(pathlib.Path(p).parts, info_rel.parts) for p in paths - ) - - for query_name in query_names: - try: - dist = installed[query_name] - except KeyError: - continue - - requires = sorted((req.name for req in dist.iter_dependencies()), key=str.lower) - required_by = sorted(_get_requiring_packages(dist), key=str.lower) - - try: - entry_points_text = dist.read_text("entry_points.txt") - entry_points = entry_points_text.splitlines(keepends=False) - except FileNotFoundError: - entry_points = [] - - files_iter = _files_from_record(dist) or _files_from_legacy(dist) - if files_iter is None: - files: Optional[List[str]] = None - else: - files = sorted(files_iter) - - metadata = dist.metadata - - yield _PackageInfo( - name=dist.raw_name, - version=str(dist.version), - location=dist.location or "", - requires=requires, - required_by=required_by, - installer=dist.installer, - metadata_version=dist.metadata_version or "", - classifiers=metadata.get_all("Classifier", []), - summary=metadata.get("Summary", ""), - homepage=metadata.get("Home-page", ""), - author=metadata.get("Author", ""), - author_email=metadata.get("Author-email", ""), - license=metadata.get("License", ""), - entry_points=entry_points, - files=files, - ) - - -def print_results( - distributions: Iterator[_PackageInfo], - list_files: bool, - verbose: bool, -) -> bool: - """ - Print the information from installed distributions found. - """ - results_printed = False - for i, dist in enumerate(distributions): - results_printed = True - if i > 0: - write_output("---") - - write_output("Name: %s", dist.name) - write_output("Version: %s", dist.version) - write_output("Summary: %s", dist.summary) - write_output("Home-page: %s", dist.homepage) - write_output("Author: %s", dist.author) - write_output("Author-email: %s", dist.author_email) - write_output("License: %s", dist.license) - write_output("Location: %s", dist.location) - write_output("Requires: %s", ", ".join(dist.requires)) - write_output("Required-by: %s", ", ".join(dist.required_by)) - - if verbose: - write_output("Metadata-Version: %s", dist.metadata_version) - write_output("Installer: %s", dist.installer) - write_output("Classifiers:") - for classifier in dist.classifiers: - write_output(" %s", classifier) - write_output("Entry-points:") - for entry in dist.entry_points: - write_output(" %s", entry.strip()) - if list_files: - write_output("Files:") - if dist.files is None: - write_output("Cannot locate RECORD or installed-files.txt") - else: - for line in dist.files: - write_output(" %s", line.strip()) - return results_printed diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py deleted file mode 100644 index bb9e8e6..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py +++ /dev/null @@ -1,105 +0,0 @@ -import logging -from optparse import Values -from typing import List - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.cli.base_command import Command -from pip._internal.cli.req_command import SessionCommandMixin, warn_if_run_as_root -from pip._internal.cli.status_codes import SUCCESS -from pip._internal.exceptions import InstallationError -from pip._internal.req import parse_requirements -from pip._internal.req.constructors import ( - install_req_from_line, - install_req_from_parsed_requirement, -) -from pip._internal.utils.misc import protect_pip_from_modification_on_windows - -logger = logging.getLogger(__name__) - - -class UninstallCommand(Command, SessionCommandMixin): - """ - Uninstall packages. - - pip is able to uninstall most installed packages. Known exceptions are: - - - Pure distutils packages installed with ``python setup.py install``, which - leave behind no metadata to determine what files were installed. - - Script wrappers installed by ``python setup.py develop``. - """ - - usage = """ - %prog [options] ... - %prog [options] -r ...""" - - def add_options(self) -> None: - self.cmd_opts.add_option( - "-r", - "--requirement", - dest="requirements", - action="append", - default=[], - metavar="file", - help=( - "Uninstall all the packages listed in the given requirements " - "file. This option can be used multiple times." - ), - ) - self.cmd_opts.add_option( - "-y", - "--yes", - dest="yes", - action="store_true", - help="Don't ask for confirmation of uninstall deletions.", - ) - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options: Values, args: List[str]) -> int: - session = self.get_default_session(options) - - reqs_to_uninstall = {} - for name in args: - req = install_req_from_line( - name, - isolated=options.isolated_mode, - ) - if req.name: - reqs_to_uninstall[canonicalize_name(req.name)] = req - else: - logger.warning( - "Invalid requirement: %r ignored -" - " the uninstall command expects named" - " requirements.", - name, - ) - for filename in options.requirements: - for parsed_req in parse_requirements( - filename, options=options, session=session - ): - req = install_req_from_parsed_requirement( - parsed_req, isolated=options.isolated_mode - ) - if req.name: - reqs_to_uninstall[canonicalize_name(req.name)] = req - if not reqs_to_uninstall: - raise InstallationError( - f"You must give at least one requirement to {self.name} (see " - f'"pip help {self.name}")' - ) - - protect_pip_from_modification_on_windows( - modifying_pip="pip" in reqs_to_uninstall - ) - - for req in reqs_to_uninstall.values(): - uninstall_pathset = req.uninstall( - auto_confirm=options.yes, - verbose=self.verbosity > 0, - ) - if uninstall_pathset: - uninstall_pathset.commit() - - warn_if_run_as_root() - return SUCCESS diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/commands/wheel.py b/.venv/lib/python3.9/site-packages/pip/_internal/commands/wheel.py deleted file mode 100644 index cea81ee..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/commands/wheel.py +++ /dev/null @@ -1,177 +0,0 @@ -import logging -import os -import shutil -from optparse import Values -from typing import List - -from pip._internal.cache import WheelCache -from pip._internal.cli import cmdoptions -from pip._internal.cli.req_command import RequirementCommand, with_cleanup -from pip._internal.cli.status_codes import SUCCESS -from pip._internal.exceptions import CommandError -from pip._internal.req.req_install import InstallRequirement -from pip._internal.req.req_tracker import get_requirement_tracker -from pip._internal.utils.misc import ensure_dir, normalize_path -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.wheel_builder import build, should_build_for_wheel_command - -logger = logging.getLogger(__name__) - - -class WheelCommand(RequirementCommand): - """ - Build Wheel archives for your requirements and dependencies. - - Wheel is a built-package format, and offers the advantage of not - recompiling your software during every install. For more details, see the - wheel docs: https://wheel.readthedocs.io/en/latest/ - - Requirements: setuptools>=0.8, and wheel. - - 'pip wheel' uses the bdist_wheel setuptools extension from the wheel - package to build individual wheels. - - """ - - usage = """ - %prog [options] ... - %prog [options] -r ... - %prog [options] [-e] ... - %prog [options] [-e] ... - %prog [options] ...""" - - def add_options(self) -> None: - - self.cmd_opts.add_option( - "-w", - "--wheel-dir", - dest="wheel_dir", - metavar="dir", - default=os.curdir, - help=( - "Build wheels into , where the default is the " - "current working directory." - ), - ) - self.cmd_opts.add_option(cmdoptions.no_binary()) - self.cmd_opts.add_option(cmdoptions.only_binary()) - self.cmd_opts.add_option(cmdoptions.prefer_binary()) - self.cmd_opts.add_option(cmdoptions.no_build_isolation()) - self.cmd_opts.add_option(cmdoptions.use_pep517()) - self.cmd_opts.add_option(cmdoptions.no_use_pep517()) - self.cmd_opts.add_option(cmdoptions.constraints()) - self.cmd_opts.add_option(cmdoptions.editable()) - self.cmd_opts.add_option(cmdoptions.requirements()) - self.cmd_opts.add_option(cmdoptions.src()) - self.cmd_opts.add_option(cmdoptions.ignore_requires_python()) - self.cmd_opts.add_option(cmdoptions.no_deps()) - self.cmd_opts.add_option(cmdoptions.progress_bar()) - - self.cmd_opts.add_option( - "--no-verify", - dest="no_verify", - action="store_true", - default=False, - help="Don't verify if built wheel is valid.", - ) - - self.cmd_opts.add_option(cmdoptions.build_options()) - self.cmd_opts.add_option(cmdoptions.global_options()) - - self.cmd_opts.add_option( - "--pre", - action="store_true", - default=False, - help=( - "Include pre-release and development versions. By default, " - "pip only finds stable versions." - ), - ) - - self.cmd_opts.add_option(cmdoptions.require_hashes()) - - index_opts = cmdoptions.make_option_group( - cmdoptions.index_group, - self.parser, - ) - - self.parser.insert_option_group(0, index_opts) - self.parser.insert_option_group(0, self.cmd_opts) - - @with_cleanup - def run(self, options: Values, args: List[str]) -> int: - cmdoptions.check_install_build_global(options) - - session = self.get_default_session(options) - - finder = self._build_package_finder(options, session) - wheel_cache = WheelCache(options.cache_dir, options.format_control) - - options.wheel_dir = normalize_path(options.wheel_dir) - ensure_dir(options.wheel_dir) - - req_tracker = self.enter_context(get_requirement_tracker()) - - directory = TempDirectory( - delete=not options.no_clean, - kind="wheel", - globally_managed=True, - ) - - reqs = self.get_requirements(args, options, finder, session) - - preparer = self.make_requirement_preparer( - temp_build_dir=directory, - options=options, - req_tracker=req_tracker, - session=session, - finder=finder, - download_dir=options.wheel_dir, - use_user_site=False, - ) - - resolver = self.make_resolver( - preparer=preparer, - finder=finder, - options=options, - wheel_cache=wheel_cache, - ignore_requires_python=options.ignore_requires_python, - use_pep517=options.use_pep517, - ) - - self.trace_basic_info(finder) - - requirement_set = resolver.resolve(reqs, check_supported_wheels=True) - - reqs_to_build: List[InstallRequirement] = [] - for req in requirement_set.requirements.values(): - if req.is_wheel: - preparer.save_linked_requirement(req) - elif should_build_for_wheel_command(req): - reqs_to_build.append(req) - - # build wheels - build_successes, build_failures = build( - reqs_to_build, - wheel_cache=wheel_cache, - verify=(not options.no_verify), - build_options=options.build_options or [], - global_options=options.global_options or [], - ) - for req in build_successes: - assert req.link and req.link.is_wheel - assert req.local_file_path - # copy from cache to target directory - try: - shutil.copy(req.local_file_path, options.wheel_dir) - except OSError as e: - logger.warning( - "Building wheel for %s failed: %s", - req.name, - e, - ) - build_failures.append(req) - if len(build_failures) != 0: - raise CommandError("Failed to build one or more wheels") - - return SUCCESS diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/configuration.py b/.venv/lib/python3.9/site-packages/pip/_internal/configuration.py deleted file mode 100644 index 4c3a362..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/configuration.py +++ /dev/null @@ -1,367 +0,0 @@ -"""Configuration management setup - -Some terminology: -- name - As written in config files. -- value - Value associated with a name -- key - Name combined with it's section (section.name) -- variant - A single word describing where the configuration key-value pair came from -""" - -import configparser -import locale -import os -import sys -from typing import Any, Dict, Iterable, List, NewType, Optional, Tuple - -from pip._internal.exceptions import ( - ConfigurationError, - ConfigurationFileCouldNotBeLoaded, -) -from pip._internal.utils import appdirs -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.logging import getLogger -from pip._internal.utils.misc import ensure_dir, enum - -RawConfigParser = configparser.RawConfigParser # Shorthand -Kind = NewType("Kind", str) - -CONFIG_BASENAME = "pip.ini" if WINDOWS else "pip.conf" -ENV_NAMES_IGNORED = "version", "help" - -# The kinds of configurations there are. -kinds = enum( - USER="user", # User Specific - GLOBAL="global", # System Wide - SITE="site", # [Virtual] Environment Specific - ENV="env", # from PIP_CONFIG_FILE - ENV_VAR="env-var", # from Environment Variables -) -OVERRIDE_ORDER = kinds.GLOBAL, kinds.USER, kinds.SITE, kinds.ENV, kinds.ENV_VAR -VALID_LOAD_ONLY = kinds.USER, kinds.GLOBAL, kinds.SITE - -logger = getLogger(__name__) - - -# NOTE: Maybe use the optionx attribute to normalize keynames. -def _normalize_name(name: str) -> str: - """Make a name consistent regardless of source (environment or file)""" - name = name.lower().replace("_", "-") - if name.startswith("--"): - name = name[2:] # only prefer long opts - return name - - -def _disassemble_key(name: str) -> List[str]: - if "." not in name: - error_message = ( - "Key does not contain dot separated section and key. " - "Perhaps you wanted to use 'global.{}' instead?" - ).format(name) - raise ConfigurationError(error_message) - return name.split(".", 1) - - -def get_configuration_files() -> Dict[Kind, List[str]]: - global_config_files = [ - os.path.join(path, CONFIG_BASENAME) for path in appdirs.site_config_dirs("pip") - ] - - site_config_file = os.path.join(sys.prefix, CONFIG_BASENAME) - legacy_config_file = os.path.join( - os.path.expanduser("~"), - "pip" if WINDOWS else ".pip", - CONFIG_BASENAME, - ) - new_config_file = os.path.join(appdirs.user_config_dir("pip"), CONFIG_BASENAME) - return { - kinds.GLOBAL: global_config_files, - kinds.SITE: [site_config_file], - kinds.USER: [legacy_config_file, new_config_file], - } - - -class Configuration: - """Handles management of configuration. - - Provides an interface to accessing and managing configuration files. - - This class converts provides an API that takes "section.key-name" style - keys and stores the value associated with it as "key-name" under the - section "section". - - This allows for a clean interface wherein the both the section and the - key-name are preserved in an easy to manage form in the configuration files - and the data stored is also nice. - """ - - def __init__(self, isolated: bool, load_only: Optional[Kind] = None) -> None: - super().__init__() - - if load_only is not None and load_only not in VALID_LOAD_ONLY: - raise ConfigurationError( - "Got invalid value for load_only - should be one of {}".format( - ", ".join(map(repr, VALID_LOAD_ONLY)) - ) - ) - self.isolated = isolated - self.load_only = load_only - - # Because we keep track of where we got the data from - self._parsers: Dict[Kind, List[Tuple[str, RawConfigParser]]] = { - variant: [] for variant in OVERRIDE_ORDER - } - self._config: Dict[Kind, Dict[str, Any]] = { - variant: {} for variant in OVERRIDE_ORDER - } - self._modified_parsers: List[Tuple[str, RawConfigParser]] = [] - - def load(self) -> None: - """Loads configuration from configuration files and environment""" - self._load_config_files() - if not self.isolated: - self._load_environment_vars() - - def get_file_to_edit(self) -> Optional[str]: - """Returns the file with highest priority in configuration""" - assert self.load_only is not None, "Need to be specified a file to be editing" - - try: - return self._get_parser_to_modify()[0] - except IndexError: - return None - - def items(self) -> Iterable[Tuple[str, Any]]: - """Returns key-value pairs like dict.items() representing the loaded - configuration - """ - return self._dictionary.items() - - def get_value(self, key: str) -> Any: - """Get a value from the configuration.""" - try: - return self._dictionary[key] - except KeyError: - raise ConfigurationError(f"No such key - {key}") - - def set_value(self, key: str, value: Any) -> None: - """Modify a value in the configuration.""" - self._ensure_have_load_only() - - assert self.load_only - fname, parser = self._get_parser_to_modify() - - if parser is not None: - section, name = _disassemble_key(key) - - # Modify the parser and the configuration - if not parser.has_section(section): - parser.add_section(section) - parser.set(section, name, value) - - self._config[self.load_only][key] = value - self._mark_as_modified(fname, parser) - - def unset_value(self, key: str) -> None: - """Unset a value in the configuration.""" - self._ensure_have_load_only() - - assert self.load_only - if key not in self._config[self.load_only]: - raise ConfigurationError(f"No such key - {key}") - - fname, parser = self._get_parser_to_modify() - - if parser is not None: - section, name = _disassemble_key(key) - if not ( - parser.has_section(section) and parser.remove_option(section, name) - ): - # The option was not removed. - raise ConfigurationError( - "Fatal Internal error [id=1]. Please report as a bug." - ) - - # The section may be empty after the option was removed. - if not parser.items(section): - parser.remove_section(section) - self._mark_as_modified(fname, parser) - - del self._config[self.load_only][key] - - def save(self) -> None: - """Save the current in-memory state.""" - self._ensure_have_load_only() - - for fname, parser in self._modified_parsers: - logger.info("Writing to %s", fname) - - # Ensure directory exists. - ensure_dir(os.path.dirname(fname)) - - with open(fname, "w") as f: - parser.write(f) - - # - # Private routines - # - - def _ensure_have_load_only(self) -> None: - if self.load_only is None: - raise ConfigurationError("Needed a specific file to be modifying.") - logger.debug("Will be working with %s variant only", self.load_only) - - @property - def _dictionary(self) -> Dict[str, Any]: - """A dictionary representing the loaded configuration.""" - # NOTE: Dictionaries are not populated if not loaded. So, conditionals - # are not needed here. - retval = {} - - for variant in OVERRIDE_ORDER: - retval.update(self._config[variant]) - - return retval - - def _load_config_files(self) -> None: - """Loads configuration from configuration files""" - config_files = dict(self.iter_config_files()) - if config_files[kinds.ENV][0:1] == [os.devnull]: - logger.debug( - "Skipping loading configuration files due to " - "environment's PIP_CONFIG_FILE being os.devnull" - ) - return - - for variant, files in config_files.items(): - for fname in files: - # If there's specific variant set in `load_only`, load only - # that variant, not the others. - if self.load_only is not None and variant != self.load_only: - logger.debug("Skipping file '%s' (variant: %s)", fname, variant) - continue - - parser = self._load_file(variant, fname) - - # Keeping track of the parsers used - self._parsers[variant].append((fname, parser)) - - def _load_file(self, variant: Kind, fname: str) -> RawConfigParser: - logger.verbose("For variant '%s', will try loading '%s'", variant, fname) - parser = self._construct_parser(fname) - - for section in parser.sections(): - items = parser.items(section) - self._config[variant].update(self._normalized_keys(section, items)) - - return parser - - def _construct_parser(self, fname: str) -> RawConfigParser: - parser = configparser.RawConfigParser() - # If there is no such file, don't bother reading it but create the - # parser anyway, to hold the data. - # Doing this is useful when modifying and saving files, where we don't - # need to construct a parser. - if os.path.exists(fname): - try: - parser.read(fname) - except UnicodeDecodeError: - # See https://github.com/pypa/pip/issues/4963 - raise ConfigurationFileCouldNotBeLoaded( - reason="contains invalid {} characters".format( - locale.getpreferredencoding(False) - ), - fname=fname, - ) - except configparser.Error as error: - # See https://github.com/pypa/pip/issues/4893 - raise ConfigurationFileCouldNotBeLoaded(error=error) - return parser - - def _load_environment_vars(self) -> None: - """Loads configuration from environment variables""" - self._config[kinds.ENV_VAR].update( - self._normalized_keys(":env:", self.get_environ_vars()) - ) - - def _normalized_keys( - self, section: str, items: Iterable[Tuple[str, Any]] - ) -> Dict[str, Any]: - """Normalizes items to construct a dictionary with normalized keys. - - This routine is where the names become keys and are made the same - regardless of source - configuration files or environment. - """ - normalized = {} - for name, val in items: - key = section + "." + _normalize_name(name) - normalized[key] = val - return normalized - - def get_environ_vars(self) -> Iterable[Tuple[str, str]]: - """Returns a generator with all environmental vars with prefix PIP_""" - for key, val in os.environ.items(): - if key.startswith("PIP_"): - name = key[4:].lower() - if name not in ENV_NAMES_IGNORED: - yield name, val - - # XXX: This is patched in the tests. - def iter_config_files(self) -> Iterable[Tuple[Kind, List[str]]]: - """Yields variant and configuration files associated with it. - - This should be treated like items of a dictionary. - """ - # SMELL: Move the conditions out of this function - - # environment variables have the lowest priority - config_file = os.environ.get("PIP_CONFIG_FILE", None) - if config_file is not None: - yield kinds.ENV, [config_file] - else: - yield kinds.ENV, [] - - config_files = get_configuration_files() - - # at the base we have any global configuration - yield kinds.GLOBAL, config_files[kinds.GLOBAL] - - # per-user configuration next - should_load_user_config = not self.isolated and not ( - config_file and os.path.exists(config_file) - ) - if should_load_user_config: - # The legacy config file is overridden by the new config file - yield kinds.USER, config_files[kinds.USER] - - # finally virtualenv configuration first trumping others - yield kinds.SITE, config_files[kinds.SITE] - - def get_values_in_config(self, variant: Kind) -> Dict[str, Any]: - """Get values present in a config file""" - return self._config[variant] - - def _get_parser_to_modify(self) -> Tuple[str, RawConfigParser]: - # Determine which parser to modify - assert self.load_only - parsers = self._parsers[self.load_only] - if not parsers: - # This should not happen if everything works correctly. - raise ConfigurationError( - "Fatal Internal error [id=2]. Please report as a bug." - ) - - # Use the highest priority parser. - return parsers[-1] - - # XXX: This is patched in the tests. - def _mark_as_modified(self, fname: str, parser: RawConfigParser) -> None: - file_parser_tuple = (fname, parser) - if file_parser_tuple not in self._modified_parsers: - self._modified_parsers.append(file_parser_tuple) - - def __repr__(self) -> str: - return f"{self.__class__.__name__}({self._dictionary!r})" diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__init__.py deleted file mode 100644 index 9a89a83..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -from pip._internal.distributions.base import AbstractDistribution -from pip._internal.distributions.sdist import SourceDistribution -from pip._internal.distributions.wheel import WheelDistribution -from pip._internal.req.req_install import InstallRequirement - - -def make_distribution_for_install_requirement( - install_req: InstallRequirement, -) -> AbstractDistribution: - """Returns a Distribution for the given InstallRequirement""" - # Editable requirements will always be source distributions. They use the - # legacy logic until we create a modern standard for them. - if install_req.editable: - return SourceDistribution(install_req) - - # If it's a wheel, it's a WheelDistribution - if install_req.is_wheel: - return WheelDistribution(install_req) - - # Otherwise, a SourceDistribution - return SourceDistribution(install_req) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index c2d7a82011cd2a30ee6c5b4c46e7e6c8dee76a89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 806 zcmaJ<&2H2%5Vn(SlF}B5iX%ut;*taLfdfK92-IGaDy4 z5--4O@EEyr;uSa`#wiP-LUlCu%x7ojo6i>e`*#SAPhZnj?i2FO1@nOzd4*<c} z6=`Trsq;PMHGb|-zORC2kuN4cP+=405hV}-trnlXDy*W9K^|A}lB7G|F%wDYc>i@_ ztQMs`lDNuZu(E3rKUj8yF5w1x?_CX`Zh!}GT4RM$$8bJK4Gpw5^~PO!jdBg=W2nIn zx-F@z`g=IvLpww>k8!#rE28gOdP%P6(nX$rVEyZ8i>CC$v*Rh3NklRylALrpu{9*8 zat&?rA5Os-LnW;!6lkaD7)!%9t|1*@m{J|$@`Y%389z3x?iyf)H1$TT04%d$ENkJ! zaszq|n%nm+?{!y#F)YKPYo=tu`U_ik?bGZzGt$D7UX*9z6b$QS&$w(Y=vF9J&Ez(W z}|R;CRi@}Q!bmQGg%?9 z1E>A?=(b~K`fHNv)^mR~%pd-n56Na|Tk?8=H7AOb#7Isho$S%+ J3q0!m`~?s;>x%#Y diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/base.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/base.cpython-39.pyc deleted file mode 100644 index 28a69c75af09eb2c9510c28f3623ed25f88678f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1881 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 f=%T~*O2t(8zajFYk2{7QQZs{i4&y_V>-P5Wvlj diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/base.py b/.venv/lib/python3.9/site-packages/pip/_internal/distributions/base.py deleted file mode 100644 index 149fff5..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/base.py +++ /dev/null @@ -1,36 +0,0 @@ -import abc - -from pip._internal.index.package_finder import PackageFinder -from pip._internal.metadata.base import BaseDistribution -from pip._internal.req import InstallRequirement - - -class AbstractDistribution(metaclass=abc.ABCMeta): - """A base class for handling installable artifacts. - - The requirements for anything installable are as follows: - - - we must be able to determine the requirement name - (or we can't correctly handle the non-upgrade case). - - - for packages with setup requirements, we must also be able - to determine their requirements without installing additional - packages (for the same reason as run-time dependencies) - - - we must be able to create a Distribution object exposing the - above metadata. - """ - - def __init__(self, req: InstallRequirement) -> None: - super().__init__() - self.req = req - - @abc.abstractmethod - def get_metadata_distribution(self) -> BaseDistribution: - raise NotImplementedError() - - @abc.abstractmethod - def prepare_distribution_metadata( - self, finder: PackageFinder, build_isolation: bool - ) -> None: - raise NotImplementedError() diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/installed.py b/.venv/lib/python3.9/site-packages/pip/_internal/distributions/installed.py deleted file mode 100644 index 6c8c179..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/installed.py +++ /dev/null @@ -1,22 +0,0 @@ -from pip._internal.distributions.base import AbstractDistribution -from pip._internal.index.package_finder import PackageFinder -from pip._internal.metadata import BaseDistribution - - -class InstalledDistribution(AbstractDistribution): - """Represents an installed package. - - This does not need any preparation as the required information has already - been computed. - """ - - def get_metadata_distribution(self) -> BaseDistribution: - from pip._internal.metadata.pkg_resources import Distribution as _Dist - - assert self.req.satisfied_by is not None, "not actually installed" - return _Dist(self.req.satisfied_by) - - def prepare_distribution_metadata( - self, finder: PackageFinder, build_isolation: bool - ) -> None: - pass diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py b/.venv/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py deleted file mode 100644 index cd85ac5..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py +++ /dev/null @@ -1,129 +0,0 @@ -import logging -from typing import Iterable, Set, Tuple - -from pip._internal.build_env import BuildEnvironment -from pip._internal.distributions.base import AbstractDistribution -from pip._internal.exceptions import InstallationError -from pip._internal.index.package_finder import PackageFinder -from pip._internal.metadata import BaseDistribution -from pip._internal.utils.subprocess import runner_with_spinner_message - -logger = logging.getLogger(__name__) - - -class SourceDistribution(AbstractDistribution): - """Represents a source distribution. - - The preparation step for these needs metadata for the packages to be - generated, either using PEP 517 or using the legacy `setup.py egg_info`. - """ - - def get_metadata_distribution(self) -> BaseDistribution: - from pip._internal.metadata.pkg_resources import Distribution as _Dist - - return _Dist(self.req.get_dist()) - - def prepare_distribution_metadata( - self, finder: PackageFinder, build_isolation: bool - ) -> None: - # Load pyproject.toml, to determine whether PEP 517 is to be used - self.req.load_pyproject_toml() - - # Set up the build isolation, if this requirement should be isolated - should_isolate = self.req.use_pep517 and build_isolation - if should_isolate: - # Setup an isolated environment and install the build backend static - # requirements in it. - self._prepare_build_backend(finder) - # Check that if the requirement is editable, it either supports PEP 660 or - # has a setup.py or a setup.cfg. This cannot be done earlier because we need - # to setup the build backend to verify it supports build_editable, nor can - # it be done later, because we want to avoid installing build requirements - # needlessly. Doing it here also works around setuptools generating - # UNKNOWN.egg-info when running get_requires_for_build_wheel on a directory - # without setup.py nor setup.cfg. - self.req.isolated_editable_sanity_check() - # Install the dynamic build requirements. - self._install_build_reqs(finder) - - self.req.prepare_metadata() - - def _prepare_build_backend(self, finder: PackageFinder) -> None: - # Isolate in a BuildEnvironment and install the build-time - # requirements. - pyproject_requires = self.req.pyproject_requires - assert pyproject_requires is not None - - self.req.build_env = BuildEnvironment() - self.req.build_env.install_requirements( - finder, pyproject_requires, "overlay", "Installing build dependencies" - ) - conflicting, missing = self.req.build_env.check_requirements( - self.req.requirements_to_check - ) - if conflicting: - self._raise_conflicts("PEP 517/518 supported requirements", conflicting) - if missing: - logger.warning( - "Missing build requirements in pyproject.toml for %s.", - self.req, - ) - logger.warning( - "The project does not specify a build backend, and " - "pip cannot fall back to setuptools without %s.", - " and ".join(map(repr, sorted(missing))), - ) - - def _get_build_requires_wheel(self) -> Iterable[str]: - with self.req.build_env: - runner = runner_with_spinner_message("Getting requirements to build wheel") - backend = self.req.pep517_backend - assert backend is not None - with backend.subprocess_runner(runner): - return backend.get_requires_for_build_wheel() - - def _get_build_requires_editable(self) -> Iterable[str]: - with self.req.build_env: - runner = runner_with_spinner_message( - "Getting requirements to build editable" - ) - backend = self.req.pep517_backend - assert backend is not None - with backend.subprocess_runner(runner): - return backend.get_requires_for_build_editable() - - def _install_build_reqs(self, finder: PackageFinder) -> None: - # Install any extra build dependencies that the backend requests. - # This must be done in a second pass, as the pyproject.toml - # dependencies must be installed before we can call the backend. - if ( - self.req.editable - and self.req.permit_editable_wheels - and self.req.supports_pyproject_editable() - ): - build_reqs = self._get_build_requires_editable() - else: - build_reqs = self._get_build_requires_wheel() - conflicting, missing = self.req.build_env.check_requirements(build_reqs) - if conflicting: - self._raise_conflicts("the backend dependencies", conflicting) - self.req.build_env.install_requirements( - finder, missing, "normal", "Installing backend dependencies" - ) - - def _raise_conflicts( - self, conflicting_with: str, conflicting_reqs: Set[Tuple[str, str]] - ) -> None: - format_string = ( - "Some build dependencies for {requirement} " - "conflict with {conflicting_with}: {description}." - ) - error_message = format_string.format( - requirement=self.req, - conflicting_with=conflicting_with, - description=", ".join( - f"{installed} is incompatible with {wanted}" - for installed, wanted in sorted(conflicting_reqs) - ), - ) - raise InstallationError(error_message) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/wheel.py b/.venv/lib/python3.9/site-packages/pip/_internal/distributions/wheel.py deleted file mode 100644 index 340b0f3..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/distributions/wheel.py +++ /dev/null @@ -1,31 +0,0 @@ -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.distributions.base import AbstractDistribution -from pip._internal.index.package_finder import PackageFinder -from pip._internal.metadata import ( - BaseDistribution, - FilesystemWheel, - get_wheel_distribution, -) - - -class WheelDistribution(AbstractDistribution): - """Represents a wheel distribution. - - This does not need any preparation as wheels can be directly unpacked. - """ - - def get_metadata_distribution(self) -> BaseDistribution: - """Loads the metadata from the wheel file into memory and returns a - Distribution that uses it, not relying on the wheel file or - requirement. - """ - assert self.req.local_file_path, "Set as part of preparation during download" - assert self.req.name, "Wheels are never unnamed" - wheel = FilesystemWheel(self.req.local_file_path) - return get_wheel_distribution(wheel, canonicalize_name(self.req.name)) - - def prepare_distribution_metadata( - self, finder: PackageFinder, build_isolation: bool - ) -> None: - pass diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/exceptions.py b/.venv/lib/python3.9/site-packages/pip/_internal/exceptions.py deleted file mode 100644 index ef5bc75..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/exceptions.py +++ /dev/null @@ -1,402 +0,0 @@ -"""Exceptions used throughout package""" - -import configparser -from itertools import chain, groupby, repeat -from typing import TYPE_CHECKING, Dict, List, Optional, Union - -from pip._vendor.pkg_resources import Distribution -from pip._vendor.requests.models import Request, Response - -if TYPE_CHECKING: - from hashlib import _Hash - - from pip._internal.metadata import BaseDistribution - from pip._internal.req.req_install import InstallRequirement - - -class PipError(Exception): - """Base pip exception""" - - -class ConfigurationError(PipError): - """General exception in configuration""" - - -class InstallationError(PipError): - """General exception during installation""" - - -class UninstallationError(PipError): - """General exception during uninstallation""" - - -class NoneMetadataError(PipError): - """ - Raised when accessing "METADATA" or "PKG-INFO" metadata for a - pip._vendor.pkg_resources.Distribution object and - `dist.has_metadata('METADATA')` returns True but - `dist.get_metadata('METADATA')` returns None (and similarly for - "PKG-INFO"). - """ - - def __init__( - self, - dist: Union[Distribution, "BaseDistribution"], - metadata_name: str, - ) -> None: - """ - :param dist: A Distribution object. - :param metadata_name: The name of the metadata being accessed - (can be "METADATA" or "PKG-INFO"). - """ - self.dist = dist - self.metadata_name = metadata_name - - def __str__(self) -> str: - # Use `dist` in the error message because its stringification - # includes more information, like the version and location. - return "None {} metadata found for distribution: {}".format( - self.metadata_name, - self.dist, - ) - - -class UserInstallationInvalid(InstallationError): - """A --user install is requested on an environment without user site.""" - - def __str__(self) -> str: - return "User base directory is not specified" - - -class InvalidSchemeCombination(InstallationError): - def __str__(self) -> str: - before = ", ".join(str(a) for a in self.args[:-1]) - return f"Cannot set {before} and {self.args[-1]} together" - - -class DistributionNotFound(InstallationError): - """Raised when a distribution cannot be found to satisfy a requirement""" - - -class RequirementsFileParseError(InstallationError): - """Raised when a general error occurs parsing a requirements file line.""" - - -class BestVersionAlreadyInstalled(PipError): - """Raised when the most up-to-date version of a package is already - installed.""" - - -class BadCommand(PipError): - """Raised when virtualenv or a command is not found""" - - -class CommandError(PipError): - """Raised when there is an error in command-line arguments""" - - -class PreviousBuildDirError(PipError): - """Raised when there's a previous conflicting build directory""" - - -class NetworkConnectionError(PipError): - """HTTP connection error""" - - def __init__( - self, error_msg: str, response: Response = None, request: Request = None - ) -> None: - """ - Initialize NetworkConnectionError with `request` and `response` - objects. - """ - self.response = response - self.request = request - self.error_msg = error_msg - if ( - self.response is not None - and not self.request - and hasattr(response, "request") - ): - self.request = self.response.request - super().__init__(error_msg, response, request) - - def __str__(self) -> str: - return str(self.error_msg) - - -class InvalidWheelFilename(InstallationError): - """Invalid wheel filename.""" - - -class UnsupportedWheel(InstallationError): - """Unsupported wheel.""" - - -class MetadataInconsistent(InstallationError): - """Built metadata contains inconsistent information. - - This is raised when the metadata contains values (e.g. name and version) - that do not match the information previously obtained from sdist filename - or user-supplied ``#egg=`` value. - """ - - def __init__( - self, ireq: "InstallRequirement", field: str, f_val: str, m_val: str - ) -> None: - self.ireq = ireq - self.field = field - self.f_val = f_val - self.m_val = m_val - - def __str__(self) -> str: - template = ( - "Requested {} has inconsistent {}: " - "filename has {!r}, but metadata has {!r}" - ) - return template.format(self.ireq, self.field, self.f_val, self.m_val) - - -class InstallationSubprocessError(InstallationError): - """A subprocess call failed during installation.""" - - def __init__(self, returncode: int, description: str) -> None: - self.returncode = returncode - self.description = description - - def __str__(self) -> str: - return ( - "Command errored out with exit status {}: {} " - "Check the logs for full command output." - ).format(self.returncode, self.description) - - -class HashErrors(InstallationError): - """Multiple HashError instances rolled into one for reporting""" - - def __init__(self) -> None: - self.errors: List["HashError"] = [] - - def append(self, error: "HashError") -> None: - self.errors.append(error) - - def __str__(self) -> str: - lines = [] - self.errors.sort(key=lambda e: e.order) - for cls, errors_of_cls in groupby(self.errors, lambda e: e.__class__): - lines.append(cls.head) - lines.extend(e.body() for e in errors_of_cls) - if lines: - return "\n".join(lines) - return "" - - def __bool__(self) -> bool: - return bool(self.errors) - - -class HashError(InstallationError): - """ - A failure to verify a package against known-good hashes - - :cvar order: An int sorting hash exception classes by difficulty of - recovery (lower being harder), so the user doesn't bother fretting - about unpinned packages when he has deeper issues, like VCS - dependencies, to deal with. Also keeps error reports in a - deterministic order. - :cvar head: A section heading for display above potentially many - exceptions of this kind - :ivar req: The InstallRequirement that triggered this error. This is - pasted on after the exception is instantiated, because it's not - typically available earlier. - - """ - - req: Optional["InstallRequirement"] = None - head = "" - order: int = -1 - - def body(self) -> str: - """Return a summary of me for display under the heading. - - This default implementation simply prints a description of the - triggering requirement. - - :param req: The InstallRequirement that provoked this error, with - its link already populated by the resolver's _populate_link(). - - """ - return f" {self._requirement_name()}" - - def __str__(self) -> str: - return f"{self.head}\n{self.body()}" - - def _requirement_name(self) -> str: - """Return a description of the requirement that triggered me. - - This default implementation returns long description of the req, with - line numbers - - """ - return str(self.req) if self.req else "unknown package" - - -class VcsHashUnsupported(HashError): - """A hash was provided for a version-control-system-based requirement, but - we don't have a method for hashing those.""" - - order = 0 - head = ( - "Can't verify hashes for these requirements because we don't " - "have a way to hash version control repositories:" - ) - - -class DirectoryUrlHashUnsupported(HashError): - """A hash was provided for a version-control-system-based requirement, but - we don't have a method for hashing those.""" - - order = 1 - head = ( - "Can't verify hashes for these file:// requirements because they " - "point to directories:" - ) - - -class HashMissing(HashError): - """A hash was needed for a requirement but is absent.""" - - order = 2 - head = ( - "Hashes are required in --require-hashes mode, but they are " - "missing from some requirements. Here is a list of those " - "requirements along with the hashes their downloaded archives " - "actually had. Add lines like these to your requirements files to " - "prevent tampering. (If you did not enable --require-hashes " - "manually, note that it turns on automatically when any package " - "has a hash.)" - ) - - def __init__(self, gotten_hash: str) -> None: - """ - :param gotten_hash: The hash of the (possibly malicious) archive we - just downloaded - """ - self.gotten_hash = gotten_hash - - def body(self) -> str: - # Dodge circular import. - from pip._internal.utils.hashes import FAVORITE_HASH - - package = None - if self.req: - # In the case of URL-based requirements, display the original URL - # seen in the requirements file rather than the package name, - # so the output can be directly copied into the requirements file. - package = ( - self.req.original_link - if self.req.original_link - # In case someone feeds something downright stupid - # to InstallRequirement's constructor. - else getattr(self.req, "req", None) - ) - return " {} --hash={}:{}".format( - package or "unknown package", FAVORITE_HASH, self.gotten_hash - ) - - -class HashUnpinned(HashError): - """A requirement had a hash specified but was not pinned to a specific - version.""" - - order = 3 - head = ( - "In --require-hashes mode, all requirements must have their " - "versions pinned with ==. These do not:" - ) - - -class HashMismatch(HashError): - """ - Distribution file hash values don't match. - - :ivar package_name: The name of the package that triggered the hash - mismatch. Feel free to write to this after the exception is raise to - improve its error message. - - """ - - order = 4 - head = ( - "THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS " - "FILE. If you have updated the package versions, please update " - "the hashes. Otherwise, examine the package contents carefully; " - "someone may have tampered with them." - ) - - def __init__(self, allowed: Dict[str, List[str]], gots: Dict[str, "_Hash"]) -> None: - """ - :param allowed: A dict of algorithm names pointing to lists of allowed - hex digests - :param gots: A dict of algorithm names pointing to hashes we - actually got from the files under suspicion - """ - self.allowed = allowed - self.gots = gots - - def body(self) -> str: - return " {}:\n{}".format(self._requirement_name(), self._hash_comparison()) - - def _hash_comparison(self) -> str: - """ - Return a comparison of actual and expected hash values. - - Example:: - - Expected sha256 abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde - or 123451234512345123451234512345123451234512345 - Got bcdefbcdefbcdefbcdefbcdefbcdefbcdefbcdefbcdef - - """ - - def hash_then_or(hash_name: str) -> "chain[str]": - # For now, all the decent hashes have 6-char names, so we can get - # away with hard-coding space literals. - return chain([hash_name], repeat(" or")) - - lines: List[str] = [] - for hash_name, expecteds in self.allowed.items(): - prefix = hash_then_or(hash_name) - lines.extend( - (" Expected {} {}".format(next(prefix), e)) for e in expecteds - ) - lines.append( - " Got {}\n".format(self.gots[hash_name].hexdigest()) - ) - return "\n".join(lines) - - -class UnsupportedPythonVersion(InstallationError): - """Unsupported python version according to Requires-Python package - metadata.""" - - -class ConfigurationFileCouldNotBeLoaded(ConfigurationError): - """When there are errors while loading a configuration file""" - - def __init__( - self, - reason: str = "could not be loaded", - fname: Optional[str] = None, - error: Optional[configparser.Error] = None, - ) -> None: - super().__init__(error) - self.reason = reason - self.fname = fname - self.error = error - - def __str__(self) -> str: - if self.fname is not None: - message_part = f" in {self.fname}." - else: - assert self.error is not None - message_part = f".\n{self.error}\n" - return f"Configuration file {self.reason}{message_part}" diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/index/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/index/__init__.py deleted file mode 100644 index 7a17b7b..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/index/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -"""Index interaction code -""" diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index cc5bb46698cb74dd7d1d50a6e713a3029ff61f8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmYjMyN<#z5OmUjB2iy=qD?`zph7~YYiVfcXjaBvh#}aPy@bb~+$Y>`@EK|E6Rx}J zoK%c7Gn$oFyCWx)LL_`W%j0|UpFX@IOW`vyj+1Dy6*}99GJm|Stft%4Sf(Hq8)v7= zX)4xb){PLgQ;6RpLFT_insAJAG;Bqp$FrDEnqPNMPtR~TBu5k_Te57oWoxDJN<&%R^@A(R^6F)KWm+rJ_U&AJqtSGc z9BLkPb&q5Y$i?2$x9cQO;2d(v9oB~<6Xf;`enUv&>>D0#CNWCmSR-Bn$WufF&9O?_gbVBzy?zgJ%U_C?G3kGvWFc(^%_ zD?FUBtiY;TfgLz4yK2j?Q+4DwQ_aY)TXp3(Tg}R^SM}sKSIx<9zB(qqh2(dSL{=?I){GO1;o}s(q|_OzPvU zFSUC9t^~+M9Y@KYMs-9|Bsuj7PYR$G!S5Ko}3ih?0X`iW{ zX+K+iw*8grS8PjVx4){M+p(+9tK#Ylt1qt3Rllb8tF!9tl5@zazJ%HVb@q@IOn>YI z`-7Pe-0Hb2R&XFV_<ujz8XA-9Xz+?RIjO0@cgo^_OTbClH5cZ+=sKGkD(g48De^ zXM>kMaJTI0b&Pl}cpf7@j}aGwdG(}v2&;Kn#yfx!Up{1E4Nh<#t9T{&`UlzSV(_Lq zf*mXb7qNp&!DT#qE4YR?52)i<#ev{?ym19>uLiH7?QP8QdhiX*@eMVDb9o2%SA#cj z{|4s#xxiVl%HQn2Sy)_Ae!Jf6_-j4A)(w^4UGk%qX6U!OL9eBJ)S|Ah-j}wk&Cab0 z-BwFAqOPtqOsy7nd%B^*6Xi~`v{IKQCY>#0sd#o4zycvN=c{7Ter zeYMrR8Rs<{!zjd*`RgiN>vlqg9);^F((9MB?rIFMa8+vPb8ucoce)yz=yb3N441ZG zNu68hF}|Scy0Nm*=&mW;7Opkd7E~B=VmmJBdNWkDrLL}pQ9bH$+Now(;~UM}XlS-L zdw#9n)OXM`p3y3(H=HmbhlmW=@wqf+-`)wZv$54Ogw#|-U*sPJyPLi^te`E zR&jx=SrE9!#hblmD@dS>(K8q#_Oyz6y3^no>Bm9E#dQH!_#BGJTD31)?>@b0Z&=&T zj-|Ya0h*CqptoGyOiX^i#O~bZvH}+g7tTo8iix z`l?dVEC3nJcGOZ-3zfdDbS-+nQ(Mzr;Al8oxve_4XMsDjYwOWUxASb}#o4eKsZ(q9 z#w~z8oLy_K&DNS7;408>w%G~P`?CqE1L@b+<9#*RLJenFGiy1Gg@kz&R<>Y2W*2Pz zCDa>yF#O@+@Ds9CS&&Co)lnHGa_HmC_pK$!mB9U=SarXTldNVzquDrLo9{-iF1~Sf z9>`K`bg{BdREyTvR9sBZzZR&lp&!Gj4M@Dfhjq@$-;k}5wPkJF8}^2?R z5)|1>=-)^|bt54i>5OrGo;q1_r;ECJKbj>cG_>?-ad`6B`gCm2VZNM;b7nPRoLL5I z^s!I<1PcNv&Lwyhdu;`x2taCIWuqLuKzMMr@&1~U-PAaB&5ZhWbT((5oy2MDmvDa{ z_7mvm*|CTs#s0ts2ys4U$BWm1WpU=N zvzd#s8@Vmpwj$5`CMfWa7gQ(k>;9{kUb*Nez~sRv{PLs^7VjIl{b8|S@!9|jz)DWB@QObiLq7crm z)iq>Y9=G9Is~O4ZU<9DQp21*(4&}U@j((XBp5zo>M@6k}BX-y7;P6?LY+b3g(x=O7D3&I2kqQGNsOq3@Xa-JnX9tIuG{ zR~nQxICLRye+_cQryTRITv{}^V8r(bE+jl)k;)gCLkJZqG}@R}3S&SP&KbG;OvQgq zL@H&m--4_T{je9VH5<)tFKn&*t>!Jo*%Q6wq#q8U=TcLL;2vE;5lC@}?FVr$tb&~B zB+pnIp&>ed73YC!c?U1L|&cntrcK0x-Ba<3u0C94~7uSUH??sZf7fr5-} zH#;gAU@Qh1McQVRV!UCK=-{8J_^&h~2ng&Hq6%tCI{~EVf|X<)uP!cLgW}pyqDcaj z9UmA+?ayBV@qi(RX64UT{QoNlZ`T1)Vd8g`zl`-8*pRG6Crp7kwE8Y}9%_MRmQQTK z{r=Py6-5N0V8yXezW_|^kG1RXp8}e^bQ;{yBmS&K{fP^89L_27b=`&9s9!|aazP)! zkKTs@^W4x~n6g3RFZ?ia8mI~UglTp>C7hNUY32oI`f zC89n8HS`d9FvRVq6F?(j3%D?>s|64p$ja@%bTP#i%0wK(O8qu*d>w4H(G{F*c8Cgf zYW37rp*<%eIIL)@!*Q;$LQWOUQ;TjaH{+sku0)7Ie#izW^kNS!^>(-yI)?>1>5N9B zPXy~Pb9>^KaEkUc*buajckm2aQ$FZ6dcxFT87wQ>0QUun+3` zb^peVv+Q#2#tlEJFQ*Fs$SA^k)_@uy=#zdEENVroB|-ms6zS&8UPQ_Ui9?a$8qzt* z%IclQ3MRtX18X8(UCPp+CN)DD4yHobYplphPT(yZJGep6#kgc3=KTHJ^%htY*WeH4 zFN0|%yO)tjB-ni-K6@d|l=|r665cx}r#^t#oc~I~!P8YjwkLZRG^_ZFn5WUx8qi2t zfZuGxg5_}=RD|tJiJ9{HUMnIfZrn(X*oq+GiSmsbhEXJoNHJwj=HS}JGT(Ek=9PY~ zGCNB^L+Sz&#P8e^EEljyq5rb0e-7xSzl9=p*-=+{zlZks!;VN;a*dscs6RkIgVx1K z7&dttH}B#Zrhwqq(f#yJJ#Qdp$#{&GB_%}c4p18CYWJ@Rz%H~D1(ko4gB=wlk%OXA z;Gbw#RK>3^VNt%Q7Q#3|-bc?Lh1>#(HqaEp@j$tNU6RM>izuj100rY*uOk(3-(O(c zo*mD?c)|SKXpJ+X(9!RpqbQbER^LQ@#K`_xclRqpyCX6hsmtN_>@ixYN09eGA$l(Y z;0fd{gnFaik|Bt^;d&UUHYCOXCVPhb!-9w=61iWrLg8@++mDMV&ZJLt{igtnD;hxT zFAsoK&KY>#cY zf_P5<={-jyU|s8K5gg=FhD8#k^z&E{BrbO*xDZc62Nt(NP!nl_TbRtE_8vs1cnrP- z9d)~{FwUYwvlDx8Z$bTvvpxLk*j?>5JLQ}JM=$Y}g2BP1UZ)|tbQH!D@<;`Ok71mT zx&~3jkfl>2*o(M61kPPU)S3Pd1-5Stv?X9NJXzG?mU`6Jgct)uub08p z)%$gFOGuI>|2V$g2Ds@!IDqR>#z1#&wWu+I`?l&0uy0YOj~+X7`shiSka`%Ob$gT$ zJvbFlaVDx+qJ|AIi-cF$0(K33AF1zwn|SMTkdz@Aiv`H^ zAAQhbcRhhloE18K@LD;Ftd%>7uv%lbZ#mr~aK-`4v3``dfc0k8Zd_<$p>QBGZs5{u zX4c80hoK@1|32z_79M-GntHER8|T^yAzZYKH| z(&fRAx>65Uc9(>4WJ!Bi2E3!}SF0h+I9SgYLDKXrkL`7zox~DiuX}S9N+@(cNGAQq z_$UJxxBe5T4Z%R>KgMU@Md5K)a+$nca!VO`rnhhptZF3FV-t`%EAqPw8;-oJKO?6y`ONW7hU|6_+;+9&6jJdh) zKj`RTT=Y6n$&5mujw(alApg4o%LFc5Rx2{o2Qi07pE1;TH^dt}Je)_)4!An0hInzQB!$GJP2 ziiv)Nr!2Vc^p8`9)?^KV@d0oZVdbnSaN)U1@{VAE{s6;_s1YNJBVo{$uBSgt=@ko% z94>cwu^Ih6E{q7Le+30rO7`-JV;20U`Fwzv@l>*cTJnovdE$9?JiBQ3XMe^Wr0*jJ zF(w!w8rxV)_ssUqdWg)%(URqSAy|h%@mB|n`ZKHvJP$s2=4mca+yY|-`*0?2AIa*E z`O6T0U zg>gO|$heN*Wsjd{@rx*+01!`%VN1SlB)kax@9Kj>sV5 zYWiWFBz*x_cm#!n`YZ|c*&DE@5cY#Qh_D|St5a_S9>T$B^CbR<6!vrCxJd7)-31EA zYob}p!i$shGWy=o5YWZU+w@)tAHK8Fq(>)l&iHqLO{rH|C04=E`}ecYIseWIB2;h( zP$LTgD&TNn#+IxF!Va7qGY|H|0l(lA!e9WN!?G|uui{@@zxEomTf}@h2Hfh><7XL5 z{86$7co+#LVe=;?K9g8Ey8uF<^+6|z^A$bdL5Dnw&Z1&nAR5yYuqHi(SQ%tZ<{?XrPmBA@ zPK9v&4w{)CK`SA48PL4nexe9(>~8BAZV}B|f#C{S zPnSC}x5mIkm3yQhu)u;mTmKNXMT{j8* zwZky$HeT3eB0#-&_~1nrTPy?#i3B5aZ?kF7KBkZmaZBwg3;}mQ<%FugL-xw+GyPk5 zk^)8IfWo+jH$rseB^zNR4NK;^lpJ=z?dWyKolayWs}jEk|!hW2=Sjar7!~Pi%NQaAW9gxY{R!+>RZ7 z4|tG!o^x=NDct3e5&%cYb}2y6ZwGp|advGp8U_kU!s7j0`ZkN1ztnv1};{OSy@13Rv5y@S31+P|I08%0w)4TOyj;?23_ z&4bZHd}|9M@AmKfyP@6>qxZ^B?ftt$y$_-HUr2hN3???mHpZgE7~cj2#$>Ls$X$IT zn7j+v4$asa8so_7qZs8sB%>VRTfx*u{s-2tLt7bn>$#D)9{b2y7kB|;e5b_T-?BQT z(^mBO212i^ez5N@>^q^x>G}T4yJ0F4&WW<$ZX)UriTMoFcyTfWKJ<8m`{3-?%MyN> z^N%OF0mnbJpVWtdXd0+$^Q(d_h_OW1z!H36*~H3umBM#+C^_WKcDolFC1atWzhq|u;n-4WNI!o8}PKu z`OyE#EBn*vnB?gBiiv!4et#@#B0~_7y$HR?3d>K#W6ZUYEIz}`R`6JVi3J%k%$&OJ z&}TuGBKoC{_}uA+#;ccYhByyRkGKxl0J|icW0H>riNWP3@Lz(255?jfk zHTj*MVnKlxyAqA0{U1*OLc`gHac&XYz$Sztntc?Es1UA5o*Nf-v&&4ngk3XkMFwr- z4C2~GuIypOlcRLeAt(L?ykWuefSmk^>rSI4DlhLpce8HhVf#piksSti9fU56(=PC4j3il;sTj;-n85*2s_>;lSd0b%yMe6E$%R<5%lw>Bj zLM67(j@~QQ+a5!B+TT21I% z;&FpawNc3Fzlxr}O>nuW6tFRQa^I!~x<4I{>81iZ@!8RfCrKiS*KR+ynpb0i1>N5j z-5&vpYC(;wqMCp=qyURxJSa+5@T8hjCAAMvC*b*;45l!~w36TLG@TO_Rw8*PbC1U_{k#$}{J1QKzgJ0&z8bx3r+ zmS#*OOhN3wj#2@&b(xY3K@tF=bxR(x$si*mU~o8D!ETPQZ`zG2Of`fk9~VQ(x?m2GintvlbZYvAj`QQjd2MY9M zsFbqCT-PL$#QVtm;42Dioi36jfrn7EiW_y$6QWzgz^z1AU`!6@j#U6*kEp(N|XldwB~f95p~&aN`55*_!PHw`R$i!yxc0i*~9b&dvG;~{5P8%sPiVgAD*=5y1pkAN*m%xetf#IzF z@lkv*k$_!S*x(I#s{R`K>%Wcy>i+=a$^`@iQ!W*kkgcif23>@0#rXmD3@irS=0GwU zLwB)fCe?qFL+6pR(hAM^f1CaO4hzm|-XNC8lP$1?T0(UQDv$0{|0DGId&K&qs8|xw zr*=Ml&vo4lBZQC%_dHiDD*X0m9t492o0J&UU^`JC3L6yl6#R~%OWD^03`$x4f8wfm zsFu@zcy!iXwvQ9c(-lcRWoS;`;9K~xP8t-NGrm#!J?Mg_>R5LA=LV>GSxmUZEo^ix zASn}aiFZjZxN$Pxx*?tOb3bVB&62px%T zddZ27XQ0z1{|hjoCn~!4^G4czyo4Bj6BVXZB@T4(l@IbCBKBZ1{|#r^c6ThsZwI{) zzm;Cup>{X&wsTQ_bqog4FH2a;ieMj*HFkQiq|M0ErB7j;WX69dY*JrLVtrMK{q!ud+DGLaYek z?$k3)pu;m5_Rsi0aCqNf=2Tybr+1m(;90hXoY@4ra^B)hn%aYM|Bc7agS5O-zVHXd zLMiY5L2+Vu=e6 zK;}O}jH0K>m5qCk!UzA2(p2%Hb)97c$=$$|`K(4~-(u~bvS5H+)NuWuSrfe8Ed;|U z8vi1>(}ymBn=y;-7t&wVNyy3ZyiHonqs0;k7ICZ(hH2;gy9;dYR21u?Shv zQk9UI32J`K+Z`4{Xg_4_w^)c;BkYMp^&o1C^JmSUw9bLztdMfmb(!hB_gl12jF;df zC?OYm_lqaaj8kw5b}=(EUdojUC3m_seP(8CdVeWjnw-o`A1sv&$$Fm^4^K|Oy>PF1 i(6J9bH2J9YIa`or16OjfFf(rb#KFAYz2eKI?EeAf=hK@2 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-39.pyc deleted file mode 100644 index 8015322413309528b002fcbe32fa895616380f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28106 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 YXJ+S&xz)J~bN1XhO_MtT-7oy@-#4pLZ~y=R diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/index/collector.py b/.venv/lib/python3.9/site-packages/pip/_internal/index/collector.py deleted file mode 100644 index d941223..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/index/collector.py +++ /dev/null @@ -1,536 +0,0 @@ -""" -The main purpose of this module is to expose LinkCollector.collect_sources(). -""" - -import cgi -import collections -import functools -import itertools -import logging -import os -import re -import urllib.parse -import urllib.request -import xml.etree.ElementTree -from optparse import Values -from typing import ( - Callable, - Iterable, - List, - MutableMapping, - NamedTuple, - Optional, - Sequence, - Union, -) - -from pip._vendor import html5lib, requests -from pip._vendor.requests import Response -from pip._vendor.requests.exceptions import RetryError, SSLError - -from pip._internal.exceptions import NetworkConnectionError -from pip._internal.models.link import Link -from pip._internal.models.search_scope import SearchScope -from pip._internal.network.session import PipSession -from pip._internal.network.utils import raise_for_status -from pip._internal.utils.filetypes import is_archive_file -from pip._internal.utils.misc import pairwise, redact_auth_from_url -from pip._internal.vcs import vcs - -from .sources import CandidatesFromPage, LinkSource, build_source - -logger = logging.getLogger(__name__) - -HTMLElement = xml.etree.ElementTree.Element -ResponseHeaders = MutableMapping[str, str] - - -def _match_vcs_scheme(url: str) -> Optional[str]: - """Look for VCS schemes in the URL. - - Returns the matched VCS scheme, or None if there's no match. - """ - for scheme in vcs.schemes: - if url.lower().startswith(scheme) and url[len(scheme)] in "+:": - return scheme - return None - - -class _NotHTML(Exception): - def __init__(self, content_type: str, request_desc: str) -> None: - super().__init__(content_type, request_desc) - self.content_type = content_type - self.request_desc = request_desc - - -def _ensure_html_header(response: Response) -> None: - """Check the Content-Type header to ensure the response contains HTML. - - Raises `_NotHTML` if the content type is not text/html. - """ - content_type = response.headers.get("Content-Type", "") - if not content_type.lower().startswith("text/html"): - raise _NotHTML(content_type, response.request.method) - - -class _NotHTTP(Exception): - pass - - -def _ensure_html_response(url: str, session: PipSession) -> None: - """Send a HEAD request to the URL, and ensure the response contains HTML. - - Raises `_NotHTTP` if the URL is not available for a HEAD request, or - `_NotHTML` if the content type is not text/html. - """ - scheme, netloc, path, query, fragment = urllib.parse.urlsplit(url) - if scheme not in {"http", "https"}: - raise _NotHTTP() - - resp = session.head(url, allow_redirects=True) - raise_for_status(resp) - - _ensure_html_header(resp) - - -def _get_html_response(url: str, session: PipSession) -> Response: - """Access an HTML page with GET, and return the response. - - This consists of three parts: - - 1. If the URL looks suspiciously like an archive, send a HEAD first to - check the Content-Type is HTML, to avoid downloading a large file. - Raise `_NotHTTP` if the content type cannot be determined, or - `_NotHTML` if it is not HTML. - 2. Actually perform the request. Raise HTTP exceptions on network failures. - 3. Check the Content-Type header to make sure we got HTML, and raise - `_NotHTML` otherwise. - """ - if is_archive_file(Link(url).filename): - _ensure_html_response(url, session=session) - - logger.debug("Getting page %s", redact_auth_from_url(url)) - - resp = session.get( - url, - headers={ - "Accept": "text/html", - # We don't want to blindly returned cached data for - # /simple/, because authors generally expecting that - # twine upload && pip install will function, but if - # they've done a pip install in the last ~10 minutes - # it won't. Thus by setting this to zero we will not - # blindly use any cached data, however the benefit of - # using max-age=0 instead of no-cache, is that we will - # still support conditional requests, so we will still - # minimize traffic sent in cases where the page hasn't - # changed at all, we will just always incur the round - # trip for the conditional GET now instead of only - # once per 10 minutes. - # For more information, please see pypa/pip#5670. - "Cache-Control": "max-age=0", - }, - ) - raise_for_status(resp) - - # The check for archives above only works if the url ends with - # something that looks like an archive. However that is not a - # requirement of an url. Unless we issue a HEAD request on every - # url we cannot know ahead of time for sure if something is HTML - # or not. However we can check after we've downloaded it. - _ensure_html_header(resp) - - return resp - - -def _get_encoding_from_headers(headers: ResponseHeaders) -> Optional[str]: - """Determine if we have any encoding information in our headers.""" - if headers and "Content-Type" in headers: - content_type, params = cgi.parse_header(headers["Content-Type"]) - if "charset" in params: - return params["charset"] - return None - - -def _determine_base_url(document: HTMLElement, page_url: str) -> str: - """Determine the HTML document's base URL. - - This looks for a ```` tag in the HTML document. If present, its href - attribute denotes the base URL of anchor tags in the document. If there is - no such tag (or if it does not have a valid href attribute), the HTML - file's URL is used as the base URL. - - :param document: An HTML document representation. The current - implementation expects the result of ``html5lib.parse()``. - :param page_url: The URL of the HTML document. - """ - for base in document.findall(".//base"): - href = base.get("href") - if href is not None: - return href - return page_url - - -def _clean_url_path_part(part: str) -> str: - """ - Clean a "part" of a URL path (i.e. after splitting on "@" characters). - """ - # We unquote prior to quoting to make sure nothing is double quoted. - return urllib.parse.quote(urllib.parse.unquote(part)) - - -def _clean_file_url_path(part: str) -> str: - """ - Clean the first part of a URL path that corresponds to a local - filesystem path (i.e. the first part after splitting on "@" characters). - """ - # We unquote prior to quoting to make sure nothing is double quoted. - # Also, on Windows the path part might contain a drive letter which - # should not be quoted. On Linux where drive letters do not - # exist, the colon should be quoted. We rely on urllib.request - # to do the right thing here. - return urllib.request.pathname2url(urllib.request.url2pathname(part)) - - -# percent-encoded: / -_reserved_chars_re = re.compile("(@|%2F)", re.IGNORECASE) - - -def _clean_url_path(path: str, is_local_path: bool) -> str: - """ - Clean the path portion of a URL. - """ - if is_local_path: - clean_func = _clean_file_url_path - else: - clean_func = _clean_url_path_part - - # Split on the reserved characters prior to cleaning so that - # revision strings in VCS URLs are properly preserved. - parts = _reserved_chars_re.split(path) - - cleaned_parts = [] - for to_clean, reserved in pairwise(itertools.chain(parts, [""])): - cleaned_parts.append(clean_func(to_clean)) - # Normalize %xx escapes (e.g. %2f -> %2F) - cleaned_parts.append(reserved.upper()) - - return "".join(cleaned_parts) - - -def _clean_link(url: str) -> str: - """ - Make sure a link is fully quoted. - For example, if ' ' occurs in the URL, it will be replaced with "%20", - and without double-quoting other characters. - """ - # Split the URL into parts according to the general structure - # `scheme://netloc/path;parameters?query#fragment`. - result = urllib.parse.urlparse(url) - # If the netloc is empty, then the URL refers to a local filesystem path. - is_local_path = not result.netloc - path = _clean_url_path(result.path, is_local_path=is_local_path) - return urllib.parse.urlunparse(result._replace(path=path)) - - -def _create_link_from_element( - anchor: HTMLElement, - page_url: str, - base_url: str, -) -> Optional[Link]: - """ - Convert an anchor element in a simple repository page to a Link. - """ - href = anchor.get("href") - if not href: - return None - - url = _clean_link(urllib.parse.urljoin(base_url, href)) - pyrequire = anchor.get("data-requires-python") - yanked_reason = anchor.get("data-yanked") - - link = Link( - url, - comes_from=page_url, - requires_python=pyrequire, - yanked_reason=yanked_reason, - ) - - return link - - -class CacheablePageContent: - def __init__(self, page: "HTMLPage") -> None: - assert page.cache_link_parsing - self.page = page - - def __eq__(self, other: object) -> bool: - return isinstance(other, type(self)) and self.page.url == other.page.url - - def __hash__(self) -> int: - return hash(self.page.url) - - -def with_cached_html_pages( - fn: Callable[["HTMLPage"], Iterable[Link]], -) -> Callable[["HTMLPage"], List[Link]]: - """ - Given a function that parses an Iterable[Link] from an HTMLPage, cache the - function's result (keyed by CacheablePageContent), unless the HTMLPage - `page` has `page.cache_link_parsing == False`. - """ - - @functools.lru_cache(maxsize=None) - def wrapper(cacheable_page: CacheablePageContent) -> List[Link]: - return list(fn(cacheable_page.page)) - - @functools.wraps(fn) - def wrapper_wrapper(page: "HTMLPage") -> List[Link]: - if page.cache_link_parsing: - return wrapper(CacheablePageContent(page)) - return list(fn(page)) - - return wrapper_wrapper - - -@with_cached_html_pages -def parse_links(page: "HTMLPage") -> Iterable[Link]: - """ - Parse an HTML document, and yield its anchor elements as Link objects. - """ - document = html5lib.parse( - page.content, - transport_encoding=page.encoding, - namespaceHTMLElements=False, - ) - - url = page.url - base_url = _determine_base_url(document, url) - for anchor in document.findall(".//a"): - link = _create_link_from_element( - anchor, - page_url=url, - base_url=base_url, - ) - if link is None: - continue - yield link - - -class HTMLPage: - """Represents one page, along with its URL""" - - def __init__( - self, - content: bytes, - encoding: Optional[str], - url: str, - cache_link_parsing: bool = True, - ) -> None: - """ - :param encoding: the encoding to decode the given content. - :param url: the URL from which the HTML was downloaded. - :param cache_link_parsing: whether links parsed from this page's url - should be cached. PyPI index urls should - have this set to False, for example. - """ - self.content = content - self.encoding = encoding - self.url = url - self.cache_link_parsing = cache_link_parsing - - def __str__(self) -> str: - return redact_auth_from_url(self.url) - - -def _handle_get_page_fail( - link: Link, - reason: Union[str, Exception], - meth: Optional[Callable[..., None]] = None, -) -> None: - if meth is None: - meth = logger.debug - meth("Could not fetch URL %s: %s - skipping", link, reason) - - -def _make_html_page(response: Response, cache_link_parsing: bool = True) -> HTMLPage: - encoding = _get_encoding_from_headers(response.headers) - return HTMLPage( - response.content, - encoding=encoding, - url=response.url, - cache_link_parsing=cache_link_parsing, - ) - - -def _get_html_page( - link: Link, session: Optional[PipSession] = None -) -> Optional["HTMLPage"]: - if session is None: - raise TypeError( - "_get_html_page() missing 1 required keyword argument: 'session'" - ) - - url = link.url.split("#", 1)[0] - - # Check for VCS schemes that do not support lookup as web pages. - vcs_scheme = _match_vcs_scheme(url) - if vcs_scheme: - logger.warning( - "Cannot look at %s URL %s because it does not support lookup as web pages.", - vcs_scheme, - link, - ) - return None - - # Tack index.html onto file:// URLs that point to directories - scheme, _, path, _, _, _ = urllib.parse.urlparse(url) - if scheme == "file" and os.path.isdir(urllib.request.url2pathname(path)): - # add trailing slash if not present so urljoin doesn't trim - # final segment - if not url.endswith("/"): - url += "/" - url = urllib.parse.urljoin(url, "index.html") - logger.debug(" file: URL is directory, getting %s", url) - - try: - resp = _get_html_response(url, session=session) - except _NotHTTP: - logger.warning( - "Skipping page %s because it looks like an archive, and cannot " - "be checked by a HTTP HEAD request.", - link, - ) - except _NotHTML as exc: - logger.warning( - "Skipping page %s because the %s request got Content-Type: %s." - "The only supported Content-Type is text/html", - link, - exc.request_desc, - exc.content_type, - ) - except NetworkConnectionError as exc: - _handle_get_page_fail(link, exc) - except RetryError as exc: - _handle_get_page_fail(link, exc) - except SSLError as exc: - reason = "There was a problem confirming the ssl certificate: " - reason += str(exc) - _handle_get_page_fail(link, reason, meth=logger.info) - except requests.ConnectionError as exc: - _handle_get_page_fail(link, f"connection error: {exc}") - except requests.Timeout: - _handle_get_page_fail(link, "timed out") - else: - return _make_html_page(resp, cache_link_parsing=link.cache_link_parsing) - return None - - -class CollectedSources(NamedTuple): - find_links: Sequence[Optional[LinkSource]] - index_urls: Sequence[Optional[LinkSource]] - - -class LinkCollector: - - """ - Responsible for collecting Link objects from all configured locations, - making network requests as needed. - - The class's main method is its collect_sources() method. - """ - - def __init__( - self, - session: PipSession, - search_scope: SearchScope, - ) -> None: - self.search_scope = search_scope - self.session = session - - @classmethod - def create( - cls, - session: PipSession, - options: Values, - suppress_no_index: bool = False, - ) -> "LinkCollector": - """ - :param session: The Session to use to make requests. - :param suppress_no_index: Whether to ignore the --no-index option - when constructing the SearchScope object. - """ - index_urls = [options.index_url] + options.extra_index_urls - if options.no_index and not suppress_no_index: - logger.debug( - "Ignoring indexes: %s", - ",".join(redact_auth_from_url(url) for url in index_urls), - ) - index_urls = [] - - # Make sure find_links is a list before passing to create(). - find_links = options.find_links or [] - - search_scope = SearchScope.create( - find_links=find_links, - index_urls=index_urls, - ) - link_collector = LinkCollector( - session=session, - search_scope=search_scope, - ) - return link_collector - - @property - def find_links(self) -> List[str]: - return self.search_scope.find_links - - def fetch_page(self, location: Link) -> Optional[HTMLPage]: - """ - Fetch an HTML page containing package links. - """ - return _get_html_page(location, session=self.session) - - def collect_sources( - self, - project_name: str, - candidates_from_page: CandidatesFromPage, - ) -> CollectedSources: - # The OrderedDict calls deduplicate sources by URL. - index_url_sources = collections.OrderedDict( - build_source( - loc, - candidates_from_page=candidates_from_page, - page_validator=self.session.is_secure_origin, - expand_dir=False, - cache_link_parsing=False, - ) - for loc in self.search_scope.get_index_urls_locations(project_name) - ).values() - find_links_sources = collections.OrderedDict( - build_source( - loc, - candidates_from_page=candidates_from_page, - page_validator=self.session.is_secure_origin, - expand_dir=True, - cache_link_parsing=True, - ) - for loc in self.find_links - ).values() - - if logger.isEnabledFor(logging.DEBUG): - lines = [ - f"* {s.link}" - for s in itertools.chain(find_links_sources, index_url_sources) - if s is not None and s.link is not None - ] - lines = [ - f"{len(lines)} location(s) to search " - f"for versions of {project_name}:" - ] + lines - logger.debug("\n".join(lines)) - - return CollectedSources( - find_links=list(find_links_sources), - index_urls=list(index_url_sources), - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/index/package_finder.py b/.venv/lib/python3.9/site-packages/pip/_internal/index/package_finder.py deleted file mode 100644 index a2702db..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/index/package_finder.py +++ /dev/null @@ -1,993 +0,0 @@ -"""Routines related to PyPI, indexes""" - -# The following comment should be removed at some point in the future. -# mypy: strict-optional=False - -import functools -import itertools -import logging -import re -from typing import FrozenSet, Iterable, List, Optional, Set, Tuple, Union - -from pip._vendor.packaging import specifiers -from pip._vendor.packaging.tags import Tag -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.packaging.version import _BaseVersion -from pip._vendor.packaging.version import parse as parse_version - -from pip._internal.exceptions import ( - BestVersionAlreadyInstalled, - DistributionNotFound, - InvalidWheelFilename, - UnsupportedWheel, -) -from pip._internal.index.collector import LinkCollector, parse_links -from pip._internal.models.candidate import InstallationCandidate -from pip._internal.models.format_control import FormatControl -from pip._internal.models.link import Link -from pip._internal.models.search_scope import SearchScope -from pip._internal.models.selection_prefs import SelectionPreferences -from pip._internal.models.target_python import TargetPython -from pip._internal.models.wheel import Wheel -from pip._internal.req import InstallRequirement -from pip._internal.utils._log import getLogger -from pip._internal.utils.filetypes import WHEEL_EXTENSION -from pip._internal.utils.hashes import Hashes -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import build_netloc -from pip._internal.utils.packaging import check_requires_python -from pip._internal.utils.unpacking import SUPPORTED_EXTENSIONS -from pip._internal.utils.urls import url_to_path - -__all__ = ["FormatControl", "BestCandidateResult", "PackageFinder"] - - -logger = getLogger(__name__) - -BuildTag = Union[Tuple[()], Tuple[int, str]] -CandidateSortingKey = Tuple[int, int, int, _BaseVersion, Optional[int], BuildTag] - - -def _check_link_requires_python( - link: Link, - version_info: Tuple[int, int, int], - ignore_requires_python: bool = False, -) -> bool: - """ - Return whether the given Python version is compatible with a link's - "Requires-Python" value. - - :param version_info: A 3-tuple of ints representing the Python - major-minor-micro version to check. - :param ignore_requires_python: Whether to ignore the "Requires-Python" - value if the given Python version isn't compatible. - """ - try: - is_compatible = check_requires_python( - link.requires_python, - version_info=version_info, - ) - except specifiers.InvalidSpecifier: - logger.debug( - "Ignoring invalid Requires-Python (%r) for link: %s", - link.requires_python, - link, - ) - else: - if not is_compatible: - version = ".".join(map(str, version_info)) - if not ignore_requires_python: - logger.verbose( - "Link requires a different Python (%s not in: %r): %s", - version, - link.requires_python, - link, - ) - return False - - logger.debug( - "Ignoring failed Requires-Python check (%s not in: %r) for link: %s", - version, - link.requires_python, - link, - ) - - return True - - -class LinkEvaluator: - - """ - Responsible for evaluating links for a particular project. - """ - - _py_version_re = re.compile(r"-py([123]\.?[0-9]?)$") - - # Don't include an allow_yanked default value to make sure each call - # site considers whether yanked releases are allowed. This also causes - # that decision to be made explicit in the calling code, which helps - # people when reading the code. - def __init__( - self, - project_name: str, - canonical_name: str, - formats: FrozenSet[str], - target_python: TargetPython, - allow_yanked: bool, - ignore_requires_python: Optional[bool] = None, - ) -> None: - """ - :param project_name: The user supplied package name. - :param canonical_name: The canonical package name. - :param formats: The formats allowed for this package. Should be a set - with 'binary' or 'source' or both in it. - :param target_python: The target Python interpreter to use when - evaluating link compatibility. This is used, for example, to - check wheel compatibility, as well as when checking the Python - version, e.g. the Python version embedded in a link filename - (or egg fragment) and against an HTML link's optional PEP 503 - "data-requires-python" attribute. - :param allow_yanked: Whether files marked as yanked (in the sense - of PEP 592) are permitted to be candidates for install. - :param ignore_requires_python: Whether to ignore incompatible - PEP 503 "data-requires-python" values in HTML links. Defaults - to False. - """ - if ignore_requires_python is None: - ignore_requires_python = False - - self._allow_yanked = allow_yanked - self._canonical_name = canonical_name - self._ignore_requires_python = ignore_requires_python - self._formats = formats - self._target_python = target_python - - self.project_name = project_name - - def evaluate_link(self, link: Link) -> Tuple[bool, Optional[str]]: - """ - Determine whether a link is a candidate for installation. - - :return: A tuple (is_candidate, result), where `result` is (1) a - version string if `is_candidate` is True, and (2) if - `is_candidate` is False, an optional string to log the reason - the link fails to qualify. - """ - version = None - if link.is_yanked and not self._allow_yanked: - reason = link.yanked_reason or "" - return (False, f"yanked for reason: {reason}") - - if link.egg_fragment: - egg_info = link.egg_fragment - ext = link.ext - else: - egg_info, ext = link.splitext() - if not ext: - return (False, "not a file") - if ext not in SUPPORTED_EXTENSIONS: - return (False, f"unsupported archive format: {ext}") - if "binary" not in self._formats and ext == WHEEL_EXTENSION: - reason = "No binaries permitted for {}".format(self.project_name) - return (False, reason) - if "macosx10" in link.path and ext == ".zip": - return (False, "macosx10 one") - if ext == WHEEL_EXTENSION: - try: - wheel = Wheel(link.filename) - except InvalidWheelFilename: - return (False, "invalid wheel filename") - if canonicalize_name(wheel.name) != self._canonical_name: - reason = "wrong project name (not {})".format(self.project_name) - return (False, reason) - - supported_tags = self._target_python.get_tags() - if not wheel.supported(supported_tags): - # Include the wheel's tags in the reason string to - # simplify troubleshooting compatibility issues. - file_tags = wheel.get_formatted_file_tags() - reason = ( - "none of the wheel's tags ({}) are compatible " - "(run pip debug --verbose to show compatible tags)".format( - ", ".join(file_tags) - ) - ) - return (False, reason) - - version = wheel.version - - # This should be up by the self.ok_binary check, but see issue 2700. - if "source" not in self._formats and ext != WHEEL_EXTENSION: - reason = f"No sources permitted for {self.project_name}" - return (False, reason) - - if not version: - version = _extract_version_from_fragment( - egg_info, - self._canonical_name, - ) - if not version: - reason = f"Missing project version for {self.project_name}" - return (False, reason) - - match = self._py_version_re.search(version) - if match: - version = version[: match.start()] - py_version = match.group(1) - if py_version != self._target_python.py_version: - return (False, "Python version is incorrect") - - supports_python = _check_link_requires_python( - link, - version_info=self._target_python.py_version_info, - ignore_requires_python=self._ignore_requires_python, - ) - if not supports_python: - # Return None for the reason text to suppress calling - # _log_skipped_link(). - return (False, None) - - logger.debug("Found link %s, version: %s", link, version) - - return (True, version) - - -def filter_unallowed_hashes( - candidates: List[InstallationCandidate], - hashes: Hashes, - project_name: str, -) -> List[InstallationCandidate]: - """ - Filter out candidates whose hashes aren't allowed, and return a new - list of candidates. - - If at least one candidate has an allowed hash, then all candidates with - either an allowed hash or no hash specified are returned. Otherwise, - the given candidates are returned. - - Including the candidates with no hash specified when there is a match - allows a warning to be logged if there is a more preferred candidate - with no hash specified. Returning all candidates in the case of no - matches lets pip report the hash of the candidate that would otherwise - have been installed (e.g. permitting the user to more easily update - their requirements file with the desired hash). - """ - if not hashes: - logger.debug( - "Given no hashes to check %s links for project %r: " - "discarding no candidates", - len(candidates), - project_name, - ) - # Make sure we're not returning back the given value. - return list(candidates) - - matches_or_no_digest = [] - # Collect the non-matches for logging purposes. - non_matches = [] - match_count = 0 - for candidate in candidates: - link = candidate.link - if not link.has_hash: - pass - elif link.is_hash_allowed(hashes=hashes): - match_count += 1 - else: - non_matches.append(candidate) - continue - - matches_or_no_digest.append(candidate) - - if match_count: - filtered = matches_or_no_digest - else: - # Make sure we're not returning back the given value. - filtered = list(candidates) - - if len(filtered) == len(candidates): - discard_message = "discarding no candidates" - else: - discard_message = "discarding {} non-matches:\n {}".format( - len(non_matches), - "\n ".join(str(candidate.link) for candidate in non_matches), - ) - - logger.debug( - "Checked %s links for project %r against %s hashes " - "(%s matches, %s no digest): %s", - len(candidates), - project_name, - hashes.digest_count, - match_count, - len(matches_or_no_digest) - match_count, - discard_message, - ) - - return filtered - - -class CandidatePreferences: - - """ - Encapsulates some of the preferences for filtering and sorting - InstallationCandidate objects. - """ - - def __init__( - self, - prefer_binary: bool = False, - allow_all_prereleases: bool = False, - ) -> None: - """ - :param allow_all_prereleases: Whether to allow all pre-releases. - """ - self.allow_all_prereleases = allow_all_prereleases - self.prefer_binary = prefer_binary - - -class BestCandidateResult: - """A collection of candidates, returned by `PackageFinder.find_best_candidate`. - - This class is only intended to be instantiated by CandidateEvaluator's - `compute_best_candidate()` method. - """ - - def __init__( - self, - candidates: List[InstallationCandidate], - applicable_candidates: List[InstallationCandidate], - best_candidate: Optional[InstallationCandidate], - ) -> None: - """ - :param candidates: A sequence of all available candidates found. - :param applicable_candidates: The applicable candidates. - :param best_candidate: The most preferred candidate found, or None - if no applicable candidates were found. - """ - assert set(applicable_candidates) <= set(candidates) - - if best_candidate is None: - assert not applicable_candidates - else: - assert best_candidate in applicable_candidates - - self._applicable_candidates = applicable_candidates - self._candidates = candidates - - self.best_candidate = best_candidate - - def iter_all(self) -> Iterable[InstallationCandidate]: - """Iterate through all candidates.""" - return iter(self._candidates) - - def iter_applicable(self) -> Iterable[InstallationCandidate]: - """Iterate through the applicable candidates.""" - return iter(self._applicable_candidates) - - -class CandidateEvaluator: - - """ - Responsible for filtering and sorting candidates for installation based - on what tags are valid. - """ - - @classmethod - def create( - cls, - project_name: str, - target_python: Optional[TargetPython] = None, - prefer_binary: bool = False, - allow_all_prereleases: bool = False, - specifier: Optional[specifiers.BaseSpecifier] = None, - hashes: Optional[Hashes] = None, - ) -> "CandidateEvaluator": - """Create a CandidateEvaluator object. - - :param target_python: The target Python interpreter to use when - checking compatibility. If None (the default), a TargetPython - object will be constructed from the running Python. - :param specifier: An optional object implementing `filter` - (e.g. `packaging.specifiers.SpecifierSet`) to filter applicable - versions. - :param hashes: An optional collection of allowed hashes. - """ - if target_python is None: - target_python = TargetPython() - if specifier is None: - specifier = specifiers.SpecifierSet() - - supported_tags = target_python.get_tags() - - return cls( - project_name=project_name, - supported_tags=supported_tags, - specifier=specifier, - prefer_binary=prefer_binary, - allow_all_prereleases=allow_all_prereleases, - hashes=hashes, - ) - - def __init__( - self, - project_name: str, - supported_tags: List[Tag], - specifier: specifiers.BaseSpecifier, - prefer_binary: bool = False, - allow_all_prereleases: bool = False, - hashes: Optional[Hashes] = None, - ) -> None: - """ - :param supported_tags: The PEP 425 tags supported by the target - Python in order of preference (most preferred first). - """ - self._allow_all_prereleases = allow_all_prereleases - self._hashes = hashes - self._prefer_binary = prefer_binary - self._project_name = project_name - self._specifier = specifier - self._supported_tags = supported_tags - # Since the index of the tag in the _supported_tags list is used - # as a priority, precompute a map from tag to index/priority to be - # used in wheel.find_most_preferred_tag. - self._wheel_tag_preferences = { - tag: idx for idx, tag in enumerate(supported_tags) - } - - def get_applicable_candidates( - self, - candidates: List[InstallationCandidate], - ) -> List[InstallationCandidate]: - """ - Return the applicable candidates from a list of candidates. - """ - # Using None infers from the specifier instead. - allow_prereleases = self._allow_all_prereleases or None - specifier = self._specifier - versions = { - str(v) - for v in specifier.filter( - # We turn the version object into a str here because otherwise - # when we're debundled but setuptools isn't, Python will see - # packaging.version.Version and - # pkg_resources._vendor.packaging.version.Version as different - # types. This way we'll use a str as a common data interchange - # format. If we stop using the pkg_resources provided specifier - # and start using our own, we can drop the cast to str(). - (str(c.version) for c in candidates), - prereleases=allow_prereleases, - ) - } - - # Again, converting version to str to deal with debundling. - applicable_candidates = [c for c in candidates if str(c.version) in versions] - - filtered_applicable_candidates = filter_unallowed_hashes( - candidates=applicable_candidates, - hashes=self._hashes, - project_name=self._project_name, - ) - - return sorted(filtered_applicable_candidates, key=self._sort_key) - - def _sort_key(self, candidate: InstallationCandidate) -> CandidateSortingKey: - """ - Function to pass as the `key` argument to a call to sorted() to sort - InstallationCandidates by preference. - - Returns a tuple such that tuples sorting as greater using Python's - default comparison operator are more preferred. - - The preference is as follows: - - First and foremost, candidates with allowed (matching) hashes are - always preferred over candidates without matching hashes. This is - because e.g. if the only candidate with an allowed hash is yanked, - we still want to use that candidate. - - Second, excepting hash considerations, candidates that have been - yanked (in the sense of PEP 592) are always less preferred than - candidates that haven't been yanked. Then: - - If not finding wheels, they are sorted by version only. - If finding wheels, then the sort order is by version, then: - 1. existing installs - 2. wheels ordered via Wheel.support_index_min(self._supported_tags) - 3. source archives - If prefer_binary was set, then all wheels are sorted above sources. - - Note: it was considered to embed this logic into the Link - comparison operators, but then different sdist links - with the same version, would have to be considered equal - """ - valid_tags = self._supported_tags - support_num = len(valid_tags) - build_tag: BuildTag = () - binary_preference = 0 - link = candidate.link - if link.is_wheel: - # can raise InvalidWheelFilename - wheel = Wheel(link.filename) - try: - pri = -( - wheel.find_most_preferred_tag( - valid_tags, self._wheel_tag_preferences - ) - ) - except ValueError: - raise UnsupportedWheel( - "{} is not a supported wheel for this platform. It " - "can't be sorted.".format(wheel.filename) - ) - if self._prefer_binary: - binary_preference = 1 - if wheel.build_tag is not None: - match = re.match(r"^(\d+)(.*)$", wheel.build_tag) - build_tag_groups = match.groups() - build_tag = (int(build_tag_groups[0]), build_tag_groups[1]) - else: # sdist - pri = -(support_num) - has_allowed_hash = int(link.is_hash_allowed(self._hashes)) - yank_value = -1 * int(link.is_yanked) # -1 for yanked. - return ( - has_allowed_hash, - yank_value, - binary_preference, - candidate.version, - pri, - build_tag, - ) - - def sort_best_candidate( - self, - candidates: List[InstallationCandidate], - ) -> Optional[InstallationCandidate]: - """ - Return the best candidate per the instance's sort order, or None if - no candidate is acceptable. - """ - if not candidates: - return None - best_candidate = max(candidates, key=self._sort_key) - return best_candidate - - def compute_best_candidate( - self, - candidates: List[InstallationCandidate], - ) -> BestCandidateResult: - """ - Compute and return a `BestCandidateResult` instance. - """ - applicable_candidates = self.get_applicable_candidates(candidates) - - best_candidate = self.sort_best_candidate(applicable_candidates) - - return BestCandidateResult( - candidates, - applicable_candidates=applicable_candidates, - best_candidate=best_candidate, - ) - - -class PackageFinder: - """This finds packages. - - This is meant to match easy_install's technique for looking for - packages, by reading pages and looking for appropriate links. - """ - - def __init__( - self, - link_collector: LinkCollector, - target_python: TargetPython, - allow_yanked: bool, - format_control: Optional[FormatControl] = None, - candidate_prefs: Optional[CandidatePreferences] = None, - ignore_requires_python: Optional[bool] = None, - ) -> None: - """ - This constructor is primarily meant to be used by the create() class - method and from tests. - - :param format_control: A FormatControl object, used to control - the selection of source packages / binary packages when consulting - the index and links. - :param candidate_prefs: Options to use when creating a - CandidateEvaluator object. - """ - if candidate_prefs is None: - candidate_prefs = CandidatePreferences() - - format_control = format_control or FormatControl(set(), set()) - - self._allow_yanked = allow_yanked - self._candidate_prefs = candidate_prefs - self._ignore_requires_python = ignore_requires_python - self._link_collector = link_collector - self._target_python = target_python - - self.format_control = format_control - - # These are boring links that have already been logged somehow. - self._logged_links: Set[Link] = set() - - # Don't include an allow_yanked default value to make sure each call - # site considers whether yanked releases are allowed. This also causes - # that decision to be made explicit in the calling code, which helps - # people when reading the code. - @classmethod - def create( - cls, - link_collector: LinkCollector, - selection_prefs: SelectionPreferences, - target_python: Optional[TargetPython] = None, - ) -> "PackageFinder": - """Create a PackageFinder. - - :param selection_prefs: The candidate selection preferences, as a - SelectionPreferences object. - :param target_python: The target Python interpreter to use when - checking compatibility. If None (the default), a TargetPython - object will be constructed from the running Python. - """ - if target_python is None: - target_python = TargetPython() - - candidate_prefs = CandidatePreferences( - prefer_binary=selection_prefs.prefer_binary, - allow_all_prereleases=selection_prefs.allow_all_prereleases, - ) - - return cls( - candidate_prefs=candidate_prefs, - link_collector=link_collector, - target_python=target_python, - allow_yanked=selection_prefs.allow_yanked, - format_control=selection_prefs.format_control, - ignore_requires_python=selection_prefs.ignore_requires_python, - ) - - @property - def target_python(self) -> TargetPython: - return self._target_python - - @property - def search_scope(self) -> SearchScope: - return self._link_collector.search_scope - - @search_scope.setter - def search_scope(self, search_scope: SearchScope) -> None: - self._link_collector.search_scope = search_scope - - @property - def find_links(self) -> List[str]: - return self._link_collector.find_links - - @property - def index_urls(self) -> List[str]: - return self.search_scope.index_urls - - @property - def trusted_hosts(self) -> Iterable[str]: - for host_port in self._link_collector.session.pip_trusted_origins: - yield build_netloc(*host_port) - - @property - def allow_all_prereleases(self) -> bool: - return self._candidate_prefs.allow_all_prereleases - - def set_allow_all_prereleases(self) -> None: - self._candidate_prefs.allow_all_prereleases = True - - @property - def prefer_binary(self) -> bool: - return self._candidate_prefs.prefer_binary - - def set_prefer_binary(self) -> None: - self._candidate_prefs.prefer_binary = True - - def make_link_evaluator(self, project_name: str) -> LinkEvaluator: - canonical_name = canonicalize_name(project_name) - formats = self.format_control.get_allowed_formats(canonical_name) - - return LinkEvaluator( - project_name=project_name, - canonical_name=canonical_name, - formats=formats, - target_python=self._target_python, - allow_yanked=self._allow_yanked, - ignore_requires_python=self._ignore_requires_python, - ) - - def _sort_links(self, links: Iterable[Link]) -> List[Link]: - """ - Returns elements of links in order, non-egg links first, egg links - second, while eliminating duplicates - """ - eggs, no_eggs = [], [] - seen: Set[Link] = set() - for link in links: - if link not in seen: - seen.add(link) - if link.egg_fragment: - eggs.append(link) - else: - no_eggs.append(link) - return no_eggs + eggs - - def _log_skipped_link(self, link: Link, reason: str) -> None: - if link not in self._logged_links: - # Put the link at the end so the reason is more visible and because - # the link string is usually very long. - logger.debug("Skipping link: %s: %s", reason, link) - self._logged_links.add(link) - - def get_install_candidate( - self, link_evaluator: LinkEvaluator, link: Link - ) -> Optional[InstallationCandidate]: - """ - If the link is a candidate for install, convert it to an - InstallationCandidate and return it. Otherwise, return None. - """ - is_candidate, result = link_evaluator.evaluate_link(link) - if not is_candidate: - if result: - self._log_skipped_link(link, reason=result) - return None - - return InstallationCandidate( - name=link_evaluator.project_name, - link=link, - version=result, - ) - - def evaluate_links( - self, link_evaluator: LinkEvaluator, links: Iterable[Link] - ) -> List[InstallationCandidate]: - """ - Convert links that are candidates to InstallationCandidate objects. - """ - candidates = [] - for link in self._sort_links(links): - candidate = self.get_install_candidate(link_evaluator, link) - if candidate is not None: - candidates.append(candidate) - - return candidates - - def process_project_url( - self, project_url: Link, link_evaluator: LinkEvaluator - ) -> List[InstallationCandidate]: - logger.debug( - "Fetching project page and analyzing links: %s", - project_url, - ) - html_page = self._link_collector.fetch_page(project_url) - if html_page is None: - return [] - - page_links = list(parse_links(html_page)) - - with indent_log(): - package_links = self.evaluate_links( - link_evaluator, - links=page_links, - ) - - return package_links - - @functools.lru_cache(maxsize=None) - def find_all_candidates(self, project_name: str) -> List[InstallationCandidate]: - """Find all available InstallationCandidate for project_name - - This checks index_urls and find_links. - All versions found are returned as an InstallationCandidate list. - - See LinkEvaluator.evaluate_link() for details on which files - are accepted. - """ - link_evaluator = self.make_link_evaluator(project_name) - - collected_sources = self._link_collector.collect_sources( - project_name=project_name, - candidates_from_page=functools.partial( - self.process_project_url, - link_evaluator=link_evaluator, - ), - ) - - page_candidates_it = itertools.chain.from_iterable( - source.page_candidates() - for sources in collected_sources - for source in sources - if source is not None - ) - page_candidates = list(page_candidates_it) - - file_links_it = itertools.chain.from_iterable( - source.file_links() - for sources in collected_sources - for source in sources - if source is not None - ) - file_candidates = self.evaluate_links( - link_evaluator, - sorted(file_links_it, reverse=True), - ) - - if logger.isEnabledFor(logging.DEBUG) and file_candidates: - paths = [url_to_path(c.link.url) for c in file_candidates] - logger.debug("Local files found: %s", ", ".join(paths)) - - # This is an intentional priority ordering - return file_candidates + page_candidates - - def make_candidate_evaluator( - self, - project_name: str, - specifier: Optional[specifiers.BaseSpecifier] = None, - hashes: Optional[Hashes] = None, - ) -> CandidateEvaluator: - """Create a CandidateEvaluator object to use.""" - candidate_prefs = self._candidate_prefs - return CandidateEvaluator.create( - project_name=project_name, - target_python=self._target_python, - prefer_binary=candidate_prefs.prefer_binary, - allow_all_prereleases=candidate_prefs.allow_all_prereleases, - specifier=specifier, - hashes=hashes, - ) - - @functools.lru_cache(maxsize=None) - def find_best_candidate( - self, - project_name: str, - specifier: Optional[specifiers.BaseSpecifier] = None, - hashes: Optional[Hashes] = None, - ) -> BestCandidateResult: - """Find matches for the given project and specifier. - - :param specifier: An optional object implementing `filter` - (e.g. `packaging.specifiers.SpecifierSet`) to filter applicable - versions. - - :return: A `BestCandidateResult` instance. - """ - candidates = self.find_all_candidates(project_name) - candidate_evaluator = self.make_candidate_evaluator( - project_name=project_name, - specifier=specifier, - hashes=hashes, - ) - return candidate_evaluator.compute_best_candidate(candidates) - - def find_requirement( - self, req: InstallRequirement, upgrade: bool - ) -> Optional[InstallationCandidate]: - """Try to find a Link matching req - - Expects req, an InstallRequirement and upgrade, a boolean - Returns a InstallationCandidate if found, - Raises DistributionNotFound or BestVersionAlreadyInstalled otherwise - """ - hashes = req.hashes(trust_internet=False) - best_candidate_result = self.find_best_candidate( - req.name, - specifier=req.specifier, - hashes=hashes, - ) - best_candidate = best_candidate_result.best_candidate - - installed_version: Optional[_BaseVersion] = None - if req.satisfied_by is not None: - installed_version = parse_version(req.satisfied_by.version) - - def _format_versions(cand_iter: Iterable[InstallationCandidate]) -> str: - # This repeated parse_version and str() conversion is needed to - # handle different vendoring sources from pip and pkg_resources. - # If we stop using the pkg_resources provided specifier and start - # using our own, we can drop the cast to str(). - return ( - ", ".join( - sorted( - {str(c.version) for c in cand_iter}, - key=parse_version, - ) - ) - or "none" - ) - - if installed_version is None and best_candidate is None: - logger.critical( - "Could not find a version that satisfies the requirement %s " - "(from versions: %s)", - req, - _format_versions(best_candidate_result.iter_all()), - ) - - raise DistributionNotFound( - "No matching distribution found for {}".format(req) - ) - - best_installed = False - if installed_version and ( - best_candidate is None or best_candidate.version <= installed_version - ): - best_installed = True - - if not upgrade and installed_version is not None: - if best_installed: - logger.debug( - "Existing installed version (%s) is most up-to-date and " - "satisfies requirement", - installed_version, - ) - else: - logger.debug( - "Existing installed version (%s) satisfies requirement " - "(most up-to-date version is %s)", - installed_version, - best_candidate.version, - ) - return None - - if best_installed: - # We have an existing version, and its the best version - logger.debug( - "Installed version (%s) is most up-to-date (past versions: %s)", - installed_version, - _format_versions(best_candidate_result.iter_applicable()), - ) - raise BestVersionAlreadyInstalled - - logger.debug( - "Using version %s (newest of versions: %s)", - best_candidate.version, - _format_versions(best_candidate_result.iter_applicable()), - ) - return best_candidate - - -def _find_name_version_sep(fragment: str, canonical_name: str) -> int: - """Find the separator's index based on the package's canonical name. - - :param fragment: A + filename "fragment" (stem) or - egg fragment. - :param canonical_name: The package's canonical name. - - This function is needed since the canonicalized name does not necessarily - have the same length as the egg info's name part. An example:: - - >>> fragment = 'foo__bar-1.0' - >>> canonical_name = 'foo-bar' - >>> _find_name_version_sep(fragment, canonical_name) - 8 - """ - # Project name and version must be separated by one single dash. Find all - # occurrences of dashes; if the string in front of it matches the canonical - # name, this is the one separating the name and version parts. - for i, c in enumerate(fragment): - if c != "-": - continue - if canonicalize_name(fragment[:i]) == canonical_name: - return i - raise ValueError(f"{fragment} does not match {canonical_name}") - - -def _extract_version_from_fragment(fragment: str, canonical_name: str) -> Optional[str]: - """Parse the version string from a + filename - "fragment" (stem) or egg fragment. - - :param fragment: The string to parse. E.g. foo-2.1 - :param canonical_name: The canonicalized name of the package this - belongs to. - """ - try: - version_start = _find_name_version_sep(fragment, canonical_name) + 1 - except ValueError: - return None - version = fragment[version_start:] - if not version: - return None - return version diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/index/sources.py b/.venv/lib/python3.9/site-packages/pip/_internal/index/sources.py deleted file mode 100644 index eec3f12..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/index/sources.py +++ /dev/null @@ -1,224 +0,0 @@ -import logging -import mimetypes -import os -import pathlib -from typing import Callable, Iterable, Optional, Tuple - -from pip._internal.models.candidate import InstallationCandidate -from pip._internal.models.link import Link -from pip._internal.utils.urls import path_to_url, url_to_path -from pip._internal.vcs import is_url - -logger = logging.getLogger(__name__) - -FoundCandidates = Iterable[InstallationCandidate] -FoundLinks = Iterable[Link] -CandidatesFromPage = Callable[[Link], Iterable[InstallationCandidate]] -PageValidator = Callable[[Link], bool] - - -class LinkSource: - @property - def link(self) -> Optional[Link]: - """Returns the underlying link, if there's one.""" - raise NotImplementedError() - - def page_candidates(self) -> FoundCandidates: - """Candidates found by parsing an archive listing HTML file.""" - raise NotImplementedError() - - def file_links(self) -> FoundLinks: - """Links found by specifying archives directly.""" - raise NotImplementedError() - - -def _is_html_file(file_url: str) -> bool: - return mimetypes.guess_type(file_url, strict=False)[0] == "text/html" - - -class _FlatDirectorySource(LinkSource): - """Link source specified by ``--find-links=``. - - This looks the content of the directory, and returns: - - * ``page_candidates``: Links listed on each HTML file in the directory. - * ``file_candidates``: Archives in the directory. - """ - - def __init__( - self, - candidates_from_page: CandidatesFromPage, - path: str, - ) -> None: - self._candidates_from_page = candidates_from_page - self._path = pathlib.Path(os.path.realpath(path)) - - @property - def link(self) -> Optional[Link]: - return None - - def page_candidates(self) -> FoundCandidates: - for path in self._path.iterdir(): - url = path_to_url(str(path)) - if not _is_html_file(url): - continue - yield from self._candidates_from_page(Link(url)) - - def file_links(self) -> FoundLinks: - for path in self._path.iterdir(): - url = path_to_url(str(path)) - if _is_html_file(url): - continue - yield Link(url) - - -class _LocalFileSource(LinkSource): - """``--find-links=`` or ``--[extra-]index-url=``. - - If a URL is supplied, it must be a ``file:`` URL. If a path is supplied to - the option, it is converted to a URL first. This returns: - - * ``page_candidates``: Links listed on an HTML file. - * ``file_candidates``: The non-HTML file. - """ - - def __init__( - self, - candidates_from_page: CandidatesFromPage, - link: Link, - ) -> None: - self._candidates_from_page = candidates_from_page - self._link = link - - @property - def link(self) -> Optional[Link]: - return self._link - - def page_candidates(self) -> FoundCandidates: - if not _is_html_file(self._link.url): - return - yield from self._candidates_from_page(self._link) - - def file_links(self) -> FoundLinks: - if _is_html_file(self._link.url): - return - yield self._link - - -class _RemoteFileSource(LinkSource): - """``--find-links=`` or ``--[extra-]index-url=``. - - This returns: - - * ``page_candidates``: Links listed on an HTML file. - * ``file_candidates``: The non-HTML file. - """ - - def __init__( - self, - candidates_from_page: CandidatesFromPage, - page_validator: PageValidator, - link: Link, - ) -> None: - self._candidates_from_page = candidates_from_page - self._page_validator = page_validator - self._link = link - - @property - def link(self) -> Optional[Link]: - return self._link - - def page_candidates(self) -> FoundCandidates: - if not self._page_validator(self._link): - return - yield from self._candidates_from_page(self._link) - - def file_links(self) -> FoundLinks: - yield self._link - - -class _IndexDirectorySource(LinkSource): - """``--[extra-]index-url=``. - - This is treated like a remote URL; ``candidates_from_page`` contains logic - for this by appending ``index.html`` to the link. - """ - - def __init__( - self, - candidates_from_page: CandidatesFromPage, - link: Link, - ) -> None: - self._candidates_from_page = candidates_from_page - self._link = link - - @property - def link(self) -> Optional[Link]: - return self._link - - def page_candidates(self) -> FoundCandidates: - yield from self._candidates_from_page(self._link) - - def file_links(self) -> FoundLinks: - return () - - -def build_source( - location: str, - *, - candidates_from_page: CandidatesFromPage, - page_validator: PageValidator, - expand_dir: bool, - cache_link_parsing: bool, -) -> Tuple[Optional[str], Optional[LinkSource]]: - - path: Optional[str] = None - url: Optional[str] = None - if os.path.exists(location): # Is a local path. - url = path_to_url(location) - path = location - elif location.startswith("file:"): # A file: URL. - url = location - path = url_to_path(location) - elif is_url(location): - url = location - - if url is None: - msg = ( - "Location '%s' is ignored: " - "it is either a non-existing path or lacks a specific scheme." - ) - logger.warning(msg, location) - return (None, None) - - if path is None: - source: LinkSource = _RemoteFileSource( - candidates_from_page=candidates_from_page, - page_validator=page_validator, - link=Link(url, cache_link_parsing=cache_link_parsing), - ) - return (url, source) - - if os.path.isdir(path): - if expand_dir: - source = _FlatDirectorySource( - candidates_from_page=candidates_from_page, - path=path, - ) - else: - source = _IndexDirectorySource( - candidates_from_page=candidates_from_page, - link=Link(url, cache_link_parsing=cache_link_parsing), - ) - return (url, source) - elif os.path.isfile(path): - source = _LocalFileSource( - candidates_from_page=candidates_from_page, - link=Link(url, cache_link_parsing=cache_link_parsing), - ) - return (url, source) - logger.warning( - "Location '%s' is ignored: it is neither a file nor a directory.", - location, - ) - return (url, None) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/locations/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/locations/__init__.py deleted file mode 100644 index dba182d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/locations/__init__.py +++ /dev/null @@ -1,446 +0,0 @@ -import functools -import logging -import os -import pathlib -import sys -import sysconfig -from typing import Any, Dict, Iterator, List, Optional, Tuple - -from pip._internal.models.scheme import SCHEME_KEYS, Scheme -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.deprecation import deprecated -from pip._internal.utils.virtualenv import running_under_virtualenv - -from . import _distutils, _sysconfig -from .base import ( - USER_CACHE_DIR, - get_major_minor_version, - get_src_prefix, - is_osx_framework, - site_packages, - user_site, -) - -__all__ = [ - "USER_CACHE_DIR", - "get_bin_prefix", - "get_bin_user", - "get_major_minor_version", - "get_platlib", - "get_prefixed_libs", - "get_purelib", - "get_scheme", - "get_src_prefix", - "site_packages", - "user_site", -] - - -logger = logging.getLogger(__name__) - -if os.environ.get("_PIP_LOCATIONS_NO_WARN_ON_MISMATCH"): - _MISMATCH_LEVEL = logging.DEBUG -else: - _MISMATCH_LEVEL = logging.WARNING - -_PLATLIBDIR: str = getattr(sys, "platlibdir", "lib") - -_USE_SYSCONFIG = sys.version_info >= (3, 10) - - -def _looks_like_bpo_44860() -> bool: - """The resolution to bpo-44860 will change this incorrect platlib. - - See . - """ - from distutils.command.install import INSTALL_SCHEMES # type: ignore - - try: - unix_user_platlib = INSTALL_SCHEMES["unix_user"]["platlib"] - except KeyError: - return False - return unix_user_platlib == "$usersite" - - -def _looks_like_red_hat_patched_platlib_purelib(scheme: Dict[str, str]) -> bool: - platlib = scheme["platlib"] - if "/$platlibdir/" in platlib and hasattr(sys, "platlibdir"): - platlib = platlib.replace("/$platlibdir/", f"/{sys.platlibdir}/") - if "/lib64/" not in platlib: - return False - unpatched = platlib.replace("/lib64/", "/lib/") - return unpatched.replace("$platbase/", "$base/") == scheme["purelib"] - - -@functools.lru_cache(maxsize=None) -def _looks_like_red_hat_lib() -> bool: - """Red Hat patches platlib in unix_prefix and unix_home, but not purelib. - - This is the only way I can see to tell a Red Hat-patched Python. - """ - from distutils.command.install import INSTALL_SCHEMES # type: ignore - - return all( - k in INSTALL_SCHEMES - and _looks_like_red_hat_patched_platlib_purelib(INSTALL_SCHEMES[k]) - for k in ("unix_prefix", "unix_home") - ) - - -@functools.lru_cache(maxsize=None) -def _looks_like_debian_scheme() -> bool: - """Debian adds two additional schemes.""" - from distutils.command.install import INSTALL_SCHEMES # type: ignore - - return "deb_system" in INSTALL_SCHEMES and "unix_local" in INSTALL_SCHEMES - - -@functools.lru_cache(maxsize=None) -def _looks_like_red_hat_scheme() -> bool: - """Red Hat patches ``sys.prefix`` and ``sys.exec_prefix``. - - Red Hat's ``00251-change-user-install-location.patch`` changes the install - command's ``prefix`` and ``exec_prefix`` to append ``"/local"``. This is - (fortunately?) done quite unconditionally, so we create a default command - object without any configuration to detect this. - """ - from distutils.command.install import install - from distutils.dist import Distribution - - cmd: Any = install(Distribution()) - cmd.finalize_options() - return ( - cmd.exec_prefix == f"{os.path.normpath(sys.exec_prefix)}/local" - and cmd.prefix == f"{os.path.normpath(sys.prefix)}/local" - ) - - -@functools.lru_cache(maxsize=None) -def _looks_like_msys2_mingw_scheme() -> bool: - """MSYS2 patches distutils and sysconfig to use a UNIX-like scheme. - - However, MSYS2 incorrectly patches sysconfig ``nt`` scheme. The fix is - likely going to be included in their 3.10 release, so we ignore the warning. - See msys2/MINGW-packages#9319. - - MSYS2 MINGW's patch uses lowercase ``"lib"`` instead of the usual uppercase, - and is missing the final ``"site-packages"``. - """ - paths = sysconfig.get_paths("nt", expand=False) - return all( - "Lib" not in p and "lib" in p and not p.endswith("site-packages") - for p in (paths[key] for key in ("platlib", "purelib")) - ) - - -def _fix_abiflags(parts: Tuple[str]) -> Iterator[str]: - ldversion = sysconfig.get_config_var("LDVERSION") - abiflags: str = getattr(sys, "abiflags", None) - - # LDVERSION does not end with sys.abiflags. Just return the path unchanged. - if not ldversion or not abiflags or not ldversion.endswith(abiflags): - yield from parts - return - - # Strip sys.abiflags from LDVERSION-based path components. - for part in parts: - if part.endswith(ldversion): - part = part[: (0 - len(abiflags))] - yield part - - -@functools.lru_cache(maxsize=None) -def _warn_mismatched(old: pathlib.Path, new: pathlib.Path, *, key: str) -> None: - issue_url = "https://github.com/pypa/pip/issues/10151" - message = ( - "Value for %s does not match. Please report this to <%s>" - "\ndistutils: %s" - "\nsysconfig: %s" - ) - logger.log(_MISMATCH_LEVEL, message, key, issue_url, old, new) - - -def _warn_if_mismatch(old: pathlib.Path, new: pathlib.Path, *, key: str) -> bool: - if old == new: - return False - _warn_mismatched(old, new, key=key) - return True - - -@functools.lru_cache(maxsize=None) -def _log_context( - *, - user: bool = False, - home: Optional[str] = None, - root: Optional[str] = None, - prefix: Optional[str] = None, -) -> None: - parts = [ - "Additional context:", - "user = %r", - "home = %r", - "root = %r", - "prefix = %r", - ] - - logger.log(_MISMATCH_LEVEL, "\n".join(parts), user, home, root, prefix) - - -def get_scheme( - dist_name: str, - user: bool = False, - home: Optional[str] = None, - root: Optional[str] = None, - isolated: bool = False, - prefix: Optional[str] = None, -) -> Scheme: - new = _sysconfig.get_scheme( - dist_name, - user=user, - home=home, - root=root, - isolated=isolated, - prefix=prefix, - ) - if _USE_SYSCONFIG: - return new - - old = _distutils.get_scheme( - dist_name, - user=user, - home=home, - root=root, - isolated=isolated, - prefix=prefix, - ) - - warning_contexts = [] - for k in SCHEME_KEYS: - old_v = pathlib.Path(getattr(old, k)) - new_v = pathlib.Path(getattr(new, k)) - - if old_v == new_v: - continue - - # distutils incorrectly put PyPy packages under ``site-packages/python`` - # in the ``posix_home`` scheme, but PyPy devs said they expect the - # directory name to be ``pypy`` instead. So we treat this as a bug fix - # and not warn about it. See bpo-43307 and python/cpython#24628. - skip_pypy_special_case = ( - sys.implementation.name == "pypy" - and home is not None - and k in ("platlib", "purelib") - and old_v.parent == new_v.parent - and old_v.name.startswith("python") - and new_v.name.startswith("pypy") - ) - if skip_pypy_special_case: - continue - - # sysconfig's ``osx_framework_user`` does not include ``pythonX.Y`` in - # the ``include`` value, but distutils's ``headers`` does. We'll let - # CPython decide whether this is a bug or feature. See bpo-43948. - skip_osx_framework_user_special_case = ( - user - and is_osx_framework() - and k == "headers" - and old_v.parent.parent == new_v.parent - and old_v.parent.name.startswith("python") - ) - if skip_osx_framework_user_special_case: - continue - - # On Red Hat and derived Linux distributions, distutils is patched to - # use "lib64" instead of "lib" for platlib. - if k == "platlib" and _looks_like_red_hat_lib(): - continue - - # On Python 3.9+, sysconfig's posix_user scheme sets platlib against - # sys.platlibdir, but distutils's unix_user incorrectly coninutes - # using the same $usersite for both platlib and purelib. This creates a - # mismatch when sys.platlibdir is not "lib". - skip_bpo_44860 = ( - user - and k == "platlib" - and not WINDOWS - and sys.version_info >= (3, 9) - and _PLATLIBDIR != "lib" - and _looks_like_bpo_44860() - ) - if skip_bpo_44860: - continue - - # Both Debian and Red Hat patch Python to place the system site under - # /usr/local instead of /usr. Debian also places lib in dist-packages - # instead of site-packages, but the /usr/local check should cover it. - skip_linux_system_special_case = ( - not (user or home or prefix or running_under_virtualenv()) - and old_v.parts[1:3] == ("usr", "local") - and len(new_v.parts) > 1 - and new_v.parts[1] == "usr" - and (len(new_v.parts) < 3 or new_v.parts[2] != "local") - and (_looks_like_red_hat_scheme() or _looks_like_debian_scheme()) - ) - if skip_linux_system_special_case: - continue - - # On Python 3.7 and earlier, sysconfig does not include sys.abiflags in - # the "pythonX.Y" part of the path, but distutils does. - skip_sysconfig_abiflag_bug = ( - sys.version_info < (3, 8) - and not WINDOWS - and k in ("headers", "platlib", "purelib") - and tuple(_fix_abiflags(old_v.parts)) == new_v.parts - ) - if skip_sysconfig_abiflag_bug: - continue - - # MSYS2 MINGW's sysconfig patch does not include the "site-packages" - # part of the path. This is incorrect and will be fixed in MSYS. - skip_msys2_mingw_bug = ( - WINDOWS and k in ("platlib", "purelib") and _looks_like_msys2_mingw_scheme() - ) - if skip_msys2_mingw_bug: - continue - - # CPython's POSIX install script invokes pip (via ensurepip) against the - # interpreter located in the source tree, not the install site. This - # triggers special logic in sysconfig that's not present in distutils. - # https://github.com/python/cpython/blob/8c21941ddaf/Lib/sysconfig.py#L178-L194 - skip_cpython_build = ( - sysconfig.is_python_build(check_home=True) - and not WINDOWS - and k in ("headers", "include", "platinclude") - ) - if skip_cpython_build: - continue - - warning_contexts.append((old_v, new_v, f"scheme.{k}")) - - if not warning_contexts: - return old - - # Check if this path mismatch is caused by distutils config files. Those - # files will no longer work once we switch to sysconfig, so this raises a - # deprecation message for them. - default_old = _distutils.distutils_scheme( - dist_name, - user, - home, - root, - isolated, - prefix, - ignore_config_files=True, - ) - if any(default_old[k] != getattr(old, k) for k in SCHEME_KEYS): - deprecated( - reason=( - "Configuring installation scheme with distutils config files " - "is deprecated and will no longer work in the near future. If you " - "are using a Homebrew or Linuxbrew Python, please see discussion " - "at https://github.com/Homebrew/homebrew-core/issues/76621" - ), - replacement=None, - gone_in=None, - ) - return old - - # Post warnings about this mismatch so user can report them back. - for old_v, new_v, key in warning_contexts: - _warn_mismatched(old_v, new_v, key=key) - _log_context(user=user, home=home, root=root, prefix=prefix) - - return old - - -def get_bin_prefix() -> str: - new = _sysconfig.get_bin_prefix() - if _USE_SYSCONFIG: - return new - - old = _distutils.get_bin_prefix() - if _warn_if_mismatch(pathlib.Path(old), pathlib.Path(new), key="bin_prefix"): - _log_context() - return old - - -def get_bin_user() -> str: - return _sysconfig.get_scheme("", user=True).scripts - - -def _looks_like_deb_system_dist_packages(value: str) -> bool: - """Check if the value is Debian's APT-controlled dist-packages. - - Debian's ``distutils.sysconfig.get_python_lib()`` implementation returns the - default package path controlled by APT, but does not patch ``sysconfig`` to - do the same. This is similar to the bug worked around in ``get_scheme()``, - but here the default is ``deb_system`` instead of ``unix_local``. Ultimately - we can't do anything about this Debian bug, and this detection allows us to - skip the warning when needed. - """ - if not _looks_like_debian_scheme(): - return False - if value == "/usr/lib/python3/dist-packages": - return True - return False - - -def get_purelib() -> str: - """Return the default pure-Python lib location.""" - new = _sysconfig.get_purelib() - if _USE_SYSCONFIG: - return new - - old = _distutils.get_purelib() - if _looks_like_deb_system_dist_packages(old): - return old - if _warn_if_mismatch(pathlib.Path(old), pathlib.Path(new), key="purelib"): - _log_context() - return old - - -def get_platlib() -> str: - """Return the default platform-shared lib location.""" - new = _sysconfig.get_platlib() - if _USE_SYSCONFIG: - return new - - old = _distutils.get_platlib() - if _looks_like_deb_system_dist_packages(old): - return old - if _warn_if_mismatch(pathlib.Path(old), pathlib.Path(new), key="platlib"): - _log_context() - return old - - -def _deduplicated(v1: str, v2: str) -> List[str]: - """Deduplicate values from a list.""" - if v1 == v2: - return [v1] - return [v1, v2] - - -def get_prefixed_libs(prefix: str) -> List[str]: - """Return the lib locations under ``prefix``.""" - new_pure, new_plat = _sysconfig.get_prefixed_libs(prefix) - if _USE_SYSCONFIG: - return _deduplicated(new_pure, new_plat) - - old_pure, old_plat = _distutils.get_prefixed_libs(prefix) - - warned = [ - _warn_if_mismatch( - pathlib.Path(old_pure), - pathlib.Path(new_pure), - key="prefixed-purelib", - ), - _warn_if_mismatch( - pathlib.Path(old_plat), - pathlib.Path(new_plat), - key="prefixed-platlib", - ), - ] - if any(warned): - _log_context(prefix=prefix) - - return _deduplicated(old_pure, old_plat) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index e30975cccf99bba66f5e8e89763cd276a0db9b98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10617 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-39.pyc deleted file mode 100644 index d594e40cb40c46a70c7c8f8e0cf4ef913d4e85a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4676 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-39.pyc deleted file mode 100644 index 1289b430e68742b4ac643269fe980167f0a20cf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6267 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/base.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/base.cpython-39.pyc deleted file mode 100644 index 326827b398c9c864160da6d8ecc1fc087340d81c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1545 zcmZux&u`>36tz=0S5Ev3oOpIx+LhK(Y`+)3=jZSHoT%MyB51$;)t`J^Md)vB z+--F*zJXUL=$@klB{)MtIpP2t+X^f*+JS9GCvePI2`VsJS#??qYFNkES$*0F8W@q< zvY9w59IO#%*-9!fYm>^PL%Q3DtS8kyM7l}scbwFd#v3Pi@7ii6YhZ0Gc8ImyT%q9J zotV}hdVy%qLFE1UpBU+fSd*>b-b+NSM~I-w{RAiNUoh#J%$=nB#<{}5c7jh)fBhdg zA3Ew|Rg3aGNx6V&j~A4tbQBgeAv`=!xh$fL&~s(yX|8H{!AX`5R9mEygn1Odibg~S zRymOcr?Jj?w^?8uz$;qNC3u1)o>;#k*xy=^rVH)F1iEre+-Wpn{NXgEjJxNAiZ>#E% z@o6NLE#^YCt~Ur%I%Iz!z6SM~?qBAQ*_8N$RE#g82_e##L`a{Kp$rA#5EsfB4Rg+7 zB82aq13W%};^(He$KIE|M(5!TIzAxh!#0v|8fAXQ;z+{Dgg=M`@$$L4KO!xI?+Wh-cHqu$v6KjPrDy3s08b70z7K(iYi1B#w)frGUWElv8$=e4+y#!d1LsTX+k%taXR? z^x8%NOoo~!t^a8>6X}Ayg|7~D;5GQ_G!mq{v;aSRrBShtRQK7-vnR(#-<|CLc=+P@ zt&=rA3XMV0gLJmPn1Hi9#SucsnpVipd0G$j{|zxoWeD~Y%GM= Dict[str, str]: - """ - Return a distutils install scheme - """ - from distutils.dist import Distribution - - dist_args: Dict[str, Union[str, List[str]]] = {"name": dist_name} - if isolated: - dist_args["script_args"] = ["--no-user-cfg"] - - d = Distribution(dist_args) - if not ignore_config_files: - try: - d.parse_config_files() - except UnicodeDecodeError: - # Typeshed does not include find_config_files() for some reason. - paths = d.find_config_files() # type: ignore - logger.warning( - "Ignore distutils configs in %s due to encoding errors.", - ", ".join(os.path.basename(p) for p in paths), - ) - obj: Optional[DistutilsCommand] = None - obj = d.get_command_obj("install", create=True) - assert obj is not None - i = cast(distutils_install_command, obj) - # NOTE: setting user or home has the side-effect of creating the home dir - # or user base for installations during finalize_options() - # ideally, we'd prefer a scheme class that has no side-effects. - assert not (user and prefix), f"user={user} prefix={prefix}" - assert not (home and prefix), f"home={home} prefix={prefix}" - i.user = user or i.user - if user or home: - i.prefix = "" - i.prefix = prefix or i.prefix - i.home = home or i.home - i.root = root or i.root - i.finalize_options() - - scheme = {} - for key in SCHEME_KEYS: - scheme[key] = getattr(i, "install_" + key) - - # install_lib specified in setup.cfg should install *everything* - # into there (i.e. it takes precedence over both purelib and - # platlib). Note, i.install_lib is *always* set after - # finalize_options(); we only want to override here if the user - # has explicitly requested it hence going back to the config - if "install_lib" in d.get_option_dict("install"): - scheme.update(dict(purelib=i.install_lib, platlib=i.install_lib)) - - if running_under_virtualenv(): - if home: - prefix = home - elif user: - prefix = i.install_userbase # type: ignore - else: - prefix = i.prefix - scheme["headers"] = os.path.join( - prefix, - "include", - "site", - f"python{get_major_minor_version()}", - dist_name, - ) - - if root is not None: - path_no_drive = os.path.splitdrive(os.path.abspath(scheme["headers"]))[1] - scheme["headers"] = os.path.join(root, path_no_drive[1:]) - - return scheme - - -def get_scheme( - dist_name: str, - user: bool = False, - home: Optional[str] = None, - root: Optional[str] = None, - isolated: bool = False, - prefix: Optional[str] = None, -) -> Scheme: - """ - Get the "scheme" corresponding to the input parameters. The distutils - documentation provides the context for the available schemes: - https://docs.python.org/3/install/index.html#alternate-installation - - :param dist_name: the name of the package to retrieve the scheme for, used - in the headers scheme path - :param user: indicates to use the "user" scheme - :param home: indicates to use the "home" scheme and provides the base - directory for the same - :param root: root under which other directories are re-based - :param isolated: equivalent to --no-user-cfg, i.e. do not consider - ~/.pydistutils.cfg (posix) or ~/pydistutils.cfg (non-posix) for - scheme paths - :param prefix: indicates to use the "prefix" scheme and provides the - base directory for the same - """ - scheme = distutils_scheme(dist_name, user, home, root, isolated, prefix) - return Scheme( - platlib=scheme["platlib"], - purelib=scheme["purelib"], - headers=scheme["headers"], - scripts=scheme["scripts"], - data=scheme["data"], - ) - - -def get_bin_prefix() -> str: - # XXX: In old virtualenv versions, sys.prefix can contain '..' components, - # so we need to call normpath to eliminate them. - prefix = os.path.normpath(sys.prefix) - if WINDOWS: - bin_py = os.path.join(prefix, "Scripts") - # buildout uses 'bin' on Windows too? - if not os.path.exists(bin_py): - bin_py = os.path.join(prefix, "bin") - return bin_py - # Forcing to use /usr/local/bin for standard macOS framework installs - # Also log to ~/Library/Logs/ for use with the Console.app log viewer - if sys.platform[:6] == "darwin" and prefix[:16] == "/System/Library/": - return "/usr/local/bin" - return os.path.join(prefix, "bin") - - -def get_purelib() -> str: - return get_python_lib(plat_specific=False) - - -def get_platlib() -> str: - return get_python_lib(plat_specific=True) - - -def get_prefixed_libs(prefix: str) -> Tuple[str, str]: - return ( - get_python_lib(plat_specific=False, prefix=prefix), - get_python_lib(plat_specific=True, prefix=prefix), - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/locations/_sysconfig.py b/.venv/lib/python3.9/site-packages/pip/_internal/locations/_sysconfig.py deleted file mode 100644 index 5e141aa..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/locations/_sysconfig.py +++ /dev/null @@ -1,219 +0,0 @@ -import distutils.util # FIXME: For change_root. -import logging -import os -import sys -import sysconfig -import typing - -from pip._internal.exceptions import InvalidSchemeCombination, UserInstallationInvalid -from pip._internal.models.scheme import SCHEME_KEYS, Scheme -from pip._internal.utils.virtualenv import running_under_virtualenv - -from .base import get_major_minor_version, is_osx_framework - -logger = logging.getLogger(__name__) - - -# Notes on _infer_* functions. -# Unfortunately ``get_default_scheme()`` didn't exist before 3.10, so there's no -# way to ask things like "what is the '_prefix' scheme on this platform". These -# functions try to answer that with some heuristics while accounting for ad-hoc -# platforms not covered by CPython's default sysconfig implementation. If the -# ad-hoc implementation does not fully implement sysconfig, we'll fall back to -# a POSIX scheme. - -_AVAILABLE_SCHEMES = set(sysconfig.get_scheme_names()) - -_PREFERRED_SCHEME_API = getattr(sysconfig, "get_preferred_scheme", None) - - -def _should_use_osx_framework_prefix() -> bool: - """Check for Apple's ``osx_framework_library`` scheme. - - Python distributed by Apple's Command Line Tools has this special scheme - that's used when: - - * This is a framework build. - * We are installing into the system prefix. - - This does not account for ``pip install --prefix`` (also means we're not - installing to the system prefix), which should use ``posix_prefix``, but - logic here means ``_infer_prefix()`` outputs ``osx_framework_library``. But - since ``prefix`` is not available for ``sysconfig.get_default_scheme()``, - which is the stdlib replacement for ``_infer_prefix()``, presumably Apple - wouldn't be able to magically switch between ``osx_framework_library`` and - ``posix_prefix``. ``_infer_prefix()`` returning ``osx_framework_library`` - means its behavior is consistent whether we use the stdlib implementation - or our own, and we deal with this special case in ``get_scheme()`` instead. - """ - return ( - "osx_framework_library" in _AVAILABLE_SCHEMES - and not running_under_virtualenv() - and is_osx_framework() - ) - - -def _infer_prefix() -> str: - """Try to find a prefix scheme for the current platform. - - This tries: - - * A special ``osx_framework_library`` for Python distributed by Apple's - Command Line Tools, when not running in a virtual environment. - * Implementation + OS, used by PyPy on Windows (``pypy_nt``). - * Implementation without OS, used by PyPy on POSIX (``pypy``). - * OS + "prefix", used by CPython on POSIX (``posix_prefix``). - * Just the OS name, used by CPython on Windows (``nt``). - - If none of the above works, fall back to ``posix_prefix``. - """ - if _PREFERRED_SCHEME_API: - return _PREFERRED_SCHEME_API("prefix") - if _should_use_osx_framework_prefix(): - return "osx_framework_library" - implementation_suffixed = f"{sys.implementation.name}_{os.name}" - if implementation_suffixed in _AVAILABLE_SCHEMES: - return implementation_suffixed - if sys.implementation.name in _AVAILABLE_SCHEMES: - return sys.implementation.name - suffixed = f"{os.name}_prefix" - if suffixed in _AVAILABLE_SCHEMES: - return suffixed - if os.name in _AVAILABLE_SCHEMES: # On Windows, prefx is just called "nt". - return os.name - return "posix_prefix" - - -def _infer_user() -> str: - """Try to find a user scheme for the current platform.""" - if _PREFERRED_SCHEME_API: - return _PREFERRED_SCHEME_API("user") - if is_osx_framework() and not running_under_virtualenv(): - suffixed = "osx_framework_user" - else: - suffixed = f"{os.name}_user" - if suffixed in _AVAILABLE_SCHEMES: - return suffixed - if "posix_user" not in _AVAILABLE_SCHEMES: # User scheme unavailable. - raise UserInstallationInvalid() - return "posix_user" - - -def _infer_home() -> str: - """Try to find a home for the current platform.""" - if _PREFERRED_SCHEME_API: - return _PREFERRED_SCHEME_API("home") - suffixed = f"{os.name}_home" - if suffixed in _AVAILABLE_SCHEMES: - return suffixed - return "posix_home" - - -# Update these keys if the user sets a custom home. -_HOME_KEYS = [ - "installed_base", - "base", - "installed_platbase", - "platbase", - "prefix", - "exec_prefix", -] -if sysconfig.get_config_var("userbase") is not None: - _HOME_KEYS.append("userbase") - - -def get_scheme( - dist_name: str, - user: bool = False, - home: typing.Optional[str] = None, - root: typing.Optional[str] = None, - isolated: bool = False, - prefix: typing.Optional[str] = None, -) -> Scheme: - """ - Get the "scheme" corresponding to the input parameters. - - :param dist_name: the name of the package to retrieve the scheme for, used - in the headers scheme path - :param user: indicates to use the "user" scheme - :param home: indicates to use the "home" scheme - :param root: root under which other directories are re-based - :param isolated: ignored, but kept for distutils compatibility (where - this controls whether the user-site pydistutils.cfg is honored) - :param prefix: indicates to use the "prefix" scheme and provides the - base directory for the same - """ - if user and prefix: - raise InvalidSchemeCombination("--user", "--prefix") - if home and prefix: - raise InvalidSchemeCombination("--home", "--prefix") - - if home is not None: - scheme_name = _infer_home() - elif user: - scheme_name = _infer_user() - else: - scheme_name = _infer_prefix() - - # Special case: When installing into a custom prefix, use posix_prefix - # instead of osx_framework_library. See _should_use_osx_framework_prefix() - # docstring for details. - if prefix is not None and scheme_name == "osx_framework_library": - scheme_name = "posix_prefix" - - if home is not None: - variables = {k: home for k in _HOME_KEYS} - elif prefix is not None: - variables = {k: prefix for k in _HOME_KEYS} - else: - variables = {} - - paths = sysconfig.get_paths(scheme=scheme_name, vars=variables) - - # Logic here is very arbitrary, we're doing it for compatibility, don't ask. - # 1. Pip historically uses a special header path in virtual environments. - # 2. If the distribution name is not known, distutils uses 'UNKNOWN'. We - # only do the same when not running in a virtual environment because - # pip's historical header path logic (see point 1) did not do this. - if running_under_virtualenv(): - if user: - base = variables.get("userbase", sys.prefix) - else: - base = variables.get("base", sys.prefix) - python_xy = f"python{get_major_minor_version()}" - paths["include"] = os.path.join(base, "include", "site", python_xy) - elif not dist_name: - dist_name = "UNKNOWN" - - scheme = Scheme( - platlib=paths["platlib"], - purelib=paths["purelib"], - headers=os.path.join(paths["include"], dist_name), - scripts=paths["scripts"], - data=paths["data"], - ) - if root is not None: - for key in SCHEME_KEYS: - value = distutils.util.change_root(root, getattr(scheme, key)) - setattr(scheme, key, value) - return scheme - - -def get_bin_prefix() -> str: - # Forcing to use /usr/local/bin for standard macOS framework installs. - if sys.platform[:6] == "darwin" and sys.prefix[:16] == "/System/Library/": - return "/usr/local/bin" - return sysconfig.get_paths()["scripts"] - - -def get_purelib() -> str: - return sysconfig.get_paths()["purelib"] - - -def get_platlib() -> str: - return sysconfig.get_paths()["platlib"] - - -def get_prefixed_libs(prefix: str) -> typing.Tuple[str, str]: - paths = sysconfig.get_paths(vars={"base": prefix, "platbase": prefix}) - return (paths["purelib"], paths["platlib"]) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/locations/base.py b/.venv/lib/python3.9/site-packages/pip/_internal/locations/base.py deleted file mode 100644 index 86dad4a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/locations/base.py +++ /dev/null @@ -1,52 +0,0 @@ -import functools -import os -import site -import sys -import sysconfig -import typing - -from pip._internal.utils import appdirs -from pip._internal.utils.virtualenv import running_under_virtualenv - -# Application Directories -USER_CACHE_DIR = appdirs.user_cache_dir("pip") - -# FIXME doesn't account for venv linked to global site-packages -site_packages: typing.Optional[str] = sysconfig.get_path("purelib") - - -def get_major_minor_version() -> str: - """ - Return the major-minor version of the current Python as a string, e.g. - "3.7" or "3.10". - """ - return "{}.{}".format(*sys.version_info) - - -def get_src_prefix() -> str: - if running_under_virtualenv(): - src_prefix = os.path.join(sys.prefix, "src") - else: - # FIXME: keep src in cwd for now (it is not a temporary folder) - try: - src_prefix = os.path.join(os.getcwd(), "src") - except OSError: - # In case the current working directory has been renamed or deleted - sys.exit("The folder you are executing pip from can no longer be found.") - - # under macOS + virtualenv sys.prefix is not properly resolved - # it is something like /path/to/python/bin/.. - return os.path.abspath(src_prefix) - - -try: - # Use getusersitepackages if this is present, as it ensures that the - # value is initialised properly. - user_site: typing.Optional[str] = site.getusersitepackages() -except AttributeError: - user_site = site.USER_SITE - - -@functools.lru_cache(maxsize=None) -def is_osx_framework() -> bool: - return bool(sysconfig.get_config_var("PYTHONFRAMEWORK")) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/main.py b/.venv/lib/python3.9/site-packages/pip/_internal/main.py deleted file mode 100644 index 33c6d24..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/main.py +++ /dev/null @@ -1,12 +0,0 @@ -from typing import List, Optional - - -def main(args: Optional[List[str]] = None) -> int: - """This is preserved for old console scripts that may still be referencing - it. - - For additional details, see https://github.com/pypa/pip/issues/7498. - """ - from pip._internal.utils.entrypoints import _wrapper - - return _wrapper(args) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__init__.py deleted file mode 100644 index f4f2a4f..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__init__.py +++ /dev/null @@ -1,51 +0,0 @@ -from typing import List, Optional - -from .base import BaseDistribution, BaseEnvironment, FilesystemWheel, MemoryWheel, Wheel - -__all__ = [ - "BaseDistribution", - "BaseEnvironment", - "FilesystemWheel", - "MemoryWheel", - "Wheel", - "get_default_environment", - "get_environment", - "get_wheel_distribution", -] - - -def get_default_environment() -> BaseEnvironment: - """Get the default representation for the current environment. - - This returns an Environment instance from the chosen backend. The default - Environment instance should be built from ``sys.path`` and may use caching - to share instance state accorss calls. - """ - from .pkg_resources import Environment - - return Environment.default() - - -def get_environment(paths: Optional[List[str]]) -> BaseEnvironment: - """Get a representation of the environment specified by ``paths``. - - This returns an Environment instance from the chosen backend based on the - given import paths. The backend must build a fresh instance representing - the state of installed distributions when this function is called. - """ - from .pkg_resources import Environment - - return Environment.from_paths(paths) - - -def get_wheel_distribution(wheel: Wheel, canonical_name: str) -> BaseDistribution: - """Get the representation of the specified wheel's distribution metadata. - - This returns a Distribution instance from the chosen backend based on - the given wheel's ``.dist-info`` directory. - - :param canonical_name: Normalized project name of the given wheel. - """ - from .pkg_resources import Distribution - - return Distribution.from_wheel(wheel, canonical_name) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index dcf7c87188dff39d501bc451fa52a8303604355b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1932 zcmb`IJCEEp5XUL)OSiAPJm3eA0PGAEUKOcg1V)f&lQ=~J1lUH)6=zpG>jjcJdxK4v zFA?AhU%Gsad*j)&aD-ETY(fohI6|>ox;rRWp@OnRF>~Fg1jy~Re zj?+}QNG83E<=)cE{iW|Q>C0Z$%lpfIK3ER&;c}RdmZLma1|Hio+5f{^Ucf*OZaq1a zqu=_=G5FxY=&>r0S@#aI=JFerf!P@g`Ohgp)=a*Kywtn) zX5fCpKo8KN#sV-sq9vf^0+;6g7HlkGBkIh?&~;23UBf*xyr3Ad?4%TW%}|4_b&;UI z)1WW#aej%@e29zmq))~Dm3eH>Uio(n3(yl6_~5r-xlMr|(%>2@4FnAPIIbVz9ITUh%Z=XUtZ*P6u zq-C8+z6QRoRc2dns})v$Q3;!_Rv1_ETmqDoa! ztO^Snsf=>4LJBLQ7;VbN@uJ#k>aX{38p@rGroOWv(*vrD(KECrM8k0q6+N7ejC*)- zBEv&6yjT97-Fc3UM+Y{;rBpNYq9FO0?svm5aSv{SSN~CkDMDhlr?C zX{)eqT;)}%Eq8%hh7LgSyf)TRBDp|Lz@%sCPiUX$K=@i7@S_~7S%%@d9cDOo9fe28 zH+7M?rod|g2V{pF$3ocCS6I}Rk}*LayBtGbQyV(FqorLwAln3&k8z$gBny%^aQ)uQ z6H%0f!hmrha%eRr9glkPH5AfooDITMHpETWjcfM0~-s$*LIoeJ?=z7-Dg@0uJ zQx1N_@U7zV?s0jp`#YNdByQWOs6{L8F)k8BN<3D@roFm)2QWJcZ Xm$J^_DK)&Iqv6W`$PcFT>4WLN2g@PP diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/base.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/base.cpython-39.pyc deleted file mode 100644 index 085f527f9f4d1a5fe473c8d8e7ef92f942c46fd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13011 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 IrF^OIzvBIVk^lez diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-39.pyc deleted file mode 100644 index 99e982effd739283b012b509d946c962625303b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6119 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/metadata/base.py b/.venv/lib/python3.9/site-packages/pip/_internal/metadata/base.py deleted file mode 100644 index 4788360..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/metadata/base.py +++ /dev/null @@ -1,330 +0,0 @@ -import email.message -import json -import logging -import re -import zipfile -from typing import ( - IO, - TYPE_CHECKING, - Collection, - Container, - Iterable, - Iterator, - List, - Optional, - Union, -) - -from pip._vendor.packaging.requirements import Requirement -from pip._vendor.packaging.specifiers import InvalidSpecifier, SpecifierSet -from pip._vendor.packaging.utils import NormalizedName -from pip._vendor.packaging.version import LegacyVersion, Version - -from pip._internal.models.direct_url import ( - DIRECT_URL_METADATA_NAME, - DirectUrl, - DirectUrlValidationError, -) -from pip._internal.utils.compat import stdlib_pkgs # TODO: Move definition here. -from pip._internal.utils.egg_link import egg_link_path_from_sys_path -from pip._internal.utils.urls import url_to_path - -if TYPE_CHECKING: - from typing import Protocol -else: - Protocol = object - -DistributionVersion = Union[LegacyVersion, Version] - -logger = logging.getLogger(__name__) - - -class BaseEntryPoint(Protocol): - @property - def name(self) -> str: - raise NotImplementedError() - - @property - def value(self) -> str: - raise NotImplementedError() - - @property - def group(self) -> str: - raise NotImplementedError() - - -class BaseDistribution(Protocol): - def __repr__(self) -> str: - return f"{self.raw_name} {self.version} ({self.location})" - - def __str__(self) -> str: - return f"{self.raw_name} {self.version}" - - @property - def location(self) -> Optional[str]: - """Where the distribution is loaded from. - - A string value is not necessarily a filesystem path, since distributions - can be loaded from other sources, e.g. arbitrary zip archives. ``None`` - means the distribution is created in-memory. - - Do not canonicalize this value with e.g. ``pathlib.Path.resolve()``. If - this is a symbolic link, we want to preserve the relative path between - it and files in the distribution. - """ - raise NotImplementedError() - - @property - def editable_project_location(self) -> Optional[str]: - """The project location for editable distributions. - - This is the directory where pyproject.toml or setup.py is located. - None if the distribution is not installed in editable mode. - """ - # TODO: this property is relatively costly to compute, memoize it ? - direct_url = self.direct_url - if direct_url: - if direct_url.is_local_editable(): - return url_to_path(direct_url.url) - else: - # Search for an .egg-link file by walking sys.path, as it was - # done before by dist_is_editable(). - egg_link_path = egg_link_path_from_sys_path(self.raw_name) - if egg_link_path: - # TODO: get project location from second line of egg_link file - # (https://github.com/pypa/pip/issues/10243) - return self.location - return None - - @property - def info_directory(self) -> Optional[str]: - """Location of the .[egg|dist]-info directory. - - Similarly to ``location``, a string value is not necessarily a - filesystem path. ``None`` means the distribution is created in-memory. - - For a modern .dist-info installation on disk, this should be something - like ``{location}/{raw_name}-{version}.dist-info``. - - Do not canonicalize this value with e.g. ``pathlib.Path.resolve()``. If - this is a symbolic link, we want to preserve the relative path between - it and other files in the distribution. - """ - raise NotImplementedError() - - @property - def canonical_name(self) -> NormalizedName: - raise NotImplementedError() - - @property - def version(self) -> DistributionVersion: - raise NotImplementedError() - - @property - def direct_url(self) -> Optional[DirectUrl]: - """Obtain a DirectUrl from this distribution. - - Returns None if the distribution has no `direct_url.json` metadata, - or if `direct_url.json` is invalid. - """ - try: - content = self.read_text(DIRECT_URL_METADATA_NAME) - except FileNotFoundError: - return None - try: - return DirectUrl.from_json(content) - except ( - UnicodeDecodeError, - json.JSONDecodeError, - DirectUrlValidationError, - ) as e: - logger.warning( - "Error parsing %s for %s: %s", - DIRECT_URL_METADATA_NAME, - self.canonical_name, - e, - ) - return None - - @property - def installer(self) -> str: - raise NotImplementedError() - - @property - def editable(self) -> bool: - return bool(self.editable_project_location) - - @property - def local(self) -> bool: - raise NotImplementedError() - - @property - def in_usersite(self) -> bool: - raise NotImplementedError() - - @property - def in_site_packages(self) -> bool: - raise NotImplementedError() - - def read_text(self, name: str) -> str: - """Read a file in the .dist-info (or .egg-info) directory. - - Should raise ``FileNotFoundError`` if ``name`` does not exist in the - metadata directory. - """ - raise NotImplementedError() - - def iter_entry_points(self) -> Iterable[BaseEntryPoint]: - raise NotImplementedError() - - @property - def metadata(self) -> email.message.Message: - """Metadata of distribution parsed from e.g. METADATA or PKG-INFO.""" - raise NotImplementedError() - - @property - def metadata_version(self) -> Optional[str]: - """Value of "Metadata-Version:" in distribution metadata, if available.""" - return self.metadata.get("Metadata-Version") - - @property - def raw_name(self) -> str: - """Value of "Name:" in distribution metadata.""" - # The metadata should NEVER be missing the Name: key, but if it somehow - # does, fall back to the known canonical name. - return self.metadata.get("Name", self.canonical_name) - - @property - def requires_python(self) -> SpecifierSet: - """Value of "Requires-Python:" in distribution metadata. - - If the key does not exist or contains an invalid value, an empty - SpecifierSet should be returned. - """ - value = self.metadata.get("Requires-Python") - if value is None: - return SpecifierSet() - try: - # Convert to str to satisfy the type checker; this can be a Header object. - spec = SpecifierSet(str(value)) - except InvalidSpecifier as e: - message = "Package %r has an invalid Requires-Python: %s" - logger.warning(message, self.raw_name, e) - return SpecifierSet() - return spec - - def iter_dependencies(self, extras: Collection[str] = ()) -> Iterable[Requirement]: - """Dependencies of this distribution. - - For modern .dist-info distributions, this is the collection of - "Requires-Dist:" entries in distribution metadata. - """ - raise NotImplementedError() - - def iter_provided_extras(self) -> Iterable[str]: - """Extras provided by this distribution. - - For modern .dist-info distributions, this is the collection of - "Provides-Extra:" entries in distribution metadata. - """ - raise NotImplementedError() - - -class BaseEnvironment: - """An environment containing distributions to introspect.""" - - @classmethod - def default(cls) -> "BaseEnvironment": - raise NotImplementedError() - - @classmethod - def from_paths(cls, paths: Optional[List[str]]) -> "BaseEnvironment": - raise NotImplementedError() - - def get_distribution(self, name: str) -> Optional["BaseDistribution"]: - """Given a requirement name, return the installed distributions.""" - raise NotImplementedError() - - def _iter_distributions(self) -> Iterator["BaseDistribution"]: - """Iterate through installed distributions. - - This function should be implemented by subclass, but never called - directly. Use the public ``iter_distribution()`` instead, which - implements additional logic to make sure the distributions are valid. - """ - raise NotImplementedError() - - def iter_distributions(self) -> Iterator["BaseDistribution"]: - """Iterate through installed distributions.""" - for dist in self._iter_distributions(): - # Make sure the distribution actually comes from a valid Python - # packaging distribution. Pip's AdjacentTempDirectory leaves folders - # e.g. ``~atplotlib.dist-info`` if cleanup was interrupted. The - # valid project name pattern is taken from PEP 508. - project_name_valid = re.match( - r"^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$", - dist.canonical_name, - flags=re.IGNORECASE, - ) - if not project_name_valid: - logger.warning( - "Ignoring invalid distribution %s (%s)", - dist.canonical_name, - dist.location, - ) - continue - yield dist - - def iter_installed_distributions( - self, - local_only: bool = True, - skip: Container[str] = stdlib_pkgs, - include_editables: bool = True, - editables_only: bool = False, - user_only: bool = False, - ) -> Iterator[BaseDistribution]: - """Return a list of installed distributions. - - :param local_only: If True (default), only return installations - local to the current virtualenv, if in a virtualenv. - :param skip: An iterable of canonicalized project names to ignore; - defaults to ``stdlib_pkgs``. - :param include_editables: If False, don't report editables. - :param editables_only: If True, only report editables. - :param user_only: If True, only report installations in the user - site directory. - """ - it = self.iter_distributions() - if local_only: - it = (d for d in it if d.local) - if not include_editables: - it = (d for d in it if not d.editable) - if editables_only: - it = (d for d in it if d.editable) - if user_only: - it = (d for d in it if d.in_usersite) - return (d for d in it if d.canonical_name not in skip) - - -class Wheel(Protocol): - location: str - - def as_zipfile(self) -> zipfile.ZipFile: - raise NotImplementedError() - - -class FilesystemWheel(Wheel): - def __init__(self, location: str) -> None: - self.location = location - - def as_zipfile(self) -> zipfile.ZipFile: - return zipfile.ZipFile(self.location, allowZip64=True) - - -class MemoryWheel(Wheel): - def __init__(self, location: str, stream: IO[bytes]) -> None: - self.location = location - self.stream = stream - - def as_zipfile(self) -> zipfile.ZipFile: - return zipfile.ZipFile(self.stream, allowZip64=True) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.py b/.venv/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.py deleted file mode 100644 index e8a8a38..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.py +++ /dev/null @@ -1,146 +0,0 @@ -import email.message -import logging -from typing import Collection, Iterable, Iterator, List, NamedTuple, Optional - -from pip._vendor import pkg_resources -from pip._vendor.packaging.requirements import Requirement -from pip._vendor.packaging.utils import NormalizedName, canonicalize_name -from pip._vendor.packaging.version import parse as parse_version - -from pip._internal.utils import misc # TODO: Move definition here. -from pip._internal.utils.packaging import get_installer, get_metadata -from pip._internal.utils.wheel import pkg_resources_distribution_for_wheel - -from .base import ( - BaseDistribution, - BaseEntryPoint, - BaseEnvironment, - DistributionVersion, - Wheel, -) - -logger = logging.getLogger(__name__) - - -class EntryPoint(NamedTuple): - name: str - value: str - group: str - - -class Distribution(BaseDistribution): - def __init__(self, dist: pkg_resources.Distribution) -> None: - self._dist = dist - - @classmethod - def from_wheel(cls, wheel: Wheel, name: str) -> "Distribution": - with wheel.as_zipfile() as zf: - dist = pkg_resources_distribution_for_wheel(zf, name, wheel.location) - return cls(dist) - - @property - def location(self) -> Optional[str]: - return self._dist.location - - @property - def info_directory(self) -> Optional[str]: - return self._dist.egg_info - - @property - def canonical_name(self) -> NormalizedName: - return canonicalize_name(self._dist.project_name) - - @property - def version(self) -> DistributionVersion: - return parse_version(self._dist.version) - - @property - def installer(self) -> str: - return get_installer(self._dist) - - @property - def local(self) -> bool: - return misc.dist_is_local(self._dist) - - @property - def in_usersite(self) -> bool: - return misc.dist_in_usersite(self._dist) - - @property - def in_site_packages(self) -> bool: - return misc.dist_in_site_packages(self._dist) - - def read_text(self, name: str) -> str: - if not self._dist.has_metadata(name): - raise FileNotFoundError(name) - return self._dist.get_metadata(name) - - def iter_entry_points(self) -> Iterable[BaseEntryPoint]: - for group, entries in self._dist.get_entry_map().items(): - for name, entry_point in entries.items(): - name, _, value = str(entry_point).partition("=") - yield EntryPoint(name=name.strip(), value=value.strip(), group=group) - - @property - def metadata(self) -> email.message.Message: - return get_metadata(self._dist) - - def iter_dependencies(self, extras: Collection[str] = ()) -> Iterable[Requirement]: - if extras: # pkg_resources raises on invalid extras, so we sanitize. - extras = frozenset(extras).intersection(self._dist.extras) - return self._dist.requires(extras) - - def iter_provided_extras(self) -> Iterable[str]: - return self._dist.extras - - -class Environment(BaseEnvironment): - def __init__(self, ws: pkg_resources.WorkingSet) -> None: - self._ws = ws - - @classmethod - def default(cls) -> BaseEnvironment: - return cls(pkg_resources.working_set) - - @classmethod - def from_paths(cls, paths: Optional[List[str]]) -> BaseEnvironment: - return cls(pkg_resources.WorkingSet(paths)) - - def _search_distribution(self, name: str) -> Optional[BaseDistribution]: - """Find a distribution matching the ``name`` in the environment. - - This searches from *all* distributions available in the environment, to - match the behavior of ``pkg_resources.get_distribution()``. - """ - canonical_name = canonicalize_name(name) - for dist in self.iter_distributions(): - if dist.canonical_name == canonical_name: - return dist - return None - - def get_distribution(self, name: str) -> Optional[BaseDistribution]: - - # Search the distribution by looking through the working set. - dist = self._search_distribution(name) - if dist: - return dist - - # If distribution could not be found, call working_set.require to - # update the working set, and try to find the distribution again. - # This might happen for e.g. when you install a package twice, once - # using setup.py develop and again using setup.py install. Now when - # running pip uninstall twice, the package gets removed from the - # working set in the first uninstall, so we have to populate the - # working set again so that pip knows about it and the packages gets - # picked up and is successfully uninstalled the second time too. - try: - # We didn't pass in any version specifiers, so this can never - # raise pkg_resources.VersionConflict. - self._ws.require(name) - except pkg_resources.DistributionNotFound: - return None - return self._search_distribution(name) - - def _iter_distributions(self) -> Iterator[BaseDistribution]: - for dist in self._ws: - yield Distribution(dist) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/__init__.py deleted file mode 100644 index 7855226..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -"""A package that contains models that represent entities. -""" diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index b8e484637b793ddf72c3e4ab78ffdab21dc6168f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmYjMyG{c^4BSgY6e<6(?G>C0njj$_KR}a?#@gH&&f&7VTAK^uPxu6WgU?9IC(u#F zAry=>W6c!SOqkDS&hY+OuW#&r9nF7KW^Ro#HR;@g>#C)zCvS^8pF{f`p2%w-)VC>W z;3$5RIvV5@7RrT$qIx4MlQgsYy4s&1cBw`DaAjg|f8{4bpEd+5mVO)7L<&lx5b04- zsEkxlUnAy{S`vX~q&ULBE66+TQ@m&{L0IYhua-dO49HQb#4y0A7oa7qh)v$@r&kuf L40L@Q`E7IuFT7Fq diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/candidate.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/candidate.cpython-39.pyc deleted file mode 100644 index 425417640e96099d89d47ce7af44c491235631e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1454 zcmbVML2uMX6rQoi_Ga0Hs?e4q1sP6QYVAWSL?wi(=1`&12*J&l(cqa)oXpy0W;T$p zoDzvse?TP;ZEyJ-{ERtp;ncr?)Qb1Ko3KE*FxI?%W6zuU-uJ$@Vs&*$VEp+q+j$id z@){S*gTdlwnD!V&Zh9Co*EcH#HpZ)*P+VU^ryC-6=EUO%au3U@D$XtA*Oz)_^6l9Yj@Ww-?> z{-GsP5j?RBC40f1lQET%jE_cTq9U2RpmHErj#xQZtcLO&tX7^AM#>?e8~Ly9G}Z~N zg{#|ULo~9M!l{EF@2k!zs~Trhk#?;EuNFGJR-J6QmX2GK)=SZO7JAl*iSo&wG8WGB zOhc}l88b1UHwl^n7#|zurlzToOL`c7wXXzUU|d2K*=eVYA8-y) zj&phf}5zx|p<5X5#@jOxI}e|G||r%bK5LmQk|;F%`wg#Xuhu-hgQ@f|2wua>gF)nH^9T41!C;wWNQ)nGMQy&|D6E(a6^1b0I?WfK>ZtHUXZ2g7e?@8&AZU u&&8QzulLaW<@di&U9Ih6m%$eAZ(M@dgPkkj)|`vms78zb8lzxDN8wvHA8=Iw diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-39.pyc deleted file mode 100644 index b91dc3ca9934f692d77936479585aa01a0025f41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7244 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 E57L0>E&u=k diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/format_control.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/format_control.cpython-39.pyc deleted file mode 100644 index 2e17f929462d0d78e7418736043b8bae9041bb79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2725 zcmZuzOK%)S5bo}I>?3Q(P8^3k2ope%LGf-v5D``g5rOcM%)t_el|nO~ZhL1vJG1WY zwd2kDf{l{DfaHUH%-`Twpt*A5%q=2~|d!X{6%$B7osz3Hkl4ns`IKYOqn2n<>&yqMwlcD5U)RQ1=+|PTx zC=*{Rm8%%793MU~_ki?1Op>&zAZ;dS+YwASYpm^xdFe@CRxXeWWU|8h?K{F3l|8Rr zl{Hxx)qN&vqQ2+0PsxfnwNFJuOaa%BQ?gQ8C}%i3z3+{j!$mQIXZcL>jcPckDFV5il~g-ms;bR3UM=QjJ>MU{h6VmP0| zH#T4*UX}V3i1~Cley8QpT_(nTLY~l7hFILI;_g>um+rz&=q^2oDVP`!wCw@i0@CloG$Ic#?ojvw z9f5uP68>LjKM_hcY!uWfP=f@itVt6Yqu}POd844~&zPEpErsv4AyB7bRn+dR$xJ@# ztGic${RfB)KYY~*a)a~coiv9W)OVXlCql2NC)xrpi)B&cJWeC6IWMM{a`RoUpUR$u zhzQ)$X>M@K0g#5QyoS9H!a<$G$zI6k96xsv1lm?2+Mq5&8qU4xULh@Ga@=pYM!#7c z&%;8{1Mpp!b^)zj2gp5iz~5|XSbw~8?eWg_;PFlf&+$vZs0(lgp@P+h^JD0x$NXn6 zZto15O7<1!@4-2Z)rU}*PXG5hoJzIOExgSr9mv8rk%CB-p|RLP9E}IQ;piP$%SPk? z-f~FQ8AAozrN2TB9srIG>5e1Zk+VtEFC%u~90DFj^yt4U+(QZyM*tmo$O-Q}`Hg)} zgb$~vx{MjTad`w-eE9K>J934;&eU*hV?!8!1a%E|*g<7fTB8S`hjupvo(?NZ&*{SO z_QFDzFO=mcXax%kSb@fTZfkp>VxE(tJ*@Klc^^9E*Qr_=f%>RDHP^ zR*O0mHf8iyVmbR7MH_B}CyRnUIeZI;*INM8}a5p{Fos6b8jQxNtJL zRk#?`G6N8iur*o_<9LO;% z8NPoKp>H+{DLH-A(=5bZuPTTFr29a66(#}k?ywzOb-M)Od<7x_GW36T4{LFkf%FqA z1%!a~BY{Xq-S3a-&RHqy{yfn&&Ir(CD^TITY#qMN2P&2dpC7umX{ZHQ+iWOm(2JmB zL$!ylVr$Ax*u$=(2dR10y=MXA9AcYqNx{n;(_etTo`Z>4-!;IaW2)2P)svol!}$}H z^0kaFGX>snJ#%P(m)MLi-{Yto@Zm{fs{mPxhY2WV0Z8`JWdlv5{sFXJRwWl=?o#)~ z@ST%4eeDcXnWgZIdIydcb diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/index.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/index.cpython-39.pyc deleted file mode 100644 index 714718cd76019c728a6038d6b15f7325691f5d87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1241 zcmZ`(y>8q_5Z+z>9PdIImJ_LP8n!HS1d_^zVHkE1xDf=$6`KXkozwBcBiFlovUE^q z0j~T223*ML{2G3YZC&{l(%3URU34ijzz*hzv-{0A16F%`6Nd8POTLIh#=erXD;Q%> z@Yvr_DW-VKO8y5^LIqb$1#d+uK&VhfDt<4@0PT@V20K*zPnM6rVI4cJN$(2XOJbj* z0=!ePQYc;qr+D|@ybK|NNChhV7`$UMPWNA>WjsVj9|gWKz6#6HI~KAs!FMJ;J*n!y zs#AF0DL7w0eF55lh0fWm%5GBGkjtu0W!m&-jRKoNWg9SARo7r`=K2gerTYf!^2i4( z)B3mr*Y>ra*k-9)kQ7Vwg>DAx=UIa>>w1H4OVux{raR696JTFvgv!ST+{$z{MYclr z_6!s__Lg1qPmHrme#xY8!6LklF8L?Eh|$M$JyPhQoeZ`Z?D3_*$V4%uAUO8%2BHrM zUjCDh>`H_2iIh#(I4K8IKE@8(=9Q0hWi0pvU8~#185)Y;qqgL%H&Rz_ZX%4Cm=raW z2R^jW&TiZL%>7u(x~;60@-zEqSCQWe{1f5D z^bESQ0?`!u!p-~c_vwSeHV%&TW}3FpjV=(r1JhM)vFsJJwrFU`Q+;7l1U1HE$zXiK zV}6&XJdM@|yZbQRGLQ=-hx$tJ^IA~RjgU>c>-+yjwo7+DreSr}5~TDKDY4xZu9x(w zl&@D+dy^SS+_W0QNWE=)ht&JPIy2BQyoY1l45fy)#lhb~x<`-(T-%NERg2s(sZOeWo|LA{eBcEdT xIQ{9ciW_nXfDcbDPM-VZB^HylgMa9R@cZP^hMvb9Jxl+wB)D^sa>2vzKLC(3MdAPe diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/link.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/link.cpython-39.pyc deleted file mode 100644 index 59976f8b64f2aa64f4a1f7ad395ec0ba245e091f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10265 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 WpM~{DHN9u+CqDNYpqDu5_2S>kkP$Qh diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-39.pyc deleted file mode 100644 index 209212fb05679c0429852426b6f69c8e2d909c12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3486 zcmb7H&u<&Y72erjTv8M*+iIL2m#yNYX6uqE3Z#wUx(<@I2p|}a74$$L*sOL(QdC#{t5jv=Gs%wy%|N_@6B4KWV=AR#LUjlyq$gX&G)@G zj8|7%7Op@4y*vKvRm=JZJzTsTJlsc-C#X^@Ww|w|?`*)#vpulQ-5EIM?hZWM?cAR< z1`S5GP998}gQjV_d26yVSTSucZ%YupBY!F-;YnZVhZJxM;CU2yzQMfcL9Ece;A$p{gh+6HHPCQTK0%Sc zM>VvLoQi#FefhzWTe%BRC1+ z8FRt+W|`pO7n@uCt*y=5;ix>|`}iR3kCb^hDbrcb!>kA&K31c$pdBhoxV0Z=dAyzT z-V=L?e)o!QNfiqv>0`nN)Y>kkb`5uZehBhQ?Z?w8FH%7))y)j+Q)QV;?Ioi)E3}V2 z&9iOoO=BUs4)9pFe3^{+glj)9heIxO;~*9V5a~9wljL&ghF;sAWx0x$AZeFaql1DU z82)JAOqo8h#CPGvQ`H}p6W-s>HK3hYpg|_|7^?ciA`2A;o?E+1D^%M^-@twGDqZq!gp;58QiYzeJ ziVzC6tS9V&=%ByrXjk%lX9=Bwqpmh!po0jj$W#=4j3-GVvOJ&7*DtzoZqj991>*@L ztLGO{AV4v$`~?k2kDy4<(g1P*v8Kog=2OkH_rS6itx6wk&ZI zLjaw^+Y?*cy$`elPhZ}`=G`GL_~BIC8^Q2jDAxSLi~Bd^kP4+4r8vUtc~tJ*rDiVg z^V;%zc`hpOwQyZ)|r z$7NO+7IuB{9*uZ_hD&|D&Uf%@8Sh1x46eO8f;jV<_22j(>-!9|$lIta2+U>ctYrsI zyFt<;nYmuuc3J0{3mKa6XC%V;yWavi!H zn(Z)3(kJadSYKOcyQy~)fWXLB$3#qj{Db`OAdBa;fnUIP&Ytl2FRBHByagn~5Wd_Ep5%R!`IgqEZ+;o;e0(rj7 zF)v=}+GfvQ4G)9^(U-^|dj^LEVpW}imG@08PWy;Kygp@V`TdHe>;{5JMQGR$p0YmT ze{)*O?2xjI_z`Bgz(a3uRw4=$&^kcYF`4PPKiUB$A)ueoE0hPs2AOpxyR@|F<7r0B zR_K#$RK%0DXKp|NdVcq19xMTWorEq=`HI?!3kHLAG=`-2_7VHW=>1Rjo(ruT_e}LY zn84|u;da64*4-TYm6Vg|z2DKu4^Yj2`u{n(oB|AXq!LEz0E-m4L6ilX`if_6KK_GWSZe54UYX_=tA8AUQLl|*wT z$zv%e90!$D5Vge5sd|?x%CF)>s_s*@gwwQW6@u~<{!dtvf>dC;ZeZJv&wOV8yVI@j z?Vxkh*mb`nXsdLC&LRl(g3_$`h`QR~42}jpbHXr8)V>0jU_?IYcW^f7ML0pErGOC~ z7%SDzkgMb~lnB?I$nkM=%R^{ML3%QMsllT0S&OlD%WZer6m o%}GjpOwOCoOc=Zl939-PH{u?Hg-J>QWKjRwHhws%tl2H+zpGiJh5!Hn diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-39.pyc deleted file mode 100644 index f215b5ac6b26251e64d57438a0e824073d1c202e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1673 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 Do&A6$ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/wheel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/wheel.cpython-39.pyc deleted file mode 100644 index e5431eb9ea7c046de85718be30721af6e47f659d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4343 zcmc&%-H+T>75BA0pPAWg(rrFUDMmuDlV&}E2548yZc39@K`2B?6wr{=c*l2Uy!F`L zd%a(y*%vl~K7qs=B1qY{uEbx#pJDOFQ=fUO5aoBS$1|Q}7gY!euk5kUz4x4R&pE%} zJ?l1`bq&`a|JvI6OHiGe; z+|aXP5$*aO$4Ix!rL>aBN(S88b%h`8NGo;)Rz*D$)Q!v~IrFMs4U%(^ zG_GpA>D4jooY#PCVIn)v8@$=m)oAm%;VpRQF}lbvs1+C0ibd}NWUqM!f_O14DW^w` z_X`0W{r=j(;{EdDm8Uem zp``JFT9B`HH~pEaIB*m7HC6S*-WvqtC$@(eulQjvYJKZoOHZqmT5>5Z3!dzVu&X1E z`9)Pm0j6L186KZ%TiOdYX2BkJ=N63$L z$jVAqnv+$Otb9yss_MOh@tRjvlDd-A3X*e5QZGmvztwt7rK$?Q>bJEc($(~uNWsGB z7t^h;3fGsY+0*K2l@b)HBF-aW`O@;U(zAMz$U!hwH~I$62%`iesz3`lrbybUsRGKJ zFW5?IAW3OSWiTzNl%>p04P+}dDN9|3u;v%Vx{CWX-0}t<18uB5T|UIVwzS*Y(>D(h z%`Jwv#Y2N)Ki0>_k?{v}`^xshw)s#y(Fj*iE@2GXr6@s5%S?6qM#}b6c962s2}@1M zgPtHWUkuxWXvo`GGT3vsI8WLMmq|P1y~L4Rz(%5Z|_UdAQpS{LOZJkPM>m z9s9ku^b@`kyWLORK9}v-kK2wP0@a}#w1<($1KCzQV#fz*ZB6o|8x7<2W!fZFTbYf% zsqkVuSm!5>W3L5K*A3*lJ)M28wU9QI7Kak$2%eUP2;V@Ip+Zp9(o$bUJ8@bO9DDC_ zK@^%+umkBwVOmp3a1ytlmSi0GNm^I=pg}2?NXzTApr-U=nrs>3Ya~|6>zQ$ajtZQ3 zgNELu71iADOZbu`*USbp*#axGC1Z&-*hTs?>dgFdv@pNb785nhpDP0@34+`QxFtE3 zD0+W}VxZ(7u_J~OH%2!fD9EbnRo;CEj10dmm#AAtBH^AD0PsY~G7+F(Y0p`r@RKD; zH+he8TR3EiHinJI8q>CQPeWO;d&J97aiR;FmKv~=g@KAF3qx(K&qKZ+gT)~G2X1Y2 zBin7CCl2C;KU(teE6L z7W*RQ(fgG0uHYll6wTmxeO8^1zxy{Ns*r*p+5>XH9UkA$4!$VllhZKc2;?U(E(;jg z^g}nH>YH+l+a35g9f*KbR{K8SHcR179A`;Y!K+V~eF&Q3`|dCf_;t%y$FIPFjr(0o z&Mi`>c)=}lN7c+!7r3qG3$+jB0@crTdJC=Wgs^VdGs~+u^4+1*u&SotzjNQZ`MvLF zb%^$$JK)_<)QGB3%k8^JA2XPzjku(Bz07O8!i50O0`e+4R381GP#S$F^{R}R&gx2p;8@(Y0G zxBwc_!X&_^qzXd3jjt0XzKfp>I7A&{1&<%m3qfXdEi2lIKOjR?k~8$fQ*d&krv^q8 zNB~O3Q#0M z?r!9JQ~%r$kdJvNK@nhxkh{W?T}Z+8t`)eVPvVUGU!sfu7PK>D%rq2ZvGEX~S{0cidnyQgIwF>O!oeO|8(Tam=Qb$9Eq5_-7CA2&y1)jULnk z3!+a!tgM>#)F2msNT1|{SfvLQUutefQ6SdnTlGS-hdN3s7--;@)U{NZshdnU%zv7d z#Y-2>rNu?2|Eux3pjoYR;ue0y`*@_~ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/candidate.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/candidate.py deleted file mode 100644 index a4963ae..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/candidate.py +++ /dev/null @@ -1,34 +0,0 @@ -from pip._vendor.packaging.version import parse as parse_version - -from pip._internal.models.link import Link -from pip._internal.utils.models import KeyBasedCompareMixin - - -class InstallationCandidate(KeyBasedCompareMixin): - """Represents a potential "candidate" for installation.""" - - __slots__ = ["name", "version", "link"] - - def __init__(self, name: str, version: str, link: Link) -> None: - self.name = name - self.version = parse_version(version) - self.link = link - - super().__init__( - key=(self.name, self.version, self.link), - defining_class=InstallationCandidate, - ) - - def __repr__(self) -> str: - return "".format( - self.name, - self.version, - self.link, - ) - - def __str__(self) -> str: - return "{!r} candidate (version {} at {})".format( - self.name, - self.version, - self.link, - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/direct_url.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/direct_url.py deleted file mode 100644 index 92060d4..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/direct_url.py +++ /dev/null @@ -1,220 +0,0 @@ -""" PEP 610 """ -import json -import re -import urllib.parse -from typing import Any, Dict, Iterable, Optional, Type, TypeVar, Union - -__all__ = [ - "DirectUrl", - "DirectUrlValidationError", - "DirInfo", - "ArchiveInfo", - "VcsInfo", -] - -T = TypeVar("T") - -DIRECT_URL_METADATA_NAME = "direct_url.json" -ENV_VAR_RE = re.compile(r"^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$") - - -class DirectUrlValidationError(Exception): - pass - - -def _get( - d: Dict[str, Any], expected_type: Type[T], key: str, default: Optional[T] = None -) -> Optional[T]: - """Get value from dictionary and verify expected type.""" - if key not in d: - return default - value = d[key] - if not isinstance(value, expected_type): - raise DirectUrlValidationError( - "{!r} has unexpected type for {} (expected {})".format( - value, key, expected_type - ) - ) - return value - - -def _get_required( - d: Dict[str, Any], expected_type: Type[T], key: str, default: Optional[T] = None -) -> T: - value = _get(d, expected_type, key, default) - if value is None: - raise DirectUrlValidationError(f"{key} must have a value") - return value - - -def _exactly_one_of(infos: Iterable[Optional["InfoType"]]) -> "InfoType": - infos = [info for info in infos if info is not None] - if not infos: - raise DirectUrlValidationError( - "missing one of archive_info, dir_info, vcs_info" - ) - if len(infos) > 1: - raise DirectUrlValidationError( - "more than one of archive_info, dir_info, vcs_info" - ) - assert infos[0] is not None - return infos[0] - - -def _filter_none(**kwargs: Any) -> Dict[str, Any]: - """Make dict excluding None values.""" - return {k: v for k, v in kwargs.items() if v is not None} - - -class VcsInfo: - name = "vcs_info" - - def __init__( - self, - vcs: str, - commit_id: str, - requested_revision: Optional[str] = None, - resolved_revision: Optional[str] = None, - resolved_revision_type: Optional[str] = None, - ) -> None: - self.vcs = vcs - self.requested_revision = requested_revision - self.commit_id = commit_id - self.resolved_revision = resolved_revision - self.resolved_revision_type = resolved_revision_type - - @classmethod - def _from_dict(cls, d: Optional[Dict[str, Any]]) -> Optional["VcsInfo"]: - if d is None: - return None - return cls( - vcs=_get_required(d, str, "vcs"), - commit_id=_get_required(d, str, "commit_id"), - requested_revision=_get(d, str, "requested_revision"), - resolved_revision=_get(d, str, "resolved_revision"), - resolved_revision_type=_get(d, str, "resolved_revision_type"), - ) - - def _to_dict(self) -> Dict[str, Any]: - return _filter_none( - vcs=self.vcs, - requested_revision=self.requested_revision, - commit_id=self.commit_id, - resolved_revision=self.resolved_revision, - resolved_revision_type=self.resolved_revision_type, - ) - - -class ArchiveInfo: - name = "archive_info" - - def __init__( - self, - hash: Optional[str] = None, - ) -> None: - self.hash = hash - - @classmethod - def _from_dict(cls, d: Optional[Dict[str, Any]]) -> Optional["ArchiveInfo"]: - if d is None: - return None - return cls(hash=_get(d, str, "hash")) - - def _to_dict(self) -> Dict[str, Any]: - return _filter_none(hash=self.hash) - - -class DirInfo: - name = "dir_info" - - def __init__( - self, - editable: bool = False, - ) -> None: - self.editable = editable - - @classmethod - def _from_dict(cls, d: Optional[Dict[str, Any]]) -> Optional["DirInfo"]: - if d is None: - return None - return cls(editable=_get_required(d, bool, "editable", default=False)) - - def _to_dict(self) -> Dict[str, Any]: - return _filter_none(editable=self.editable or None) - - -InfoType = Union[ArchiveInfo, DirInfo, VcsInfo] - - -class DirectUrl: - def __init__( - self, - url: str, - info: InfoType, - subdirectory: Optional[str] = None, - ) -> None: - self.url = url - self.info = info - self.subdirectory = subdirectory - - def _remove_auth_from_netloc(self, netloc: str) -> str: - if "@" not in netloc: - return netloc - user_pass, netloc_no_user_pass = netloc.split("@", 1) - if ( - isinstance(self.info, VcsInfo) - and self.info.vcs == "git" - and user_pass == "git" - ): - return netloc - if ENV_VAR_RE.match(user_pass): - return netloc - return netloc_no_user_pass - - @property - def redacted_url(self) -> str: - """url with user:password part removed unless it is formed with - environment variables as specified in PEP 610, or it is ``git`` - in the case of a git URL. - """ - purl = urllib.parse.urlsplit(self.url) - netloc = self._remove_auth_from_netloc(purl.netloc) - surl = urllib.parse.urlunsplit( - (purl.scheme, netloc, purl.path, purl.query, purl.fragment) - ) - return surl - - def validate(self) -> None: - self.from_dict(self.to_dict()) - - @classmethod - def from_dict(cls, d: Dict[str, Any]) -> "DirectUrl": - return DirectUrl( - url=_get_required(d, str, "url"), - subdirectory=_get(d, str, "subdirectory"), - info=_exactly_one_of( - [ - ArchiveInfo._from_dict(_get(d, dict, "archive_info")), - DirInfo._from_dict(_get(d, dict, "dir_info")), - VcsInfo._from_dict(_get(d, dict, "vcs_info")), - ] - ), - ) - - def to_dict(self) -> Dict[str, Any]: - res = _filter_none( - url=self.redacted_url, - subdirectory=self.subdirectory, - ) - res[self.info.name] = self.info._to_dict() - return res - - @classmethod - def from_json(cls, s: str) -> "DirectUrl": - return cls.from_dict(json.loads(s)) - - def to_json(self) -> str: - return json.dumps(self.to_dict(), sort_keys=True) - - def is_local_editable(self) -> bool: - return isinstance(self.info, DirInfo) and self.info.editable diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py deleted file mode 100644 index db3995e..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py +++ /dev/null @@ -1,80 +0,0 @@ -from typing import FrozenSet, Optional, Set - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.exceptions import CommandError - - -class FormatControl: - """Helper for managing formats from which a package can be installed.""" - - __slots__ = ["no_binary", "only_binary"] - - def __init__( - self, - no_binary: Optional[Set[str]] = None, - only_binary: Optional[Set[str]] = None, - ) -> None: - if no_binary is None: - no_binary = set() - if only_binary is None: - only_binary = set() - - self.no_binary = no_binary - self.only_binary = only_binary - - def __eq__(self, other: object) -> bool: - if not isinstance(other, self.__class__): - return NotImplemented - - if self.__slots__ != other.__slots__: - return False - - return all(getattr(self, k) == getattr(other, k) for k in self.__slots__) - - def __repr__(self) -> str: - return "{}({}, {})".format( - self.__class__.__name__, self.no_binary, self.only_binary - ) - - @staticmethod - def handle_mutual_excludes(value: str, target: Set[str], other: Set[str]) -> None: - if value.startswith("-"): - raise CommandError( - "--no-binary / --only-binary option requires 1 argument." - ) - new = value.split(",") - while ":all:" in new: - other.clear() - target.clear() - target.add(":all:") - del new[: new.index(":all:") + 1] - # Without a none, we want to discard everything as :all: covers it - if ":none:" not in new: - return - for name in new: - if name == ":none:": - target.clear() - continue - name = canonicalize_name(name) - other.discard(name) - target.add(name) - - def get_allowed_formats(self, canonical_name: str) -> FrozenSet[str]: - result = {"binary", "source"} - if canonical_name in self.only_binary: - result.discard("source") - elif canonical_name in self.no_binary: - result.discard("binary") - elif ":all:" in self.only_binary: - result.discard("source") - elif ":all:" in self.no_binary: - result.discard("binary") - return frozenset(result) - - def disallow_binaries(self) -> None: - self.handle_mutual_excludes( - ":all:", - self.no_binary, - self.only_binary, - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/index.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/index.py deleted file mode 100644 index b94c325..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/index.py +++ /dev/null @@ -1,28 +0,0 @@ -import urllib.parse - - -class PackageIndex: - """Represents a Package Index and provides easier access to endpoints""" - - __slots__ = ["url", "netloc", "simple_url", "pypi_url", "file_storage_domain"] - - def __init__(self, url: str, file_storage_domain: str) -> None: - super().__init__() - self.url = url - self.netloc = urllib.parse.urlsplit(url).netloc - self.simple_url = self._url_for_path("simple") - self.pypi_url = self._url_for_path("pypi") - - # This is part of a temporary hack used to block installs of PyPI - # packages which depend on external urls only necessary until PyPI can - # block such packages themselves - self.file_storage_domain = file_storage_domain - - def _url_for_path(self, path: str) -> str: - return urllib.parse.urljoin(self.url, path) - - -PyPI = PackageIndex("https://pypi.org/", file_storage_domain="files.pythonhosted.org") -TestPyPI = PackageIndex( - "https://test.pypi.org/", file_storage_domain="test-files.pythonhosted.org" -) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/link.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/link.py deleted file mode 100644 index 6069b27..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/link.py +++ /dev/null @@ -1,288 +0,0 @@ -import functools -import logging -import os -import posixpath -import re -import urllib.parse -from typing import TYPE_CHECKING, Dict, List, NamedTuple, Optional, Tuple, Union - -from pip._internal.utils.filetypes import WHEEL_EXTENSION -from pip._internal.utils.hashes import Hashes -from pip._internal.utils.misc import ( - redact_auth_from_url, - split_auth_from_netloc, - splitext, -) -from pip._internal.utils.models import KeyBasedCompareMixin -from pip._internal.utils.urls import path_to_url, url_to_path - -if TYPE_CHECKING: - from pip._internal.index.collector import HTMLPage - -logger = logging.getLogger(__name__) - - -_SUPPORTED_HASHES = ("sha1", "sha224", "sha384", "sha256", "sha512", "md5") - - -class Link(KeyBasedCompareMixin): - """Represents a parsed link from a Package Index's simple URL""" - - __slots__ = [ - "_parsed_url", - "_url", - "comes_from", - "requires_python", - "yanked_reason", - "cache_link_parsing", - ] - - def __init__( - self, - url: str, - comes_from: Optional[Union[str, "HTMLPage"]] = None, - requires_python: Optional[str] = None, - yanked_reason: Optional[str] = None, - cache_link_parsing: bool = True, - ) -> None: - """ - :param url: url of the resource pointed to (href of the link) - :param comes_from: instance of HTMLPage where the link was found, - or string. - :param requires_python: String containing the `Requires-Python` - metadata field, specified in PEP 345. This may be specified by - a data-requires-python attribute in the HTML link tag, as - described in PEP 503. - :param yanked_reason: the reason the file has been yanked, if the - file has been yanked, or None if the file hasn't been yanked. - This is the value of the "data-yanked" attribute, if present, in - a simple repository HTML link. If the file has been yanked but - no reason was provided, this should be the empty string. See - PEP 592 for more information and the specification. - :param cache_link_parsing: A flag that is used elsewhere to determine - whether resources retrieved from this link - should be cached. PyPI index urls should - generally have this set to False, for - example. - """ - - # url can be a UNC windows share - if url.startswith("\\\\"): - url = path_to_url(url) - - self._parsed_url = urllib.parse.urlsplit(url) - # Store the url as a private attribute to prevent accidentally - # trying to set a new value. - self._url = url - - self.comes_from = comes_from - self.requires_python = requires_python if requires_python else None - self.yanked_reason = yanked_reason - - super().__init__(key=url, defining_class=Link) - - self.cache_link_parsing = cache_link_parsing - - def __str__(self) -> str: - if self.requires_python: - rp = f" (requires-python:{self.requires_python})" - else: - rp = "" - if self.comes_from: - return "{} (from {}){}".format( - redact_auth_from_url(self._url), self.comes_from, rp - ) - else: - return redact_auth_from_url(str(self._url)) - - def __repr__(self) -> str: - return f"" - - @property - def url(self) -> str: - return self._url - - @property - def filename(self) -> str: - path = self.path.rstrip("/") - name = posixpath.basename(path) - if not name: - # Make sure we don't leak auth information if the netloc - # includes a username and password. - netloc, user_pass = split_auth_from_netloc(self.netloc) - return netloc - - name = urllib.parse.unquote(name) - assert name, f"URL {self._url!r} produced no filename" - return name - - @property - def file_path(self) -> str: - return url_to_path(self.url) - - @property - def scheme(self) -> str: - return self._parsed_url.scheme - - @property - def netloc(self) -> str: - """ - This can contain auth information. - """ - return self._parsed_url.netloc - - @property - def path(self) -> str: - return urllib.parse.unquote(self._parsed_url.path) - - def splitext(self) -> Tuple[str, str]: - return splitext(posixpath.basename(self.path.rstrip("/"))) - - @property - def ext(self) -> str: - return self.splitext()[1] - - @property - def url_without_fragment(self) -> str: - scheme, netloc, path, query, fragment = self._parsed_url - return urllib.parse.urlunsplit((scheme, netloc, path, query, "")) - - _egg_fragment_re = re.compile(r"[#&]egg=([^&]*)") - - @property - def egg_fragment(self) -> Optional[str]: - match = self._egg_fragment_re.search(self._url) - if not match: - return None - return match.group(1) - - _subdirectory_fragment_re = re.compile(r"[#&]subdirectory=([^&]*)") - - @property - def subdirectory_fragment(self) -> Optional[str]: - match = self._subdirectory_fragment_re.search(self._url) - if not match: - return None - return match.group(1) - - _hash_re = re.compile( - r"({choices})=([a-f0-9]+)".format(choices="|".join(_SUPPORTED_HASHES)) - ) - - @property - def hash(self) -> Optional[str]: - match = self._hash_re.search(self._url) - if match: - return match.group(2) - return None - - @property - def hash_name(self) -> Optional[str]: - match = self._hash_re.search(self._url) - if match: - return match.group(1) - return None - - @property - def show_url(self) -> str: - return posixpath.basename(self._url.split("#", 1)[0].split("?", 1)[0]) - - @property - def is_file(self) -> bool: - return self.scheme == "file" - - def is_existing_dir(self) -> bool: - return self.is_file and os.path.isdir(self.file_path) - - @property - def is_wheel(self) -> bool: - return self.ext == WHEEL_EXTENSION - - @property - def is_vcs(self) -> bool: - from pip._internal.vcs import vcs - - return self.scheme in vcs.all_schemes - - @property - def is_yanked(self) -> bool: - return self.yanked_reason is not None - - @property - def has_hash(self) -> bool: - return self.hash_name is not None - - def is_hash_allowed(self, hashes: Optional[Hashes]) -> bool: - """ - Return True if the link has a hash and it is allowed. - """ - if hashes is None or not self.has_hash: - return False - # Assert non-None so mypy knows self.hash_name and self.hash are str. - assert self.hash_name is not None - assert self.hash is not None - - return hashes.is_hash_allowed(self.hash_name, hex_digest=self.hash) - - -class _CleanResult(NamedTuple): - """Convert link for equivalency check. - - This is used in the resolver to check whether two URL-specified requirements - likely point to the same distribution and can be considered equivalent. This - equivalency logic avoids comparing URLs literally, which can be too strict - (e.g. "a=1&b=2" vs "b=2&a=1") and produce conflicts unexpecting to users. - - Currently this does three things: - - 1. Drop the basic auth part. This is technically wrong since a server can - serve different content based on auth, but if it does that, it is even - impossible to guarantee two URLs without auth are equivalent, since - the user can input different auth information when prompted. So the - practical solution is to assume the auth doesn't affect the response. - 2. Parse the query to avoid the ordering issue. Note that ordering under the - same key in the query are NOT cleaned; i.e. "a=1&a=2" and "a=2&a=1" are - still considered different. - 3. Explicitly drop most of the fragment part, except ``subdirectory=`` and - hash values, since it should have no impact the downloaded content. Note - that this drops the "egg=" part historically used to denote the requested - project (and extras), which is wrong in the strictest sense, but too many - people are supplying it inconsistently to cause superfluous resolution - conflicts, so we choose to also ignore them. - """ - - parsed: urllib.parse.SplitResult - query: Dict[str, List[str]] - subdirectory: str - hashes: Dict[str, str] - - -def _clean_link(link: Link) -> _CleanResult: - parsed = link._parsed_url - netloc = parsed.netloc.rsplit("@", 1)[-1] - # According to RFC 8089, an empty host in file: means localhost. - if parsed.scheme == "file" and not netloc: - netloc = "localhost" - fragment = urllib.parse.parse_qs(parsed.fragment) - if "egg" in fragment: - logger.debug("Ignoring egg= fragment in %s", link) - try: - # If there are multiple subdirectory values, use the first one. - # This matches the behavior of Link.subdirectory_fragment. - subdirectory = fragment["subdirectory"][0] - except (IndexError, KeyError): - subdirectory = "" - # If there are multiple hash values under the same algorithm, use the - # first one. This matches the behavior of Link.hash_value. - hashes = {k: fragment[k][0] for k in _SUPPORTED_HASHES if k in fragment} - return _CleanResult( - parsed=parsed._replace(netloc=netloc, query="", fragment=""), - query=urllib.parse.parse_qs(parsed.query), - subdirectory=subdirectory, - hashes=hashes, - ) - - -@functools.lru_cache(maxsize=None) -def links_equivalent(link1: Link, link2: Link) -> bool: - return _clean_link(link1) == _clean_link(link2) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/scheme.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/scheme.py deleted file mode 100644 index f51190a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/scheme.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -For types associated with installation schemes. - -For a general overview of available schemes and their context, see -https://docs.python.org/3/install/index.html#alternate-installation. -""" - - -SCHEME_KEYS = ["platlib", "purelib", "headers", "scripts", "data"] - - -class Scheme: - """A Scheme holds paths which are used as the base directories for - artifacts associated with a Python package. - """ - - __slots__ = SCHEME_KEYS - - def __init__( - self, - platlib: str, - purelib: str, - headers: str, - scripts: str, - data: str, - ) -> None: - self.platlib = platlib - self.purelib = purelib - self.headers = headers - self.scripts = scripts - self.data = data diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/search_scope.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/search_scope.py deleted file mode 100644 index e4e54c2..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/search_scope.py +++ /dev/null @@ -1,129 +0,0 @@ -import itertools -import logging -import os -import posixpath -import urllib.parse -from typing import List - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.models.index import PyPI -from pip._internal.utils.compat import has_tls -from pip._internal.utils.misc import normalize_path, redact_auth_from_url - -logger = logging.getLogger(__name__) - - -class SearchScope: - - """ - Encapsulates the locations that pip is configured to search. - """ - - __slots__ = ["find_links", "index_urls"] - - @classmethod - def create( - cls, - find_links: List[str], - index_urls: List[str], - ) -> "SearchScope": - """ - Create a SearchScope object after normalizing the `find_links`. - """ - # Build find_links. If an argument starts with ~, it may be - # a local file relative to a home directory. So try normalizing - # it and if it exists, use the normalized version. - # This is deliberately conservative - it might be fine just to - # blindly normalize anything starting with a ~... - built_find_links: List[str] = [] - for link in find_links: - if link.startswith("~"): - new_link = normalize_path(link) - if os.path.exists(new_link): - link = new_link - built_find_links.append(link) - - # If we don't have TLS enabled, then WARN if anyplace we're looking - # relies on TLS. - if not has_tls(): - for link in itertools.chain(index_urls, built_find_links): - parsed = urllib.parse.urlparse(link) - if parsed.scheme == "https": - logger.warning( - "pip is configured with locations that require " - "TLS/SSL, however the ssl module in Python is not " - "available." - ) - break - - return cls( - find_links=built_find_links, - index_urls=index_urls, - ) - - def __init__( - self, - find_links: List[str], - index_urls: List[str], - ) -> None: - self.find_links = find_links - self.index_urls = index_urls - - def get_formatted_locations(self) -> str: - lines = [] - redacted_index_urls = [] - if self.index_urls and self.index_urls != [PyPI.simple_url]: - for url in self.index_urls: - - redacted_index_url = redact_auth_from_url(url) - - # Parse the URL - purl = urllib.parse.urlsplit(redacted_index_url) - - # URL is generally invalid if scheme and netloc is missing - # there are issues with Python and URL parsing, so this test - # is a bit crude. See bpo-20271, bpo-23505. Python doesn't - # always parse invalid URLs correctly - it should raise - # exceptions for malformed URLs - if not purl.scheme and not purl.netloc: - logger.warning( - 'The index url "%s" seems invalid, please provide a scheme.', - redacted_index_url, - ) - - redacted_index_urls.append(redacted_index_url) - - lines.append( - "Looking in indexes: {}".format(", ".join(redacted_index_urls)) - ) - - if self.find_links: - lines.append( - "Looking in links: {}".format( - ", ".join(redact_auth_from_url(url) for url in self.find_links) - ) - ) - return "\n".join(lines) - - def get_index_urls_locations(self, project_name: str) -> List[str]: - """Returns the locations found via self.index_urls - - Checks the url_name on the main (first in the list) index and - use this url_name to produce all locations - """ - - def mkurl_pypi_url(url: str) -> str: - loc = posixpath.join( - url, urllib.parse.quote(canonicalize_name(project_name)) - ) - # For maximum compatibility with easy_install, ensure the path - # ends in a trailing slash. Although this isn't in the spec - # (and PyPI can handle it without the slash) some other index - # implementations might break if they relied on easy_install's - # behavior. - if not loc.endswith("/"): - loc = loc + "/" - return loc - - return [mkurl_pypi_url(url) for url in self.index_urls] diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/selection_prefs.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/selection_prefs.py deleted file mode 100644 index 977bc4c..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/selection_prefs.py +++ /dev/null @@ -1,51 +0,0 @@ -from typing import Optional - -from pip._internal.models.format_control import FormatControl - - -class SelectionPreferences: - """ - Encapsulates the candidate selection preferences for downloading - and installing files. - """ - - __slots__ = [ - "allow_yanked", - "allow_all_prereleases", - "format_control", - "prefer_binary", - "ignore_requires_python", - ] - - # Don't include an allow_yanked default value to make sure each call - # site considers whether yanked releases are allowed. This also causes - # that decision to be made explicit in the calling code, which helps - # people when reading the code. - def __init__( - self, - allow_yanked: bool, - allow_all_prereleases: bool = False, - format_control: Optional[FormatControl] = None, - prefer_binary: bool = False, - ignore_requires_python: Optional[bool] = None, - ) -> None: - """Create a SelectionPreferences object. - - :param allow_yanked: Whether files marked as yanked (in the sense - of PEP 592) are permitted to be candidates for install. - :param format_control: A FormatControl object or None. Used to control - the selection of source packages / binary packages when consulting - the index and links. - :param prefer_binary: Whether to prefer an old, but valid, binary - dist over a new source dist. - :param ignore_requires_python: Whether to ignore incompatible - "Requires-Python" values in links. Defaults to False. - """ - if ignore_requires_python is None: - ignore_requires_python = False - - self.allow_yanked = allow_yanked - self.allow_all_prereleases = allow_all_prereleases - self.format_control = format_control - self.prefer_binary = prefer_binary - self.ignore_requires_python = ignore_requires_python diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/target_python.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/target_python.py deleted file mode 100644 index 744bd7e..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/target_python.py +++ /dev/null @@ -1,110 +0,0 @@ -import sys -from typing import List, Optional, Tuple - -from pip._vendor.packaging.tags import Tag - -from pip._internal.utils.compatibility_tags import get_supported, version_info_to_nodot -from pip._internal.utils.misc import normalize_version_info - - -class TargetPython: - - """ - Encapsulates the properties of a Python interpreter one is targeting - for a package install, download, etc. - """ - - __slots__ = [ - "_given_py_version_info", - "abis", - "implementation", - "platforms", - "py_version", - "py_version_info", - "_valid_tags", - ] - - def __init__( - self, - platforms: Optional[List[str]] = None, - py_version_info: Optional[Tuple[int, ...]] = None, - abis: Optional[List[str]] = None, - implementation: Optional[str] = None, - ) -> None: - """ - :param platforms: A list of strings or None. If None, searches for - packages that are supported by the current system. Otherwise, will - find packages that can be built on the platforms passed in. These - packages will only be downloaded for distribution: they will - not be built locally. - :param py_version_info: An optional tuple of ints representing the - Python version information to use (e.g. `sys.version_info[:3]`). - This can have length 1, 2, or 3 when provided. - :param abis: A list of strings or None. This is passed to - compatibility_tags.py's get_supported() function as is. - :param implementation: A string or None. This is passed to - compatibility_tags.py's get_supported() function as is. - """ - # Store the given py_version_info for when we call get_supported(). - self._given_py_version_info = py_version_info - - if py_version_info is None: - py_version_info = sys.version_info[:3] - else: - py_version_info = normalize_version_info(py_version_info) - - py_version = ".".join(map(str, py_version_info[:2])) - - self.abis = abis - self.implementation = implementation - self.platforms = platforms - self.py_version = py_version - self.py_version_info = py_version_info - - # This is used to cache the return value of get_tags(). - self._valid_tags: Optional[List[Tag]] = None - - def format_given(self) -> str: - """ - Format the given, non-None attributes for display. - """ - display_version = None - if self._given_py_version_info is not None: - display_version = ".".join( - str(part) for part in self._given_py_version_info - ) - - key_values = [ - ("platforms", self.platforms), - ("version_info", display_version), - ("abis", self.abis), - ("implementation", self.implementation), - ] - return " ".join( - f"{key}={value!r}" for key, value in key_values if value is not None - ) - - def get_tags(self) -> List[Tag]: - """ - Return the supported PEP 425 tags to check wheel candidates against. - - The tags are returned in order of preference (most preferred first). - """ - if self._valid_tags is None: - # Pass versions=None if no py_version_info was given since - # versions=None uses special default logic. - py_version_info = self._given_py_version_info - if py_version_info is None: - version = None - else: - version = version_info_to_nodot(py_version_info) - - tags = get_supported( - version=version, - platforms=self.platforms, - abis=self.abis, - impl=self.implementation, - ) - self._valid_tags = tags - - return self._valid_tags diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/models/wheel.py b/.venv/lib/python3.9/site-packages/pip/_internal/models/wheel.py deleted file mode 100644 index e091612..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/models/wheel.py +++ /dev/null @@ -1,89 +0,0 @@ -"""Represents a wheel file and provides access to the various parts of the -name that have meaning. -""" -import re -from typing import Dict, Iterable, List - -from pip._vendor.packaging.tags import Tag - -from pip._internal.exceptions import InvalidWheelFilename - - -class Wheel: - """A wheel file""" - - wheel_file_re = re.compile( - r"""^(?P(?P.+?)-(?P.*?)) - ((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?) - \.whl|\.dist-info)$""", - re.VERBOSE, - ) - - def __init__(self, filename: str) -> None: - """ - :raises InvalidWheelFilename: when the filename is invalid for a wheel - """ - wheel_info = self.wheel_file_re.match(filename) - if not wheel_info: - raise InvalidWheelFilename(f"{filename} is not a valid wheel filename.") - self.filename = filename - self.name = wheel_info.group("name").replace("_", "-") - # we'll assume "_" means "-" due to wheel naming scheme - # (https://github.com/pypa/pip/issues/1150) - self.version = wheel_info.group("ver").replace("_", "-") - self.build_tag = wheel_info.group("build") - self.pyversions = wheel_info.group("pyver").split(".") - self.abis = wheel_info.group("abi").split(".") - self.plats = wheel_info.group("plat").split(".") - - # All the tag combinations from this file - self.file_tags = { - Tag(x, y, z) for x in self.pyversions for y in self.abis for z in self.plats - } - - def get_formatted_file_tags(self) -> List[str]: - """Return the wheel's tags as a sorted list of strings.""" - return sorted(str(tag) for tag in self.file_tags) - - def support_index_min(self, tags: List[Tag]) -> int: - """Return the lowest index that one of the wheel's file_tag combinations - achieves in the given list of supported tags. - - For example, if there are 8 supported tags and one of the file tags - is first in the list, then return 0. - - :param tags: the PEP 425 tags to check the wheel against, in order - with most preferred first. - - :raises ValueError: If none of the wheel's file tags match one of - the supported tags. - """ - return min(tags.index(tag) for tag in self.file_tags if tag in tags) - - def find_most_preferred_tag( - self, tags: List[Tag], tag_to_priority: Dict[Tag, int] - ) -> int: - """Return the priority of the most preferred tag that one of the wheel's file - tag combinations achieves in the given list of supported tags using the given - tag_to_priority mapping, where lower priorities are more-preferred. - - This is used in place of support_index_min in some cases in order to avoid - an expensive linear scan of a large list of tags. - - :param tags: the PEP 425 tags to check the wheel against. - :param tag_to_priority: a mapping from tag to priority of that tag, where - lower is more preferred. - - :raises ValueError: If none of the wheel's file tags match one of - the supported tags. - """ - return min( - tag_to_priority[tag] for tag in self.file_tags if tag in tag_to_priority - ) - - def supported(self, tags: Iterable[Tag]) -> bool: - """Return whether the wheel is compatible with one of the given tags. - - :param tags: the PEP 425 tags to check the wheel against. - """ - return not self.file_tags.isdisjoint(tags) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/network/__init__.py deleted file mode 100644 index b51bde9..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/network/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -"""Contains purely network-related utilities. -""" diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index d22207a5a8d67fcebfa311739f594551046b0c64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/cache.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/cache.cpython-39.pyc deleted file mode 100644 index db7a64214de1ceccf0d09b45ff0685f73d8725de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2901 zcmaJ@$!;4*5bd6Y%ZQXHS>BU)5@cf*($0ni2#mx=9NP!ku#5zmLk7d?ra07W?rusZ zL0wD*zQyMNK1ja#H}V;C&B?!zQ>vO2MafBqm|`#0HC?Y>Rd-OYI|QCT{%rQYs1WiO zb`~ECI^V%7Uw~l5BaAX5rXGcVGd2>_GbxT)v6a}Kos_(i?%Q!WsdyFLF2&Wv@f_VQ z$4g1gtLb(nt|!ahaMev<_S+#prR~oIj_J8veBf) za+sxxKUPVQ23uS-jiPc#aS^CY6qS29Y6mgsRc{26-$Yy3xfR9pPUQiYd6r5JYgYr- z4?_5iuaeyFf>u!$Jda@vmN`6?1HpY3>FZN;T(r@X6t z$;A#AzIvScxyV8;WxKV*)17u4b=vt*^|JKy);Db#DgJ35gxi3RZ0Awl_9K8y04`uh z?Pg-Tt+&z2hebV-{_(~dxOoEvp<)#zYz|!sab)oUzUe{v4m3s%qdyT!ekSRf1#S=D zpwOe_7m^xR0RnK}813BYy1N{Ln|`3&AjHkP3gWCcf~|Bm?e+&!xpF(o^<0#0xk1X@ znZu3?kKm660E%=2=|KHnNnrnr2}`1Ucls4=j(A?~AkW z1xRg6^0=!zFQEYVei#Q*!ZfCtz}SoPAl`#lmOv2NfH;rNoq)7;WEAbCLBd~m4jC}d z`>&v*z?CsQq@&ghL+ zK7u7vr!9w`qoX%ZIek(ad^flG@ZVjpf+=0{6g0-<03xVerxWt*J|!9gIx(KTzh{ok z1M?87gaN0K1-}WLKPP*e7A}Z_c2C1&g1?`^)HL6L1r^Bm(dtQ1K&NR6G*j3+K|GjI0Xcp2VEpEI zJb}&}4^tr?zakzO{sVh#9s={BUmBYe`s~u4HMS1QW8)CUUi10xqR*-_w)$0AW&De# zTGT{zUeb-GbBv6@D}%U#!Ua*3A+$XFj_xJg{e}rjx`6-^Zml{{Ul?97~3`9e>4c< z*-Y8@Sr)>uDV5MAXBrNy8HL>$!tpLJA4MC*H5{$aidD$t_^4oMs4t?5E?sy$VHh>u z6>8b*cB8UhT5|->G|!1IQ57``XLezNOM*b;i;^1VaI6Z1Uf?#ox8Rb{^5HySnP}+~ z8P|v`o^}KhySVcIN>bM?@A9J7(Lvn;Y2ixvO#mO zxS(yF(o7;5Y8n?-C(B}eP0?AeJzoguF*z&WPGfT&?`RSkV40ZW4WkCKW;AHcY*+?e Gcm4rm2c%E{ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/download.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/download.cpython-39.pyc deleted file mode 100644 index 8e8ac9cd43f785d8a2c52fea6cb4e3cb8b848121..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5490 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/session.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/session.cpython-39.pyc deleted file mode 100644 index 6cbc7b87d04158f0d4c32d7a71ff6c5dcd0e564d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10761 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 V9ahd98L_gtbdKkb<}>-se*=>7I#~b! diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/utils.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/utils.cpython-39.pyc deleted file mode 100644 index 0cfc65ef41368bb78f568ba52dc4b063a799ac8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1437 zcmZ8hO>Y}T7@nE^@JAfmvS^wH74~YW@fIqiq^eMZV@L%uQqr{4609~m<9K3w)|nY6 zwPjzR*Gh;RYLUv33qOHFf5vd+0(VXvDDSN8Dq>dq&e!|S%=pKH~nCs-A?NX29PM%>_ zV1+KZfmo6H_Ym`Fj^VKy>Y;LrZl1nb#@P+!3mm|AL)S zofvnYC)(s6XeMKwN*Jj%zidBjwI4>!gX8w+(b0oW%j6H48l^(9IyM_^rY}?3Z>B=9 zMDtX%q)g?svX>-mq_S3LuXi%?}+?lTD9$04kbV1IeCoE4_u_($;TMkZ#n1KxhF7p8wuZz z%?Wj(_FUwkK9=85uaD$RxEP5oJN^Pue@4LOpy$6pKY4R3KBV52m>*~!Vt&nHHkUDl z|HsU*{7vU(c!p^4Ir$b-1URp?4Vrpm-QC`q7P(5dcXmG7-Tr`o4~g@?!AvVbbHD+o zAVcwPFf9h%R0d-?xEt`VNak_G@k{j8g9WY!==k5!a8IIx}c0rI*d3s9MIPwP>{EV0p0oysx{{(|H+sQwXQ zFCDV*gsa|Ve8!j#VJ{sD*42^9P8#W_A{xmwVM>LK3nnhY0Y3>x6WvS2oyKmcxMtg< zIO)fyOobyp3L`E+f+8NkI+?t}vE~ES7)?x7#$2%oP>B|2z6qyL?}0(s#U+p6DlXx7 zh)=f2#v9kQmbfmK*TDl4DnVt6NpCFrk>XP(?d41W*|%k-yaYznA(&|ZEQ5Atm|{wv zlYR7caZYCB5$No^_85s_#WMjN+wT!)m*|4LPm58FnX1g|fJA+(8d`zyBKZ{!>TyjbP zGr{tGn5kEcuO}n8-qHdnEpnZAfxt!txzSWMR>?JnAh>~&u645yp4rUYRy;S@Q~O-N z^Pw{3NqhB;138&W6vaZMpies+MH!LCfk+9jDasCVB^fJ9nPrr}2b+!u3|<6Cr3R)( Ss-$#n)2ZGhZwRE}|N9?pL4892 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-39.pyc deleted file mode 100644 index d6347edebe0cb5fdfdea78f44d94de106679b679..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2058 zcmZuyOOM+&5GM7O{8;DxY6=5EfhuV10J*e4Q50C@(X?GG8Utx`VPuiJmZMildUtJT zbI1nGsXw4V4!f5E0s1TYGkEQ(e<6LOL)qD+ZD@1EA&1n=H{VckrxPG(Km8g`Upol> zrj>V_1%4>oU-^*cA$zy50Dwz5Yv zunVy|yTRmc$setkMZpri=O*VRhm~M6t?n@)U<$Mzk5j?OR>_Hgvu6U%^vRu4$kDuF zszbhwxtPRR7LPNQ=(oPx+?68k!hj(F4n+pV09>0{%w`TXsrABoj3idq0dSDgeezi)6j#$fT?CNFnV%KCBt;d?N8_#cq^ zJ87&<-^Tke=tC>VQ$S?UjBjm(mh#hrvOO~6nR3Mv8P%QvDm0c%ra4m%XL81iL=)ys zvteMay0{7hi4M>quFWHiku;{}p;hA}yl>Uk)UFY6Y6GN85yXc#LQmOZRxz$TLee6Y zgeV6*fUGOK0?e86KwXX;kxU@@$|b9TM^=7@wz34vwzwubZ)wp65w(^f!FDNLV#p{- zvRDX0UZPj!a8l-MI8Mc6H=Z&khmr|7EZCNWWBCr_MD7)&;$;G03uu7{T#2^_j;tbAdh&NnjXi&}h8hCUby6`|CvyI!>!;4G* z&+y<46kHQ4G`QX{&@oPckjkCJ1MQbgo?RcwB<#9k5PxTHZ7bitg*s z#V;Tvs$@ctbjP`wu7FTP3+7VCm`(*cUjoMnD z_G;(I#ONuyj~>9g_x&e+5iFnA(RG*sk~kZSHk7Y~qQ9n#ap6g}CpE64&{P(XGX_Xl zOc@u-5t6ewUwn9HG}`PlUF-diM1OaZW~{%>q)dx#m6r0U>!w zXPF+i33)t=v(<`A2rUyr_!V$~YxXH?T$WkGdS#F2P+VN!6MU%GI;%=dSeC)2w;`R= zCOR(egE$3UXk~H^5H08gWQ6++58qGFWC%=T&u9 zwFuu7AXDTlRprQe1v|I_HjRtwJe2a_xReI~I;-@zLoD-q`QOW{N*}E5qGj-x-fuIL zX(pB=(zV@Gw(^0P-!w$w*Y#wmopqL8D*yQ6Z{mChs<#yIK3`_#3k*Aj=9Fc6kbMvL N41LYC4GTtr`45UvHqZb7 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/auth.py b/.venv/lib/python3.9/site-packages/pip/_internal/network/auth.py deleted file mode 100644 index ca42798..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/network/auth.py +++ /dev/null @@ -1,323 +0,0 @@ -"""Network Authentication Helpers - -Contains interface (MultiDomainBasicAuth) and associated glue code for -providing credentials in the context of network requests. -""" - -import urllib.parse -from typing import Any, Dict, List, Optional, Tuple - -from pip._vendor.requests.auth import AuthBase, HTTPBasicAuth -from pip._vendor.requests.models import Request, Response -from pip._vendor.requests.utils import get_netrc_auth - -from pip._internal.utils.logging import getLogger -from pip._internal.utils.misc import ( - ask, - ask_input, - ask_password, - remove_auth_from_url, - split_auth_netloc_from_url, -) -from pip._internal.vcs.versioncontrol import AuthInfo - -logger = getLogger(__name__) - -Credentials = Tuple[str, str, str] - -try: - import keyring -except ImportError: - keyring = None # type: ignore[assignment] -except Exception as exc: - logger.warning( - "Keyring is skipped due to an exception: %s", - str(exc), - ) - keyring = None # type: ignore[assignment] - - -def get_keyring_auth(url: Optional[str], username: Optional[str]) -> Optional[AuthInfo]: - """Return the tuple auth for a given url from keyring.""" - global keyring - if not url or not keyring: - return None - - try: - try: - get_credential = keyring.get_credential - except AttributeError: - pass - else: - logger.debug("Getting credentials from keyring for %s", url) - cred = get_credential(url, username) - if cred is not None: - return cred.username, cred.password - return None - - if username: - logger.debug("Getting password from keyring for %s", url) - password = keyring.get_password(url, username) - if password: - return username, password - - except Exception as exc: - logger.warning( - "Keyring is skipped due to an exception: %s", - str(exc), - ) - keyring = None # type: ignore[assignment] - return None - - -class MultiDomainBasicAuth(AuthBase): - def __init__( - self, prompting: bool = True, index_urls: Optional[List[str]] = None - ) -> None: - self.prompting = prompting - self.index_urls = index_urls - self.passwords: Dict[str, AuthInfo] = {} - # When the user is prompted to enter credentials and keyring is - # available, we will offer to save them. If the user accepts, - # this value is set to the credentials they entered. After the - # request authenticates, the caller should call - # ``save_credentials`` to save these. - self._credentials_to_save: Optional[Credentials] = None - - def _get_index_url(self, url: str) -> Optional[str]: - """Return the original index URL matching the requested URL. - - Cached or dynamically generated credentials may work against - the original index URL rather than just the netloc. - - The provided url should have had its username and password - removed already. If the original index url had credentials then - they will be included in the return value. - - Returns None if no matching index was found, or if --no-index - was specified by the user. - """ - if not url or not self.index_urls: - return None - - for u in self.index_urls: - prefix = remove_auth_from_url(u).rstrip("/") + "/" - if url.startswith(prefix): - return u - return None - - def _get_new_credentials( - self, - original_url: str, - allow_netrc: bool = True, - allow_keyring: bool = False, - ) -> AuthInfo: - """Find and return credentials for the specified URL.""" - # Split the credentials and netloc from the url. - url, netloc, url_user_password = split_auth_netloc_from_url( - original_url, - ) - - # Start with the credentials embedded in the url - username, password = url_user_password - if username is not None and password is not None: - logger.debug("Found credentials in url for %s", netloc) - return url_user_password - - # Find a matching index url for this request - index_url = self._get_index_url(url) - if index_url: - # Split the credentials from the url. - index_info = split_auth_netloc_from_url(index_url) - if index_info: - index_url, _, index_url_user_password = index_info - logger.debug("Found index url %s", index_url) - - # If an index URL was found, try its embedded credentials - if index_url and index_url_user_password[0] is not None: - username, password = index_url_user_password - if username is not None and password is not None: - logger.debug("Found credentials in index url for %s", netloc) - return index_url_user_password - - # Get creds from netrc if we still don't have them - if allow_netrc: - netrc_auth = get_netrc_auth(original_url) - if netrc_auth: - logger.debug("Found credentials in netrc for %s", netloc) - return netrc_auth - - # If we don't have a password and keyring is available, use it. - if allow_keyring: - # The index url is more specific than the netloc, so try it first - # fmt: off - kr_auth = ( - get_keyring_auth(index_url, username) or - get_keyring_auth(netloc, username) - ) - # fmt: on - if kr_auth: - logger.debug("Found credentials in keyring for %s", netloc) - return kr_auth - - return username, password - - def _get_url_and_credentials( - self, original_url: str - ) -> Tuple[str, Optional[str], Optional[str]]: - """Return the credentials to use for the provided URL. - - If allowed, netrc and keyring may be used to obtain the - correct credentials. - - Returns (url_without_credentials, username, password). Note - that even if the original URL contains credentials, this - function may return a different username and password. - """ - url, netloc, _ = split_auth_netloc_from_url(original_url) - - # Try to get credentials from original url - username, password = self._get_new_credentials(original_url) - - # If credentials not found, use any stored credentials for this netloc. - # Do this if either the username or the password is missing. - # This accounts for the situation in which the user has specified - # the username in the index url, but the password comes from keyring. - if (username is None or password is None) and netloc in self.passwords: - un, pw = self.passwords[netloc] - # It is possible that the cached credentials are for a different username, - # in which case the cache should be ignored. - if username is None or username == un: - username, password = un, pw - - if username is not None or password is not None: - # Convert the username and password if they're None, so that - # this netloc will show up as "cached" in the conditional above. - # Further, HTTPBasicAuth doesn't accept None, so it makes sense to - # cache the value that is going to be used. - username = username or "" - password = password or "" - - # Store any acquired credentials. - self.passwords[netloc] = (username, password) - - assert ( - # Credentials were found - (username is not None and password is not None) - # Credentials were not found - or (username is None and password is None) - ), f"Could not load credentials from url: {original_url}" - - return url, username, password - - def __call__(self, req: Request) -> Request: - # Get credentials for this request - url, username, password = self._get_url_and_credentials(req.url) - - # Set the url of the request to the url without any credentials - req.url = url - - if username is not None and password is not None: - # Send the basic auth with this request - req = HTTPBasicAuth(username, password)(req) - - # Attach a hook to handle 401 responses - req.register_hook("response", self.handle_401) - - return req - - # Factored out to allow for easy patching in tests - def _prompt_for_password( - self, netloc: str - ) -> Tuple[Optional[str], Optional[str], bool]: - username = ask_input(f"User for {netloc}: ") - if not username: - return None, None, False - auth = get_keyring_auth(netloc, username) - if auth and auth[0] is not None and auth[1] is not None: - return auth[0], auth[1], False - password = ask_password("Password: ") - return username, password, True - - # Factored out to allow for easy patching in tests - def _should_save_password_to_keyring(self) -> bool: - if not keyring: - return False - return ask("Save credentials to keyring [y/N]: ", ["y", "n"]) == "y" - - def handle_401(self, resp: Response, **kwargs: Any) -> Response: - # We only care about 401 responses, anything else we want to just - # pass through the actual response - if resp.status_code != 401: - return resp - - # We are not able to prompt the user so simply return the response - if not self.prompting: - return resp - - parsed = urllib.parse.urlparse(resp.url) - - # Query the keyring for credentials: - username, password = self._get_new_credentials( - resp.url, - allow_netrc=False, - allow_keyring=True, - ) - - # Prompt the user for a new username and password - save = False - if not username and not password: - username, password, save = self._prompt_for_password(parsed.netloc) - - # Store the new username and password to use for future requests - self._credentials_to_save = None - if username is not None and password is not None: - self.passwords[parsed.netloc] = (username, password) - - # Prompt to save the password to keyring - if save and self._should_save_password_to_keyring(): - self._credentials_to_save = (parsed.netloc, username, password) - - # Consume content and release the original connection to allow our new - # request to reuse the same one. - resp.content - resp.raw.release_conn() - - # Add our new username and password to the request - req = HTTPBasicAuth(username or "", password or "")(resp.request) - req.register_hook("response", self.warn_on_401) - - # On successful request, save the credentials that were used to - # keyring. (Note that if the user responded "no" above, this member - # is not set and nothing will be saved.) - if self._credentials_to_save: - req.register_hook("response", self.save_credentials) - - # Send our new request - new_resp = resp.connection.send(req, **kwargs) - new_resp.history.append(resp) - - return new_resp - - def warn_on_401(self, resp: Response, **kwargs: Any) -> None: - """Response callback to warn about incorrect credentials.""" - if resp.status_code == 401: - logger.warning( - "401 Error, Credentials not correct for %s", - resp.request.url, - ) - - def save_credentials(self, resp: Response, **kwargs: Any) -> None: - """Response callback to save credentials on success.""" - assert keyring is not None, "should never reach here without keyring" - if not keyring: - return - - creds = self._credentials_to_save - self._credentials_to_save = None - if creds and resp.status_code < 400: - try: - logger.info("Saving credentials to keyring") - keyring.set_password(*creds) - except Exception: - logger.exception("Failed to save credentials") diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/cache.py b/.venv/lib/python3.9/site-packages/pip/_internal/network/cache.py deleted file mode 100644 index 2d915e6..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/network/cache.py +++ /dev/null @@ -1,69 +0,0 @@ -"""HTTP cache implementation. -""" - -import os -from contextlib import contextmanager -from typing import Iterator, Optional - -from pip._vendor.cachecontrol.cache import BaseCache -from pip._vendor.cachecontrol.caches import FileCache -from pip._vendor.requests.models import Response - -from pip._internal.utils.filesystem import adjacent_tmp_file, replace -from pip._internal.utils.misc import ensure_dir - - -def is_from_cache(response: Response) -> bool: - return getattr(response, "from_cache", False) - - -@contextmanager -def suppressed_cache_errors() -> Iterator[None]: - """If we can't access the cache then we can just skip caching and process - requests as if caching wasn't enabled. - """ - try: - yield - except OSError: - pass - - -class SafeFileCache(BaseCache): - """ - A file based cache which is safe to use even when the target directory may - not be accessible or writable. - """ - - def __init__(self, directory: str) -> None: - assert directory is not None, "Cache directory must not be None." - super().__init__() - self.directory = directory - - def _get_cache_path(self, name: str) -> str: - # From cachecontrol.caches.file_cache.FileCache._fn, brought into our - # class for backwards-compatibility and to avoid using a non-public - # method. - hashed = FileCache.encode(name) - parts = list(hashed[:5]) + [hashed] - return os.path.join(self.directory, *parts) - - def get(self, key: str) -> Optional[bytes]: - path = self._get_cache_path(key) - with suppressed_cache_errors(): - with open(path, "rb") as f: - return f.read() - - def set(self, key: str, value: bytes) -> None: - path = self._get_cache_path(key) - with suppressed_cache_errors(): - ensure_dir(os.path.dirname(path)) - - with adjacent_tmp_file(path) as f: - f.write(value) - - replace(f.name, path) - - def delete(self, key: str) -> None: - path = self._get_cache_path(key) - with suppressed_cache_errors(): - os.remove(path) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/download.py b/.venv/lib/python3.9/site-packages/pip/_internal/network/download.py deleted file mode 100644 index 47af547..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/network/download.py +++ /dev/null @@ -1,184 +0,0 @@ -"""Download files with progress indicators. -""" -import cgi -import logging -import mimetypes -import os -from typing import Iterable, Optional, Tuple - -from pip._vendor.requests.models import CONTENT_CHUNK_SIZE, Response - -from pip._internal.cli.progress_bars import DownloadProgressProvider -from pip._internal.exceptions import NetworkConnectionError -from pip._internal.models.index import PyPI -from pip._internal.models.link import Link -from pip._internal.network.cache import is_from_cache -from pip._internal.network.session import PipSession -from pip._internal.network.utils import HEADERS, raise_for_status, response_chunks -from pip._internal.utils.misc import format_size, redact_auth_from_url, splitext - -logger = logging.getLogger(__name__) - - -def _get_http_response_size(resp: Response) -> Optional[int]: - try: - return int(resp.headers["content-length"]) - except (ValueError, KeyError, TypeError): - return None - - -def _prepare_download( - resp: Response, - link: Link, - progress_bar: str, -) -> Iterable[bytes]: - total_length = _get_http_response_size(resp) - - if link.netloc == PyPI.file_storage_domain: - url = link.show_url - else: - url = link.url_without_fragment - - logged_url = redact_auth_from_url(url) - - if total_length: - logged_url = "{} ({})".format(logged_url, format_size(total_length)) - - if is_from_cache(resp): - logger.info("Using cached %s", logged_url) - else: - logger.info("Downloading %s", logged_url) - - if logger.getEffectiveLevel() > logging.INFO: - show_progress = False - elif is_from_cache(resp): - show_progress = False - elif not total_length: - show_progress = True - elif total_length > (40 * 1000): - show_progress = True - else: - show_progress = False - - chunks = response_chunks(resp, CONTENT_CHUNK_SIZE) - - if not show_progress: - return chunks - - return DownloadProgressProvider(progress_bar, max=total_length)(chunks) - - -def sanitize_content_filename(filename: str) -> str: - """ - Sanitize the "filename" value from a Content-Disposition header. - """ - return os.path.basename(filename) - - -def parse_content_disposition(content_disposition: str, default_filename: str) -> str: - """ - Parse the "filename" value from a Content-Disposition header, and - return the default filename if the result is empty. - """ - _type, params = cgi.parse_header(content_disposition) - filename = params.get("filename") - if filename: - # We need to sanitize the filename to prevent directory traversal - # in case the filename contains ".." path parts. - filename = sanitize_content_filename(filename) - return filename or default_filename - - -def _get_http_response_filename(resp: Response, link: Link) -> str: - """Get an ideal filename from the given HTTP response, falling back to - the link filename if not provided. - """ - filename = link.filename # fallback - # Have a look at the Content-Disposition header for a better guess - content_disposition = resp.headers.get("content-disposition") - if content_disposition: - filename = parse_content_disposition(content_disposition, filename) - ext: Optional[str] = splitext(filename)[1] - if not ext: - ext = mimetypes.guess_extension(resp.headers.get("content-type", "")) - if ext: - filename += ext - if not ext and link.url != resp.url: - ext = os.path.splitext(resp.url)[1] - if ext: - filename += ext - return filename - - -def _http_get_download(session: PipSession, link: Link) -> Response: - target_url = link.url.split("#", 1)[0] - resp = session.get(target_url, headers=HEADERS, stream=True) - raise_for_status(resp) - return resp - - -class Downloader: - def __init__( - self, - session: PipSession, - progress_bar: str, - ) -> None: - self._session = session - self._progress_bar = progress_bar - - def __call__(self, link: Link, location: str) -> Tuple[str, str]: - """Download the file given by link into location.""" - try: - resp = _http_get_download(self._session, link) - except NetworkConnectionError as e: - assert e.response is not None - logger.critical( - "HTTP error %s while getting %s", e.response.status_code, link - ) - raise - - filename = _get_http_response_filename(resp, link) - filepath = os.path.join(location, filename) - - chunks = _prepare_download(resp, link, self._progress_bar) - with open(filepath, "wb") as content_file: - for chunk in chunks: - content_file.write(chunk) - content_type = resp.headers.get("Content-Type", "") - return filepath, content_type - - -class BatchDownloader: - def __init__( - self, - session: PipSession, - progress_bar: str, - ) -> None: - self._session = session - self._progress_bar = progress_bar - - def __call__( - self, links: Iterable[Link], location: str - ) -> Iterable[Tuple[Link, Tuple[str, str]]]: - """Download the files given by links into location.""" - for link in links: - try: - resp = _http_get_download(self._session, link) - except NetworkConnectionError as e: - assert e.response is not None - logger.critical( - "HTTP error %s while getting %s", - e.response.status_code, - link, - ) - raise - - filename = _get_http_response_filename(resp, link) - filepath = os.path.join(location, filename) - - chunks = _prepare_download(resp, link, self._progress_bar) - with open(filepath, "wb") as content_file: - for chunk in chunks: - content_file.write(chunk) - content_type = resp.headers.get("Content-Type", "") - yield link, (filepath, content_type) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/lazy_wheel.py b/.venv/lib/python3.9/site-packages/pip/_internal/network/lazy_wheel.py deleted file mode 100644 index c9e44d5..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/network/lazy_wheel.py +++ /dev/null @@ -1,210 +0,0 @@ -"""Lazy ZIP over HTTP""" - -__all__ = ["HTTPRangeRequestUnsupported", "dist_from_wheel_url"] - -from bisect import bisect_left, bisect_right -from contextlib import contextmanager -from tempfile import NamedTemporaryFile -from typing import Any, Dict, Iterator, List, Optional, Tuple -from zipfile import BadZipfile, ZipFile - -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.requests.models import CONTENT_CHUNK_SIZE, Response - -from pip._internal.metadata import BaseDistribution, MemoryWheel, get_wheel_distribution -from pip._internal.network.session import PipSession -from pip._internal.network.utils import HEADERS, raise_for_status, response_chunks - - -class HTTPRangeRequestUnsupported(Exception): - pass - - -def dist_from_wheel_url(name: str, url: str, session: PipSession) -> BaseDistribution: - """Return a distribution object from the given wheel URL. - - This uses HTTP range requests to only fetch the potion of the wheel - containing metadata, just enough for the object to be constructed. - If such requests are not supported, HTTPRangeRequestUnsupported - is raised. - """ - with LazyZipOverHTTP(url, session) as zf: - # For read-only ZIP files, ZipFile only needs methods read, - # seek, seekable and tell, not the whole IO protocol. - wheel = MemoryWheel(zf.name, zf) # type: ignore - # After context manager exit, wheel.name - # is an invalid file by intention. - return get_wheel_distribution(wheel, canonicalize_name(name)) - - -class LazyZipOverHTTP: - """File-like object mapped to a ZIP file over HTTP. - - This uses HTTP range requests to lazily fetch the file's content, - which is supposed to be fed to ZipFile. If such requests are not - supported by the server, raise HTTPRangeRequestUnsupported - during initialization. - """ - - def __init__( - self, url: str, session: PipSession, chunk_size: int = CONTENT_CHUNK_SIZE - ) -> None: - head = session.head(url, headers=HEADERS) - raise_for_status(head) - assert head.status_code == 200 - self._session, self._url, self._chunk_size = session, url, chunk_size - self._length = int(head.headers["Content-Length"]) - self._file = NamedTemporaryFile() - self.truncate(self._length) - self._left: List[int] = [] - self._right: List[int] = [] - if "bytes" not in head.headers.get("Accept-Ranges", "none"): - raise HTTPRangeRequestUnsupported("range request is not supported") - self._check_zip() - - @property - def mode(self) -> str: - """Opening mode, which is always rb.""" - return "rb" - - @property - def name(self) -> str: - """Path to the underlying file.""" - return self._file.name - - def seekable(self) -> bool: - """Return whether random access is supported, which is True.""" - return True - - def close(self) -> None: - """Close the file.""" - self._file.close() - - @property - def closed(self) -> bool: - """Whether the file is closed.""" - return self._file.closed - - def read(self, size: int = -1) -> bytes: - """Read up to size bytes from the object and return them. - - As a convenience, if size is unspecified or -1, - all bytes until EOF are returned. Fewer than - size bytes may be returned if EOF is reached. - """ - download_size = max(size, self._chunk_size) - start, length = self.tell(), self._length - stop = length if size < 0 else min(start + download_size, length) - start = max(0, stop - download_size) - self._download(start, stop - 1) - return self._file.read(size) - - def readable(self) -> bool: - """Return whether the file is readable, which is True.""" - return True - - def seek(self, offset: int, whence: int = 0) -> int: - """Change stream position and return the new absolute position. - - Seek to offset relative position indicated by whence: - * 0: Start of stream (the default). pos should be >= 0; - * 1: Current position - pos may be negative; - * 2: End of stream - pos usually negative. - """ - return self._file.seek(offset, whence) - - def tell(self) -> int: - """Return the current position.""" - return self._file.tell() - - def truncate(self, size: Optional[int] = None) -> int: - """Resize the stream to the given size in bytes. - - If size is unspecified resize to the current position. - The current stream position isn't changed. - - Return the new file size. - """ - return self._file.truncate(size) - - def writable(self) -> bool: - """Return False.""" - return False - - def __enter__(self) -> "LazyZipOverHTTP": - self._file.__enter__() - return self - - def __exit__(self, *exc: Any) -> Optional[bool]: - return self._file.__exit__(*exc) - - @contextmanager - def _stay(self) -> Iterator[None]: - """Return a context manager keeping the position. - - At the end of the block, seek back to original position. - """ - pos = self.tell() - try: - yield - finally: - self.seek(pos) - - def _check_zip(self) -> None: - """Check and download until the file is a valid ZIP.""" - end = self._length - 1 - for start in reversed(range(0, end, self._chunk_size)): - self._download(start, end) - with self._stay(): - try: - # For read-only ZIP files, ZipFile only needs - # methods read, seek, seekable and tell. - ZipFile(self) # type: ignore - except BadZipfile: - pass - else: - break - - def _stream_response( - self, start: int, end: int, base_headers: Dict[str, str] = HEADERS - ) -> Response: - """Return HTTP response to a range request from start to end.""" - headers = base_headers.copy() - headers["Range"] = f"bytes={start}-{end}" - # TODO: Get range requests to be correctly cached - headers["Cache-Control"] = "no-cache" - return self._session.get(self._url, headers=headers, stream=True) - - def _merge( - self, start: int, end: int, left: int, right: int - ) -> Iterator[Tuple[int, int]]: - """Return an iterator of intervals to be fetched. - - Args: - start (int): Start of needed interval - end (int): End of needed interval - left (int): Index of first overlapping downloaded data - right (int): Index after last overlapping downloaded data - """ - lslice, rslice = self._left[left:right], self._right[left:right] - i = start = min([start] + lslice[:1]) - end = max([end] + rslice[-1:]) - for j, k in zip(lslice, rslice): - if j > i: - yield i, j - 1 - i = k + 1 - if i <= end: - yield i, end - self._left[left:right], self._right[left:right] = [start], [end] - - def _download(self, start: int, end: int) -> None: - """Download bytes from start to end inclusively.""" - with self._stay(): - left = bisect_left(self._right, start) - right = bisect_right(self._left, end) - for start, end in self._merge(start, end, left, right): - response = self._stream_response(start, end) - response.raise_for_status() - self.seek(start) - for chunk in response_chunks(response, self._chunk_size): - self._file.write(chunk) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/session.py b/.venv/lib/python3.9/site-packages/pip/_internal/network/session.py deleted file mode 100644 index cbe743b..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/network/session.py +++ /dev/null @@ -1,454 +0,0 @@ -"""PipSession and supporting code, containing all pip-specific -network request configuration and behavior. -""" - -import email.utils -import io -import ipaddress -import json -import logging -import mimetypes -import os -import platform -import shutil -import subprocess -import sys -import urllib.parse -import warnings -from typing import Any, Dict, Iterator, List, Mapping, Optional, Sequence, Tuple, Union - -from pip._vendor import requests, urllib3 -from pip._vendor.cachecontrol import CacheControlAdapter -from pip._vendor.requests.adapters import BaseAdapter, HTTPAdapter -from pip._vendor.requests.models import PreparedRequest, Response -from pip._vendor.requests.structures import CaseInsensitiveDict -from pip._vendor.urllib3.connectionpool import ConnectionPool -from pip._vendor.urllib3.exceptions import InsecureRequestWarning - -from pip import __version__ -from pip._internal.metadata import get_default_environment -from pip._internal.models.link import Link -from pip._internal.network.auth import MultiDomainBasicAuth -from pip._internal.network.cache import SafeFileCache - -# Import ssl from compat so the initial import occurs in only one place. -from pip._internal.utils.compat import has_tls -from pip._internal.utils.glibc import libc_ver -from pip._internal.utils.misc import build_url_from_netloc, parse_netloc -from pip._internal.utils.urls import url_to_path - -logger = logging.getLogger(__name__) - -SecureOrigin = Tuple[str, str, Optional[Union[int, str]]] - - -# Ignore warning raised when using --trusted-host. -warnings.filterwarnings("ignore", category=InsecureRequestWarning) - - -SECURE_ORIGINS: List[SecureOrigin] = [ - # protocol, hostname, port - # Taken from Chrome's list of secure origins (See: http://bit.ly/1qrySKC) - ("https", "*", "*"), - ("*", "localhost", "*"), - ("*", "127.0.0.0/8", "*"), - ("*", "::1/128", "*"), - ("file", "*", None), - # ssh is always secure. - ("ssh", "*", "*"), -] - - -# These are environment variables present when running under various -# CI systems. For each variable, some CI systems that use the variable -# are indicated. The collection was chosen so that for each of a number -# of popular systems, at least one of the environment variables is used. -# This list is used to provide some indication of and lower bound for -# CI traffic to PyPI. Thus, it is okay if the list is not comprehensive. -# For more background, see: https://github.com/pypa/pip/issues/5499 -CI_ENVIRONMENT_VARIABLES = ( - # Azure Pipelines - "BUILD_BUILDID", - # Jenkins - "BUILD_ID", - # AppVeyor, CircleCI, Codeship, Gitlab CI, Shippable, Travis CI - "CI", - # Explicit environment variable. - "PIP_IS_CI", -) - - -def looks_like_ci() -> bool: - """ - Return whether it looks like pip is running under CI. - """ - # We don't use the method of checking for a tty (e.g. using isatty()) - # because some CI systems mimic a tty (e.g. Travis CI). Thus that - # method doesn't provide definitive information in either direction. - return any(name in os.environ for name in CI_ENVIRONMENT_VARIABLES) - - -def user_agent() -> str: - """ - Return a string representing the user agent. - """ - data: Dict[str, Any] = { - "installer": {"name": "pip", "version": __version__}, - "python": platform.python_version(), - "implementation": { - "name": platform.python_implementation(), - }, - } - - if data["implementation"]["name"] == "CPython": - data["implementation"]["version"] = platform.python_version() - elif data["implementation"]["name"] == "PyPy": - pypy_version_info = sys.pypy_version_info # type: ignore - if pypy_version_info.releaselevel == "final": - pypy_version_info = pypy_version_info[:3] - data["implementation"]["version"] = ".".join( - [str(x) for x in pypy_version_info] - ) - elif data["implementation"]["name"] == "Jython": - # Complete Guess - data["implementation"]["version"] = platform.python_version() - elif data["implementation"]["name"] == "IronPython": - # Complete Guess - data["implementation"]["version"] = platform.python_version() - - if sys.platform.startswith("linux"): - from pip._vendor import distro - - linux_distribution = distro.name(), distro.version(), distro.codename() - distro_infos: Dict[str, Any] = dict( - filter( - lambda x: x[1], - zip(["name", "version", "id"], linux_distribution), - ) - ) - libc = dict( - filter( - lambda x: x[1], - zip(["lib", "version"], libc_ver()), - ) - ) - if libc: - distro_infos["libc"] = libc - if distro_infos: - data["distro"] = distro_infos - - if sys.platform.startswith("darwin") and platform.mac_ver()[0]: - data["distro"] = {"name": "macOS", "version": platform.mac_ver()[0]} - - if platform.system(): - data.setdefault("system", {})["name"] = platform.system() - - if platform.release(): - data.setdefault("system", {})["release"] = platform.release() - - if platform.machine(): - data["cpu"] = platform.machine() - - if has_tls(): - import _ssl as ssl - - data["openssl_version"] = ssl.OPENSSL_VERSION - - setuptools_dist = get_default_environment().get_distribution("setuptools") - if setuptools_dist is not None: - data["setuptools_version"] = str(setuptools_dist.version) - - if shutil.which("rustc") is not None: - # If for any reason `rustc --version` fails, silently ignore it - try: - rustc_output = subprocess.check_output( - ["rustc", "--version"], stderr=subprocess.STDOUT, timeout=0.5 - ) - except Exception: - pass - else: - if rustc_output.startswith(b"rustc "): - # The format of `rustc --version` is: - # `b'rustc 1.52.1 (9bc8c42bb 2021-05-09)\n'` - # We extract just the middle (1.52.1) part - data["rustc_version"] = rustc_output.split(b" ")[1].decode() - - # Use None rather than False so as not to give the impression that - # pip knows it is not being run under CI. Rather, it is a null or - # inconclusive result. Also, we include some value rather than no - # value to make it easier to know that the check has been run. - data["ci"] = True if looks_like_ci() else None - - user_data = os.environ.get("PIP_USER_AGENT_USER_DATA") - if user_data is not None: - data["user_data"] = user_data - - return "{data[installer][name]}/{data[installer][version]} {json}".format( - data=data, - json=json.dumps(data, separators=(",", ":"), sort_keys=True), - ) - - -class LocalFSAdapter(BaseAdapter): - def send( - self, - request: PreparedRequest, - stream: bool = False, - timeout: Optional[Union[float, Tuple[float, float]]] = None, - verify: Union[bool, str] = True, - cert: Optional[Union[str, Tuple[str, str]]] = None, - proxies: Optional[Mapping[str, str]] = None, - ) -> Response: - pathname = url_to_path(request.url) - - resp = Response() - resp.status_code = 200 - resp.url = request.url - - try: - stats = os.stat(pathname) - except OSError as exc: - # format the exception raised as a io.BytesIO object, - # to return a better error message: - resp.status_code = 404 - resp.reason = type(exc).__name__ - resp.raw = io.BytesIO(f"{resp.reason}: {exc}".encode("utf8")) - else: - modified = email.utils.formatdate(stats.st_mtime, usegmt=True) - content_type = mimetypes.guess_type(pathname)[0] or "text/plain" - resp.headers = CaseInsensitiveDict( - { - "Content-Type": content_type, - "Content-Length": stats.st_size, - "Last-Modified": modified, - } - ) - - resp.raw = open(pathname, "rb") - resp.close = resp.raw.close - - return resp - - def close(self) -> None: - pass - - -class InsecureHTTPAdapter(HTTPAdapter): - def cert_verify( - self, - conn: ConnectionPool, - url: str, - verify: Union[bool, str], - cert: Optional[Union[str, Tuple[str, str]]], - ) -> None: - super().cert_verify(conn=conn, url=url, verify=False, cert=cert) - - -class InsecureCacheControlAdapter(CacheControlAdapter): - def cert_verify( - self, - conn: ConnectionPool, - url: str, - verify: Union[bool, str], - cert: Optional[Union[str, Tuple[str, str]]], - ) -> None: - super().cert_verify(conn=conn, url=url, verify=False, cert=cert) - - -class PipSession(requests.Session): - - timeout: Optional[int] = None - - def __init__( - self, - *args: Any, - retries: int = 0, - cache: Optional[str] = None, - trusted_hosts: Sequence[str] = (), - index_urls: Optional[List[str]] = None, - **kwargs: Any, - ) -> None: - """ - :param trusted_hosts: Domains not to emit warnings for when not using - HTTPS. - """ - super().__init__(*args, **kwargs) - - # Namespace the attribute with "pip_" just in case to prevent - # possible conflicts with the base class. - self.pip_trusted_origins: List[Tuple[str, Optional[int]]] = [] - - # Attach our User Agent to the request - self.headers["User-Agent"] = user_agent() - - # Attach our Authentication handler to the session - self.auth = MultiDomainBasicAuth(index_urls=index_urls) - - # Create our urllib3.Retry instance which will allow us to customize - # how we handle retries. - retries = urllib3.Retry( - # Set the total number of retries that a particular request can - # have. - total=retries, - # A 503 error from PyPI typically means that the Fastly -> Origin - # connection got interrupted in some way. A 503 error in general - # is typically considered a transient error so we'll go ahead and - # retry it. - # A 500 may indicate transient error in Amazon S3 - # A 520 or 527 - may indicate transient error in CloudFlare - status_forcelist=[500, 503, 520, 527], - # Add a small amount of back off between failed requests in - # order to prevent hammering the service. - backoff_factor=0.25, - ) # type: ignore - - # Our Insecure HTTPAdapter disables HTTPS validation. It does not - # support caching so we'll use it for all http:// URLs. - # If caching is disabled, we will also use it for - # https:// hosts that we've marked as ignoring - # TLS errors for (trusted-hosts). - insecure_adapter = InsecureHTTPAdapter(max_retries=retries) - - # We want to _only_ cache responses on securely fetched origins or when - # the host is specified as trusted. We do this because - # we can't validate the response of an insecurely/untrusted fetched - # origin, and we don't want someone to be able to poison the cache and - # require manual eviction from the cache to fix it. - if cache: - secure_adapter = CacheControlAdapter( - cache=SafeFileCache(cache), - max_retries=retries, - ) - self._trusted_host_adapter = InsecureCacheControlAdapter( - cache=SafeFileCache(cache), - max_retries=retries, - ) - else: - secure_adapter = HTTPAdapter(max_retries=retries) - self._trusted_host_adapter = insecure_adapter - - self.mount("https://", secure_adapter) - self.mount("http://", insecure_adapter) - - # Enable file:// urls - self.mount("file://", LocalFSAdapter()) - - for host in trusted_hosts: - self.add_trusted_host(host, suppress_logging=True) - - def update_index_urls(self, new_index_urls: List[str]) -> None: - """ - :param new_index_urls: New index urls to update the authentication - handler with. - """ - self.auth.index_urls = new_index_urls - - def add_trusted_host( - self, host: str, source: Optional[str] = None, suppress_logging: bool = False - ) -> None: - """ - :param host: It is okay to provide a host that has previously been - added. - :param source: An optional source string, for logging where the host - string came from. - """ - if not suppress_logging: - msg = f"adding trusted host: {host!r}" - if source is not None: - msg += f" (from {source})" - logger.info(msg) - - host_port = parse_netloc(host) - if host_port not in self.pip_trusted_origins: - self.pip_trusted_origins.append(host_port) - - self.mount( - build_url_from_netloc(host, scheme="http") + "/", self._trusted_host_adapter - ) - self.mount(build_url_from_netloc(host) + "/", self._trusted_host_adapter) - if not host_port[1]: - self.mount( - build_url_from_netloc(host, scheme="http") + ":", - self._trusted_host_adapter, - ) - # Mount wildcard ports for the same host. - self.mount(build_url_from_netloc(host) + ":", self._trusted_host_adapter) - - def iter_secure_origins(self) -> Iterator[SecureOrigin]: - yield from SECURE_ORIGINS - for host, port in self.pip_trusted_origins: - yield ("*", host, "*" if port is None else port) - - def is_secure_origin(self, location: Link) -> bool: - # Determine if this url used a secure transport mechanism - parsed = urllib.parse.urlparse(str(location)) - origin_protocol, origin_host, origin_port = ( - parsed.scheme, - parsed.hostname, - parsed.port, - ) - - # The protocol to use to see if the protocol matches. - # Don't count the repository type as part of the protocol: in - # cases such as "git+ssh", only use "ssh". (I.e., Only verify against - # the last scheme.) - origin_protocol = origin_protocol.rsplit("+", 1)[-1] - - # Determine if our origin is a secure origin by looking through our - # hardcoded list of secure origins, as well as any additional ones - # configured on this PackageFinder instance. - for secure_origin in self.iter_secure_origins(): - secure_protocol, secure_host, secure_port = secure_origin - if origin_protocol != secure_protocol and secure_protocol != "*": - continue - - try: - addr = ipaddress.ip_address(origin_host) - network = ipaddress.ip_network(secure_host) - except ValueError: - # We don't have both a valid address or a valid network, so - # we'll check this origin against hostnames. - if ( - origin_host - and origin_host.lower() != secure_host.lower() - and secure_host != "*" - ): - continue - else: - # We have a valid address and network, so see if the address - # is contained within the network. - if addr not in network: - continue - - # Check to see if the port matches. - if ( - origin_port != secure_port - and secure_port != "*" - and secure_port is not None - ): - continue - - # If we've gotten here, then this origin matches the current - # secure origin and we should return True - return True - - # If we've gotten to this point, then the origin isn't secure and we - # will not accept it as a valid location to search. We will however - # log a warning that we are ignoring it. - logger.warning( - "The repository located at %s is not a trusted or secure host and " - "is being ignored. If this repository is available via HTTPS we " - "recommend you use HTTPS instead, otherwise you may silence " - "this warning and allow it anyway with '--trusted-host %s'.", - origin_host, - origin_host, - ) - - return False - - def request(self, method: str, url: str, *args: Any, **kwargs: Any) -> Response: - # Allow setting a default timeout on a session - kwargs.setdefault("timeout", self.timeout) - - # Dispatch the actual request - return super().request(method, url, *args, **kwargs) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/utils.py b/.venv/lib/python3.9/site-packages/pip/_internal/network/utils.py deleted file mode 100644 index 094cf1b..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/network/utils.py +++ /dev/null @@ -1,96 +0,0 @@ -from typing import Dict, Iterator - -from pip._vendor.requests.models import CONTENT_CHUNK_SIZE, Response - -from pip._internal.exceptions import NetworkConnectionError - -# The following comments and HTTP headers were originally added by -# Donald Stufft in git commit 22c562429a61bb77172039e480873fb239dd8c03. -# -# We use Accept-Encoding: identity here because requests defaults to -# accepting compressed responses. This breaks in a variety of ways -# depending on how the server is configured. -# - Some servers will notice that the file isn't a compressible file -# and will leave the file alone and with an empty Content-Encoding -# - Some servers will notice that the file is already compressed and -# will leave the file alone, adding a Content-Encoding: gzip header -# - Some servers won't notice anything at all and will take a file -# that's already been compressed and compress it again, and set -# the Content-Encoding: gzip header -# By setting this to request only the identity encoding we're hoping -# to eliminate the third case. Hopefully there does not exist a server -# which when given a file will notice it is already compressed and that -# you're not asking for a compressed file and will then decompress it -# before sending because if that's the case I don't think it'll ever be -# possible to make this work. -HEADERS: Dict[str, str] = {"Accept-Encoding": "identity"} - - -def raise_for_status(resp: Response) -> None: - http_error_msg = "" - if isinstance(resp.reason, bytes): - # We attempt to decode utf-8 first because some servers - # choose to localize their reason strings. If the string - # isn't utf-8, we fall back to iso-8859-1 for all other - # encodings. - try: - reason = resp.reason.decode("utf-8") - except UnicodeDecodeError: - reason = resp.reason.decode("iso-8859-1") - else: - reason = resp.reason - - if 400 <= resp.status_code < 500: - http_error_msg = ( - f"{resp.status_code} Client Error: {reason} for url: {resp.url}" - ) - - elif 500 <= resp.status_code < 600: - http_error_msg = ( - f"{resp.status_code} Server Error: {reason} for url: {resp.url}" - ) - - if http_error_msg: - raise NetworkConnectionError(http_error_msg, response=resp) - - -def response_chunks( - response: Response, chunk_size: int = CONTENT_CHUNK_SIZE -) -> Iterator[bytes]: - """Given a requests Response, provide the data chunks.""" - try: - # Special case for urllib3. - for chunk in response.raw.stream( - chunk_size, - # We use decode_content=False here because we don't - # want urllib3 to mess with the raw bytes we get - # from the server. If we decompress inside of - # urllib3 then we cannot verify the checksum - # because the checksum will be of the compressed - # file. This breakage will only occur if the - # server adds a Content-Encoding header, which - # depends on how the server was configured: - # - Some servers will notice that the file isn't a - # compressible file and will leave the file alone - # and with an empty Content-Encoding - # - Some servers will notice that the file is - # already compressed and will leave the file - # alone and will add a Content-Encoding: gzip - # header - # - Some servers won't notice anything at all and - # will take a file that's already been compressed - # and compress it again and set the - # Content-Encoding: gzip header - # - # By setting this not to decode automatically we - # hope to eliminate problems with the second case. - decode_content=False, - ): - yield chunk - except AttributeError: - # Standard file-like object. - while True: - chunk = response.raw.read(chunk_size) - if not chunk: - break - yield chunk diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.py b/.venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.py deleted file mode 100644 index 4a7d55d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.py +++ /dev/null @@ -1,60 +0,0 @@ -"""xmlrpclib.Transport implementation -""" - -import logging -import urllib.parse -import xmlrpc.client -from typing import TYPE_CHECKING, Tuple - -from pip._internal.exceptions import NetworkConnectionError -from pip._internal.network.session import PipSession -from pip._internal.network.utils import raise_for_status - -if TYPE_CHECKING: - from xmlrpc.client import _HostType, _Marshallable - -logger = logging.getLogger(__name__) - - -class PipXmlrpcTransport(xmlrpc.client.Transport): - """Provide a `xmlrpclib.Transport` implementation via a `PipSession` - object. - """ - - def __init__( - self, index_url: str, session: PipSession, use_datetime: bool = False - ) -> None: - super().__init__(use_datetime) - index_parts = urllib.parse.urlparse(index_url) - self._scheme = index_parts.scheme - self._session = session - - def request( - self, - host: "_HostType", - handler: str, - request_body: bytes, - verbose: bool = False, - ) -> Tuple["_Marshallable", ...]: - assert isinstance(host, str) - parts = (self._scheme, host, handler, None, None, None) - url = urllib.parse.urlunparse(parts) - try: - headers = {"Content-Type": "text/xml"} - response = self._session.post( - url, - data=request_body, - headers=headers, - stream=True, - ) - raise_for_status(response) - self.verbose = verbose - return self.parse_response(response.raw) - except NetworkConnectionError as exc: - assert exc.response - logger.critical( - "HTTP error %s while getting %s", - exc.response.status_code, - url, - ) - raise diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 2242b9a377aa1395cb102a9cfc3710f4ba0026a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-39.pyc deleted file mode 100644 index cf7e0f26f8cb31cc06f36a75878d7462e8352f3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14663 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 8b99cbfb7ce70c9ba9edc8c733dbf4613dc97841..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmYk0u?@m75Jeq{0wHA(3UUP%5<*Ns!vL0(9K^w~E#D;&Hem$TU<_JDprgXB;7k8~ z{eR7=JfDfE+hg9Qd?oxVi)9;4lZaaE#XQ^HMM(1xpDQ%3Lnt*hXVoGyFcO2s153g% zV32&V(g#-|5flU30gNuekK8!BELK38ap6^UQb#24+Jn@VF<525c?^oRvjkM VG)r0d@i|?0uI>$P(ogSb@dfMkJXZh! diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-39.pyc deleted file mode 100644 index 549ded816775dee9bcdb2fde99cb32d24f18607b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1197 zcmZuwON%5$5YDVuKdftL$0uuygcp_%rJ2$-m&q$m;Id5zQu}G9Dd|FCwa=qbb4j>mT`&MTGq6nVSb? z1X!Z&Zz9ac`^WnGPDqguNTYv;pIiY0Ms)eYtQ)M!%R;GrG3+s%Sue{b4)4wnq z@;Imc@d@aU?tT1~QfCjVwguy5pRGj8AIWoJl6hra}u z!8TaZ%WzAce?y52c=U{3MqBzK+(uXQ`CF9WJKBa<^fLaQ@Hiq7d4_1p<9oz@{XU_? z?+2v+(Ka`=E?&|X$u``^S02%1(|)-F60+_9?aB(dK(=lwDQssm4z@--foDQyCy!1t z1hJS-Gdxd*DsAQ(IJ5-Ku3hm1O2uHkxz#BSM&3ObJk5hXIunT3@uF38Y|5H-l|-ER z=G_wmx-z?5_FaEZueDK2M80sUYxBqX$ixU_AL+_9#t&eB+pgwlRAax`u91DF2Uoxj zaT!hv+jZ@t0ciU`**;n-A@jueHkpxkb?e&RbsB5w(`$j}lD+%X51f#vilOv(VqU}l z{=F$1)j>HIwz;U50IqakT`A$zF$?A#=ga*l**?>~ql_QmFs)kngd%5CBvCjH(jdjk((oTqhhka) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-39.pyc deleted file mode 100644 index 235720c72b8c3041a90a514617aa309e521ef6d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-39.pyc deleted file mode 100644 index 8198863cc90f45189bce45ef278b2d32d81469c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2724 zcma);OOG4J5rDhr%^`PJk5v*mLNZaLNP}3UA8=wX49Bn~83q;-U?CC0AQ%kUz2vOs zL3B5Fwe&C-89rIaIgku+kG|!cLk{^Fea#`zPlyx2uIib6NQi(8!Jd9qcXjnwRgOI= z9u%En$JE_CEV{#P(Hr)Pwc#2ioUGRQ#vvV^;SN80k?^zpEc2e)%xA$D&hXqx?{Uq= zd93r)VF++hdFwO1 zF;4S5k@L|^RAVlsKEG3mB2~$_DvGpZM?$^RZM}Zfs^)4oSK1S>qbSD~YT7;yyz&1r z{N)G=MQZYhE-glD>j{|uYkO(eR9>!aX8)Qj?ecv^SJoj>_OA255nIsjnEop@UAfFU zq;k8a%z{1&V{T2K5am4~UmNM#22**9YqyR1QLA8-mCbp;U=h@!yqZk1a?)R%|F}6| z1Xh_Byi{^4(llIb9`!dz+luZ~C0|^7x%Urq$)g)L_P7{TP*YVTr`7%+7iV6Y7{TPI`9$*yFR`K z#^qQ$ia%7}5U~kE-~MSZtqMLEWpcWo?sBdMic2*p`Hli01ZbM5hh@^<^Ps=S%e_IK zjRvy=HLc3G`|k~8rudCnI)0E&xE#!~*&xYE#Raf70MJB=+{wXcp5<)NFqQL3IzH&n z4)leWz!6-|b9Dw(lc*nY1KP738q#$dS|JVSIZONi`eRSKWm<5l1I3G3!ZM*9>^M2L z0QV+i7guQ?Gz_*4TnZ{JT!5H-i_sMzc1V|Q?JBFbYv&O{<0^aQ)b1e#ueRA zTm&bC>#xK?fAQwFv0pn-?X-eO>gPWb%V;cksyK_vD%#0%F8kq~XB3XR82+DvMJ0gF zX<9~rv00-Z-iDQo#iQ%vX;n$^2N)4j#aq$m%TVA3aYuWy60o=Snu|4;CDvd}`}?UV zK}y@OkhUtR9Xz~tcB`z6J@G@BBz}a&MJ!J6wF@~hv^K>BT`=$*S=M)!?L2oJWJ&xS#=*^SFTG}BUotyLj7FiX=3>kZRO^$x8l`zs zneZv~TC>|x)5U9I4Qhzj(bIzpp1`2?cc=hr5PxbwiP6W-(qjM)#4{V>nXhQ=KcavB zav3OV1@Q}TvnW}dQ%>yxU;%R<+sn>~09dNZ~jW}F< z^$|L-0b*XFy8~dY*GF?h10sC6xs%H+n{C|ahhYRygS|XvzU6%KxSID>b#IB!%%K${)VF&5qEy18YD zI`QJ-%@dIm&)SNvN=TUYc%Ny%O^@2;LR4aL>2?YZz?yTtxb#(dCw56aa|C9! z#t~e`NArpBQTNWRhhuKg0*}c`2*cuaocL25^m9nVaG-|OUgH-?x44SMu?56+oE7kntsE>Q8^&ig{?|^K4L2STF`<3jQjm;T7bpWbP1bzev8^>RR6w*IVA^mZl z_1n9U#)$gLixcK5%Vq!c*9(GbjIMw3Kc^mlx0qCEE}}`d9f&I1O~wt91fyM&GEM$ L8f$q?``_OK={M?V diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata.py deleted file mode 100644 index 7d12438..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Metadata generation logic for source distributions. -""" - -import os - -from pip._vendor.pep517.wrappers import Pep517HookCaller - -from pip._internal.build_env import BuildEnvironment -from pip._internal.utils.subprocess import runner_with_spinner_message -from pip._internal.utils.temp_dir import TempDirectory - - -def generate_metadata(build_env: BuildEnvironment, backend: Pep517HookCaller) -> str: - """Generate metadata using mechanisms described in PEP 517. - - Returns the generated metadata directory. - """ - metadata_tmpdir = TempDirectory(kind="modern-metadata", globally_managed=True) - - metadata_dir = metadata_tmpdir.path - - with build_env: - # Note that Pep517HookCaller implements a fallback for - # prepare_metadata_for_build_wheel, so we don't have to - # consider the possibility that this hook doesn't exist. - runner = runner_with_spinner_message("Preparing metadata (pyproject.toml)") - with backend.subprocess_runner(runner): - distinfo_dir = backend.prepare_metadata_for_build_wheel(metadata_dir) - - return os.path.join(metadata_dir, distinfo_dir) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_editable.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_editable.py deleted file mode 100644 index 13de75f..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_editable.py +++ /dev/null @@ -1,34 +0,0 @@ -"""Metadata generation logic for source distributions. -""" - -import os - -from pip._vendor.pep517.wrappers import Pep517HookCaller - -from pip._internal.build_env import BuildEnvironment -from pip._internal.utils.subprocess import runner_with_spinner_message -from pip._internal.utils.temp_dir import TempDirectory - - -def generate_editable_metadata( - build_env: BuildEnvironment, backend: Pep517HookCaller -) -> str: - """Generate metadata using mechanisms described in PEP 660. - - Returns the generated metadata directory. - """ - metadata_tmpdir = TempDirectory(kind="modern-metadata", globally_managed=True) - - metadata_dir = metadata_tmpdir.path - - with build_env: - # Note that Pep517HookCaller implements a fallback for - # prepare_metadata_for_build_wheel/editable, so we don't have to - # consider the possibility that this hook doesn't exist. - runner = runner_with_spinner_message( - "Preparing editable metadata (pyproject.toml)" - ) - with backend.subprocess_runner(runner): - distinfo_dir = backend.prepare_metadata_for_build_editable(metadata_dir) - - return os.path.join(metadata_dir, distinfo_dir) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.py deleted file mode 100644 index ff52de9..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.py +++ /dev/null @@ -1,67 +0,0 @@ -"""Metadata generation logic for legacy source distributions. -""" - -import logging -import os - -from pip._internal.build_env import BuildEnvironment -from pip._internal.cli.spinners import open_spinner -from pip._internal.exceptions import InstallationError -from pip._internal.utils.setuptools_build import make_setuptools_egg_info_args -from pip._internal.utils.subprocess import call_subprocess -from pip._internal.utils.temp_dir import TempDirectory - -logger = logging.getLogger(__name__) - - -def _find_egg_info(directory: str) -> str: - """Find an .egg-info subdirectory in `directory`.""" - filenames = [f for f in os.listdir(directory) if f.endswith(".egg-info")] - - if not filenames: - raise InstallationError(f"No .egg-info directory found in {directory}") - - if len(filenames) > 1: - raise InstallationError( - "More than one .egg-info directory found in {}".format(directory) - ) - - return os.path.join(directory, filenames[0]) - - -def generate_metadata( - build_env: BuildEnvironment, - setup_py_path: str, - source_dir: str, - isolated: bool, - details: str, -) -> str: - """Generate metadata using setup.py-based defacto mechanisms. - - Returns the generated metadata directory. - """ - logger.debug( - "Running setup.py (path:%s) egg_info for package %s", - setup_py_path, - details, - ) - - egg_info_dir = TempDirectory(kind="pip-egg-info", globally_managed=True).path - - args = make_setuptools_egg_info_args( - setup_py_path, - egg_info_dir=egg_info_dir, - no_user_config=isolated, - ) - - with build_env: - with open_spinner("Preparing metadata (setup.py)") as spinner: - call_subprocess( - args, - cwd=source_dir, - command_desc="python setup.py egg_info", - spinner=spinner, - ) - - # Return the .egg-info directory. - return _find_egg_info(egg_info_dir) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel.py deleted file mode 100644 index b0d2fc9..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel.py +++ /dev/null @@ -1,37 +0,0 @@ -import logging -import os -from typing import Optional - -from pip._vendor.pep517.wrappers import Pep517HookCaller - -from pip._internal.utils.subprocess import runner_with_spinner_message - -logger = logging.getLogger(__name__) - - -def build_wheel_pep517( - name: str, - backend: Pep517HookCaller, - metadata_directory: str, - tempd: str, -) -> Optional[str]: - """Build one InstallRequirement using the PEP 517 build process. - - Returns path to wheel if successfully built. Otherwise, returns None. - """ - assert metadata_directory is not None - try: - logger.debug("Destination directory: %s", tempd) - - runner = runner_with_spinner_message( - f"Building wheel for {name} (pyproject.toml)" - ) - with backend.subprocess_runner(runner): - wheel_name = backend.build_wheel( - tempd, - metadata_directory=metadata_directory, - ) - except Exception: - logger.error("Failed building wheel for %s", name) - return None - return os.path.join(tempd, wheel_name) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_editable.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_editable.py deleted file mode 100644 index cf7b01a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_editable.py +++ /dev/null @@ -1,46 +0,0 @@ -import logging -import os -from typing import Optional - -from pip._vendor.pep517.wrappers import HookMissing, Pep517HookCaller - -from pip._internal.utils.subprocess import runner_with_spinner_message - -logger = logging.getLogger(__name__) - - -def build_wheel_editable( - name: str, - backend: Pep517HookCaller, - metadata_directory: str, - tempd: str, -) -> Optional[str]: - """Build one InstallRequirement using the PEP 660 build process. - - Returns path to wheel if successfully built. Otherwise, returns None. - """ - assert metadata_directory is not None - try: - logger.debug("Destination directory: %s", tempd) - - runner = runner_with_spinner_message( - f"Building editable for {name} (pyproject.toml)" - ) - with backend.subprocess_runner(runner): - try: - wheel_name = backend.build_editable( - tempd, - metadata_directory=metadata_directory, - ) - except HookMissing as e: - logger.error( - "Cannot build editable %s because the build " - "backend does not have the %s hook", - name, - e, - ) - return None - except Exception: - logger.error("Failed building editable for %s", name) - return None - return os.path.join(tempd, wheel_name) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_legacy.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_legacy.py deleted file mode 100644 index 2d5cb26..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_legacy.py +++ /dev/null @@ -1,105 +0,0 @@ -import logging -import os.path -from typing import List, Optional - -from pip._internal.cli.spinners import open_spinner -from pip._internal.utils.setuptools_build import make_setuptools_bdist_wheel_args -from pip._internal.utils.subprocess import ( - LOG_DIVIDER, - call_subprocess, - format_command_args, -) - -logger = logging.getLogger(__name__) - - -def format_command_result( - command_args: List[str], - command_output: str, -) -> str: - """Format command information for logging.""" - command_desc = format_command_args(command_args) - text = f"Command arguments: {command_desc}\n" - - if not command_output: - text += "Command output: None" - elif logger.getEffectiveLevel() > logging.DEBUG: - text += "Command output: [use --verbose to show]" - else: - if not command_output.endswith("\n"): - command_output += "\n" - text += f"Command output:\n{command_output}{LOG_DIVIDER}" - - return text - - -def get_legacy_build_wheel_path( - names: List[str], - temp_dir: str, - name: str, - command_args: List[str], - command_output: str, -) -> Optional[str]: - """Return the path to the wheel in the temporary build directory.""" - # Sort for determinism. - names = sorted(names) - if not names: - msg = ("Legacy build of wheel for {!r} created no files.\n").format(name) - msg += format_command_result(command_args, command_output) - logger.warning(msg) - return None - - if len(names) > 1: - msg = ( - "Legacy build of wheel for {!r} created more than one file.\n" - "Filenames (choosing first): {}\n" - ).format(name, names) - msg += format_command_result(command_args, command_output) - logger.warning(msg) - - return os.path.join(temp_dir, names[0]) - - -def build_wheel_legacy( - name: str, - setup_py_path: str, - source_dir: str, - global_options: List[str], - build_options: List[str], - tempd: str, -) -> Optional[str]: - """Build one unpacked package using the "legacy" build process. - - Returns path to wheel if successfully built. Otherwise, returns None. - """ - wheel_args = make_setuptools_bdist_wheel_args( - setup_py_path, - global_options=global_options, - build_options=build_options, - destination_dir=tempd, - ) - - spin_message = f"Building wheel for {name} (setup.py)" - with open_spinner(spin_message) as spinner: - logger.debug("Destination directory: %s", tempd) - - try: - output = call_subprocess( - wheel_args, - cwd=source_dir, - spinner=spinner, - ) - except Exception: - spinner.finish("error") - logger.error("Failed building wheel for %s", name) - return None - - names = os.listdir(tempd) - wheel_path = get_legacy_build_wheel_path( - names=names, - temp_dir=tempd, - name=name, - command_args=wheel_args, - command_output=output, - ) - return wheel_path diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/check.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/check.py deleted file mode 100644 index fb3ac8b..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/check.py +++ /dev/null @@ -1,149 +0,0 @@ -"""Validation of dependencies of packages -""" - -import logging -from typing import Callable, Dict, List, NamedTuple, Optional, Set, Tuple - -from pip._vendor.packaging.requirements import Requirement -from pip._vendor.packaging.utils import NormalizedName, canonicalize_name - -from pip._internal.distributions import make_distribution_for_install_requirement -from pip._internal.metadata import get_default_environment -from pip._internal.metadata.base import DistributionVersion -from pip._internal.req.req_install import InstallRequirement - -logger = logging.getLogger(__name__) - - -class PackageDetails(NamedTuple): - version: DistributionVersion - dependencies: List[Requirement] - - -# Shorthands -PackageSet = Dict[NormalizedName, PackageDetails] -Missing = Tuple[NormalizedName, Requirement] -Conflicting = Tuple[NormalizedName, DistributionVersion, Requirement] - -MissingDict = Dict[NormalizedName, List[Missing]] -ConflictingDict = Dict[NormalizedName, List[Conflicting]] -CheckResult = Tuple[MissingDict, ConflictingDict] -ConflictDetails = Tuple[PackageSet, CheckResult] - - -def create_package_set_from_installed() -> Tuple[PackageSet, bool]: - """Converts a list of distributions into a PackageSet.""" - package_set = {} - problems = False - env = get_default_environment() - for dist in env.iter_installed_distributions(local_only=False, skip=()): - name = dist.canonical_name - try: - dependencies = list(dist.iter_dependencies()) - package_set[name] = PackageDetails(dist.version, dependencies) - except (OSError, ValueError) as e: - # Don't crash on unreadable or broken metadata. - logger.warning("Error parsing requirements for %s: %s", name, e) - problems = True - return package_set, problems - - -def check_package_set( - package_set: PackageSet, should_ignore: Optional[Callable[[str], bool]] = None -) -> CheckResult: - """Check if a package set is consistent - - If should_ignore is passed, it should be a callable that takes a - package name and returns a boolean. - """ - - missing = {} - conflicting = {} - - for package_name, package_detail in package_set.items(): - # Info about dependencies of package_name - missing_deps: Set[Missing] = set() - conflicting_deps: Set[Conflicting] = set() - - if should_ignore and should_ignore(package_name): - continue - - for req in package_detail.dependencies: - name = canonicalize_name(req.name) - - # Check if it's missing - if name not in package_set: - missed = True - if req.marker is not None: - missed = req.marker.evaluate() - if missed: - missing_deps.add((name, req)) - continue - - # Check if there's a conflict - version = package_set[name].version - if not req.specifier.contains(version, prereleases=True): - conflicting_deps.add((name, version, req)) - - if missing_deps: - missing[package_name] = sorted(missing_deps, key=str) - if conflicting_deps: - conflicting[package_name] = sorted(conflicting_deps, key=str) - - return missing, conflicting - - -def check_install_conflicts(to_install: List[InstallRequirement]) -> ConflictDetails: - """For checking if the dependency graph would be consistent after \ - installing given requirements - """ - # Start from the current state - package_set, _ = create_package_set_from_installed() - # Install packages - would_be_installed = _simulate_installation_of(to_install, package_set) - - # Only warn about directly-dependent packages; create a whitelist of them - whitelist = _create_whitelist(would_be_installed, package_set) - - return ( - package_set, - check_package_set( - package_set, should_ignore=lambda name: name not in whitelist - ), - ) - - -def _simulate_installation_of( - to_install: List[InstallRequirement], package_set: PackageSet -) -> Set[NormalizedName]: - """Computes the version of packages after installing to_install.""" - # Keep track of packages that were installed - installed = set() - - # Modify it as installing requirement_set would (assuming no errors) - for inst_req in to_install: - abstract_dist = make_distribution_for_install_requirement(inst_req) - dist = abstract_dist.get_metadata_distribution() - name = dist.canonical_name - package_set[name] = PackageDetails(dist.version, list(dist.iter_dependencies())) - - installed.add(name) - - return installed - - -def _create_whitelist( - would_be_installed: Set[NormalizedName], package_set: PackageSet -) -> Set[NormalizedName]: - packages_affected = set(would_be_installed) - - for package_name in package_set: - if package_name in packages_affected: - continue - - for req in package_set[package_name].dependencies: - if canonicalize_name(req.name) in packages_affected: - packages_affected.add(package_name) - break - - return packages_affected diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/freeze.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/freeze.py deleted file mode 100644 index 4565540..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/freeze.py +++ /dev/null @@ -1,254 +0,0 @@ -import collections -import logging -import os -from typing import Container, Dict, Iterable, Iterator, List, NamedTuple, Optional, Set - -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.packaging.version import Version - -from pip._internal.exceptions import BadCommand, InstallationError -from pip._internal.metadata import BaseDistribution, get_environment -from pip._internal.req.constructors import ( - install_req_from_editable, - install_req_from_line, -) -from pip._internal.req.req_file import COMMENT_RE -from pip._internal.utils.direct_url_helpers import direct_url_as_pep440_direct_reference - -logger = logging.getLogger(__name__) - - -class _EditableInfo(NamedTuple): - requirement: str - comments: List[str] - - -def freeze( - requirement: Optional[List[str]] = None, - local_only: bool = False, - user_only: bool = False, - paths: Optional[List[str]] = None, - isolated: bool = False, - exclude_editable: bool = False, - skip: Container[str] = (), -) -> Iterator[str]: - installations: Dict[str, FrozenRequirement] = {} - - dists = get_environment(paths).iter_installed_distributions( - local_only=local_only, - skip=(), - user_only=user_only, - ) - for dist in dists: - req = FrozenRequirement.from_dist(dist) - if exclude_editable and req.editable: - continue - installations[req.canonical_name] = req - - if requirement: - # the options that don't get turned into an InstallRequirement - # should only be emitted once, even if the same option is in multiple - # requirements files, so we need to keep track of what has been emitted - # so that we don't emit it again if it's seen again - emitted_options: Set[str] = set() - # keep track of which files a requirement is in so that we can - # give an accurate warning if a requirement appears multiple times. - req_files: Dict[str, List[str]] = collections.defaultdict(list) - for req_file_path in requirement: - with open(req_file_path) as req_file: - for line in req_file: - if ( - not line.strip() - or line.strip().startswith("#") - or line.startswith( - ( - "-r", - "--requirement", - "-f", - "--find-links", - "-i", - "--index-url", - "--pre", - "--trusted-host", - "--process-dependency-links", - "--extra-index-url", - "--use-feature", - ) - ) - ): - line = line.rstrip() - if line not in emitted_options: - emitted_options.add(line) - yield line - continue - - if line.startswith("-e") or line.startswith("--editable"): - if line.startswith("-e"): - line = line[2:].strip() - else: - line = line[len("--editable") :].strip().lstrip("=") - line_req = install_req_from_editable( - line, - isolated=isolated, - ) - else: - line_req = install_req_from_line( - COMMENT_RE.sub("", line).strip(), - isolated=isolated, - ) - - if not line_req.name: - logger.info( - "Skipping line in requirement file [%s] because " - "it's not clear what it would install: %s", - req_file_path, - line.strip(), - ) - logger.info( - " (add #egg=PackageName to the URL to avoid" - " this warning)" - ) - else: - line_req_canonical_name = canonicalize_name(line_req.name) - if line_req_canonical_name not in installations: - # either it's not installed, or it is installed - # but has been processed already - if not req_files[line_req.name]: - logger.warning( - "Requirement file [%s] contains %s, but " - "package %r is not installed", - req_file_path, - COMMENT_RE.sub("", line).strip(), - line_req.name, - ) - else: - req_files[line_req.name].append(req_file_path) - else: - yield str(installations[line_req_canonical_name]).rstrip() - del installations[line_req_canonical_name] - req_files[line_req.name].append(req_file_path) - - # Warn about requirements that were included multiple times (in a - # single requirements file or in different requirements files). - for name, files in req_files.items(): - if len(files) > 1: - logger.warning( - "Requirement %s included multiple times [%s]", - name, - ", ".join(sorted(set(files))), - ) - - yield ("## The following requirements were added by pip freeze:") - for installation in sorted(installations.values(), key=lambda x: x.name.lower()): - if installation.canonical_name not in skip: - yield str(installation).rstrip() - - -def _format_as_name_version(dist: BaseDistribution) -> str: - if isinstance(dist.version, Version): - return f"{dist.raw_name}=={dist.version}" - return f"{dist.raw_name}==={dist.version}" - - -def _get_editable_info(dist: BaseDistribution) -> _EditableInfo: - """ - Compute and return values (req, comments) for use in - FrozenRequirement.from_dist(). - """ - editable_project_location = dist.editable_project_location - assert editable_project_location - location = os.path.normcase(os.path.abspath(editable_project_location)) - - from pip._internal.vcs import RemoteNotFoundError, RemoteNotValidError, vcs - - vcs_backend = vcs.get_backend_for_dir(location) - - if vcs_backend is None: - display = _format_as_name_version(dist) - logger.debug( - 'No VCS found for editable requirement "%s" in: %r', - display, - location, - ) - return _EditableInfo( - requirement=location, - comments=[f"# Editable install with no version control ({display})"], - ) - - vcs_name = type(vcs_backend).__name__ - - try: - req = vcs_backend.get_src_requirement(location, dist.raw_name) - except RemoteNotFoundError: - display = _format_as_name_version(dist) - return _EditableInfo( - requirement=location, - comments=[f"# Editable {vcs_name} install with no remote ({display})"], - ) - except RemoteNotValidError as ex: - display = _format_as_name_version(dist) - return _EditableInfo( - requirement=location, - comments=[ - f"# Editable {vcs_name} install ({display}) with either a deleted " - f"local remote or invalid URI:", - f"# '{ex.url}'", - ], - ) - except BadCommand: - logger.warning( - "cannot determine version of editable source in %s " - "(%s command not found in path)", - location, - vcs_backend.name, - ) - return _EditableInfo(requirement=location, comments=[]) - except InstallationError as exc: - logger.warning("Error when trying to get requirement for VCS system %s", exc) - else: - return _EditableInfo(requirement=req, comments=[]) - - logger.warning("Could not determine repository location of %s", location) - - return _EditableInfo( - requirement=location, - comments=["## !! Could not determine repository location"], - ) - - -class FrozenRequirement: - def __init__( - self, - name: str, - req: str, - editable: bool, - comments: Iterable[str] = (), - ) -> None: - self.name = name - self.canonical_name = canonicalize_name(name) - self.req = req - self.editable = editable - self.comments = comments - - @classmethod - def from_dist(cls, dist: BaseDistribution) -> "FrozenRequirement": - editable = dist.editable - if editable: - req, comments = _get_editable_info(dist) - else: - comments = [] - direct_url = dist.direct_url - if direct_url: - # if PEP 610 metadata is present, use it - req = direct_url_as_pep440_direct_reference(direct_url, dist.raw_name) - else: - # name==version requirement - req = _format_as_name_version(dist) - - return cls(dist.raw_name, req, editable, comments=comments) - - def __str__(self) -> str: - req = self.req - if self.editable: - req = f"-e {req}" - return "\n".join(list(self.comments) + [str(req)]) + "\n" diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__init__.py deleted file mode 100644 index 24d6a5d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -"""For modules related to installing packages. -""" diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 34e3f7dc40f5b04b2cd379580b4130345e8cedf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmYjMJ5EC}5cEq!6e)Lb`y_ZFh5Ga>#&zl?uBEDN}J85)1tP1z5L15xcxU OOfP;4Tpmk)RGKd*U{YBC diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-39.pyc deleted file mode 100644 index b0290da8be186c37658b3b2cf8e7a91d695f5cfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1449 zcmZux&yO256!!ecWHQ-ovP%V8TEQFuDH5Hb;)H~t0&zfE3Ze(ZaBwGMZ!)dNp4y(Y zSq-P8HnZSyr2rl3JGwM$?)rT{2ecTJW@$qM}N@pVk@8(g%v_uFcv_O6Zz0(LTtMKjB&E z-aIhjajmq8zi#ahOJ?Hx^l?XdMdzNGeb&{Ce8JbX6uhBa!(LKz0yE6S5>~gG@)5=E zd@Tf1cy|LXE74Fh=@i8< zBv!SiCgi2vbT{I5gWFQCOk67gFQ>$e7B*r``Pv+Hye+Folwc(~Sy4=CNh>Yn#zYbl zB6;N`U=smt3}Xc2a~P@z(C7t_-49;+9@2gv^sg zJ8XOG^%La2b(&h3Svat82w+01qTi4_g2g{)xz$6ysMYF8`H)hbYpQh4>4^pb$~7oN zKjnBQv^-mb2y#|0@^+(Ff`6EOlv@Se-epteZQbU$=9)^-eJ)xmUGb=VC(!)7wlH(G z25B<0bMcV{FS1WBIy`B~ThjUqJo4M>@K$z?;@5{umV7G5U!IEA<{g=*Qj-f6sH>Pr?XN KW&5=h{`DWWua+JF diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-39.pyc deleted file mode 100644 index ce3183566fd717dbd203ed7c2ed59ded6a0e2872..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3509 zcmb7G&2JmW6`xrym&+AJQW7Q0v7)d=YJh=FI!&82t?L@D?V^R?0Cs?&1d7dyGo)7D zFV74ui(LjqWT3ei%C)FlP{;fiMgN2z=h{!CnV1WDhUrC2)ErMuX-^YP}*%=`Gg z7p$&&1fJjhxpR1{NyuNZv;4pqxecGJQ9>B$6GoX8(LObQt8c--6qRDTZ&RGJqjK!@ zow(Ak#BSd;W96tCdwtKeooFSl^+6c$R-)Co-mjas8#Ur)ziHalXf0mvubZ|PZN#m9 z%d}Ub&3LQ7W!kmqQoP;Yri9bkW&YY3?O*vBVXLhEoUl6IIVtsD=MLY!OnAl6U1qVy zOPe*>+H<@A#(d6Q;wbnE+U9Lu=et06xd$J#*!s%`+h8qN{ViraBAw02yL)^T4367j zB2^GYfeO>4or!e7rM%V-yS&@}SaLPay4iy1J==%+jqwXY-@q55fpe^#E?~`hF6`-1oKT z`*F&~5w>f-|709Q#mpB(tb;^D{ypg(q%rU9hw|VkIOJUQ6ql-(@S%c>iKlRS^(^t{ z=IC{w^5khR3io^2u{ubTce?NQWT^P{EEqh7TghG)W(gNaA)9={21`0_9^P@1~Qrl=&-4OhV&$t|j(AZTw0z5(_gAyz~e`?Th z;lnZcFCYqDMqgULB|``|R(f8WmU42J{Oan|R`k%Cm2&%xPRn_DW;1As?YxwiPw3R4 z z0#d6dGHOzn(NqE>U~1V#*3J$D#zOg+`eJytofPT!oan3);J?Y}f@L9>?LhFh9A{Z76ldMZ#$u=I<~m*VOlf+gsn=Q4C8>nC z3<@YTSb^;^AhioBk_Zvn8Kxo*l&AocE(3d*p`w8i7V}IyL5BL&6~QAkuC^s?EHL$G z`!Ed?Z9~8%x@>gYsfiZuW~{P>tsTRNaiyz^%j+5_5$rHb5!G~Mj!(Lp@S}MQx_B9L z)&^d1ZYpyEIxGx+1?3y7U;BRyi|UZqfRJ*_acPZu)TK_z`r5LsFYU5x+0e)F8hy>Q z>d+G31O84!o5MiH@Kb{cQrAaOx*sh1=H}W)fYS~*&MMY z9|GO^gQM90DSUDW!I)PL$+WIaCGdiNPEWr(ZA|{8ti#gG&Krj%Rsv9Hs&ek;G$(m8 zw{knLBT(g4fDHS^%5+URtektlCx5U2yw+9agq+@{Bwsn*0lJ>A+(!UV$y+v2E5~0^GToqLvaV|R#;4Xt08k7@ zKG{gT;(vqOKoD%6(9@l1D{sx}XJpm@P~BXXnXJD}KBw~9@@X!Z-&>wn&3qFywTd9g zssM@J1I!tiSRnJ-j{zel>+@*6J_i{H){ZCM1;dE%1Hq(Y64AN$7m@S>obnEMz`%(h zV#Is6;C&peCu!kZgESe2Bk@BRoV@-JiU35A1-#6+Z9}xT0jEoYm;pIrlkJCQ!!~Z% z{*E+YHcZC}yZ<5JN2S-4!I507VsucK9=>f~0n!Y#DK(%Z%@jN4k3N z*?^m1G09fEg}k>~yuG=sxt#bBc5fp2F_K$IeuCsS z5)%P;p`~2~rH;`S`n|5rRbUDwu!|{^H09zQTxL*fQKA&6Qkk#79VCh*YmQZ?7Hz_J z;rmagZc+DZyM$cues!k|Fk)?4b!(^M(LD=*#2J>5m!(_H|Bz?7%AU!CRWR*(hMUwL&J$~F#r z7I-AEqS4>rC=PXgSYz>TY*BE;AyiBzJ-qqq7RB^Z$^v*?0 z3nQb4>gtHAJ>!0&0e$fcBzs5@|HKw#eWOar82_3S=6z&uyT?2f!L)Y dDYU?bue_F5YL*@9puNAWUBy=MUf?1B_z%zxx+eet diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-39.pyc deleted file mode 100644 index f92a4153f3a6f873e49f58946704d78864fd0f8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20973 zcmbt+3vgW5dER~P6ANGof*|+;jf(`p^G9Tj=dgYxw*5Z;s9n-qf`J%!ls39y~mQkM}K8 z(;O|QIl5z%^qel=M$V9LGiS=Tm9ykKmW#=EJQtVmL@p`csa#6F)48;K_vCuyJCn=c z+bs2#`*M9c`>;y=+j85=+jHB?J90b9J99hB59J;z+c~?uE4Qn>JGZ;MC%31(H@CO^aPDD&lPK*g z@6YWokK{(=IawMlAIKe$e5&+F`C#s#OJy(7{_q?vT zo8Q;fKgP-pVr4GpF6-K}nzP9nx}!Nm?&T#jcg2mjCfyg7_1snWA!oDu;*ycO=I(K? zxi7kV-Rtg)v&I%}*4(1yrktxNyN-7+hNaGy4@_sPv+YhS_Y%ss;WNzI&h`%sXNR-% zj+J{EWv@67;n{X};rUZ;7SFr!yvNy#=U3gMfX9~7&q_|4|Ip!P(to+J&!?w<2=;v|g3B3CZ z*7=0Om(tQR0w)+Ie^9tHL`$5XN=v>11XI*pt25RhZxC74t*7MHgJJyn(n{%*> z(iVHMs`VALo^)P7>!M>^*G8x6&t6}s)vC(3XRFFCRy@B@Ditd?>_Ww{rx%JPhY$Xo zYwx~2=enic_H?mQP>Xi0FmtnT!)3E_!5>e5L}D>Hss|euRLLvMy7}qjN8QRy)p1dn zxZ-*qs*jpMY-X-dtOPx?#ggx;*+R*4g9N$-nA&JIFfP3i^iI8c^?d&9#q(#Mzcl%5 zV4kil2FWwhFWx54Vu*$5k{ej(iZgzYyaYJ%9OnG03araT&kqul?(M0?nj0ivsQJZe zrBDiz*WEW4Ff2DPue*K_n_8#=Q0%1&UI*4p!ShFrAdxH9E)-GD%%#d~6*K6$KBI~? z|4QMetMHh;;re;^Ev{VNt@vt@GoL9`s+HnQp;WB9`AVV8nQyohu4#b-IImQdtv9oE zxiDW<`Es#>^p>kUyvOon&lEiO97eB-(+g}9^m8cQqUXEiSGWbi5L?S`<<<|xwR6?My;TKrcm=2lEM6LE5c&c*Yo1keVxa zb77NIt)ToOM~+6lGYd));zGIL-3&Gsz5MN>KUb`<6~7jbDmM>yO@_@Kfj-~BE_nsRr4<3_ORn@P~R7*3& z&+b34v5=u1MaI>@$h4gC5?GFFI>t%OweW4?JBDxTq~^q&_y@X^aFRH#aVLhulL{=s zlJqrqrmCE)1%EE+_tZ=tGsAPf#)6dNdVZKq0P`z1Txaq_J%}q8i&>e`yN1L(KWFjr zEF_M0UHed<{18cCd2VS|J%Lh5K3<%dtCrn~>7qAxyD;y%{)CT?CMxc%pZ8n^gv$GG zRq{1eox#zY7{BFKZcUVm(-XBtf38}2bo_}44+}UJonvpJR;*3rixr$DoRf)a4QGm* z=uJdKVL~u&ytas;6mGfaIYW4j`zy!Vr)^xR6Qcty~xH4IFl4XaHJcEyyM3UB%{5Paj9YF~QP*%eM zvchGbE>&l4dN_#cF}$3Sks`yt7(QHHS?A-(_*z42=u5_HM$>3QfbsQ)(K42`CA|e) zSk_yXV=n8PwWigu{8+KoXFgLcWS-0{=rsWW&v z8dKZ^b%7Q2Ie?H()g=~o5JlFG=*GTZz$-6~L^JyI?Yf#o4hP@j84K5GEk1VEDTAsF z5&9hS15;*yHJbfRckwpx-7csb3uPR3&-SY}5DzF+TD0+1u?zOu>o40p+G!hq#fq?$ z8%1EH&CbWAIM6uzkB^#)Lk$uY_cpi@2)HaTmQW@(s>|!OlkA=GZsm*B{LR}K ziT5%9ga~S>Ddayi!sQZl=$sF?AD>UOl776ES_TB56A)%IVWwM2CoX7Y07?&_ zSlw+a*~6OmxkI1;{C^c6={JFX_e#H+2Kv*1sI5%HV(z}yztP>=Ns>g>U%VDlaC^_L z@Z{Shz<8PoG#7F@eHEBj^NE_ilCxT0M$)U=$zHpIybvd(*U1+juR zQ!EC??dhq}-oU7OvgAR$=yB@_vsnrM|4%hJDi$i+4T!f0aLgSrHEdglQW2ihSrj^vuw2V zWgyH=p&yg={%h5$KX%C*y9!PU%Al^Ia$xz`0Q6vD>Orhjy-krr&EwVDac>I600k)I zgtZXLo2VJlW>rC+M_eR@`v%HEb_RMG4@Ir1;{)t(Y0KIwkbjm?Kg+Q8+fc3u3nlr3Gx4$WfN6VsNU)gtH5JMCb~etX-6T%181(gt&kPUKWX_TlnWL_Q^-x zMi~|-5e@GCjqF7Q(gqVB@AKH!2H20Ib^>Xd1pbZ?$4PqfJxtamia; zuPs_D5uVvMhakh7cW}1nldY6vIWeF_8c#jT`Z+M1ceJ}&DUPU21yR3OX!S<;)aM$G$wW4fU=b9lbDbDuBe?+_ zdVRR5M_dN`+A@&`MgJ+|P4ExFW)QMhQ8y%?NoWXVs3xv@9%Z1EZtX)OFvbrBdT}l8 zr%#rk63kS~wNvk-vWSs!!?;&J7ELc-n1=A)K7n~GR=!%vbFs!xLS%wEb_$s`jKJa> zp-QV}#q+>fZDb$&kQ6zqoxnLACn4mYnAu(JmacdLj4yW0&0LwAT0~oL`v$&(G(>mm z3Q!HyTPT3k+spBB-&p8{lcg{iq)$4~{bZg$i)RsP;znH0e)7Z3v;*ZM((HOB+->`_ zO}pqRDe7w@0Ln1FkBx)&NB8hoj|q0w$ETnivwo=Oxele9{hw{_w{OoCXXXH>8zaZ- z?paX8BIGT*;D~aKwvd+uU90LK(QmQ30Qt$CMIF5HprC_ic@UWZD?;LfkSJYyY^+ip zW64-J$T999rS|c9pVaPXS@jLTRJ3Rp6kTuCh7wJM$Z;`uBEfbJQS4A4_zn#$U;r;e zD0$Nm!+|M_^RfQ9$#7FXizaJvF?I5WTY-+OPW?KevI|SEAN^qvu??VJoP1&G{0WDm9>>C(=cUEIfYx3IYcStfhbNkr&|!^D3$~B?$V$ zPCL(`aF+MoxBQ^D1jC3l%FmYlpsx)q@54ak1{>r{&M8(tj}Agq_-mY)9M@fc;ihxQ z9_4f`1}1G%zsul1YsQViPvY_IdfJG85|?)t#4*0j8kWBOo@J4#Tlb86@q}^Du=?}? zBWou0!Fx%xWl7ppzX-Tw^dNnzdfU67(etPi|Igy%4IuGFUb};HKqk9H#$y)#2C7Zc z;6)2hmkL9ec6HV+*f77maP6E(&f{re5tq27qzP^T)BrVwNda%6qGOZshG*PYtyLDAH`NNI<-K@y44%M;l# zRo}{ui1CKN-Ez$b_m>wT_gzKRDB6-udHn1~0;;z4HIqyVVlCJbG=FOIW<=S*rPbr8 z25I{YzpRik^>iC_Vq)ro5rnpd)oO&gi$?zepEj-A2mTsii<6IVuZzvLsT;cc>9E(o zg|9V0gN^F|`4&47MSfFKH}0ul#xoS$zs=_N3HiiregwCL1WKDa zBxG~Bt$9OoXqP}<4eMDn(JUKH489d(%lSC;Z#?@62m1L^s8B^*X+kVQqscBhofZo0 zD2!5-F$kJAOPrLV_@e4ehLDU#W`e)Vg8P;P3xVb6LWe&@wMe%}S_Aq3$Ph_TR#(4D zVDTVREjf7_CU_2lR7Xls$M8N#5d~mq1F?rfJ1wG*>>shV{nv*K_gePvkC1_&9}~6X z{bn2(OaWZKX{o(F%odITG1;K;0Lv10tSwlYW`bsmMxv3xf+ZWthH*<%pYmgVoJzrx z4zVrOOjiy?uwsB!LfhCDtztOwW-2OAp!^QX6H$2@%0>dvQjPR1>|>A(k_}Uop&mck z=xJE!IRkrHPrC=HpXsXq*D)@bNzi7n*(+~*q29zJXusW{l{Hz<3;8$!>99}+We^vI z>zuGpgEH3aSye5AYR=4IXWQhL`$|F+RTj=3y%ShA{#Yj@86TNg)B3@PbdxobLWVTf zhshQMN`dCNC78*fpq{WF_5{BK+0-3076JJqBKl}r{S3ZfjH})N0Sgk5ye7C6n6+w6 zjBbj@M}3hA@g#@~S@%Z!)Zb&-*O(AN)YqB(8j_%|GxHFYOdwRyPweVK$Dkh;v+jb> z8hC{O^x5#VZt4QGVyIq=>szTrxA8U)!2!16XyyMmpm}?dXgyZMru)E-lVH5V`mjEL zTpG^<@=@PJJ+j`&5O63NG0&>eqhlN3X$uWIn-h@_hlql_3 z4TJhA&>f|)$idpS43xcTsyF0)q80ZO^GPSUMT0ipwx7W_?WdNsFKbS!VSHKp1?XPT zFw;&?o88mq0i;aB;Hx#Pr?fZk$~ZDI4(QwJk2~Y|4e1BS8;(Ps`p_%jH!v1~+}{N` z-iWV){B5*I`#nx}K8`*zFgi!01nO_7-xPFxR_vr?ra<@_g%QL#F4SroN%^#)j!4H6;06V zP482fo^ao|{&6B22CS^sOtrSCs9}ZNj%t5MS*Up^YR95s1ewUmh?(Lz??8DFhj33d zggd0Zgk&_Kev2&U8WnCb9?_GlyL zc@l87c+#-;WFXzcU}p^AI}2%l7_JNYe%j@f{^MY~Ry+<#C=SU#X$~3cchG)@K)V0P zRiD8}z_)#Vt_feCgsFT0KaXS4zvm{L*axAh&61E6J|&$L-XU-WM>8Gt!Z&;dPH@+` z0F`SJvf`tFtd1fHl5|gsCML|B(og%3c^(R3<~$G(L$y4p6H-_Tks1z5OmY4hlNVM2 zPUSn0$sX|TNqnvJtbUJ=YgQT_xnia0=kqRCmgY>&jO+Zb53QQSc)OxHjykJQ94%M$ zBMKx9Z5}5WDach@YBtrs!Za@nZL?o6fh&3(HR_5V7fhAV_HyZ7)w9vkH5%$^?-;0lDd(-mM ztsd-zMKKCK76`AFcz47@<9GX5?tA-%?zcWXHcPtts^3fK92fU=)RjoKT*~_8;^72#!(AiB2dGex4_j zNDs7MeNt6`ituN|!eied1tP^kr;r`_uc)(j^|?;(a{h8IaVFFFuWwu#?q6^yJ0so7 zk;kG4R>P=$pZ*itVh}Uj2$q8}Fqvq#pOCoH-^$P`51h??G*1vM80{Oh?w1p-S zylinUouKJ=%s$2r#TmEH&f0UnU-M2(!0XDmDU1`56b!@|uc{jp zlue4WZ4=~#z#j{pR}*_+=p6&Yj!e9s*jdCgA?F%$5$(MUtb(D~RpG(=S8X5v24*}jpAS*+B#Nc-&$myX2JEv;|A#-JE({lg*B)DOdDFz8}&2emP+lu zgdzP8R*_ymLhk3-EB7O*D?UR-=v}o8_bUpl&E1lNNeTeHlnyXhsl}kMuc5mzFt5rMNw=Y$$54OF7cp7*H77LKkyizHcp@E05TVPv_!Z8B z@{>jdNLPP?+@<`o`5m92YS9g_J z7qxd{zO|&iqeG!hJ4b1EfzgUQ%X(XXJN7p09m2bMn>~1!0QWM&I5SvJ;y%n=P6}9& zfa{kkYUUlyM|g>!@?$r2CnI6Ay%E;*IsJDs&0f4uuX>;5dq6Op4bA{+^mY27GuCSM z`#nA^HBgfERxef1X4da(WExrIHu(LG{>BEG<3Mv`qqm{ojiY?f&o%}d1ITUaKx3G( z)f_^Lp~gmOvAH?i=))SBsJ8_zwlp>)w-s*bO^vP6cEI0w7cOdlkY^bs+x$(9ZL}D@ zW4vQI8LY=<(0t=<3!@))wqW$z1kmaa!e-f~#wMuRc5`QAXKOQ= zB5YDS=ZEpxg3s0^Q`g?t-~5Wd&5z^cZT%qJ3&YvwY)3B-$=Y)-B(S+@H>~#!_3Qrj zCGEYhG)>_!MQf}r0un|m62&~~t4 zH+F+w?e%xh?`iFA>|NI1H@u4yV$|d8ZtQJ6%s2DkBY4?272bbOD= z)3`rz7s6|EzkkR->^wYwEbN9LBhUoMNIGO-7A98 zKiwFUapII=WR@CfL-n5l)CoYH0MxzBLybeNQwT>my{xs)IB2sje9IfW5B`L}PXM-R z!*<32`>=nuaoCwaco!}=+&5Cod*ePxhXvBM);Z@8*8T`~=6vfy<4EgS?kLvhQU7A& z(Yvv`dLw-|?i_wM);!wj@eq1EhS?mOMR<>Y$vLv5|4scT_4me`#{uOz7@!_)9H;52 z`B>wz*7N@5#?hq*&GEb4BNO@hSm9kT=S!hg$VQ|E zLU0}))-F4(n4zNj9g2P;j39&xLg8JcA9)8)5iMaIt7LcMknW$b8AnY`$%EuZP5}2e z{AEy1!;to%a^t_9cUm~O1vx$T~T8IyFkOIiY9}U6i zup4lP9i6aWnRBrg;^&`UL^y85r&gwAUllP?Jc^+ot-U~uide(QR>8xJXKrGp3;wDY zmemW!5sC-0&{+k9Y=+S@;gCi6@$8on>@61sTnA%zOD8%LJizS^EsY@?MNqdr2g9`Z z?iMPPc(GvNrioX+h-(35aOfgDmmM%R*TOB0y&Q(ZcgnlKk28pEjAAbbYdcjpjI9vc zpx~5rB26#AB7?v#H6u#im%+3Vuvc{;Ww#kSnRxq;ViG?a@$smFld*#U(oJaMKxrpo zp;3Dgn+3xqg(x0HF$5X)<5%E?SjPb&zSL;7yFC!%dGN-mnb7vH-a`UI&i9z-IMw%& zNa!nt7>Hq_pM8yQevL^-0t>Q{<-fC~|CSPx2rL#I=!mu$Y1=i!i1-!f}+CJ?w`P!TF&cnle_TH%f^?55f`|X27}pep`Tp zwP(+R2G&&{N=>hX&$j^tJ&3lX-H_1kSLwK;6vbs1_aZ|D0lQ^*w!^q22)r%hE=myF z3*9(W4PcL{Uz-9w3K8_PyHr!$KZP*-Ri1IbLuf|Fqh!OG%OD;>x^PTg=Z9^uZwD~~ zwVjEmW2S<@p(zVVkci?T;CuZuR#@57VS34NsiabsN#=1af_B?N>Dyd9%FG%F; zUw`YVtjY=Eo{2IFv&)^N578F!skj`$?FTZLP+qLJjaiu8oHzvL5FHZthd*|X*01G6;?QEc0!mE$54C-GXQ$O>dC17-R z_YSY!rj;PV2jDQ3J$__8zJW~J-b`zAeJj)@#%}8K@F*@D2rOaDEu#7>`z+0mEnW^| z`5mJbzYBXDFdgb$BSy;eDqQP_5N`;)huYtaqs`-JlU)2l)W&S3{PbPnG|hx#2?Tft z;KH}oLXk108gW{zn@KDx-TFLBJ*c0&Yw|4dnEnH<)$~gY$%EVlmQ2*PeyVTHtE#FNuIq^`^VLfv7;Y< zsdBSYy^TPoQ1n8Tj^rdAHti9}Nh?$qK|_Cu?lD|%VY)47AdE2@kO&q9hDV8=PNY3{ zIr7=&=xC zSnS~%sFtB`h3OvL!L+__S$zh01ZkP@i{$sLSRah~KZvfa1-|yc2whuS2}gAg7pR-K z$$8y`q2Z;FVX`^U9x2DoZ7pO#A(>kXFzod^oS0bF%mHKT)&~>1^_#EaMF1r%O=OuN zJcP0g{rL`~^Ks8y1Z5aUr6Brs8>wUtyxG`24&uNtbfPF+ zs{Y7>NYpy*R*jrSPttlBIahdPaDy!C@&t1ZA|c446Va?l z0K%Y^&78s=KE8zn`y#XZ85VGgnC^MxgBb5}Mq$?-;u~zjm?Oob3ukw8w!)QwarLnu zFyH&zsy{?;tENpr6d;7~){&uWgA<-NTCnVb{DR%^Di(r1@TA5Yh6DQuFE2FB%E`_< zIsl)OcUJVy?!1fP-R!D%2qzJNU%RE%-lE`tiynaZWZfFa^`Vcx$FT2oWQd3TzW8S> zu#hXjB2J;Bi_ZKcAInT+MJ*-XA1-TTvlOj`)D)}zTPVhLAGixvFS8h=#SxIdtr#<` zj&Yd>QJp?qiYc9cNQ6Id+3$xHx_Jq!{YPvg|9=!8?;;Xk^AW`#UWQ!44Heu6;@uV8 zbfH!ReuLX_c#3mNyhFGXq_+~>5bq@O5>}awyqx)p{znwoR$?WiQ@T+gaFjh>yJlw>crxKNra}4#hH-r-4?Do2N55v6-qR3 zv4P>jCPI%+s#xX)a|8wkmNrsPAvD z-&%!mO&eU=y8)5foq}T~20lH57#z5>5c^Id6jI5n%>64SJFpDJzfZ~$g@ne#OPHaA z$u(;K@laF7rf)&wy{V(oDAmx#AT`8;O}v3g41}-C^M0_~?8H#V24cSM0tZEFK%R#9 z(8u1^93Dm|f?)jB0cihn@+9Ch8Yk}6p~i2b8dTYh?MRpC61v=qT{(|^ok$qLs4s9) zMO#2<%3feoecywYc6Gxbb!qbY)alEY&tDUIiAb8XdJ#hiQrFJE_|p07Q|He~gg_7v zLlPk&2#O!$Y`)Hf$R6mo>xoM*d>Rh@*GKgWqgT`fUsd=j5nTjC27$S}S19LAcJ2&o zon^9_Ne`2~Ovo0+6%!;$m3Rk8krpVr+5!`yXNpu=*-Rc{vW>}YCV#+0yuPFyU2bI_ zHnkr~cmn}iv={W@s>RG)`?>(0aX@jOD~goFEzrmahFG>B6Xip<`U#G zgFVC?cY5JQkc0*SQES0ff67;6aELxERi~#BkD0txP({STc|nptJ0M&9JFH>Jd?{{( zV&Iop*emi*89zf%MEJb=*L?enO#UI0M_2`eg^2u?9MZlhUoKSeTNf&HZlzgONSnjl z7n$s0%LHPp<~`gH`3#Fb%_8`o3Qlq7blrYthL5EzOg>Jh#oQSV}| zf=VLn_N^v#UqwCdchOAS(uZ&%1o6ZXlBZjycF(}K@yTE+YYrh+IP*z1!*pO*)*Jxm z?K2SUVq{^-vhF2evBba07V%FkD`O00Sfu72N-KQ15ek1?~BLNIMipkD0hMegSGThQipB@pkAf7#cNKAzp#S zA3#9K9L62!uA(v;N|xO2@JiMOP6oJ*$nJ=2{S$IDj$XqmaD5QYaFa6+z3g4IgmBe5 z1SMP$VTuHUKN?Rc6_Me1H6%2jGmht7F&28cv_QF;O&T7#yxsCk&Yh)wl82H>My2`SV7^DT!at@{?aQE z==HS=-Wv(7q2To|x!A)PhlXf73ZZNMzpE--dR?7El~DvySW{CB292qG>2E*#z>? znris{e?lJzqfRCMG}y9U6LGAB(&-`AJWSxY z`Q%@gJ2GK#&^P!-WK&A1fr(iM{g>KTPVnn7*Q&R}t20xqNqQnb#32H2D1?e+_RDSWHIgee}(On^!$&=Us{F>1zRM0$**J7~w zI{&n}4eA#M`1>LFmvk`3UlGaTe#~$@1Fn=YvMF+$A#;0TIFTL9S|dHfmw16avo&iC z_mRUfL>v6@ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/editable_legacy.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/editable_legacy.py deleted file mode 100644 index 5bd72ca..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/editable_legacy.py +++ /dev/null @@ -1,46 +0,0 @@ -"""Legacy editable installation process, i.e. `setup.py develop`. -""" -import logging -from typing import List, Optional, Sequence - -from pip._internal.build_env import BuildEnvironment -from pip._internal.utils.logging import indent_log -from pip._internal.utils.setuptools_build import make_setuptools_develop_args -from pip._internal.utils.subprocess import call_subprocess - -logger = logging.getLogger(__name__) - - -def install_editable( - install_options: List[str], - global_options: Sequence[str], - prefix: Optional[str], - home: Optional[str], - use_user_site: bool, - name: str, - setup_py_path: str, - isolated: bool, - build_env: BuildEnvironment, - unpacked_source_directory: str, -) -> None: - """Install a package in editable mode. Most arguments are pass-through - to setuptools. - """ - logger.info("Running setup.py develop for %s", name) - - args = make_setuptools_develop_args( - setup_py_path, - global_options=global_options, - install_options=install_options, - no_user_config=isolated, - prefix=prefix, - home=home, - use_user_site=use_user_site, - ) - - with indent_log(): - with build_env: - call_subprocess( - args, - cwd=unpacked_source_directory, - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/legacy.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/legacy.py deleted file mode 100644 index 2206c93..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/legacy.py +++ /dev/null @@ -1,125 +0,0 @@ -"""Legacy installation process, i.e. `setup.py install`. -""" - -import logging -import os -from distutils.util import change_root -from typing import List, Optional, Sequence - -from pip._internal.build_env import BuildEnvironment -from pip._internal.exceptions import InstallationError -from pip._internal.models.scheme import Scheme -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import ensure_dir -from pip._internal.utils.setuptools_build import make_setuptools_install_args -from pip._internal.utils.subprocess import runner_with_spinner_message -from pip._internal.utils.temp_dir import TempDirectory - -logger = logging.getLogger(__name__) - - -class LegacyInstallFailure(Exception): - pass - - -def write_installed_files_from_setuptools_record( - record_lines: List[str], - root: Optional[str], - req_description: str, -) -> None: - def prepend_root(path: str) -> str: - if root is None or not os.path.isabs(path): - return path - else: - return change_root(root, path) - - for line in record_lines: - directory = os.path.dirname(line) - if directory.endswith(".egg-info"): - egg_info_dir = prepend_root(directory) - break - else: - message = ( - "{} did not indicate that it installed an " - ".egg-info directory. Only setup.py projects " - "generating .egg-info directories are supported." - ).format(req_description) - raise InstallationError(message) - - new_lines = [] - for line in record_lines: - filename = line.strip() - if os.path.isdir(filename): - filename += os.path.sep - new_lines.append(os.path.relpath(prepend_root(filename), egg_info_dir)) - new_lines.sort() - ensure_dir(egg_info_dir) - inst_files_path = os.path.join(egg_info_dir, "installed-files.txt") - with open(inst_files_path, "w") as f: - f.write("\n".join(new_lines) + "\n") - - -def install( - install_options: List[str], - global_options: Sequence[str], - root: Optional[str], - home: Optional[str], - prefix: Optional[str], - use_user_site: bool, - pycompile: bool, - scheme: Scheme, - setup_py_path: str, - isolated: bool, - req_name: str, - build_env: BuildEnvironment, - unpacked_source_directory: str, - req_description: str, -) -> bool: - - header_dir = scheme.headers - - with TempDirectory(kind="record") as temp_dir: - try: - record_filename = os.path.join(temp_dir.path, "install-record.txt") - install_args = make_setuptools_install_args( - setup_py_path, - global_options=global_options, - install_options=install_options, - record_filename=record_filename, - root=root, - prefix=prefix, - header_dir=header_dir, - home=home, - use_user_site=use_user_site, - no_user_config=isolated, - pycompile=pycompile, - ) - - runner = runner_with_spinner_message( - f"Running setup.py install for {req_name}" - ) - with indent_log(), build_env: - runner( - cmd=install_args, - cwd=unpacked_source_directory, - ) - - if not os.path.exists(record_filename): - logger.debug("Record file %s not found", record_filename) - # Signal to the caller that we didn't install the new package - return False - - except Exception as e: - # Signal to the caller that we didn't install the new package - raise LegacyInstallFailure from e - - # At this point, we have successfully installed the requirement. - - # We intentionally do not use any encoding to read the file because - # setuptools writes the file using distutils.file_util.write_file, - # which does not specify an encoding. - with open(record_filename) as f: - record_lines = f.read().splitlines() - - write_installed_files_from_setuptools_record(record_lines, root, req_description) - return True diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/wheel.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/wheel.py deleted file mode 100644 index e191b13..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/wheel.py +++ /dev/null @@ -1,738 +0,0 @@ -"""Support for installing and building the "wheel" binary package format. -""" - -import collections -import compileall -import contextlib -import csv -import importlib -import logging -import os.path -import re -import shutil -import sys -import warnings -from base64 import urlsafe_b64encode -from email.message import Message -from itertools import chain, filterfalse, starmap -from typing import ( - IO, - TYPE_CHECKING, - Any, - BinaryIO, - Callable, - Dict, - Iterable, - Iterator, - List, - NewType, - Optional, - Sequence, - Set, - Tuple, - Union, - cast, -) -from zipfile import ZipFile, ZipInfo - -from pip._vendor.distlib.scripts import ScriptMaker -from pip._vendor.distlib.util import get_export_entry -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.exceptions import InstallationError -from pip._internal.locations import get_major_minor_version -from pip._internal.metadata import ( - BaseDistribution, - FilesystemWheel, - get_wheel_distribution, -) -from pip._internal.models.direct_url import DIRECT_URL_METADATA_NAME, DirectUrl -from pip._internal.models.scheme import SCHEME_KEYS, Scheme -from pip._internal.utils.filesystem import adjacent_tmp_file, replace -from pip._internal.utils.misc import captured_stdout, ensure_dir, hash_file, partition -from pip._internal.utils.unpacking import ( - current_umask, - is_within_directory, - set_extracted_file_to_default_mode_plus_executable, - zip_item_is_executable, -) -from pip._internal.utils.wheel import parse_wheel - -if TYPE_CHECKING: - from typing import Protocol - - class File(Protocol): - src_record_path: "RecordPath" - dest_path: str - changed: bool - - def save(self) -> None: - pass - - -logger = logging.getLogger(__name__) - -RecordPath = NewType("RecordPath", str) -InstalledCSVRow = Tuple[RecordPath, str, Union[int, str]] - - -def rehash(path: str, blocksize: int = 1 << 20) -> Tuple[str, str]: - """Return (encoded_digest, length) for path using hashlib.sha256()""" - h, length = hash_file(path, blocksize) - digest = "sha256=" + urlsafe_b64encode(h.digest()).decode("latin1").rstrip("=") - return (digest, str(length)) - - -def csv_io_kwargs(mode: str) -> Dict[str, Any]: - """Return keyword arguments to properly open a CSV file - in the given mode. - """ - return {"mode": mode, "newline": "", "encoding": "utf-8"} - - -def fix_script(path: str) -> bool: - """Replace #!python with #!/path/to/python - Return True if file was changed. - """ - # XXX RECORD hashes will need to be updated - assert os.path.isfile(path) - - with open(path, "rb") as script: - firstline = script.readline() - if not firstline.startswith(b"#!python"): - return False - exename = sys.executable.encode(sys.getfilesystemencoding()) - firstline = b"#!" + exename + os.linesep.encode("ascii") - rest = script.read() - with open(path, "wb") as script: - script.write(firstline) - script.write(rest) - return True - - -def wheel_root_is_purelib(metadata: Message) -> bool: - return metadata.get("Root-Is-Purelib", "").lower() == "true" - - -def get_entrypoints(dist: BaseDistribution) -> Tuple[Dict[str, str], Dict[str, str]]: - console_scripts = {} - gui_scripts = {} - for entry_point in dist.iter_entry_points(): - if entry_point.group == "console_scripts": - console_scripts[entry_point.name] = entry_point.value - elif entry_point.group == "gui_scripts": - gui_scripts[entry_point.name] = entry_point.value - return console_scripts, gui_scripts - - -def message_about_scripts_not_on_PATH(scripts: Sequence[str]) -> Optional[str]: - """Determine if any scripts are not on PATH and format a warning. - Returns a warning message if one or more scripts are not on PATH, - otherwise None. - """ - if not scripts: - return None - - # Group scripts by the path they were installed in - grouped_by_dir: Dict[str, Set[str]] = collections.defaultdict(set) - for destfile in scripts: - parent_dir = os.path.dirname(destfile) - script_name = os.path.basename(destfile) - grouped_by_dir[parent_dir].add(script_name) - - # We don't want to warn for directories that are on PATH. - not_warn_dirs = [ - os.path.normcase(i).rstrip(os.sep) - for i in os.environ.get("PATH", "").split(os.pathsep) - ] - # If an executable sits with sys.executable, we don't warn for it. - # This covers the case of venv invocations without activating the venv. - not_warn_dirs.append(os.path.normcase(os.path.dirname(sys.executable))) - warn_for: Dict[str, Set[str]] = { - parent_dir: scripts - for parent_dir, scripts in grouped_by_dir.items() - if os.path.normcase(parent_dir) not in not_warn_dirs - } - if not warn_for: - return None - - # Format a message - msg_lines = [] - for parent_dir, dir_scripts in warn_for.items(): - sorted_scripts: List[str] = sorted(dir_scripts) - if len(sorted_scripts) == 1: - start_text = "script {} is".format(sorted_scripts[0]) - else: - start_text = "scripts {} are".format( - ", ".join(sorted_scripts[:-1]) + " and " + sorted_scripts[-1] - ) - - msg_lines.append( - "The {} installed in '{}' which is not on PATH.".format( - start_text, parent_dir - ) - ) - - last_line_fmt = ( - "Consider adding {} to PATH or, if you prefer " - "to suppress this warning, use --no-warn-script-location." - ) - if len(msg_lines) == 1: - msg_lines.append(last_line_fmt.format("this directory")) - else: - msg_lines.append(last_line_fmt.format("these directories")) - - # Add a note if any directory starts with ~ - warn_for_tilde = any( - i[0] == "~" for i in os.environ.get("PATH", "").split(os.pathsep) if i - ) - if warn_for_tilde: - tilde_warning_msg = ( - "NOTE: The current PATH contains path(s) starting with `~`, " - "which may not be expanded by all applications." - ) - msg_lines.append(tilde_warning_msg) - - # Returns the formatted multiline message - return "\n".join(msg_lines) - - -def _normalized_outrows( - outrows: Iterable[InstalledCSVRow], -) -> List[Tuple[str, str, str]]: - """Normalize the given rows of a RECORD file. - - Items in each row are converted into str. Rows are then sorted to make - the value more predictable for tests. - - Each row is a 3-tuple (path, hash, size) and corresponds to a record of - a RECORD file (see PEP 376 and PEP 427 for details). For the rows - passed to this function, the size can be an integer as an int or string, - or the empty string. - """ - # Normally, there should only be one row per path, in which case the - # second and third elements don't come into play when sorting. - # However, in cases in the wild where a path might happen to occur twice, - # we don't want the sort operation to trigger an error (but still want - # determinism). Since the third element can be an int or string, we - # coerce each element to a string to avoid a TypeError in this case. - # For additional background, see-- - # https://github.com/pypa/pip/issues/5868 - return sorted( - (record_path, hash_, str(size)) for record_path, hash_, size in outrows - ) - - -def _record_to_fs_path(record_path: RecordPath) -> str: - return record_path - - -def _fs_to_record_path(path: str, relative_to: Optional[str] = None) -> RecordPath: - if relative_to is not None: - # On Windows, do not handle relative paths if they belong to different - # logical disks - if ( - os.path.splitdrive(path)[0].lower() - == os.path.splitdrive(relative_to)[0].lower() - ): - path = os.path.relpath(path, relative_to) - path = path.replace(os.path.sep, "/") - return cast("RecordPath", path) - - -def get_csv_rows_for_installed( - old_csv_rows: List[List[str]], - installed: Dict[RecordPath, RecordPath], - changed: Set[RecordPath], - generated: List[str], - lib_dir: str, -) -> List[InstalledCSVRow]: - """ - :param installed: A map from archive RECORD path to installation RECORD - path. - """ - installed_rows: List[InstalledCSVRow] = [] - for row in old_csv_rows: - if len(row) > 3: - logger.warning("RECORD line has more than three elements: %s", row) - old_record_path = cast("RecordPath", row[0]) - new_record_path = installed.pop(old_record_path, old_record_path) - if new_record_path in changed: - digest, length = rehash(_record_to_fs_path(new_record_path)) - else: - digest = row[1] if len(row) > 1 else "" - length = row[2] if len(row) > 2 else "" - installed_rows.append((new_record_path, digest, length)) - for f in generated: - path = _fs_to_record_path(f, lib_dir) - digest, length = rehash(f) - installed_rows.append((path, digest, length)) - for installed_record_path in installed.values(): - installed_rows.append((installed_record_path, "", "")) - return installed_rows - - -def get_console_script_specs(console: Dict[str, str]) -> List[str]: - """ - Given the mapping from entrypoint name to callable, return the relevant - console script specs. - """ - # Don't mutate caller's version - console = console.copy() - - scripts_to_generate = [] - - # Special case pip and setuptools to generate versioned wrappers - # - # The issue is that some projects (specifically, pip and setuptools) use - # code in setup.py to create "versioned" entry points - pip2.7 on Python - # 2.7, pip3.3 on Python 3.3, etc. But these entry points are baked into - # the wheel metadata at build time, and so if the wheel is installed with - # a *different* version of Python the entry points will be wrong. The - # correct fix for this is to enhance the metadata to be able to describe - # such versioned entry points, but that won't happen till Metadata 2.0 is - # available. - # In the meantime, projects using versioned entry points will either have - # incorrect versioned entry points, or they will not be able to distribute - # "universal" wheels (i.e., they will need a wheel per Python version). - # - # Because setuptools and pip are bundled with _ensurepip and virtualenv, - # we need to use universal wheels. So, as a stopgap until Metadata 2.0, we - # override the versioned entry points in the wheel and generate the - # correct ones. This code is purely a short-term measure until Metadata 2.0 - # is available. - # - # To add the level of hack in this section of code, in order to support - # ensurepip this code will look for an ``ENSUREPIP_OPTIONS`` environment - # variable which will control which version scripts get installed. - # - # ENSUREPIP_OPTIONS=altinstall - # - Only pipX.Y and easy_install-X.Y will be generated and installed - # ENSUREPIP_OPTIONS=install - # - pipX.Y, pipX, easy_install-X.Y will be generated and installed. Note - # that this option is technically if ENSUREPIP_OPTIONS is set and is - # not altinstall - # DEFAULT - # - The default behavior is to install pip, pipX, pipX.Y, easy_install - # and easy_install-X.Y. - pip_script = console.pop("pip", None) - if pip_script: - if "ENSUREPIP_OPTIONS" not in os.environ: - scripts_to_generate.append("pip = " + pip_script) - - if os.environ.get("ENSUREPIP_OPTIONS", "") != "altinstall": - scripts_to_generate.append( - "pip{} = {}".format(sys.version_info[0], pip_script) - ) - - scripts_to_generate.append(f"pip{get_major_minor_version()} = {pip_script}") - # Delete any other versioned pip entry points - pip_ep = [k for k in console if re.match(r"pip(\d(\.\d)?)?$", k)] - for k in pip_ep: - del console[k] - easy_install_script = console.pop("easy_install", None) - if easy_install_script: - if "ENSUREPIP_OPTIONS" not in os.environ: - scripts_to_generate.append("easy_install = " + easy_install_script) - - scripts_to_generate.append( - "easy_install-{} = {}".format( - get_major_minor_version(), easy_install_script - ) - ) - # Delete any other versioned easy_install entry points - easy_install_ep = [ - k for k in console if re.match(r"easy_install(-\d\.\d)?$", k) - ] - for k in easy_install_ep: - del console[k] - - # Generate the console entry points specified in the wheel - scripts_to_generate.extend(starmap("{} = {}".format, console.items())) - - return scripts_to_generate - - -class ZipBackedFile: - def __init__( - self, src_record_path: RecordPath, dest_path: str, zip_file: ZipFile - ) -> None: - self.src_record_path = src_record_path - self.dest_path = dest_path - self._zip_file = zip_file - self.changed = False - - def _getinfo(self) -> ZipInfo: - return self._zip_file.getinfo(self.src_record_path) - - def save(self) -> None: - # directory creation is lazy and after file filtering - # to ensure we don't install empty dirs; empty dirs can't be - # uninstalled. - parent_dir = os.path.dirname(self.dest_path) - ensure_dir(parent_dir) - - # When we open the output file below, any existing file is truncated - # before we start writing the new contents. This is fine in most - # cases, but can cause a segfault if pip has loaded a shared - # object (e.g. from pyopenssl through its vendored urllib3) - # Since the shared object is mmap'd an attempt to call a - # symbol in it will then cause a segfault. Unlinking the file - # allows writing of new contents while allowing the process to - # continue to use the old copy. - if os.path.exists(self.dest_path): - os.unlink(self.dest_path) - - zipinfo = self._getinfo() - - with self._zip_file.open(zipinfo) as f: - with open(self.dest_path, "wb") as dest: - shutil.copyfileobj(f, dest) - - if zip_item_is_executable(zipinfo): - set_extracted_file_to_default_mode_plus_executable(self.dest_path) - - -class ScriptFile: - def __init__(self, file: "File") -> None: - self._file = file - self.src_record_path = self._file.src_record_path - self.dest_path = self._file.dest_path - self.changed = False - - def save(self) -> None: - self._file.save() - self.changed = fix_script(self.dest_path) - - -class MissingCallableSuffix(InstallationError): - def __init__(self, entry_point: str) -> None: - super().__init__( - "Invalid script entry point: {} - A callable " - "suffix is required. Cf https://packaging.python.org/" - "specifications/entry-points/#use-for-scripts for more " - "information.".format(entry_point) - ) - - -def _raise_for_invalid_entrypoint(specification: str) -> None: - entry = get_export_entry(specification) - if entry is not None and entry.suffix is None: - raise MissingCallableSuffix(str(entry)) - - -class PipScriptMaker(ScriptMaker): - def make(self, specification: str, options: Dict[str, Any] = None) -> List[str]: - _raise_for_invalid_entrypoint(specification) - return super().make(specification, options) - - -def _install_wheel( - name: str, - wheel_zip: ZipFile, - wheel_path: str, - scheme: Scheme, - pycompile: bool = True, - warn_script_location: bool = True, - direct_url: Optional[DirectUrl] = None, - requested: bool = False, -) -> None: - """Install a wheel. - - :param name: Name of the project to install - :param wheel_zip: open ZipFile for wheel being installed - :param scheme: Distutils scheme dictating the install directories - :param req_description: String used in place of the requirement, for - logging - :param pycompile: Whether to byte-compile installed Python files - :param warn_script_location: Whether to check that scripts are installed - into a directory on PATH - :raises UnsupportedWheel: - * when the directory holds an unpacked wheel with incompatible - Wheel-Version - * when the .dist-info dir does not match the wheel - """ - info_dir, metadata = parse_wheel(wheel_zip, name) - - if wheel_root_is_purelib(metadata): - lib_dir = scheme.purelib - else: - lib_dir = scheme.platlib - - # Record details of the files moved - # installed = files copied from the wheel to the destination - # changed = files changed while installing (scripts #! line typically) - # generated = files newly generated during the install (script wrappers) - installed: Dict[RecordPath, RecordPath] = {} - changed: Set[RecordPath] = set() - generated: List[str] = [] - - def record_installed( - srcfile: RecordPath, destfile: str, modified: bool = False - ) -> None: - """Map archive RECORD paths to installation RECORD paths.""" - newpath = _fs_to_record_path(destfile, lib_dir) - installed[srcfile] = newpath - if modified: - changed.add(_fs_to_record_path(destfile)) - - def is_dir_path(path: RecordPath) -> bool: - return path.endswith("/") - - def assert_no_path_traversal(dest_dir_path: str, target_path: str) -> None: - if not is_within_directory(dest_dir_path, target_path): - message = ( - "The wheel {!r} has a file {!r} trying to install" - " outside the target directory {!r}" - ) - raise InstallationError( - message.format(wheel_path, target_path, dest_dir_path) - ) - - def root_scheme_file_maker( - zip_file: ZipFile, dest: str - ) -> Callable[[RecordPath], "File"]: - def make_root_scheme_file(record_path: RecordPath) -> "File": - normed_path = os.path.normpath(record_path) - dest_path = os.path.join(dest, normed_path) - assert_no_path_traversal(dest, dest_path) - return ZipBackedFile(record_path, dest_path, zip_file) - - return make_root_scheme_file - - def data_scheme_file_maker( - zip_file: ZipFile, scheme: Scheme - ) -> Callable[[RecordPath], "File"]: - scheme_paths = {key: getattr(scheme, key) for key in SCHEME_KEYS} - - def make_data_scheme_file(record_path: RecordPath) -> "File": - normed_path = os.path.normpath(record_path) - try: - _, scheme_key, dest_subpath = normed_path.split(os.path.sep, 2) - except ValueError: - message = ( - "Unexpected file in {}: {!r}. .data directory contents" - " should be named like: '/'." - ).format(wheel_path, record_path) - raise InstallationError(message) - - try: - scheme_path = scheme_paths[scheme_key] - except KeyError: - valid_scheme_keys = ", ".join(sorted(scheme_paths)) - message = ( - "Unknown scheme key used in {}: {} (for file {!r}). .data" - " directory contents should be in subdirectories named" - " with a valid scheme key ({})" - ).format(wheel_path, scheme_key, record_path, valid_scheme_keys) - raise InstallationError(message) - - dest_path = os.path.join(scheme_path, dest_subpath) - assert_no_path_traversal(scheme_path, dest_path) - return ZipBackedFile(record_path, dest_path, zip_file) - - return make_data_scheme_file - - def is_data_scheme_path(path: RecordPath) -> bool: - return path.split("/", 1)[0].endswith(".data") - - paths = cast(List[RecordPath], wheel_zip.namelist()) - file_paths = filterfalse(is_dir_path, paths) - root_scheme_paths, data_scheme_paths = partition(is_data_scheme_path, file_paths) - - make_root_scheme_file = root_scheme_file_maker(wheel_zip, lib_dir) - files: Iterator[File] = map(make_root_scheme_file, root_scheme_paths) - - def is_script_scheme_path(path: RecordPath) -> bool: - parts = path.split("/", 2) - return len(parts) > 2 and parts[0].endswith(".data") and parts[1] == "scripts" - - other_scheme_paths, script_scheme_paths = partition( - is_script_scheme_path, data_scheme_paths - ) - - make_data_scheme_file = data_scheme_file_maker(wheel_zip, scheme) - other_scheme_files = map(make_data_scheme_file, other_scheme_paths) - files = chain(files, other_scheme_files) - - # Get the defined entry points - distribution = get_wheel_distribution( - FilesystemWheel(wheel_path), - canonicalize_name(name), - ) - console, gui = get_entrypoints(distribution) - - def is_entrypoint_wrapper(file: "File") -> bool: - # EP, EP.exe and EP-script.py are scripts generated for - # entry point EP by setuptools - path = file.dest_path - name = os.path.basename(path) - if name.lower().endswith(".exe"): - matchname = name[:-4] - elif name.lower().endswith("-script.py"): - matchname = name[:-10] - elif name.lower().endswith(".pya"): - matchname = name[:-4] - else: - matchname = name - # Ignore setuptools-generated scripts - return matchname in console or matchname in gui - - script_scheme_files: Iterator[File] = map( - make_data_scheme_file, script_scheme_paths - ) - script_scheme_files = filterfalse(is_entrypoint_wrapper, script_scheme_files) - script_scheme_files = map(ScriptFile, script_scheme_files) - files = chain(files, script_scheme_files) - - for file in files: - file.save() - record_installed(file.src_record_path, file.dest_path, file.changed) - - def pyc_source_file_paths() -> Iterator[str]: - # We de-duplicate installation paths, since there can be overlap (e.g. - # file in .data maps to same location as file in wheel root). - # Sorting installation paths makes it easier to reproduce and debug - # issues related to permissions on existing files. - for installed_path in sorted(set(installed.values())): - full_installed_path = os.path.join(lib_dir, installed_path) - if not os.path.isfile(full_installed_path): - continue - if not full_installed_path.endswith(".py"): - continue - yield full_installed_path - - def pyc_output_path(path: str) -> str: - """Return the path the pyc file would have been written to.""" - return importlib.util.cache_from_source(path) - - # Compile all of the pyc files for the installed files - if pycompile: - with captured_stdout() as stdout: - with warnings.catch_warnings(): - warnings.filterwarnings("ignore") - for path in pyc_source_file_paths(): - success = compileall.compile_file(path, force=True, quiet=True) - if success: - pyc_path = pyc_output_path(path) - assert os.path.exists(pyc_path) - pyc_record_path = cast( - "RecordPath", pyc_path.replace(os.path.sep, "/") - ) - record_installed(pyc_record_path, pyc_path) - logger.debug(stdout.getvalue()) - - maker = PipScriptMaker(None, scheme.scripts) - - # Ensure old scripts are overwritten. - # See https://github.com/pypa/pip/issues/1800 - maker.clobber = True - - # Ensure we don't generate any variants for scripts because this is almost - # never what somebody wants. - # See https://bitbucket.org/pypa/distlib/issue/35/ - maker.variants = {""} - - # This is required because otherwise distlib creates scripts that are not - # executable. - # See https://bitbucket.org/pypa/distlib/issue/32/ - maker.set_mode = True - - # Generate the console and GUI entry points specified in the wheel - scripts_to_generate = get_console_script_specs(console) - - gui_scripts_to_generate = list(starmap("{} = {}".format, gui.items())) - - generated_console_scripts = maker.make_multiple(scripts_to_generate) - generated.extend(generated_console_scripts) - - generated.extend(maker.make_multiple(gui_scripts_to_generate, {"gui": True})) - - if warn_script_location: - msg = message_about_scripts_not_on_PATH(generated_console_scripts) - if msg is not None: - logger.warning(msg) - - generated_file_mode = 0o666 & ~current_umask() - - @contextlib.contextmanager - def _generate_file(path: str, **kwargs: Any) -> Iterator[BinaryIO]: - with adjacent_tmp_file(path, **kwargs) as f: - yield f - os.chmod(f.name, generated_file_mode) - replace(f.name, path) - - dest_info_dir = os.path.join(lib_dir, info_dir) - - # Record pip as the installer - installer_path = os.path.join(dest_info_dir, "INSTALLER") - with _generate_file(installer_path) as installer_file: - installer_file.write(b"pip\n") - generated.append(installer_path) - - # Record the PEP 610 direct URL reference - if direct_url is not None: - direct_url_path = os.path.join(dest_info_dir, DIRECT_URL_METADATA_NAME) - with _generate_file(direct_url_path) as direct_url_file: - direct_url_file.write(direct_url.to_json().encode("utf-8")) - generated.append(direct_url_path) - - # Record the REQUESTED file - if requested: - requested_path = os.path.join(dest_info_dir, "REQUESTED") - with open(requested_path, "wb"): - pass - generated.append(requested_path) - - record_text = distribution.read_text("RECORD") - record_rows = list(csv.reader(record_text.splitlines())) - - rows = get_csv_rows_for_installed( - record_rows, - installed=installed, - changed=changed, - generated=generated, - lib_dir=lib_dir, - ) - - # Record details of all files installed - record_path = os.path.join(dest_info_dir, "RECORD") - - with _generate_file(record_path, **csv_io_kwargs("w")) as record_file: - # Explicitly cast to typing.IO[str] as a workaround for the mypy error: - # "writer" has incompatible type "BinaryIO"; expected "_Writer" - writer = csv.writer(cast("IO[str]", record_file)) - writer.writerows(_normalized_outrows(rows)) - - -@contextlib.contextmanager -def req_error_context(req_description: str) -> Iterator[None]: - try: - yield - except InstallationError as e: - message = "For req: {}. {}".format(req_description, e.args[0]) - raise InstallationError(message) from e - - -def install_wheel( - name: str, - wheel_path: str, - scheme: Scheme, - req_description: str, - pycompile: bool = True, - warn_script_location: bool = True, - direct_url: Optional[DirectUrl] = None, - requested: bool = False, -) -> None: - with ZipFile(wheel_path, allowZip64=True) as z: - with req_error_context(req_description): - _install_wheel( - name=name, - wheel_zip=z, - wheel_path=wheel_path, - scheme=scheme, - pycompile=pycompile, - warn_script_location=warn_script_location, - direct_url=direct_url, - requested=requested, - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py b/.venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py deleted file mode 100644 index 34cf9a5..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py +++ /dev/null @@ -1,632 +0,0 @@ -"""Prepares a distribution for installation -""" - -# The following comment should be removed at some point in the future. -# mypy: strict-optional=False - -import logging -import mimetypes -import os -import shutil -from typing import Dict, Iterable, List, Optional - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.distributions import make_distribution_for_install_requirement -from pip._internal.distributions.installed import InstalledDistribution -from pip._internal.exceptions import ( - DirectoryUrlHashUnsupported, - HashMismatch, - HashUnpinned, - InstallationError, - NetworkConnectionError, - PreviousBuildDirError, - VcsHashUnsupported, -) -from pip._internal.index.package_finder import PackageFinder -from pip._internal.metadata import BaseDistribution -from pip._internal.models.link import Link -from pip._internal.models.wheel import Wheel -from pip._internal.network.download import BatchDownloader, Downloader -from pip._internal.network.lazy_wheel import ( - HTTPRangeRequestUnsupported, - dist_from_wheel_url, -) -from pip._internal.network.session import PipSession -from pip._internal.req.req_install import InstallRequirement -from pip._internal.req.req_tracker import RequirementTracker -from pip._internal.utils.filesystem import copy2_fixed -from pip._internal.utils.hashes import Hashes, MissingHashes -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import display_path, hide_url, is_installable_dir, rmtree -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.utils.unpacking import unpack_file -from pip._internal.vcs import vcs - -logger = logging.getLogger(__name__) - - -def _get_prepared_distribution( - req: InstallRequirement, - req_tracker: RequirementTracker, - finder: PackageFinder, - build_isolation: bool, -) -> BaseDistribution: - """Prepare a distribution for installation.""" - abstract_dist = make_distribution_for_install_requirement(req) - with req_tracker.track(req): - abstract_dist.prepare_distribution_metadata(finder, build_isolation) - return abstract_dist.get_metadata_distribution() - - -def unpack_vcs_link(link: Link, location: str) -> None: - vcs_backend = vcs.get_backend_for_scheme(link.scheme) - assert vcs_backend is not None - vcs_backend.unpack(location, url=hide_url(link.url)) - - -class File: - def __init__(self, path: str, content_type: Optional[str]) -> None: - self.path = path - if content_type is None: - self.content_type = mimetypes.guess_type(path)[0] - else: - self.content_type = content_type - - -def get_http_url( - link: Link, - download: Downloader, - download_dir: Optional[str] = None, - hashes: Optional[Hashes] = None, -) -> File: - temp_dir = TempDirectory(kind="unpack", globally_managed=True) - # If a download dir is specified, is the file already downloaded there? - already_downloaded_path = None - if download_dir: - already_downloaded_path = _check_download_dir(link, download_dir, hashes) - - if already_downloaded_path: - from_path = already_downloaded_path - content_type = None - else: - # let's download to a tmp dir - from_path, content_type = download(link, temp_dir.path) - if hashes: - hashes.check_against_path(from_path) - - return File(from_path, content_type) - - -def _copy2_ignoring_special_files(src: str, dest: str) -> None: - """Copying special files is not supported, but as a convenience to users - we skip errors copying them. This supports tools that may create e.g. - socket files in the project source directory. - """ - try: - copy2_fixed(src, dest) - except shutil.SpecialFileError as e: - # SpecialFileError may be raised due to either the source or - # destination. If the destination was the cause then we would actually - # care, but since the destination directory is deleted prior to - # copy we ignore all of them assuming it is caused by the source. - logger.warning( - "Ignoring special file error '%s' encountered copying %s to %s.", - str(e), - src, - dest, - ) - - -def _copy_source_tree(source: str, target: str) -> None: - target_abspath = os.path.abspath(target) - target_basename = os.path.basename(target_abspath) - target_dirname = os.path.dirname(target_abspath) - - def ignore(d: str, names: List[str]) -> List[str]: - skipped: List[str] = [] - if d == source: - # Pulling in those directories can potentially be very slow, - # exclude the following directories if they appear in the top - # level dir (and only it). - # See discussion at https://github.com/pypa/pip/pull/6770 - skipped += [".tox", ".nox"] - if os.path.abspath(d) == target_dirname: - # Prevent an infinite recursion if the target is in source. - # This can happen when TMPDIR is set to ${PWD}/... - # and we copy PWD to TMPDIR. - skipped += [target_basename] - return skipped - - shutil.copytree( - source, - target, - ignore=ignore, - symlinks=True, - copy_function=_copy2_ignoring_special_files, - ) - - -def get_file_url( - link: Link, download_dir: Optional[str] = None, hashes: Optional[Hashes] = None -) -> File: - """Get file and optionally check its hash.""" - # If a download dir is specified, is the file already there and valid? - already_downloaded_path = None - if download_dir: - already_downloaded_path = _check_download_dir(link, download_dir, hashes) - - if already_downloaded_path: - from_path = already_downloaded_path - else: - from_path = link.file_path - - # If --require-hashes is off, `hashes` is either empty, the - # link's embedded hash, or MissingHashes; it is required to - # match. If --require-hashes is on, we are satisfied by any - # hash in `hashes` matching: a URL-based or an option-based - # one; no internet-sourced hash will be in `hashes`. - if hashes: - hashes.check_against_path(from_path) - return File(from_path, None) - - -def unpack_url( - link: Link, - location: str, - download: Downloader, - download_dir: Optional[str] = None, - hashes: Optional[Hashes] = None, -) -> Optional[File]: - """Unpack link into location, downloading if required. - - :param hashes: A Hashes object, one of whose embedded hashes must match, - or HashMismatch will be raised. If the Hashes is empty, no matches are - required, and unhashable types of requirements (like VCS ones, which - would ordinarily raise HashUnsupported) are allowed. - """ - # non-editable vcs urls - if link.is_vcs: - unpack_vcs_link(link, location) - return None - - # Once out-of-tree-builds are no longer supported, could potentially - # replace the below condition with `assert not link.is_existing_dir` - # - unpack_url does not need to be called for in-tree-builds. - # - # As further cleanup, _copy_source_tree and accompanying tests can - # be removed. - # - # TODO when use-deprecated=out-of-tree-build is removed - if link.is_existing_dir(): - if os.path.isdir(location): - rmtree(location) - _copy_source_tree(link.file_path, location) - return None - - # file urls - if link.is_file: - file = get_file_url(link, download_dir, hashes=hashes) - - # http urls - else: - file = get_http_url( - link, - download, - download_dir, - hashes=hashes, - ) - - # unpack the archive to the build dir location. even when only downloading - # archives, they have to be unpacked to parse dependencies, except wheels - if not link.is_wheel: - unpack_file(file.path, location, file.content_type) - - return file - - -def _check_download_dir( - link: Link, download_dir: str, hashes: Optional[Hashes] -) -> Optional[str]: - """Check download_dir for previously downloaded file with correct hash - If a correct file is found return its path else None - """ - download_path = os.path.join(download_dir, link.filename) - - if not os.path.exists(download_path): - return None - - # If already downloaded, does its hash match? - logger.info("File was already downloaded %s", download_path) - if hashes: - try: - hashes.check_against_path(download_path) - except HashMismatch: - logger.warning( - "Previously-downloaded file %s has bad hash. Re-downloading.", - download_path, - ) - os.unlink(download_path) - return None - return download_path - - -class RequirementPreparer: - """Prepares a Requirement""" - - def __init__( - self, - build_dir: str, - download_dir: Optional[str], - src_dir: str, - build_isolation: bool, - req_tracker: RequirementTracker, - session: PipSession, - progress_bar: str, - finder: PackageFinder, - require_hashes: bool, - use_user_site: bool, - lazy_wheel: bool, - in_tree_build: bool, - ) -> None: - super().__init__() - - self.src_dir = src_dir - self.build_dir = build_dir - self.req_tracker = req_tracker - self._session = session - self._download = Downloader(session, progress_bar) - self._batch_download = BatchDownloader(session, progress_bar) - self.finder = finder - - # Where still-packed archives should be written to. If None, they are - # not saved, and are deleted immediately after unpacking. - self.download_dir = download_dir - - # Is build isolation allowed? - self.build_isolation = build_isolation - - # Should hash-checking be required? - self.require_hashes = require_hashes - - # Should install in user site-packages? - self.use_user_site = use_user_site - - # Should wheels be downloaded lazily? - self.use_lazy_wheel = lazy_wheel - - # Should in-tree builds be used for local paths? - self.in_tree_build = in_tree_build - - # Memoized downloaded files, as mapping of url: path. - self._downloaded: Dict[str, str] = {} - - # Previous "header" printed for a link-based InstallRequirement - self._previous_requirement_header = ("", "") - - def _log_preparing_link(self, req: InstallRequirement) -> None: - """Provide context for the requirement being prepared.""" - if req.link.is_file and not req.original_link_is_in_wheel_cache: - message = "Processing %s" - information = str(display_path(req.link.file_path)) - else: - message = "Collecting %s" - information = str(req.req or req) - - if (message, information) != self._previous_requirement_header: - self._previous_requirement_header = (message, information) - logger.info(message, information) - - if req.original_link_is_in_wheel_cache: - with indent_log(): - logger.info("Using cached %s", req.link.filename) - - def _ensure_link_req_src_dir( - self, req: InstallRequirement, parallel_builds: bool - ) -> None: - """Ensure source_dir of a linked InstallRequirement.""" - # Since source_dir is only set for editable requirements. - if req.link.is_wheel: - # We don't need to unpack wheels, so no need for a source - # directory. - return - assert req.source_dir is None - if req.link.is_existing_dir() and self.in_tree_build: - # build local directories in-tree - req.source_dir = req.link.file_path - return - - # We always delete unpacked sdists after pip runs. - req.ensure_has_source_dir( - self.build_dir, - autodelete=True, - parallel_builds=parallel_builds, - ) - - # If a checkout exists, it's unwise to keep going. version - # inconsistencies are logged later, but do not fail the - # installation. - # FIXME: this won't upgrade when there's an existing - # package unpacked in `req.source_dir` - # TODO: this check is now probably dead code - if is_installable_dir(req.source_dir): - raise PreviousBuildDirError( - "pip can't proceed with requirements '{}' due to a" - "pre-existing build directory ({}). This is likely " - "due to a previous installation that failed . pip is " - "being responsible and not assuming it can delete this. " - "Please delete it and try again.".format(req, req.source_dir) - ) - - def _get_linked_req_hashes(self, req: InstallRequirement) -> Hashes: - # By the time this is called, the requirement's link should have - # been checked so we can tell what kind of requirements req is - # and raise some more informative errors than otherwise. - # (For example, we can raise VcsHashUnsupported for a VCS URL - # rather than HashMissing.) - if not self.require_hashes: - return req.hashes(trust_internet=True) - - # We could check these first 2 conditions inside unpack_url - # and save repetition of conditions, but then we would - # report less-useful error messages for unhashable - # requirements, complaining that there's no hash provided. - if req.link.is_vcs: - raise VcsHashUnsupported() - if req.link.is_existing_dir(): - raise DirectoryUrlHashUnsupported() - - # Unpinned packages are asking for trouble when a new version - # is uploaded. This isn't a security check, but it saves users - # a surprising hash mismatch in the future. - # file:/// URLs aren't pinnable, so don't complain about them - # not being pinned. - if req.original_link is None and not req.is_pinned: - raise HashUnpinned() - - # If known-good hashes are missing for this requirement, - # shim it with a facade object that will provoke hash - # computation and then raise a HashMissing exception - # showing the user what the hash should be. - return req.hashes(trust_internet=False) or MissingHashes() - - def _fetch_metadata_using_lazy_wheel( - self, - link: Link, - ) -> Optional[BaseDistribution]: - """Fetch metadata using lazy wheel, if possible.""" - if not self.use_lazy_wheel: - return None - if self.require_hashes: - logger.debug("Lazy wheel is not used as hash checking is required") - return None - if link.is_file or not link.is_wheel: - logger.debug( - "Lazy wheel is not used as %r does not points to a remote wheel", - link, - ) - return None - - wheel = Wheel(link.filename) - name = canonicalize_name(wheel.name) - logger.info( - "Obtaining dependency information from %s %s", - name, - wheel.version, - ) - url = link.url.split("#", 1)[0] - try: - return dist_from_wheel_url(name, url, self._session) - except HTTPRangeRequestUnsupported: - logger.debug("%s does not support range requests", url) - return None - - def _complete_partial_requirements( - self, - partially_downloaded_reqs: Iterable[InstallRequirement], - parallel_builds: bool = False, - ) -> None: - """Download any requirements which were only fetched by metadata.""" - # Download to a temporary directory. These will be copied over as - # needed for downstream 'download', 'wheel', and 'install' commands. - temp_dir = TempDirectory(kind="unpack", globally_managed=True).path - - # Map each link to the requirement that owns it. This allows us to set - # `req.local_file_path` on the appropriate requirement after passing - # all the links at once into BatchDownloader. - links_to_fully_download: Dict[Link, InstallRequirement] = {} - for req in partially_downloaded_reqs: - assert req.link - links_to_fully_download[req.link] = req - - batch_download = self._batch_download( - links_to_fully_download.keys(), - temp_dir, - ) - for link, (filepath, _) in batch_download: - logger.debug("Downloading link %s to %s", link, filepath) - req = links_to_fully_download[link] - req.local_file_path = filepath - - # This step is necessary to ensure all lazy wheels are processed - # successfully by the 'download', 'wheel', and 'install' commands. - for req in partially_downloaded_reqs: - self._prepare_linked_requirement(req, parallel_builds) - - def prepare_linked_requirement( - self, req: InstallRequirement, parallel_builds: bool = False - ) -> BaseDistribution: - """Prepare a requirement to be obtained from req.link.""" - assert req.link - link = req.link - self._log_preparing_link(req) - with indent_log(): - # Check if the relevant file is already available - # in the download directory - file_path = None - if self.download_dir is not None and link.is_wheel: - hashes = self._get_linked_req_hashes(req) - file_path = _check_download_dir(req.link, self.download_dir, hashes) - - if file_path is not None: - # The file is already available, so mark it as downloaded - self._downloaded[req.link.url] = file_path - else: - # The file is not available, attempt to fetch only metadata - wheel_dist = self._fetch_metadata_using_lazy_wheel(link) - if wheel_dist is not None: - req.needs_more_preparation = True - return wheel_dist - - # None of the optimizations worked, fully prepare the requirement - return self._prepare_linked_requirement(req, parallel_builds) - - def prepare_linked_requirements_more( - self, reqs: Iterable[InstallRequirement], parallel_builds: bool = False - ) -> None: - """Prepare linked requirements more, if needed.""" - reqs = [req for req in reqs if req.needs_more_preparation] - for req in reqs: - # Determine if any of these requirements were already downloaded. - if self.download_dir is not None and req.link.is_wheel: - hashes = self._get_linked_req_hashes(req) - file_path = _check_download_dir(req.link, self.download_dir, hashes) - if file_path is not None: - self._downloaded[req.link.url] = file_path - req.needs_more_preparation = False - - # Prepare requirements we found were already downloaded for some - # reason. The other downloads will be completed separately. - partially_downloaded_reqs: List[InstallRequirement] = [] - for req in reqs: - if req.needs_more_preparation: - partially_downloaded_reqs.append(req) - else: - self._prepare_linked_requirement(req, parallel_builds) - - # TODO: separate this part out from RequirementPreparer when the v1 - # resolver can be removed! - self._complete_partial_requirements( - partially_downloaded_reqs, - parallel_builds=parallel_builds, - ) - - def _prepare_linked_requirement( - self, req: InstallRequirement, parallel_builds: bool - ) -> BaseDistribution: - assert req.link - link = req.link - - self._ensure_link_req_src_dir(req, parallel_builds) - hashes = self._get_linked_req_hashes(req) - - if link.is_existing_dir() and self.in_tree_build: - local_file = None - elif link.url not in self._downloaded: - try: - local_file = unpack_url( - link, req.source_dir, self._download, self.download_dir, hashes - ) - except NetworkConnectionError as exc: - raise InstallationError( - "Could not install requirement {} because of HTTP " - "error {} for URL {}".format(req, exc, link) - ) - else: - file_path = self._downloaded[link.url] - if hashes: - hashes.check_against_path(file_path) - local_file = File(file_path, content_type=None) - - # For use in later processing, - # preserve the file path on the requirement. - if local_file: - req.local_file_path = local_file.path - - dist = _get_prepared_distribution( - req, - self.req_tracker, - self.finder, - self.build_isolation, - ) - return dist - - def save_linked_requirement(self, req: InstallRequirement) -> None: - assert self.download_dir is not None - assert req.link is not None - link = req.link - if link.is_vcs or (link.is_existing_dir() and req.editable): - # Make a .zip of the source_dir we already created. - req.archive(self.download_dir) - return - - if link.is_existing_dir(): - logger.debug( - "Not copying link to destination directory " - "since it is a directory: %s", - link, - ) - return - if req.local_file_path is None: - # No distribution was downloaded for this requirement. - return - - download_location = os.path.join(self.download_dir, link.filename) - if not os.path.exists(download_location): - shutil.copy(req.local_file_path, download_location) - download_path = display_path(download_location) - logger.info("Saved %s", download_path) - - def prepare_editable_requirement( - self, - req: InstallRequirement, - ) -> BaseDistribution: - """Prepare an editable requirement.""" - assert req.editable, "cannot prepare a non-editable req as editable" - - logger.info("Obtaining %s", req) - - with indent_log(): - if self.require_hashes: - raise InstallationError( - "The editable requirement {} cannot be installed when " - "requiring hashes, because there is no single file to " - "hash.".format(req) - ) - req.ensure_has_source_dir(self.src_dir) - req.update_editable() - - dist = _get_prepared_distribution( - req, - self.req_tracker, - self.finder, - self.build_isolation, - ) - - req.check_if_exists(self.use_user_site) - - return dist - - def prepare_installed_requirement( - self, - req: InstallRequirement, - skip_reason: str, - ) -> BaseDistribution: - """Prepare an already-installed requirement.""" - assert req.satisfied_by, "req should have been satisfied but isn't" - assert skip_reason is not None, ( - "did not get skip reason skipped but req.satisfied_by " - "is set to {}".format(req.satisfied_by) - ) - logger.info( - "Requirement %s: %s (%s)", skip_reason, req, req.satisfied_by.version - ) - with indent_log(): - if self.require_hashes: - logger.debug( - "Since it is already installed, we are trusting this " - "package without checking its hash. To ensure a " - "completely repeatable environment, install into an " - "empty virtualenv." - ) - return InstalledDistribution(req).get_metadata_distribution() diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/pyproject.py b/.venv/lib/python3.9/site-packages/pip/_internal/pyproject.py deleted file mode 100644 index 31534a3..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/pyproject.py +++ /dev/null @@ -1,183 +0,0 @@ -import os -from collections import namedtuple -from typing import Any, List, Optional - -from pip._vendor import tomli -from pip._vendor.packaging.requirements import InvalidRequirement, Requirement - -from pip._internal.exceptions import InstallationError - - -def _is_list_of_str(obj: Any) -> bool: - return isinstance(obj, list) and all(isinstance(item, str) for item in obj) - - -def make_pyproject_path(unpacked_source_directory: str) -> str: - return os.path.join(unpacked_source_directory, "pyproject.toml") - - -BuildSystemDetails = namedtuple( - "BuildSystemDetails", ["requires", "backend", "check", "backend_path"] -) - - -def load_pyproject_toml( - use_pep517: Optional[bool], pyproject_toml: str, setup_py: str, req_name: str -) -> Optional[BuildSystemDetails]: - """Load the pyproject.toml file. - - Parameters: - use_pep517 - Has the user requested PEP 517 processing? None - means the user hasn't explicitly specified. - pyproject_toml - Location of the project's pyproject.toml file - setup_py - Location of the project's setup.py file - req_name - The name of the requirement we're processing (for - error reporting) - - Returns: - None if we should use the legacy code path, otherwise a tuple - ( - requirements from pyproject.toml, - name of PEP 517 backend, - requirements we should check are installed after setting - up the build environment - directory paths to import the backend from (backend-path), - relative to the project root. - ) - """ - has_pyproject = os.path.isfile(pyproject_toml) - has_setup = os.path.isfile(setup_py) - - if not has_pyproject and not has_setup: - raise InstallationError( - f"{req_name} does not appear to be a Python project: " - f"neither 'setup.py' nor 'pyproject.toml' found." - ) - - if has_pyproject: - with open(pyproject_toml, encoding="utf-8") as f: - pp_toml = tomli.load(f) - build_system = pp_toml.get("build-system") - else: - build_system = None - - # The following cases must use PEP 517 - # We check for use_pep517 being non-None and falsey because that means - # the user explicitly requested --no-use-pep517. The value 0 as - # opposed to False can occur when the value is provided via an - # environment variable or config file option (due to the quirk of - # strtobool() returning an integer in pip's configuration code). - if has_pyproject and not has_setup: - if use_pep517 is not None and not use_pep517: - raise InstallationError( - "Disabling PEP 517 processing is invalid: " - "project does not have a setup.py" - ) - use_pep517 = True - elif build_system and "build-backend" in build_system: - if use_pep517 is not None and not use_pep517: - raise InstallationError( - "Disabling PEP 517 processing is invalid: " - "project specifies a build backend of {} " - "in pyproject.toml".format(build_system["build-backend"]) - ) - use_pep517 = True - - # If we haven't worked out whether to use PEP 517 yet, - # and the user hasn't explicitly stated a preference, - # we do so if the project has a pyproject.toml file. - elif use_pep517 is None: - use_pep517 = has_pyproject - - # At this point, we know whether we're going to use PEP 517. - assert use_pep517 is not None - - # If we're using the legacy code path, there is nothing further - # for us to do here. - if not use_pep517: - return None - - if build_system is None: - # Either the user has a pyproject.toml with no build-system - # section, or the user has no pyproject.toml, but has opted in - # explicitly via --use-pep517. - # In the absence of any explicit backend specification, we - # assume the setuptools backend that most closely emulates the - # traditional direct setup.py execution, and require wheel and - # a version of setuptools that supports that backend. - - build_system = { - "requires": ["setuptools>=40.8.0", "wheel"], - "build-backend": "setuptools.build_meta:__legacy__", - } - - # If we're using PEP 517, we have build system information (either - # from pyproject.toml, or defaulted by the code above). - # Note that at this point, we do not know if the user has actually - # specified a backend, though. - assert build_system is not None - - # Ensure that the build-system section in pyproject.toml conforms - # to PEP 518. - error_template = ( - "{package} has a pyproject.toml file that does not comply " - "with PEP 518: {reason}" - ) - - # Specifying the build-system table but not the requires key is invalid - if "requires" not in build_system: - raise InstallationError( - error_template.format( - package=req_name, - reason=( - "it has a 'build-system' table but not " - "'build-system.requires' which is mandatory in the table" - ), - ) - ) - - # Error out if requires is not a list of strings - requires = build_system["requires"] - if not _is_list_of_str(requires): - raise InstallationError( - error_template.format( - package=req_name, - reason="'build-system.requires' is not a list of strings.", - ) - ) - - # Each requirement must be valid as per PEP 508 - for requirement in requires: - try: - Requirement(requirement) - except InvalidRequirement: - raise InstallationError( - error_template.format( - package=req_name, - reason=( - "'build-system.requires' contains an invalid " - "requirement: {!r}".format(requirement) - ), - ) - ) - - backend = build_system.get("build-backend") - backend_path = build_system.get("backend-path", []) - check: List[str] = [] - if backend is None: - # If the user didn't specify a backend, we assume they want to use - # the setuptools backend. But we can't be sure they have included - # a version of setuptools which supplies the backend, or wheel - # (which is needed by the backend) in their requirements. So we - # make a note to check that those requirements are present once - # we have set up the environment. - # This is quite a lot of work to check for a very specific case. But - # the problem is, that case is potentially quite common - projects that - # adopted PEP 518 early for the ability to specify requirements to - # execute setup.py, but never considered needing to mention the build - # tools themselves. The original PEP 518 code had a similar check (but - # implemented in a different way). - backend = "setuptools.build_meta:__legacy__" - check = ["setuptools>=40.8.0", "wheel"] - - return BuildSystemDetails(requires, backend, check, backend_path) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/req/__init__.py deleted file mode 100644 index 70dea27..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/req/__init__.py +++ /dev/null @@ -1,94 +0,0 @@ -import collections -import logging -from typing import Iterator, List, Optional, Sequence, Tuple - -from pip._internal.utils.logging import indent_log - -from .req_file import parse_requirements -from .req_install import InstallRequirement -from .req_set import RequirementSet - -__all__ = [ - "RequirementSet", - "InstallRequirement", - "parse_requirements", - "install_given_reqs", -] - -logger = logging.getLogger(__name__) - - -class InstallationResult: - def __init__(self, name: str) -> None: - self.name = name - - def __repr__(self) -> str: - return f"InstallationResult(name={self.name!r})" - - -def _validate_requirements( - requirements: List[InstallRequirement], -) -> Iterator[Tuple[str, InstallRequirement]]: - for req in requirements: - assert req.name, f"invalid to-be-installed requirement: {req}" - yield req.name, req - - -def install_given_reqs( - requirements: List[InstallRequirement], - install_options: List[str], - global_options: Sequence[str], - root: Optional[str], - home: Optional[str], - prefix: Optional[str], - warn_script_location: bool, - use_user_site: bool, - pycompile: bool, -) -> List[InstallationResult]: - """ - Install everything in the given list. - - (to be called after having downloaded and unpacked the packages) - """ - to_install = collections.OrderedDict(_validate_requirements(requirements)) - - if to_install: - logger.info( - "Installing collected packages: %s", - ", ".join(to_install.keys()), - ) - - installed = [] - - with indent_log(): - for req_name, requirement in to_install.items(): - if requirement.should_reinstall: - logger.info("Attempting uninstall: %s", req_name) - with indent_log(): - uninstalled_pathset = requirement.uninstall(auto_confirm=True) - else: - uninstalled_pathset = None - - try: - requirement.install( - install_options, - global_options, - root=root, - home=home, - prefix=prefix, - warn_script_location=warn_script_location, - use_user_site=use_user_site, - pycompile=pycompile, - ) - except Exception: - # if install did not succeed, rollback previous uninstall - if uninstalled_pathset and not requirement.install_succeeded: - uninstalled_pathset.rollback() - raise - else: - if uninstalled_pathset and requirement.install_succeeded: - uninstalled_pathset.commit() - - installed.append(InstallationResult(req_name)) - - return installed diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index bf67337a67a4863fcf22bf8dce678dc87b695635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2566 zcmaJCO^+Nk)^=4_S65f}d}IO5iL-urtF@np}u0f zCz(;r9vDtYd|X!qX=ZQy1I~Nqv`1@iD$wzw#I6ShsZ3Gd!xJmkGk-0`LPzAG*QmuF$?0r-%>&lOv6wtp|+YkVEf zUgq=`8Eo7K3(3x)W&Ag^kcqCOao@_6HvZeS&Z;uWjekqro{BORruFW$&c%S5AS<~j zb(~jw_bCVf(q^4VC1MG@nG^-=Dx|(qDxKu{JHL{F+FwC$2|aKndR$^qWCwuR%x1^p zz3fnwC{(3D|IKg!dl{yB8h{`em@yL$r<{R<9PWaVF5sj7#HVsFZupmx z%CxvqC+SDYo=~GYt4DEGLaZP(BXG{d}SVk6?2CRz5$hM zz?xzZ7X#PmTx%^_#=+VH@)hIkYX>ZLc8)JUDDpab@5P_!K(50Pkh=jt>x3D&04VAw zMJ?la8?ZmtZ^k$9@C=HMV-v)2QSoVx>oAUQPm_GU<0viV7G8*kuiT13ka)H10k{ZL zxd42+?pO*0Ed(bnQ}#h`pcC;(if4xa8uA+X@QD-J&;z2bzKPzUUy-lbDgD^e8aiQr zCzRZFZGNzw<7-)YnB*Ccbai7_+?eOK;L*y>&qp)AF?j{lFDYjA){o5-0 z6DsBbAdXMBs6>1a%*3oM>Zr2CtW19|uXd9>Uf`~*Ds5a$QsdQ9OtQOX>rNueSfw(n zvBFcEH>Nj*>V_#}Oi0tIkJ75Bvs}zvhGn}Lm@^?vn?MgkI%#r7HEYNzJ*Ov~rX#Ow z=gh@QJ!>_cGw+<7({qOH@FdXfQ}V@sC;_^Ej;{Xp19s9q37hbsBR{q0oTiK1mh&ob zh6e#Q+t27p?>)jj7vgp5Kma~}mZ*Q+gizr3KFreP-bwHH5jfF>5@wClxJ|3^ns(#! z_GdmN?~(FJm+0^aG{CRv$?t%>r@m`?XZ>@ad<>Gxt(&;>J?;SPovqQZh#OTMHkT-BxtpqTvQX%NAf7gQvmB|zzCd*6X^8 zc14szTZJ4-CeRC_{p1jj@aj&PR|!XY$)jnBeFG4bvuGg$E9CgG`Hgritw2<&fpNj~ zd~{76vuC2?%YW5c6p%f@HZAArguCxT9}knMuHv*RCz&jE2A+%{>hduJe@5^)f+rAM z12EV$-T6(>ca`bBExC|_zm}!iX07qyJ=qiR0%hf-GVVc@mB#%@94Xm`^QHxfS17Zt z_N!^mp_9zjF`cDmroE)Sem501>&?cT7OQER3IX0Rz66tZ!8yi*G%hl2yriy0$!A@m zZ_7tMf~r4?AVTnahM54ou)KG^u$PG2ws)ECN~N0%OKk;@>qPG>q5rSeC6*8ROuYht ztoNBqUCL;AA=xd0qpw-*-d8U4YuV|Ak4JU%MefF z>7yF{5?h>f5MZN|EdJF= zKz!j%JB}f1p?!Dugnr8gTRw!>4G>_9mJcJq9%kI#s>-eAE8bZ)bmPA;dkkK}_sVu= fu$NwCAq&AbA@kdT)9-k+|8ofN*Kg(}?}uLiV{emX diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/constructors.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/constructors.cpython-39.pyc deleted file mode 100644 index 12d7735037cad71fd0471dd839b0807e5e3b882d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11324 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_file.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_file.cpython-39.pyc deleted file mode 100644 index ab7c1429555ac948391bc9fb1b265b6baf55b6ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13384 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 F{XZ?SIne+B diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_set.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_set.cpython-39.pyc deleted file mode 100644 index e26ca50759a8e8af4684fb344f6529d89638c667..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5904 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-39.pyc deleted file mode 100644 index b335b4fc7b5fd320fc559ab4dec8b1b4061493d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4264 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 Tuple[str, Optional[str]]: - m = re.match(r"^(.+)(\[[^\]]+\])$", path) - extras = None - if m: - path_no_extras = m.group(1) - extras = m.group(2) - else: - path_no_extras = path - - return path_no_extras, extras - - -def convert_extras(extras: Optional[str]) -> Set[str]: - if not extras: - return set() - return get_requirement("placeholder" + extras.lower()).extras - - -def parse_editable(editable_req: str) -> Tuple[Optional[str], str, Set[str]]: - """Parses an editable requirement into: - - a requirement name - - an URL - - extras - - editable options - Accepted requirements: - svn+http://blahblah@rev#egg=Foobar[baz]&subdirectory=version_subdir - .[some_extra] - """ - - url = editable_req - - # If a file path is specified with extras, strip off the extras. - url_no_extras, extras = _strip_extras(url) - - if os.path.isdir(url_no_extras): - # Treating it as code that has already been checked out - url_no_extras = path_to_url(url_no_extras) - - if url_no_extras.lower().startswith("file:"): - package_name = Link(url_no_extras).egg_fragment - if extras: - return ( - package_name, - url_no_extras, - get_requirement("placeholder" + extras.lower()).extras, - ) - else: - return package_name, url_no_extras, set() - - for version_control in vcs: - if url.lower().startswith(f"{version_control}:"): - url = f"{version_control}+{url}" - break - - link = Link(url) - - if not link.is_vcs: - backends = ", ".join(vcs.all_schemes) - raise InstallationError( - f"{editable_req} is not a valid editable requirement. " - f"It should either be a path to a local project or a VCS URL " - f"(beginning with {backends})." - ) - - package_name = link.egg_fragment - if not package_name: - raise InstallationError( - "Could not detect requirement name for '{}', please specify one " - "with #egg=your_package_name".format(editable_req) - ) - return package_name, url, set() - - -def deduce_helpful_msg(req: str) -> str: - """Returns helpful msg in case requirements file does not exist, - or cannot be parsed. - - :params req: Requirements file path - """ - msg = "" - if os.path.exists(req): - msg = " The path does exist. " - # Try to parse and check if it is a requirements file. - try: - with open(req) as fp: - # parse first line only - next(parse_requirements(fp.read())) - msg += ( - "The argument you provided " - "({}) appears to be a" - " requirements file. If that is the" - " case, use the '-r' flag to install" - " the packages specified within it." - ).format(req) - except RequirementParseError: - logger.debug("Cannot parse '%s' as requirements file", req, exc_info=True) - else: - msg += f" File '{req}' does not exist." - return msg - - -class RequirementParts: - def __init__( - self, - requirement: Optional[Requirement], - link: Optional[Link], - markers: Optional[Marker], - extras: Set[str], - ): - self.requirement = requirement - self.link = link - self.markers = markers - self.extras = extras - - -def parse_req_from_editable(editable_req: str) -> RequirementParts: - name, url, extras_override = parse_editable(editable_req) - - if name is not None: - try: - req: Optional[Requirement] = Requirement(name) - except InvalidRequirement: - raise InstallationError(f"Invalid requirement: '{name}'") - else: - req = None - - link = Link(url) - - return RequirementParts(req, link, None, extras_override) - - -# ---- The actual constructors follow ---- - - -def install_req_from_editable( - editable_req: str, - comes_from: Optional[Union[InstallRequirement, str]] = None, - use_pep517: Optional[bool] = None, - isolated: bool = False, - options: Optional[Dict[str, Any]] = None, - constraint: bool = False, - user_supplied: bool = False, - permit_editable_wheels: bool = False, -) -> InstallRequirement: - - parts = parse_req_from_editable(editable_req) - - return InstallRequirement( - parts.requirement, - comes_from=comes_from, - user_supplied=user_supplied, - editable=True, - permit_editable_wheels=permit_editable_wheels, - link=parts.link, - constraint=constraint, - use_pep517=use_pep517, - isolated=isolated, - install_options=options.get("install_options", []) if options else [], - global_options=options.get("global_options", []) if options else [], - hash_options=options.get("hashes", {}) if options else {}, - extras=parts.extras, - ) - - -def _looks_like_path(name: str) -> bool: - """Checks whether the string "looks like" a path on the filesystem. - - This does not check whether the target actually exists, only judge from the - appearance. - - Returns true if any of the following conditions is true: - * a path separator is found (either os.path.sep or os.path.altsep); - * a dot is found (which represents the current directory). - """ - if os.path.sep in name: - return True - if os.path.altsep is not None and os.path.altsep in name: - return True - if name.startswith("."): - return True - return False - - -def _get_url_from_path(path: str, name: str) -> Optional[str]: - """ - First, it checks whether a provided path is an installable directory. If it - is, returns the path. - - If false, check if the path is an archive file (such as a .whl). - The function checks if the path is a file. If false, if the path has - an @, it will treat it as a PEP 440 URL requirement and return the path. - """ - if _looks_like_path(name) and os.path.isdir(path): - if is_installable_dir(path): - return path_to_url(path) - # TODO: The is_installable_dir test here might not be necessary - # now that it is done in load_pyproject_toml too. - raise InstallationError( - f"Directory {name!r} is not installable. Neither 'setup.py' " - "nor 'pyproject.toml' found." - ) - if not is_archive_file(path): - return None - if os.path.isfile(path): - return path_to_url(path) - urlreq_parts = name.split("@", 1) - if len(urlreq_parts) >= 2 and not _looks_like_path(urlreq_parts[0]): - # If the path contains '@' and the part before it does not look - # like a path, try to treat it as a PEP 440 URL req instead. - return None - logger.warning( - "Requirement %r looks like a filename, but the file does not exist", - name, - ) - return path_to_url(path) - - -def parse_req_from_line(name: str, line_source: Optional[str]) -> RequirementParts: - if is_url(name): - marker_sep = "; " - else: - marker_sep = ";" - if marker_sep in name: - name, markers_as_string = name.split(marker_sep, 1) - markers_as_string = markers_as_string.strip() - if not markers_as_string: - markers = None - else: - markers = Marker(markers_as_string) - else: - markers = None - name = name.strip() - req_as_string = None - path = os.path.normpath(os.path.abspath(name)) - link = None - extras_as_string = None - - if is_url(name): - link = Link(name) - else: - p, extras_as_string = _strip_extras(path) - url = _get_url_from_path(p, name) - if url is not None: - link = Link(url) - - # it's a local file, dir, or url - if link: - # Handle relative file URLs - if link.scheme == "file" and re.search(r"\.\./", link.url): - link = Link(path_to_url(os.path.normpath(os.path.abspath(link.path)))) - # wheel file - if link.is_wheel: - wheel = Wheel(link.filename) # can raise InvalidWheelFilename - req_as_string = f"{wheel.name}=={wheel.version}" - else: - # set the req to the egg fragment. when it's not there, this - # will become an 'unnamed' requirement - req_as_string = link.egg_fragment - - # a requirement specifier - else: - req_as_string = name - - extras = convert_extras(extras_as_string) - - def with_source(text: str) -> str: - if not line_source: - return text - return f"{text} (from {line_source})" - - def _parse_req_string(req_as_string: str) -> Requirement: - try: - req = get_requirement(req_as_string) - except InvalidRequirement: - if os.path.sep in req_as_string: - add_msg = "It looks like a path." - add_msg += deduce_helpful_msg(req_as_string) - elif "=" in req_as_string and not any( - op in req_as_string for op in operators - ): - add_msg = "= is not a valid operator. Did you mean == ?" - else: - add_msg = "" - msg = with_source(f"Invalid requirement: {req_as_string!r}") - if add_msg: - msg += f"\nHint: {add_msg}" - raise InstallationError(msg) - else: - # Deprecate extras after specifiers: "name>=1.0[extras]" - # This currently works by accident because _strip_extras() parses - # any extras in the end of the string and those are saved in - # RequirementParts - for spec in req.specifier: - spec_str = str(spec) - if spec_str.endswith("]"): - msg = f"Extras after version '{spec_str}'." - raise InstallationError(msg) - return req - - if req_as_string is not None: - req: Optional[Requirement] = _parse_req_string(req_as_string) - else: - req = None - - return RequirementParts(req, link, markers, extras) - - -def install_req_from_line( - name: str, - comes_from: Optional[Union[str, InstallRequirement]] = None, - use_pep517: Optional[bool] = None, - isolated: bool = False, - options: Optional[Dict[str, Any]] = None, - constraint: bool = False, - line_source: Optional[str] = None, - user_supplied: bool = False, -) -> InstallRequirement: - """Creates an InstallRequirement from a name, which might be a - requirement, directory containing 'setup.py', filename, or URL. - - :param line_source: An optional string describing where the line is from, - for logging purposes in case of an error. - """ - parts = parse_req_from_line(name, line_source) - - return InstallRequirement( - parts.requirement, - comes_from, - link=parts.link, - markers=parts.markers, - use_pep517=use_pep517, - isolated=isolated, - install_options=options.get("install_options", []) if options else [], - global_options=options.get("global_options", []) if options else [], - hash_options=options.get("hashes", {}) if options else {}, - constraint=constraint, - extras=parts.extras, - user_supplied=user_supplied, - ) - - -def install_req_from_req_string( - req_string: str, - comes_from: Optional[InstallRequirement] = None, - isolated: bool = False, - use_pep517: Optional[bool] = None, - user_supplied: bool = False, -) -> InstallRequirement: - try: - req = get_requirement(req_string) - except InvalidRequirement: - raise InstallationError(f"Invalid requirement: '{req_string}'") - - domains_not_allowed = [ - PyPI.file_storage_domain, - TestPyPI.file_storage_domain, - ] - if ( - req.url - and comes_from - and comes_from.link - and comes_from.link.netloc in domains_not_allowed - ): - # Explicitly disallow pypi packages that depend on external urls - raise InstallationError( - "Packages installed from PyPI cannot depend on packages " - "which are not also hosted on PyPI.\n" - "{} depends on {} ".format(comes_from.name, req) - ) - - return InstallRequirement( - req, - comes_from, - isolated=isolated, - use_pep517=use_pep517, - user_supplied=user_supplied, - ) - - -def install_req_from_parsed_requirement( - parsed_req: ParsedRequirement, - isolated: bool = False, - use_pep517: Optional[bool] = None, - user_supplied: bool = False, -) -> InstallRequirement: - if parsed_req.is_editable: - req = install_req_from_editable( - parsed_req.requirement, - comes_from=parsed_req.comes_from, - use_pep517=use_pep517, - constraint=parsed_req.constraint, - isolated=isolated, - user_supplied=user_supplied, - ) - - else: - req = install_req_from_line( - parsed_req.requirement, - comes_from=parsed_req.comes_from, - use_pep517=use_pep517, - isolated=isolated, - options=parsed_req.options, - constraint=parsed_req.constraint, - line_source=parsed_req.line_source, - user_supplied=user_supplied, - ) - return req - - -def install_req_from_link_and_ireq( - link: Link, ireq: InstallRequirement -) -> InstallRequirement: - return InstallRequirement( - req=ireq.req, - comes_from=ireq.comes_from, - editable=ireq.editable, - link=link, - markers=ireq.markers, - use_pep517=ireq.use_pep517, - isolated=ireq.isolated, - install_options=ireq.install_options, - global_options=ireq.global_options, - hash_options=ireq.hash_options, - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/req_file.py b/.venv/lib/python3.9/site-packages/pip/_internal/req/req_file.py deleted file mode 100644 index 03ae504..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/req/req_file.py +++ /dev/null @@ -1,536 +0,0 @@ -""" -Requirements file parsing -""" - -import optparse -import os -import re -import shlex -import urllib.parse -from optparse import Values -from typing import ( - TYPE_CHECKING, - Any, - Callable, - Dict, - Iterable, - Iterator, - List, - Optional, - Tuple, -) - -from pip._internal.cli import cmdoptions -from pip._internal.exceptions import InstallationError, RequirementsFileParseError -from pip._internal.models.search_scope import SearchScope -from pip._internal.network.session import PipSession -from pip._internal.network.utils import raise_for_status -from pip._internal.utils.encoding import auto_decode -from pip._internal.utils.urls import get_url_scheme - -if TYPE_CHECKING: - # NoReturn introduced in 3.6.2; imported only for type checking to maintain - # pip compatibility with older patch versions of Python 3.6 - from typing import NoReturn - - from pip._internal.index.package_finder import PackageFinder - -__all__ = ["parse_requirements"] - -ReqFileLines = Iterable[Tuple[int, str]] - -LineParser = Callable[[str], Tuple[str, Values]] - -SCHEME_RE = re.compile(r"^(http|https|file):", re.I) -COMMENT_RE = re.compile(r"(^|\s+)#.*$") - -# Matches environment variable-style values in '${MY_VARIABLE_1}' with the -# variable name consisting of only uppercase letters, digits or the '_' -# (underscore). This follows the POSIX standard defined in IEEE Std 1003.1, -# 2013 Edition. -ENV_VAR_RE = re.compile(r"(?P\$\{(?P[A-Z0-9_]+)\})") - -SUPPORTED_OPTIONS: List[Callable[..., optparse.Option]] = [ - cmdoptions.index_url, - cmdoptions.extra_index_url, - cmdoptions.no_index, - cmdoptions.constraints, - cmdoptions.requirements, - cmdoptions.editable, - cmdoptions.find_links, - cmdoptions.no_binary, - cmdoptions.only_binary, - cmdoptions.prefer_binary, - cmdoptions.require_hashes, - cmdoptions.pre, - cmdoptions.trusted_host, - cmdoptions.use_new_feature, -] - -# options to be passed to requirements -SUPPORTED_OPTIONS_REQ: List[Callable[..., optparse.Option]] = [ - cmdoptions.install_options, - cmdoptions.global_options, - cmdoptions.hash, -] - -# the 'dest' string values -SUPPORTED_OPTIONS_REQ_DEST = [str(o().dest) for o in SUPPORTED_OPTIONS_REQ] - - -class ParsedRequirement: - def __init__( - self, - requirement: str, - is_editable: bool, - comes_from: str, - constraint: bool, - options: Optional[Dict[str, Any]] = None, - line_source: Optional[str] = None, - ) -> None: - self.requirement = requirement - self.is_editable = is_editable - self.comes_from = comes_from - self.options = options - self.constraint = constraint - self.line_source = line_source - - -class ParsedLine: - def __init__( - self, - filename: str, - lineno: int, - args: str, - opts: Values, - constraint: bool, - ) -> None: - self.filename = filename - self.lineno = lineno - self.opts = opts - self.constraint = constraint - - if args: - self.is_requirement = True - self.is_editable = False - self.requirement = args - elif opts.editables: - self.is_requirement = True - self.is_editable = True - # We don't support multiple -e on one line - self.requirement = opts.editables[0] - else: - self.is_requirement = False - - -def parse_requirements( - filename: str, - session: PipSession, - finder: Optional["PackageFinder"] = None, - options: Optional[optparse.Values] = None, - constraint: bool = False, -) -> Iterator[ParsedRequirement]: - """Parse a requirements file and yield ParsedRequirement instances. - - :param filename: Path or url of requirements file. - :param session: PipSession instance. - :param finder: Instance of pip.index.PackageFinder. - :param options: cli options. - :param constraint: If true, parsing a constraint file rather than - requirements file. - """ - line_parser = get_line_parser(finder) - parser = RequirementsFileParser(session, line_parser) - - for parsed_line in parser.parse(filename, constraint): - parsed_req = handle_line( - parsed_line, options=options, finder=finder, session=session - ) - if parsed_req is not None: - yield parsed_req - - -def preprocess(content: str) -> ReqFileLines: - """Split, filter, and join lines, and return a line iterator - - :param content: the content of the requirements file - """ - lines_enum: ReqFileLines = enumerate(content.splitlines(), start=1) - lines_enum = join_lines(lines_enum) - lines_enum = ignore_comments(lines_enum) - lines_enum = expand_env_variables(lines_enum) - return lines_enum - - -def handle_requirement_line( - line: ParsedLine, - options: Optional[optparse.Values] = None, -) -> ParsedRequirement: - - # preserve for the nested code path - line_comes_from = "{} {} (line {})".format( - "-c" if line.constraint else "-r", - line.filename, - line.lineno, - ) - - assert line.is_requirement - - if line.is_editable: - # For editable requirements, we don't support per-requirement - # options, so just return the parsed requirement. - return ParsedRequirement( - requirement=line.requirement, - is_editable=line.is_editable, - comes_from=line_comes_from, - constraint=line.constraint, - ) - else: - if options: - # Disable wheels if the user has specified build options - cmdoptions.check_install_build_global(options, line.opts) - - # get the options that apply to requirements - req_options = {} - for dest in SUPPORTED_OPTIONS_REQ_DEST: - if dest in line.opts.__dict__ and line.opts.__dict__[dest]: - req_options[dest] = line.opts.__dict__[dest] - - line_source = f"line {line.lineno} of {line.filename}" - return ParsedRequirement( - requirement=line.requirement, - is_editable=line.is_editable, - comes_from=line_comes_from, - constraint=line.constraint, - options=req_options, - line_source=line_source, - ) - - -def handle_option_line( - opts: Values, - filename: str, - lineno: int, - finder: Optional["PackageFinder"] = None, - options: Optional[optparse.Values] = None, - session: Optional[PipSession] = None, -) -> None: - - if options: - # percolate options upward - if opts.require_hashes: - options.require_hashes = opts.require_hashes - if opts.features_enabled: - options.features_enabled.extend( - f for f in opts.features_enabled if f not in options.features_enabled - ) - - # set finder options - if finder: - find_links = finder.find_links - index_urls = finder.index_urls - if opts.index_url: - index_urls = [opts.index_url] - if opts.no_index is True: - index_urls = [] - if opts.extra_index_urls: - index_urls.extend(opts.extra_index_urls) - if opts.find_links: - # FIXME: it would be nice to keep track of the source - # of the find_links: support a find-links local path - # relative to a requirements file. - value = opts.find_links[0] - req_dir = os.path.dirname(os.path.abspath(filename)) - relative_to_reqs_file = os.path.join(req_dir, value) - if os.path.exists(relative_to_reqs_file): - value = relative_to_reqs_file - find_links.append(value) - - if session: - # We need to update the auth urls in session - session.update_index_urls(index_urls) - - search_scope = SearchScope( - find_links=find_links, - index_urls=index_urls, - ) - finder.search_scope = search_scope - - if opts.pre: - finder.set_allow_all_prereleases() - - if opts.prefer_binary: - finder.set_prefer_binary() - - if session: - for host in opts.trusted_hosts or []: - source = f"line {lineno} of {filename}" - session.add_trusted_host(host, source=source) - - -def handle_line( - line: ParsedLine, - options: Optional[optparse.Values] = None, - finder: Optional["PackageFinder"] = None, - session: Optional[PipSession] = None, -) -> Optional[ParsedRequirement]: - """Handle a single parsed requirements line; This can result in - creating/yielding requirements, or updating the finder. - - :param line: The parsed line to be processed. - :param options: CLI options. - :param finder: The finder - updated by non-requirement lines. - :param session: The session - updated by non-requirement lines. - - Returns a ParsedRequirement object if the line is a requirement line, - otherwise returns None. - - For lines that contain requirements, the only options that have an effect - are from SUPPORTED_OPTIONS_REQ, and they are scoped to the - requirement. Other options from SUPPORTED_OPTIONS may be present, but are - ignored. - - For lines that do not contain requirements, the only options that have an - effect are from SUPPORTED_OPTIONS. Options from SUPPORTED_OPTIONS_REQ may - be present, but are ignored. These lines may contain multiple options - (although our docs imply only one is supported), and all our parsed and - affect the finder. - """ - - if line.is_requirement: - parsed_req = handle_requirement_line(line, options) - return parsed_req - else: - handle_option_line( - line.opts, - line.filename, - line.lineno, - finder, - options, - session, - ) - return None - - -class RequirementsFileParser: - def __init__( - self, - session: PipSession, - line_parser: LineParser, - ) -> None: - self._session = session - self._line_parser = line_parser - - def parse(self, filename: str, constraint: bool) -> Iterator[ParsedLine]: - """Parse a given file, yielding parsed lines.""" - yield from self._parse_and_recurse(filename, constraint) - - def _parse_and_recurse( - self, filename: str, constraint: bool - ) -> Iterator[ParsedLine]: - for line in self._parse_file(filename, constraint): - if not line.is_requirement and ( - line.opts.requirements or line.opts.constraints - ): - # parse a nested requirements file - if line.opts.requirements: - req_path = line.opts.requirements[0] - nested_constraint = False - else: - req_path = line.opts.constraints[0] - nested_constraint = True - - # original file is over http - if SCHEME_RE.search(filename): - # do a url join so relative paths work - req_path = urllib.parse.urljoin(filename, req_path) - # original file and nested file are paths - elif not SCHEME_RE.search(req_path): - # do a join so relative paths work - req_path = os.path.join( - os.path.dirname(filename), - req_path, - ) - - yield from self._parse_and_recurse(req_path, nested_constraint) - else: - yield line - - def _parse_file(self, filename: str, constraint: bool) -> Iterator[ParsedLine]: - _, content = get_file_content(filename, self._session) - - lines_enum = preprocess(content) - - for line_number, line in lines_enum: - try: - args_str, opts = self._line_parser(line) - except OptionParsingError as e: - # add offending line - msg = f"Invalid requirement: {line}\n{e.msg}" - raise RequirementsFileParseError(msg) - - yield ParsedLine( - filename, - line_number, - args_str, - opts, - constraint, - ) - - -def get_line_parser(finder: Optional["PackageFinder"]) -> LineParser: - def parse_line(line: str) -> Tuple[str, Values]: - # Build new parser for each line since it accumulates appendable - # options. - parser = build_parser() - defaults = parser.get_default_values() - defaults.index_url = None - if finder: - defaults.format_control = finder.format_control - - args_str, options_str = break_args_options(line) - - opts, _ = parser.parse_args(shlex.split(options_str), defaults) - - return args_str, opts - - return parse_line - - -def break_args_options(line: str) -> Tuple[str, str]: - """Break up the line into an args and options string. We only want to shlex - (and then optparse) the options, not the args. args can contain markers - which are corrupted by shlex. - """ - tokens = line.split(" ") - args = [] - options = tokens[:] - for token in tokens: - if token.startswith("-") or token.startswith("--"): - break - else: - args.append(token) - options.pop(0) - return " ".join(args), " ".join(options) - - -class OptionParsingError(Exception): - def __init__(self, msg: str) -> None: - self.msg = msg - - -def build_parser() -> optparse.OptionParser: - """ - Return a parser for parsing requirement lines - """ - parser = optparse.OptionParser(add_help_option=False) - - option_factories = SUPPORTED_OPTIONS + SUPPORTED_OPTIONS_REQ - for option_factory in option_factories: - option = option_factory() - parser.add_option(option) - - # By default optparse sys.exits on parsing errors. We want to wrap - # that in our own exception. - def parser_exit(self: Any, msg: str) -> "NoReturn": - raise OptionParsingError(msg) - - # NOTE: mypy disallows assigning to a method - # https://github.com/python/mypy/issues/2427 - parser.exit = parser_exit # type: ignore - - return parser - - -def join_lines(lines_enum: ReqFileLines) -> ReqFileLines: - """Joins a line ending in '\' with the previous line (except when following - comments). The joined line takes on the index of the first line. - """ - primary_line_number = None - new_line: List[str] = [] - for line_number, line in lines_enum: - if not line.endswith("\\") or COMMENT_RE.match(line): - if COMMENT_RE.match(line): - # this ensures comments are always matched later - line = " " + line - if new_line: - new_line.append(line) - assert primary_line_number is not None - yield primary_line_number, "".join(new_line) - new_line = [] - else: - yield line_number, line - else: - if not new_line: - primary_line_number = line_number - new_line.append(line.strip("\\")) - - # last line contains \ - if new_line: - assert primary_line_number is not None - yield primary_line_number, "".join(new_line) - - # TODO: handle space after '\'. - - -def ignore_comments(lines_enum: ReqFileLines) -> ReqFileLines: - """ - Strips comments and filter empty lines. - """ - for line_number, line in lines_enum: - line = COMMENT_RE.sub("", line) - line = line.strip() - if line: - yield line_number, line - - -def expand_env_variables(lines_enum: ReqFileLines) -> ReqFileLines: - """Replace all environment variables that can be retrieved via `os.getenv`. - - The only allowed format for environment variables defined in the - requirement file is `${MY_VARIABLE_1}` to ensure two things: - - 1. Strings that contain a `$` aren't accidentally (partially) expanded. - 2. Ensure consistency across platforms for requirement files. - - These points are the result of a discussion on the `github pull - request #3514 `_. - - Valid characters in variable names follow the `POSIX standard - `_ and are limited - to uppercase letter, digits and the `_` (underscore). - """ - for line_number, line in lines_enum: - for env_var, var_name in ENV_VAR_RE.findall(line): - value = os.getenv(var_name) - if not value: - continue - - line = line.replace(env_var, value) - - yield line_number, line - - -def get_file_content(url: str, session: PipSession) -> Tuple[str, str]: - """Gets the content of a file; it may be a filename, file: URL, or - http: URL. Returns (location, content). Content is unicode. - Respects # -*- coding: declarations on the retrieved files. - - :param url: File path or url. - :param session: PipSession instance. - """ - scheme = get_url_scheme(url) - - # Pip has special support for file:// URLs (LocalFSAdapter). - if scheme in ["http", "https", "file"]: - resp = session.get(url) - raise_for_status(resp) - return resp.url, resp.text - - # Assume this is a bare path. - try: - with open(url, "rb") as f: - content = auto_decode(f.read()) - except OSError as exc: - raise InstallationError(f"Could not open requirements file: {exc}") - return url, content diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/req_install.py b/.venv/lib/python3.9/site-packages/pip/_internal/req/req_install.py deleted file mode 100644 index 95dacab..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/req/req_install.py +++ /dev/null @@ -1,891 +0,0 @@ -# The following comment should be removed at some point in the future. -# mypy: strict-optional=False - -import functools -import logging -import os -import shutil -import sys -import uuid -import zipfile -from typing import Any, Collection, Dict, Iterable, List, Optional, Sequence, Union - -from pip._vendor import pkg_resources -from pip._vendor.packaging.markers import Marker -from pip._vendor.packaging.requirements import Requirement -from pip._vendor.packaging.specifiers import SpecifierSet -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.packaging.version import Version -from pip._vendor.packaging.version import parse as parse_version -from pip._vendor.pep517.wrappers import Pep517HookCaller -from pip._vendor.pkg_resources import Distribution - -from pip._internal.build_env import BuildEnvironment, NoOpBuildEnvironment -from pip._internal.exceptions import InstallationError -from pip._internal.locations import get_scheme -from pip._internal.models.link import Link -from pip._internal.operations.build.metadata import generate_metadata -from pip._internal.operations.build.metadata_editable import generate_editable_metadata -from pip._internal.operations.build.metadata_legacy import ( - generate_metadata as generate_metadata_legacy, -) -from pip._internal.operations.install.editable_legacy import ( - install_editable as install_editable_legacy, -) -from pip._internal.operations.install.legacy import LegacyInstallFailure -from pip._internal.operations.install.legacy import install as install_legacy -from pip._internal.operations.install.wheel import install_wheel -from pip._internal.pyproject import load_pyproject_toml, make_pyproject_path -from pip._internal.req.req_uninstall import UninstallPathSet -from pip._internal.utils.deprecation import deprecated -from pip._internal.utils.direct_url_helpers import ( - direct_url_for_editable, - direct_url_from_link, -) -from pip._internal.utils.hashes import Hashes -from pip._internal.utils.misc import ( - ask_path_exists, - backup_dir, - display_path, - dist_in_site_packages, - dist_in_usersite, - get_distribution, - hide_url, - redact_auth_from_url, -) -from pip._internal.utils.packaging import get_metadata -from pip._internal.utils.subprocess import runner_with_spinner_message -from pip._internal.utils.temp_dir import TempDirectory, tempdir_kinds -from pip._internal.utils.virtualenv import running_under_virtualenv -from pip._internal.vcs import vcs - -logger = logging.getLogger(__name__) - - -def _get_dist(metadata_directory: str) -> Distribution: - """Return a pkg_resources.Distribution for the provided - metadata directory. - """ - dist_dir = metadata_directory.rstrip(os.sep) - - # Build a PathMetadata object, from path to metadata. :wink: - base_dir, dist_dir_name = os.path.split(dist_dir) - metadata = pkg_resources.PathMetadata(base_dir, dist_dir) - - # Determine the correct Distribution object type. - if dist_dir.endswith(".egg-info"): - dist_cls = pkg_resources.Distribution - dist_name = os.path.splitext(dist_dir_name)[0] - else: - assert dist_dir.endswith(".dist-info") - dist_cls = pkg_resources.DistInfoDistribution - dist_name = os.path.splitext(dist_dir_name)[0].split("-")[0] - - return dist_cls( - base_dir, - project_name=dist_name, - metadata=metadata, - ) - - -class InstallRequirement: - """ - Represents something that may be installed later on, may have information - about where to fetch the relevant requirement and also contains logic for - installing the said requirement. - """ - - def __init__( - self, - req: Optional[Requirement], - comes_from: Optional[Union[str, "InstallRequirement"]], - editable: bool = False, - link: Optional[Link] = None, - markers: Optional[Marker] = None, - use_pep517: Optional[bool] = None, - isolated: bool = False, - install_options: Optional[List[str]] = None, - global_options: Optional[List[str]] = None, - hash_options: Optional[Dict[str, List[str]]] = None, - constraint: bool = False, - extras: Collection[str] = (), - user_supplied: bool = False, - permit_editable_wheels: bool = False, - ) -> None: - assert req is None or isinstance(req, Requirement), req - self.req = req - self.comes_from = comes_from - self.constraint = constraint - self.editable = editable - self.permit_editable_wheels = permit_editable_wheels - self.legacy_install_reason: Optional[int] = None - - # source_dir is the local directory where the linked requirement is - # located, or unpacked. In case unpacking is needed, creating and - # populating source_dir is done by the RequirementPreparer. Note this - # is not necessarily the directory where pyproject.toml or setup.py is - # located - that one is obtained via unpacked_source_directory. - self.source_dir: Optional[str] = None - if self.editable: - assert link - if link.is_file: - self.source_dir = os.path.normpath(os.path.abspath(link.file_path)) - - if link is None and req and req.url: - # PEP 508 URL requirement - link = Link(req.url) - self.link = self.original_link = link - self.original_link_is_in_wheel_cache = False - - # Path to any downloaded or already-existing package. - self.local_file_path: Optional[str] = None - if self.link and self.link.is_file: - self.local_file_path = self.link.file_path - - if extras: - self.extras = extras - elif req: - self.extras = {pkg_resources.safe_extra(extra) for extra in req.extras} - else: - self.extras = set() - if markers is None and req: - markers = req.marker - self.markers = markers - - # This holds the pkg_resources.Distribution object if this requirement - # is already available: - self.satisfied_by: Optional[Distribution] = None - # Whether the installation process should try to uninstall an existing - # distribution before installing this requirement. - self.should_reinstall = False - # Temporary build location - self._temp_build_dir: Optional[TempDirectory] = None - # Set to True after successful installation - self.install_succeeded: Optional[bool] = None - # Supplied options - self.install_options = install_options if install_options else [] - self.global_options = global_options if global_options else [] - self.hash_options = hash_options if hash_options else {} - # Set to True after successful preparation of this requirement - self.prepared = False - # User supplied requirement are explicitly requested for installation - # by the user via CLI arguments or requirements files, as opposed to, - # e.g. dependencies, extras or constraints. - self.user_supplied = user_supplied - - self.isolated = isolated - self.build_env: BuildEnvironment = NoOpBuildEnvironment() - - # For PEP 517, the directory where we request the project metadata - # gets stored. We need this to pass to build_wheel, so the backend - # can ensure that the wheel matches the metadata (see the PEP for - # details). - self.metadata_directory: Optional[str] = None - - # The static build requirements (from pyproject.toml) - self.pyproject_requires: Optional[List[str]] = None - - # Build requirements that we will check are available - self.requirements_to_check: List[str] = [] - - # The PEP 517 backend we should use to build the project - self.pep517_backend: Optional[Pep517HookCaller] = None - - # Are we using PEP 517 for this requirement? - # After pyproject.toml has been loaded, the only valid values are True - # and False. Before loading, None is valid (meaning "use the default"). - # Setting an explicit value before loading pyproject.toml is supported, - # but after loading this flag should be treated as read only. - self.use_pep517 = use_pep517 - - # This requirement needs more preparation before it can be built - self.needs_more_preparation = False - - def __str__(self) -> str: - if self.req: - s = str(self.req) - if self.link: - s += " from {}".format(redact_auth_from_url(self.link.url)) - elif self.link: - s = redact_auth_from_url(self.link.url) - else: - s = "" - if self.satisfied_by is not None: - s += " in {}".format(display_path(self.satisfied_by.location)) - if self.comes_from: - if isinstance(self.comes_from, str): - comes_from: Optional[str] = self.comes_from - else: - comes_from = self.comes_from.from_path() - if comes_from: - s += f" (from {comes_from})" - return s - - def __repr__(self) -> str: - return "<{} object: {} editable={!r}>".format( - self.__class__.__name__, str(self), self.editable - ) - - def format_debug(self) -> str: - """An un-tested helper for getting state, for debugging.""" - attributes = vars(self) - names = sorted(attributes) - - state = ("{}={!r}".format(attr, attributes[attr]) for attr in sorted(names)) - return "<{name} object: {{{state}}}>".format( - name=self.__class__.__name__, - state=", ".join(state), - ) - - # Things that are valid for all kinds of requirements? - @property - def name(self) -> Optional[str]: - if self.req is None: - return None - return pkg_resources.safe_name(self.req.name) - - @functools.lru_cache() # use cached_property in python 3.8+ - def supports_pyproject_editable(self) -> bool: - if not self.use_pep517: - return False - assert self.pep517_backend - with self.build_env: - runner = runner_with_spinner_message( - "Checking if build backend supports build_editable" - ) - with self.pep517_backend.subprocess_runner(runner): - return "build_editable" in self.pep517_backend._supported_features() - - @property - def specifier(self) -> SpecifierSet: - return self.req.specifier - - @property - def is_pinned(self) -> bool: - """Return whether I am pinned to an exact version. - - For example, some-package==1.2 is pinned; some-package>1.2 is not. - """ - specifiers = self.specifier - return len(specifiers) == 1 and next(iter(specifiers)).operator in {"==", "==="} - - def match_markers(self, extras_requested: Optional[Iterable[str]] = None) -> bool: - if not extras_requested: - # Provide an extra to safely evaluate the markers - # without matching any extra - extras_requested = ("",) - if self.markers is not None: - return any( - self.markers.evaluate({"extra": extra}) for extra in extras_requested - ) - else: - return True - - @property - def has_hash_options(self) -> bool: - """Return whether any known-good hashes are specified as options. - - These activate --require-hashes mode; hashes specified as part of a - URL do not. - - """ - return bool(self.hash_options) - - def hashes(self, trust_internet: bool = True) -> Hashes: - """Return a hash-comparer that considers my option- and URL-based - hashes to be known-good. - - Hashes in URLs--ones embedded in the requirements file, not ones - downloaded from an index server--are almost peers with ones from - flags. They satisfy --require-hashes (whether it was implicitly or - explicitly activated) but do not activate it. md5 and sha224 are not - allowed in flags, which should nudge people toward good algos. We - always OR all hashes together, even ones from URLs. - - :param trust_internet: Whether to trust URL-based (#md5=...) hashes - downloaded from the internet, as by populate_link() - - """ - good_hashes = self.hash_options.copy() - link = self.link if trust_internet else self.original_link - if link and link.hash: - good_hashes.setdefault(link.hash_name, []).append(link.hash) - return Hashes(good_hashes) - - def from_path(self) -> Optional[str]: - """Format a nice indicator to show where this "comes from" """ - if self.req is None: - return None - s = str(self.req) - if self.comes_from: - if isinstance(self.comes_from, str): - comes_from = self.comes_from - else: - comes_from = self.comes_from.from_path() - if comes_from: - s += "->" + comes_from - return s - - def ensure_build_location( - self, build_dir: str, autodelete: bool, parallel_builds: bool - ) -> str: - assert build_dir is not None - if self._temp_build_dir is not None: - assert self._temp_build_dir.path - return self._temp_build_dir.path - if self.req is None: - # Some systems have /tmp as a symlink which confuses custom - # builds (such as numpy). Thus, we ensure that the real path - # is returned. - self._temp_build_dir = TempDirectory( - kind=tempdir_kinds.REQ_BUILD, globally_managed=True - ) - - return self._temp_build_dir.path - - # This is the only remaining place where we manually determine the path - # for the temporary directory. It is only needed for editables where - # it is the value of the --src option. - - # When parallel builds are enabled, add a UUID to the build directory - # name so multiple builds do not interfere with each other. - dir_name: str = canonicalize_name(self.name) - if parallel_builds: - dir_name = f"{dir_name}_{uuid.uuid4().hex}" - - # FIXME: Is there a better place to create the build_dir? (hg and bzr - # need this) - if not os.path.exists(build_dir): - logger.debug("Creating directory %s", build_dir) - os.makedirs(build_dir) - actual_build_dir = os.path.join(build_dir, dir_name) - # `None` indicates that we respect the globally-configured deletion - # settings, which is what we actually want when auto-deleting. - delete_arg = None if autodelete else False - return TempDirectory( - path=actual_build_dir, - delete=delete_arg, - kind=tempdir_kinds.REQ_BUILD, - globally_managed=True, - ).path - - def _set_requirement(self) -> None: - """Set requirement after generating metadata.""" - assert self.req is None - assert self.metadata is not None - assert self.source_dir is not None - - # Construct a Requirement object from the generated metadata - if isinstance(parse_version(self.metadata["Version"]), Version): - op = "==" - else: - op = "===" - - self.req = Requirement( - "".join( - [ - self.metadata["Name"], - op, - self.metadata["Version"], - ] - ) - ) - - def warn_on_mismatching_name(self) -> None: - metadata_name = canonicalize_name(self.metadata["Name"]) - if canonicalize_name(self.req.name) == metadata_name: - # Everything is fine. - return - - # If we're here, there's a mismatch. Log a warning about it. - logger.warning( - "Generating metadata for package %s " - "produced metadata for project name %s. Fix your " - "#egg=%s fragments.", - self.name, - metadata_name, - self.name, - ) - self.req = Requirement(metadata_name) - - def check_if_exists(self, use_user_site: bool) -> None: - """Find an installed distribution that satisfies or conflicts - with this requirement, and set self.satisfied_by or - self.should_reinstall appropriately. - """ - if self.req is None: - return - existing_dist = get_distribution(self.req.name) - if not existing_dist: - return - - # pkg_resouces may contain a different copy of packaging.version from - # pip in if the downstream distributor does a poor job debundling pip. - # We avoid existing_dist.parsed_version and let SpecifierSet.contains - # parses the version instead. - existing_version = existing_dist.version - version_compatible = ( - existing_version is not None - and self.req.specifier.contains(existing_version, prereleases=True) - ) - if not version_compatible: - self.satisfied_by = None - if use_user_site: - if dist_in_usersite(existing_dist): - self.should_reinstall = True - elif running_under_virtualenv() and dist_in_site_packages( - existing_dist - ): - raise InstallationError( - "Will not install to the user site because it will " - "lack sys.path precedence to {} in {}".format( - existing_dist.project_name, existing_dist.location - ) - ) - else: - self.should_reinstall = True - else: - if self.editable: - self.should_reinstall = True - # when installing editables, nothing pre-existing should ever - # satisfy - self.satisfied_by = None - else: - self.satisfied_by = existing_dist - - # Things valid for wheels - @property - def is_wheel(self) -> bool: - if not self.link: - return False - return self.link.is_wheel - - # Things valid for sdists - @property - def unpacked_source_directory(self) -> str: - return os.path.join( - self.source_dir, self.link and self.link.subdirectory_fragment or "" - ) - - @property - def setup_py_path(self) -> str: - assert self.source_dir, f"No source dir for {self}" - setup_py = os.path.join(self.unpacked_source_directory, "setup.py") - - return setup_py - - @property - def setup_cfg_path(self) -> str: - assert self.source_dir, f"No source dir for {self}" - setup_cfg = os.path.join(self.unpacked_source_directory, "setup.cfg") - - return setup_cfg - - @property - def pyproject_toml_path(self) -> str: - assert self.source_dir, f"No source dir for {self}" - return make_pyproject_path(self.unpacked_source_directory) - - def load_pyproject_toml(self) -> None: - """Load the pyproject.toml file. - - After calling this routine, all of the attributes related to PEP 517 - processing for this requirement have been set. In particular, the - use_pep517 attribute can be used to determine whether we should - follow the PEP 517 or legacy (setup.py) code path. - """ - pyproject_toml_data = load_pyproject_toml( - self.use_pep517, self.pyproject_toml_path, self.setup_py_path, str(self) - ) - - if pyproject_toml_data is None: - self.use_pep517 = False - return - - self.use_pep517 = True - requires, backend, check, backend_path = pyproject_toml_data - self.requirements_to_check = check - self.pyproject_requires = requires - self.pep517_backend = Pep517HookCaller( - self.unpacked_source_directory, - backend, - backend_path=backend_path, - ) - - def isolated_editable_sanity_check(self) -> None: - """Check that an editable requirement if valid for use with PEP 517/518. - - This verifies that an editable that has a pyproject.toml either supports PEP 660 - or as a setup.py or a setup.cfg - """ - if ( - self.editable - and self.use_pep517 - and not self.supports_pyproject_editable() - and not os.path.isfile(self.setup_py_path) - and not os.path.isfile(self.setup_cfg_path) - ): - raise InstallationError( - f"Project {self} has a 'pyproject.toml' and its build " - f"backend is missing the 'build_editable' hook. Since it does not " - f"have a 'setup.py' nor a 'setup.cfg', " - f"it cannot be installed in editable mode. " - f"Consider using a build backend that supports PEP 660." - ) - - def prepare_metadata(self) -> None: - """Ensure that project metadata is available. - - Under PEP 517 and PEP 660, call the backend hook to prepare the metadata. - Under legacy processing, call setup.py egg-info. - """ - assert self.source_dir - - if self.use_pep517: - assert self.pep517_backend is not None - if ( - self.editable - and self.permit_editable_wheels - and self.supports_pyproject_editable() - ): - self.metadata_directory = generate_editable_metadata( - build_env=self.build_env, - backend=self.pep517_backend, - ) - else: - self.metadata_directory = generate_metadata( - build_env=self.build_env, - backend=self.pep517_backend, - ) - else: - self.metadata_directory = generate_metadata_legacy( - build_env=self.build_env, - setup_py_path=self.setup_py_path, - source_dir=self.unpacked_source_directory, - isolated=self.isolated, - details=self.name or f"from {self.link}", - ) - - # Act on the newly generated metadata, based on the name and version. - if not self.name: - self._set_requirement() - else: - self.warn_on_mismatching_name() - - self.assert_source_matches_version() - - @property - def metadata(self) -> Any: - if not hasattr(self, "_metadata"): - self._metadata = get_metadata(self.get_dist()) - - return self._metadata - - def get_dist(self) -> Distribution: - return _get_dist(self.metadata_directory) - - def assert_source_matches_version(self) -> None: - assert self.source_dir - version = self.metadata["version"] - if self.req.specifier and version not in self.req.specifier: - logger.warning( - "Requested %s, but installing version %s", - self, - version, - ) - else: - logger.debug( - "Source in %s has version %s, which satisfies requirement %s", - display_path(self.source_dir), - version, - self, - ) - - # For both source distributions and editables - def ensure_has_source_dir( - self, - parent_dir: str, - autodelete: bool = False, - parallel_builds: bool = False, - ) -> None: - """Ensure that a source_dir is set. - - This will create a temporary build dir if the name of the requirement - isn't known yet. - - :param parent_dir: The ideal pip parent_dir for the source_dir. - Generally src_dir for editables and build_dir for sdists. - :return: self.source_dir - """ - if self.source_dir is None: - self.source_dir = self.ensure_build_location( - parent_dir, - autodelete=autodelete, - parallel_builds=parallel_builds, - ) - - # For editable installations - def update_editable(self) -> None: - if not self.link: - logger.debug( - "Cannot update repository at %s; repository location is unknown", - self.source_dir, - ) - return - assert self.editable - assert self.source_dir - if self.link.scheme == "file": - # Static paths don't get updated - return - vcs_backend = vcs.get_backend_for_scheme(self.link.scheme) - # Editable requirements are validated in Requirement constructors. - # So here, if it's neither a path nor a valid VCS URL, it's a bug. - assert vcs_backend, f"Unsupported VCS URL {self.link.url}" - hidden_url = hide_url(self.link.url) - vcs_backend.obtain(self.source_dir, url=hidden_url) - - # Top-level Actions - def uninstall( - self, auto_confirm: bool = False, verbose: bool = False - ) -> Optional[UninstallPathSet]: - """ - Uninstall the distribution currently satisfying this requirement. - - Prompts before removing or modifying files unless - ``auto_confirm`` is True. - - Refuses to delete or modify files outside of ``sys.prefix`` - - thus uninstallation within a virtual environment can only - modify that virtual environment, even if the virtualenv is - linked to global site-packages. - - """ - assert self.req - dist = get_distribution(self.req.name) - if not dist: - logger.warning("Skipping %s as it is not installed.", self.name) - return None - logger.info("Found existing installation: %s", dist) - - uninstalled_pathset = UninstallPathSet.from_dist(dist) - uninstalled_pathset.remove(auto_confirm, verbose) - return uninstalled_pathset - - def _get_archive_name(self, path: str, parentdir: str, rootdir: str) -> str: - def _clean_zip_name(name: str, prefix: str) -> str: - assert name.startswith( - prefix + os.path.sep - ), f"name {name!r} doesn't start with prefix {prefix!r}" - name = name[len(prefix) + 1 :] - name = name.replace(os.path.sep, "/") - return name - - path = os.path.join(parentdir, path) - name = _clean_zip_name(path, rootdir) - return self.name + "/" + name - - def archive(self, build_dir: Optional[str]) -> None: - """Saves archive to provided build_dir. - - Used for saving downloaded VCS requirements as part of `pip download`. - """ - assert self.source_dir - if build_dir is None: - return - - create_archive = True - archive_name = "{}-{}.zip".format(self.name, self.metadata["version"]) - archive_path = os.path.join(build_dir, archive_name) - - if os.path.exists(archive_path): - response = ask_path_exists( - "The file {} exists. (i)gnore, (w)ipe, " - "(b)ackup, (a)bort ".format(display_path(archive_path)), - ("i", "w", "b", "a"), - ) - if response == "i": - create_archive = False - elif response == "w": - logger.warning("Deleting %s", display_path(archive_path)) - os.remove(archive_path) - elif response == "b": - dest_file = backup_dir(archive_path) - logger.warning( - "Backing up %s to %s", - display_path(archive_path), - display_path(dest_file), - ) - shutil.move(archive_path, dest_file) - elif response == "a": - sys.exit(-1) - - if not create_archive: - return - - zip_output = zipfile.ZipFile( - archive_path, - "w", - zipfile.ZIP_DEFLATED, - allowZip64=True, - ) - with zip_output: - dir = os.path.normcase(os.path.abspath(self.unpacked_source_directory)) - for dirpath, dirnames, filenames in os.walk(dir): - for dirname in dirnames: - dir_arcname = self._get_archive_name( - dirname, - parentdir=dirpath, - rootdir=dir, - ) - zipdir = zipfile.ZipInfo(dir_arcname + "/") - zipdir.external_attr = 0x1ED << 16 # 0o755 - zip_output.writestr(zipdir, "") - for filename in filenames: - file_arcname = self._get_archive_name( - filename, - parentdir=dirpath, - rootdir=dir, - ) - filename = os.path.join(dirpath, filename) - zip_output.write(filename, file_arcname) - - logger.info("Saved %s", display_path(archive_path)) - - def install( - self, - install_options: List[str], - global_options: Optional[Sequence[str]] = None, - root: Optional[str] = None, - home: Optional[str] = None, - prefix: Optional[str] = None, - warn_script_location: bool = True, - use_user_site: bool = False, - pycompile: bool = True, - ) -> None: - scheme = get_scheme( - self.name, - user=use_user_site, - home=home, - root=root, - isolated=self.isolated, - prefix=prefix, - ) - - global_options = global_options if global_options is not None else [] - if self.editable and not self.is_wheel: - install_editable_legacy( - install_options, - global_options, - prefix=prefix, - home=home, - use_user_site=use_user_site, - name=self.name, - setup_py_path=self.setup_py_path, - isolated=self.isolated, - build_env=self.build_env, - unpacked_source_directory=self.unpacked_source_directory, - ) - self.install_succeeded = True - return - - if self.is_wheel: - assert self.local_file_path - direct_url = None - if self.editable: - direct_url = direct_url_for_editable(self.unpacked_source_directory) - elif self.original_link: - direct_url = direct_url_from_link( - self.original_link, - self.source_dir, - self.original_link_is_in_wheel_cache, - ) - install_wheel( - self.name, - self.local_file_path, - scheme=scheme, - req_description=str(self.req), - pycompile=pycompile, - warn_script_location=warn_script_location, - direct_url=direct_url, - requested=self.user_supplied, - ) - self.install_succeeded = True - return - - # TODO: Why don't we do this for editable installs? - - # Extend the list of global and install options passed on to - # the setup.py call with the ones from the requirements file. - # Options specified in requirements file override those - # specified on the command line, since the last option given - # to setup.py is the one that is used. - global_options = list(global_options) + self.global_options - install_options = list(install_options) + self.install_options - - try: - success = install_legacy( - install_options=install_options, - global_options=global_options, - root=root, - home=home, - prefix=prefix, - use_user_site=use_user_site, - pycompile=pycompile, - scheme=scheme, - setup_py_path=self.setup_py_path, - isolated=self.isolated, - req_name=self.name, - build_env=self.build_env, - unpacked_source_directory=self.unpacked_source_directory, - req_description=str(self.req), - ) - except LegacyInstallFailure as exc: - self.install_succeeded = False - raise exc.__cause__ - except Exception: - self.install_succeeded = True - raise - - self.install_succeeded = success - - if success and self.legacy_install_reason == 8368: - deprecated( - reason=( - "{} was installed using the legacy 'setup.py install' " - "method, because a wheel could not be built for it.".format( - self.name - ) - ), - replacement="to fix the wheel build issue reported above", - gone_in=None, - issue=8368, - ) - - -def check_invalid_constraint_type(req: InstallRequirement) -> str: - - # Check for unsupported forms - problem = "" - if not req.name: - problem = "Unnamed requirements are not allowed as constraints" - elif req.editable: - problem = "Editable requirements are not allowed as constraints" - elif req.extras: - problem = "Constraints cannot have extras" - - if problem: - deprecated( - reason=( - "Constraints are only allowed to take the form of a package " - "name and a version specifier. Other forms were originally " - "permitted as an accident of the implementation, but were " - "undocumented. The new implementation of the resolver no " - "longer supports these forms." - ), - replacement="replacing the constraint with a requirement", - # No plan yet for when the new resolver becomes default - gone_in=None, - issue=8210, - ) - - return problem diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/req_set.py b/.venv/lib/python3.9/site-packages/pip/_internal/req/req_set.py deleted file mode 100644 index 6626c37..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/req/req_set.py +++ /dev/null @@ -1,189 +0,0 @@ -import logging -from collections import OrderedDict -from typing import Dict, Iterable, List, Optional, Tuple - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.exceptions import InstallationError -from pip._internal.models.wheel import Wheel -from pip._internal.req.req_install import InstallRequirement -from pip._internal.utils import compatibility_tags - -logger = logging.getLogger(__name__) - - -class RequirementSet: - def __init__(self, check_supported_wheels: bool = True) -> None: - """Create a RequirementSet.""" - - self.requirements: Dict[str, InstallRequirement] = OrderedDict() - self.check_supported_wheels = check_supported_wheels - - self.unnamed_requirements: List[InstallRequirement] = [] - - def __str__(self) -> str: - requirements = sorted( - (req for req in self.requirements.values() if not req.comes_from), - key=lambda req: canonicalize_name(req.name or ""), - ) - return " ".join(str(req.req) for req in requirements) - - def __repr__(self) -> str: - requirements = sorted( - self.requirements.values(), - key=lambda req: canonicalize_name(req.name or ""), - ) - - format_string = "<{classname} object; {count} requirement(s): {reqs}>" - return format_string.format( - classname=self.__class__.__name__, - count=len(requirements), - reqs=", ".join(str(req.req) for req in requirements), - ) - - def add_unnamed_requirement(self, install_req: InstallRequirement) -> None: - assert not install_req.name - self.unnamed_requirements.append(install_req) - - def add_named_requirement(self, install_req: InstallRequirement) -> None: - assert install_req.name - - project_name = canonicalize_name(install_req.name) - self.requirements[project_name] = install_req - - def add_requirement( - self, - install_req: InstallRequirement, - parent_req_name: Optional[str] = None, - extras_requested: Optional[Iterable[str]] = None, - ) -> Tuple[List[InstallRequirement], Optional[InstallRequirement]]: - """Add install_req as a requirement to install. - - :param parent_req_name: The name of the requirement that needed this - added. The name is used because when multiple unnamed requirements - resolve to the same name, we could otherwise end up with dependency - links that point outside the Requirements set. parent_req must - already be added. Note that None implies that this is a user - supplied requirement, vs an inferred one. - :param extras_requested: an iterable of extras used to evaluate the - environment markers. - :return: Additional requirements to scan. That is either [] if - the requirement is not applicable, or [install_req] if the - requirement is applicable and has just been added. - """ - # If the markers do not match, ignore this requirement. - if not install_req.match_markers(extras_requested): - logger.info( - "Ignoring %s: markers '%s' don't match your environment", - install_req.name, - install_req.markers, - ) - return [], None - - # If the wheel is not supported, raise an error. - # Should check this after filtering out based on environment markers to - # allow specifying different wheels based on the environment/OS, in a - # single requirements file. - if install_req.link and install_req.link.is_wheel: - wheel = Wheel(install_req.link.filename) - tags = compatibility_tags.get_supported() - if self.check_supported_wheels and not wheel.supported(tags): - raise InstallationError( - "{} is not a supported wheel on this platform.".format( - wheel.filename - ) - ) - - # This next bit is really a sanity check. - assert ( - not install_req.user_supplied or parent_req_name is None - ), "a user supplied req shouldn't have a parent" - - # Unnamed requirements are scanned again and the requirement won't be - # added as a dependency until after scanning. - if not install_req.name: - self.add_unnamed_requirement(install_req) - return [install_req], None - - try: - existing_req: Optional[InstallRequirement] = self.get_requirement( - install_req.name - ) - except KeyError: - existing_req = None - - has_conflicting_requirement = ( - parent_req_name is None - and existing_req - and not existing_req.constraint - and existing_req.extras == install_req.extras - and existing_req.req - and install_req.req - and existing_req.req.specifier != install_req.req.specifier - ) - if has_conflicting_requirement: - raise InstallationError( - "Double requirement given: {} (already in {}, name={!r})".format( - install_req, existing_req, install_req.name - ) - ) - - # When no existing requirement exists, add the requirement as a - # dependency and it will be scanned again after. - if not existing_req: - self.add_named_requirement(install_req) - # We'd want to rescan this requirement later - return [install_req], install_req - - # Assume there's no need to scan, and that we've already - # encountered this for scanning. - if install_req.constraint or not existing_req.constraint: - return [], existing_req - - does_not_satisfy_constraint = install_req.link and not ( - existing_req.link and install_req.link.path == existing_req.link.path - ) - if does_not_satisfy_constraint: - raise InstallationError( - "Could not satisfy constraints for '{}': " - "installation from path or url cannot be " - "constrained to a version".format(install_req.name) - ) - # If we're now installing a constraint, mark the existing - # object for real installation. - existing_req.constraint = False - # If we're now installing a user supplied requirement, - # mark the existing object as such. - if install_req.user_supplied: - existing_req.user_supplied = True - existing_req.extras = tuple( - sorted(set(existing_req.extras) | set(install_req.extras)) - ) - logger.debug( - "Setting %s extras to: %s", - existing_req, - existing_req.extras, - ) - # Return the existing requirement for addition to the parent and - # scanning again. - return [existing_req], existing_req - - def has_requirement(self, name: str) -> bool: - project_name = canonicalize_name(name) - - return ( - project_name in self.requirements - and not self.requirements[project_name].constraint - ) - - def get_requirement(self, name: str) -> InstallRequirement: - project_name = canonicalize_name(name) - - if project_name in self.requirements: - return self.requirements[project_name] - - raise KeyError(f"No project with the name {name!r}") - - @property - def all_requirements(self) -> List[InstallRequirement]: - return self.unnamed_requirements + list(self.requirements.values()) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/req_tracker.py b/.venv/lib/python3.9/site-packages/pip/_internal/req/req_tracker.py deleted file mode 100644 index 24d3c53..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/req/req_tracker.py +++ /dev/null @@ -1,124 +0,0 @@ -import contextlib -import hashlib -import logging -import os -from types import TracebackType -from typing import Dict, Iterator, Optional, Set, Type, Union - -from pip._internal.models.link import Link -from pip._internal.req.req_install import InstallRequirement -from pip._internal.utils.temp_dir import TempDirectory - -logger = logging.getLogger(__name__) - - -@contextlib.contextmanager -def update_env_context_manager(**changes: str) -> Iterator[None]: - target = os.environ - - # Save values from the target and change them. - non_existent_marker = object() - saved_values: Dict[str, Union[object, str]] = {} - for name, new_value in changes.items(): - try: - saved_values[name] = target[name] - except KeyError: - saved_values[name] = non_existent_marker - target[name] = new_value - - try: - yield - finally: - # Restore original values in the target. - for name, original_value in saved_values.items(): - if original_value is non_existent_marker: - del target[name] - else: - assert isinstance(original_value, str) # for mypy - target[name] = original_value - - -@contextlib.contextmanager -def get_requirement_tracker() -> Iterator["RequirementTracker"]: - root = os.environ.get("PIP_REQ_TRACKER") - with contextlib.ExitStack() as ctx: - if root is None: - root = ctx.enter_context(TempDirectory(kind="req-tracker")).path - ctx.enter_context(update_env_context_manager(PIP_REQ_TRACKER=root)) - logger.debug("Initialized build tracking at %s", root) - - with RequirementTracker(root) as tracker: - yield tracker - - -class RequirementTracker: - def __init__(self, root: str) -> None: - self._root = root - self._entries: Set[InstallRequirement] = set() - logger.debug("Created build tracker: %s", self._root) - - def __enter__(self) -> "RequirementTracker": - logger.debug("Entered build tracker: %s", self._root) - return self - - def __exit__( - self, - exc_type: Optional[Type[BaseException]], - exc_val: Optional[BaseException], - exc_tb: Optional[TracebackType], - ) -> None: - self.cleanup() - - def _entry_path(self, link: Link) -> str: - hashed = hashlib.sha224(link.url_without_fragment.encode()).hexdigest() - return os.path.join(self._root, hashed) - - def add(self, req: InstallRequirement) -> None: - """Add an InstallRequirement to build tracking.""" - - assert req.link - # Get the file to write information about this requirement. - entry_path = self._entry_path(req.link) - - # Try reading from the file. If it exists and can be read from, a build - # is already in progress, so a LookupError is raised. - try: - with open(entry_path) as fp: - contents = fp.read() - except FileNotFoundError: - pass - else: - message = "{} is already being built: {}".format(req.link, contents) - raise LookupError(message) - - # If we're here, req should really not be building already. - assert req not in self._entries - - # Start tracking this requirement. - with open(entry_path, "w", encoding="utf-8") as fp: - fp.write(str(req)) - self._entries.add(req) - - logger.debug("Added %s to build tracker %r", req, self._root) - - def remove(self, req: InstallRequirement) -> None: - """Remove an InstallRequirement from build tracking.""" - - assert req.link - # Delete the created file and the corresponding entries. - os.unlink(self._entry_path(req.link)) - self._entries.remove(req) - - logger.debug("Removed %s from build tracker %r", req, self._root) - - def cleanup(self) -> None: - for req in set(self._entries): - self.remove(req) - - logger.debug("Removed build tracker: %r", self._root) - - @contextlib.contextmanager - def track(self, req: InstallRequirement) -> Iterator[None]: - self.add(req) - yield - self.remove(req) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py b/.venv/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py deleted file mode 100644 index 779e93b..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py +++ /dev/null @@ -1,633 +0,0 @@ -import csv -import functools -import os -import sys -import sysconfig -from importlib.util import cache_from_source -from typing import Any, Callable, Dict, Iterable, Iterator, List, Optional, Set, Tuple - -from pip._vendor import pkg_resources -from pip._vendor.pkg_resources import Distribution - -from pip._internal.exceptions import UninstallationError -from pip._internal.locations import get_bin_prefix, get_bin_user -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.egg_link import egg_link_path_from_location -from pip._internal.utils.logging import getLogger, indent_log -from pip._internal.utils.misc import ( - ask, - dist_in_usersite, - dist_is_local, - is_local, - normalize_path, - renames, - rmtree, -) -from pip._internal.utils.temp_dir import AdjacentTempDirectory, TempDirectory - -logger = getLogger(__name__) - - -def _script_names(dist: Distribution, script_name: str, is_gui: bool) -> List[str]: - """Create the fully qualified name of the files created by - {console,gui}_scripts for the given ``dist``. - Returns the list of file names - """ - if dist_in_usersite(dist): - bin_dir = get_bin_user() - else: - bin_dir = get_bin_prefix() - exe_name = os.path.join(bin_dir, script_name) - paths_to_remove = [exe_name] - if WINDOWS: - paths_to_remove.append(exe_name + ".exe") - paths_to_remove.append(exe_name + ".exe.manifest") - if is_gui: - paths_to_remove.append(exe_name + "-script.pyw") - else: - paths_to_remove.append(exe_name + "-script.py") - return paths_to_remove - - -def _unique(fn: Callable[..., Iterator[Any]]) -> Callable[..., Iterator[Any]]: - @functools.wraps(fn) - def unique(*args: Any, **kw: Any) -> Iterator[Any]: - seen: Set[Any] = set() - for item in fn(*args, **kw): - if item not in seen: - seen.add(item) - yield item - - return unique - - -@_unique -def uninstallation_paths(dist: Distribution) -> Iterator[str]: - """ - Yield all the uninstallation paths for dist based on RECORD-without-.py[co] - - Yield paths to all the files in RECORD. For each .py file in RECORD, add - the .pyc and .pyo in the same directory. - - UninstallPathSet.add() takes care of the __pycache__ .py[co]. - - If RECORD is not found, raises UninstallationError, - with possible information from the INSTALLER file. - - https://packaging.python.org/specifications/recording-installed-packages/ - """ - try: - r = csv.reader(dist.get_metadata_lines("RECORD")) - except FileNotFoundError as missing_record_exception: - msg = "Cannot uninstall {dist}, RECORD file not found.".format(dist=dist) - try: - installer = next(dist.get_metadata_lines("INSTALLER")) - if not installer or installer == "pip": - raise ValueError() - except (OSError, StopIteration, ValueError): - dep = "{}=={}".format(dist.project_name, dist.version) - msg += ( - " You might be able to recover from this via: " - "'pip install --force-reinstall --no-deps {}'.".format(dep) - ) - else: - msg += " Hint: The package was installed by {}.".format(installer) - raise UninstallationError(msg) from missing_record_exception - for row in r: - path = os.path.join(dist.location, row[0]) - yield path - if path.endswith(".py"): - dn, fn = os.path.split(path) - base = fn[:-3] - path = os.path.join(dn, base + ".pyc") - yield path - path = os.path.join(dn, base + ".pyo") - yield path - - -def compact(paths: Iterable[str]) -> Set[str]: - """Compact a path set to contain the minimal number of paths - necessary to contain all paths in the set. If /a/path/ and - /a/path/to/a/file.txt are both in the set, leave only the - shorter path.""" - - sep = os.path.sep - short_paths: Set[str] = set() - for path in sorted(paths, key=len): - should_skip = any( - path.startswith(shortpath.rstrip("*")) - and path[len(shortpath.rstrip("*").rstrip(sep))] == sep - for shortpath in short_paths - ) - if not should_skip: - short_paths.add(path) - return short_paths - - -def compress_for_rename(paths: Iterable[str]) -> Set[str]: - """Returns a set containing the paths that need to be renamed. - - This set may include directories when the original sequence of paths - included every file on disk. - """ - case_map = {os.path.normcase(p): p for p in paths} - remaining = set(case_map) - unchecked = sorted({os.path.split(p)[0] for p in case_map.values()}, key=len) - wildcards: Set[str] = set() - - def norm_join(*a: str) -> str: - return os.path.normcase(os.path.join(*a)) - - for root in unchecked: - if any(os.path.normcase(root).startswith(w) for w in wildcards): - # This directory has already been handled. - continue - - all_files: Set[str] = set() - all_subdirs: Set[str] = set() - for dirname, subdirs, files in os.walk(root): - all_subdirs.update(norm_join(root, dirname, d) for d in subdirs) - all_files.update(norm_join(root, dirname, f) for f in files) - # If all the files we found are in our remaining set of files to - # remove, then remove them from the latter set and add a wildcard - # for the directory. - if not (all_files - remaining): - remaining.difference_update(all_files) - wildcards.add(root + os.sep) - - return set(map(case_map.__getitem__, remaining)) | wildcards - - -def compress_for_output_listing(paths: Iterable[str]) -> Tuple[Set[str], Set[str]]: - """Returns a tuple of 2 sets of which paths to display to user - - The first set contains paths that would be deleted. Files of a package - are not added and the top-level directory of the package has a '*' added - at the end - to signify that all it's contents are removed. - - The second set contains files that would have been skipped in the above - folders. - """ - - will_remove = set(paths) - will_skip = set() - - # Determine folders and files - folders = set() - files = set() - for path in will_remove: - if path.endswith(".pyc"): - continue - if path.endswith("__init__.py") or ".dist-info" in path: - folders.add(os.path.dirname(path)) - files.add(path) - - # probably this one https://github.com/python/mypy/issues/390 - _normcased_files = set(map(os.path.normcase, files)) # type: ignore - - folders = compact(folders) - - # This walks the tree using os.walk to not miss extra folders - # that might get added. - for folder in folders: - for dirpath, _, dirfiles in os.walk(folder): - for fname in dirfiles: - if fname.endswith(".pyc"): - continue - - file_ = os.path.join(dirpath, fname) - if ( - os.path.isfile(file_) - and os.path.normcase(file_) not in _normcased_files - ): - # We are skipping this file. Add it to the set. - will_skip.add(file_) - - will_remove = files | {os.path.join(folder, "*") for folder in folders} - - return will_remove, will_skip - - -class StashedUninstallPathSet: - """A set of file rename operations to stash files while - tentatively uninstalling them.""" - - def __init__(self) -> None: - # Mapping from source file root to [Adjacent]TempDirectory - # for files under that directory. - self._save_dirs: Dict[str, TempDirectory] = {} - # (old path, new path) tuples for each move that may need - # to be undone. - self._moves: List[Tuple[str, str]] = [] - - def _get_directory_stash(self, path: str) -> str: - """Stashes a directory. - - Directories are stashed adjacent to their original location if - possible, or else moved/copied into the user's temp dir.""" - - try: - save_dir: TempDirectory = AdjacentTempDirectory(path) - except OSError: - save_dir = TempDirectory(kind="uninstall") - self._save_dirs[os.path.normcase(path)] = save_dir - - return save_dir.path - - def _get_file_stash(self, path: str) -> str: - """Stashes a file. - - If no root has been provided, one will be created for the directory - in the user's temp directory.""" - path = os.path.normcase(path) - head, old_head = os.path.dirname(path), None - save_dir = None - - while head != old_head: - try: - save_dir = self._save_dirs[head] - break - except KeyError: - pass - head, old_head = os.path.dirname(head), head - else: - # Did not find any suitable root - head = os.path.dirname(path) - save_dir = TempDirectory(kind="uninstall") - self._save_dirs[head] = save_dir - - relpath = os.path.relpath(path, head) - if relpath and relpath != os.path.curdir: - return os.path.join(save_dir.path, relpath) - return save_dir.path - - def stash(self, path: str) -> str: - """Stashes the directory or file and returns its new location. - Handle symlinks as files to avoid modifying the symlink targets. - """ - path_is_dir = os.path.isdir(path) and not os.path.islink(path) - if path_is_dir: - new_path = self._get_directory_stash(path) - else: - new_path = self._get_file_stash(path) - - self._moves.append((path, new_path)) - if path_is_dir and os.path.isdir(new_path): - # If we're moving a directory, we need to - # remove the destination first or else it will be - # moved to inside the existing directory. - # We just created new_path ourselves, so it will - # be removable. - os.rmdir(new_path) - renames(path, new_path) - return new_path - - def commit(self) -> None: - """Commits the uninstall by removing stashed files.""" - for _, save_dir in self._save_dirs.items(): - save_dir.cleanup() - self._moves = [] - self._save_dirs = {} - - def rollback(self) -> None: - """Undoes the uninstall by moving stashed files back.""" - for p in self._moves: - logger.info("Moving to %s\n from %s", *p) - - for new_path, path in self._moves: - try: - logger.debug("Replacing %s from %s", new_path, path) - if os.path.isfile(new_path) or os.path.islink(new_path): - os.unlink(new_path) - elif os.path.isdir(new_path): - rmtree(new_path) - renames(path, new_path) - except OSError as ex: - logger.error("Failed to restore %s", new_path) - logger.debug("Exception: %s", ex) - - self.commit() - - @property - def can_rollback(self) -> bool: - return bool(self._moves) - - -class UninstallPathSet: - """A set of file paths to be removed in the uninstallation of a - requirement.""" - - def __init__(self, dist: Distribution) -> None: - self.paths: Set[str] = set() - self._refuse: Set[str] = set() - self.pth: Dict[str, UninstallPthEntries] = {} - self.dist = dist - self._moved_paths = StashedUninstallPathSet() - - def _permitted(self, path: str) -> bool: - """ - Return True if the given path is one we are permitted to - remove/modify, False otherwise. - - """ - return is_local(path) - - def add(self, path: str) -> None: - head, tail = os.path.split(path) - - # we normalize the head to resolve parent directory symlinks, but not - # the tail, since we only want to uninstall symlinks, not their targets - path = os.path.join(normalize_path(head), os.path.normcase(tail)) - - if not os.path.exists(path): - return - if self._permitted(path): - self.paths.add(path) - else: - self._refuse.add(path) - - # __pycache__ files can show up after 'installed-files.txt' is created, - # due to imports - if os.path.splitext(path)[1] == ".py": - self.add(cache_from_source(path)) - - def add_pth(self, pth_file: str, entry: str) -> None: - pth_file = normalize_path(pth_file) - if self._permitted(pth_file): - if pth_file not in self.pth: - self.pth[pth_file] = UninstallPthEntries(pth_file) - self.pth[pth_file].add(entry) - else: - self._refuse.add(pth_file) - - def remove(self, auto_confirm: bool = False, verbose: bool = False) -> None: - """Remove paths in ``self.paths`` with confirmation (unless - ``auto_confirm`` is True).""" - - if not self.paths: - logger.info( - "Can't uninstall '%s'. No files were found to uninstall.", - self.dist.project_name, - ) - return - - dist_name_version = self.dist.project_name + "-" + self.dist.version - logger.info("Uninstalling %s:", dist_name_version) - - with indent_log(): - if auto_confirm or self._allowed_to_proceed(verbose): - moved = self._moved_paths - - for_rename = compress_for_rename(self.paths) - - for path in sorted(compact(for_rename)): - moved.stash(path) - logger.verbose("Removing file or directory %s", path) - - for pth in self.pth.values(): - pth.remove() - - logger.info("Successfully uninstalled %s", dist_name_version) - - def _allowed_to_proceed(self, verbose: bool) -> bool: - """Display which files would be deleted and prompt for confirmation""" - - def _display(msg: str, paths: Iterable[str]) -> None: - if not paths: - return - - logger.info(msg) - with indent_log(): - for path in sorted(compact(paths)): - logger.info(path) - - if not verbose: - will_remove, will_skip = compress_for_output_listing(self.paths) - else: - # In verbose mode, display all the files that are going to be - # deleted. - will_remove = set(self.paths) - will_skip = set() - - _display("Would remove:", will_remove) - _display("Would not remove (might be manually added):", will_skip) - _display("Would not remove (outside of prefix):", self._refuse) - if verbose: - _display("Will actually move:", compress_for_rename(self.paths)) - - return ask("Proceed (Y/n)? ", ("y", "n", "")) != "n" - - def rollback(self) -> None: - """Rollback the changes previously made by remove().""" - if not self._moved_paths.can_rollback: - logger.error( - "Can't roll back %s; was not uninstalled", - self.dist.project_name, - ) - return - logger.info("Rolling back uninstall of %s", self.dist.project_name) - self._moved_paths.rollback() - for pth in self.pth.values(): - pth.rollback() - - def commit(self) -> None: - """Remove temporary save dir: rollback will no longer be possible.""" - self._moved_paths.commit() - - @classmethod - def from_dist(cls, dist: Distribution) -> "UninstallPathSet": - dist_path = normalize_path(dist.location) - if not dist_is_local(dist): - logger.info( - "Not uninstalling %s at %s, outside environment %s", - dist.key, - dist_path, - sys.prefix, - ) - return cls(dist) - - if dist_path in { - p - for p in {sysconfig.get_path("stdlib"), sysconfig.get_path("platstdlib")} - if p - }: - logger.info( - "Not uninstalling %s at %s, as it is in the standard library.", - dist.key, - dist_path, - ) - return cls(dist) - - paths_to_remove = cls(dist) - develop_egg_link = egg_link_path_from_location(dist.project_name) - develop_egg_link_egg_info = "{}.egg-info".format( - pkg_resources.to_filename(dist.project_name) - ) - egg_info_exists = dist.egg_info and os.path.exists(dist.egg_info) - # Special case for distutils installed package - distutils_egg_info = getattr(dist._provider, "path", None) - - # Uninstall cases order do matter as in the case of 2 installs of the - # same package, pip needs to uninstall the currently detected version - if ( - egg_info_exists - and dist.egg_info.endswith(".egg-info") - and not dist.egg_info.endswith(develop_egg_link_egg_info) - ): - # if dist.egg_info.endswith(develop_egg_link_egg_info), we - # are in fact in the develop_egg_link case - paths_to_remove.add(dist.egg_info) - if dist.has_metadata("installed-files.txt"): - for installed_file in dist.get_metadata( - "installed-files.txt" - ).splitlines(): - path = os.path.normpath(os.path.join(dist.egg_info, installed_file)) - paths_to_remove.add(path) - # FIXME: need a test for this elif block - # occurs with --single-version-externally-managed/--record outside - # of pip - elif dist.has_metadata("top_level.txt"): - if dist.has_metadata("namespace_packages.txt"): - namespaces = dist.get_metadata("namespace_packages.txt") - else: - namespaces = [] - for top_level_pkg in [ - p - for p in dist.get_metadata("top_level.txt").splitlines() - if p and p not in namespaces - ]: - path = os.path.join(dist.location, top_level_pkg) - paths_to_remove.add(path) - paths_to_remove.add(path + ".py") - paths_to_remove.add(path + ".pyc") - paths_to_remove.add(path + ".pyo") - - elif distutils_egg_info: - raise UninstallationError( - "Cannot uninstall {!r}. It is a distutils installed project " - "and thus we cannot accurately determine which files belong " - "to it which would lead to only a partial uninstall.".format( - dist.project_name, - ) - ) - - elif dist.location.endswith(".egg"): - # package installed by easy_install - # We cannot match on dist.egg_name because it can slightly vary - # i.e. setuptools-0.6c11-py2.6.egg vs setuptools-0.6rc11-py2.6.egg - paths_to_remove.add(dist.location) - easy_install_egg = os.path.split(dist.location)[1] - easy_install_pth = os.path.join( - os.path.dirname(dist.location), "easy-install.pth" - ) - paths_to_remove.add_pth(easy_install_pth, "./" + easy_install_egg) - - elif egg_info_exists and dist.egg_info.endswith(".dist-info"): - for path in uninstallation_paths(dist): - paths_to_remove.add(path) - - elif develop_egg_link: - # develop egg - with open(develop_egg_link) as fh: - link_pointer = os.path.normcase(fh.readline().strip()) - assert ( - link_pointer == dist.location - ), "Egg-link {} does not match installed location of {} (at {})".format( - link_pointer, dist.project_name, dist.location - ) - paths_to_remove.add(develop_egg_link) - easy_install_pth = os.path.join( - os.path.dirname(develop_egg_link), "easy-install.pth" - ) - paths_to_remove.add_pth(easy_install_pth, dist.location) - - else: - logger.debug( - "Not sure how to uninstall: %s - Check: %s", - dist, - dist.location, - ) - - # find distutils scripts= scripts - if dist.has_metadata("scripts") and dist.metadata_isdir("scripts"): - for script in dist.metadata_listdir("scripts"): - if dist_in_usersite(dist): - bin_dir = get_bin_user() - else: - bin_dir = get_bin_prefix() - paths_to_remove.add(os.path.join(bin_dir, script)) - if WINDOWS: - paths_to_remove.add(os.path.join(bin_dir, script) + ".bat") - - # find console_scripts - _scripts_to_remove = [] - console_scripts = dist.get_entry_map(group="console_scripts") - for name in console_scripts.keys(): - _scripts_to_remove.extend(_script_names(dist, name, False)) - # find gui_scripts - gui_scripts = dist.get_entry_map(group="gui_scripts") - for name in gui_scripts.keys(): - _scripts_to_remove.extend(_script_names(dist, name, True)) - - for s in _scripts_to_remove: - paths_to_remove.add(s) - - return paths_to_remove - - -class UninstallPthEntries: - def __init__(self, pth_file: str) -> None: - self.file = pth_file - self.entries: Set[str] = set() - self._saved_lines: Optional[List[bytes]] = None - - def add(self, entry: str) -> None: - entry = os.path.normcase(entry) - # On Windows, os.path.normcase converts the entry to use - # backslashes. This is correct for entries that describe absolute - # paths outside of site-packages, but all the others use forward - # slashes. - # os.path.splitdrive is used instead of os.path.isabs because isabs - # treats non-absolute paths with drive letter markings like c:foo\bar - # as absolute paths. It also does not recognize UNC paths if they don't - # have more than "\\sever\share". Valid examples: "\\server\share\" or - # "\\server\share\folder". - if WINDOWS and not os.path.splitdrive(entry)[0]: - entry = entry.replace("\\", "/") - self.entries.add(entry) - - def remove(self) -> None: - logger.verbose("Removing pth entries from %s:", self.file) - - # If the file doesn't exist, log a warning and return - if not os.path.isfile(self.file): - logger.warning("Cannot remove entries from nonexistent file %s", self.file) - return - with open(self.file, "rb") as fh: - # windows uses '\r\n' with py3k, but uses '\n' with py2.x - lines = fh.readlines() - self._saved_lines = lines - if any(b"\r\n" in line for line in lines): - endline = "\r\n" - else: - endline = "\n" - # handle missing trailing newline - if lines and not lines[-1].endswith(endline.encode("utf-8")): - lines[-1] = lines[-1] + endline.encode("utf-8") - for entry in self.entries: - try: - logger.verbose("Removing entry: %s", entry) - lines.remove((entry + endline).encode("utf-8")) - except ValueError: - pass - with open(self.file, "wb") as fh: - fh.writelines(lines) - - def rollback(self) -> bool: - if self._saved_lines is None: - logger.error("Cannot roll back changes to %s, none were made", self.file) - return False - logger.debug("Rolling %s back to previous state", self.file) - with open(self.file, "wb") as fh: - fh.writelines(self._saved_lines) - return True diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index cc6de80a0e1f6398d28366a6568f294239b4d61c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmYk0u?@m76hs|~0wHCP6yz6FNC+_j4FgzC@*xh6ZTbHMG72NG24m1N0v#201t;A* z-BqXZd?BK4kD^QYO88e6%PyK`5sf&ABHQ0ZNb?ULhSv26m8SNhIz$FWVz78*Nf<^9 zlCM_!;A$j-azs0V(G~cKTW4408b~uPy{gaZgalrDklHc^s|*ArX9m{Jf{d$XDN8>+ P=bPR&gTZZj^Nto@d15*u diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/__pycache__/base.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/__pycache__/base.cpython-39.pyc deleted file mode 100644 index a7a9385973175591b57ebb0faef741092129ccbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1064 zcmZ{j&2AGh5XWurM>cI*psgwei4&(ikUbzFAt8jQP*n*9)ZX@DZQ^ONWxrxODdkA} z5=ec4z6OusD<@uoLt$n^OAy79C*zq}`!|0(*~Z2i!|~;7e6lYX`$mh^;p5^JPIHJx zF~tj3@|2e%6{VMYoMNKz%ODL}-z&nhlXf@*4iR_|^w~r}a4h;P?d~(>tKfpE;9R6@ zDm-Fw=R5ApV$Vf;Sy5!80-XOgH`Yb(8k^TuR>a(G9aP3*`VeOGTtf+!#pveB@(Aph zHd-CG=+7_;Eai%&0+IYag8)LsFFhrccj2cU2$yl?UkVkd5Mz<*AYSBpuQLOOVCrH4 z8acbVuC3HCGj4Z0h4BYz=1o&;3re0&0Se0(yA7!I#3A_i1NUo5AmbSWxW@F|4LW$89lvfP?)1$e`CTr)m3G z=uPss$WXgWb00moI{}NF?Q_ToP}W+3et@|fs>gp(-CaM7yDpNl%1V&Ztw~wdYF?1v zlX5oCie*OAwdsHk_D6MH=#bWQnBFGy2d?#qPeMpah3%pj VO9@`m^|b6eqQ`qe@Xeoo@C&S|5HA1# diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/base.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/base.py deleted file mode 100644 index 42dade1..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/base.py +++ /dev/null @@ -1,20 +0,0 @@ -from typing import Callable, List, Optional - -from pip._internal.req.req_install import InstallRequirement -from pip._internal.req.req_set import RequirementSet - -InstallRequirementProvider = Callable[ - [str, Optional[InstallRequirement]], InstallRequirement -] - - -class BaseResolver: - def resolve( - self, root_reqs: List[InstallRequirement], check_supported_wheels: bool - ) -> RequirementSet: - raise NotImplementedError() - - def get_installation_order( - self, req_set: RequirementSet - ) -> List[InstallRequirement]: - raise NotImplementedError() diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 7eb21216e9e716b58f3f2d144a08f06003d1a8bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmYk0u?@m75Jeq{0wHCP6yypjB!rlNh5;-mIT8oQwtSaB#3YQs8jL~92y|396@2Nx zum7((m8J_3b$ev(l&=Z@N@CeX(=4JA2azTFy9m?#!{-W(>ktY}%~`dG42;BJ@yL=e z3>YL|tn|T^NCf$Sb^xOb@FO?QuJSdIW?Xtzo>YwlUVD(*G6t&*1SDsA*3N>#T9qTn Wc+@Oq?#JhR)48fQxSgJQM~g2m=RC~- diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc deleted file mode 100644 index f1b1a712e2fe3007ad080370a308ec10ec714e81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12223 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py deleted file mode 100644 index 09caaa6..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py +++ /dev/null @@ -1,467 +0,0 @@ -"""Dependency Resolution - -The dependency resolution in pip is performed as follows: - -for top-level requirements: - a. only one spec allowed per project, regardless of conflicts or not. - otherwise a "double requirement" exception is raised - b. they override sub-dependency requirements. -for sub-dependencies - a. "first found, wins" (where the order is breadth first) -""" - -# The following comment should be removed at some point in the future. -# mypy: strict-optional=False - -import logging -import sys -from collections import defaultdict -from itertools import chain -from typing import DefaultDict, Iterable, List, Optional, Set, Tuple - -from pip._vendor.packaging import specifiers -from pip._vendor.packaging.requirements import Requirement - -from pip._internal.cache import WheelCache -from pip._internal.exceptions import ( - BestVersionAlreadyInstalled, - DistributionNotFound, - HashError, - HashErrors, - NoneMetadataError, - UnsupportedPythonVersion, -) -from pip._internal.index.package_finder import PackageFinder -from pip._internal.metadata import BaseDistribution -from pip._internal.models.link import Link -from pip._internal.operations.prepare import RequirementPreparer -from pip._internal.req.req_install import ( - InstallRequirement, - check_invalid_constraint_type, -) -from pip._internal.req.req_set import RequirementSet -from pip._internal.resolution.base import BaseResolver, InstallRequirementProvider -from pip._internal.utils.compatibility_tags import get_supported -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import dist_in_usersite, normalize_version_info -from pip._internal.utils.packaging import check_requires_python - -logger = logging.getLogger(__name__) - -DiscoveredDependencies = DefaultDict[str, List[InstallRequirement]] - - -def _check_dist_requires_python( - dist: BaseDistribution, - version_info: Tuple[int, int, int], - ignore_requires_python: bool = False, -) -> None: - """ - Check whether the given Python version is compatible with a distribution's - "Requires-Python" value. - - :param version_info: A 3-tuple of ints representing the Python - major-minor-micro version to check. - :param ignore_requires_python: Whether to ignore the "Requires-Python" - value if the given Python version isn't compatible. - - :raises UnsupportedPythonVersion: When the given Python version isn't - compatible. - """ - # This idiosyncratically converts the SpecifierSet to str and let - # check_requires_python then parse it again into SpecifierSet. But this - # is the legacy resolver so I'm just not going to bother refactoring. - try: - requires_python = str(dist.requires_python) - except FileNotFoundError as e: - raise NoneMetadataError(dist, str(e)) - try: - is_compatible = check_requires_python( - requires_python, - version_info=version_info, - ) - except specifiers.InvalidSpecifier as exc: - logger.warning( - "Package %r has an invalid Requires-Python: %s", dist.raw_name, exc - ) - return - - if is_compatible: - return - - version = ".".join(map(str, version_info)) - if ignore_requires_python: - logger.debug( - "Ignoring failed Requires-Python check for package %r: %s not in %r", - dist.raw_name, - version, - requires_python, - ) - return - - raise UnsupportedPythonVersion( - "Package {!r} requires a different Python: {} not in {!r}".format( - dist.raw_name, version, requires_python - ) - ) - - -class Resolver(BaseResolver): - """Resolves which packages need to be installed/uninstalled to perform \ - the requested operation without breaking the requirements of any package. - """ - - _allowed_strategies = {"eager", "only-if-needed", "to-satisfy-only"} - - def __init__( - self, - preparer: RequirementPreparer, - finder: PackageFinder, - wheel_cache: Optional[WheelCache], - make_install_req: InstallRequirementProvider, - use_user_site: bool, - ignore_dependencies: bool, - ignore_installed: bool, - ignore_requires_python: bool, - force_reinstall: bool, - upgrade_strategy: str, - py_version_info: Optional[Tuple[int, ...]] = None, - ) -> None: - super().__init__() - assert upgrade_strategy in self._allowed_strategies - - if py_version_info is None: - py_version_info = sys.version_info[:3] - else: - py_version_info = normalize_version_info(py_version_info) - - self._py_version_info = py_version_info - - self.preparer = preparer - self.finder = finder - self.wheel_cache = wheel_cache - - self.upgrade_strategy = upgrade_strategy - self.force_reinstall = force_reinstall - self.ignore_dependencies = ignore_dependencies - self.ignore_installed = ignore_installed - self.ignore_requires_python = ignore_requires_python - self.use_user_site = use_user_site - self._make_install_req = make_install_req - - self._discovered_dependencies: DiscoveredDependencies = defaultdict(list) - - def resolve( - self, root_reqs: List[InstallRequirement], check_supported_wheels: bool - ) -> RequirementSet: - """Resolve what operations need to be done - - As a side-effect of this method, the packages (and their dependencies) - are downloaded, unpacked and prepared for installation. This - preparation is done by ``pip.operations.prepare``. - - Once PyPI has static dependency metadata available, it would be - possible to move the preparation to become a step separated from - dependency resolution. - """ - requirement_set = RequirementSet(check_supported_wheels=check_supported_wheels) - for req in root_reqs: - if req.constraint: - check_invalid_constraint_type(req) - requirement_set.add_requirement(req) - - # Actually prepare the files, and collect any exceptions. Most hash - # exceptions cannot be checked ahead of time, because - # _populate_link() needs to be called before we can make decisions - # based on link type. - discovered_reqs: List[InstallRequirement] = [] - hash_errors = HashErrors() - for req in chain(requirement_set.all_requirements, discovered_reqs): - try: - discovered_reqs.extend(self._resolve_one(requirement_set, req)) - except HashError as exc: - exc.req = req - hash_errors.append(exc) - - if hash_errors: - raise hash_errors - - return requirement_set - - def _is_upgrade_allowed(self, req: InstallRequirement) -> bool: - if self.upgrade_strategy == "to-satisfy-only": - return False - elif self.upgrade_strategy == "eager": - return True - else: - assert self.upgrade_strategy == "only-if-needed" - return req.user_supplied or req.constraint - - def _set_req_to_reinstall(self, req: InstallRequirement) -> None: - """ - Set a requirement to be installed. - """ - # Don't uninstall the conflict if doing a user install and the - # conflict is not a user install. - if not self.use_user_site or dist_in_usersite(req.satisfied_by): - req.should_reinstall = True - req.satisfied_by = None - - def _check_skip_installed( - self, req_to_install: InstallRequirement - ) -> Optional[str]: - """Check if req_to_install should be skipped. - - This will check if the req is installed, and whether we should upgrade - or reinstall it, taking into account all the relevant user options. - - After calling this req_to_install will only have satisfied_by set to - None if the req_to_install is to be upgraded/reinstalled etc. Any - other value will be a dist recording the current thing installed that - satisfies the requirement. - - Note that for vcs urls and the like we can't assess skipping in this - routine - we simply identify that we need to pull the thing down, - then later on it is pulled down and introspected to assess upgrade/ - reinstalls etc. - - :return: A text reason for why it was skipped, or None. - """ - if self.ignore_installed: - return None - - req_to_install.check_if_exists(self.use_user_site) - if not req_to_install.satisfied_by: - return None - - if self.force_reinstall: - self._set_req_to_reinstall(req_to_install) - return None - - if not self._is_upgrade_allowed(req_to_install): - if self.upgrade_strategy == "only-if-needed": - return "already satisfied, skipping upgrade" - return "already satisfied" - - # Check for the possibility of an upgrade. For link-based - # requirements we have to pull the tree down and inspect to assess - # the version #, so it's handled way down. - if not req_to_install.link: - try: - self.finder.find_requirement(req_to_install, upgrade=True) - except BestVersionAlreadyInstalled: - # Then the best version is installed. - return "already up-to-date" - except DistributionNotFound: - # No distribution found, so we squash the error. It will - # be raised later when we re-try later to do the install. - # Why don't we just raise here? - pass - - self._set_req_to_reinstall(req_to_install) - return None - - def _find_requirement_link(self, req: InstallRequirement) -> Optional[Link]: - upgrade = self._is_upgrade_allowed(req) - best_candidate = self.finder.find_requirement(req, upgrade) - if not best_candidate: - return None - - # Log a warning per PEP 592 if necessary before returning. - link = best_candidate.link - if link.is_yanked: - reason = link.yanked_reason or "" - msg = ( - # Mark this as a unicode string to prevent - # "UnicodeEncodeError: 'ascii' codec can't encode character" - # in Python 2 when the reason contains non-ascii characters. - "The candidate selected for download or install is a " - "yanked version: {candidate}\n" - "Reason for being yanked: {reason}" - ).format(candidate=best_candidate, reason=reason) - logger.warning(msg) - - return link - - def _populate_link(self, req: InstallRequirement) -> None: - """Ensure that if a link can be found for this, that it is found. - - Note that req.link may still be None - if the requirement is already - installed and not needed to be upgraded based on the return value of - _is_upgrade_allowed(). - - If preparer.require_hashes is True, don't use the wheel cache, because - cached wheels, always built locally, have different hashes than the - files downloaded from the index server and thus throw false hash - mismatches. Furthermore, cached wheels at present have undeterministic - contents due to file modification times. - """ - if req.link is None: - req.link = self._find_requirement_link(req) - - if self.wheel_cache is None or self.preparer.require_hashes: - return - cache_entry = self.wheel_cache.get_cache_entry( - link=req.link, - package_name=req.name, - supported_tags=get_supported(), - ) - if cache_entry is not None: - logger.debug("Using cached wheel link: %s", cache_entry.link) - if req.link is req.original_link and cache_entry.persistent: - req.original_link_is_in_wheel_cache = True - req.link = cache_entry.link - - def _get_dist_for(self, req: InstallRequirement) -> BaseDistribution: - """Takes a InstallRequirement and returns a single AbstractDist \ - representing a prepared variant of the same. - """ - if req.editable: - return self.preparer.prepare_editable_requirement(req) - - # satisfied_by is only evaluated by calling _check_skip_installed, - # so it must be None here. - assert req.satisfied_by is None - skip_reason = self._check_skip_installed(req) - - if req.satisfied_by: - return self.preparer.prepare_installed_requirement(req, skip_reason) - - # We eagerly populate the link, since that's our "legacy" behavior. - self._populate_link(req) - dist = self.preparer.prepare_linked_requirement(req) - - # NOTE - # The following portion is for determining if a certain package is - # going to be re-installed/upgraded or not and reporting to the user. - # This should probably get cleaned up in a future refactor. - - # req.req is only avail after unpack for URL - # pkgs repeat check_if_exists to uninstall-on-upgrade - # (#14) - if not self.ignore_installed: - req.check_if_exists(self.use_user_site) - - if req.satisfied_by: - should_modify = ( - self.upgrade_strategy != "to-satisfy-only" - or self.force_reinstall - or self.ignore_installed - or req.link.scheme == "file" - ) - if should_modify: - self._set_req_to_reinstall(req) - else: - logger.info( - "Requirement already satisfied (use --upgrade to upgrade): %s", - req, - ) - return dist - - def _resolve_one( - self, - requirement_set: RequirementSet, - req_to_install: InstallRequirement, - ) -> List[InstallRequirement]: - """Prepare a single requirements file. - - :return: A list of additional InstallRequirements to also install. - """ - # Tell user what we are doing for this requirement: - # obtain (editable), skipping, processing (local url), collecting - # (remote url or package name) - if req_to_install.constraint or req_to_install.prepared: - return [] - - req_to_install.prepared = True - - # Parse and return dependencies - dist = self._get_dist_for(req_to_install) - # This will raise UnsupportedPythonVersion if the given Python - # version isn't compatible with the distribution's Requires-Python. - _check_dist_requires_python( - dist, - version_info=self._py_version_info, - ignore_requires_python=self.ignore_requires_python, - ) - - more_reqs: List[InstallRequirement] = [] - - def add_req(subreq: Requirement, extras_requested: Iterable[str]) -> None: - # This idiosyncratically converts the Requirement to str and let - # make_install_req then parse it again into Requirement. But this is - # the legacy resolver so I'm just not going to bother refactoring. - sub_install_req = self._make_install_req(str(subreq), req_to_install) - parent_req_name = req_to_install.name - to_scan_again, add_to_parent = requirement_set.add_requirement( - sub_install_req, - parent_req_name=parent_req_name, - extras_requested=extras_requested, - ) - if parent_req_name and add_to_parent: - self._discovered_dependencies[parent_req_name].append(add_to_parent) - more_reqs.extend(to_scan_again) - - with indent_log(): - # We add req_to_install before its dependencies, so that we - # can refer to it when adding dependencies. - if not requirement_set.has_requirement(req_to_install.name): - # 'unnamed' requirements will get added here - # 'unnamed' requirements can only come from being directly - # provided by the user. - assert req_to_install.user_supplied - requirement_set.add_requirement(req_to_install, parent_req_name=None) - - if not self.ignore_dependencies: - if req_to_install.extras: - logger.debug( - "Installing extra requirements: %r", - ",".join(req_to_install.extras), - ) - missing_requested = sorted( - set(req_to_install.extras) - set(dist.iter_provided_extras()) - ) - for missing in missing_requested: - logger.warning( - "%s %s does not provide the extra '%s'", - dist.raw_name, - dist.version, - missing, - ) - - available_requested = sorted( - set(dist.iter_provided_extras()) & set(req_to_install.extras) - ) - for subreq in dist.iter_dependencies(available_requested): - add_req(subreq, extras_requested=available_requested) - - return more_reqs - - def get_installation_order( - self, req_set: RequirementSet - ) -> List[InstallRequirement]: - """Create the installation order. - - The installation order is topological - requirements are installed - before the requiring thing. We break cycles at an arbitrary point, - and make no other guarantees. - """ - # The current implementation, which we may change at any point - # installs the user specified things in the order given, except when - # dependencies must come earlier to achieve topological order. - order = [] - ordered_reqs: Set[InstallRequirement] = set() - - def schedule(req: InstallRequirement) -> None: - if req.satisfied_by or req in ordered_reqs: - return - if req.constraint: - return - ordered_reqs.add(req) - for dep in self._discovered_dependencies[req.name]: - schedule(dep) - order.append(req) - - for install_req in req_set.requirements.values(): - schedule(install_req) - return order diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index ec583c17a60265861e721bc20c71cab01c3f1a0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmYk0y$!-J5QQCy0wHCP6yypjB!rlNh5;-mIfz4ITfR#m6>~5GYcK{aBhXP{ivphX zzWdQT=~SA|M9}q~HL*S;{*{Db6HJqUO6)|IY;VHH^$+h0)V4z?G}R~7ATlr#gTXyZ zLO-CFd^XZ~TOtwU1DXL^U4R?8wq}tpfi&aXsq&}}NZ_;ssSTqyss)c^+n%*G-*&)w XD?>oDl(`!p(^Y4yzQuKX>=i6NI`ux2 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-39.pyc deleted file mode 100644 index 63a698f3d285f31694685ca5f8611654d33ff8a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6615 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 E3&9&f5dZ)H diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-39.pyc deleted file mode 100644 index 86ac748a3353806cf5f00e1346370c879f37ee2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4849 zcmcIo&2J<}6|er7@l1QhU%SbA^8wAWkWAvtAQJH*R!b6RNlcJ~v`ZvLMD2E0jose< z7+2NUYissEywc`^5GRDRhs|-t|GcSFc|E z>b+k%Y_~mz=MR7G>}|Zr*k7q~`l+MxE?)H)6rA-Lx44~HeG9)%Vy8~uv8c^W+_cuO zrS*P2o$Jq~jea9-_M55K_tN?PypgFTt+d^5mhl!?Gyv_!8 z`SzDYO&$w}+WO0xE1dqaXo#ij3?{6cUfm8{FBAlFLa#5Iu^>;xu1l`adPBGQiNLgVaEM~SjF0p z@ELQoDSwcUGT!yPb&`p*otc!W%tZZI`Jw;DfsjXU_))Gj6z4-BF)Gix{)YDB>>y7L zgz^SLN4prl=8Fefh7svq^M|<>nU2E*1Gh(U!fApu=c9zoka_B>d?X{WR+=DWJUD`g z$77{sygj0M{8Z==hKJ>ZSmdsdVvtLLMUEmU$AY8}v+$FKStQ5}_k|dGf-Ki$mQQ2I zH%C5gWn{|4zu z@{pHGbD8iP{^733raDO;+Jz5m6fGzpcq+%L$gr;W6=2FXJ66%SEA~eM_IKur_Pt;J z{7$g`(Vg{=H#R>kocFS$qOlIs!|g;AjSWqkkjtX+$&h>$CWUiX=%RLSG)x3^wSxCU zB|a@D{0bOhXl$-eFwn7!TAU4XRn(=>Bbh}cGI?tFaPdZX)%z$kJ7Ev4G5dgh_T69E z5ABD}*dAL4Oun-3jUDv4W0zYaCf87RKV=phTTiXA{iS8GeUDo}s(t*&iP2`ewzhsk zD4bfPwzhysAJ4sApf0W!NC+G$_|JHhwrv&5lnUW+Kt%C-*3bjD|Zh&S2rJ4z zibcYK+CeOpE@Q=Xf-3Mm7m-HKIaE?qjl@v<>V7;No<0s022G^Ca1@LxU|G_B%Ow=g z>T;F73D9zx3e$CkzOGV1z%2{pR#v=p3OT`HtapJ{F%&pW{CntEG=_NupmR`q3GL6v zOom<)R7$LDBB;!;LP3S?0TuUa@&^^N?58%h5l+tF=p)EZaAa3FDo5J~mfR~xSGfAy z{}ESHtN=b05KLT}p==VkPRFM*1(rw%k)O&~jP0F7r~ilrY(x@9|2-ItGK1t4Ng_pJ zHhH{?wZtBFWj@;3H7CFzSot}@dj@#5M#n%%%I-!Tx-UH#;sGcCu?0%U+hw*!jzx@? zx;!0}lye*siO_3QA^F7zVFI(x%!kw-4k%(%-ac=R9}nmNBB{fBB#?m{ zDCSLVp107yB$oG9c$+W$#u81_zQ~szxhGct3STCkSS+4Pw;^Tx_ew^jD&9dM56S2t z=Ac%SWCmE|CT>oG=`>B#&V$}joExbsB}29ZF@_*Gn%uiJ0K$Vb1VI$)_0AUYEyB%2 zq1k=RHvu9#OB|BW)V6e#=oq;5b({*|5ah6=Y+*#%(`Ym&$*3EWJ%%$#k%ELyP9OLz zAtllyprxd8L>WrXk<#KJI%AT`C^LH0DAq*2PJ56m-`@aviI*6lZ4o zIQW{pib&8G>?!*aJoyVGDz&PS+D<@*G9PtEu4$Lr(FXpUwRCM(d&~xOH?a+Wu!it_* zrDKdwOongX+7X#}FqF4{3&FqRWyfz`bcG?1LHAaYM`5CFcc-H|b@>g9kvFIy0x7>q z1?7Je8#_)pqoL3ZQbQM)a#MOFWUL?*5k(Ciqe&6rWZ)EaivsR~-MSo0X22Oo(f&La zJ@R$*$_^D~;&Zr|3j!pcAov{wCYZQ((Gf;Q&O-<{s<||LpyFfkd?Sc$fw_Qv5r2_O z#6uK4m-I_I=Y@m#FTYJa zbQzFuQb7=v@1Q7}bSu&jRz)+BBV0)k|K<0of9Clq4kabp1g|1IG%VL!z}Dk#^3PUl zslMVZ)RAjRrt_lw5q{*4Q51_&jyoUz*^pB~>E$>-$39MMPr2jNw#kfkF#mie%U!L64r!FdSKZU%p^Rh)2ja%h5 i+$NwZ+H=<<>U`5~;cwM;EwAM|t1E#1zgpK!>HizJ6EC6w diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-39.pyc deleted file mode 100644 index 4011d30352e51d396dfdc0f8043fdcabcc792bc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7120 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 DPXJOv diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py deleted file mode 100644 index b206692..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py +++ /dev/null @@ -1,141 +0,0 @@ -from typing import FrozenSet, Iterable, Optional, Tuple, Union - -from pip._vendor.packaging.specifiers import SpecifierSet -from pip._vendor.packaging.utils import NormalizedName, canonicalize_name -from pip._vendor.packaging.version import LegacyVersion, Version - -from pip._internal.models.link import Link, links_equivalent -from pip._internal.req.req_install import InstallRequirement -from pip._internal.utils.hashes import Hashes - -CandidateLookup = Tuple[Optional["Candidate"], Optional[InstallRequirement]] -CandidateVersion = Union[LegacyVersion, Version] - - -def format_name(project: str, extras: FrozenSet[str]) -> str: - if not extras: - return project - canonical_extras = sorted(canonicalize_name(e) for e in extras) - return "{}[{}]".format(project, ",".join(canonical_extras)) - - -class Constraint: - def __init__( - self, specifier: SpecifierSet, hashes: Hashes, links: FrozenSet[Link] - ) -> None: - self.specifier = specifier - self.hashes = hashes - self.links = links - - @classmethod - def empty(cls) -> "Constraint": - return Constraint(SpecifierSet(), Hashes(), frozenset()) - - @classmethod - def from_ireq(cls, ireq: InstallRequirement) -> "Constraint": - links = frozenset([ireq.link]) if ireq.link else frozenset() - return Constraint(ireq.specifier, ireq.hashes(trust_internet=False), links) - - def __bool__(self) -> bool: - return bool(self.specifier) or bool(self.hashes) or bool(self.links) - - def __and__(self, other: InstallRequirement) -> "Constraint": - if not isinstance(other, InstallRequirement): - return NotImplemented - specifier = self.specifier & other.specifier - hashes = self.hashes & other.hashes(trust_internet=False) - links = self.links - if other.link: - links = links.union([other.link]) - return Constraint(specifier, hashes, links) - - def is_satisfied_by(self, candidate: "Candidate") -> bool: - # Reject if there are any mismatched URL constraints on this package. - if self.links and not all(_match_link(link, candidate) for link in self.links): - return False - # We can safely always allow prereleases here since PackageFinder - # already implements the prerelease logic, and would have filtered out - # prerelease candidates if the user does not expect them. - return self.specifier.contains(candidate.version, prereleases=True) - - -class Requirement: - @property - def project_name(self) -> NormalizedName: - """The "project name" of a requirement. - - This is different from ``name`` if this requirement contains extras, - in which case ``name`` would contain the ``[...]`` part, while this - refers to the name of the project. - """ - raise NotImplementedError("Subclass should override") - - @property - def name(self) -> str: - """The name identifying this requirement in the resolver. - - This is different from ``project_name`` if this requirement contains - extras, where ``project_name`` would not contain the ``[...]`` part. - """ - raise NotImplementedError("Subclass should override") - - def is_satisfied_by(self, candidate: "Candidate") -> bool: - return False - - def get_candidate_lookup(self) -> CandidateLookup: - raise NotImplementedError("Subclass should override") - - def format_for_error(self) -> str: - raise NotImplementedError("Subclass should override") - - -def _match_link(link: Link, candidate: "Candidate") -> bool: - if candidate.source_link: - return links_equivalent(link, candidate.source_link) - return False - - -class Candidate: - @property - def project_name(self) -> NormalizedName: - """The "project name" of the candidate. - - This is different from ``name`` if this candidate contains extras, - in which case ``name`` would contain the ``[...]`` part, while this - refers to the name of the project. - """ - raise NotImplementedError("Override in subclass") - - @property - def name(self) -> str: - """The name identifying this candidate in the resolver. - - This is different from ``project_name`` if this candidate contains - extras, where ``project_name`` would not contain the ``[...]`` part. - """ - raise NotImplementedError("Override in subclass") - - @property - def version(self) -> CandidateVersion: - raise NotImplementedError("Override in subclass") - - @property - def is_installed(self) -> bool: - raise NotImplementedError("Override in subclass") - - @property - def is_editable(self) -> bool: - raise NotImplementedError("Override in subclass") - - @property - def source_link(self) -> Optional[Link]: - raise NotImplementedError("Override in subclass") - - def iter_dependencies(self, with_requires: bool) -> Iterable[Optional[Requirement]]: - raise NotImplementedError("Override in subclass") - - def get_install_requirement(self) -> Optional[InstallRequirement]: - raise NotImplementedError("Override in subclass") - - def format_for_error(self) -> str: - raise NotImplementedError("Subclass should override") diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py deleted file mode 100644 index 60fad55..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py +++ /dev/null @@ -1,540 +0,0 @@ -import logging -import sys -from typing import TYPE_CHECKING, Any, FrozenSet, Iterable, Optional, Tuple, Union, cast - -from pip._vendor.packaging.utils import NormalizedName, canonicalize_name -from pip._vendor.packaging.version import Version - -from pip._internal.exceptions import HashError, MetadataInconsistent -from pip._internal.metadata import BaseDistribution -from pip._internal.models.link import Link, links_equivalent -from pip._internal.models.wheel import Wheel -from pip._internal.req.constructors import ( - install_req_from_editable, - install_req_from_line, -) -from pip._internal.req.req_install import InstallRequirement -from pip._internal.utils.misc import normalize_version_info - -from .base import Candidate, CandidateVersion, Requirement, format_name - -if TYPE_CHECKING: - from .factory import Factory - -logger = logging.getLogger(__name__) - -BaseCandidate = Union[ - "AlreadyInstalledCandidate", - "EditableCandidate", - "LinkCandidate", -] - -# Avoid conflicting with the PyPI package "Python". -REQUIRES_PYTHON_IDENTIFIER = cast(NormalizedName, "") - - -def as_base_candidate(candidate: Candidate) -> Optional[BaseCandidate]: - """The runtime version of BaseCandidate.""" - base_candidate_classes = ( - AlreadyInstalledCandidate, - EditableCandidate, - LinkCandidate, - ) - if isinstance(candidate, base_candidate_classes): - return candidate - return None - - -def make_install_req_from_link( - link: Link, template: InstallRequirement -) -> InstallRequirement: - assert not template.editable, "template is editable" - if template.req: - line = str(template.req) - else: - line = link.url - ireq = install_req_from_line( - line, - user_supplied=template.user_supplied, - comes_from=template.comes_from, - use_pep517=template.use_pep517, - isolated=template.isolated, - constraint=template.constraint, - options=dict( - install_options=template.install_options, - global_options=template.global_options, - hashes=template.hash_options, - ), - ) - ireq.original_link = template.original_link - ireq.link = link - return ireq - - -def make_install_req_from_editable( - link: Link, template: InstallRequirement -) -> InstallRequirement: - assert template.editable, "template not editable" - return install_req_from_editable( - link.url, - user_supplied=template.user_supplied, - comes_from=template.comes_from, - use_pep517=template.use_pep517, - isolated=template.isolated, - constraint=template.constraint, - permit_editable_wheels=template.permit_editable_wheels, - options=dict( - install_options=template.install_options, - global_options=template.global_options, - hashes=template.hash_options, - ), - ) - - -def _make_install_req_from_dist( - dist: BaseDistribution, template: InstallRequirement -) -> InstallRequirement: - from pip._internal.metadata.pkg_resources import Distribution as _Dist - - if template.req: - line = str(template.req) - elif template.link: - line = f"{dist.canonical_name} @ {template.link.url}" - else: - line = f"{dist.canonical_name}=={dist.version}" - ireq = install_req_from_line( - line, - user_supplied=template.user_supplied, - comes_from=template.comes_from, - use_pep517=template.use_pep517, - isolated=template.isolated, - constraint=template.constraint, - options=dict( - install_options=template.install_options, - global_options=template.global_options, - hashes=template.hash_options, - ), - ) - ireq.satisfied_by = cast(_Dist, dist)._dist - return ireq - - -class _InstallRequirementBackedCandidate(Candidate): - """A candidate backed by an ``InstallRequirement``. - - This represents a package request with the target not being already - in the environment, and needs to be fetched and installed. The backing - ``InstallRequirement`` is responsible for most of the leg work; this - class exposes appropriate information to the resolver. - - :param link: The link passed to the ``InstallRequirement``. The backing - ``InstallRequirement`` will use this link to fetch the distribution. - :param source_link: The link this candidate "originates" from. This is - different from ``link`` when the link is found in the wheel cache. - ``link`` would point to the wheel cache, while this points to the - found remote link (e.g. from pypi.org). - """ - - dist: BaseDistribution - is_installed = False - - def __init__( - self, - link: Link, - source_link: Link, - ireq: InstallRequirement, - factory: "Factory", - name: Optional[NormalizedName] = None, - version: Optional[CandidateVersion] = None, - ) -> None: - self._link = link - self._source_link = source_link - self._factory = factory - self._ireq = ireq - self._name = name - self._version = version - self.dist = self._prepare() - - def __str__(self) -> str: - return f"{self.name} {self.version}" - - def __repr__(self) -> str: - return "{class_name}({link!r})".format( - class_name=self.__class__.__name__, - link=str(self._link), - ) - - def __hash__(self) -> int: - return hash((self.__class__, self._link)) - - def __eq__(self, other: Any) -> bool: - if isinstance(other, self.__class__): - return links_equivalent(self._link, other._link) - return False - - @property - def source_link(self) -> Optional[Link]: - return self._source_link - - @property - def project_name(self) -> NormalizedName: - """The normalised name of the project the candidate refers to""" - if self._name is None: - self._name = self.dist.canonical_name - return self._name - - @property - def name(self) -> str: - return self.project_name - - @property - def version(self) -> CandidateVersion: - if self._version is None: - self._version = self.dist.version - return self._version - - def format_for_error(self) -> str: - return "{} {} (from {})".format( - self.name, - self.version, - self._link.file_path if self._link.is_file else self._link, - ) - - def _prepare_distribution(self) -> BaseDistribution: - raise NotImplementedError("Override in subclass") - - def _check_metadata_consistency(self, dist: BaseDistribution) -> None: - """Check for consistency of project name and version of dist.""" - if self._name is not None and self._name != dist.canonical_name: - raise MetadataInconsistent( - self._ireq, - "name", - self._name, - dist.canonical_name, - ) - if self._version is not None and self._version != dist.version: - raise MetadataInconsistent( - self._ireq, - "version", - str(self._version), - str(dist.version), - ) - - def _prepare(self) -> BaseDistribution: - try: - dist = self._prepare_distribution() - except HashError as e: - # Provide HashError the underlying ireq that caused it. This - # provides context for the resulting error message to show the - # offending line to the user. - e.req = self._ireq - raise - self._check_metadata_consistency(dist) - return dist - - def iter_dependencies(self, with_requires: bool) -> Iterable[Optional[Requirement]]: - requires = self.dist.iter_dependencies() if with_requires else () - for r in requires: - yield self._factory.make_requirement_from_spec(str(r), self._ireq) - yield self._factory.make_requires_python_requirement(self.dist.requires_python) - - def get_install_requirement(self) -> Optional[InstallRequirement]: - return self._ireq - - -class LinkCandidate(_InstallRequirementBackedCandidate): - is_editable = False - - def __init__( - self, - link: Link, - template: InstallRequirement, - factory: "Factory", - name: Optional[NormalizedName] = None, - version: Optional[CandidateVersion] = None, - ) -> None: - source_link = link - cache_entry = factory.get_wheel_cache_entry(link, name) - if cache_entry is not None: - logger.debug("Using cached wheel link: %s", cache_entry.link) - link = cache_entry.link - ireq = make_install_req_from_link(link, template) - assert ireq.link == link - if ireq.link.is_wheel and not ireq.link.is_file: - wheel = Wheel(ireq.link.filename) - wheel_name = canonicalize_name(wheel.name) - assert name == wheel_name, f"{name!r} != {wheel_name!r} for wheel" - # Version may not be present for PEP 508 direct URLs - if version is not None: - wheel_version = Version(wheel.version) - assert version == wheel_version, "{!r} != {!r} for wheel {}".format( - version, wheel_version, name - ) - - if ( - cache_entry is not None - and cache_entry.persistent - and template.link is template.original_link - ): - ireq.original_link_is_in_wheel_cache = True - - super().__init__( - link=link, - source_link=source_link, - ireq=ireq, - factory=factory, - name=name, - version=version, - ) - - def _prepare_distribution(self) -> BaseDistribution: - preparer = self._factory.preparer - return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) - - -class EditableCandidate(_InstallRequirementBackedCandidate): - is_editable = True - - def __init__( - self, - link: Link, - template: InstallRequirement, - factory: "Factory", - name: Optional[NormalizedName] = None, - version: Optional[CandidateVersion] = None, - ) -> None: - super().__init__( - link=link, - source_link=link, - ireq=make_install_req_from_editable(link, template), - factory=factory, - name=name, - version=version, - ) - - def _prepare_distribution(self) -> BaseDistribution: - return self._factory.preparer.prepare_editable_requirement(self._ireq) - - -class AlreadyInstalledCandidate(Candidate): - is_installed = True - source_link = None - - def __init__( - self, - dist: BaseDistribution, - template: InstallRequirement, - factory: "Factory", - ) -> None: - self.dist = dist - self._ireq = _make_install_req_from_dist(dist, template) - self._factory = factory - - # This is just logging some messages, so we can do it eagerly. - # The returned dist would be exactly the same as self.dist because we - # set satisfied_by in _make_install_req_from_dist. - # TODO: Supply reason based on force_reinstall and upgrade_strategy. - skip_reason = "already satisfied" - factory.preparer.prepare_installed_requirement(self._ireq, skip_reason) - - def __str__(self) -> str: - return str(self.dist) - - def __repr__(self) -> str: - return "{class_name}({distribution!r})".format( - class_name=self.__class__.__name__, - distribution=self.dist, - ) - - def __hash__(self) -> int: - return hash((self.__class__, self.name, self.version)) - - def __eq__(self, other: Any) -> bool: - if isinstance(other, self.__class__): - return self.name == other.name and self.version == other.version - return False - - @property - def project_name(self) -> NormalizedName: - return self.dist.canonical_name - - @property - def name(self) -> str: - return self.project_name - - @property - def version(self) -> CandidateVersion: - return self.dist.version - - @property - def is_editable(self) -> bool: - return self.dist.editable - - def format_for_error(self) -> str: - return f"{self.name} {self.version} (Installed)" - - def iter_dependencies(self, with_requires: bool) -> Iterable[Optional[Requirement]]: - if not with_requires: - return - for r in self.dist.iter_dependencies(): - yield self._factory.make_requirement_from_spec(str(r), self._ireq) - - def get_install_requirement(self) -> Optional[InstallRequirement]: - return None - - -class ExtrasCandidate(Candidate): - """A candidate that has 'extras', indicating additional dependencies. - - Requirements can be for a project with dependencies, something like - foo[extra]. The extras don't affect the project/version being installed - directly, but indicate that we need additional dependencies. We model that - by having an artificial ExtrasCandidate that wraps the "base" candidate. - - The ExtrasCandidate differs from the base in the following ways: - - 1. It has a unique name, of the form foo[extra]. This causes the resolver - to treat it as a separate node in the dependency graph. - 2. When we're getting the candidate's dependencies, - a) We specify that we want the extra dependencies as well. - b) We add a dependency on the base candidate. - See below for why this is needed. - 3. We return None for the underlying InstallRequirement, as the base - candidate will provide it, and we don't want to end up with duplicates. - - The dependency on the base candidate is needed so that the resolver can't - decide that it should recommend foo[extra1] version 1.0 and foo[extra2] - version 2.0. Having those candidates depend on foo=1.0 and foo=2.0 - respectively forces the resolver to recognise that this is a conflict. - """ - - def __init__( - self, - base: BaseCandidate, - extras: FrozenSet[str], - ) -> None: - self.base = base - self.extras = extras - - def __str__(self) -> str: - name, rest = str(self.base).split(" ", 1) - return "{}[{}] {}".format(name, ",".join(self.extras), rest) - - def __repr__(self) -> str: - return "{class_name}(base={base!r}, extras={extras!r})".format( - class_name=self.__class__.__name__, - base=self.base, - extras=self.extras, - ) - - def __hash__(self) -> int: - return hash((self.base, self.extras)) - - def __eq__(self, other: Any) -> bool: - if isinstance(other, self.__class__): - return self.base == other.base and self.extras == other.extras - return False - - @property - def project_name(self) -> NormalizedName: - return self.base.project_name - - @property - def name(self) -> str: - """The normalised name of the project the candidate refers to""" - return format_name(self.base.project_name, self.extras) - - @property - def version(self) -> CandidateVersion: - return self.base.version - - def format_for_error(self) -> str: - return "{} [{}]".format( - self.base.format_for_error(), ", ".join(sorted(self.extras)) - ) - - @property - def is_installed(self) -> bool: - return self.base.is_installed - - @property - def is_editable(self) -> bool: - return self.base.is_editable - - @property - def source_link(self) -> Optional[Link]: - return self.base.source_link - - def iter_dependencies(self, with_requires: bool) -> Iterable[Optional[Requirement]]: - factory = self.base._factory - - # Add a dependency on the exact base - # (See note 2b in the class docstring) - yield factory.make_requirement_from_candidate(self.base) - if not with_requires: - return - - # The user may have specified extras that the candidate doesn't - # support. We ignore any unsupported extras here. - valid_extras = self.extras.intersection(self.base.dist.iter_provided_extras()) - invalid_extras = self.extras.difference(self.base.dist.iter_provided_extras()) - for extra in sorted(invalid_extras): - logger.warning( - "%s %s does not provide the extra '%s'", - self.base.name, - self.version, - extra, - ) - - for r in self.base.dist.iter_dependencies(valid_extras): - requirement = factory.make_requirement_from_spec( - str(r), self.base._ireq, valid_extras - ) - if requirement: - yield requirement - - def get_install_requirement(self) -> Optional[InstallRequirement]: - # We don't return anything here, because we always - # depend on the base candidate, and we'll get the - # install requirement from that. - return None - - -class RequiresPythonCandidate(Candidate): - is_installed = False - source_link = None - - def __init__(self, py_version_info: Optional[Tuple[int, ...]]) -> None: - if py_version_info is not None: - version_info = normalize_version_info(py_version_info) - else: - version_info = sys.version_info[:3] - self._version = Version(".".join(str(c) for c in version_info)) - - # We don't need to implement __eq__() and __ne__() since there is always - # only one RequiresPythonCandidate in a resolution, i.e. the host Python. - # The built-in object.__eq__() and object.__ne__() do exactly what we want. - - def __str__(self) -> str: - return f"Python {self._version}" - - @property - def project_name(self) -> NormalizedName: - return REQUIRES_PYTHON_IDENTIFIER - - @property - def name(self) -> str: - return REQUIRES_PYTHON_IDENTIFIER - - @property - def version(self) -> CandidateVersion: - return self._version - - def format_for_error(self) -> str: - return f"Python {self.version}" - - def iter_dependencies(self, with_requires: bool) -> Iterable[Optional[Requirement]]: - return () - - def get_install_requirement(self) -> Optional[InstallRequirement]: - return None diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py deleted file mode 100644 index 766dc26..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py +++ /dev/null @@ -1,701 +0,0 @@ -import contextlib -import functools -import logging -from typing import ( - TYPE_CHECKING, - Dict, - FrozenSet, - Iterable, - Iterator, - List, - Mapping, - NamedTuple, - Optional, - Sequence, - Set, - Tuple, - TypeVar, - cast, -) - -from pip._vendor.packaging.requirements import InvalidRequirement -from pip._vendor.packaging.specifiers import SpecifierSet -from pip._vendor.packaging.utils import NormalizedName, canonicalize_name -from pip._vendor.resolvelib import ResolutionImpossible - -from pip._internal.cache import CacheEntry, WheelCache -from pip._internal.exceptions import ( - DistributionNotFound, - InstallationError, - InstallationSubprocessError, - MetadataInconsistent, - UnsupportedPythonVersion, - UnsupportedWheel, -) -from pip._internal.index.package_finder import PackageFinder -from pip._internal.metadata import BaseDistribution, get_default_environment -from pip._internal.models.link import Link -from pip._internal.models.wheel import Wheel -from pip._internal.operations.prepare import RequirementPreparer -from pip._internal.req.constructors import install_req_from_link_and_ireq -from pip._internal.req.req_install import ( - InstallRequirement, - check_invalid_constraint_type, -) -from pip._internal.resolution.base import InstallRequirementProvider -from pip._internal.utils.compatibility_tags import get_supported -from pip._internal.utils.hashes import Hashes -from pip._internal.utils.packaging import get_requirement -from pip._internal.utils.virtualenv import running_under_virtualenv - -from .base import Candidate, CandidateVersion, Constraint, Requirement -from .candidates import ( - AlreadyInstalledCandidate, - BaseCandidate, - EditableCandidate, - ExtrasCandidate, - LinkCandidate, - RequiresPythonCandidate, - as_base_candidate, -) -from .found_candidates import FoundCandidates, IndexCandidateInfo -from .requirements import ( - ExplicitRequirement, - RequiresPythonRequirement, - SpecifierRequirement, - UnsatisfiableRequirement, -) - -if TYPE_CHECKING: - from typing import Protocol - - class ConflictCause(Protocol): - requirement: RequiresPythonRequirement - parent: Candidate - - -logger = logging.getLogger(__name__) - -C = TypeVar("C") -Cache = Dict[Link, C] - - -class CollectedRootRequirements(NamedTuple): - requirements: List[Requirement] - constraints: Dict[str, Constraint] - user_requested: Dict[str, int] - - -class Factory: - def __init__( - self, - finder: PackageFinder, - preparer: RequirementPreparer, - make_install_req: InstallRequirementProvider, - wheel_cache: Optional[WheelCache], - use_user_site: bool, - force_reinstall: bool, - ignore_installed: bool, - ignore_requires_python: bool, - py_version_info: Optional[Tuple[int, ...]] = None, - ) -> None: - self._finder = finder - self.preparer = preparer - self._wheel_cache = wheel_cache - self._python_candidate = RequiresPythonCandidate(py_version_info) - self._make_install_req_from_spec = make_install_req - self._use_user_site = use_user_site - self._force_reinstall = force_reinstall - self._ignore_requires_python = ignore_requires_python - - self._build_failures: Cache[InstallationError] = {} - self._link_candidate_cache: Cache[LinkCandidate] = {} - self._editable_candidate_cache: Cache[EditableCandidate] = {} - self._installed_candidate_cache: Dict[str, AlreadyInstalledCandidate] = {} - self._extras_candidate_cache: Dict[ - Tuple[int, FrozenSet[str]], ExtrasCandidate - ] = {} - - if not ignore_installed: - env = get_default_environment() - self._installed_dists = { - dist.canonical_name: dist - for dist in env.iter_installed_distributions(local_only=False) - } - else: - self._installed_dists = {} - - @property - def force_reinstall(self) -> bool: - return self._force_reinstall - - def _fail_if_link_is_unsupported_wheel(self, link: Link) -> None: - if not link.is_wheel: - return - wheel = Wheel(link.filename) - if wheel.supported(self._finder.target_python.get_tags()): - return - msg = f"{link.filename} is not a supported wheel on this platform." - raise UnsupportedWheel(msg) - - def _make_extras_candidate( - self, base: BaseCandidate, extras: FrozenSet[str] - ) -> ExtrasCandidate: - cache_key = (id(base), extras) - try: - candidate = self._extras_candidate_cache[cache_key] - except KeyError: - candidate = ExtrasCandidate(base, extras) - self._extras_candidate_cache[cache_key] = candidate - return candidate - - def _make_candidate_from_dist( - self, - dist: BaseDistribution, - extras: FrozenSet[str], - template: InstallRequirement, - ) -> Candidate: - try: - base = self._installed_candidate_cache[dist.canonical_name] - except KeyError: - base = AlreadyInstalledCandidate(dist, template, factory=self) - self._installed_candidate_cache[dist.canonical_name] = base - if not extras: - return base - return self._make_extras_candidate(base, extras) - - def _make_candidate_from_link( - self, - link: Link, - extras: FrozenSet[str], - template: InstallRequirement, - name: Optional[NormalizedName], - version: Optional[CandidateVersion], - ) -> Optional[Candidate]: - # TODO: Check already installed candidate, and use it if the link and - # editable flag match. - - if link in self._build_failures: - # We already tried this candidate before, and it does not build. - # Don't bother trying again. - return None - - if template.editable: - if link not in self._editable_candidate_cache: - try: - self._editable_candidate_cache[link] = EditableCandidate( - link, - template, - factory=self, - name=name, - version=version, - ) - except (InstallationSubprocessError, MetadataInconsistent) as e: - logger.warning("Discarding %s. %s", link, e) - self._build_failures[link] = e - return None - base: BaseCandidate = self._editable_candidate_cache[link] - else: - if link not in self._link_candidate_cache: - try: - self._link_candidate_cache[link] = LinkCandidate( - link, - template, - factory=self, - name=name, - version=version, - ) - except (InstallationSubprocessError, MetadataInconsistent) as e: - logger.warning("Discarding %s. %s", link, e) - self._build_failures[link] = e - return None - base = self._link_candidate_cache[link] - - if not extras: - return base - return self._make_extras_candidate(base, extras) - - def _iter_found_candidates( - self, - ireqs: Sequence[InstallRequirement], - specifier: SpecifierSet, - hashes: Hashes, - prefers_installed: bool, - incompatible_ids: Set[int], - ) -> Iterable[Candidate]: - if not ireqs: - return () - - # The InstallRequirement implementation requires us to give it a - # "template". Here we just choose the first requirement to represent - # all of them. - # Hopefully the Project model can correct this mismatch in the future. - template = ireqs[0] - assert template.req, "Candidates found on index must be PEP 508" - name = canonicalize_name(template.req.name) - - extras: FrozenSet[str] = frozenset() - for ireq in ireqs: - assert ireq.req, "Candidates found on index must be PEP 508" - specifier &= ireq.req.specifier - hashes &= ireq.hashes(trust_internet=False) - extras |= frozenset(ireq.extras) - - def _get_installed_candidate() -> Optional[Candidate]: - """Get the candidate for the currently-installed version.""" - # If --force-reinstall is set, we want the version from the index - # instead, so we "pretend" there is nothing installed. - if self._force_reinstall: - return None - try: - installed_dist = self._installed_dists[name] - except KeyError: - return None - # Don't use the installed distribution if its version does not fit - # the current dependency graph. - if not specifier.contains(installed_dist.version, prereleases=True): - return None - candidate = self._make_candidate_from_dist( - dist=installed_dist, - extras=extras, - template=template, - ) - # The candidate is a known incompatiblity. Don't use it. - if id(candidate) in incompatible_ids: - return None - return candidate - - def iter_index_candidate_infos() -> Iterator[IndexCandidateInfo]: - result = self._finder.find_best_candidate( - project_name=name, - specifier=specifier, - hashes=hashes, - ) - icans = list(result.iter_applicable()) - - # PEP 592: Yanked releases must be ignored unless only yanked - # releases can satisfy the version range. So if this is false, - # all yanked icans need to be skipped. - all_yanked = all(ican.link.is_yanked for ican in icans) - - # PackageFinder returns earlier versions first, so we reverse. - for ican in reversed(icans): - if not all_yanked and ican.link.is_yanked: - continue - func = functools.partial( - self._make_candidate_from_link, - link=ican.link, - extras=extras, - template=template, - name=name, - version=ican.version, - ) - yield ican.version, func - - return FoundCandidates( - iter_index_candidate_infos, - _get_installed_candidate(), - prefers_installed, - incompatible_ids, - ) - - def _iter_explicit_candidates_from_base( - self, - base_requirements: Iterable[Requirement], - extras: FrozenSet[str], - ) -> Iterator[Candidate]: - """Produce explicit candidates from the base given an extra-ed package. - - :param base_requirements: Requirements known to the resolver. The - requirements are guaranteed to not have extras. - :param extras: The extras to inject into the explicit requirements' - candidates. - """ - for req in base_requirements: - lookup_cand, _ = req.get_candidate_lookup() - if lookup_cand is None: # Not explicit. - continue - # We've stripped extras from the identifier, and should always - # get a BaseCandidate here, unless there's a bug elsewhere. - base_cand = as_base_candidate(lookup_cand) - assert base_cand is not None, "no extras here" - yield self._make_extras_candidate(base_cand, extras) - - def _iter_candidates_from_constraints( - self, - identifier: str, - constraint: Constraint, - template: InstallRequirement, - ) -> Iterator[Candidate]: - """Produce explicit candidates from constraints. - - This creates "fake" InstallRequirement objects that are basically clones - of what "should" be the template, but with original_link set to link. - """ - for link in constraint.links: - self._fail_if_link_is_unsupported_wheel(link) - candidate = self._make_candidate_from_link( - link, - extras=frozenset(), - template=install_req_from_link_and_ireq(link, template), - name=canonicalize_name(identifier), - version=None, - ) - if candidate: - yield candidate - - def find_candidates( - self, - identifier: str, - requirements: Mapping[str, Iterable[Requirement]], - incompatibilities: Mapping[str, Iterator[Candidate]], - constraint: Constraint, - prefers_installed: bool, - ) -> Iterable[Candidate]: - # Collect basic lookup information from the requirements. - explicit_candidates: Set[Candidate] = set() - ireqs: List[InstallRequirement] = [] - for req in requirements[identifier]: - cand, ireq = req.get_candidate_lookup() - if cand is not None: - explicit_candidates.add(cand) - if ireq is not None: - ireqs.append(ireq) - - # If the current identifier contains extras, add explicit candidates - # from entries from extra-less identifier. - with contextlib.suppress(InvalidRequirement): - parsed_requirement = get_requirement(identifier) - explicit_candidates.update( - self._iter_explicit_candidates_from_base( - requirements.get(parsed_requirement.name, ()), - frozenset(parsed_requirement.extras), - ), - ) - - # Add explicit candidates from constraints. We only do this if there are - # kown ireqs, which represent requirements not already explicit. If - # there are no ireqs, we're constraining already-explicit requirements, - # which is handled later when we return the explicit candidates. - if ireqs: - try: - explicit_candidates.update( - self._iter_candidates_from_constraints( - identifier, - constraint, - template=ireqs[0], - ), - ) - except UnsupportedWheel: - # If we're constrained to install a wheel incompatible with the - # target architecture, no candidates will ever be valid. - return () - - # Since we cache all the candidates, incompatibility identification - # can be made quicker by comparing only the id() values. - incompat_ids = {id(c) for c in incompatibilities.get(identifier, ())} - - # If none of the requirements want an explicit candidate, we can ask - # the finder for candidates. - if not explicit_candidates: - return self._iter_found_candidates( - ireqs, - constraint.specifier, - constraint.hashes, - prefers_installed, - incompat_ids, - ) - - return ( - c - for c in explicit_candidates - if id(c) not in incompat_ids - and constraint.is_satisfied_by(c) - and all(req.is_satisfied_by(c) for req in requirements[identifier]) - ) - - def _make_requirement_from_install_req( - self, ireq: InstallRequirement, requested_extras: Iterable[str] - ) -> Optional[Requirement]: - if not ireq.match_markers(requested_extras): - logger.info( - "Ignoring %s: markers '%s' don't match your environment", - ireq.name, - ireq.markers, - ) - return None - if not ireq.link: - return SpecifierRequirement(ireq) - self._fail_if_link_is_unsupported_wheel(ireq.link) - cand = self._make_candidate_from_link( - ireq.link, - extras=frozenset(ireq.extras), - template=ireq, - name=canonicalize_name(ireq.name) if ireq.name else None, - version=None, - ) - if cand is None: - # There's no way we can satisfy a URL requirement if the underlying - # candidate fails to build. An unnamed URL must be user-supplied, so - # we fail eagerly. If the URL is named, an unsatisfiable requirement - # can make the resolver do the right thing, either backtrack (and - # maybe find some other requirement that's buildable) or raise a - # ResolutionImpossible eventually. - if not ireq.name: - raise self._build_failures[ireq.link] - return UnsatisfiableRequirement(canonicalize_name(ireq.name)) - return self.make_requirement_from_candidate(cand) - - def collect_root_requirements( - self, root_ireqs: List[InstallRequirement] - ) -> CollectedRootRequirements: - collected = CollectedRootRequirements([], {}, {}) - for i, ireq in enumerate(root_ireqs): - if ireq.constraint: - # Ensure we only accept valid constraints - problem = check_invalid_constraint_type(ireq) - if problem: - raise InstallationError(problem) - if not ireq.match_markers(): - continue - assert ireq.name, "Constraint must be named" - name = canonicalize_name(ireq.name) - if name in collected.constraints: - collected.constraints[name] &= ireq - else: - collected.constraints[name] = Constraint.from_ireq(ireq) - else: - req = self._make_requirement_from_install_req( - ireq, - requested_extras=(), - ) - if req is None: - continue - if ireq.user_supplied and req.name not in collected.user_requested: - collected.user_requested[req.name] = i - collected.requirements.append(req) - return collected - - def make_requirement_from_candidate( - self, candidate: Candidate - ) -> ExplicitRequirement: - return ExplicitRequirement(candidate) - - def make_requirement_from_spec( - self, - specifier: str, - comes_from: Optional[InstallRequirement], - requested_extras: Iterable[str] = (), - ) -> Optional[Requirement]: - ireq = self._make_install_req_from_spec(specifier, comes_from) - return self._make_requirement_from_install_req(ireq, requested_extras) - - def make_requires_python_requirement( - self, - specifier: SpecifierSet, - ) -> Optional[Requirement]: - if self._ignore_requires_python: - return None - # Don't bother creating a dependency for an empty Requires-Python. - if not str(specifier): - return None - return RequiresPythonRequirement(specifier, self._python_candidate) - - def get_wheel_cache_entry( - self, link: Link, name: Optional[str] - ) -> Optional[CacheEntry]: - """Look up the link in the wheel cache. - - If ``preparer.require_hashes`` is True, don't use the wheel cache, - because cached wheels, always built locally, have different hashes - than the files downloaded from the index server and thus throw false - hash mismatches. Furthermore, cached wheels at present have - nondeterministic contents due to file modification times. - """ - if self._wheel_cache is None or self.preparer.require_hashes: - return None - return self._wheel_cache.get_cache_entry( - link=link, - package_name=name, - supported_tags=get_supported(), - ) - - def get_dist_to_uninstall(self, candidate: Candidate) -> Optional[BaseDistribution]: - # TODO: Are there more cases this needs to return True? Editable? - dist = self._installed_dists.get(candidate.project_name) - if dist is None: # Not installed, no uninstallation required. - return None - - # We're installing into global site. The current installation must - # be uninstalled, no matter it's in global or user site, because the - # user site installation has precedence over global. - if not self._use_user_site: - return dist - - # We're installing into user site. Remove the user site installation. - if dist.in_usersite: - return dist - - # We're installing into user site, but the installed incompatible - # package is in global site. We can't uninstall that, and would let - # the new user installation to "shadow" it. But shadowing won't work - # in virtual environments, so we error out. - if running_under_virtualenv() and dist.in_site_packages: - message = ( - f"Will not install to the user site because it will lack " - f"sys.path precedence to {dist.raw_name} in {dist.location}" - ) - raise InstallationError(message) - return None - - def _report_requires_python_error( - self, causes: Sequence["ConflictCause"] - ) -> UnsupportedPythonVersion: - assert causes, "Requires-Python error reported with no cause" - - version = self._python_candidate.version - - if len(causes) == 1: - specifier = str(causes[0].requirement.specifier) - message = ( - f"Package {causes[0].parent.name!r} requires a different " - f"Python: {version} not in {specifier!r}" - ) - return UnsupportedPythonVersion(message) - - message = f"Packages require a different Python. {version} not in:" - for cause in causes: - package = cause.parent.format_for_error() - specifier = str(cause.requirement.specifier) - message += f"\n{specifier!r} (required by {package})" - return UnsupportedPythonVersion(message) - - def _report_single_requirement_conflict( - self, req: Requirement, parent: Optional[Candidate] - ) -> DistributionNotFound: - if parent is None: - req_disp = str(req) - else: - req_disp = f"{req} (from {parent.name})" - - cands = self._finder.find_all_candidates(req.project_name) - versions = [str(v) for v in sorted({c.version for c in cands})] - - logger.critical( - "Could not find a version that satisfies the requirement %s " - "(from versions: %s)", - req_disp, - ", ".join(versions) or "none", - ) - if str(req) == "requirements.txt": - logger.info( - "HINT: You are attempting to install a package literally " - 'named "requirements.txt" (which cannot exist). Consider ' - "using the '-r' flag to install the packages listed in " - "requirements.txt" - ) - - return DistributionNotFound(f"No matching distribution found for {req}") - - def get_installation_error( - self, - e: "ResolutionImpossible[Requirement, Candidate]", - constraints: Dict[str, Constraint], - ) -> InstallationError: - - assert e.causes, "Installation error reported with no cause" - - # If one of the things we can't solve is "we need Python X.Y", - # that is what we report. - requires_python_causes = [ - cause - for cause in e.causes - if isinstance(cause.requirement, RequiresPythonRequirement) - and not cause.requirement.is_satisfied_by(self._python_candidate) - ] - if requires_python_causes: - # The comprehension above makes sure all Requirement instances are - # RequiresPythonRequirement, so let's cast for convinience. - return self._report_requires_python_error( - cast("Sequence[ConflictCause]", requires_python_causes), - ) - - # Otherwise, we have a set of causes which can't all be satisfied - # at once. - - # The simplest case is when we have *one* cause that can't be - # satisfied. We just report that case. - if len(e.causes) == 1: - req, parent = e.causes[0] - if req.name not in constraints: - return self._report_single_requirement_conflict(req, parent) - - # OK, we now have a list of requirements that can't all be - # satisfied at once. - - # A couple of formatting helpers - def text_join(parts: List[str]) -> str: - if len(parts) == 1: - return parts[0] - - return ", ".join(parts[:-1]) + " and " + parts[-1] - - def describe_trigger(parent: Candidate) -> str: - ireq = parent.get_install_requirement() - if not ireq or not ireq.comes_from: - return f"{parent.name}=={parent.version}" - if isinstance(ireq.comes_from, InstallRequirement): - return str(ireq.comes_from.name) - return str(ireq.comes_from) - - triggers = set() - for req, parent in e.causes: - if parent is None: - # This is a root requirement, so we can report it directly - trigger = req.format_for_error() - else: - trigger = describe_trigger(parent) - triggers.add(trigger) - - if triggers: - info = text_join(sorted(triggers)) - else: - info = "the requested packages" - - msg = ( - "Cannot install {} because these package versions " - "have conflicting dependencies.".format(info) - ) - logger.critical(msg) - msg = "\nThe conflict is caused by:" - - relevant_constraints = set() - for req, parent in e.causes: - if req.name in constraints: - relevant_constraints.add(req.name) - msg = msg + "\n " - if parent: - msg = msg + f"{parent.name} {parent.version} depends on " - else: - msg = msg + "The user requested " - msg = msg + req.format_for_error() - for key in relevant_constraints: - spec = constraints[key].specifier - msg += f"\n The user requested (constraint) {key}{spec}" - - msg = ( - msg - + "\n\n" - + "To fix this you could try to:\n" - + "1. loosen the range of package versions you've specified\n" - + "2. remove package versions to allow pip attempt to solve " - + "the dependency conflict\n" - ) - - logger.info(msg) - - return DistributionNotFound( - "ResolutionImpossible: for help visit " - "https://pip.pypa.io/en/latest/user_guide/" - "#fixing-conflicting-dependencies" - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py deleted file mode 100644 index 8663097..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +++ /dev/null @@ -1,155 +0,0 @@ -"""Utilities to lazily create and visit candidates found. - -Creating and visiting a candidate is a *very* costly operation. It involves -fetching, extracting, potentially building modules from source, and verifying -distribution metadata. It is therefore crucial for performance to keep -everything here lazy all the way down, so we only touch candidates that we -absolutely need, and not "download the world" when we only need one version of -something. -""" - -import functools -from collections.abc import Sequence -from typing import TYPE_CHECKING, Any, Callable, Iterator, Optional, Set, Tuple - -from pip._vendor.packaging.version import _BaseVersion - -from .base import Candidate - -IndexCandidateInfo = Tuple[_BaseVersion, Callable[[], Optional[Candidate]]] - -if TYPE_CHECKING: - SequenceCandidate = Sequence[Candidate] -else: - # For compatibility: Python before 3.9 does not support using [] on the - # Sequence class. - # - # >>> from collections.abc import Sequence - # >>> Sequence[str] - # Traceback (most recent call last): - # File "", line 1, in - # TypeError: 'ABCMeta' object is not subscriptable - # - # TODO: Remove this block after dropping Python 3.8 support. - SequenceCandidate = Sequence - - -def _iter_built(infos: Iterator[IndexCandidateInfo]) -> Iterator[Candidate]: - """Iterator for ``FoundCandidates``. - - This iterator is used when the package is not already installed. Candidates - from index come later in their normal ordering. - """ - versions_found: Set[_BaseVersion] = set() - for version, func in infos: - if version in versions_found: - continue - candidate = func() - if candidate is None: - continue - yield candidate - versions_found.add(version) - - -def _iter_built_with_prepended( - installed: Candidate, infos: Iterator[IndexCandidateInfo] -) -> Iterator[Candidate]: - """Iterator for ``FoundCandidates``. - - This iterator is used when the resolver prefers the already-installed - candidate and NOT to upgrade. The installed candidate is therefore - always yielded first, and candidates from index come later in their - normal ordering, except skipped when the version is already installed. - """ - yield installed - versions_found: Set[_BaseVersion] = {installed.version} - for version, func in infos: - if version in versions_found: - continue - candidate = func() - if candidate is None: - continue - yield candidate - versions_found.add(version) - - -def _iter_built_with_inserted( - installed: Candidate, infos: Iterator[IndexCandidateInfo] -) -> Iterator[Candidate]: - """Iterator for ``FoundCandidates``. - - This iterator is used when the resolver prefers to upgrade an - already-installed package. Candidates from index are returned in their - normal ordering, except replaced when the version is already installed. - - The implementation iterates through and yields other candidates, inserting - the installed candidate exactly once before we start yielding older or - equivalent candidates, or after all other candidates if they are all newer. - """ - versions_found: Set[_BaseVersion] = set() - for version, func in infos: - if version in versions_found: - continue - # If the installed candidate is better, yield it first. - if installed.version >= version: - yield installed - versions_found.add(installed.version) - candidate = func() - if candidate is None: - continue - yield candidate - versions_found.add(version) - - # If the installed candidate is older than all other candidates. - if installed.version not in versions_found: - yield installed - - -class FoundCandidates(SequenceCandidate): - """A lazy sequence to provide candidates to the resolver. - - The intended usage is to return this from `find_matches()` so the resolver - can iterate through the sequence multiple times, but only access the index - page when remote packages are actually needed. This improve performances - when suitable candidates are already installed on disk. - """ - - def __init__( - self, - get_infos: Callable[[], Iterator[IndexCandidateInfo]], - installed: Optional[Candidate], - prefers_installed: bool, - incompatible_ids: Set[int], - ): - self._get_infos = get_infos - self._installed = installed - self._prefers_installed = prefers_installed - self._incompatible_ids = incompatible_ids - - def __getitem__(self, index: Any) -> Any: - # Implemented to satisfy the ABC check. This is not needed by the - # resolver, and should not be used by the provider either (for - # performance reasons). - raise NotImplementedError("don't do this") - - def __iter__(self) -> Iterator[Candidate]: - infos = self._get_infos() - if not self._installed: - iterator = _iter_built(infos) - elif self._prefers_installed: - iterator = _iter_built_with_prepended(self._installed, infos) - else: - iterator = _iter_built_with_inserted(self._installed, infos) - return (c for c in iterator if id(c) not in self._incompatible_ids) - - def __len__(self) -> int: - # Implemented to satisfy the ABC check. This is not needed by the - # resolver, and should not be used by the provider either (for - # performance reasons). - raise NotImplementedError("don't do this") - - @functools.lru_cache(maxsize=1) - def __bool__(self) -> bool: - if self._prefers_installed and self._installed: - return True - return any(self) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/provider.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/provider.py deleted file mode 100644 index 85d3b31..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/provider.py +++ /dev/null @@ -1,215 +0,0 @@ -import collections -import math -from typing import TYPE_CHECKING, Dict, Iterable, Iterator, Mapping, Sequence, Union - -from pip._vendor.resolvelib.providers import AbstractProvider - -from .base import Candidate, Constraint, Requirement -from .candidates import REQUIRES_PYTHON_IDENTIFIER -from .factory import Factory - -if TYPE_CHECKING: - from pip._vendor.resolvelib.providers import Preference - from pip._vendor.resolvelib.resolvers import RequirementInformation - - PreferenceInformation = RequirementInformation[Requirement, Candidate] - - _ProviderBase = AbstractProvider[Requirement, Candidate, str] -else: - _ProviderBase = AbstractProvider - -# Notes on the relationship between the provider, the factory, and the -# candidate and requirement classes. -# -# The provider is a direct implementation of the resolvelib class. Its role -# is to deliver the API that resolvelib expects. -# -# Rather than work with completely abstract "requirement" and "candidate" -# concepts as resolvelib does, pip has concrete classes implementing these two -# ideas. The API of Requirement and Candidate objects are defined in the base -# classes, but essentially map fairly directly to the equivalent provider -# methods. In particular, `find_matches` and `is_satisfied_by` are -# requirement methods, and `get_dependencies` is a candidate method. -# -# The factory is the interface to pip's internal mechanisms. It is stateless, -# and is created by the resolver and held as a property of the provider. It is -# responsible for creating Requirement and Candidate objects, and provides -# services to those objects (access to pip's finder and preparer). - - -class PipProvider(_ProviderBase): - """Pip's provider implementation for resolvelib. - - :params constraints: A mapping of constraints specified by the user. Keys - are canonicalized project names. - :params ignore_dependencies: Whether the user specified ``--no-deps``. - :params upgrade_strategy: The user-specified upgrade strategy. - :params user_requested: A set of canonicalized package names that the user - supplied for pip to install/upgrade. - """ - - def __init__( - self, - factory: Factory, - constraints: Dict[str, Constraint], - ignore_dependencies: bool, - upgrade_strategy: str, - user_requested: Dict[str, int], - ) -> None: - self._factory = factory - self._constraints = constraints - self._ignore_dependencies = ignore_dependencies - self._upgrade_strategy = upgrade_strategy - self._user_requested = user_requested - self._known_depths: Dict[str, float] = collections.defaultdict(lambda: math.inf) - - def identify(self, requirement_or_candidate: Union[Requirement, Candidate]) -> str: - return requirement_or_candidate.name - - def get_preference( # type: ignore - self, - identifier: str, - resolutions: Mapping[str, Candidate], - candidates: Mapping[str, Iterator[Candidate]], - information: Mapping[str, Iterable["PreferenceInformation"]], - backtrack_causes: Sequence["PreferenceInformation"], - ) -> "Preference": - """Produce a sort key for given requirement based on preference. - - The lower the return value is, the more preferred this group of - arguments is. - - Currently pip considers the followings in order: - - * Prefer if any of the known requirements is "direct", e.g. points to an - explicit URL. - * If equal, prefer if any requirement is "pinned", i.e. contains - operator ``===`` or ``==``. - * If equal, calculate an approximate "depth" and resolve requirements - closer to the user-specified requirements first. - * Order user-specified requirements by the order they are specified. - * If equal, prefers "non-free" requirements, i.e. contains at least one - operator, such as ``>=`` or ``<``. - * If equal, order alphabetically for consistency (helps debuggability). - """ - lookups = (r.get_candidate_lookup() for r, _ in information[identifier]) - candidate, ireqs = zip(*lookups) - operators = [ - specifier.operator - for specifier_set in (ireq.specifier for ireq in ireqs if ireq) - for specifier in specifier_set - ] - - direct = candidate is not None - pinned = any(op[:2] == "==" for op in operators) - unfree = bool(operators) - - try: - requested_order: Union[int, float] = self._user_requested[identifier] - except KeyError: - requested_order = math.inf - parent_depths = ( - self._known_depths[parent.name] if parent is not None else 0.0 - for _, parent in information[identifier] - ) - inferred_depth = min(d for d in parent_depths) + 1.0 - else: - inferred_depth = 1.0 - self._known_depths[identifier] = inferred_depth - - requested_order = self._user_requested.get(identifier, math.inf) - - # Requires-Python has only one candidate and the check is basically - # free, so we always do it first to avoid needless work if it fails. - requires_python = identifier == REQUIRES_PYTHON_IDENTIFIER - - # HACK: Setuptools have a very long and solid backward compatibility - # track record, and extremely few projects would request a narrow, - # non-recent version range of it since that would break a lot things. - # (Most projects specify it only to request for an installer feature, - # which does not work, but that's another topic.) Intentionally - # delaying Setuptools helps reduce branches the resolver has to check. - # This serves as a temporary fix for issues like "apache-airlfow[all]" - # while we work on "proper" branch pruning techniques. - delay_this = identifier == "setuptools" - - # Prefer the causes of backtracking on the assumption that the problem - # resolving the dependency tree is related to the failures that caused - # the backtracking - backtrack_cause = self.is_backtrack_cause(identifier, backtrack_causes) - - return ( - not requires_python, - delay_this, - not direct, - not pinned, - not backtrack_cause, - inferred_depth, - requested_order, - not unfree, - identifier, - ) - - def _get_constraint(self, identifier: str) -> Constraint: - if identifier in self._constraints: - return self._constraints[identifier] - - # HACK: Theoratically we should check whether this identifier is a valid - # "NAME[EXTRAS]" format, and parse out the name part with packaging or - # some regular expression. But since pip's resolver only spits out - # three kinds of identifiers: normalized PEP 503 names, normalized names - # plus extras, and Requires-Python, we can cheat a bit here. - name, open_bracket, _ = identifier.partition("[") - if open_bracket and name in self._constraints: - return self._constraints[name] - - return Constraint.empty() - - def find_matches( - self, - identifier: str, - requirements: Mapping[str, Iterator[Requirement]], - incompatibilities: Mapping[str, Iterator[Candidate]], - ) -> Iterable[Candidate]: - def _eligible_for_upgrade(name: str) -> bool: - """Are upgrades allowed for this project? - - This checks the upgrade strategy, and whether the project was one - that the user specified in the command line, in order to decide - whether we should upgrade if there's a newer version available. - - (Note that we don't need access to the `--upgrade` flag, because - an upgrade strategy of "to-satisfy-only" means that `--upgrade` - was not specified). - """ - if self._upgrade_strategy == "eager": - return True - elif self._upgrade_strategy == "only-if-needed": - return name in self._user_requested - return False - - return self._factory.find_candidates( - identifier=identifier, - requirements=requirements, - constraint=self._get_constraint(identifier), - prefers_installed=(not _eligible_for_upgrade(identifier)), - incompatibilities=incompatibilities, - ) - - def is_satisfied_by(self, requirement: Requirement, candidate: Candidate) -> bool: - return requirement.is_satisfied_by(candidate) - - def get_dependencies(self, candidate: Candidate) -> Sequence[Requirement]: - with_requires = not self._ignore_dependencies - return [r for r in candidate.iter_dependencies(with_requires) if r is not None] - - @staticmethod - def is_backtrack_cause( - identifier: str, backtrack_causes: Sequence["PreferenceInformation"] - ) -> bool: - for backtrack_cause in backtrack_causes: - if identifier == backtrack_cause.requirement.name: - return True - if backtrack_cause.parent and identifier == backtrack_cause.parent.name: - return True - return False diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/reporter.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/reporter.py deleted file mode 100644 index 6ced532..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/reporter.py +++ /dev/null @@ -1,68 +0,0 @@ -from collections import defaultdict -from logging import getLogger -from typing import Any, DefaultDict - -from pip._vendor.resolvelib.reporters import BaseReporter - -from .base import Candidate, Requirement - -logger = getLogger(__name__) - - -class PipReporter(BaseReporter): - def __init__(self) -> None: - self.backtracks_by_package: DefaultDict[str, int] = defaultdict(int) - - self._messages_at_backtrack = { - 1: ( - "pip is looking at multiple versions of {package_name} to " - "determine which version is compatible with other " - "requirements. This could take a while." - ), - 8: ( - "pip is looking at multiple versions of {package_name} to " - "determine which version is compatible with other " - "requirements. This could take a while." - ), - 13: ( - "This is taking longer than usual. You might need to provide " - "the dependency resolver with stricter constraints to reduce " - "runtime. See https://pip.pypa.io/warnings/backtracking for " - "guidance. If you want to abort this run, press Ctrl + C." - ), - } - - def backtracking(self, candidate: Candidate) -> None: - self.backtracks_by_package[candidate.name] += 1 - - count = self.backtracks_by_package[candidate.name] - if count not in self._messages_at_backtrack: - return - - message = self._messages_at_backtrack[count] - logger.info("INFO: %s", message.format(package_name=candidate.name)) - - -class PipDebuggingReporter(BaseReporter): - """A reporter that does an info log for every event it sees.""" - - def starting(self) -> None: - logger.info("Reporter.starting()") - - def starting_round(self, index: int) -> None: - logger.info("Reporter.starting_round(%r)", index) - - def ending_round(self, index: int, state: Any) -> None: - logger.info("Reporter.ending_round(%r, state)", index) - - def ending(self, state: Any) -> None: - logger.info("Reporter.ending(%r)", state) - - def adding_requirement(self, requirement: Requirement, parent: Candidate) -> None: - logger.info("Reporter.adding_requirement(%r, %r)", requirement, parent) - - def backtracking(self, candidate: Candidate) -> None: - logger.info("Reporter.backtracking(%r)", candidate) - - def pinning(self, candidate: Candidate) -> None: - logger.info("Reporter.pinning(%r)", candidate) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/requirements.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/requirements.py deleted file mode 100644 index c19f83c..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/requirements.py +++ /dev/null @@ -1,166 +0,0 @@ -from pip._vendor.packaging.specifiers import SpecifierSet -from pip._vendor.packaging.utils import NormalizedName, canonicalize_name - -from pip._internal.req.req_install import InstallRequirement - -from .base import Candidate, CandidateLookup, Requirement, format_name - - -class ExplicitRequirement(Requirement): - def __init__(self, candidate: Candidate) -> None: - self.candidate = candidate - - def __str__(self) -> str: - return str(self.candidate) - - def __repr__(self) -> str: - return "{class_name}({candidate!r})".format( - class_name=self.__class__.__name__, - candidate=self.candidate, - ) - - @property - def project_name(self) -> NormalizedName: - # No need to canonicalise - the candidate did this - return self.candidate.project_name - - @property - def name(self) -> str: - # No need to canonicalise - the candidate did this - return self.candidate.name - - def format_for_error(self) -> str: - return self.candidate.format_for_error() - - def get_candidate_lookup(self) -> CandidateLookup: - return self.candidate, None - - def is_satisfied_by(self, candidate: Candidate) -> bool: - return candidate == self.candidate - - -class SpecifierRequirement(Requirement): - def __init__(self, ireq: InstallRequirement) -> None: - assert ireq.link is None, "This is a link, not a specifier" - self._ireq = ireq - self._extras = frozenset(ireq.extras) - - def __str__(self) -> str: - return str(self._ireq.req) - - def __repr__(self) -> str: - return "{class_name}({requirement!r})".format( - class_name=self.__class__.__name__, - requirement=str(self._ireq.req), - ) - - @property - def project_name(self) -> NormalizedName: - assert self._ireq.req, "Specifier-backed ireq is always PEP 508" - return canonicalize_name(self._ireq.req.name) - - @property - def name(self) -> str: - return format_name(self.project_name, self._extras) - - def format_for_error(self) -> str: - - # Convert comma-separated specifiers into "A, B, ..., F and G" - # This makes the specifier a bit more "human readable", without - # risking a change in meaning. (Hopefully! Not all edge cases have - # been checked) - parts = [s.strip() for s in str(self).split(",")] - if len(parts) == 0: - return "" - elif len(parts) == 1: - return parts[0] - - return ", ".join(parts[:-1]) + " and " + parts[-1] - - def get_candidate_lookup(self) -> CandidateLookup: - return None, self._ireq - - def is_satisfied_by(self, candidate: Candidate) -> bool: - assert candidate.name == self.name, ( - f"Internal issue: Candidate is not for this requirement " - f"{candidate.name} vs {self.name}" - ) - # We can safely always allow prereleases here since PackageFinder - # already implements the prerelease logic, and would have filtered out - # prerelease candidates if the user does not expect them. - assert self._ireq.req, "Specifier-backed ireq is always PEP 508" - spec = self._ireq.req.specifier - return spec.contains(candidate.version, prereleases=True) - - -class RequiresPythonRequirement(Requirement): - """A requirement representing Requires-Python metadata.""" - - def __init__(self, specifier: SpecifierSet, match: Candidate) -> None: - self.specifier = specifier - self._candidate = match - - def __str__(self) -> str: - return f"Python {self.specifier}" - - def __repr__(self) -> str: - return "{class_name}({specifier!r})".format( - class_name=self.__class__.__name__, - specifier=str(self.specifier), - ) - - @property - def project_name(self) -> NormalizedName: - return self._candidate.project_name - - @property - def name(self) -> str: - return self._candidate.name - - def format_for_error(self) -> str: - return str(self) - - def get_candidate_lookup(self) -> CandidateLookup: - if self.specifier.contains(self._candidate.version, prereleases=True): - return self._candidate, None - return None, None - - def is_satisfied_by(self, candidate: Candidate) -> bool: - assert candidate.name == self._candidate.name, "Not Python candidate" - # We can safely always allow prereleases here since PackageFinder - # already implements the prerelease logic, and would have filtered out - # prerelease candidates if the user does not expect them. - return self.specifier.contains(candidate.version, prereleases=True) - - -class UnsatisfiableRequirement(Requirement): - """A requirement that cannot be satisfied.""" - - def __init__(self, name: NormalizedName) -> None: - self._name = name - - def __str__(self) -> str: - return f"{self._name} (unavailable)" - - def __repr__(self) -> str: - return "{class_name}({name!r})".format( - class_name=self.__class__.__name__, - name=str(self._name), - ) - - @property - def project_name(self) -> NormalizedName: - return self._name - - @property - def name(self) -> str: - return self._name - - def format_for_error(self) -> str: - return str(self) - - def get_candidate_lookup(self) -> CandidateLookup: - return None, None - - def is_satisfied_by(self, candidate: Candidate) -> bool: - return False diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py b/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py deleted file mode 100644 index 12f9670..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py +++ /dev/null @@ -1,251 +0,0 @@ -import functools -import logging -import os -from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple, cast - -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.resolvelib import BaseReporter, ResolutionImpossible -from pip._vendor.resolvelib import Resolver as RLResolver -from pip._vendor.resolvelib.structs import DirectedGraph - -from pip._internal.cache import WheelCache -from pip._internal.index.package_finder import PackageFinder -from pip._internal.operations.prepare import RequirementPreparer -from pip._internal.req.req_install import InstallRequirement -from pip._internal.req.req_set import RequirementSet -from pip._internal.resolution.base import BaseResolver, InstallRequirementProvider -from pip._internal.resolution.resolvelib.provider import PipProvider -from pip._internal.resolution.resolvelib.reporter import ( - PipDebuggingReporter, - PipReporter, -) - -from .base import Candidate, Requirement -from .factory import Factory - -if TYPE_CHECKING: - from pip._vendor.resolvelib.resolvers import Result as RLResult - - Result = RLResult[Requirement, Candidate, str] - - -logger = logging.getLogger(__name__) - - -class Resolver(BaseResolver): - _allowed_strategies = {"eager", "only-if-needed", "to-satisfy-only"} - - def __init__( - self, - preparer: RequirementPreparer, - finder: PackageFinder, - wheel_cache: Optional[WheelCache], - make_install_req: InstallRequirementProvider, - use_user_site: bool, - ignore_dependencies: bool, - ignore_installed: bool, - ignore_requires_python: bool, - force_reinstall: bool, - upgrade_strategy: str, - py_version_info: Optional[Tuple[int, ...]] = None, - ): - super().__init__() - assert upgrade_strategy in self._allowed_strategies - - self.factory = Factory( - finder=finder, - preparer=preparer, - make_install_req=make_install_req, - wheel_cache=wheel_cache, - use_user_site=use_user_site, - force_reinstall=force_reinstall, - ignore_installed=ignore_installed, - ignore_requires_python=ignore_requires_python, - py_version_info=py_version_info, - ) - self.ignore_dependencies = ignore_dependencies - self.upgrade_strategy = upgrade_strategy - self._result: Optional[Result] = None - - def resolve( - self, root_reqs: List[InstallRequirement], check_supported_wheels: bool - ) -> RequirementSet: - collected = self.factory.collect_root_requirements(root_reqs) - provider = PipProvider( - factory=self.factory, - constraints=collected.constraints, - ignore_dependencies=self.ignore_dependencies, - upgrade_strategy=self.upgrade_strategy, - user_requested=collected.user_requested, - ) - if "PIP_RESOLVER_DEBUG" in os.environ: - reporter: BaseReporter = PipDebuggingReporter() - else: - reporter = PipReporter() - resolver: RLResolver[Requirement, Candidate, str] = RLResolver( - provider, - reporter, - ) - - try: - try_to_avoid_resolution_too_deep = 2000000 - result = self._result = resolver.resolve( - collected.requirements, max_rounds=try_to_avoid_resolution_too_deep - ) - - except ResolutionImpossible as e: - error = self.factory.get_installation_error( - cast("ResolutionImpossible[Requirement, Candidate]", e), - collected.constraints, - ) - raise error from e - - req_set = RequirementSet(check_supported_wheels=check_supported_wheels) - for candidate in result.mapping.values(): - ireq = candidate.get_install_requirement() - if ireq is None: - continue - - # Check if there is already an installation under the same name, - # and set a flag for later stages to uninstall it, if needed. - installed_dist = self.factory.get_dist_to_uninstall(candidate) - if installed_dist is None: - # There is no existing installation -- nothing to uninstall. - ireq.should_reinstall = False - elif self.factory.force_reinstall: - # The --force-reinstall flag is set -- reinstall. - ireq.should_reinstall = True - elif installed_dist.version != candidate.version: - # The installation is different in version -- reinstall. - ireq.should_reinstall = True - elif candidate.is_editable or installed_dist.editable: - # The incoming distribution is editable, or different in - # editable-ness to installation -- reinstall. - ireq.should_reinstall = True - elif candidate.source_link and candidate.source_link.is_file: - # The incoming distribution is under file:// - if candidate.source_link.is_wheel: - # is a local wheel -- do nothing. - logger.info( - "%s is already installed with the same version as the " - "provided wheel. Use --force-reinstall to force an " - "installation of the wheel.", - ireq.name, - ) - continue - - # is a local sdist or path -- reinstall - ireq.should_reinstall = True - else: - continue - - link = candidate.source_link - if link and link.is_yanked: - # The reason can contain non-ASCII characters, Unicode - # is required for Python 2. - msg = ( - "The candidate selected for download or install is a " - "yanked version: {name!r} candidate (version {version} " - "at {link})\nReason for being yanked: {reason}" - ).format( - name=candidate.name, - version=candidate.version, - link=link, - reason=link.yanked_reason or "", - ) - logger.warning(msg) - - req_set.add_named_requirement(ireq) - - reqs = req_set.all_requirements - self.factory.preparer.prepare_linked_requirements_more(reqs) - return req_set - - def get_installation_order( - self, req_set: RequirementSet - ) -> List[InstallRequirement]: - """Get order for installation of requirements in RequirementSet. - - The returned list contains a requirement before another that depends on - it. This helps ensure that the environment is kept consistent as they - get installed one-by-one. - - The current implementation creates a topological ordering of the - dependency graph, while breaking any cycles in the graph at arbitrary - points. We make no guarantees about where the cycle would be broken, - other than they would be broken. - """ - assert self._result is not None, "must call resolve() first" - - graph = self._result.graph - weights = get_topological_weights( - graph, - expected_node_count=len(self._result.mapping) + 1, - ) - - sorted_items = sorted( - req_set.requirements.items(), - key=functools.partial(_req_set_item_sorter, weights=weights), - reverse=True, - ) - return [ireq for _, ireq in sorted_items] - - -def get_topological_weights( - graph: "DirectedGraph[Optional[str]]", expected_node_count: int -) -> Dict[Optional[str], int]: - """Assign weights to each node based on how "deep" they are. - - This implementation may change at any point in the future without prior - notice. - - We take the length for the longest path to any node from root, ignoring any - paths that contain a single node twice (i.e. cycles). This is done through - a depth-first search through the graph, while keeping track of the path to - the node. - - Cycles in the graph result would result in node being revisited while also - being it's own path. In this case, take no action. This helps ensure we - don't get stuck in a cycle. - - When assigning weight, the longer path (i.e. larger length) is preferred. - """ - path: Set[Optional[str]] = set() - weights: Dict[Optional[str], int] = {} - - def visit(node: Optional[str]) -> None: - if node in path: - # We hit a cycle, so we'll break it here. - return - - # Time to visit the children! - path.add(node) - for child in graph.iter_children(node): - visit(child) - path.remove(node) - - last_known_parent_count = weights.get(node, 0) - weights[node] = max(last_known_parent_count, len(path)) - - # `None` is guaranteed to be the root node by resolvelib. - visit(None) - - # Sanity checks - assert weights[None] == 0 - assert len(weights) == expected_node_count - - return weights - - -def _req_set_item_sorter( - item: Tuple[str, InstallRequirement], - weights: Dict[Optional[str], int], -) -> Tuple[int, str]: - """Key function used to sort install requirements for installation. - - Based on the "weight" mapping calculated in ``get_installation_order()``. - The canonical package name is returned as the second member as a tie- - breaker to ensure the result is predictable, which is useful in tests. - """ - name = canonicalize_name(item[0]) - return weights[name], name diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py b/.venv/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py deleted file mode 100644 index 72f70fc..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py +++ /dev/null @@ -1,182 +0,0 @@ -import datetime -import hashlib -import json -import logging -import optparse -import os.path -import sys -from typing import Any, Dict - -from pip._vendor.packaging.version import parse as parse_version - -from pip._internal.index.collector import LinkCollector -from pip._internal.index.package_finder import PackageFinder -from pip._internal.metadata import get_default_environment -from pip._internal.models.selection_prefs import SelectionPreferences -from pip._internal.network.session import PipSession -from pip._internal.utils.filesystem import adjacent_tmp_file, check_path_owner, replace -from pip._internal.utils.misc import ensure_dir - -SELFCHECK_DATE_FMT = "%Y-%m-%dT%H:%M:%SZ" - - -logger = logging.getLogger(__name__) - - -def _get_statefile_name(key: str) -> str: - key_bytes = key.encode() - name = hashlib.sha224(key_bytes).hexdigest() - return name - - -class SelfCheckState: - def __init__(self, cache_dir: str) -> None: - self.state: Dict[str, Any] = {} - self.statefile_path = None - - # Try to load the existing state - if cache_dir: - self.statefile_path = os.path.join( - cache_dir, "selfcheck", _get_statefile_name(self.key) - ) - try: - with open(self.statefile_path, encoding="utf-8") as statefile: - self.state = json.load(statefile) - except (OSError, ValueError, KeyError): - # Explicitly suppressing exceptions, since we don't want to - # error out if the cache file is invalid. - pass - - @property - def key(self) -> str: - return sys.prefix - - def save(self, pypi_version: str, current_time: datetime.datetime) -> None: - # If we do not have a path to cache in, don't bother saving. - if not self.statefile_path: - return - - # Check to make sure that we own the directory - if not check_path_owner(os.path.dirname(self.statefile_path)): - return - - # Now that we've ensured the directory is owned by this user, we'll go - # ahead and make sure that all our directories are created. - ensure_dir(os.path.dirname(self.statefile_path)) - - state = { - # Include the key so it's easy to tell which pip wrote the - # file. - "key": self.key, - "last_check": current_time.strftime(SELFCHECK_DATE_FMT), - "pypi_version": pypi_version, - } - - text = json.dumps(state, sort_keys=True, separators=(",", ":")) - - with adjacent_tmp_file(self.statefile_path) as f: - f.write(text.encode()) - - try: - # Since we have a prefix-specific state file, we can just - # overwrite whatever is there, no need to check. - replace(f.name, self.statefile_path) - except OSError: - # Best effort. - pass - - -def was_installed_by_pip(pkg: str) -> bool: - """Checks whether pkg was installed by pip - - This is used not to display the upgrade message when pip is in fact - installed by system package manager, such as dnf on Fedora. - """ - dist = get_default_environment().get_distribution(pkg) - return dist is not None and "pip" == dist.installer - - -def pip_self_version_check(session: PipSession, options: optparse.Values) -> None: - """Check for an update for pip. - - Limit the frequency of checks to once per week. State is stored either in - the active virtualenv or in the user's USER_CACHE_DIR keyed off the prefix - of the pip script path. - """ - installed_dist = get_default_environment().get_distribution("pip") - if not installed_dist: - return - - pip_version = installed_dist.version - pypi_version = None - - try: - state = SelfCheckState(cache_dir=options.cache_dir) - - current_time = datetime.datetime.utcnow() - # Determine if we need to refresh the state - if "last_check" in state.state and "pypi_version" in state.state: - last_check = datetime.datetime.strptime( - state.state["last_check"], SELFCHECK_DATE_FMT - ) - if (current_time - last_check).total_seconds() < 7 * 24 * 60 * 60: - pypi_version = state.state["pypi_version"] - - # Refresh the version if we need to or just see if we need to warn - if pypi_version is None: - # Lets use PackageFinder to see what the latest pip version is - link_collector = LinkCollector.create( - session, - options=options, - suppress_no_index=True, - ) - - # Pass allow_yanked=False so we don't suggest upgrading to a - # yanked version. - selection_prefs = SelectionPreferences( - allow_yanked=False, - allow_all_prereleases=False, # Explicitly set to False - ) - - finder = PackageFinder.create( - link_collector=link_collector, - selection_prefs=selection_prefs, - ) - best_candidate = finder.find_best_candidate("pip").best_candidate - if best_candidate is None: - return - pypi_version = str(best_candidate.version) - - # save that we've performed a check - state.save(pypi_version, current_time) - - remote_version = parse_version(pypi_version) - - local_version_is_older = ( - pip_version < remote_version - and pip_version.base_version != remote_version.base_version - and was_installed_by_pip("pip") - ) - - # Determine if our pypi_version is older - if not local_version_is_older: - return - - # We cannot tell how the current pip is available in the current - # command context, so be pragmatic here and suggest the command - # that's always available. This does not accommodate spaces in - # `sys.executable`. - pip_cmd = f"{sys.executable} -m pip" - logger.warning( - "You are using pip version %s; however, version %s is " - "available.\nYou should consider upgrading via the " - "'%s install --upgrade pip' command.", - pip_version, - pypi_version, - pip_cmd, - ) - except Exception: - logger.debug( - "There was an error checking the latest version of pip", - exc_info=True, - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 872de96cd20ddee44762535c820a0eadbb7f0266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmYk0u?@m76hs|~0wHCP6yz6FNC+_j4FgzC@*xh6ZTbHMG72NG24m1N0v#201t;A* z-BqXZd?BK4kD^QYO88e6%PyK`5sf&ABHQ0ZNb?UL2d(Q7DoyQ0b%+d%#9;Brk}!-I zBwwxc!PQ6v<%o6!qbu+ex6ZE0HIQapdR3p*2?@ORAhl%-Rv8#r8v+>z%~FGpLLh@1 zM|S1bTW`1}9U0zmxh;FR3#D_)qW+!g##$osz&WZ}O$n7ty2PN_{ z(^{O>N|*_VS9BUwd?fU?#PU!?36dldcTzMq-MV#0W&5l_f}Ap&1Za zbuDT%ro^I6weR$e|QnwV}rp|tGd5lwkhGNOinc+)5c9za>{Dc*3>Hf}t=2%E>alw$9U=;}Z@idfY z%Ey~3Akjtf2UC6g{Ckm1>M10nLQk%;a{!YV&?c$i%%mC=CYhR_s&uC69JEfb&edg7 z7NcZ#jU}$WjK4~BVc^Lu%P+Dq=ww#RlC-D{s46RyxhYDW5Ch`bbrY;G`vg5}n<8I4 zz6bc4M^Vsp)3nN_kfu$TrY$jW-AmKg^Q>I`3DQ*7IjUW4lp>3Ym|#=e5RXVlY}mo6 z3Ck|`I#z=;^2nIlLT%1btOu>>&H+wM7Y%}LoOkY$-SRioHGHv;iBYfoPtQFuni~O? zo-5>WJy+sheyi?5amP{K9~x?tEl%;J`FTDiuP{MNyjgYt0~zns9h&{(?%A}0c`$&FzO%Xw^ZBK_&4 zo|n|m4|F#5I(Bp|?o!%~_Ux@9hFBDpK+42-l!;SZ;-it;BWfE%9z-2QlxZI6^($~d zk5G$QFO%|!`fosGr1KkCS=0!yrnmVNeU2K-1LlWZ5iHTR`iQPtKfbx1VO3i~+3Jwl p#y_$zkaep*rqhJFz5bxf?$<4CpAwaH4}}+W`HttgABH=f{{Rs}hT;GK diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-39.pyc deleted file mode 100644 index 370ec29054ce5ab985b3bf4b02ec40976fb0b8d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1633 zcmZ8hPiy2h6t^tRjK`Tw(k0z(p$AcVG2I`MR#rK9rYmWJqaxdALNKl^nW(y3n0ISX%W_d#3T+q?@>EH z3V9B4_aT3U1;RijmF$|XpiIE=q4%6C;$;Vr-rJVoc}qSH+;B6xA#%7PF9JwzG&i4v z)x#r*6yxZ|+oo{3FC3)&`nyY(Dwijbc@D?s1ulKPv6r*^dhdC%?+M=k16vo`8N7ns z2<=%_-@*ZSY6CCS)B5f|v0=XjWs8_2JkOxIF&R?BflkN~e$#H0WwOe%%scWic0+f8 z?~y_5x*fP=v#ftN4FyggJ+;pG3)Qh@RTX^+u_E63gTQ>zeD_6f`^WYNd}1tKOcq5X OB9m}J_u0YpVEiAig__9# diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/compat.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/compat.cpython-39.pyc deleted file mode 100644 index c85d2495a394fdb136d08059ebd5e85fd04daa5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1521 zcmY*ZUvDEd5VyUXWSf7K6AwtdSmNP`1lfw}Kv&R-KRu*El~fm`a?wdEXYEZkb=E7} z+gz&jh2u*g4ylDFz6Kw|uRQS;cw)S1(czW7W6#cb<~P4t*6XzqjGzA;EMK$``pa+L z906>;fN5UB!qF6Q%!$NPT))Yb)bC&#%n=WM!_!dUn}%rK;%Q4nJbaCLgExN)r+cC; zI=uCo@QClhzPmuY{X3raM6m4Nyu~}WxYSLW3c=luIQdjlC$UIv!|oUiKm&4>z6kO?Hr6ojqID~|xZi15m(NH~9%YPv4Yx>VBUZ|CbXSrFd z*-{7_TVZTmh|DHNXh15lFN>tqDiy}WL-2hWgWI^Qp*$Quj!kaGMVsi%P zZ7=z6ioWe^(JxS%U&$-{Bi?#e1#AEzv?+{db&08u?V+K-hGDxtKUTufLRp$ADb<>q z%}VCQg*mFV-g04WX^!G}p4&w=8v-7HU&(5)%1X-k@!_NQfq!XbJTVjf=eXqU;)9k~7 zx^4UpP_i3zNk8c0TKmMa&qYknOQwx*t+kowT4b)dYXujq^TGwG%pEE0;DKu;30G;7 zxRzA&d0x!5_w53+fj>u*0Q8{SgTKousD*Y>k`!zu;IQcp;3S+WCF`C5E5IaxzN%x< zyIAgjU9JrYYirg(FBf_zI)tm<$kF$@_KCXa^OfS26i<9(nFp|hL4@HUQP2+hy?q*m F{{rgts`dZ? diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-39.pyc deleted file mode 100644 index 54f73058a5b3ba5db1280ee917cb6a07450d8058..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4073 zcmb_fTaVku6`mPV6jyukdc8Manh*;EwNhKMy{_vThMP7?6Bq8*aEzc395A#v+NI5# zhm?2Mq585e>OAzJk40Qy_c4E?KZCD*@^hbhb-y!|v{IZtwG?YI*n+yGaJoy=A!w|e6-M6;7szv6MpT8cNS$$p7gDrIL+jeUw(7C=JjI*$7r;CB%wa#h(o$;8~XFO{x8GG5#^USN7f7U;THD`SBDQmv_ zeDh-&OXcO#@nYZEP1F--H^_IKdmr6%u3i11^Fb1&ULHIO!XV#w9(dbXtMQslztuEK z^KOvkrTwck50cmm%i4o}8p@_!&fnY5car!ssWOa|2G*4)x34F%6fUe`@SFYhHP%AT)WX#Jq+UU=vqQ!rXhQO*rl zxIx@YN(*xPD()g!#t*eAj6T4dt%LadkmWoV1p>+!zlHM;#1V(ljIENr7MMX6c$@?{ zU*x5wk>#q%)jS5iVQLwlzwftql1R261=-H7_gKojoy#n5$Fi5ZnN-lp&G%wARY_N7 zS-bU2#?RVe@TgrGX0!F!PYQl0 zj@U!e`VV_@b+Ar3gGalm_GQ2QP0QSONsc5W86!aNWkvI9P_Vyj@=_!gEnW~(mVJl}AqVyks4OuAl} z-9}@ypjj*DUD}dN=ps$Z8aD0jl-9ON`e{}gaFv>a#AaRZuN<^#(&I$o6U6w;dfmM5 zg<3{AOM8xj+aj?ttCT&5m6gT|(~6zJK(++Jc!QgK5x+*={+m5(adiRQDHGSgpcCpK ze~gCq2K;)6a6jS?jmn#a@Wm6M?iQwRJY%W{Zv!(6V~rK&8e)LM8Q|0=Iq?~+GO?5? z(!#8vZ7tZnA@E&n>oJuz{ z9hp;cs{Aku3T<;sH6f?8s>p5%^&YzF5=hfjZ5nE1ISi5!WNUA0wMHhnLbIM z*sYOck)R4&aAg*}LW|?$!g-pu08Y56p?|}Ro?_cq<=a*c$m!dklUKl33 z(w~Tr?*auAl|bg&R;ATXebm;{l6yJDs;O>3BGsR)ALb=b%Nfu2bvzIA{3gb$z&!n5 zx81^=jNqFg;Y~Qk6gFHW_$pjAClt94ZmJJ~093knF6Zb$ z`>(7BJXX{5Vlw#I0g*s-@nW^ zmOa@s>r*{j-NX8(*xEv!$J0Dp)?L?6x~^Lag_4o)r^pXQ*rp63gd3eR_zTd&6*2Y` z)vEp%U{;GFQxT*q!cl$l2}6uQPG3gLI$d{zP%66dYOq#RIrTq+<6DHTV3lzRkSkl0 z&J(sd#&!Evl=%Hn-ljT`T>~+JiOb@`Y{OWuEiW&xEYCV87j5=N0OZBL=Vlq#zkdp# JW}|xl@gI+M=)C{{ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-39.pyc deleted file mode 100644 index 25d1b5c7907f426ded608a9eb4963594ba9b3591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmYjNv2NQi5G6&*F`TALe?UVP4Hbt@0g9qPfsR?ac_C==8p)PPfjrxFp=|w$0v(bu zzmd=2+9_+tPB|JakR$H#4tIR_c;@0_!N`6-*6TlX|IW!vD=GO%9xn+jTQbXSG4Lga z;&g-+zoeD6{2`ap7GGFB``&!^p*nQns<9udgK-!u^i|tIyQ#2)${K`@JKzt)8ixnRa@* zd#kGL*q(X8e&q)sf|NY+H~1MX-gw%VeJ4VJ?{wSaNrLE6pRTH@%Q@dU^_>%~tTZh= zfBt)W|A$vB>z~wFe3sC;gIE6p;&V$_JxefQC#=V+uidlpbrNUd_S}ir^Co`Jp9H;N z(&#l9&2^KdNwe3i+Fr6eY4ujn_Ip=8u|yymXO?Kl)l;XpChX{{bmcX%v}1`4iBY*e zwBNC0AXg#R<%aa6kCrFb-?4-(n$H5UELvw?Zxg+hXG~lXt7mR+3q4z`J+rZeaw)N zKH`UwN-?Z?)XxgTh0K*4L?+Hs-D!Re#H_uxS2}moqq6ZZr|~E${m1gDdGN4wA0Oqi z^gd59+-9YhM@maHmc#HsDvi-FJYLzo|LJG<@7;a;;NjjaKAWbdA)eo64aHwN%hHG*8noSJ^;n-R&I6^q`x>{ce6_###E~&d<6!HgY?U z22Y}q)ZIMJyJ4IfsQ^f~Fma;03*dF~BSnF?MwZzS4OaEb%`j8(D8`~tkF&#b_}f7l zOmHx^E*pSfjxq(nhj9X5O=RiAbu!ILmqtpLdZn+VDO5V}vHQgnph53Fyt)T5b%j+h zb<-g3@%_SBQ)|km_SBiWQ}5JgR{F7FQ)cW_TkRU>xhvQUHuInwgB4~! zK*L!3Ui!j`GBgc5g3V|vRaQDhU$YE3@<}sq)kMdlmqV1QBi(6H; zbae&cHbhDVKn=_Cg2I(%3no=jTiLZ0r`kkG5}xlD*5-c*C3OSBve(=O^O^cC+PE*R zp^Oj{G8`t+sPqVW33U)Dk{Ir{n;}$;{TC40U+tld;PP}wIH@gM^qBA<9gO`#_!wj8xgr?a zBX8!5#&bt3iRPI#^>?jP3cX^)~|o((y!G#8mf!g$+gU_^G|;sUiv zb|3|h(|TJ%^s^||ScuaQ>zU$lwcGoe4+^DV{rni9If6T&JWj!M%#}pkfPZcW9ba#~ z7}S?)-^(VGC>7hpg`DD@lqcT}Gd1Dc+c0?heC5wi7Ppwu3{LcqNSPm3fMHUKK8~qT**msRX2&0pyG~~OFisNWb?iN$)DM9BavUAR zS)up<5RYW%_=86=!mo1h$?U^=7AB?{PclqUTo-wsDQM6+zHyi58C0M;VSzOO1y1W6 z-~U}!T!d8(IyvAC&}Y?c0?yTpIlyzpI>&c*FD<1Y#f2GW1x!Y4kB!Oot!{S|n{m*bKB(Wk4b%%7o}YM<#s1 zzOb0}75)RCvpr&Qil4}!#;`jdmEJ*=6tZmAgP}HRfv78vUfLPSR6fns?UW8Bx^!)y zt-U(FF()R`*-5fNl<3=?`RuQ$DrnnPt}C0M`N5M!9>}B}D9YgF>iMO)sHDoRg*qzy z&7)63R8_xx@Y~Ye&%okTY^d+hLYI<7yP>{EBi|?SK8g285Y3lCtV3dfa^<|_2vN5g zU8ml8$y8_7=A{ik#ajI_gmvS()3WjW$G7c&+kwsOSGM;?{~Pyu)3#qV0+%&x^%JZ@ z!LZl9UIt+(vOyRs%G0&RzB$Tq^%NnZ$c2i0s3-#|!n1dysxwfNiA;6s5)AWEq*XO$ zjhBNtiV~Lkh{TT|%HYeoVq8ePt6>x x=4}c(y#wJR0XNvYb_+k(S#w)Uh^Ln}Ya%TJ7)X5o)!MkShTcopu1D(8{{ol4h#>#~ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-39.pyc deleted file mode 100644 index 810ba68d592dff8fe6f389ecfe30b3f4c4f526eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2092 zcmZuyTW=dh6rS0cU9WG66Vj$FH$%B-g=$x#5+Kp4sHg&j+J^!U7Sd|tnZ%p!jhV6A zr0W+_Rei}1Kn+szg2XEi{DA(9edURtK%};uGj>uJG1ktWIhWZp-<?BUg1}xbOk0B%C6ddwYzyyziJI^q^1%|Uxu_pFq9K~FUKT6TmsGaT6WIaF(g7FCqVv!l ztccbf60H6W*^q!%{_VoVc@`xBubN+|;V7QSud~g(s(%?PIW*s^q^f~vb+sRc8U={s z-^STpcsGm4j6#!#W0k;?O@=yPRYTZdR8~BTQdxOQnz71;4t{q&IJ^;_8}R5qVJgWX zIU%FJ}NQE|4_+hyJB-Ch5|^rHvU>kp>8Z9U$Y zVV0|%tH<=>G5sJ|s{Bcm#3C}XYQ#Fuw288ztauD}pb)vr10ju!s^fwo-1T9erm+cQ zp%^OpDAJ?Ki;6;KLb<4FEq<)x+j*P?TwxijCfb_|30L(^6>VYa`gfvU2lMexf0U=P zzY*)vy=YrX(>GF^ekM0fsHFlNLUTV03zZM0*8Sc@W|MvrZ}f{DGs?4%d!O}nY~-aP z8s3ezr0xSo{V>jqR8WWgv56Die_24`NG63;x>xK}?=Pq$9Tu{~qg z4E-KV#PO+5Ic-soc3$|bMH{g0I30L{1}v*oy$ODSQ#EuxRzr!KDc~^~QruuZP)6u% zrJe=B5Uig)Y8*j@vrh%v$4cP0zC%t)5u0cuk%6OL1821YQ@|9~yYg|uy#lJclytuGuAE;l^cs|!Yr!Gt=Hy#HLG=GIN%El+@pcC+d%iean)&hXwy$|M{{!;zew z2U?a%6XsMc^gYR8RtCu48Qab*vhiiiG9)AK$J#)stKn!$$fURid1!fj`2}Axl?%=+K?{|&Ny!0N8fy=u3;r3ZJUEf1@eSIwuF&!A1) w#$ZWS@r^uBY~l-uS?nxj{m&uUaU!o_o6y)ETFyCu3Vv*Lz2lP?4#M>OUnhqm`Tzg` diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-39.pyc deleted file mode 100644 index 656fefe51c29907a369a939f3230ad9a7d127f4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1107 zcmZ`3%Wl&^aM!OmX^PTPRqD-GOEgA;3y2~r%Hx14Bo06XvbOd#acZyK-F4eUDHpi% z0Z1Hx8^6J4>=1eRA^~uFH4kmo}p&g z4ee;k?CcBAc(tdi8JCLX`St;m|6-?1v4wVTt~~;lf{+VI zcP`1Zg9Z0Wzsi~VkE9mxZ;4DqR;i^sTJuEa!Mma?)zxjuL>W1!GqOkC-aWUbn~IF-%o@^^exz@#bNk$RN%*=$lr_0ciFsa= zWB(?Z(J%JQ89QIG<;VVvVzaF2yXQ`qZMEwCi}*H7Yicw;!(P-j%05 zn2nJaxo|(_ViZPgPup(qxZ8C1 ztYgbLEeBo!!D08vYw!+S=E{jz$N^E+s=lhPhVAXuJh*=PtvUX= z;(33da`_5C`2=qBBZ$OHNa}TqC+QNW`&}QNei}@|Zb)!1NK2Eb8%@gHveUz~GO2c} zlUlb1dMSy9e)kHm^LkSL#ZM|p^@pYSfsZ+XsEOG;pC?AWd(5!kLKENv#!@a%^XuDn zELA*ARgb0l+k7~TQz1{lpB=>mttPRV8>jv2W~%xOBY|&KG@HeeO?Vz@ZZj?W1jAij zxGur{2ySx?g!RrzLK1)JT?9#R;6Z-j;`bVb>yeVDTwBWMF}R}>Zdt-Cqo*v*IJF8k z+7M_91Eu)IL)x2DHl3z($kn;9BTfyzY_guQ!e$sGWrj{qhOy>GWxCJJZ3Bk}+(k_X zne5}KwsUZ-EPp^}oc5WN%2GfTmr9C0OT}XKPLKB)?g&dq;GEG!3WtKccY4B%W^By4 z?O1MXNAiJ)z;0#k3O(X}N~h z=>R6F>8vZ>p3d_|yw)5fZ(yx_5MHGBLGBbZ1jDAF4?wZr(mNwBi6vwIGw=DkFMS(~ z{qu0?FUf`fGH_aH8C($ESO&gFpyb~-Tx0u-FCFM#DRn{zO79eSAX4s(kms29?Y81G zmYzVtDRgKX`*l^hW)UqQIyZTU8@aDwHC96Akud1689Jo%y`6;fs%v||Y?4>jJFXUm zxC&|NGKiaSn>q+DtdJUMkUGd6co3QmJPS~U9zf%rdHT+hoD=I`5aQY3%rg&ds2@68 zh&Fix^bfcCrPCz`Fu>{H4Qw@_@^;O+dIm-g3_7Bw&n44BnFns;Zj&No z1n`Y+r;OVIa$7w|3J-)#@CY_&`3t&A*|_A)7Yqa1Ot@IL?-W|BjJ0QGkA&G!AHB$FOeEJnqSrMtZUwjY=re6b*M|M61rfVEV`2mcv z_GXN=H!u{DW6=4{-6L+&wYR dmhzABLk82vz$=i(KG~0a;{O#!`_=39zX4e?OOpTq diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-39.pyc deleted file mode 100644 index d230997b4a069887084c00d70707cf3f790dac40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1311 zcmZuvO>Y}T7@pZL+iRyWXXn^V;5Iy}Qhe zlR9!Pd|bG3MB-o{xp3eo@H6JhDQ8Y_fp>NjD+k7!_j$i|=J7LcxU%9BTtENOI{C>W zI>Stt1GPWi@{dd zo$syQI->`qwR(jt$$raF)?O^6vJWSD0vGl~4mO`&I2s;5xu})6*@vZzO+~e{Ri-*y z%PP7FDC_x)uMWh0JUz--oDN@q{K@f=cz@&d=Fxfk_=A?dl7%u<4hK2mX+$-X>t!SA zy^UM^jz*Fla{S?uaY-+Y8JW`=T~Kb#h%{#OJId$}_?PGA%vex^P;x-N!P?wn7&FRD zUB&MYFU^_BEN1JNIj08Sk@nn~nRwRHyR>E&qZ2CLd`Z5gGizR15N7GqS!Ge)e*2ys zyvLN)d5u*UH2+Py^ZJ4;w6wL0AGb#koqD0ypGpv(kQ{aJ1{uc`s^iJbi!#n3lF8I# zAkp#U2s}tj$z0dNwHqc$Kg4seJ;|alf%Xt&&S3!fExT#nz&-&jFNsgV%W_CJT3(iV zUr*&IOFR32X?fi%11;C?l{Q84J!OX?isRi@gX2IGcDb8a#Qf30Fau^^XP`1dE zSgLw=fBVJG7yF+FFT2VS5b|iGoFUI9xlm3?QLXGbRR0aorPdkpB<~Reqcm`8v zsyGP2tHa%=s&?%?exe#nH+bH?9qo0OZJn)Up|f?n4Wqqo`I2@qc&NJMYBdPLG|glv z<17_Hpej)|&f^4l6L}Q03w>{yM+L!W#j8+7X;q4Z9#8Njq}hx-$<4&Cj&1om znMUdk{sa;WSn@ac8QHR8%aRRTCj%N`$xhvWh2cc9^7r_E6~JuDph*6AV% zTTd;#r`%t1r;m7eAJao0-N!#CW&BGVM?QTYeIFtw;?J1Zq4rKFI67f1I;e~Tp%fTZ zLip8NBekb&wE}K$n3{32;1xYsX`vRxy#&Gz1I*bLD6x_n%M3opLbQZnDv(4i(ugIT zB&iQjIn%)Hi@P@)pq?@-e7%9DRbEB8m&UCV57-+Dlg_hKeMGOiB9#dFmI+84;RLe=3YD%|t{}%~ZjFXNuLU0TyTIX05FdDO|?jN)4-@W+e=F6Keo=rs}*kj-% zb!XmU3Hv_K3KpQkN$dYb&EPI1f0S&HN=U^UIPa=u7b0*)iDd~Yvoo^QtwO<~6C%{! zTY8q~2kGl}pB1LbZEr=+>+;DF`O~M@*OU3mPI3hpsFLqag@RU>=u|&)3=YaxL6XkM z@+5~dd&S!KriFs3Pl=q&!+d=WkDoMw*JJ)i9@(s(3rF8Ac=$DPAMoQZm)EAjd@rd!ihD$#dnBK0to)8G$7R|1cY4PX z7f6(69qKMua?d3Q*8U{B&WZ7#SW&zc2c)qoyV2-;{PWgJMfuse%4|O@cPE`Mm;sG< z)#WT+#L3^YrMu#}b#n81y>d%_9TvW~Tsar62A77J4}(Deg~$pevv9?XDRS=K4YR#5 iYDk&I2sdVWHe3dj<)@7)TZPZrPZ5QZEaQjCW%>^*8=gJ@ diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-39.pyc deleted file mode 100644 index 328719e4c3a92c79d129cc80625e998da88a23fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5148 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 HGh_b+oeu(t diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-39.pyc deleted file mode 100644 index bc3be6a80c329f68a5c610d78a0ac97301632c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 952 zcmY*X&2H2%5VoD{Z}*R?>W{=B*BnTsa;j7zO0`uhp@O;#RJo+t^=#KAaU$EhZKHC6 zmjH2qBd@`kC&-mkUx5>Lx`JIx^J)CejOX*%QM=tldVT)sUi~5n{WhEBW$DdxZSsqT zH;AGDQA|mU6A}g|9sd#9h|&6 z9k`XeR;JwKCgTC)d_iibQAXoDiHi1luvDqjbCwmI;NspJ_%ksPjj6~5H9-J+w zk;3Lt0!3ATnh8F}<|>P&-wGK!)FvGb3f-ZPnBpDu4Sz=;@EulUj>Kb128ddELUz7) zR-WSw#Y_)r;#`>1FB~SF$Qh?xG718y6X`v7A~Bw_IXDwNRqx)k9v-=tF#n;b#OXDN zV*TLk@c86ye?_yXn+!|O_XiRk?f=RAX_|mPVsd&NT>&UxfmA++i3%l%Ifzi*@GukU z7^L*QIq ze)rvRzyI?8t%YrhEU84%4a11@RF$7khM}nFkf<7{8EBbIdz7YeDWM$D5_CHdIBF3M?cLmf9H6t4dH6wgoL(Wl>XF5mmCh_GII%|1>k+ zB~fyXlf#hGy;l2vaQYsNFj=gf@1@0>5*+w%~#-~J4ypLP-Y zOD{GXg~e0oqJ|+wDbCTTed7^^HOWaqN3^g;7DkLR`+bzs-*IZC_Al1R*|0ci2P~Zp zi<|C%#bp+=nLQ?}NH5(5>rRS?DCqtTr=meXlzURktSaMN*)N+qX8~3YXR_gCqFpu{ zhQ%Rt0sn&}xI=!U^6Y_Maeq*i%+JPtSxLVU zU~OIdaEJRQC|U(YZBUd{wgSUT`vzm!N5bwZc%*D4CF9 z$;L7gjKlVk{JD&3UL{P3uz$hIix93G)-yS&%18ajp~xhASjWkEe8xmrXLT55rDPoN z2^*Q^A~cuj*E4nJZP(h-@DLaf;d;J>p|ju3cOSHtVQF+fo(w2_wjOpwNM*8^)(qo7|M+;4*HGld8&x)AO{Hy>13s%ZlQ|eda z7UEmLuF$VUe}!;g*_T=Q=!=1R_iz|}H~29+KKkY`diDIp@aSX^xQdFIP;Q;aa$NC3 zkxHn}njKrzc_!8V*Al2cZ6tfndBs)dWY|u;S8?97MqnC8s@7L*pa=qLjvhsnH~VyGFkL;%?xfDF(4TVSDUl9C&|#B*6Vu&RKlj0+|p+Zn&7?YkQVc$*yu96o|B?!$m6!CiP< zV2NN4cd1KV><|xoglo?&uJmu})Hhsx2oo(GOSAyZYY^}0R8HvvjrF@t=wDw#GRw+O z8I)d;fo{kN+g29O^P#OpC-$Y*E}ikMcnJS9fa<|ohXVg{k|h(^a2z+e)O)j{mb10D z*(@vlBo^&ic~zY^wLgxbg@a!1Z7IPm|%@XPhcK+Tqiu&nyMV&50sH>xH#2=#><>zYQTVN!ZuDZ0;u;@?w3WCHaUBu%fqO& O3kSVJdv@=j7yb)JqP4aF diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-39.pyc deleted file mode 100644 index ff74297894965c10794de42ed37f061e169731cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5197 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-39.pyc deleted file mode 100644 index 4149c5a1bf716f46fb34d8d755262f9dd729778c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 991 zcmZuw&2AGh5Vm*o*U+CxpbF884;)yj>;gR@p^6{nP^l!STR`-(a@Lb(6USa`Cn1QQ z;3beaz>(MBG4{%dSK!3#CY7oRuRNOZjAy=?&&#*A+633vU%`0KC**f&TwQoZp5nH5 zQ3!HI1Qnj7XDEgLjf$G6f2o~$;C&{P2rni-}9AXmULb$%Th;^}F(hQ9y= zisgmIb`WIM4dyT5PkGvp_pu15$|*B7!SwwcR2(0(%py+R*4Pc=9U(ZJ$?0)Ce;7Ur z+kbGjq!-YlVZhCdN=y54d8lmQeu3LM6poCkpcCJ03lfu$o5%!_-UWF})U6tE{xYP< z1tss0ub4a_pUAi-{7Ky$R`DH-ugUtfaY1Q$=XQC=HHY4EcAimWyn9mYp|n y`76CcJGAAQ9rOl%(M%Gd(Nh(qxv>otwT+g)z55St{}`D7 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/logging.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/logging.cpython-39.pyc deleted file mode 100644 index 83aa026293d60799b61f099dd41886f888f0b265..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9297 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/misc.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/misc.cpython-39.pyc deleted file mode 100644 index d5dce0c86891de0895bb1e89e9b766bf344ffcc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20944 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 Npx=SBEdw3w{{c+*yT||l diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/models.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/models.cpython-39.pyc deleted file mode 100644 index 2d0b19c7ceefc91b3ec0a984b6c695f3cd6a98f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2070 zcmb_d&2Aev5GJ{+AIp*~JB|}KNT8x89qI*|Ls6h8+WJrwMU4V(FMA=VlhC06?hHkyS@b1f1ca{PLUNWIWY{m@SvVS}@8nD%w!4bzQF5jM3rWuxZBv!7g? z#4ZLqoaAPxVG?I?HXWw9hQxOMM7!){A0Y0p@xFeDcn9$SYhx;)GZBXjtsmgokMv`l-PJzIa9Hkt2aB(j z1$~^Sg);Dc{5sAqKK;Su=dng@qG~v{c{Yqxp~frC+)TM)Y=>joJH%Nvd;yEHE9(s) z3GK+0tTIZJwUwSU(f{Xo*)-tJOcv3zt_t-9)?=)8fX$LGnPf|WE$Vy9uKCGGm?qAc z7B=`+zJ+9B+BC9-%{4PU{QQ*$vpj`h9NXC|H3x8k1M7keCQe!~=U}9Joyo%F5m*}> zokMmWB=I;X7H*bj&yPL}Z0z9ULPams6l_q$MIhtMfyq=7oS`Gxp!S=i0-Z(TTCcp%RT`jyE{;_< zuA4qWB1220+(l%`8rw{zUWsNKxtoEh8C82|9~SD?Oi+_+QPbSR&3Cw(hd8#6bw%^Z2F1uu^xtWj2XrPKP>}&C%>j+j zGrd*JJVHqIUs<4m_hvE0tGtuNV`T8bJy?)|_h+$5i$i4a^gb;94=v#31}#X3;XPQ8 zfstp(waR7+7`wW5;k#*taOJ|!u!BK`i3P(-*nvYQrUWzhmVEAAu3g$MJF$&3>r@s& zm2JxYN$$Q)iv&`@M4;;!^lmx#6SRHTx5xuO!fGjNG2Z3A*pwG;B51TnA)Kic6)rnc zVwyQisNa?H<(W!uW?E9}Ji_5EDQ%KFi&9dA7>ZW2gH7pS!ZMTvN`IW^Nfm9Cvm5d? zLr-l;X+!GNvGO)DsvZTrX<$Pc)>0s~@d9me;P<`3`d6(OwakaKx{fxtDDbbfCRACk bSdpb$0n8CRY|6zOuV= zVnYVnI)`3*Z-E@-WB*2f#$J0W&|lC)+nJ^0C{9rdT+Z$eXXo*KLj{dS-GJ+t-eTIzU?o>!8o zwC>flTur7^*K^Z`*UaaiM-E4CP1ey3KquQm~o+M2Qb15zY;b5m_6&qoTV(2@S1x! z7Lv!ieY6Mj`K>%-510(1KnC|X&p9eZu_%(@&@TenYc(x3%S$7|FAild&y+hlz>l+T zuBx2LKF>lE0~uXd&l=o!;1-|3Fo2r&4emzfwjqrn85pPJ*p%kbimah6E3!HuC*~=E zRcl}k%mV{*V+TJI!>CiZ?(|srl*U~udyMYI2P~tHv@>+%3rzzV_L!gny)g<}td=S_ z=vi`Fb!}~}2zZc=U)5o((RF%jRbqZ=-lcIS1?8-O97F2jY!B>~*0ce1DGl~>zM96F z9z&jw?NOOia0UFm$y$3Y+7XAMHJP$+*KR%OG{?S_>06_n9o}c1|BX=uG8Rx|q0=xb z3)Z%E=G8+;5Pu#E_7S*`b)lX6K_Xb^?6?3n1>MLFf+UW%$FNzW8(rEtSLqJz1(4AU z(xJ6!H|LP&^0ciTMOw`o$2u$b%+NNI+`**^Bv~+J@8@x*tTZT;1>kGid;-U=zkcL&F>O*emkGZDYd}RC_#^ooOhQ2K*@cv-z^y6q9S9LQCK8At$-a4F@(%~b z&>8>%v}B`nY-S(hY6QgKw)HaY6IR|!h02_WfY92S6 zoihj`jw$pQ+Sy}rQe%WjLGh##M9O(^Z)g4P`p){1^XQweS2woqKRmj)mD90dfLuR| z0D$xZp`cGTR6Q1PCS;I>j8`F#Y7x8I2DBo4j=P(3C*4!-q${eLLJtJ?E`XHaL} zKs!#7hd{7A<1S3Og==;fI1N{)^II{%V_Ne z3{AMjH5iPFP3DOCk8Qc6PHf_u3&b`ZfKk<|6RrCOcCfXgI~qHmf&e%G`~WIiAQ6=A z8c!|(KFH8KHTYurGz|iEezu5Bw`pyusg14eo%PMldyhGK(X{w=c<R-1teHF`+7$ z$)ahN5!<+UE+W;y*K{S4gz>vzsU!qMG(#M?c^lSZ1DuDiN-Ygui1>)%w+guAqkTyH zTQot+V7NL|>?25#6Z}$=qtEZ;P2zz+O6j*5z z{s}zJ$1saAjHr!$bQ5$09&b1t^W40yrn>zslzE=OhZSK17FC0#L7cSG@`KIs1?84& zqv~U|R8<}p=m1imBlp!bw3`<6v@FWG2Cug?vC=w=NjFv9M!g&VsnD8mT5xPcYUK^Z z$^Qo&{&E@WlHMP;x)ys8GX1|oXt)}64G#v&}qF$J00ELr3D8u-4?-^0L`(YOV6 zmAwmT(rr*fSl3@oCA{xrDVWaaL^U96*o@zc~|bl;G)_ RbsJdow|jB!%A8Xt{{sA6?MVOt diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/parallel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/parallel.cpython-39.pyc deleted file mode 100644 index af5e0eeafeda3313e5e274e633807ffdb4ac54f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3217 zcmds3&2Jnv6!*-|CY#OfCjCmAG))Z`vv${{n}??|Em_5GWN_W;D+p``Lc}z4v~0&}`Njp6`Bc z?;SN5`;~r9KQ;Wki_d)SFeaGKgd^Nt*LOrkc##`d{EEX+uSQ;6^=E8-2K8BgwrsDV zea_Zrqk25=&&LhF5jXv2-11xTg1=zaU2a&(T{Fm!Wr6tUgEYidcr; zs$BZk(OYuGWBxUNP1WR8|C(I&*TnobYhMfcE@SJ7+LtPnD&uLOgD8?wco<}1qIfdo zqi}a5HBYpF9Oi039i~&S?~Fpj<3!|<^%4iY|+QF>bU6@CzABOavCN_7}y zk`J*;KNvhTJW=(naW=wQuk%0&{BtulnT!pOpb)BEZt^rubjF8?MxPptbfTsP#&R$U zRA^%JR=xfzkAt)q=TR17sev@+bW=9cG7x09G_o|(@PkA@#>0bu&P-O`w54g(XKDlTJrCdEUuW*wDm=YtVk z2rp^7IVjo*t)`H}03Il(giWt?>c!$&#}o@EEt6gTMhwt)iq;?jo?m8hpn_eg(c*1k z|Bq1;4()1DTSxE^az$;k#IUSoi7sY$#;N=?&_(sWLZD*&;s+bI-n)N$r?++Q-tFy8 zf1_}=3uou<&aLq4M{BI@>RBvZ%xIbAS`ENCClA$$jRyG4`w)jO9j~<#V?KxygUq7jp#bUJZC8q_ zZ7jUKBvi#5P>4f?ywWqU@iEgEQT(2CM@cNZ{m_gKf;}m-ZYE9ERdSg1jMNB=UiPKx zO@pli4%qKTVZWQ&e0-zxX4fEMUQLmPaE0lnVcP8>=%iLb)XlRnLR(1~opfBxl2Nd~ zLuf5Ru!`%{yqZ&U>Q6}OCA9rUptiljBQ7aw)0iygP9jg!*g*wi`cR#|b$o^nj|{jU zIma&WbPj*HLs5z#v~wW{h-xO8L~HOY;W9wPmKlh=Imraj7{_C&Y|3pMv_>Isu5?k9m3n*^WE)69;8 zsTc~zlW`B;gG04e*XtLI_tdX}hAYVCQ<7#0m-W@@-6QwM$^+&iYCYz$W1P9$>@{XO zHxT9Yeul4%=s(tpoTjd{#8eWA<#dzx;}9^6WK38DQ-ZV1R=VI8uy`g@VaW4&%7XQ8 zTm=K3%T#ufX?}v%ls)&Pcp6(JeQRmJaySPmevpzjwu||#$+<(JP_!r(dM8sn_Rczx zc;~Da&si^?KEpnQmLZR^dc)Bi<+FWx6TRfi%sqBayjl4dZ{GL^Z$9~t-aK_o{Xd-P zO`M6F0^JzMm%0gH^%{xmB+jJX;!~$hz_<^k(q}D4zlguKqc8uxxL(ZmdLkM0dQ`!= zhDyCW6+p$B+>WF2)QtxGs;g+#*GNzV`IpZ0cSIh?WBme+oyo>24WVq;b0mm9^*jmO zy>Tf7t9N?fev#;oCdxC2>Ocf3h{{a%-6HJ;(!P3jsi*fbS-~&7FZm@r)(z+#7h5d`^TT+~-8N&)A?MyvHP{{0;X=;8^!T zJTkWS&`1>x6KUN?u{Hs<&2=mj!ILO7E<|U8W~^7NN9h)hxy|; zk=h@tZ0<+C00nWDMrz&b2h7$Al&vUfmMR@Fh`m_I#E!mT)M-V{%FRm(0Bi~y@qbJcs>TnS+LLR43)ig@NrHKTIb%NpG>X zH4c#2a9&5Z^LXgy&Ew4V3IuwcMsulZ0R8{aXJiGTE7Yqn9hXeCknbSDh= z`j8z&6`piUo*bh}4&W%DjXd{X0ki3B$qXvcCBM^`(KmDd^0*hfqd4^n|@dH{~Q8qf1G^;^9>0 zNx-xkvW4)s^d)^p_mv2k^5BoUf#eLyYn3=ZR=*p4#1{2~;?N5_tQ-^6ewbx39OnN5TWz z)FTxy49DrPb)*`ma6c&6o5e!DoRN}iMWfsTn0g1vYt?C}Wy*KPeE3~dUbdr0aawDkP lcHtfCad_=Srh29KYuC!C_&Te$_VF&>dzf*Jx-MAD`4_0StgZk6 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-39.pyc deleted file mode 100644 index d4573aab152dcb2c390cc64f017edb1752420545..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3441 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 LTHSW7`e%O!7ijwB diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-39.pyc deleted file mode 100644 index 08ce2d17410cf06d22827842ca58bc8fbf38f455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8483 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 Y_oGA8#Ab$`-&9^Ve#cA)WQpJYFTEFqUH||9 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/urls.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/urls.cpython-39.pyc deleted file mode 100644 index f7497ce1a68f3e695a357be48deb3af282eea95c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1606 zcmZ8h&2Aev5GJ`lTCG-!(WWsR^uR+8-b1u#dP$9-2%7egqHv13ZBW60uoh`+<<)XS zQgUppF8z6kq75J)`vy7m)W_hZho1ZjY8!V**@e?x?2z9KIpoZIvw620BY1xLJ)Qg! zBJ`&PHy;ncBluJef+2=WG+2*#fE^|S&yBttNf}JTL5LCam|wQ0(ICQzw|U6hTZjd} z5Eio55B?wqU7JOK+bjm$aoE~BECHM_yob{61)Pd@Q*5HAwJt=Jmlqf`plCgNvir%? zXL~6z-b|Jzlw8kbHL~XG$IgBD9>b?72!f2Bn2~eBye+iE=b%gd-4))E zHfZV2Atq3DS!ffK;)Kf-%K&V@B5AX>I?l#o%Cmz)jZg9k=Q`6|>8#?1dZ@UZb2-#6 zs$ng~h%1%#=e(L{WpR+zr+O@^5BeWws?hviosW+5Bd)T#sIy^FX)YnsY^IA+We}X| z*Qcg;#PtxsP>sfX%IyUdR16^;VIN|G8RWvRb3K+;|3)SVD6G%OlZ#5%j;Zf)pzPu;2frHLxhrDxT}dOA*c30 z(*jp+5<(^*lO}+jiklX|i6|=5lKlA$ieM7EtjeeSKA2MC9J%7T(yc|uI`7zpLoIA> zH$bsYYH%Ch!EzJu8+o*BvJ7x}{0$~+7M){t_cO#ugMJ1!z4X4v-(ig>Wa)CdA1v^K zEIg37A@X5En14*<$1GTo>Rs*2FId=+O$4Z?1J<%$UXm*x;j-0`#@mD%Ej(EJsv+u? zjv6?FMaKbPkJ;9W!K0mbwvcX5;yH3CVcj1ISbJBv!){r;@EQ-Qx^cGszpDOM%XMjO zYSvYeJqY&f{cpvLj`E6%sywB(->#|;xl7j^ zKYLJ#>Yh`&<-naMisq72yF<|@nw&hK7fj`SF>+&v`)B_O6_c6H) zN&MRP?~sIq*e5X|IJ)%xjgVXtLS7Ru{)hPS-y}%>B4KYuqJ+q8*qe6cEg0l`Al!AK z3;M1JT$rW@CtB5YAB6g}hU-h4Clii@?W1+@9t7ro8;<7A`HkLifw%^V9!>?DmHZ?7 UM^v^&BKYOlHzA34JKTu>1suqn)Bpeg diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc deleted file mode 100644 index 1e920a58d674c24c752a85a84075885aafec2131..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3296 zcmaJ@TW=#p7Ov`Uw;d;O=0?P2*exznFiPyK*p*lW14GEnB8Cu6f>^BG?P(PzPSDzd5)MB^LznD zZ|=IrL@Gafpn{suJaopJ;Uh^Y2N$^^e0 zPbk%H?Zct%IO?{uLp@BBH(GyfU+`r+i?VhQC0a=Edpp-rtlFi*u(XvO7B>T#CrOkH zf;{1{KW^DTKRVEmikye`DQ6=@jk6KSnrO=DiDO(my69pl!g%6h@S+m>DyLrMLe_(| zT5xs{=^@Jwvv5UCe2uD?9-cV>fL0xb3Y{u_&}-^f+e2N8moAwr#UPJEFxy5Ec3y^Q z)_7l{Bc3vz!k{sJ0XmwTkgTrh2?6uz`2B|loop8{i!eJ7D^jr1!z@Zv#03jy>{w;@ z5ZNr%Lm>|$C0b3#_}rX*r3ueo3fQ^ke>~URkxQ2~$8gr*F`5sdgPC#aXm`)!^vpRX z<2$-?1T4bce>>m&;g}xLQ~!*dR?o<1!~q`gh(}Ib3epbw6H)K46KejSL;D#?Zh1u4 z4!e^v?(L9uSOs3GjK6*;Lax}Cm~#lRda z?ZZ0}%I2eWv0__kB39AKk%lFC%vq9Z27uu0u!s4!Mu;;>n2ak#1Hgphs z#{^G(!og@RTC-x_v#UQhneDIXW!*KvQ;cTTxD?z=w%0?L;^)9THv8D!5%CI(zOWO z8vkeG9H=EmSEgF8FfLREweV^S!56r3*wfLzXtBFWNYcQXFjIlvfSC%J zn9TdM=6clm#jAKujn?Thtx<_7)5Fh`AJW_T6<{5NlHQQyTvt!F0C0 zXgpnck<%;>`peX(4t0L^Jh=*^7eWm(l$??WZ$k%pP%hXStR3h-t6i+e<`(LV|28QY zA?v1TEW%{<+~d>A%&;8U%SMu3$xp3&P0yBQM4zqCsN9UH<|b#D{?_zDF}3_(Fk9hg z;`!8f@R4gEHJ6JjW*lI_gr{(%kSp-P6rjS_hZ%lCj7t}qVh+m41Dm1{EQ}!p>qY!h z#fvEvABmTN!b5{+t`m4GfNLmRkg&R#EHeHzT3l&I?QIBm9*aBZamApiLH^nQHK$H( RW;SY#xkhDqsqtc?@hfOloH76a diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-39.pyc deleted file mode 100644 index 33ab4387b41a66e637553079b3f9f42789b148ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6285 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/_log.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/_log.py deleted file mode 100644 index 92c4c6a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/_log.py +++ /dev/null @@ -1,38 +0,0 @@ -"""Customize logging - -Defines custom logger class for the `logger.verbose(...)` method. - -init_logging() must be called before any other modules that call logging.getLogger. -""" - -import logging -from typing import Any, cast - -# custom log level for `--verbose` output -# between DEBUG and INFO -VERBOSE = 15 - - -class VerboseLogger(logging.Logger): - """Custom Logger, defining a verbose log-level - - VERBOSE is between INFO and DEBUG. - """ - - def verbose(self, msg: str, *args: Any, **kwargs: Any) -> None: - return self.log(VERBOSE, msg, *args, **kwargs) - - -def getLogger(name: str) -> VerboseLogger: - """logging.getLogger, but ensures our VerboseLogger class is returned""" - return cast(VerboseLogger, logging.getLogger(name)) - - -def init_logging() -> None: - """Register our VerboseLogger and VERBOSE log level. - - Should be called before any calls to getLogger(), - i.e. in pip._internal.__init__ - """ - logging.setLoggerClass(VerboseLogger) - logging.addLevelName(VERBOSE, "VERBOSE") diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/appdirs.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/appdirs.py deleted file mode 100644 index 16933bf..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/appdirs.py +++ /dev/null @@ -1,52 +0,0 @@ -""" -This code wraps the vendored appdirs module to so the return values are -compatible for the current pip code base. - -The intention is to rewrite current usages gradually, keeping the tests pass, -and eventually drop this after all usages are changed. -""" - -import os -import sys -from typing import List - -from pip._vendor import platformdirs as _appdirs - - -def user_cache_dir(appname: str) -> str: - return _appdirs.user_cache_dir(appname, appauthor=False) - - -def _macos_user_config_dir(appname: str, roaming: bool = True) -> str: - # Use ~/Application Support/pip, if the directory exists. - path = _appdirs.user_data_dir(appname, appauthor=False, roaming=roaming) - if os.path.isdir(path): - return path - - # Use a Linux-like ~/.config/pip, by default. - linux_like_path = "~/.config/" - if appname: - linux_like_path = os.path.join(linux_like_path, appname) - - return os.path.expanduser(linux_like_path) - - -def user_config_dir(appname: str, roaming: bool = True) -> str: - if sys.platform == "darwin": - return _macos_user_config_dir(appname, roaming) - - return _appdirs.user_config_dir(appname, appauthor=False, roaming=roaming) - - -# for the discussion regarding site_config_dir locations -# see -def site_config_dirs(appname: str) -> List[str]: - if sys.platform == "darwin": - return [_appdirs.site_data_dir(appname, appauthor=False, multipath=True)] - - dirval = _appdirs.site_config_dir(appname, appauthor=False, multipath=True) - if sys.platform == "win32": - return [dirval] - - # Unix-y system. Look in /etc as well. - return dirval.split(os.pathsep) + ["/etc"] diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/compat.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/compat.py deleted file mode 100644 index 3f4d300..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/compat.py +++ /dev/null @@ -1,63 +0,0 @@ -"""Stuff that differs in different Python versions and platform -distributions.""" - -import logging -import os -import sys - -__all__ = ["get_path_uid", "stdlib_pkgs", "WINDOWS"] - - -logger = logging.getLogger(__name__) - - -def has_tls() -> bool: - try: - import _ssl # noqa: F401 # ignore unused - - return True - except ImportError: - pass - - from pip._vendor.urllib3.util import IS_PYOPENSSL - - return IS_PYOPENSSL - - -def get_path_uid(path: str) -> int: - """ - Return path's uid. - - Does not follow symlinks: - https://github.com/pypa/pip/pull/935#discussion_r5307003 - - Placed this function in compat due to differences on AIX and - Jython, that should eventually go away. - - :raises OSError: When path is a symlink or can't be read. - """ - if hasattr(os, "O_NOFOLLOW"): - fd = os.open(path, os.O_RDONLY | os.O_NOFOLLOW) - file_uid = os.fstat(fd).st_uid - os.close(fd) - else: # AIX and Jython - # WARNING: time of check vulnerability, but best we can do w/o NOFOLLOW - if not os.path.islink(path): - # older versions of Jython don't have `os.fstat` - file_uid = os.stat(path).st_uid - else: - # raise OSError for parity with os.O_NOFOLLOW above - raise OSError(f"{path} is a symlink; Will not return uid for symlinks") - return file_uid - - -# packages in the stdlib that may have installation metadata, but should not be -# considered 'installed'. this theoretically could be determined based on -# dist.location (py27:`sysconfig.get_paths()['stdlib']`, -# py26:sysconfig.get_config_vars('LIBDEST')), but fear platform variation may -# make this ineffective, so hard-coding -stdlib_pkgs = {"python", "wsgiref", "argparse"} - - -# windows detection, covers cpython and ironpython -WINDOWS = sys.platform.startswith("win") or (sys.platform == "cli" and os.name == "nt") diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/compatibility_tags.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/compatibility_tags.py deleted file mode 100644 index b6ed9a7..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/compatibility_tags.py +++ /dev/null @@ -1,165 +0,0 @@ -"""Generate and work with PEP 425 Compatibility Tags. -""" - -import re -from typing import List, Optional, Tuple - -from pip._vendor.packaging.tags import ( - PythonVersion, - Tag, - compatible_tags, - cpython_tags, - generic_tags, - interpreter_name, - interpreter_version, - mac_platforms, -) - -_osx_arch_pat = re.compile(r"(.+)_(\d+)_(\d+)_(.+)") - - -def version_info_to_nodot(version_info: Tuple[int, ...]) -> str: - # Only use up to the first two numbers. - return "".join(map(str, version_info[:2])) - - -def _mac_platforms(arch: str) -> List[str]: - match = _osx_arch_pat.match(arch) - if match: - name, major, minor, actual_arch = match.groups() - mac_version = (int(major), int(minor)) - arches = [ - # Since we have always only checked that the platform starts - # with "macosx", for backwards-compatibility we extract the - # actual prefix provided by the user in case they provided - # something like "macosxcustom_". It may be good to remove - # this as undocumented or deprecate it in the future. - "{}_{}".format(name, arch[len("macosx_") :]) - for arch in mac_platforms(mac_version, actual_arch) - ] - else: - # arch pattern didn't match (?!) - arches = [arch] - return arches - - -def _custom_manylinux_platforms(arch: str) -> List[str]: - arches = [arch] - arch_prefix, arch_sep, arch_suffix = arch.partition("_") - if arch_prefix == "manylinux2014": - # manylinux1/manylinux2010 wheels run on most manylinux2014 systems - # with the exception of wheels depending on ncurses. PEP 599 states - # manylinux1/manylinux2010 wheels should be considered - # manylinux2014 wheels: - # https://www.python.org/dev/peps/pep-0599/#backwards-compatibility-with-manylinux2010-wheels - if arch_suffix in {"i686", "x86_64"}: - arches.append("manylinux2010" + arch_sep + arch_suffix) - arches.append("manylinux1" + arch_sep + arch_suffix) - elif arch_prefix == "manylinux2010": - # manylinux1 wheels run on most manylinux2010 systems with the - # exception of wheels depending on ncurses. PEP 571 states - # manylinux1 wheels should be considered manylinux2010 wheels: - # https://www.python.org/dev/peps/pep-0571/#backwards-compatibility-with-manylinux1-wheels - arches.append("manylinux1" + arch_sep + arch_suffix) - return arches - - -def _get_custom_platforms(arch: str) -> List[str]: - arch_prefix, arch_sep, arch_suffix = arch.partition("_") - if arch.startswith("macosx"): - arches = _mac_platforms(arch) - elif arch_prefix in ["manylinux2014", "manylinux2010"]: - arches = _custom_manylinux_platforms(arch) - else: - arches = [arch] - return arches - - -def _expand_allowed_platforms(platforms: Optional[List[str]]) -> Optional[List[str]]: - if not platforms: - return None - - seen = set() - result = [] - - for p in platforms: - if p in seen: - continue - additions = [c for c in _get_custom_platforms(p) if c not in seen] - seen.update(additions) - result.extend(additions) - - return result - - -def _get_python_version(version: str) -> PythonVersion: - if len(version) > 1: - return int(version[0]), int(version[1:]) - else: - return (int(version[0]),) - - -def _get_custom_interpreter( - implementation: Optional[str] = None, version: Optional[str] = None -) -> str: - if implementation is None: - implementation = interpreter_name() - if version is None: - version = interpreter_version() - return f"{implementation}{version}" - - -def get_supported( - version: Optional[str] = None, - platforms: Optional[List[str]] = None, - impl: Optional[str] = None, - abis: Optional[List[str]] = None, -) -> List[Tag]: - """Return a list of supported tags for each version specified in - `versions`. - - :param version: a string version, of the form "33" or "32", - or None. The version will be assumed to support our ABI. - :param platform: specify a list of platforms you want valid - tags for, or None. If None, use the local system platform. - :param impl: specify the exact implementation you want valid - tags for, or None. If None, use the local interpreter impl. - :param abis: specify a list of abis you want valid - tags for, or None. If None, use the local interpreter abi. - """ - supported: List[Tag] = [] - - python_version: Optional[PythonVersion] = None - if version is not None: - python_version = _get_python_version(version) - - interpreter = _get_custom_interpreter(impl, version) - - platforms = _expand_allowed_platforms(platforms) - - is_cpython = (impl or interpreter_name()) == "cp" - if is_cpython: - supported.extend( - cpython_tags( - python_version=python_version, - abis=abis, - platforms=platforms, - ) - ) - else: - supported.extend( - generic_tags( - interpreter=interpreter, - abis=abis, - platforms=platforms, - ) - ) - supported.extend( - compatible_tags( - python_version=python_version, - interpreter=interpreter, - platforms=platforms, - ) - ) - - return supported diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/datetime.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/datetime.py deleted file mode 100644 index 8668b3b..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/datetime.py +++ /dev/null @@ -1,11 +0,0 @@ -"""For when pip wants to check the date or time. -""" - -import datetime - - -def today_is_later_than(year: int, month: int, day: int) -> bool: - today = datetime.date.today() - given = datetime.date(year, month, day) - - return today > given diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/deprecation.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/deprecation.py deleted file mode 100644 index 72bd6f2..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/deprecation.py +++ /dev/null @@ -1,120 +0,0 @@ -""" -A module that implements tooling to enable easy warnings about deprecations. -""" - -import logging -import warnings -from typing import Any, Optional, TextIO, Type, Union - -from pip._vendor.packaging.version import parse - -from pip import __version__ as current_version # NOTE: tests patch this name. - -DEPRECATION_MSG_PREFIX = "DEPRECATION: " - - -class PipDeprecationWarning(Warning): - pass - - -_original_showwarning: Any = None - - -# Warnings <-> Logging Integration -def _showwarning( - message: Union[Warning, str], - category: Type[Warning], - filename: str, - lineno: int, - file: Optional[TextIO] = None, - line: Optional[str] = None, -) -> None: - if file is not None: - if _original_showwarning is not None: - _original_showwarning(message, category, filename, lineno, file, line) - elif issubclass(category, PipDeprecationWarning): - # We use a specially named logger which will handle all of the - # deprecation messages for pip. - logger = logging.getLogger("pip._internal.deprecations") - logger.warning(message) - else: - _original_showwarning(message, category, filename, lineno, file, line) - - -def install_warning_logger() -> None: - # Enable our Deprecation Warnings - warnings.simplefilter("default", PipDeprecationWarning, append=True) - - global _original_showwarning - - if _original_showwarning is None: - _original_showwarning = warnings.showwarning - warnings.showwarning = _showwarning - - -def deprecated( - *, - reason: str, - replacement: Optional[str], - gone_in: Optional[str], - feature_flag: Optional[str] = None, - issue: Optional[int] = None, -) -> None: - """Helper to deprecate existing functionality. - - reason: - Textual reason shown to the user about why this functionality has - been deprecated. Should be a complete sentence. - replacement: - Textual suggestion shown to the user about what alternative - functionality they can use. - gone_in: - The version of pip does this functionality should get removed in. - Raises an error if pip's current version is greater than or equal to - this. - feature_flag: - Command-line flag of the form --use-feature={feature_flag} for testing - upcoming functionality. - issue: - Issue number on the tracker that would serve as a useful place for - users to find related discussion and provide feedback. - """ - - # Determine whether or not the feature is already gone in this version. - is_gone = gone_in is not None and parse(current_version) >= parse(gone_in) - - message_parts = [ - (reason, f"{DEPRECATION_MSG_PREFIX}{{}}"), - ( - gone_in, - "pip {} will enforce this behaviour change." - if not is_gone - else "Since pip {}, this is no longer supported.", - ), - ( - replacement, - "A possible replacement is {}.", - ), - ( - feature_flag, - "You can use the flag --use-feature={} to test the upcoming behaviour." - if not is_gone - else None, - ), - ( - issue, - "Discussion can be found at https://github.com/pypa/pip/issues/{}", - ), - ] - - message = " ".join( - format_str.format(value) - for value, format_str in message_parts - if format_str is not None and value is not None - ) - - # Raise as an error if this behaviour is deprecated. - if is_gone: - raise PipDeprecationWarning(message) - - warnings.warn(message, category=PipDeprecationWarning, stacklevel=2) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.py deleted file mode 100644 index 0e8e5e1..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.py +++ /dev/null @@ -1,87 +0,0 @@ -from typing import Optional - -from pip._internal.models.direct_url import ArchiveInfo, DirectUrl, DirInfo, VcsInfo -from pip._internal.models.link import Link -from pip._internal.utils.urls import path_to_url -from pip._internal.vcs import vcs - - -def direct_url_as_pep440_direct_reference(direct_url: DirectUrl, name: str) -> str: - """Convert a DirectUrl to a pip requirement string.""" - direct_url.validate() # if invalid, this is a pip bug - requirement = name + " @ " - fragments = [] - if isinstance(direct_url.info, VcsInfo): - requirement += "{}+{}@{}".format( - direct_url.info.vcs, direct_url.url, direct_url.info.commit_id - ) - elif isinstance(direct_url.info, ArchiveInfo): - requirement += direct_url.url - if direct_url.info.hash: - fragments.append(direct_url.info.hash) - else: - assert isinstance(direct_url.info, DirInfo) - requirement += direct_url.url - if direct_url.subdirectory: - fragments.append("subdirectory=" + direct_url.subdirectory) - if fragments: - requirement += "#" + "&".join(fragments) - return requirement - - -def direct_url_for_editable(source_dir: str) -> DirectUrl: - return DirectUrl( - url=path_to_url(source_dir), - info=DirInfo(editable=True), - ) - - -def direct_url_from_link( - link: Link, source_dir: Optional[str] = None, link_is_in_wheel_cache: bool = False -) -> DirectUrl: - if link.is_vcs: - vcs_backend = vcs.get_backend_for_scheme(link.scheme) - assert vcs_backend - url, requested_revision, _ = vcs_backend.get_url_rev_and_auth( - link.url_without_fragment - ) - # For VCS links, we need to find out and add commit_id. - if link_is_in_wheel_cache: - # If the requested VCS link corresponds to a cached - # wheel, it means the requested revision was an - # immutable commit hash, otherwise it would not have - # been cached. In that case we don't have a source_dir - # with the VCS checkout. - assert requested_revision - commit_id = requested_revision - else: - # If the wheel was not in cache, it means we have - # had to checkout from VCS to build and we have a source_dir - # which we can inspect to find out the commit id. - assert source_dir - commit_id = vcs_backend.get_revision(source_dir) - return DirectUrl( - url=url, - info=VcsInfo( - vcs=vcs_backend.name, - commit_id=commit_id, - requested_revision=requested_revision, - ), - subdirectory=link.subdirectory_fragment, - ) - elif link.is_existing_dir(): - return DirectUrl( - url=link.url_without_fragment, - info=DirInfo(), - subdirectory=link.subdirectory_fragment, - ) - else: - hash = None - hash_name = link.hash_name - if hash_name: - hash = f"{hash_name}={link.hash}" - return DirectUrl( - url=link.url_without_fragment, - info=ArchiveInfo(hash=hash), - subdirectory=link.subdirectory_fragment, - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/distutils_args.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/distutils_args.py deleted file mode 100644 index e4aa5b8..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/distutils_args.py +++ /dev/null @@ -1,42 +0,0 @@ -from distutils.errors import DistutilsArgError -from distutils.fancy_getopt import FancyGetopt -from typing import Dict, List - -_options = [ - ("exec-prefix=", None, ""), - ("home=", None, ""), - ("install-base=", None, ""), - ("install-data=", None, ""), - ("install-headers=", None, ""), - ("install-lib=", None, ""), - ("install-platlib=", None, ""), - ("install-purelib=", None, ""), - ("install-scripts=", None, ""), - ("prefix=", None, ""), - ("root=", None, ""), - ("user", None, ""), -] - - -# typeshed doesn't permit Tuple[str, None, str], see python/typeshed#3469. -_distutils_getopt = FancyGetopt(_options) # type: ignore - - -def parse_distutils_args(args: List[str]) -> Dict[str, str]: - """Parse provided arguments, returning an object that has the - matched arguments. - - Any unknown arguments are ignored. - """ - result = {} - for arg in args: - try: - _, match = _distutils_getopt.getopt(args=[arg]) - except DistutilsArgError: - # We don't care about any other options, which here may be - # considered unrecognized since our option list is not - # exhaustive. - pass - else: - result.update(match.__dict__) - return result diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/egg_link.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/egg_link.py deleted file mode 100644 index 9e0da8d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/egg_link.py +++ /dev/null @@ -1,75 +0,0 @@ -# The following comment should be removed at some point in the future. -# mypy: strict-optional=False - -import os -import re -import sys -from typing import Optional - -from pip._internal.locations import site_packages, user_site -from pip._internal.utils.virtualenv import ( - running_under_virtualenv, - virtualenv_no_global, -) - -__all__ = [ - "egg_link_path_from_sys_path", - "egg_link_path_from_location", -] - - -def _egg_link_name(raw_name: str) -> str: - """ - Convert a Name metadata value to a .egg-link name, by applying - the same substitution as pkg_resources's safe_name function. - Note: we cannot use canonicalize_name because it has a different logic. - """ - return re.sub("[^A-Za-z0-9.]+", "-", raw_name) + ".egg-link" - - -def egg_link_path_from_sys_path(raw_name: str) -> Optional[str]: - """ - Look for a .egg-link file for project name, by walking sys.path. - """ - egg_link_name = _egg_link_name(raw_name) - for path_item in sys.path: - egg_link = os.path.join(path_item, egg_link_name) - if os.path.isfile(egg_link): - return egg_link - return None - - -def egg_link_path_from_location(raw_name: str) -> Optional[str]: - """ - Return the path for the .egg-link file if it exists, otherwise, None. - - There's 3 scenarios: - 1) not in a virtualenv - try to find in site.USER_SITE, then site_packages - 2) in a no-global virtualenv - try to find in site_packages - 3) in a yes-global virtualenv - try to find in site_packages, then site.USER_SITE - (don't look in global location) - - For #1 and #3, there could be odd cases, where there's an egg-link in 2 - locations. - - This method will just return the first one found. - """ - sites = [] - if running_under_virtualenv(): - sites.append(site_packages) - if not virtualenv_no_global() and user_site: - sites.append(user_site) - else: - if user_site: - sites.append(user_site) - sites.append(site_packages) - - egg_link_name = _egg_link_name(raw_name) - for site in sites: - egglink = os.path.join(site, egg_link_name) - if os.path.isfile(egglink): - return egglink - return None diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/encoding.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/encoding.py deleted file mode 100644 index 1c73f6c..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/encoding.py +++ /dev/null @@ -1,36 +0,0 @@ -import codecs -import locale -import re -import sys -from typing import List, Tuple - -BOMS: List[Tuple[bytes, str]] = [ - (codecs.BOM_UTF8, "utf-8"), - (codecs.BOM_UTF16, "utf-16"), - (codecs.BOM_UTF16_BE, "utf-16-be"), - (codecs.BOM_UTF16_LE, "utf-16-le"), - (codecs.BOM_UTF32, "utf-32"), - (codecs.BOM_UTF32_BE, "utf-32-be"), - (codecs.BOM_UTF32_LE, "utf-32-le"), -] - -ENCODING_RE = re.compile(br"coding[:=]\s*([-\w.]+)") - - -def auto_decode(data: bytes) -> str: - """Check a bytes string for a BOM to correctly detect the encoding - - Fallback to locale.getpreferredencoding(False) like open() on Python3""" - for bom, encoding in BOMS: - if data.startswith(bom): - return data[len(bom) :].decode(encoding) - # Lets check the first two lines as in PEP263 - for line in data.split(b"\n")[:2]: - if line[0:1] == b"#" and ENCODING_RE.search(line): - result = ENCODING_RE.search(line) - assert result is not None - encoding = result.groups()[0].decode("ascii") - return data.decode(encoding) - return data.decode( - locale.getpreferredencoding(False) or sys.getdefaultencoding(), - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/entrypoints.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/entrypoints.py deleted file mode 100644 index 07d941b..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/entrypoints.py +++ /dev/null @@ -1,28 +0,0 @@ -import sys -from typing import List, Optional - -from pip._internal.cli.main import main - - -def _wrapper(args: Optional[List[str]] = None, _nowarn: bool = False) -> int: - """Central wrapper for all old entrypoints. - - Historically pip has had several entrypoints defined. Because of issues - arising from PATH, sys.path, multiple Pythons, their interactions, and most - of them having a pip installed, users suffer every time an entrypoint gets - moved. - - To alleviate this pain, and provide a mechanism for warning users and - directing them to an appropriate place for help, we now define all of - our old entrypoints as wrappers for the current one. - """ - if not _nowarn: - sys.stderr.write( - "WARNING: pip is being invoked by an old script wrapper. This will " - "fail in a future version of pip.\n" - "Please see https://github.com/pypa/pip/issues/5599 for advice on " - "fixing the underlying issue.\n" - "To avoid this problem you can invoke Python with '-m pip' instead of " - "running pip directly.\n" - ) - return main(args) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/filesystem.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/filesystem.py deleted file mode 100644 index b7e6191..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/filesystem.py +++ /dev/null @@ -1,182 +0,0 @@ -import fnmatch -import os -import os.path -import random -import shutil -import stat -import sys -from contextlib import contextmanager -from tempfile import NamedTemporaryFile -from typing import Any, BinaryIO, Iterator, List, Union, cast - -from pip._vendor.tenacity import retry, stop_after_delay, wait_fixed - -from pip._internal.utils.compat import get_path_uid -from pip._internal.utils.misc import format_size - - -def check_path_owner(path: str) -> bool: - # If we don't have a way to check the effective uid of this process, then - # we'll just assume that we own the directory. - if sys.platform == "win32" or not hasattr(os, "geteuid"): - return True - - assert os.path.isabs(path) - - previous = None - while path != previous: - if os.path.lexists(path): - # Check if path is writable by current user. - if os.geteuid() == 0: - # Special handling for root user in order to handle properly - # cases where users use sudo without -H flag. - try: - path_uid = get_path_uid(path) - except OSError: - return False - return path_uid == 0 - else: - return os.access(path, os.W_OK) - else: - previous, path = path, os.path.dirname(path) - return False # assume we don't own the path - - -def copy2_fixed(src: str, dest: str) -> None: - """Wrap shutil.copy2() but map errors copying socket files to - SpecialFileError as expected. - - See also https://bugs.python.org/issue37700. - """ - try: - shutil.copy2(src, dest) - except OSError: - for f in [src, dest]: - try: - is_socket_file = is_socket(f) - except OSError: - # An error has already occurred. Another error here is not - # a problem and we can ignore it. - pass - else: - if is_socket_file: - raise shutil.SpecialFileError(f"`{f}` is a socket") - - raise - - -def is_socket(path: str) -> bool: - return stat.S_ISSOCK(os.lstat(path).st_mode) - - -@contextmanager -def adjacent_tmp_file(path: str, **kwargs: Any) -> Iterator[BinaryIO]: - """Return a file-like object pointing to a tmp file next to path. - - The file is created securely and is ensured to be written to disk - after the context reaches its end. - - kwargs will be passed to tempfile.NamedTemporaryFile to control - the way the temporary file will be opened. - """ - with NamedTemporaryFile( - delete=False, - dir=os.path.dirname(path), - prefix=os.path.basename(path), - suffix=".tmp", - **kwargs, - ) as f: - result = cast(BinaryIO, f) - try: - yield result - finally: - result.flush() - os.fsync(result.fileno()) - - -# Tenacity raises RetryError by default, explicitly raise the original exception -_replace_retry = retry(reraise=True, stop=stop_after_delay(1), wait=wait_fixed(0.25)) - -replace = _replace_retry(os.replace) - - -# test_writable_dir and _test_writable_dir_win are copied from Flit, -# with the author's agreement to also place them under pip's license. -def test_writable_dir(path: str) -> bool: - """Check if a directory is writable. - - Uses os.access() on POSIX, tries creating files on Windows. - """ - # If the directory doesn't exist, find the closest parent that does. - while not os.path.isdir(path): - parent = os.path.dirname(path) - if parent == path: - break # Should never get here, but infinite loops are bad - path = parent - - if os.name == "posix": - return os.access(path, os.W_OK) - - return _test_writable_dir_win(path) - - -def _test_writable_dir_win(path: str) -> bool: - # os.access doesn't work on Windows: http://bugs.python.org/issue2528 - # and we can't use tempfile: http://bugs.python.org/issue22107 - basename = "accesstest_deleteme_fishfingers_custard_" - alphabet = "abcdefghijklmnopqrstuvwxyz0123456789" - for _ in range(10): - name = basename + "".join(random.choice(alphabet) for _ in range(6)) - file = os.path.join(path, name) - try: - fd = os.open(file, os.O_RDWR | os.O_CREAT | os.O_EXCL) - except FileExistsError: - pass - except PermissionError: - # This could be because there's a directory with the same name. - # But it's highly unlikely there's a directory called that, - # so we'll assume it's because the parent dir is not writable. - # This could as well be because the parent dir is not readable, - # due to non-privileged user access. - return False - else: - os.close(fd) - os.unlink(file) - return True - - # This should never be reached - raise OSError("Unexpected condition testing for writable directory") - - -def find_files(path: str, pattern: str) -> List[str]: - """Returns a list of absolute paths of files beneath path, recursively, - with filenames which match the UNIX-style shell glob pattern.""" - result: List[str] = [] - for root, _, files in os.walk(path): - matches = fnmatch.filter(files, pattern) - result.extend(os.path.join(root, f) for f in matches) - return result - - -def file_size(path: str) -> Union[int, float]: - # If it's a symlink, return 0. - if os.path.islink(path): - return 0 - return os.path.getsize(path) - - -def format_file_size(path: str) -> str: - return format_size(file_size(path)) - - -def directory_size(path: str) -> Union[int, float]: - size = 0.0 - for root, _dirs, files in os.walk(path): - for filename in files: - file_path = os.path.join(root, filename) - size += file_size(file_path) - return size - - -def format_directory_size(path: str) -> str: - return format_size(directory_size(path)) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/filetypes.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/filetypes.py deleted file mode 100644 index 5948570..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/filetypes.py +++ /dev/null @@ -1,27 +0,0 @@ -"""Filetype information. -""" - -from typing import Tuple - -from pip._internal.utils.misc import splitext - -WHEEL_EXTENSION = ".whl" -BZ2_EXTENSIONS: Tuple[str, ...] = (".tar.bz2", ".tbz") -XZ_EXTENSIONS: Tuple[str, ...] = ( - ".tar.xz", - ".txz", - ".tlz", - ".tar.lz", - ".tar.lzma", -) -ZIP_EXTENSIONS: Tuple[str, ...] = (".zip", WHEEL_EXTENSION) -TAR_EXTENSIONS: Tuple[str, ...] = (".tar.gz", ".tgz", ".tar") -ARCHIVE_EXTENSIONS = ZIP_EXTENSIONS + BZ2_EXTENSIONS + TAR_EXTENSIONS + XZ_EXTENSIONS - - -def is_archive_file(name: str) -> bool: - """Return True if `name` is a considered as an archive file.""" - ext = splitext(name)[1].lower() - if ext in ARCHIVE_EXTENSIONS: - return True - return False diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/glibc.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/glibc.py deleted file mode 100644 index 7bd3c20..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/glibc.py +++ /dev/null @@ -1,88 +0,0 @@ -# The following comment should be removed at some point in the future. -# mypy: strict-optional=False - -import os -import sys -from typing import Optional, Tuple - - -def glibc_version_string() -> Optional[str]: - "Returns glibc version string, or None if not using glibc." - return glibc_version_string_confstr() or glibc_version_string_ctypes() - - -def glibc_version_string_confstr() -> Optional[str]: - "Primary implementation of glibc_version_string using os.confstr." - # os.confstr is quite a bit faster than ctypes.DLL. It's also less likely - # to be broken or missing. This strategy is used in the standard library - # platform module: - # https://github.com/python/cpython/blob/fcf1d003bf4f0100c9d0921ff3d70e1127ca1b71/Lib/platform.py#L175-L183 - if sys.platform == "win32": - return None - try: - # os.confstr("CS_GNU_LIBC_VERSION") returns a string like "glibc 2.17": - _, version = os.confstr("CS_GNU_LIBC_VERSION").split() - except (AttributeError, OSError, ValueError): - # os.confstr() or CS_GNU_LIBC_VERSION not available (or a bad value)... - return None - return version - - -def glibc_version_string_ctypes() -> Optional[str]: - "Fallback implementation of glibc_version_string using ctypes." - - try: - import ctypes - except ImportError: - return None - - # ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen - # manpage says, "If filename is NULL, then the returned handle is for the - # main program". This way we can let the linker do the work to figure out - # which libc our process is actually using. - process_namespace = ctypes.CDLL(None) - try: - gnu_get_libc_version = process_namespace.gnu_get_libc_version - except AttributeError: - # Symbol doesn't exist -> therefore, we are not linked to - # glibc. - return None - - # Call gnu_get_libc_version, which returns a string like "2.5" - gnu_get_libc_version.restype = ctypes.c_char_p - version_str = gnu_get_libc_version() - # py2 / py3 compatibility: - if not isinstance(version_str, str): - version_str = version_str.decode("ascii") - - return version_str - - -# platform.libc_ver regularly returns completely nonsensical glibc -# versions. E.g. on my computer, platform says: -# -# ~$ python2.7 -c 'import platform; print(platform.libc_ver())' -# ('glibc', '2.7') -# ~$ python3.5 -c 'import platform; print(platform.libc_ver())' -# ('glibc', '2.9') -# -# But the truth is: -# -# ~$ ldd --version -# ldd (Debian GLIBC 2.22-11) 2.22 -# -# This is unfortunate, because it means that the linehaul data on libc -# versions that was generated by pip 8.1.2 and earlier is useless and -# misleading. Solution: instead of using platform, use our code that actually -# works. -def libc_ver() -> Tuple[str, str]: - """Try to determine the glibc version - - Returns a tuple of strings (lib, version) which default to empty strings - in case the lookup fails. - """ - glibc_version = glibc_version_string() - if glibc_version is None: - return ("", "") - else: - return ("glibc", glibc_version) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/hashes.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/hashes.py deleted file mode 100644 index 82eb035..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/hashes.py +++ /dev/null @@ -1,144 +0,0 @@ -import hashlib -from typing import TYPE_CHECKING, BinaryIO, Dict, Iterator, List - -from pip._internal.exceptions import HashMismatch, HashMissing, InstallationError -from pip._internal.utils.misc import read_chunks - -if TYPE_CHECKING: - from hashlib import _Hash - - # NoReturn introduced in 3.6.2; imported only for type checking to maintain - # pip compatibility with older patch versions of Python 3.6 - from typing import NoReturn - - -# The recommended hash algo of the moment. Change this whenever the state of -# the art changes; it won't hurt backward compatibility. -FAVORITE_HASH = "sha256" - - -# Names of hashlib algorithms allowed by the --hash option and ``pip hash`` -# Currently, those are the ones at least as collision-resistant as sha256. -STRONG_HASHES = ["sha256", "sha384", "sha512"] - - -class Hashes: - """A wrapper that builds multiple hashes at once and checks them against - known-good values - - """ - - def __init__(self, hashes: Dict[str, List[str]] = None) -> None: - """ - :param hashes: A dict of algorithm names pointing to lists of allowed - hex digests - """ - allowed = {} - if hashes is not None: - for alg, keys in hashes.items(): - # Make sure values are always sorted (to ease equality checks) - allowed[alg] = sorted(keys) - self._allowed = allowed - - def __and__(self, other: "Hashes") -> "Hashes": - if not isinstance(other, Hashes): - return NotImplemented - - # If either of the Hashes object is entirely empty (i.e. no hash - # specified at all), all hashes from the other object are allowed. - if not other: - return self - if not self: - return other - - # Otherwise only hashes that present in both objects are allowed. - new = {} - for alg, values in other._allowed.items(): - if alg not in self._allowed: - continue - new[alg] = [v for v in values if v in self._allowed[alg]] - return Hashes(new) - - @property - def digest_count(self) -> int: - return sum(len(digests) for digests in self._allowed.values()) - - def is_hash_allowed(self, hash_name: str, hex_digest: str) -> bool: - """Return whether the given hex digest is allowed.""" - return hex_digest in self._allowed.get(hash_name, []) - - def check_against_chunks(self, chunks: Iterator[bytes]) -> None: - """Check good hashes against ones built from iterable of chunks of - data. - - Raise HashMismatch if none match. - - """ - gots = {} - for hash_name in self._allowed.keys(): - try: - gots[hash_name] = hashlib.new(hash_name) - except (ValueError, TypeError): - raise InstallationError(f"Unknown hash name: {hash_name}") - - for chunk in chunks: - for hash in gots.values(): - hash.update(chunk) - - for hash_name, got in gots.items(): - if got.hexdigest() in self._allowed[hash_name]: - return - self._raise(gots) - - def _raise(self, gots: Dict[str, "_Hash"]) -> "NoReturn": - raise HashMismatch(self._allowed, gots) - - def check_against_file(self, file: BinaryIO) -> None: - """Check good hashes against a file-like object - - Raise HashMismatch if none match. - - """ - return self.check_against_chunks(read_chunks(file)) - - def check_against_path(self, path: str) -> None: - with open(path, "rb") as file: - return self.check_against_file(file) - - def __bool__(self) -> bool: - """Return whether I know any known-good hashes.""" - return bool(self._allowed) - - def __eq__(self, other: object) -> bool: - if not isinstance(other, Hashes): - return NotImplemented - return self._allowed == other._allowed - - def __hash__(self) -> int: - return hash( - ",".join( - sorted( - ":".join((alg, digest)) - for alg, digest_list in self._allowed.items() - for digest in digest_list - ) - ) - ) - - -class MissingHashes(Hashes): - """A workalike for Hashes used when we're missing a hash for a requirement - - It computes the actual hash of the requirement and raises a HashMissing - exception showing it to the user. - - """ - - def __init__(self) -> None: - """Don't offer the ``hashes`` kwarg.""" - # Pass our favorite hash in to generate a "gotten hash". With the - # empty list, it will never match, so an error will always raise. - super().__init__(hashes={FAVORITE_HASH: []}) - - def _raise(self, gots: Dict[str, "_Hash"]) -> "NoReturn": - raise HashMissing(gots[FAVORITE_HASH].hexdigest()) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/inject_securetransport.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/inject_securetransport.py deleted file mode 100644 index 276aa79..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/inject_securetransport.py +++ /dev/null @@ -1,35 +0,0 @@ -"""A helper module that injects SecureTransport, on import. - -The import should be done as early as possible, to ensure all requests and -sessions (or whatever) are created after injecting SecureTransport. - -Note that we only do the injection on macOS, when the linked OpenSSL is too -old to handle TLSv1.2. -""" - -import sys - - -def inject_securetransport() -> None: - # Only relevant on macOS - if sys.platform != "darwin": - return - - try: - import ssl - except ImportError: - return - - # Checks for OpenSSL 1.0.1 - if ssl.OPENSSL_VERSION_NUMBER >= 0x1000100F: - return - - try: - from pip._vendor.urllib3.contrib import securetransport - except (ImportError, OSError): - return - - securetransport.inject_into_urllib3() - - -inject_securetransport() diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/logging.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/logging.py deleted file mode 100644 index a4b828a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/logging.py +++ /dev/null @@ -1,358 +0,0 @@ -import contextlib -import errno -import logging -import logging.handlers -import os -import sys -from logging import Filter -from typing import IO, Any, Callable, Iterator, Optional, TextIO, Type, cast - -from pip._internal.utils._log import VERBOSE, getLogger -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.deprecation import DEPRECATION_MSG_PREFIX -from pip._internal.utils.misc import ensure_dir - -try: - import threading -except ImportError: - import dummy_threading as threading # type: ignore - - -try: - from pip._vendor import colorama -# Lots of different errors can come from this, including SystemError and -# ImportError. -except Exception: - colorama = None - - -_log_state = threading.local() -subprocess_logger = getLogger("pip.subprocessor") - - -class BrokenStdoutLoggingError(Exception): - """ - Raised if BrokenPipeError occurs for the stdout stream while logging. - """ - - -def _is_broken_pipe_error(exc_class: Type[BaseException], exc: BaseException) -> bool: - if exc_class is BrokenPipeError: - return True - - # On Windows, a broken pipe can show up as EINVAL rather than EPIPE: - # https://bugs.python.org/issue19612 - # https://bugs.python.org/issue30418 - if not WINDOWS: - return False - - return isinstance(exc, OSError) and exc.errno in (errno.EINVAL, errno.EPIPE) - - -@contextlib.contextmanager -def indent_log(num: int = 2) -> Iterator[None]: - """ - A context manager which will cause the log output to be indented for any - log messages emitted inside it. - """ - # For thread-safety - _log_state.indentation = get_indentation() - _log_state.indentation += num - try: - yield - finally: - _log_state.indentation -= num - - -def get_indentation() -> int: - return getattr(_log_state, "indentation", 0) - - -class IndentingFormatter(logging.Formatter): - default_time_format = "%Y-%m-%dT%H:%M:%S" - - def __init__( - self, - *args: Any, - add_timestamp: bool = False, - **kwargs: Any, - ) -> None: - """ - A logging.Formatter that obeys the indent_log() context manager. - - :param add_timestamp: A bool indicating output lines should be prefixed - with their record's timestamp. - """ - self.add_timestamp = add_timestamp - super().__init__(*args, **kwargs) - - def get_message_start(self, formatted: str, levelno: int) -> str: - """ - Return the start of the formatted log message (not counting the - prefix to add to each line). - """ - if levelno < logging.WARNING: - return "" - if formatted.startswith(DEPRECATION_MSG_PREFIX): - # Then the message already has a prefix. We don't want it to - # look like "WARNING: DEPRECATION: ...." - return "" - if levelno < logging.ERROR: - return "WARNING: " - - return "ERROR: " - - def format(self, record: logging.LogRecord) -> str: - """ - Calls the standard formatter, but will indent all of the log message - lines by our current indentation level. - """ - formatted = super().format(record) - message_start = self.get_message_start(formatted, record.levelno) - formatted = message_start + formatted - - prefix = "" - if self.add_timestamp: - prefix = f"{self.formatTime(record)} " - prefix += " " * get_indentation() - formatted = "".join([prefix + line for line in formatted.splitlines(True)]) - return formatted - - -def _color_wrap(*colors: str) -> Callable[[str], str]: - def wrapped(inp: str) -> str: - return "".join(list(colors) + [inp, colorama.Style.RESET_ALL]) - - return wrapped - - -class ColorizedStreamHandler(logging.StreamHandler): - - # Don't build up a list of colors if we don't have colorama - if colorama: - COLORS = [ - # This needs to be in order from highest logging level to lowest. - (logging.ERROR, _color_wrap(colorama.Fore.RED)), - (logging.WARNING, _color_wrap(colorama.Fore.YELLOW)), - ] - else: - COLORS = [] - - def __init__(self, stream: Optional[TextIO] = None, no_color: bool = None) -> None: - super().__init__(stream) - self._no_color = no_color - - if WINDOWS and colorama: - self.stream = colorama.AnsiToWin32(self.stream) - - def _using_stdout(self) -> bool: - """ - Return whether the handler is using sys.stdout. - """ - if WINDOWS and colorama: - # Then self.stream is an AnsiToWin32 object. - stream = cast(colorama.AnsiToWin32, self.stream) - return stream.wrapped is sys.stdout - - return self.stream is sys.stdout - - def should_color(self) -> bool: - # Don't colorize things if we do not have colorama or if told not to - if not colorama or self._no_color: - return False - - real_stream = ( - self.stream - if not isinstance(self.stream, colorama.AnsiToWin32) - else self.stream.wrapped - ) - - # If the stream is a tty we should color it - if hasattr(real_stream, "isatty") and real_stream.isatty(): - return True - - # If we have an ANSI term we should color it - if os.environ.get("TERM") == "ANSI": - return True - - # If anything else we should not color it - return False - - def format(self, record: logging.LogRecord) -> str: - msg = super().format(record) - - if self.should_color(): - for level, color in self.COLORS: - if record.levelno >= level: - msg = color(msg) - break - - return msg - - # The logging module says handleError() can be customized. - def handleError(self, record: logging.LogRecord) -> None: - exc_class, exc = sys.exc_info()[:2] - # If a broken pipe occurred while calling write() or flush() on the - # stdout stream in logging's Handler.emit(), then raise our special - # exception so we can handle it in main() instead of logging the - # broken pipe error and continuing. - if ( - exc_class - and exc - and self._using_stdout() - and _is_broken_pipe_error(exc_class, exc) - ): - raise BrokenStdoutLoggingError() - - return super().handleError(record) - - -class BetterRotatingFileHandler(logging.handlers.RotatingFileHandler): - def _open(self) -> IO[Any]: - ensure_dir(os.path.dirname(self.baseFilename)) - return super()._open() - - -class MaxLevelFilter(Filter): - def __init__(self, level: int) -> None: - self.level = level - - def filter(self, record: logging.LogRecord) -> bool: - return record.levelno < self.level - - -class ExcludeLoggerFilter(Filter): - - """ - A logging Filter that excludes records from a logger (or its children). - """ - - def filter(self, record: logging.LogRecord) -> bool: - # The base Filter class allows only records from a logger (or its - # children). - return not super().filter(record) - - -def setup_logging(verbosity: int, no_color: bool, user_log_file: Optional[str]) -> int: - """Configures and sets up all of the logging - - Returns the requested logging level, as its integer value. - """ - - # Determine the level to be logging at. - if verbosity >= 2: - level_number = logging.DEBUG - elif verbosity == 1: - level_number = VERBOSE - elif verbosity == -1: - level_number = logging.WARNING - elif verbosity == -2: - level_number = logging.ERROR - elif verbosity <= -3: - level_number = logging.CRITICAL - else: - level_number = logging.INFO - - level = logging.getLevelName(level_number) - - # The "root" logger should match the "console" level *unless* we also need - # to log to a user log file. - include_user_log = user_log_file is not None - if include_user_log: - additional_log_file = user_log_file - root_level = "DEBUG" - else: - additional_log_file = "/dev/null" - root_level = level - - # Disable any logging besides WARNING unless we have DEBUG level logging - # enabled for vendored libraries. - vendored_log_level = "WARNING" if level in ["INFO", "ERROR"] else "DEBUG" - - # Shorthands for clarity - log_streams = { - "stdout": "ext://sys.stdout", - "stderr": "ext://sys.stderr", - } - handler_classes = { - "stream": "pip._internal.utils.logging.ColorizedStreamHandler", - "file": "pip._internal.utils.logging.BetterRotatingFileHandler", - } - handlers = ["console", "console_errors", "console_subprocess"] + ( - ["user_log"] if include_user_log else [] - ) - - logging.config.dictConfig( - { - "version": 1, - "disable_existing_loggers": False, - "filters": { - "exclude_warnings": { - "()": "pip._internal.utils.logging.MaxLevelFilter", - "level": logging.WARNING, - }, - "restrict_to_subprocess": { - "()": "logging.Filter", - "name": subprocess_logger.name, - }, - "exclude_subprocess": { - "()": "pip._internal.utils.logging.ExcludeLoggerFilter", - "name": subprocess_logger.name, - }, - }, - "formatters": { - "indent": { - "()": IndentingFormatter, - "format": "%(message)s", - }, - "indent_with_timestamp": { - "()": IndentingFormatter, - "format": "%(message)s", - "add_timestamp": True, - }, - }, - "handlers": { - "console": { - "level": level, - "class": handler_classes["stream"], - "no_color": no_color, - "stream": log_streams["stdout"], - "filters": ["exclude_subprocess", "exclude_warnings"], - "formatter": "indent", - }, - "console_errors": { - "level": "WARNING", - "class": handler_classes["stream"], - "no_color": no_color, - "stream": log_streams["stderr"], - "filters": ["exclude_subprocess"], - "formatter": "indent", - }, - # A handler responsible for logging to the console messages - # from the "subprocessor" logger. - "console_subprocess": { - "level": level, - "class": handler_classes["stream"], - "no_color": no_color, - "stream": log_streams["stderr"], - "filters": ["restrict_to_subprocess"], - "formatter": "indent", - }, - "user_log": { - "level": "DEBUG", - "class": handler_classes["file"], - "filename": additional_log_file, - "encoding": "utf-8", - "delay": True, - "formatter": "indent_with_timestamp", - }, - }, - "root": { - "level": root_level, - "handlers": handlers, - }, - "loggers": {"pip._vendor": {"level": vendored_log_level}}, - } - ) - - return level_number diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/misc.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/misc.py deleted file mode 100644 index d3e9053..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/misc.py +++ /dev/null @@ -1,689 +0,0 @@ -# The following comment should be removed at some point in the future. -# mypy: strict-optional=False - -import contextlib -import errno -import getpass -import hashlib -import io -import logging -import os -import posixpath -import shutil -import stat -import sys -import urllib.parse -from io import StringIO -from itertools import filterfalse, tee, zip_longest -from types import TracebackType -from typing import ( - Any, - BinaryIO, - Callable, - ContextManager, - Iterable, - Iterator, - List, - Optional, - TextIO, - Tuple, - Type, - TypeVar, - cast, -) - -from pip._vendor.pkg_resources import Distribution -from pip._vendor.tenacity import retry, stop_after_delay, wait_fixed - -from pip import __version__ -from pip._internal.exceptions import CommandError -from pip._internal.locations import get_major_minor_version, site_packages, user_site -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.egg_link import egg_link_path_from_location -from pip._internal.utils.virtualenv import running_under_virtualenv - -__all__ = [ - "rmtree", - "display_path", - "backup_dir", - "ask", - "splitext", - "format_size", - "is_installable_dir", - "normalize_path", - "renames", - "get_prog", - "captured_stdout", - "ensure_dir", - "remove_auth_from_url", -] - - -logger = logging.getLogger(__name__) - -T = TypeVar("T") -ExcInfo = Tuple[Type[BaseException], BaseException, TracebackType] -VersionInfo = Tuple[int, int, int] -NetlocTuple = Tuple[str, Tuple[Optional[str], Optional[str]]] - - -def get_pip_version() -> str: - pip_pkg_dir = os.path.join(os.path.dirname(__file__), "..", "..") - pip_pkg_dir = os.path.abspath(pip_pkg_dir) - - return "pip {} from {} (python {})".format( - __version__, - pip_pkg_dir, - get_major_minor_version(), - ) - - -def normalize_version_info(py_version_info: Tuple[int, ...]) -> Tuple[int, int, int]: - """ - Convert a tuple of ints representing a Python version to one of length - three. - - :param py_version_info: a tuple of ints representing a Python version, - or None to specify no version. The tuple can have any length. - - :return: a tuple of length three if `py_version_info` is non-None. - Otherwise, return `py_version_info` unchanged (i.e. None). - """ - if len(py_version_info) < 3: - py_version_info += (3 - len(py_version_info)) * (0,) - elif len(py_version_info) > 3: - py_version_info = py_version_info[:3] - - return cast("VersionInfo", py_version_info) - - -def ensure_dir(path: str) -> None: - """os.path.makedirs without EEXIST.""" - try: - os.makedirs(path) - except OSError as e: - # Windows can raise spurious ENOTEMPTY errors. See #6426. - if e.errno != errno.EEXIST and e.errno != errno.ENOTEMPTY: - raise - - -def get_prog() -> str: - try: - prog = os.path.basename(sys.argv[0]) - if prog in ("__main__.py", "-c"): - return f"{sys.executable} -m pip" - else: - return prog - except (AttributeError, TypeError, IndexError): - pass - return "pip" - - -# Retry every half second for up to 3 seconds -# Tenacity raises RetryError by default, explicitly raise the original exception -@retry(reraise=True, stop=stop_after_delay(3), wait=wait_fixed(0.5)) -def rmtree(dir: str, ignore_errors: bool = False) -> None: - shutil.rmtree(dir, ignore_errors=ignore_errors, onerror=rmtree_errorhandler) - - -def rmtree_errorhandler(func: Callable[..., Any], path: str, exc_info: ExcInfo) -> None: - """On Windows, the files in .svn are read-only, so when rmtree() tries to - remove them, an exception is thrown. We catch that here, remove the - read-only attribute, and hopefully continue without problems.""" - try: - has_attr_readonly = not (os.stat(path).st_mode & stat.S_IWRITE) - except OSError: - # it's equivalent to os.path.exists - return - - if has_attr_readonly: - # convert to read/write - os.chmod(path, stat.S_IWRITE) - # use the original function to repeat the operation - func(path) - return - else: - raise - - -def display_path(path: str) -> str: - """Gives the display value for a given path, making it relative to cwd - if possible.""" - path = os.path.normcase(os.path.abspath(path)) - if path.startswith(os.getcwd() + os.path.sep): - path = "." + path[len(os.getcwd()) :] - return path - - -def backup_dir(dir: str, ext: str = ".bak") -> str: - """Figure out the name of a directory to back up the given dir to - (adding .bak, .bak2, etc)""" - n = 1 - extension = ext - while os.path.exists(dir + extension): - n += 1 - extension = ext + str(n) - return dir + extension - - -def ask_path_exists(message: str, options: Iterable[str]) -> str: - for action in os.environ.get("PIP_EXISTS_ACTION", "").split(): - if action in options: - return action - return ask(message, options) - - -def _check_no_input(message: str) -> None: - """Raise an error if no input is allowed.""" - if os.environ.get("PIP_NO_INPUT"): - raise Exception( - f"No input was expected ($PIP_NO_INPUT set); question: {message}" - ) - - -def ask(message: str, options: Iterable[str]) -> str: - """Ask the message interactively, with the given possible responses""" - while 1: - _check_no_input(message) - response = input(message) - response = response.strip().lower() - if response not in options: - print( - "Your response ({!r}) was not one of the expected responses: " - "{}".format(response, ", ".join(options)) - ) - else: - return response - - -def ask_input(message: str) -> str: - """Ask for input interactively.""" - _check_no_input(message) - return input(message) - - -def ask_password(message: str) -> str: - """Ask for a password interactively.""" - _check_no_input(message) - return getpass.getpass(message) - - -def strtobool(val: str) -> int: - """Convert a string representation of truth to true (1) or false (0). - - True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values - are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if - 'val' is anything else. - """ - val = val.lower() - if val in ("y", "yes", "t", "true", "on", "1"): - return 1 - elif val in ("n", "no", "f", "false", "off", "0"): - return 0 - else: - raise ValueError(f"invalid truth value {val!r}") - - -def format_size(bytes: float) -> str: - if bytes > 1000 * 1000: - return "{:.1f} MB".format(bytes / 1000.0 / 1000) - elif bytes > 10 * 1000: - return "{} kB".format(int(bytes / 1000)) - elif bytes > 1000: - return "{:.1f} kB".format(bytes / 1000.0) - else: - return "{} bytes".format(int(bytes)) - - -def tabulate(rows: Iterable[Iterable[Any]]) -> Tuple[List[str], List[int]]: - """Return a list of formatted rows and a list of column sizes. - - For example:: - - >>> tabulate([['foobar', 2000], [0xdeadbeef]]) - (['foobar 2000', '3735928559'], [10, 4]) - """ - rows = [tuple(map(str, row)) for row in rows] - sizes = [max(map(len, col)) for col in zip_longest(*rows, fillvalue="")] - table = [" ".join(map(str.ljust, row, sizes)).rstrip() for row in rows] - return table, sizes - - -def is_installable_dir(path: str) -> bool: - """Is path is a directory containing pyproject.toml or setup.py? - - If pyproject.toml exists, this is a PEP 517 project. Otherwise we look for - a legacy setuptools layout by identifying setup.py. We don't check for the - setup.cfg because using it without setup.py is only available for PEP 517 - projects, which are already covered by the pyproject.toml check. - """ - if not os.path.isdir(path): - return False - if os.path.isfile(os.path.join(path, "pyproject.toml")): - return True - if os.path.isfile(os.path.join(path, "setup.py")): - return True - return False - - -def read_chunks(file: BinaryIO, size: int = io.DEFAULT_BUFFER_SIZE) -> Iterator[bytes]: - """Yield pieces of data from a file-like object until EOF.""" - while True: - chunk = file.read(size) - if not chunk: - break - yield chunk - - -def normalize_path(path: str, resolve_symlinks: bool = True) -> str: - """ - Convert a path to its canonical, case-normalized, absolute version. - - """ - path = os.path.expanduser(path) - if resolve_symlinks: - path = os.path.realpath(path) - else: - path = os.path.abspath(path) - return os.path.normcase(path) - - -def splitext(path: str) -> Tuple[str, str]: - """Like os.path.splitext, but take off .tar too""" - base, ext = posixpath.splitext(path) - if base.lower().endswith(".tar"): - ext = base[-4:] + ext - base = base[:-4] - return base, ext - - -def renames(old: str, new: str) -> None: - """Like os.renames(), but handles renaming across devices.""" - # Implementation borrowed from os.renames(). - head, tail = os.path.split(new) - if head and tail and not os.path.exists(head): - os.makedirs(head) - - shutil.move(old, new) - - head, tail = os.path.split(old) - if head and tail: - try: - os.removedirs(head) - except OSError: - pass - - -def is_local(path: str) -> bool: - """ - Return True if path is within sys.prefix, if we're running in a virtualenv. - - If we're not in a virtualenv, all paths are considered "local." - - Caution: this function assumes the head of path has been normalized - with normalize_path. - """ - if not running_under_virtualenv(): - return True - return path.startswith(normalize_path(sys.prefix)) - - -def dist_is_local(dist: Distribution) -> bool: - """ - Return True if given Distribution object is installed locally - (i.e. within current virtualenv). - - Always True if we're not in a virtualenv. - - """ - return is_local(dist_location(dist)) - - -def dist_in_usersite(dist: Distribution) -> bool: - """ - Return True if given Distribution is installed in user site. - """ - return dist_location(dist).startswith(normalize_path(user_site)) - - -def dist_in_site_packages(dist: Distribution) -> bool: - """ - Return True if given Distribution is installed in - sysconfig.get_python_lib(). - """ - return dist_location(dist).startswith(normalize_path(site_packages)) - - -def get_distribution(req_name: str) -> Optional[Distribution]: - """Given a requirement name, return the installed Distribution object. - - This searches from *all* distributions available in the environment, to - match the behavior of ``pkg_resources.get_distribution()``. - - Left for compatibility until direct pkg_resources uses are refactored out. - """ - from pip._internal.metadata import get_default_environment - from pip._internal.metadata.pkg_resources import Distribution as _Dist - - dist = get_default_environment().get_distribution(req_name) - if dist is None: - return None - return cast(_Dist, dist)._dist - - -def dist_location(dist: Distribution) -> str: - """ - Get the site-packages location of this distribution. Generally - this is dist.location, except in the case of develop-installed - packages, where dist.location is the source code location, and we - want to know where the egg-link file is. - - The returned location is normalized (in particular, with symlinks removed). - """ - egg_link = egg_link_path_from_location(dist.project_name) - if egg_link: - return normalize_path(egg_link) - return normalize_path(dist.location) - - -def write_output(msg: Any, *args: Any) -> None: - logger.info(msg, *args) - - -class StreamWrapper(StringIO): - orig_stream: TextIO = None - - @classmethod - def from_stream(cls, orig_stream: TextIO) -> "StreamWrapper": - cls.orig_stream = orig_stream - return cls() - - # compileall.compile_dir() needs stdout.encoding to print to stdout - # https://github.com/python/mypy/issues/4125 - @property - def encoding(self): # type: ignore - return self.orig_stream.encoding - - -@contextlib.contextmanager -def captured_output(stream_name: str) -> Iterator[StreamWrapper]: - """Return a context manager used by captured_stdout/stdin/stderr - that temporarily replaces the sys stream *stream_name* with a StringIO. - - Taken from Lib/support/__init__.py in the CPython repo. - """ - orig_stdout = getattr(sys, stream_name) - setattr(sys, stream_name, StreamWrapper.from_stream(orig_stdout)) - try: - yield getattr(sys, stream_name) - finally: - setattr(sys, stream_name, orig_stdout) - - -def captured_stdout() -> ContextManager[StreamWrapper]: - """Capture the output of sys.stdout: - - with captured_stdout() as stdout: - print('hello') - self.assertEqual(stdout.getvalue(), 'hello\n') - - Taken from Lib/support/__init__.py in the CPython repo. - """ - return captured_output("stdout") - - -def captured_stderr() -> ContextManager[StreamWrapper]: - """ - See captured_stdout(). - """ - return captured_output("stderr") - - -# Simulates an enum -def enum(*sequential: Any, **named: Any) -> Type[Any]: - enums = dict(zip(sequential, range(len(sequential))), **named) - reverse = {value: key for key, value in enums.items()} - enums["reverse_mapping"] = reverse - return type("Enum", (), enums) - - -def build_netloc(host: str, port: Optional[int]) -> str: - """ - Build a netloc from a host-port pair - """ - if port is None: - return host - if ":" in host: - # Only wrap host with square brackets when it is IPv6 - host = f"[{host}]" - return f"{host}:{port}" - - -def build_url_from_netloc(netloc: str, scheme: str = "https") -> str: - """ - Build a full URL from a netloc. - """ - if netloc.count(":") >= 2 and "@" not in netloc and "[" not in netloc: - # It must be a bare IPv6 address, so wrap it with brackets. - netloc = f"[{netloc}]" - return f"{scheme}://{netloc}" - - -def parse_netloc(netloc: str) -> Tuple[str, Optional[int]]: - """ - Return the host-port pair from a netloc. - """ - url = build_url_from_netloc(netloc) - parsed = urllib.parse.urlparse(url) - return parsed.hostname, parsed.port - - -def split_auth_from_netloc(netloc: str) -> NetlocTuple: - """ - Parse out and remove the auth information from a netloc. - - Returns: (netloc, (username, password)). - """ - if "@" not in netloc: - return netloc, (None, None) - - # Split from the right because that's how urllib.parse.urlsplit() - # behaves if more than one @ is present (which can be checked using - # the password attribute of urlsplit()'s return value). - auth, netloc = netloc.rsplit("@", 1) - pw: Optional[str] = None - if ":" in auth: - # Split from the left because that's how urllib.parse.urlsplit() - # behaves if more than one : is present (which again can be checked - # using the password attribute of the return value) - user, pw = auth.split(":", 1) - else: - user, pw = auth, None - - user = urllib.parse.unquote(user) - if pw is not None: - pw = urllib.parse.unquote(pw) - - return netloc, (user, pw) - - -def redact_netloc(netloc: str) -> str: - """ - Replace the sensitive data in a netloc with "****", if it exists. - - For example: - - "user:pass@example.com" returns "user:****@example.com" - - "accesstoken@example.com" returns "****@example.com" - """ - netloc, (user, password) = split_auth_from_netloc(netloc) - if user is None: - return netloc - if password is None: - user = "****" - password = "" - else: - user = urllib.parse.quote(user) - password = ":****" - return "{user}{password}@{netloc}".format( - user=user, password=password, netloc=netloc - ) - - -def _transform_url( - url: str, transform_netloc: Callable[[str], Tuple[Any, ...]] -) -> Tuple[str, NetlocTuple]: - """Transform and replace netloc in a url. - - transform_netloc is a function taking the netloc and returning a - tuple. The first element of this tuple is the new netloc. The - entire tuple is returned. - - Returns a tuple containing the transformed url as item 0 and the - original tuple returned by transform_netloc as item 1. - """ - purl = urllib.parse.urlsplit(url) - netloc_tuple = transform_netloc(purl.netloc) - # stripped url - url_pieces = (purl.scheme, netloc_tuple[0], purl.path, purl.query, purl.fragment) - surl = urllib.parse.urlunsplit(url_pieces) - return surl, cast("NetlocTuple", netloc_tuple) - - -def _get_netloc(netloc: str) -> NetlocTuple: - return split_auth_from_netloc(netloc) - - -def _redact_netloc(netloc: str) -> Tuple[str]: - return (redact_netloc(netloc),) - - -def split_auth_netloc_from_url(url: str) -> Tuple[str, str, Tuple[str, str]]: - """ - Parse a url into separate netloc, auth, and url with no auth. - - Returns: (url_without_auth, netloc, (username, password)) - """ - url_without_auth, (netloc, auth) = _transform_url(url, _get_netloc) - return url_without_auth, netloc, auth - - -def remove_auth_from_url(url: str) -> str: - """Return a copy of url with 'username:password@' removed.""" - # username/pass params are passed to subversion through flags - # and are not recognized in the url. - return _transform_url(url, _get_netloc)[0] - - -def redact_auth_from_url(url: str) -> str: - """Replace the password in a given url with ****.""" - return _transform_url(url, _redact_netloc)[0] - - -class HiddenText: - def __init__(self, secret: str, redacted: str) -> None: - self.secret = secret - self.redacted = redacted - - def __repr__(self) -> str: - return "".format(str(self)) - - def __str__(self) -> str: - return self.redacted - - # This is useful for testing. - def __eq__(self, other: Any) -> bool: - if type(self) != type(other): - return False - - # The string being used for redaction doesn't also have to match, - # just the raw, original string. - return self.secret == other.secret - - -def hide_value(value: str) -> HiddenText: - return HiddenText(value, redacted="****") - - -def hide_url(url: str) -> HiddenText: - redacted = redact_auth_from_url(url) - return HiddenText(url, redacted=redacted) - - -def protect_pip_from_modification_on_windows(modifying_pip: bool) -> None: - """Protection of pip.exe from modification on Windows - - On Windows, any operation modifying pip should be run as: - python -m pip ... - """ - pip_names = [ - "pip.exe", - "pip{}.exe".format(sys.version_info[0]), - "pip{}.{}.exe".format(*sys.version_info[:2]), - ] - - # See https://github.com/pypa/pip/issues/1299 for more discussion - should_show_use_python_msg = ( - modifying_pip and WINDOWS and os.path.basename(sys.argv[0]) in pip_names - ) - - if should_show_use_python_msg: - new_command = [sys.executable, "-m", "pip"] + sys.argv[1:] - raise CommandError( - "To modify pip, please run the following command:\n{}".format( - " ".join(new_command) - ) - ) - - -def is_console_interactive() -> bool: - """Is this console interactive?""" - return sys.stdin is not None and sys.stdin.isatty() - - -def hash_file(path: str, blocksize: int = 1 << 20) -> Tuple[Any, int]: - """Return (hash, length) for path using hashlib.sha256()""" - - h = hashlib.sha256() - length = 0 - with open(path, "rb") as f: - for block in read_chunks(f, size=blocksize): - length += len(block) - h.update(block) - return h, length - - -def is_wheel_installed() -> bool: - """ - Return whether the wheel package is installed. - """ - try: - import wheel # noqa: F401 - except ImportError: - return False - - return True - - -def pairwise(iterable: Iterable[Any]) -> Iterator[Tuple[Any, Any]]: - """ - Return paired elements. - - For example: - s -> (s0, s1), (s2, s3), (s4, s5), ... - """ - iterable = iter(iterable) - return zip_longest(iterable, iterable) - - -def partition( - pred: Callable[[T], bool], - iterable: Iterable[T], -) -> Tuple[Iterable[T], Iterable[T]]: - """ - Use a predicate to partition entries into false entries and true entries, - like - - partition(is_odd, range(10)) --> 0 2 4 6 8 and 1 3 5 7 9 - """ - t1, t2 = tee(iterable) - return filterfalse(pred, t1), filter(pred, t2) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/models.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/models.py deleted file mode 100644 index b6bb21a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/models.py +++ /dev/null @@ -1,39 +0,0 @@ -"""Utilities for defining models -""" - -import operator -from typing import Any, Callable, Type - - -class KeyBasedCompareMixin: - """Provides comparison capabilities that is based on a key""" - - __slots__ = ["_compare_key", "_defining_class"] - - def __init__(self, key: Any, defining_class: Type["KeyBasedCompareMixin"]) -> None: - self._compare_key = key - self._defining_class = defining_class - - def __hash__(self) -> int: - return hash(self._compare_key) - - def __lt__(self, other: Any) -> bool: - return self._compare(other, operator.__lt__) - - def __le__(self, other: Any) -> bool: - return self._compare(other, operator.__le__) - - def __gt__(self, other: Any) -> bool: - return self._compare(other, operator.__gt__) - - def __ge__(self, other: Any) -> bool: - return self._compare(other, operator.__ge__) - - def __eq__(self, other: Any) -> bool: - return self._compare(other, operator.__eq__) - - def _compare(self, other: Any, method: Callable[[Any, Any], bool]) -> bool: - if not isinstance(other, self._defining_class): - return NotImplemented - - return method(self._compare_key, other._compare_key) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/packaging.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/packaging.py deleted file mode 100644 index f100473..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/packaging.py +++ /dev/null @@ -1,84 +0,0 @@ -import functools -import logging -from email.message import Message -from email.parser import FeedParser -from typing import Optional, Tuple - -from pip._vendor import pkg_resources -from pip._vendor.packaging import specifiers, version -from pip._vendor.packaging.requirements import Requirement -from pip._vendor.pkg_resources import Distribution - -from pip._internal.exceptions import NoneMetadataError -from pip._internal.utils.misc import display_path - -logger = logging.getLogger(__name__) - - -def check_requires_python( - requires_python: Optional[str], version_info: Tuple[int, ...] -) -> bool: - """ - Check if the given Python version matches a "Requires-Python" specifier. - - :param version_info: A 3-tuple of ints representing a Python - major-minor-micro version to check (e.g. `sys.version_info[:3]`). - - :return: `True` if the given Python version satisfies the requirement. - Otherwise, return `False`. - - :raises InvalidSpecifier: If `requires_python` has an invalid format. - """ - if requires_python is None: - # The package provides no information - return True - requires_python_specifier = specifiers.SpecifierSet(requires_python) - - python_version = version.parse(".".join(map(str, version_info))) - return python_version in requires_python_specifier - - -def get_metadata(dist: Distribution) -> Message: - """ - :raises NoneMetadataError: if the distribution reports `has_metadata()` - True but `get_metadata()` returns None. - """ - metadata_name = "METADATA" - if isinstance(dist, pkg_resources.DistInfoDistribution) and dist.has_metadata( - metadata_name - ): - metadata = dist.get_metadata(metadata_name) - elif dist.has_metadata("PKG-INFO"): - metadata_name = "PKG-INFO" - metadata = dist.get_metadata(metadata_name) - else: - logger.warning("No metadata found in %s", display_path(dist.location)) - metadata = "" - - if metadata is None: - raise NoneMetadataError(dist, metadata_name) - - feed_parser = FeedParser() - # The following line errors out if with a "NoneType" TypeError if - # passed metadata=None. - feed_parser.feed(metadata) - return feed_parser.close() - - -def get_installer(dist: Distribution) -> str: - if dist.has_metadata("INSTALLER"): - for line in dist.get_metadata_lines("INSTALLER"): - if line.strip(): - return line.strip() - return "" - - -@functools.lru_cache(maxsize=512) -def get_requirement(req_string: str) -> Requirement: - """Construct a packaging.Requirement object with caching""" - # Parsing requirement strings is expensive, and is also expected to happen - # with a low diversity of different arguments (at least relative the number - # constructed). This method adds a cache to requirement object creation to - # minimize repeated parsing of the same string to construct equivalent - # Requirement objects. - return Requirement(req_string) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/parallel.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/parallel.py deleted file mode 100644 index e318577..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/parallel.py +++ /dev/null @@ -1,103 +0,0 @@ -"""Convenient parallelization of higher order functions. - -This module provides two helper functions, with appropriate fallbacks on -Python 2 and on systems lacking support for synchronization mechanisms: - -- map_multiprocess -- map_multithread - -These helpers work like Python 3's map, with two differences: - -- They don't guarantee the order of processing of - the elements of the iterable. -- The underlying process/thread pools chop the iterable into - a number of chunks, so that for very long iterables using - a large value for chunksize can make the job complete much faster - than using the default value of 1. -""" - -__all__ = ["map_multiprocess", "map_multithread"] - -from contextlib import contextmanager -from multiprocessing import Pool as ProcessPool -from multiprocessing import pool -from multiprocessing.dummy import Pool as ThreadPool -from typing import Callable, Iterable, Iterator, TypeVar, Union - -from pip._vendor.requests.adapters import DEFAULT_POOLSIZE - -Pool = Union[pool.Pool, pool.ThreadPool] -S = TypeVar("S") -T = TypeVar("T") - -# On platforms without sem_open, multiprocessing[.dummy] Pool -# cannot be created. -try: - import multiprocessing.synchronize # noqa -except ImportError: - LACK_SEM_OPEN = True -else: - LACK_SEM_OPEN = False - -# Incredibly large timeout to work around bpo-8296 on Python 2. -TIMEOUT = 2000000 - - -@contextmanager -def closing(pool: Pool) -> Iterator[Pool]: - """Return a context manager making sure the pool closes properly.""" - try: - yield pool - finally: - # For Pool.imap*, close and join are needed - # for the returned iterator to begin yielding. - pool.close() - pool.join() - pool.terminate() - - -def _map_fallback( - func: Callable[[S], T], iterable: Iterable[S], chunksize: int = 1 -) -> Iterator[T]: - """Make an iterator applying func to each element in iterable. - - This function is the sequential fallback either on Python 2 - where Pool.imap* doesn't react to KeyboardInterrupt - or when sem_open is unavailable. - """ - return map(func, iterable) - - -def _map_multiprocess( - func: Callable[[S], T], iterable: Iterable[S], chunksize: int = 1 -) -> Iterator[T]: - """Chop iterable into chunks and submit them to a process pool. - - For very long iterables using a large value for chunksize can make - the job complete much faster than using the default value of 1. - - Return an unordered iterator of the results. - """ - with closing(ProcessPool()) as pool: - return pool.imap_unordered(func, iterable, chunksize) - - -def _map_multithread( - func: Callable[[S], T], iterable: Iterable[S], chunksize: int = 1 -) -> Iterator[T]: - """Chop iterable into chunks and submit them to a thread pool. - - For very long iterables using a large value for chunksize can make - the job complete much faster than using the default value of 1. - - Return an unordered iterator of the results. - """ - with closing(ThreadPool(DEFAULT_POOLSIZE)) as pool: - return pool.imap_unordered(func, iterable, chunksize) - - -if LACK_SEM_OPEN: - map_multiprocess = map_multithread = _map_fallback -else: - map_multiprocess = _map_multiprocess - map_multithread = _map_multithread diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/pkg_resources.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/pkg_resources.py deleted file mode 100644 index bd846aa..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/pkg_resources.py +++ /dev/null @@ -1,33 +0,0 @@ -from typing import Dict, Iterable, List - -from pip._vendor.pkg_resources import yield_lines - - -class DictMetadata: - """IMetadataProvider that reads metadata files from a dictionary.""" - - def __init__(self, metadata: Dict[str, bytes]) -> None: - self._metadata = metadata - - def has_metadata(self, name: str) -> bool: - return name in self._metadata - - def get_metadata(self, name: str) -> str: - try: - return self._metadata[name].decode() - except UnicodeDecodeError as e: - # Mirrors handling done in pkg_resources.NullProvider. - e.reason += f" in {name} file" - raise - - def get_metadata_lines(self, name: str) -> Iterable[str]: - return yield_lines(self.get_metadata(name)) - - def metadata_isdir(self, name: str) -> bool: - return False - - def metadata_listdir(self, name: str) -> List[str]: - return [] - - def run_script(self, script_name: str, namespace: str) -> None: - pass diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/setuptools_build.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/setuptools_build.py deleted file mode 100644 index 9d65ceb..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/setuptools_build.py +++ /dev/null @@ -1,167 +0,0 @@ -import sys -from typing import List, Optional, Sequence - -# Shim to wrap setup.py invocation with setuptools -# -# We set sys.argv[0] to the path to the underlying setup.py file so -# setuptools / distutils don't take the path to the setup.py to be "-c" when -# invoking via the shim. This avoids e.g. the following manifest_maker -# warning: "warning: manifest_maker: standard file '-c' not found". -_SETUPTOOLS_SHIM = ( - "import io, os, sys, setuptools, tokenize; sys.argv[0] = {0!r}; __file__={0!r};" - "f = getattr(tokenize, 'open', open)(__file__) " - "if os.path.exists(__file__) " - "else io.StringIO('from setuptools import setup; setup()');" - "code = f.read().replace('\\r\\n', '\\n');" - "f.close();" - "exec(compile(code, __file__, 'exec'))" -) - - -def make_setuptools_shim_args( - setup_py_path: str, - global_options: Sequence[str] = None, - no_user_config: bool = False, - unbuffered_output: bool = False, -) -> List[str]: - """ - Get setuptools command arguments with shim wrapped setup file invocation. - - :param setup_py_path: The path to setup.py to be wrapped. - :param global_options: Additional global options. - :param no_user_config: If True, disables personal user configuration. - :param unbuffered_output: If True, adds the unbuffered switch to the - argument list. - """ - args = [sys.executable] - if unbuffered_output: - args += ["-u"] - args += ["-c", _SETUPTOOLS_SHIM.format(setup_py_path)] - if global_options: - args += global_options - if no_user_config: - args += ["--no-user-cfg"] - return args - - -def make_setuptools_bdist_wheel_args( - setup_py_path: str, - global_options: Sequence[str], - build_options: Sequence[str], - destination_dir: str, -) -> List[str]: - # NOTE: Eventually, we'd want to also -S to the flags here, when we're - # isolating. Currently, it breaks Python in virtualenvs, because it - # relies on site.py to find parts of the standard library outside the - # virtualenv. - args = make_setuptools_shim_args( - setup_py_path, global_options=global_options, unbuffered_output=True - ) - args += ["bdist_wheel", "-d", destination_dir] - args += build_options - return args - - -def make_setuptools_clean_args( - setup_py_path: str, - global_options: Sequence[str], -) -> List[str]: - args = make_setuptools_shim_args( - setup_py_path, global_options=global_options, unbuffered_output=True - ) - args += ["clean", "--all"] - return args - - -def make_setuptools_develop_args( - setup_py_path: str, - global_options: Sequence[str], - install_options: Sequence[str], - no_user_config: bool, - prefix: Optional[str], - home: Optional[str], - use_user_site: bool, -) -> List[str]: - assert not (use_user_site and prefix) - - args = make_setuptools_shim_args( - setup_py_path, - global_options=global_options, - no_user_config=no_user_config, - ) - - args += ["develop", "--no-deps"] - - args += install_options - - if prefix: - args += ["--prefix", prefix] - if home is not None: - args += ["--install-dir", home] - - if use_user_site: - args += ["--user", "--prefix="] - - return args - - -def make_setuptools_egg_info_args( - setup_py_path: str, - egg_info_dir: Optional[str], - no_user_config: bool, -) -> List[str]: - args = make_setuptools_shim_args(setup_py_path, no_user_config=no_user_config) - - args += ["egg_info"] - - if egg_info_dir: - args += ["--egg-base", egg_info_dir] - - return args - - -def make_setuptools_install_args( - setup_py_path: str, - global_options: Sequence[str], - install_options: Sequence[str], - record_filename: str, - root: Optional[str], - prefix: Optional[str], - header_dir: Optional[str], - home: Optional[str], - use_user_site: bool, - no_user_config: bool, - pycompile: bool, -) -> List[str]: - assert not (use_user_site and prefix) - assert not (use_user_site and root) - - args = make_setuptools_shim_args( - setup_py_path, - global_options=global_options, - no_user_config=no_user_config, - unbuffered_output=True, - ) - args += ["install", "--record", record_filename] - args += ["--single-version-externally-managed"] - - if root is not None: - args += ["--root", root] - if prefix is not None: - args += ["--prefix", prefix] - if home is not None: - args += ["--home", home] - if use_user_site: - args += ["--user", "--prefix="] - - if pycompile: - args += ["--compile"] - else: - args += ["--no-compile"] - - if header_dir: - args += ["--install-headers", header_dir] - - args += install_options - - return args diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/subprocess.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/subprocess.py deleted file mode 100644 index f6e8b21..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/subprocess.py +++ /dev/null @@ -1,289 +0,0 @@ -import logging -import os -import shlex -import subprocess -from typing import ( - TYPE_CHECKING, - Any, - Callable, - Iterable, - List, - Mapping, - Optional, - Union, -) - -from pip._internal.cli.spinners import SpinnerInterface, open_spinner -from pip._internal.exceptions import InstallationSubprocessError -from pip._internal.utils.logging import VERBOSE, subprocess_logger -from pip._internal.utils.misc import HiddenText - -if TYPE_CHECKING: - # Literal was introduced in Python 3.8. - # - # TODO: Remove `if TYPE_CHECKING` when dropping support for Python 3.7. - from typing import Literal - -CommandArgs = List[Union[str, HiddenText]] - - -LOG_DIVIDER = "----------------------------------------" - - -def make_command(*args: Union[str, HiddenText, CommandArgs]) -> CommandArgs: - """ - Create a CommandArgs object. - """ - command_args: CommandArgs = [] - for arg in args: - # Check for list instead of CommandArgs since CommandArgs is - # only known during type-checking. - if isinstance(arg, list): - command_args.extend(arg) - else: - # Otherwise, arg is str or HiddenText. - command_args.append(arg) - - return command_args - - -def format_command_args(args: Union[List[str], CommandArgs]) -> str: - """ - Format command arguments for display. - """ - # For HiddenText arguments, display the redacted form by calling str(). - # Also, we don't apply str() to arguments that aren't HiddenText since - # this can trigger a UnicodeDecodeError in Python 2 if the argument - # has type unicode and includes a non-ascii character. (The type - # checker doesn't ensure the annotations are correct in all cases.) - return " ".join( - shlex.quote(str(arg)) if isinstance(arg, HiddenText) else shlex.quote(arg) - for arg in args - ) - - -def reveal_command_args(args: Union[List[str], CommandArgs]) -> List[str]: - """ - Return the arguments in their raw, unredacted form. - """ - return [arg.secret if isinstance(arg, HiddenText) else arg for arg in args] - - -def make_subprocess_output_error( - cmd_args: Union[List[str], CommandArgs], - cwd: Optional[str], - lines: List[str], - exit_status: int, -) -> str: - """ - Create and return the error message to use to log a subprocess error - with command output. - - :param lines: A list of lines, each ending with a newline. - """ - command = format_command_args(cmd_args) - - # We know the joined output value ends in a newline. - output = "".join(lines) - msg = ( - # Use a unicode string to avoid "UnicodeEncodeError: 'ascii' - # codec can't encode character ..." in Python 2 when a format - # argument (e.g. `output`) has a non-ascii character. - "Command errored out with exit status {exit_status}:\n" - " command: {command_display}\n" - " cwd: {cwd_display}\n" - "Complete output ({line_count} lines):\n{output}{divider}" - ).format( - exit_status=exit_status, - command_display=command, - cwd_display=cwd, - line_count=len(lines), - output=output, - divider=LOG_DIVIDER, - ) - return msg - - -def call_subprocess( - cmd: Union[List[str], CommandArgs], - show_stdout: bool = False, - cwd: Optional[str] = None, - on_returncode: 'Literal["raise", "warn", "ignore"]' = "raise", - extra_ok_returncodes: Optional[Iterable[int]] = None, - command_desc: Optional[str] = None, - extra_environ: Optional[Mapping[str, Any]] = None, - unset_environ: Optional[Iterable[str]] = None, - spinner: Optional[SpinnerInterface] = None, - log_failed_cmd: Optional[bool] = True, - stdout_only: Optional[bool] = False, -) -> str: - """ - Args: - show_stdout: if true, use INFO to log the subprocess's stderr and - stdout streams. Otherwise, use DEBUG. Defaults to False. - extra_ok_returncodes: an iterable of integer return codes that are - acceptable, in addition to 0. Defaults to None, which means []. - unset_environ: an iterable of environment variable names to unset - prior to calling subprocess.Popen(). - log_failed_cmd: if false, failed commands are not logged, only raised. - stdout_only: if true, return only stdout, else return both. When true, - logging of both stdout and stderr occurs when the subprocess has - terminated, else logging occurs as subprocess output is produced. - """ - if extra_ok_returncodes is None: - extra_ok_returncodes = [] - if unset_environ is None: - unset_environ = [] - # Most places in pip use show_stdout=False. What this means is-- - # - # - We connect the child's output (combined stderr and stdout) to a - # single pipe, which we read. - # - We log this output to stderr at DEBUG level as it is received. - # - If DEBUG logging isn't enabled (e.g. if --verbose logging wasn't - # requested), then we show a spinner so the user can still see the - # subprocess is in progress. - # - If the subprocess exits with an error, we log the output to stderr - # at ERROR level if it hasn't already been displayed to the console - # (e.g. if --verbose logging wasn't enabled). This way we don't log - # the output to the console twice. - # - # If show_stdout=True, then the above is still done, but with DEBUG - # replaced by INFO. - if show_stdout: - # Then log the subprocess output at INFO level. - log_subprocess = subprocess_logger.info - used_level = logging.INFO - else: - # Then log the subprocess output using VERBOSE. This also ensures - # it will be logged to the log file (aka user_log), if enabled. - log_subprocess = subprocess_logger.verbose - used_level = VERBOSE - - # Whether the subprocess will be visible in the console. - showing_subprocess = subprocess_logger.getEffectiveLevel() <= used_level - - # Only use the spinner if we're not showing the subprocess output - # and we have a spinner. - use_spinner = not showing_subprocess and spinner is not None - - if command_desc is None: - command_desc = format_command_args(cmd) - - log_subprocess("Running command %s", command_desc) - env = os.environ.copy() - if extra_environ: - env.update(extra_environ) - for name in unset_environ: - env.pop(name, None) - try: - proc = subprocess.Popen( - # Convert HiddenText objects to the underlying str. - reveal_command_args(cmd), - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT if not stdout_only else subprocess.PIPE, - cwd=cwd, - env=env, - errors="backslashreplace", - ) - except Exception as exc: - if log_failed_cmd: - subprocess_logger.critical( - "Error %s while executing command %s", - exc, - command_desc, - ) - raise - all_output = [] - if not stdout_only: - assert proc.stdout - assert proc.stdin - proc.stdin.close() - # In this mode, stdout and stderr are in the same pipe. - while True: - line: str = proc.stdout.readline() - if not line: - break - line = line.rstrip() - all_output.append(line + "\n") - - # Show the line immediately. - log_subprocess(line) - # Update the spinner. - if use_spinner: - assert spinner - spinner.spin() - try: - proc.wait() - finally: - if proc.stdout: - proc.stdout.close() - output = "".join(all_output) - else: - # In this mode, stdout and stderr are in different pipes. - # We must use communicate() which is the only safe way to read both. - out, err = proc.communicate() - # log line by line to preserve pip log indenting - for out_line in out.splitlines(): - log_subprocess(out_line) - all_output.append(out) - for err_line in err.splitlines(): - log_subprocess(err_line) - all_output.append(err) - output = out - - proc_had_error = proc.returncode and proc.returncode not in extra_ok_returncodes - if use_spinner: - assert spinner - if proc_had_error: - spinner.finish("error") - else: - spinner.finish("done") - if proc_had_error: - if on_returncode == "raise": - if not showing_subprocess and log_failed_cmd: - # Then the subprocess streams haven't been logged to the - # console yet. - msg = make_subprocess_output_error( - cmd_args=cmd, - cwd=cwd, - lines=all_output, - exit_status=proc.returncode, - ) - subprocess_logger.error(msg) - raise InstallationSubprocessError(proc.returncode, command_desc) - elif on_returncode == "warn": - subprocess_logger.warning( - 'Command "%s" had error code %s in %s', - command_desc, - proc.returncode, - cwd, - ) - elif on_returncode == "ignore": - pass - else: - raise ValueError(f"Invalid value: on_returncode={on_returncode!r}") - return output - - -def runner_with_spinner_message(message: str) -> Callable[..., None]: - """Provide a subprocess_runner that shows a spinner message. - - Intended for use with for pep517's Pep517HookCaller. Thus, the runner has - an API that matches what's expected by Pep517HookCaller.subprocess_runner. - """ - - def runner( - cmd: List[str], - cwd: Optional[str] = None, - extra_environ: Optional[Mapping[str, Any]] = None, - ) -> None: - with open_spinner(message) as spinner: - call_subprocess( - cmd, - cwd=cwd, - extra_environ=extra_environ, - spinner=spinner, - ) - - return runner diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/temp_dir.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/temp_dir.py deleted file mode 100644 index 442679a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/temp_dir.py +++ /dev/null @@ -1,246 +0,0 @@ -import errno -import itertools -import logging -import os.path -import tempfile -from contextlib import ExitStack, contextmanager -from typing import Any, Dict, Iterator, Optional, TypeVar, Union - -from pip._internal.utils.misc import enum, rmtree - -logger = logging.getLogger(__name__) - -_T = TypeVar("_T", bound="TempDirectory") - - -# Kinds of temporary directories. Only needed for ones that are -# globally-managed. -tempdir_kinds = enum( - BUILD_ENV="build-env", - EPHEM_WHEEL_CACHE="ephem-wheel-cache", - REQ_BUILD="req-build", -) - - -_tempdir_manager: Optional[ExitStack] = None - - -@contextmanager -def global_tempdir_manager() -> Iterator[None]: - global _tempdir_manager - with ExitStack() as stack: - old_tempdir_manager, _tempdir_manager = _tempdir_manager, stack - try: - yield - finally: - _tempdir_manager = old_tempdir_manager - - -class TempDirectoryTypeRegistry: - """Manages temp directory behavior""" - - def __init__(self) -> None: - self._should_delete: Dict[str, bool] = {} - - def set_delete(self, kind: str, value: bool) -> None: - """Indicate whether a TempDirectory of the given kind should be - auto-deleted. - """ - self._should_delete[kind] = value - - def get_delete(self, kind: str) -> bool: - """Get configured auto-delete flag for a given TempDirectory type, - default True. - """ - return self._should_delete.get(kind, True) - - -_tempdir_registry: Optional[TempDirectoryTypeRegistry] = None - - -@contextmanager -def tempdir_registry() -> Iterator[TempDirectoryTypeRegistry]: - """Provides a scoped global tempdir registry that can be used to dictate - whether directories should be deleted. - """ - global _tempdir_registry - old_tempdir_registry = _tempdir_registry - _tempdir_registry = TempDirectoryTypeRegistry() - try: - yield _tempdir_registry - finally: - _tempdir_registry = old_tempdir_registry - - -class _Default: - pass - - -_default = _Default() - - -class TempDirectory: - """Helper class that owns and cleans up a temporary directory. - - This class can be used as a context manager or as an OO representation of a - temporary directory. - - Attributes: - path - Location to the created temporary directory - delete - Whether the directory should be deleted when exiting - (when used as a contextmanager) - - Methods: - cleanup() - Deletes the temporary directory - - When used as a context manager, if the delete attribute is True, on - exiting the context the temporary directory is deleted. - """ - - def __init__( - self, - path: Optional[str] = None, - delete: Union[bool, None, _Default] = _default, - kind: str = "temp", - globally_managed: bool = False, - ): - super().__init__() - - if delete is _default: - if path is not None: - # If we were given an explicit directory, resolve delete option - # now. - delete = False - else: - # Otherwise, we wait until cleanup and see what - # tempdir_registry says. - delete = None - - # The only time we specify path is in for editables where it - # is the value of the --src option. - if path is None: - path = self._create(kind) - - self._path = path - self._deleted = False - self.delete = delete - self.kind = kind - - if globally_managed: - assert _tempdir_manager is not None - _tempdir_manager.enter_context(self) - - @property - def path(self) -> str: - assert not self._deleted, f"Attempted to access deleted path: {self._path}" - return self._path - - def __repr__(self) -> str: - return f"<{self.__class__.__name__} {self.path!r}>" - - def __enter__(self: _T) -> _T: - return self - - def __exit__(self, exc: Any, value: Any, tb: Any) -> None: - if self.delete is not None: - delete = self.delete - elif _tempdir_registry: - delete = _tempdir_registry.get_delete(self.kind) - else: - delete = True - - if delete: - self.cleanup() - - def _create(self, kind: str) -> str: - """Create a temporary directory and store its path in self.path""" - # We realpath here because some systems have their default tmpdir - # symlinked to another directory. This tends to confuse build - # scripts, so we canonicalize the path by traversing potential - # symlinks here. - path = os.path.realpath(tempfile.mkdtemp(prefix=f"pip-{kind}-")) - logger.debug("Created temporary directory: %s", path) - return path - - def cleanup(self) -> None: - """Remove the temporary directory created and reset state""" - self._deleted = True - if not os.path.exists(self._path): - return - rmtree(self._path) - - -class AdjacentTempDirectory(TempDirectory): - """Helper class that creates a temporary directory adjacent to a real one. - - Attributes: - original - The original directory to create a temp directory for. - path - After calling create() or entering, contains the full - path to the temporary directory. - delete - Whether the directory should be deleted when exiting - (when used as a contextmanager) - - """ - - # The characters that may be used to name the temp directory - # We always prepend a ~ and then rotate through these until - # a usable name is found. - # pkg_resources raises a different error for .dist-info folder - # with leading '-' and invalid metadata - LEADING_CHARS = "-~.=%0123456789" - - def __init__(self, original: str, delete: Optional[bool] = None) -> None: - self.original = original.rstrip("/\\") - super().__init__(delete=delete) - - @classmethod - def _generate_names(cls, name: str) -> Iterator[str]: - """Generates a series of temporary names. - - The algorithm replaces the leading characters in the name - with ones that are valid filesystem characters, but are not - valid package names (for both Python and pip definitions of - package). - """ - for i in range(1, len(name)): - for candidate in itertools.combinations_with_replacement( - cls.LEADING_CHARS, i - 1 - ): - new_name = "~" + "".join(candidate) + name[i:] - if new_name != name: - yield new_name - - # If we make it this far, we will have to make a longer name - for i in range(len(cls.LEADING_CHARS)): - for candidate in itertools.combinations_with_replacement( - cls.LEADING_CHARS, i - ): - new_name = "~" + "".join(candidate) + name - if new_name != name: - yield new_name - - def _create(self, kind: str) -> str: - root, name = os.path.split(self.original) - for candidate in self._generate_names(name): - path = os.path.join(root, candidate) - try: - os.mkdir(path) - except OSError as ex: - # Continue if the name exists already - if ex.errno != errno.EEXIST: - raise - else: - path = os.path.realpath(path) - break - else: - # Final fallback on the default behavior. - path = os.path.realpath(tempfile.mkdtemp(prefix=f"pip-{kind}-")) - - logger.debug("Created temporary directory: %s", path) - return path diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/unpacking.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/unpacking.py deleted file mode 100644 index 9e6ed97..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/unpacking.py +++ /dev/null @@ -1,351 +0,0 @@ -"""Utilities related archives. -""" - -import logging -import os -import shutil -import stat -import sys -import tarfile -import zipfile -from typing import Iterable, List, Optional -from zipfile import ZipInfo - -from pip._internal.exceptions import InstallationError -from pip._internal.utils.filetypes import ( - BZ2_EXTENSIONS, - TAR_EXTENSIONS, - XZ_EXTENSIONS, - ZIP_EXTENSIONS, -) -from pip._internal.utils.misc import ensure_dir - -logger = logging.getLogger(__name__) - - -SUPPORTED_EXTENSIONS = ZIP_EXTENSIONS + TAR_EXTENSIONS - -try: - import bz2 # noqa - - SUPPORTED_EXTENSIONS += BZ2_EXTENSIONS -except ImportError: - logger.debug("bz2 module is not available") - -try: - # Only for Python 3.3+ - import lzma # noqa - - SUPPORTED_EXTENSIONS += XZ_EXTENSIONS -except ImportError: - logger.debug("lzma module is not available") - - -def current_umask() -> int: - """Get the current umask which involves having to set it temporarily.""" - mask = os.umask(0) - os.umask(mask) - return mask - - -def split_leading_dir(path: str) -> List[str]: - path = path.lstrip("/").lstrip("\\") - if "/" in path and ( - ("\\" in path and path.find("/") < path.find("\\")) or "\\" not in path - ): - return path.split("/", 1) - elif "\\" in path: - return path.split("\\", 1) - else: - return [path, ""] - - -def has_leading_dir(paths: Iterable[str]) -> bool: - """Returns true if all the paths have the same leading path name - (i.e., everything is in one subdirectory in an archive)""" - common_prefix = None - for path in paths: - prefix, rest = split_leading_dir(path) - if not prefix: - return False - elif common_prefix is None: - common_prefix = prefix - elif prefix != common_prefix: - return False - return True - - -def is_within_directory(directory: str, target: str) -> bool: - """ - Return true if the absolute path of target is within the directory - """ - abs_directory = os.path.abspath(directory) - abs_target = os.path.abspath(target) - - prefix = os.path.commonprefix([abs_directory, abs_target]) - return prefix == abs_directory - - -def _get_default_mode_plus_executable() -> int: - return 0o777 & ~current_umask() | 0o111 - - -def set_extracted_file_to_default_mode_plus_executable(path: str) -> None: - """ - Make file present at path have execute for user/group/world - (chmod +x) is no-op on windows per python docs - """ - os.chmod(path, _get_default_mode_plus_executable()) - - -def zip_item_is_executable(info: ZipInfo) -> bool: - mode = info.external_attr >> 16 - # if mode and regular file and any execute permissions for - # user/group/world? - return bool(mode and stat.S_ISREG(mode) and mode & 0o111) - - -def unzip_file(filename: str, location: str, flatten: bool = True) -> None: - """ - Unzip the file (with path `filename`) to the destination `location`. All - files are written based on system defaults and umask (i.e. permissions are - not preserved), except that regular file members with any execute - permissions (user, group, or world) have "chmod +x" applied after being - written. Note that for windows, any execute changes using os.chmod are - no-ops per the python docs. - """ - ensure_dir(location) - zipfp = open(filename, "rb") - try: - zip = zipfile.ZipFile(zipfp, allowZip64=True) - leading = has_leading_dir(zip.namelist()) and flatten - for info in zip.infolist(): - name = info.filename - fn = name - if leading: - fn = split_leading_dir(name)[1] - fn = os.path.join(location, fn) - dir = os.path.dirname(fn) - if not is_within_directory(location, fn): - message = ( - "The zip file ({}) has a file ({}) trying to install " - "outside target directory ({})" - ) - raise InstallationError(message.format(filename, fn, location)) - if fn.endswith("/") or fn.endswith("\\"): - # A directory - ensure_dir(fn) - else: - ensure_dir(dir) - # Don't use read() to avoid allocating an arbitrarily large - # chunk of memory for the file's content - fp = zip.open(name) - try: - with open(fn, "wb") as destfp: - shutil.copyfileobj(fp, destfp) - finally: - fp.close() - if zip_item_is_executable(info): - set_extracted_file_to_default_mode_plus_executable(fn) - finally: - zipfp.close() - - -def untar_file(filename: str, location: str) -> None: - """ - Untar the file (with path `filename`) to the destination `location`. - All files are written based on system defaults and umask (i.e. permissions - are not preserved), except that regular file members with any execute - permissions (user, group, or world) have "chmod +x" applied on top of the - default. Note that for windows, any execute changes using os.chmod are - no-ops per the python docs. - """ - ensure_dir(location) - if filename.lower().endswith(".gz") or filename.lower().endswith(".tgz"): - mode = "r:gz" - elif filename.lower().endswith(BZ2_EXTENSIONS): - mode = "r:bz2" - elif filename.lower().endswith(XZ_EXTENSIONS): - mode = "r:xz" - elif filename.lower().endswith(".tar"): - mode = "r" - else: - logger.warning( - "Cannot determine compression type for file %s", - filename, - ) - mode = "r:*" - tar = tarfile.open(filename, mode, encoding="utf-8") - try: - leading = has_leading_dir([member.name for member in tar.getmembers()]) - - # PEP 706 added `tarfile.data_filter`, and made some other changes to - # Python's tarfile module (see below). The features were backported to - # security releases. - try: - data_filter = tarfile.data_filter - except AttributeError: - _untar_without_filter(filename, location, tar, leading) - else: - default_mode_plus_executable = _get_default_mode_plus_executable() - - def pip_filter(member: tarfile.TarInfo, path: str) -> tarfile.TarInfo: - if leading: - member.name = split_leading_dir(member.name)[1] - orig_mode = member.mode - try: - try: - member = data_filter(member, location) - except tarfile.LinkOutsideDestinationError: - if sys.version_info[:3] in { - (3, 8, 17), - (3, 9, 17), - (3, 10, 12), - (3, 11, 4), - }: - # The tarfile filter in specific Python versions - # raises LinkOutsideDestinationError on valid input - # (https://github.com/python/cpython/issues/107845) - # Ignore the error there, but do use the - # more lax `tar_filter` - member = tarfile.tar_filter(member, location) - else: - raise - except tarfile.TarError as exc: - message = "Invalid member in the tar file {}: {}" - # Filter error messages mention the member name. - # No need to add it here. - raise InstallationError( - message.format( - filename, - exc, - ) - ) - if member.isfile() and orig_mode & 0o111: - member.mode = default_mode_plus_executable - else: - # See PEP 706 note above. - # The PEP changed this from `int` to `Optional[int]`, - # where None means "use the default". Mypy doesn't - # know this yet. - member.mode = None # type: ignore [assignment] - return member - - tar.extractall(location, filter=pip_filter) - - finally: - tar.close() - - -def is_symlink_target_in_tar(tar: tarfile.TarFile, tarinfo: tarfile.TarInfo) -> bool: - """Check if the file pointed to by the symbolic link is in the tar archive""" - linkname = os.path.join(os.path.dirname(tarinfo.name), tarinfo.linkname) - - linkname = os.path.normpath(linkname) - linkname = linkname.replace("\\", "/") - - try: - tar.getmember(linkname) - return True - except KeyError: - return False - - -def _untar_without_filter( - filename: str, - location: str, - tar: tarfile.TarFile, - leading: bool, -) -> None: - """Fallback for Python without tarfile.data_filter""" - # NOTE: This function can be removed once pip requires CPython ≥ 3.12.​ - # PEP 706 added tarfile.data_filter, made tarfile extraction operations more secure. - # This feature is fully supported from CPython 3.12 onward. - for member in tar.getmembers(): - fn = member.name - if leading: - fn = split_leading_dir(fn)[1] - path = os.path.join(location, fn) - if not is_within_directory(location, path): - message = ( - "The tar file ({}) has a file ({}) trying to install " - "outside target directory ({})" - ) - raise InstallationError(message.format(filename, path, location)) - if member.isdir(): - ensure_dir(path) - elif member.issym(): - if not is_symlink_target_in_tar(tar, member): - message = ( - "The tar file ({}) has a file ({}) trying to install " - "outside target directory ({})" - ) - raise InstallationError( - message.format(filename, member.name, member.linkname) - ) - try: - tar._extract_member(member, path) - except Exception as exc: - # Some corrupt tar files seem to produce this - # (specifically bad symlinks) - logger.warning( - "In the tar file %s the member %s is invalid: %s", - filename, - member.name, - exc, - ) - continue - else: - try: - fp = tar.extractfile(member) - except (KeyError, AttributeError) as exc: - # Some corrupt tar files seem to produce this - # (specifically bad symlinks) - logger.warning( - "In the tar file %s the member %s is invalid: %s", - filename, - member.name, - exc, - ) - continue - ensure_dir(os.path.dirname(path)) - assert fp is not None - with open(path, "wb") as destfp: - shutil.copyfileobj(fp, destfp) - fp.close() - # Update the timestamp (useful for cython compiled files) - tar.utime(member, path) - # member have any execute permissions for user/group/world? - if member.mode & 0o111: - set_extracted_file_to_default_mode_plus_executable(path) - - -def unpack_file( - filename: str, - location: str, - content_type: Optional[str] = None, -) -> None: - filename = os.path.realpath(filename) - if ( - content_type == "application/zip" - or filename.lower().endswith(ZIP_EXTENSIONS) - or zipfile.is_zipfile(filename) - ): - unzip_file(filename, location, flatten=not filename.endswith(".whl")) - elif ( - content_type == "application/x-gzip" - or tarfile.is_tarfile(filename) - or filename.lower().endswith(TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS) - ): - untar_file(filename, location) - else: - # FIXME: handle? - # FIXME: magic signatures? - logger.critical( - "Cannot unpack file %s (downloaded from %s, content-type: %s); " - "cannot detect archive format", - filename, - location, - content_type, - ) - raise InstallationError(f"Cannot determine archive format of {location}") diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/urls.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/urls.py deleted file mode 100644 index 6ba2e04..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/urls.py +++ /dev/null @@ -1,62 +0,0 @@ -import os -import string -import urllib.parse -import urllib.request -from typing import Optional - -from .compat import WINDOWS - - -def get_url_scheme(url: str) -> Optional[str]: - if ":" not in url: - return None - return url.split(":", 1)[0].lower() - - -def path_to_url(path: str) -> str: - """ - Convert a path to a file: URL. The path will be made absolute and have - quoted path parts. - """ - path = os.path.normpath(os.path.abspath(path)) - url = urllib.parse.urljoin("file:", urllib.request.pathname2url(path)) - return url - - -def url_to_path(url: str) -> str: - """ - Convert a file: URL to a path. - """ - assert url.startswith( - "file:" - ), f"You can only turn file: urls into filenames (not {url!r})" - - _, netloc, path, _, _ = urllib.parse.urlsplit(url) - - if not netloc or netloc == "localhost": - # According to RFC 8089, same as empty authority. - netloc = "" - elif WINDOWS: - # If we have a UNC path, prepend UNC share notation. - netloc = "\\\\" + netloc - else: - raise ValueError( - f"non-local file URIs are not supported on this platform: {url!r}" - ) - - path = urllib.request.url2pathname(netloc + path) - - # On Windows, urlsplit parses the path as something like "/C:/Users/foo". - # This creates issues for path-related functions like io.open(), so we try - # to detect and strip the leading slash. - if ( - WINDOWS - and not netloc # Not UNC. - and len(path) >= 3 - and path[0] == "/" # Leading slash to strip. - and path[1] in string.ascii_letters # Drive letter. - and path[2:4] in (":", ":/") # Colon + end of string, or colon + absolute path. - ): - path = path[1:] - - return path diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/virtualenv.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/virtualenv.py deleted file mode 100644 index c926db4..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/virtualenv.py +++ /dev/null @@ -1,104 +0,0 @@ -import logging -import os -import re -import site -import sys -from typing import List, Optional - -logger = logging.getLogger(__name__) -_INCLUDE_SYSTEM_SITE_PACKAGES_REGEX = re.compile( - r"include-system-site-packages\s*=\s*(?Ptrue|false)" -) - - -def _running_under_venv() -> bool: - """Checks if sys.base_prefix and sys.prefix match. - - This handles PEP 405 compliant virtual environments. - """ - return sys.prefix != getattr(sys, "base_prefix", sys.prefix) - - -def _running_under_regular_virtualenv() -> bool: - """Checks if sys.real_prefix is set. - - This handles virtual environments created with pypa's virtualenv. - """ - # pypa/virtualenv case - return hasattr(sys, "real_prefix") - - -def running_under_virtualenv() -> bool: - """Return True if we're running inside a virtualenv, False otherwise.""" - return _running_under_venv() or _running_under_regular_virtualenv() - - -def _get_pyvenv_cfg_lines() -> Optional[List[str]]: - """Reads {sys.prefix}/pyvenv.cfg and returns its contents as list of lines - - Returns None, if it could not read/access the file. - """ - pyvenv_cfg_file = os.path.join(sys.prefix, "pyvenv.cfg") - try: - # Although PEP 405 does not specify, the built-in venv module always - # writes with UTF-8. (pypa/pip#8717) - with open(pyvenv_cfg_file, encoding="utf-8") as f: - return f.read().splitlines() # avoids trailing newlines - except OSError: - return None - - -def _no_global_under_venv() -> bool: - """Check `{sys.prefix}/pyvenv.cfg` for system site-packages inclusion - - PEP 405 specifies that when system site-packages are not supposed to be - visible from a virtual environment, `pyvenv.cfg` must contain the following - line: - - include-system-site-packages = false - - Additionally, log a warning if accessing the file fails. - """ - cfg_lines = _get_pyvenv_cfg_lines() - if cfg_lines is None: - # We're not in a "sane" venv, so assume there is no system - # site-packages access (since that's PEP 405's default state). - logger.warning( - "Could not access 'pyvenv.cfg' despite a virtual environment " - "being active. Assuming global site-packages is not accessible " - "in this environment." - ) - return True - - for line in cfg_lines: - match = _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match(line) - if match is not None and match.group("value") == "false": - return True - return False - - -def _no_global_under_regular_virtualenv() -> bool: - """Check if "no-global-site-packages.txt" exists beside site.py - - This mirrors logic in pypa/virtualenv for determining whether system - site-packages are visible in the virtual environment. - """ - site_mod_dir = os.path.dirname(os.path.abspath(site.__file__)) - no_global_site_packages_file = os.path.join( - site_mod_dir, - "no-global-site-packages.txt", - ) - return os.path.exists(no_global_site_packages_file) - - -def virtualenv_no_global() -> bool: - """Returns a boolean, whether running in venv with no system site-packages.""" - # PEP 405 compliance needs to be checked first since virtualenv >=20 would - # return True for both checks, but is only able to use the PEP 405 config. - if _running_under_venv(): - return _no_global_under_venv() - - if _running_under_regular_virtualenv(): - return _no_global_under_regular_virtualenv() - - return False diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/utils/wheel.py b/.venv/lib/python3.9/site-packages/pip/_internal/utils/wheel.py deleted file mode 100644 index 03f00e4..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/utils/wheel.py +++ /dev/null @@ -1,182 +0,0 @@ -"""Support functions for working with wheel files. -""" - -import logging -from email.message import Message -from email.parser import Parser -from typing import Dict, Tuple -from zipfile import BadZipFile, ZipFile - -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.pkg_resources import DistInfoDistribution, Distribution - -from pip._internal.exceptions import UnsupportedWheel -from pip._internal.utils.pkg_resources import DictMetadata - -VERSION_COMPATIBLE = (1, 0) - - -logger = logging.getLogger(__name__) - - -class WheelMetadata(DictMetadata): - """Metadata provider that maps metadata decoding exceptions to our - internal exception type. - """ - - def __init__(self, metadata: Dict[str, bytes], wheel_name: str) -> None: - super().__init__(metadata) - self._wheel_name = wheel_name - - def get_metadata(self, name: str) -> str: - try: - return super().get_metadata(name) - except UnicodeDecodeError as e: - # Augment the default error with the origin of the file. - raise UnsupportedWheel( - f"Error decoding metadata for {self._wheel_name}: {e}" - ) - - -def pkg_resources_distribution_for_wheel( - wheel_zip: ZipFile, name: str, location: str -) -> Distribution: - """Get a pkg_resources distribution given a wheel. - - :raises UnsupportedWheel: on any errors - """ - info_dir, _ = parse_wheel(wheel_zip, name) - - metadata_files = [p for p in wheel_zip.namelist() if p.startswith(f"{info_dir}/")] - - metadata_text: Dict[str, bytes] = {} - for path in metadata_files: - _, metadata_name = path.split("/", 1) - - try: - metadata_text[metadata_name] = read_wheel_metadata_file(wheel_zip, path) - except UnsupportedWheel as e: - raise UnsupportedWheel("{} has an invalid wheel, {}".format(name, str(e))) - - metadata = WheelMetadata(metadata_text, location) - - return DistInfoDistribution(location=location, metadata=metadata, project_name=name) - - -def parse_wheel(wheel_zip: ZipFile, name: str) -> Tuple[str, Message]: - """Extract information from the provided wheel, ensuring it meets basic - standards. - - Returns the name of the .dist-info directory and the parsed WHEEL metadata. - """ - try: - info_dir = wheel_dist_info_dir(wheel_zip, name) - metadata = wheel_metadata(wheel_zip, info_dir) - version = wheel_version(metadata) - except UnsupportedWheel as e: - raise UnsupportedWheel("{} has an invalid wheel, {}".format(name, str(e))) - - check_compatibility(version, name) - - return info_dir, metadata - - -def wheel_dist_info_dir(source: ZipFile, name: str) -> str: - """Returns the name of the contained .dist-info directory. - - Raises AssertionError or UnsupportedWheel if not found, >1 found, or - it doesn't match the provided name. - """ - # Zip file path separators must be / - subdirs = {p.split("/", 1)[0] for p in source.namelist()} - - info_dirs = [s for s in subdirs if s.endswith(".dist-info")] - - if not info_dirs: - raise UnsupportedWheel(".dist-info directory not found") - - if len(info_dirs) > 1: - raise UnsupportedWheel( - "multiple .dist-info directories found: {}".format(", ".join(info_dirs)) - ) - - info_dir = info_dirs[0] - - info_dir_name = canonicalize_name(info_dir) - canonical_name = canonicalize_name(name) - if not info_dir_name.startswith(canonical_name): - raise UnsupportedWheel( - ".dist-info directory {!r} does not start with {!r}".format( - info_dir, canonical_name - ) - ) - - return info_dir - - -def read_wheel_metadata_file(source: ZipFile, path: str) -> bytes: - try: - return source.read(path) - # BadZipFile for general corruption, KeyError for missing entry, - # and RuntimeError for password-protected files - except (BadZipFile, KeyError, RuntimeError) as e: - raise UnsupportedWheel(f"could not read {path!r} file: {e!r}") - - -def wheel_metadata(source: ZipFile, dist_info_dir: str) -> Message: - """Return the WHEEL metadata of an extracted wheel, if possible. - Otherwise, raise UnsupportedWheel. - """ - path = f"{dist_info_dir}/WHEEL" - # Zip file path separators must be / - wheel_contents = read_wheel_metadata_file(source, path) - - try: - wheel_text = wheel_contents.decode() - except UnicodeDecodeError as e: - raise UnsupportedWheel(f"error decoding {path!r}: {e!r}") - - # FeedParser (used by Parser) does not raise any exceptions. The returned - # message may have .defects populated, but for backwards-compatibility we - # currently ignore them. - return Parser().parsestr(wheel_text) - - -def wheel_version(wheel_data: Message) -> Tuple[int, ...]: - """Given WHEEL metadata, return the parsed Wheel-Version. - Otherwise, raise UnsupportedWheel. - """ - version_text = wheel_data["Wheel-Version"] - if version_text is None: - raise UnsupportedWheel("WHEEL is missing Wheel-Version") - - version = version_text.strip() - - try: - return tuple(map(int, version.split("."))) - except ValueError: - raise UnsupportedWheel(f"invalid Wheel-Version: {version!r}") - - -def check_compatibility(version: Tuple[int, ...], name: str) -> None: - """Raises errors or warns if called with an incompatible Wheel-Version. - - pip should refuse to install a Wheel-Version that's a major series - ahead of what it's compatible with (e.g 2.0 > 1.1); and warn when - installing a version only minor version ahead (e.g 1.2 > 1.1). - - version: a 2-tuple representing a Wheel-Version (Major, Minor) - name: name of wheel or package to raise exception about - - :raises UnsupportedWheel: when an incompatible Wheel-Version is given - """ - if version[0] > VERSION_COMPATIBLE[0]: - raise UnsupportedWheel( - "{}'s Wheel-Version ({}) is not compatible with this version " - "of pip".format(name, ".".join(map(str, version))) - ) - elif version > VERSION_COMPATIBLE: - logger.warning( - "Installing from a newer Wheel-Version (%s)", - ".".join(map(str, version)), - ) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__init__.py b/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__init__.py deleted file mode 100644 index b6beddb..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Expose a limited set of classes and functions so callers outside of -# the vcs package don't need to import deeper than `pip._internal.vcs`. -# (The test directory may still need to import from a vcs sub-package.) -# Import all vcs modules to register each VCS in the VcsSupport object. -import pip._internal.vcs.bazaar -import pip._internal.vcs.git -import pip._internal.vcs.mercurial -import pip._internal.vcs.subversion # noqa: F401 -from pip._internal.vcs.versioncontrol import ( # noqa: F401 - RemoteNotFoundError, - RemoteNotValidError, - is_url, - make_vcs_requirement_url, - vcs, -) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index e2c06b690e7a697d0b58eb1cc04abab180a1b5cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmZWlyG{c!5Oi{RT!K;|q)1TEUctGbLPCfJ$`pVouCbiEC2``%vGxVRpYRF%2A|=U zieI3@4iSo!wLIgUkyoqXqtTFrdjHH84{bueVzXO8BiG^D2oZxwGN6 z?5bYTQ~jc^(jrxZVxWe_uoZsZlPviTQ^+Li`olX=#=*q6Thr+32GQV-_{gQ$ialXj zgVK)`Ujkc|mLWVh0zrXx8z%{3cHqagsB6X zY*29NPxejQOjm$b80}B@-K|v`?a)Y!>0uI~6QLWS7vO{7D83{7C^|O^=v3JG3ts>@ z>cBdx;mI)z7)CPps#%Su1Z!!&0==SAOliG#bED7m3u=XfvznJnJ_Ad`TJ%2$8gig4 Zw8Al#*K40%DpNHQuHrT}4Uo3}&MyV8qWS;; diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-39.pyc deleted file mode 100644 index 10785247229543c43f37176c6ce7e203e888b021..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3235 zcmZ`*TW=h<6()zXv$GdTD`|C$-E@=K4W@~;MOzeT5CpN^x-FWhKq|Drpv7P`z@mQ&!MS*LdOZG842;<$!P9`PR>G>yP->w$Ff%Lge^0 zqo|7YG@z!R$InERlzAQ(9L7E5N4kt=G7DP9e>l_AKNOSFtbQf(Qj48ZKPhJg|E-jz zG~KVnL35rmi+>SP!O4%yLd!BU>>yDI>URC}&Ijs0KnN02PC|#%kZ~t;ISX6d4L#8o zzUT;li}2PfhkLyJ(mkPJ7q~sq=RWVea(S2cUb^AJ4PKuw0B`XIZ;>wnZ%GV*y9{jw z_Z6!X2D=YlIbV|r<;#5KWgku$S}C8e!l^^PW=~za##`qbmbY$s%}yJ9^A+P;{2e>9 z`89D#xCL>!W4uRk9mmqJy;|1pHuT2ZlW~zugLdu1@S~~LRo%IuRNY2WscAE-CNOJR zNO(AxRn62SwSi?)92iduJ(ER3ulX5i2ijw3%7>2AIoWqWEoY~89>~`upmG`ba`mG7 z_Stw^=3=~;s_9|;R0uuRLg{fKCOT3=9tauf7e!RbG7(CRw+}>dFwWAwado7pW$}yc zUyoI)#e*tNp2hn@jjOa8M`@vj1T>BT4dXrQknQToEbj{)?Zrw&U_unjeKi6_6zWWz zdb9D|_78-10@t`4)G`e4X?nQ0w0Ku?1(qh5qZc1ytqsjO;WHrS?3A35V^`Btz}(!K zyPD1E2|a_H)h>591Buodff;(zI&RI$sW)%gOe5erccnOK@ z-6jfKD=&8RlbqY7SCNxLlI4)4KGp*INisY@OE^S*PvA*~1Jp1l;l;W6|c zHtR7wdrqDbP0?2;;1lkA<6zYSU$7nHslyabd`%5Y4te0ncVU4wFL33Lk-lliErsO= zAToy51fA9k=c+Z^-q5QBV%V%+?*pL$(AS&gmKb8#|`Q&M}}65qU=CJ+O*ykYkty6tW4kzOFqe3ZIO}wTndnN_|Vs zDuC4x69f{WNumOP0oB@cm5!xGH%=j4SdytmG0b<xFyWpIUfpU@J-WIXx*~0Xcdm7U8ggS&m(W3y* zdFzUP{_*p>y8REhXuy^29eEctc(VJNnVy=Khmq18QW*yJKPrptNZtpLz^R7`COam2 zITqF#x zh~FZ#0U~zoS`@F=CD+4+NWBc#2nPQ@T)ee~PW5(73kq>jKG~H&g9UHChwq{u{1O1yue3l{Ik0RWqnUQ#=Y4a5B z(p;DhqQNdQZ3QsR0dIXsdz~h^fZLcG2I!L*SGk5AR!<3!S|Z=a?gQ*TgwFJA0caLU z^o~S-$qsf{3FN2PeGZ**_sTMpkC0qAFC2-;vWwzjE9L`~wq*o^how;Afp`zuU)Q1Q zY}gyJq3h6lZHKNbLhCqGqI|Gn+IVBa1#3KgRKb5^gVhPOGn??L*uH#KY|nI>sqH*f zNn;`+*Sz~S88zEGf4VeR@LM;+oU{38MmP6>*9$y&EIN|recQMQ)3)(zAE^aAz5_u1 z!ruE5F(>a}hvpf;{yx0Xg}jCy>o$9X`=2(k{|wQp@I~R%p);U;_}%rpZ1Bhb0W=^W AS^xk5 diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/git.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/git.cpython-39.pyc deleted file mode 100644 index 2453abe524609bb034a00a47bfc0e08ada3c2601..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12359 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 aHV)d1FReWP+SY$tQ`6S;?`ZVz`u_n{op2BU diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-39.pyc deleted file mode 100644 index 203df6815ef78874ebe245da1a2f6daf933326d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4878 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 Hg%kb{q7>}) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-39.pyc deleted file mode 100644 index 4c2666c493b02e2cef2dc009a39563220266ce44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8397 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%0Do!{W6X@Gb@GC=Is{c{&k@Sh5T! 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 List[str]: - return ["-r", rev] - - def fetch_new(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - rev_display = rev_options.to_display() - logger.info( - "Checking out %s%s to %s", - url, - rev_display, - display_path(dest), - ) - cmd_args = make_command("branch", "-q", rev_options.to_args(), url, dest) - self.run_command(cmd_args) - - def switch(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - self.run_command(make_command("switch", url), cwd=dest) - - def update(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - cmd_args = make_command("pull", "-q", rev_options.to_args()) - self.run_command(cmd_args, cwd=dest) - - @classmethod - def get_url_rev_and_auth(cls, url: str) -> Tuple[str, Optional[str], AuthInfo]: - # hotfix the URL scheme after removing bzr+ from bzr+ssh:// readd it - url, rev, user_pass = super().get_url_rev_and_auth(url) - if url.startswith("ssh://"): - url = "bzr+" + url - return url, rev, user_pass - - @classmethod - def get_remote_url(cls, location: str) -> str: - urls = cls.run_command( - ["info"], show_stdout=False, stdout_only=True, cwd=location - ) - for line in urls.splitlines(): - line = line.strip() - for x in ("checkout of branch: ", "parent branch: "): - if line.startswith(x): - repo = line.split(x)[1] - if cls._is_local_repository(repo): - return path_to_url(repo) - return repo - raise RemoteNotFoundError - - @classmethod - def get_revision(cls, location: str) -> str: - revision = cls.run_command( - ["revno"], - show_stdout=False, - stdout_only=True, - cwd=location, - ) - return revision.splitlines()[-1] - - @classmethod - def is_commit_id_equal(cls, dest: str, name: Optional[str]) -> bool: - """Always assume the versions don't match""" - return False - - -vcs.register(Bazaar) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/git.py b/.venv/lib/python3.9/site-packages/pip/_internal/vcs/git.py deleted file mode 100644 index 7a78ad1..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/git.py +++ /dev/null @@ -1,513 +0,0 @@ -import logging -import os.path -import pathlib -import re -import urllib.parse -import urllib.request -from typing import List, Optional, Tuple - -from pip._internal.exceptions import BadCommand, InstallationError -from pip._internal.utils.misc import HiddenText, display_path, hide_url -from pip._internal.utils.subprocess import make_command -from pip._internal.vcs.versioncontrol import ( - AuthInfo, - RemoteNotFoundError, - RemoteNotValidError, - RevOptions, - VersionControl, - find_path_to_project_root_from_repo_root, - vcs, -) - -urlsplit = urllib.parse.urlsplit -urlunsplit = urllib.parse.urlunsplit - - -logger = logging.getLogger(__name__) - - -GIT_VERSION_REGEX = re.compile( - r"^git version " # Prefix. - r"(\d+)" # Major. - r"\.(\d+)" # Dot, minor. - r"(?:\.(\d+))?" # Optional dot, patch. - r".*$" # Suffix, including any pre- and post-release segments we don't care about. -) - -HASH_REGEX = re.compile("^[a-fA-F0-9]{40}$") - -# SCP (Secure copy protocol) shorthand. e.g. 'git@example.com:foo/bar.git' -SCP_REGEX = re.compile( - r"""^ - # Optional user, e.g. 'git@' - (\w+@)? - # Server, e.g. 'github.com'. - ([^/:]+): - # The server-side path. e.g. 'user/project.git'. Must start with an - # alphanumeric character so as not to be confusable with a Windows paths - # like 'C:/foo/bar' or 'C:\foo\bar'. - (\w[^:]*) - $""", - re.VERBOSE, -) - - -def looks_like_hash(sha: str) -> bool: - return bool(HASH_REGEX.match(sha)) - - -class Git(VersionControl): - name = "git" - dirname = ".git" - repo_name = "clone" - schemes = ( - "git+http", - "git+https", - "git+ssh", - "git+git", - "git+file", - ) - # Prevent the user's environment variables from interfering with pip: - # https://github.com/pypa/pip/issues/1130 - unset_environ = ("GIT_DIR", "GIT_WORK_TREE") - default_arg_rev = "HEAD" - - @staticmethod - def get_base_rev_args(rev: str) -> List[str]: - return [rev] - - def is_immutable_rev_checkout(self, url: str, dest: str) -> bool: - _, rev_options = self.get_url_rev_options(hide_url(url)) - if not rev_options.rev: - return False - if not self.is_commit_id_equal(dest, rev_options.rev): - # the current commit is different from rev, - # which means rev was something else than a commit hash - return False - # return False in the rare case rev is both a commit hash - # and a tag or a branch; we don't want to cache in that case - # because that branch/tag could point to something else in the future - is_tag_or_branch = bool(self.get_revision_sha(dest, rev_options.rev)[0]) - return not is_tag_or_branch - - def get_git_version(self) -> Tuple[int, ...]: - version = self.run_command(["version"], show_stdout=False, stdout_only=True) - match = GIT_VERSION_REGEX.match(version) - if not match: - logger.warning("Can't parse git version: %s", version) - return () - return tuple(int(c) for c in match.groups()) - - @classmethod - def get_current_branch(cls, location: str) -> Optional[str]: - """ - Return the current branch, or None if HEAD isn't at a branch - (e.g. detached HEAD). - """ - # git-symbolic-ref exits with empty stdout if "HEAD" is a detached - # HEAD rather than a symbolic ref. In addition, the -q causes the - # command to exit with status code 1 instead of 128 in this case - # and to suppress the message to stderr. - args = ["symbolic-ref", "-q", "HEAD"] - output = cls.run_command( - args, - extra_ok_returncodes=(1,), - show_stdout=False, - stdout_only=True, - cwd=location, - ) - ref = output.strip() - - if ref.startswith("refs/heads/"): - return ref[len("refs/heads/") :] - - return None - - @classmethod - def get_revision_sha(cls, dest: str, rev: str) -> Tuple[Optional[str], bool]: - """ - Return (sha_or_none, is_branch), where sha_or_none is a commit hash - if the revision names a remote branch or tag, otherwise None. - - Args: - dest: the repository directory. - rev: the revision name. - """ - # Pass rev to pre-filter the list. - output = cls.run_command( - ["show-ref", rev], - cwd=dest, - show_stdout=False, - stdout_only=True, - on_returncode="ignore", - ) - refs = {} - # NOTE: We do not use splitlines here since that would split on other - # unicode separators, which can be maliciously used to install a - # different revision. - for line in output.strip().split("\n"): - line = line.rstrip("\r") - if not line: - continue - try: - ref_sha, ref_name = line.split(" ", maxsplit=2) - except ValueError: - # Include the offending line to simplify troubleshooting if - # this error ever occurs. - raise ValueError(f"unexpected show-ref line: {line!r}") - - refs[ref_name] = ref_sha - - branch_ref = f"refs/remotes/origin/{rev}" - tag_ref = f"refs/tags/{rev}" - - sha = refs.get(branch_ref) - if sha is not None: - return (sha, True) - - sha = refs.get(tag_ref) - - return (sha, False) - - @classmethod - def _should_fetch(cls, dest: str, rev: str) -> bool: - """ - Return true if rev is a ref or is a commit that we don't have locally. - - Branches and tags are not considered in this method because they are - assumed to be always available locally (which is a normal outcome of - ``git clone`` and ``git fetch --tags``). - """ - if rev.startswith("refs/"): - # Always fetch remote refs. - return True - - if not looks_like_hash(rev): - # Git fetch would fail with abbreviated commits. - return False - - if cls.has_commit(dest, rev): - # Don't fetch if we have the commit locally. - return False - - return True - - @classmethod - def resolve_revision( - cls, dest: str, url: HiddenText, rev_options: RevOptions - ) -> RevOptions: - """ - Resolve a revision to a new RevOptions object with the SHA1 of the - branch, tag, or ref if found. - - Args: - rev_options: a RevOptions object. - """ - rev = rev_options.arg_rev - # The arg_rev property's implementation for Git ensures that the - # rev return value is always non-None. - assert rev is not None - - sha, is_branch = cls.get_revision_sha(dest, rev) - - if sha is not None: - rev_options = rev_options.make_new(sha) - rev_options.branch_name = rev if is_branch else None - - return rev_options - - # Do not show a warning for the common case of something that has - # the form of a Git commit hash. - if not looks_like_hash(rev): - logger.warning( - "Did not find branch or tag '%s', assuming revision or ref.", - rev, - ) - - if not cls._should_fetch(dest, rev): - return rev_options - - # fetch the requested revision - cls.run_command( - make_command("fetch", "-q", url, rev_options.to_args()), - cwd=dest, - ) - # Change the revision to the SHA of the ref we fetched - sha = cls.get_revision(dest, rev="FETCH_HEAD") - rev_options = rev_options.make_new(sha) - - return rev_options - - @classmethod - def is_commit_id_equal(cls, dest: str, name: Optional[str]) -> bool: - """ - Return whether the current commit hash equals the given name. - - Args: - dest: the repository directory. - name: a string name. - """ - if not name: - # Then avoid an unnecessary subprocess call. - return False - - return cls.get_revision(dest) == name - - def fetch_new(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - rev_display = rev_options.to_display() - logger.info("Cloning %s%s to %s", url, rev_display, display_path(dest)) - if self.get_git_version() >= (2, 17): - # Git added support for partial clone in 2.17 - # https://git-scm.com/docs/partial-clone - # Speeds up cloning by functioning without a complete copy of repository - self.run_command( - make_command( - "clone", - "--filter=blob:none", - "-q", - url, - dest, - ) - ) - else: - self.run_command(make_command("clone", "-q", url, dest)) - - if rev_options.rev: - # Then a specific revision was requested. - rev_options = self.resolve_revision(dest, url, rev_options) - branch_name = getattr(rev_options, "branch_name", None) - logger.debug("Rev options %s, branch_name %s", rev_options, branch_name) - if branch_name is None: - # Only do a checkout if the current commit id doesn't match - # the requested revision. - if not self.is_commit_id_equal(dest, rev_options.rev): - cmd_args = make_command( - "checkout", - "-q", - rev_options.to_args(), - ) - self.run_command(cmd_args, cwd=dest) - elif self.get_current_branch(dest) != branch_name: - # Then a specific branch was requested, and that branch - # is not yet checked out. - track_branch = f"origin/{branch_name}" - cmd_args = [ - "checkout", - "-b", - branch_name, - "--track", - track_branch, - ] - self.run_command(cmd_args, cwd=dest) - else: - sha = self.get_revision(dest) - rev_options = rev_options.make_new(sha) - - logger.info("Resolved %s to commit %s", url, rev_options.rev) - - #: repo may contain submodules - self.update_submodules(dest) - - def switch(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - self.run_command( - make_command("config", "remote.origin.url", url), - cwd=dest, - ) - cmd_args = make_command("checkout", "-q", rev_options.to_args()) - self.run_command(cmd_args, cwd=dest) - - self.update_submodules(dest) - - def update(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - # First fetch changes from the default remote - if self.get_git_version() >= (1, 9): - # fetch tags in addition to everything else - self.run_command(["fetch", "-q", "--tags"], cwd=dest) - else: - self.run_command(["fetch", "-q"], cwd=dest) - # Then reset to wanted revision (maybe even origin/master) - rev_options = self.resolve_revision(dest, url, rev_options) - cmd_args = make_command("reset", "--hard", "-q", rev_options.to_args()) - self.run_command(cmd_args, cwd=dest) - #: update submodules - self.update_submodules(dest) - - @classmethod - def get_remote_url(cls, location: str) -> str: - """ - Return URL of the first remote encountered. - - Raises RemoteNotFoundError if the repository does not have a remote - url configured. - """ - # We need to pass 1 for extra_ok_returncodes since the command - # exits with return code 1 if there are no matching lines. - stdout = cls.run_command( - ["config", "--get-regexp", r"remote\..*\.url"], - extra_ok_returncodes=(1,), - show_stdout=False, - stdout_only=True, - cwd=location, - ) - remotes = stdout.splitlines() - try: - found_remote = remotes[0] - except IndexError: - raise RemoteNotFoundError - - for remote in remotes: - if remote.startswith("remote.origin.url "): - found_remote = remote - break - url = found_remote.split(" ")[1] - return cls._git_remote_to_pip_url(url.strip()) - - @staticmethod - def _git_remote_to_pip_url(url: str) -> str: - """ - Convert a remote url from what git uses to what pip accepts. - - There are 3 legal forms **url** may take: - - 1. A fully qualified url: ssh://git@example.com/foo/bar.git - 2. A local project.git folder: /path/to/bare/repository.git - 3. SCP shorthand for form 1: git@example.com:foo/bar.git - - Form 1 is output as-is. Form 2 must be converted to URI and form 3 must - be converted to form 1. - - See the corresponding test test_git_remote_url_to_pip() for examples of - sample inputs/outputs. - """ - if re.match(r"\w+://", url): - # This is already valid. Pass it though as-is. - return url - if os.path.exists(url): - # A local bare remote (git clone --mirror). - # Needs a file:// prefix. - return pathlib.PurePath(url).as_uri() - scp_match = SCP_REGEX.match(url) - if scp_match: - # Add an ssh:// prefix and replace the ':' with a '/'. - return scp_match.expand(r"ssh://\1\2/\3") - # Otherwise, bail out. - raise RemoteNotValidError(url) - - @classmethod - def has_commit(cls, location: str, rev: str) -> bool: - """ - Check if rev is a commit that is available in the local repository. - """ - try: - cls.run_command( - ["rev-parse", "-q", "--verify", "sha^" + rev], - cwd=location, - log_failed_cmd=False, - ) - except InstallationError: - return False - else: - return True - - @classmethod - def get_revision(cls, location: str, rev: Optional[str] = None) -> str: - if rev is None: - rev = "HEAD" - current_rev = cls.run_command( - ["rev-parse", rev], - show_stdout=False, - stdout_only=True, - cwd=location, - ) - return current_rev.strip() - - @classmethod - def get_subdirectory(cls, location: str) -> Optional[str]: - """ - Return the path to Python project root, relative to the repo root. - Return None if the project root is in the repo root. - """ - # find the repo root - git_dir = cls.run_command( - ["rev-parse", "--git-dir"], - show_stdout=False, - stdout_only=True, - cwd=location, - ).strip() - if not os.path.isabs(git_dir): - git_dir = os.path.join(location, git_dir) - repo_root = os.path.abspath(os.path.join(git_dir, "..")) - return find_path_to_project_root_from_repo_root(location, repo_root) - - @classmethod - def get_url_rev_and_auth(cls, url: str) -> Tuple[str, Optional[str], AuthInfo]: - """ - Prefixes stub URLs like 'user@hostname:user/repo.git' with 'ssh://'. - That's required because although they use SSH they sometimes don't - work with a ssh:// scheme (e.g. GitHub). But we need a scheme for - parsing. Hence we remove it again afterwards and return it as a stub. - """ - # Works around an apparent Git bug - # (see https://article.gmane.org/gmane.comp.version-control.git/146500) - scheme, netloc, path, query, fragment = urlsplit(url) - if scheme.endswith("file"): - initial_slashes = path[: -len(path.lstrip("/"))] - newpath = initial_slashes + urllib.request.url2pathname(path).replace( - "\\", "/" - ).lstrip("/") - after_plus = scheme.find("+") + 1 - url = scheme[:after_plus] + urlunsplit( - (scheme[after_plus:], netloc, newpath, query, fragment), - ) - - if "://" not in url: - assert "file:" not in url - url = url.replace("git+", "git+ssh://") - url, rev, user_pass = super().get_url_rev_and_auth(url) - url = url.replace("ssh://", "") - else: - url, rev, user_pass = super().get_url_rev_and_auth(url) - - return url, rev, user_pass - - @classmethod - def update_submodules(cls, location: str) -> None: - if not os.path.exists(os.path.join(location, ".gitmodules")): - return - cls.run_command( - ["submodule", "update", "--init", "--recursive", "-q"], - cwd=location, - ) - - @classmethod - def get_repository_root(cls, location: str) -> Optional[str]: - loc = super().get_repository_root(location) - if loc: - return loc - try: - r = cls.run_command( - ["rev-parse", "--show-toplevel"], - cwd=location, - show_stdout=False, - stdout_only=True, - on_returncode="raise", - log_failed_cmd=False, - ) - except BadCommand: - logger.debug( - "could not determine if %s is under git control " - "because git is not available", - location, - ) - return None - except InstallationError: - return None - return os.path.normpath(r.rstrip("\r\n")) - - @staticmethod - def should_add_vcs_url_prefix(repo_url: str) -> bool: - """In either https or ssh form, requirements must be prefixed with git+.""" - return True - - -vcs.register(Git) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/mercurial.py b/.venv/lib/python3.9/site-packages/pip/_internal/vcs/mercurial.py deleted file mode 100644 index 39a2e55..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/mercurial.py +++ /dev/null @@ -1,153 +0,0 @@ -import configparser -import logging -import os -from typing import List, Optional - -from pip._internal.exceptions import BadCommand, InstallationError -from pip._internal.utils.misc import HiddenText, display_path -from pip._internal.utils.subprocess import make_command -from pip._internal.utils.urls import path_to_url -from pip._internal.vcs.versioncontrol import ( - RevOptions, - VersionControl, - find_path_to_project_root_from_repo_root, - vcs, -) - -logger = logging.getLogger(__name__) - - -class Mercurial(VersionControl): - name = "hg" - dirname = ".hg" - repo_name = "clone" - schemes = ( - "hg+file", - "hg+http", - "hg+https", - "hg+ssh", - "hg+static-http", - ) - - @staticmethod - def get_base_rev_args(rev: str) -> List[str]: - return [f"--rev={rev}"] - - def fetch_new(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - rev_display = rev_options.to_display() - logger.info( - "Cloning hg %s%s to %s", - url, - rev_display, - display_path(dest), - ) - self.run_command(make_command("clone", "--noupdate", "-q", url, dest)) - self.run_command( - make_command("update", "-q", rev_options.to_args()), - cwd=dest, - ) - - def switch(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - repo_config = os.path.join(dest, self.dirname, "hgrc") - config = configparser.RawConfigParser() - try: - config.read(repo_config) - config.set("paths", "default", url.secret) - with open(repo_config, "w") as config_file: - config.write(config_file) - except (OSError, configparser.NoSectionError) as exc: - logger.warning("Could not switch Mercurial repository to %s: %s", url, exc) - else: - cmd_args = make_command("update", "-q", rev_options.to_args()) - self.run_command(cmd_args, cwd=dest) - - def update(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - self.run_command(["pull", "-q"], cwd=dest) - cmd_args = make_command("update", "-q", rev_options.to_args()) - self.run_command(cmd_args, cwd=dest) - - @classmethod - def get_remote_url(cls, location: str) -> str: - url = cls.run_command( - ["showconfig", "paths.default"], - show_stdout=False, - stdout_only=True, - cwd=location, - ).strip() - if cls._is_local_repository(url): - url = path_to_url(url) - return url.strip() - - @classmethod - def get_revision(cls, location: str) -> str: - """ - Return the repository-local changeset revision number, as an integer. - """ - current_revision = cls.run_command( - ["parents", "--template={rev}"], - show_stdout=False, - stdout_only=True, - cwd=location, - ).strip() - return current_revision - - @classmethod - def get_requirement_revision(cls, location: str) -> str: - """ - Return the changeset identification hash, as a 40-character - hexadecimal string - """ - current_rev_hash = cls.run_command( - ["parents", "--template={node}"], - show_stdout=False, - stdout_only=True, - cwd=location, - ).strip() - return current_rev_hash - - @classmethod - def is_commit_id_equal(cls, dest: str, name: Optional[str]) -> bool: - """Always assume the versions don't match""" - return False - - @classmethod - def get_subdirectory(cls, location: str) -> Optional[str]: - """ - Return the path to Python project root, relative to the repo root. - Return None if the project root is in the repo root. - """ - # find the repo root - repo_root = cls.run_command( - ["root"], show_stdout=False, stdout_only=True, cwd=location - ).strip() - if not os.path.isabs(repo_root): - repo_root = os.path.abspath(os.path.join(location, repo_root)) - return find_path_to_project_root_from_repo_root(location, repo_root) - - @classmethod - def get_repository_root(cls, location: str) -> Optional[str]: - loc = super().get_repository_root(location) - if loc: - return loc - try: - r = cls.run_command( - ["root"], - cwd=location, - show_stdout=False, - stdout_only=True, - on_returncode="raise", - log_failed_cmd=False, - ) - except BadCommand: - logger.debug( - "could not determine if %s is under hg control " - "because hg is not available", - location, - ) - return None - except InstallationError: - return None - return os.path.normpath(r.rstrip("\r\n")) - - -vcs.register(Mercurial) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/subversion.py b/.venv/lib/python3.9/site-packages/pip/_internal/vcs/subversion.py deleted file mode 100644 index b5b6fd5..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/subversion.py +++ /dev/null @@ -1,318 +0,0 @@ -import logging -import os -import re -from typing import List, Optional, Tuple - -from pip._internal.utils.misc import ( - HiddenText, - display_path, - is_console_interactive, - is_installable_dir, - split_auth_from_netloc, -) -from pip._internal.utils.subprocess import CommandArgs, make_command -from pip._internal.vcs.versioncontrol import ( - AuthInfo, - RemoteNotFoundError, - RevOptions, - VersionControl, - vcs, -) - -logger = logging.getLogger(__name__) - -_svn_xml_url_re = re.compile('url="([^"]+)"') -_svn_rev_re = re.compile(r'committed-rev="(\d+)"') -_svn_info_xml_rev_re = re.compile(r'\s*revision="(\d+)"') -_svn_info_xml_url_re = re.compile(r"(.*)") - - -class Subversion(VersionControl): - name = "svn" - dirname = ".svn" - repo_name = "checkout" - schemes = ("svn+ssh", "svn+http", "svn+https", "svn+svn", "svn+file") - - @classmethod - def should_add_vcs_url_prefix(cls, remote_url: str) -> bool: - return True - - @staticmethod - def get_base_rev_args(rev: str) -> List[str]: - return ["-r", rev] - - @classmethod - def get_revision(cls, location: str) -> str: - """ - Return the maximum revision for all files under a given location - """ - # Note: taken from setuptools.command.egg_info - revision = 0 - - for base, dirs, _ in os.walk(location): - if cls.dirname not in dirs: - dirs[:] = [] - continue # no sense walking uncontrolled subdirs - dirs.remove(cls.dirname) - entries_fn = os.path.join(base, cls.dirname, "entries") - if not os.path.exists(entries_fn): - # FIXME: should we warn? - continue - - dirurl, localrev = cls._get_svn_url_rev(base) - - if base == location: - assert dirurl is not None - base = dirurl + "/" # save the root url - elif not dirurl or not dirurl.startswith(base): - dirs[:] = [] - continue # not part of the same svn tree, skip it - revision = max(revision, localrev) - return str(revision) - - @classmethod - def get_netloc_and_auth( - cls, netloc: str, scheme: str - ) -> Tuple[str, Tuple[Optional[str], Optional[str]]]: - """ - This override allows the auth information to be passed to svn via the - --username and --password options instead of via the URL. - """ - if scheme == "ssh": - # The --username and --password options can't be used for - # svn+ssh URLs, so keep the auth information in the URL. - return super().get_netloc_and_auth(netloc, scheme) - - return split_auth_from_netloc(netloc) - - @classmethod - def get_url_rev_and_auth(cls, url: str) -> Tuple[str, Optional[str], AuthInfo]: - # hotfix the URL scheme after removing svn+ from svn+ssh:// readd it - url, rev, user_pass = super().get_url_rev_and_auth(url) - if url.startswith("ssh://"): - url = "svn+" + url - return url, rev, user_pass - - @staticmethod - def make_rev_args( - username: Optional[str], password: Optional[HiddenText] - ) -> CommandArgs: - extra_args: CommandArgs = [] - if username: - extra_args += ["--username", username] - if password: - extra_args += ["--password", password] - - return extra_args - - @classmethod - def get_remote_url(cls, location: str) -> str: - # In cases where the source is in a subdirectory, we have to look up in - # the location until we find a valid project root. - orig_location = location - while not is_installable_dir(location): - last_location = location - location = os.path.dirname(location) - if location == last_location: - # We've traversed up to the root of the filesystem without - # finding a Python project. - logger.warning( - "Could not find Python project for directory %s (tried all " - "parent directories)", - orig_location, - ) - raise RemoteNotFoundError - - url, _rev = cls._get_svn_url_rev(location) - if url is None: - raise RemoteNotFoundError - - return url - - @classmethod - def _get_svn_url_rev(cls, location: str) -> Tuple[Optional[str], int]: - from pip._internal.exceptions import InstallationError - - entries_path = os.path.join(location, cls.dirname, "entries") - if os.path.exists(entries_path): - with open(entries_path) as f: - data = f.read() - else: # subversion >= 1.7 does not have the 'entries' file - data = "" - - url = None - if data.startswith("8") or data.startswith("9") or data.startswith("10"): - entries = list(map(str.splitlines, data.split("\n\x0c\n"))) - del entries[0][0] # get rid of the '8' - url = entries[0][3] - revs = [int(d[9]) for d in entries if len(d) > 9 and d[9]] + [0] - elif data.startswith("= 1.7 - # Note that using get_remote_call_options is not necessary here - # because `svn info` is being run against a local directory. - # We don't need to worry about making sure interactive mode - # is being used to prompt for passwords, because passwords - # are only potentially needed for remote server requests. - xml = cls.run_command( - ["info", "--xml", location], - show_stdout=False, - stdout_only=True, - ) - match = _svn_info_xml_url_re.search(xml) - assert match is not None - url = match.group(1) - revs = [int(m.group(1)) for m in _svn_info_xml_rev_re.finditer(xml)] - except InstallationError: - url, revs = None, [] - - if revs: - rev = max(revs) - else: - rev = 0 - - return url, rev - - @classmethod - def is_commit_id_equal(cls, dest: str, name: Optional[str]) -> bool: - """Always assume the versions don't match""" - return False - - def __init__(self, use_interactive: bool = None) -> None: - if use_interactive is None: - use_interactive = is_console_interactive() - self.use_interactive = use_interactive - - # This member is used to cache the fetched version of the current - # ``svn`` client. - # Special value definitions: - # None: Not evaluated yet. - # Empty tuple: Could not parse version. - self._vcs_version: Optional[Tuple[int, ...]] = None - - super().__init__() - - def call_vcs_version(self) -> Tuple[int, ...]: - """Query the version of the currently installed Subversion client. - - :return: A tuple containing the parts of the version information or - ``()`` if the version returned from ``svn`` could not be parsed. - :raises: BadCommand: If ``svn`` is not installed. - """ - # Example versions: - # svn, version 1.10.3 (r1842928) - # compiled Feb 25 2019, 14:20:39 on x86_64-apple-darwin17.0.0 - # svn, version 1.7.14 (r1542130) - # compiled Mar 28 2018, 08:49:13 on x86_64-pc-linux-gnu - # svn, version 1.12.0-SlikSvn (SlikSvn/1.12.0) - # compiled May 28 2019, 13:44:56 on x86_64-microsoft-windows6.2 - version_prefix = "svn, version " - version = self.run_command(["--version"], show_stdout=False, stdout_only=True) - if not version.startswith(version_prefix): - return () - - version = version[len(version_prefix) :].split()[0] - version_list = version.partition("-")[0].split(".") - try: - parsed_version = tuple(map(int, version_list)) - except ValueError: - return () - - return parsed_version - - def get_vcs_version(self) -> Tuple[int, ...]: - """Return the version of the currently installed Subversion client. - - If the version of the Subversion client has already been queried, - a cached value will be used. - - :return: A tuple containing the parts of the version information or - ``()`` if the version returned from ``svn`` could not be parsed. - :raises: BadCommand: If ``svn`` is not installed. - """ - if self._vcs_version is not None: - # Use cached version, if available. - # If parsing the version failed previously (empty tuple), - # do not attempt to parse it again. - return self._vcs_version - - vcs_version = self.call_vcs_version() - self._vcs_version = vcs_version - return vcs_version - - def get_remote_call_options(self) -> CommandArgs: - """Return options to be used on calls to Subversion that contact the server. - - These options are applicable for the following ``svn`` subcommands used - in this class. - - - checkout - - switch - - update - - :return: A list of command line arguments to pass to ``svn``. - """ - if not self.use_interactive: - # --non-interactive switch is available since Subversion 0.14.4. - # Subversion < 1.8 runs in interactive mode by default. - return ["--non-interactive"] - - svn_version = self.get_vcs_version() - # By default, Subversion >= 1.8 runs in non-interactive mode if - # stdin is not a TTY. Since that is how pip invokes SVN, in - # call_subprocess(), pip must pass --force-interactive to ensure - # the user can be prompted for a password, if required. - # SVN added the --force-interactive option in SVN 1.8. Since - # e.g. RHEL/CentOS 7, which is supported until 2024, ships with - # SVN 1.7, pip should continue to support SVN 1.7. Therefore, pip - # can't safely add the option if the SVN version is < 1.8 (or unknown). - if svn_version >= (1, 8): - return ["--force-interactive"] - - return [] - - def fetch_new(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - rev_display = rev_options.to_display() - logger.info( - "Checking out %s%s to %s", - url, - rev_display, - display_path(dest), - ) - cmd_args = make_command( - "checkout", - "-q", - self.get_remote_call_options(), - rev_options.to_args(), - url, - dest, - ) - self.run_command(cmd_args) - - def switch(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - cmd_args = make_command( - "switch", - self.get_remote_call_options(), - rev_options.to_args(), - url, - dest, - ) - self.run_command(cmd_args) - - def update(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - cmd_args = make_command( - "update", - self.get_remote_call_options(), - rev_options.to_args(), - dest, - ) - self.run_command(cmd_args) - - -vcs.register(Subversion) diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/versioncontrol.py b/.venv/lib/python3.9/site-packages/pip/_internal/vcs/versioncontrol.py deleted file mode 100644 index 1139051..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/vcs/versioncontrol.py +++ /dev/null @@ -1,693 +0,0 @@ -"""Handles all VCS (version control) support""" - -import logging -import os -import shutil -import sys -import urllib.parse -from typing import ( - TYPE_CHECKING, - Any, - Dict, - Iterable, - Iterator, - List, - Mapping, - Optional, - Tuple, - Type, - Union, -) - -from pip._internal.cli.spinners import SpinnerInterface -from pip._internal.exceptions import BadCommand, InstallationError -from pip._internal.utils.misc import ( - HiddenText, - ask_path_exists, - backup_dir, - display_path, - hide_url, - hide_value, - is_installable_dir, - rmtree, -) -from pip._internal.utils.subprocess import CommandArgs, call_subprocess, make_command -from pip._internal.utils.urls import get_url_scheme - -if TYPE_CHECKING: - # Literal was introduced in Python 3.8. - # - # TODO: Remove `if TYPE_CHECKING` when dropping support for Python 3.7. - from typing import Literal - - -__all__ = ["vcs"] - - -logger = logging.getLogger(__name__) - -AuthInfo = Tuple[Optional[str], Optional[str]] - - -def is_url(name: str) -> bool: - """ - Return true if the name looks like a URL. - """ - scheme = get_url_scheme(name) - if scheme is None: - return False - return scheme in ["http", "https", "file", "ftp"] + vcs.all_schemes - - -def make_vcs_requirement_url( - repo_url: str, rev: str, project_name: str, subdir: Optional[str] = None -) -> str: - """ - Return the URL for a VCS requirement. - - Args: - repo_url: the remote VCS url, with any needed VCS prefix (e.g. "git+"). - project_name: the (unescaped) project name. - """ - egg_project_name = project_name.replace("-", "_") - req = f"{repo_url}@{rev}#egg={egg_project_name}" - if subdir: - req += f"&subdirectory={subdir}" - - return req - - -def find_path_to_project_root_from_repo_root( - location: str, repo_root: str -) -> Optional[str]: - """ - Find the the Python project's root by searching up the filesystem from - `location`. Return the path to project root relative to `repo_root`. - Return None if the project root is `repo_root`, or cannot be found. - """ - # find project root. - orig_location = location - while not is_installable_dir(location): - last_location = location - location = os.path.dirname(location) - if location == last_location: - # We've traversed up to the root of the filesystem without - # finding a Python project. - logger.warning( - "Could not find a Python project for directory %s (tried all " - "parent directories)", - orig_location, - ) - return None - - if os.path.samefile(repo_root, location): - return None - - return os.path.relpath(location, repo_root) - - -class RemoteNotFoundError(Exception): - pass - - -class RemoteNotValidError(Exception): - def __init__(self, url: str): - super().__init__(url) - self.url = url - - -class RevOptions: - - """ - Encapsulates a VCS-specific revision to install, along with any VCS - install options. - - Instances of this class should be treated as if immutable. - """ - - def __init__( - self, - vc_class: Type["VersionControl"], - rev: Optional[str] = None, - extra_args: Optional[CommandArgs] = None, - ) -> None: - """ - Args: - vc_class: a VersionControl subclass. - rev: the name of the revision to install. - extra_args: a list of extra options. - """ - if extra_args is None: - extra_args = [] - - self.extra_args = extra_args - self.rev = rev - self.vc_class = vc_class - self.branch_name: Optional[str] = None - - def __repr__(self) -> str: - return f"" - - @property - def arg_rev(self) -> Optional[str]: - if self.rev is None: - return self.vc_class.default_arg_rev - - return self.rev - - def to_args(self) -> CommandArgs: - """ - Return the VCS-specific command arguments. - """ - args: CommandArgs = [] - rev = self.arg_rev - if rev is not None: - args += self.vc_class.get_base_rev_args(rev) - args += self.extra_args - - return args - - def to_display(self) -> str: - if not self.rev: - return "" - - return f" (to revision {self.rev})" - - def make_new(self, rev: str) -> "RevOptions": - """ - Make a copy of the current instance, but with a new rev. - - Args: - rev: the name of the revision for the new object. - """ - return self.vc_class.make_rev_options(rev, extra_args=self.extra_args) - - -class VcsSupport: - _registry: Dict[str, "VersionControl"] = {} - schemes = ["ssh", "git", "hg", "bzr", "sftp", "svn"] - - def __init__(self) -> None: - # Register more schemes with urlparse for various version control - # systems - urllib.parse.uses_netloc.extend(self.schemes) - super().__init__() - - def __iter__(self) -> Iterator[str]: - return self._registry.__iter__() - - @property - def backends(self) -> List["VersionControl"]: - return list(self._registry.values()) - - @property - def dirnames(self) -> List[str]: - return [backend.dirname for backend in self.backends] - - @property - def all_schemes(self) -> List[str]: - schemes: List[str] = [] - for backend in self.backends: - schemes.extend(backend.schemes) - return schemes - - def register(self, cls: Type["VersionControl"]) -> None: - if not hasattr(cls, "name"): - logger.warning("Cannot register VCS %s", cls.__name__) - return - if cls.name not in self._registry: - self._registry[cls.name] = cls() - logger.debug("Registered VCS backend: %s", cls.name) - - def unregister(self, name: str) -> None: - if name in self._registry: - del self._registry[name] - - def get_backend_for_dir(self, location: str) -> Optional["VersionControl"]: - """ - Return a VersionControl object if a repository of that type is found - at the given directory. - """ - vcs_backends = {} - for vcs_backend in self._registry.values(): - repo_path = vcs_backend.get_repository_root(location) - if not repo_path: - continue - logger.debug("Determine that %s uses VCS: %s", location, vcs_backend.name) - vcs_backends[repo_path] = vcs_backend - - if not vcs_backends: - return None - - # Choose the VCS in the inner-most directory. Since all repository - # roots found here would be either `location` or one of its - # parents, the longest path should have the most path components, - # i.e. the backend representing the inner-most repository. - inner_most_repo_path = max(vcs_backends, key=len) - return vcs_backends[inner_most_repo_path] - - def get_backend_for_scheme(self, scheme: str) -> Optional["VersionControl"]: - """ - Return a VersionControl object or None. - """ - for vcs_backend in self._registry.values(): - if scheme in vcs_backend.schemes: - return vcs_backend - return None - - def get_backend(self, name: str) -> Optional["VersionControl"]: - """ - Return a VersionControl object or None. - """ - name = name.lower() - return self._registry.get(name) - - -vcs = VcsSupport() - - -class VersionControl: - name = "" - dirname = "" - repo_name = "" - # List of supported schemes for this Version Control - schemes: Tuple[str, ...] = () - # Iterable of environment variable names to pass to call_subprocess(). - unset_environ: Tuple[str, ...] = () - default_arg_rev: Optional[str] = None - - @classmethod - def should_add_vcs_url_prefix(cls, remote_url: str) -> bool: - """ - Return whether the vcs prefix (e.g. "git+") should be added to a - repository's remote url when used in a requirement. - """ - return not remote_url.lower().startswith(f"{cls.name}:") - - @classmethod - def get_subdirectory(cls, location: str) -> Optional[str]: - """ - Return the path to Python project root, relative to the repo root. - Return None if the project root is in the repo root. - """ - return None - - @classmethod - def get_requirement_revision(cls, repo_dir: str) -> str: - """ - Return the revision string that should be used in a requirement. - """ - return cls.get_revision(repo_dir) - - @classmethod - def get_src_requirement(cls, repo_dir: str, project_name: str) -> str: - """ - Return the requirement string to use to redownload the files - currently at the given repository directory. - - Args: - project_name: the (unescaped) project name. - - The return value has a form similar to the following: - - {repository_url}@{revision}#egg={project_name} - """ - repo_url = cls.get_remote_url(repo_dir) - - if cls.should_add_vcs_url_prefix(repo_url): - repo_url = f"{cls.name}+{repo_url}" - - revision = cls.get_requirement_revision(repo_dir) - subdir = cls.get_subdirectory(repo_dir) - req = make_vcs_requirement_url(repo_url, revision, project_name, subdir=subdir) - - return req - - @staticmethod - def get_base_rev_args(rev: str) -> List[str]: - """ - Return the base revision arguments for a vcs command. - - Args: - rev: the name of a revision to install. Cannot be None. - """ - raise NotImplementedError - - def is_immutable_rev_checkout(self, url: str, dest: str) -> bool: - """ - Return true if the commit hash checked out at dest matches - the revision in url. - - Always return False, if the VCS does not support immutable commit - hashes. - - This method does not check if there are local uncommitted changes - in dest after checkout, as pip currently has no use case for that. - """ - return False - - @classmethod - def make_rev_options( - cls, rev: Optional[str] = None, extra_args: Optional[CommandArgs] = None - ) -> RevOptions: - """ - Return a RevOptions object. - - Args: - rev: the name of a revision to install. - extra_args: a list of extra options. - """ - return RevOptions(cls, rev, extra_args=extra_args) - - @classmethod - def _is_local_repository(cls, repo: str) -> bool: - """ - posix absolute paths start with os.path.sep, - win32 ones start with drive (like c:\\folder) - """ - drive, tail = os.path.splitdrive(repo) - return repo.startswith(os.path.sep) or bool(drive) - - @classmethod - def get_netloc_and_auth( - cls, netloc: str, scheme: str - ) -> Tuple[str, Tuple[Optional[str], Optional[str]]]: - """ - Parse the repository URL's netloc, and return the new netloc to use - along with auth information. - - Args: - netloc: the original repository URL netloc. - scheme: the repository URL's scheme without the vcs prefix. - - This is mainly for the Subversion class to override, so that auth - information can be provided via the --username and --password options - instead of through the URL. For other subclasses like Git without - such an option, auth information must stay in the URL. - - Returns: (netloc, (username, password)). - """ - return netloc, (None, None) - - @classmethod - def get_url_rev_and_auth(cls, url: str) -> Tuple[str, Optional[str], AuthInfo]: - """ - Parse the repository URL to use, and return the URL, revision, - and auth info to use. - - Returns: (url, rev, (username, password)). - """ - scheme, netloc, path, query, frag = urllib.parse.urlsplit(url) - if "+" not in scheme: - raise ValueError( - "Sorry, {!r} is a malformed VCS url. " - "The format is +://, " - "e.g. svn+http://myrepo/svn/MyApp#egg=MyApp".format(url) - ) - # Remove the vcs prefix. - scheme = scheme.split("+", 1)[1] - netloc, user_pass = cls.get_netloc_and_auth(netloc, scheme) - rev = None - if "@" in path: - path, rev = path.rsplit("@", 1) - if not rev: - raise InstallationError( - "The URL {!r} has an empty revision (after @) " - "which is not supported. Include a revision after @ " - "or remove @ from the URL.".format(url) - ) - url = urllib.parse.urlunsplit((scheme, netloc, path, query, "")) - return url, rev, user_pass - - @staticmethod - def make_rev_args( - username: Optional[str], password: Optional[HiddenText] - ) -> CommandArgs: - """ - Return the RevOptions "extra arguments" to use in obtain(). - """ - return [] - - def get_url_rev_options(self, url: HiddenText) -> Tuple[HiddenText, RevOptions]: - """ - Return the URL and RevOptions object to use in obtain(), - as a tuple (url, rev_options). - """ - secret_url, rev, user_pass = self.get_url_rev_and_auth(url.secret) - username, secret_password = user_pass - password: Optional[HiddenText] = None - if secret_password is not None: - password = hide_value(secret_password) - extra_args = self.make_rev_args(username, password) - rev_options = self.make_rev_options(rev, extra_args=extra_args) - - return hide_url(secret_url), rev_options - - @staticmethod - def normalize_url(url: str) -> str: - """ - Normalize a URL for comparison by unquoting it and removing any - trailing slash. - """ - return urllib.parse.unquote(url).rstrip("/") - - @classmethod - def compare_urls(cls, url1: str, url2: str) -> bool: - """ - Compare two repo URLs for identity, ignoring incidental differences. - """ - return cls.normalize_url(url1) == cls.normalize_url(url2) - - def fetch_new(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - """ - Fetch a revision from a repository, in the case that this is the - first fetch from the repository. - - Args: - dest: the directory to fetch the repository to. - rev_options: a RevOptions object. - """ - raise NotImplementedError - - def switch(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - """ - Switch the repo at ``dest`` to point to ``URL``. - - Args: - rev_options: a RevOptions object. - """ - raise NotImplementedError - - def update(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None: - """ - Update an already-existing repo to the given ``rev_options``. - - Args: - rev_options: a RevOptions object. - """ - raise NotImplementedError - - @classmethod - def is_commit_id_equal(cls, dest: str, name: Optional[str]) -> bool: - """ - Return whether the id of the current commit equals the given name. - - Args: - dest: the repository directory. - name: a string name. - """ - raise NotImplementedError - - def obtain(self, dest: str, url: HiddenText) -> None: - """ - Install or update in editable mode the package represented by this - VersionControl object. - - :param dest: the repository directory in which to install or update. - :param url: the repository URL starting with a vcs prefix. - """ - url, rev_options = self.get_url_rev_options(url) - - if not os.path.exists(dest): - self.fetch_new(dest, url, rev_options) - return - - rev_display = rev_options.to_display() - if self.is_repository_directory(dest): - existing_url = self.get_remote_url(dest) - if self.compare_urls(existing_url, url.secret): - logger.debug( - "%s in %s exists, and has correct URL (%s)", - self.repo_name.title(), - display_path(dest), - url, - ) - if not self.is_commit_id_equal(dest, rev_options.rev): - logger.info( - "Updating %s %s%s", - display_path(dest), - self.repo_name, - rev_display, - ) - self.update(dest, url, rev_options) - else: - logger.info("Skipping because already up-to-date.") - return - - logger.warning( - "%s %s in %s exists with URL %s", - self.name, - self.repo_name, - display_path(dest), - existing_url, - ) - prompt = ("(s)witch, (i)gnore, (w)ipe, (b)ackup ", ("s", "i", "w", "b")) - else: - logger.warning( - "Directory %s already exists, and is not a %s %s.", - dest, - self.name, - self.repo_name, - ) - # https://github.com/python/mypy/issues/1174 - prompt = ("(i)gnore, (w)ipe, (b)ackup ", ("i", "w", "b")) # type: ignore - - logger.warning( - "The plan is to install the %s repository %s", - self.name, - url, - ) - response = ask_path_exists("What to do? {}".format(prompt[0]), prompt[1]) - - if response == "a": - sys.exit(-1) - - if response == "w": - logger.warning("Deleting %s", display_path(dest)) - rmtree(dest) - self.fetch_new(dest, url, rev_options) - return - - if response == "b": - dest_dir = backup_dir(dest) - logger.warning("Backing up %s to %s", display_path(dest), dest_dir) - shutil.move(dest, dest_dir) - self.fetch_new(dest, url, rev_options) - return - - # Do nothing if the response is "i". - if response == "s": - logger.info( - "Switching %s %s to %s%s", - self.repo_name, - display_path(dest), - url, - rev_display, - ) - self.switch(dest, url, rev_options) - - def unpack(self, location: str, url: HiddenText) -> None: - """ - Clean up current location and download the url repository - (and vcs infos) into location - - :param url: the repository URL starting with a vcs prefix. - """ - if os.path.exists(location): - rmtree(location) - self.obtain(location, url=url) - - @classmethod - def get_remote_url(cls, location: str) -> str: - """ - Return the url used at location - - Raises RemoteNotFoundError if the repository does not have a remote - url configured. - """ - raise NotImplementedError - - @classmethod - def get_revision(cls, location: str) -> str: - """ - Return the current commit id of the files at the given location. - """ - raise NotImplementedError - - @classmethod - def run_command( - cls, - cmd: Union[List[str], CommandArgs], - show_stdout: bool = True, - cwd: Optional[str] = None, - on_returncode: 'Literal["raise", "warn", "ignore"]' = "raise", - extra_ok_returncodes: Optional[Iterable[int]] = None, - command_desc: Optional[str] = None, - extra_environ: Optional[Mapping[str, Any]] = None, - spinner: Optional[SpinnerInterface] = None, - log_failed_cmd: bool = True, - stdout_only: bool = False, - ) -> str: - """ - Run a VCS subcommand - This is simply a wrapper around call_subprocess that adds the VCS - command name, and checks that the VCS is available - """ - cmd = make_command(cls.name, *cmd) - try: - return call_subprocess( - cmd, - show_stdout, - cwd, - on_returncode=on_returncode, - extra_ok_returncodes=extra_ok_returncodes, - command_desc=command_desc, - extra_environ=extra_environ, - unset_environ=cls.unset_environ, - spinner=spinner, - log_failed_cmd=log_failed_cmd, - stdout_only=stdout_only, - ) - except FileNotFoundError: - # errno.ENOENT = no such file or directory - # In other words, the VCS executable isn't available - raise BadCommand( - f"Cannot find command {cls.name!r} - do you have " - f"{cls.name!r} installed and in your PATH?" - ) - except PermissionError: - # errno.EACCES = Permission denied - # This error occurs, for instance, when the command is installed - # only for another user. So, the current user don't have - # permission to call the other user command. - raise BadCommand( - f"No permission to execute {cls.name!r} - install it " - f"locally, globally (ask admin), or check your PATH. " - f"See possible solutions at " - f"https://pip.pypa.io/en/latest/reference/pip_freeze/" - f"#fixing-permission-denied." - ) - - @classmethod - def is_repository_directory(cls, path: str) -> bool: - """ - Return whether a directory path is a repository directory. - """ - logger.debug("Checking in %s for %s (%s)...", path, cls.dirname, cls.name) - return os.path.exists(os.path.join(path, cls.dirname)) - - @classmethod - def get_repository_root(cls, location: str) -> Optional[str]: - """ - Return the "root" (top-level) directory controlled by the vcs, - or `None` if the directory is not in any. - - It is meant to be overridden to implement smarter detection - mechanisms for specific vcs. - - This can do more than is_repository_directory() alone. For - example, the Git override checks that Git is actually available. - """ - if cls.is_repository_directory(location): - return location - return None diff --git a/.venv/lib/python3.9/site-packages/pip/_internal/wheel_builder.py b/.venv/lib/python3.9/site-packages/pip/_internal/wheel_builder.py deleted file mode 100644 index a9123a0..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_internal/wheel_builder.py +++ /dev/null @@ -1,375 +0,0 @@ -"""Orchestrator for building wheels from InstallRequirements. -""" - -import logging -import os.path -import re -import shutil -from typing import Any, Callable, Iterable, List, Optional, Tuple - -from pip._vendor.packaging.utils import canonicalize_name, canonicalize_version -from pip._vendor.packaging.version import InvalidVersion, Version - -from pip._internal.cache import WheelCache -from pip._internal.exceptions import InvalidWheelFilename, UnsupportedWheel -from pip._internal.metadata import FilesystemWheel, get_wheel_distribution -from pip._internal.models.link import Link -from pip._internal.models.wheel import Wheel -from pip._internal.operations.build.wheel import build_wheel_pep517 -from pip._internal.operations.build.wheel_editable import build_wheel_editable -from pip._internal.operations.build.wheel_legacy import build_wheel_legacy -from pip._internal.req.req_install import InstallRequirement -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import ensure_dir, hash_file, is_wheel_installed -from pip._internal.utils.setuptools_build import make_setuptools_clean_args -from pip._internal.utils.subprocess import call_subprocess -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.utils.urls import path_to_url -from pip._internal.vcs import vcs - -logger = logging.getLogger(__name__) - -_egg_info_re = re.compile(r"([a-z0-9_.]+)-([a-z0-9_.!+-]+)", re.IGNORECASE) - -BinaryAllowedPredicate = Callable[[InstallRequirement], bool] -BuildResult = Tuple[List[InstallRequirement], List[InstallRequirement]] - - -def _contains_egg_info(s: str) -> bool: - """Determine whether the string looks like an egg_info. - - :param s: The string to parse. E.g. foo-2.1 - """ - return bool(_egg_info_re.search(s)) - - -def _should_build( - req: InstallRequirement, - need_wheel: bool, - check_binary_allowed: BinaryAllowedPredicate, -) -> bool: - """Return whether an InstallRequirement should be built into a wheel.""" - if req.constraint: - # never build requirements that are merely constraints - return False - if req.is_wheel: - if need_wheel: - logger.info( - "Skipping %s, due to already being wheel.", - req.name, - ) - return False - - if need_wheel: - # i.e. pip wheel, not pip install - return True - - # From this point, this concerns the pip install command only - # (need_wheel=False). - - if not req.source_dir: - return False - - if req.editable: - # we only build PEP 660 editable requirements - return req.supports_pyproject_editable() - - if req.use_pep517: - return True - - if not check_binary_allowed(req): - logger.info( - "Skipping wheel build for %s, due to binaries being disabled for it.", - req.name, - ) - return False - - if not is_wheel_installed(): - # we don't build legacy requirements if wheel is not installed - logger.info( - "Using legacy 'setup.py install' for %s, " - "since package 'wheel' is not installed.", - req.name, - ) - return False - - return True - - -def should_build_for_wheel_command( - req: InstallRequirement, -) -> bool: - return _should_build(req, need_wheel=True, check_binary_allowed=_always_true) - - -def should_build_for_install_command( - req: InstallRequirement, - check_binary_allowed: BinaryAllowedPredicate, -) -> bool: - return _should_build( - req, need_wheel=False, check_binary_allowed=check_binary_allowed - ) - - -def _should_cache( - req: InstallRequirement, -) -> Optional[bool]: - """ - Return whether a built InstallRequirement can be stored in the persistent - wheel cache, assuming the wheel cache is available, and _should_build() - has determined a wheel needs to be built. - """ - if req.editable or not req.source_dir: - # never cache editable requirements - return False - - if req.link and req.link.is_vcs: - # VCS checkout. Do not cache - # unless it points to an immutable commit hash. - assert not req.editable - assert req.source_dir - vcs_backend = vcs.get_backend_for_scheme(req.link.scheme) - assert vcs_backend - if vcs_backend.is_immutable_rev_checkout(req.link.url, req.source_dir): - return True - return False - - assert req.link - base, ext = req.link.splitext() - if _contains_egg_info(base): - return True - - # Otherwise, do not cache. - return False - - -def _get_cache_dir( - req: InstallRequirement, - wheel_cache: WheelCache, -) -> str: - """Return the persistent or temporary cache directory where the built - wheel need to be stored. - """ - cache_available = bool(wheel_cache.cache_dir) - assert req.link - if cache_available and _should_cache(req): - cache_dir = wheel_cache.get_path_for_link(req.link) - else: - cache_dir = wheel_cache.get_ephem_path_for_link(req.link) - return cache_dir - - -def _always_true(_: Any) -> bool: - return True - - -def _verify_one(req: InstallRequirement, wheel_path: str) -> None: - canonical_name = canonicalize_name(req.name or "") - w = Wheel(os.path.basename(wheel_path)) - if canonicalize_name(w.name) != canonical_name: - raise InvalidWheelFilename( - "Wheel has unexpected file name: expected {!r}, " - "got {!r}".format(canonical_name, w.name), - ) - dist = get_wheel_distribution(FilesystemWheel(wheel_path), canonical_name) - dist_verstr = str(dist.version) - if canonicalize_version(dist_verstr) != canonicalize_version(w.version): - raise InvalidWheelFilename( - "Wheel has unexpected file name: expected {!r}, " - "got {!r}".format(dist_verstr, w.version), - ) - metadata_version_value = dist.metadata_version - if metadata_version_value is None: - raise UnsupportedWheel("Missing Metadata-Version") - try: - metadata_version = Version(metadata_version_value) - except InvalidVersion: - msg = f"Invalid Metadata-Version: {metadata_version_value}" - raise UnsupportedWheel(msg) - if metadata_version >= Version("1.2") and not isinstance(dist.version, Version): - raise UnsupportedWheel( - "Metadata 1.2 mandates PEP 440 version, " - "but {!r} is not".format(dist_verstr) - ) - - -def _build_one( - req: InstallRequirement, - output_dir: str, - verify: bool, - build_options: List[str], - global_options: List[str], - editable: bool, -) -> Optional[str]: - """Build one wheel. - - :return: The filename of the built wheel, or None if the build failed. - """ - artifact = "editable" if editable else "wheel" - try: - ensure_dir(output_dir) - except OSError as e: - logger.warning( - "Building %s for %s failed: %s", - artifact, - req.name, - e, - ) - return None - - # Install build deps into temporary directory (PEP 518) - with req.build_env: - wheel_path = _build_one_inside_env( - req, output_dir, build_options, global_options, editable - ) - if wheel_path and verify: - try: - _verify_one(req, wheel_path) - except (InvalidWheelFilename, UnsupportedWheel) as e: - logger.warning("Built %s for %s is invalid: %s", artifact, req.name, e) - return None - return wheel_path - - -def _build_one_inside_env( - req: InstallRequirement, - output_dir: str, - build_options: List[str], - global_options: List[str], - editable: bool, -) -> Optional[str]: - with TempDirectory(kind="wheel") as temp_dir: - assert req.name - if req.use_pep517: - assert req.metadata_directory - assert req.pep517_backend - if global_options: - logger.warning( - "Ignoring --global-option when building %s using PEP 517", req.name - ) - if build_options: - logger.warning( - "Ignoring --build-option when building %s using PEP 517", req.name - ) - if editable: - wheel_path = build_wheel_editable( - name=req.name, - backend=req.pep517_backend, - metadata_directory=req.metadata_directory, - tempd=temp_dir.path, - ) - else: - wheel_path = build_wheel_pep517( - name=req.name, - backend=req.pep517_backend, - metadata_directory=req.metadata_directory, - tempd=temp_dir.path, - ) - else: - wheel_path = build_wheel_legacy( - name=req.name, - setup_py_path=req.setup_py_path, - source_dir=req.unpacked_source_directory, - global_options=global_options, - build_options=build_options, - tempd=temp_dir.path, - ) - - if wheel_path is not None: - wheel_name = os.path.basename(wheel_path) - dest_path = os.path.join(output_dir, wheel_name) - try: - wheel_hash, length = hash_file(wheel_path) - shutil.move(wheel_path, dest_path) - logger.info( - "Created wheel for %s: filename=%s size=%d sha256=%s", - req.name, - wheel_name, - length, - wheel_hash.hexdigest(), - ) - logger.info("Stored in directory: %s", output_dir) - return dest_path - except Exception as e: - logger.warning( - "Building wheel for %s failed: %s", - req.name, - e, - ) - # Ignore return, we can't do anything else useful. - if not req.use_pep517: - _clean_one_legacy(req, global_options) - return None - - -def _clean_one_legacy(req: InstallRequirement, global_options: List[str]) -> bool: - clean_args = make_setuptools_clean_args( - req.setup_py_path, - global_options=global_options, - ) - - logger.info("Running setup.py clean for %s", req.name) - try: - call_subprocess(clean_args, cwd=req.source_dir) - return True - except Exception: - logger.error("Failed cleaning build dir for %s", req.name) - return False - - -def build( - requirements: Iterable[InstallRequirement], - wheel_cache: WheelCache, - verify: bool, - build_options: List[str], - global_options: List[str], -) -> BuildResult: - """Build wheels. - - :return: The list of InstallRequirement that succeeded to build and - the list of InstallRequirement that failed to build. - """ - if not requirements: - return [], [] - - # Build the wheels. - logger.info( - "Building wheels for collected packages: %s", - ", ".join(req.name for req in requirements), # type: ignore - ) - - with indent_log(): - build_successes, build_failures = [], [] - for req in requirements: - assert req.name - cache_dir = _get_cache_dir(req, wheel_cache) - wheel_file = _build_one( - req, - cache_dir, - verify, - build_options, - global_options, - req.editable and req.permit_editable_wheels, - ) - if wheel_file: - # Update the link for this. - req.link = Link(path_to_url(wheel_file)) - req.local_file_path = req.link.file_path - assert req.link.is_wheel - build_successes.append(req) - else: - build_failures.append(req) - - # notify success/failure - if build_successes: - logger.info( - "Successfully built %s", - " ".join([req.name for req in build_successes]), # type: ignore - ) - if build_failures: - logger.info( - "Failed to build %s", - " ".join([req.name for req in build_failures]), # type: ignore - ) - # Return a list of requirements that failed to build - return build_successes, build_failures diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/__init__.py deleted file mode 100644 index 3843cb0..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/__init__.py +++ /dev/null @@ -1,111 +0,0 @@ -""" -pip._vendor is for vendoring dependencies of pip to prevent needing pip to -depend on something external. - -Files inside of pip._vendor should be considered immutable and should only be -updated to versions from upstream. -""" -from __future__ import absolute_import - -import glob -import os.path -import sys - -# Downstream redistributors which have debundled our dependencies should also -# patch this value to be true. This will trigger the additional patching -# to cause things like "six" to be available as pip. -DEBUNDLED = False - -# By default, look in this directory for a bunch of .whl files which we will -# add to the beginning of sys.path before attempting to import anything. This -# is done to support downstream re-distributors like Debian and Fedora who -# wish to create their own Wheels for our dependencies to aid in debundling. -WHEEL_DIR = os.path.abspath(os.path.dirname(__file__)) - - -# Define a small helper function to alias our vendored modules to the real ones -# if the vendored ones do not exist. This idea of this was taken from -# https://github.com/kennethreitz/requests/pull/2567. -def vendored(modulename): - vendored_name = "{0}.{1}".format(__name__, modulename) - - try: - __import__(modulename, globals(), locals(), level=0) - except ImportError: - # We can just silently allow import failures to pass here. If we - # got to this point it means that ``import pip._vendor.whatever`` - # failed and so did ``import whatever``. Since we're importing this - # upfront in an attempt to alias imports, not erroring here will - # just mean we get a regular import error whenever pip *actually* - # tries to import one of these modules to use it, which actually - # gives us a better error message than we would have otherwise - # gotten. - pass - else: - sys.modules[vendored_name] = sys.modules[modulename] - base, head = vendored_name.rsplit(".", 1) - setattr(sys.modules[base], head, sys.modules[modulename]) - - -# If we're operating in a debundled setup, then we want to go ahead and trigger -# the aliasing of our vendored libraries as well as looking for wheels to add -# to our sys.path. This will cause all of this code to be a no-op typically -# however downstream redistributors can enable it in a consistent way across -# all platforms. -if DEBUNDLED: - # Actually look inside of WHEEL_DIR to find .whl files and add them to the - # front of our sys.path. - sys.path[:] = glob.glob(os.path.join(WHEEL_DIR, "*.whl")) + sys.path - - # Actually alias all of our vendored dependencies. - vendored("cachecontrol") - vendored("certifi") - vendored("colorama") - vendored("distlib") - vendored("distro") - vendored("html5lib") - vendored("six") - vendored("six.moves") - vendored("six.moves.urllib") - vendored("six.moves.urllib.parse") - vendored("packaging") - vendored("packaging.version") - vendored("packaging.specifiers") - vendored("pep517") - vendored("pkg_resources") - vendored("platformdirs") - vendored("progress") - vendored("requests") - vendored("requests.exceptions") - vendored("requests.packages") - vendored("requests.packages.urllib3") - vendored("requests.packages.urllib3._collections") - vendored("requests.packages.urllib3.connection") - vendored("requests.packages.urllib3.connectionpool") - vendored("requests.packages.urllib3.contrib") - vendored("requests.packages.urllib3.contrib.ntlmpool") - vendored("requests.packages.urllib3.contrib.pyopenssl") - vendored("requests.packages.urllib3.exceptions") - vendored("requests.packages.urllib3.fields") - vendored("requests.packages.urllib3.filepost") - vendored("requests.packages.urllib3.packages") - vendored("requests.packages.urllib3.packages.ordered_dict") - vendored("requests.packages.urllib3.packages.six") - vendored("requests.packages.urllib3.packages.ssl_match_hostname") - vendored("requests.packages.urllib3.packages.ssl_match_hostname." - "_implementation") - vendored("requests.packages.urllib3.poolmanager") - vendored("requests.packages.urllib3.request") - vendored("requests.packages.urllib3.response") - vendored("requests.packages.urllib3.util") - vendored("requests.packages.urllib3.util.connection") - vendored("requests.packages.urllib3.util.request") - vendored("requests.packages.urllib3.util.response") - vendored("requests.packages.urllib3.util.retry") - vendored("requests.packages.urllib3.util.ssl_") - vendored("requests.packages.urllib3.util.timeout") - vendored("requests.packages.urllib3.util.url") - vendored("resolvelib") - vendored("tenacity") - vendored("tomli") - vendored("urllib3") diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 354ffcf4cd1bc129a7704096485b5a4d3f76507e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2915 zcmbuB&2QX96u`$HYwvD1ZQ7M}}0w>LYAnn_8LOw=LawsMB{Uy8T8)ukT^E?~}%QbGKEsZE|eS z+Ozr{+`!%ss6R*ipKWdvXV!{df04Cf6`8lEydZMa}~#_+7+Im7dYi-s2r-!pvQ@S@=*!w(Dt!^?(O46hnq zGrVqi!|HaDr_A93 zn{a&rmypn4YZpmt3+>t4R(W39TSz)PNV+=++t~TZwa`nHpK_6GOdeQBpWmYV@jWEH zb$<&j*0i3WEo--lUEJ8Szq7aPZAZ2$340N3Is39Z4)_9rFT59}|K{Fy_~!mL*QWr^moXVrFBIcHosVj`5E zF+2t@D36PRrc(KW$XH6=byd5b(~8wx9RdVb?@{g`7DTxt660SHUx3y9xz-zjk9&hu zj9$mIb!)z_^2mRN$wVL@+w{< zq6ab5GjZ61P35VKqOh2#=KfMHYWK`TgRG8iTj#A#%d_XLd5fQgv9fVHd_AJ7lf=o0 zKoCjJsPYrSWjah%GhvkRIE$5!Qz2m?%F`XrRC6RVx~xYWk#3ePXu^zb5K+!gyWyBq zkSNdob0jQc4yI|<+kk*CPfokA=PEACg};YHK@wOGOen7)#q#}!YOZ*-7I7ljn1iWQ zr=YRae#R*XHNk*uFbO?Qz8`~$MR|I^7n03{6jFzNd2%|qZ_#q`UqfaaOXZD2r@{y< zMM+X?y>_@9m^iP+%3JRuRWL@&%QGb<2NT~uQY6eJg}?@NcaD}VCJa)T5VV}JmjiYT z4p#|oqga$zW=T*|Fd=8jOx@EvT+hBt$T%jD2_u{)a+cGk59kP9eh0;1kO(qKGKxm9 zUj5CNtN-b-Q0E^?GAIYJj+yfM3^m}hEY9I`=d&WgD41nL_#z63dQx6G{B2{I(y}{y zK0FY`GrkF}D%@Yz%_CG!*ES>Ij6%sL<<%q9X-~~^eWgmK8DZm@aaYMf8dGhZYbX>J z$aqaj@;FK5L^UMKXsY}=(JggPC_joYOX?ak9Lq6>dc)!05h+&}8s#$q*-ws?%>?i0 z@z%=f=ij_odA_=$+-k;$!drJBnN@`aD%TKx13+u*<(I3g&!d%RUsd^Ax$7*=tJ-p) sIiuA!pVXDP0$p$;@W;FisFEqerm5M;36OT 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 N9%Eyo9sZG)o%XF`HQvqv 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/six.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/six.cpython-39.pyc deleted file mode 100644 index fd1be06ba6263d8e5d37442a8db78d3004b3d868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27519 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__init__.py deleted file mode 100644 index a1bbbbe..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -"""CacheControl import Interface. - -Make it easy to import from cachecontrol without long namespaces. -""" -__author__ = "Eric Larson" -__email__ = "eric@ionrock.org" -__version__ = "0.12.6" - -from .wrapper import CacheControl -from .adapter import CacheControlAdapter -from .controller import CacheController diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 8df9bf35cd370588c029b6681ab164f7ad3dc736..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmYjNOO6vU5OpV=bkdU%NL-+|Szz;#5J(6O8nHlPX2Y&GmeZ~zp0qzII|<26I0Dz; z7`>Q$-B%aW1({Jp&68DoEXGPDtqE4uMLIn8ROvpUnGdZfqo zSm%1u=5|s~GDdjXPHj;a_qb?hc3#g3&%U$e{JgqW%@(e`OX%Cm*x)f$UtI!Rs|I*k z-l!c^CRL!~sY?Fo%No6{nm)IA%sra4_4`z{-fb$UEW|(+A}`MuU(htwH-*u=^K&3_ zWxPY*?6}9xdHRaKe#77Wr7_tu>lQ;r#9s{gXRQKhqwup~xCOjjmR%vG_KlQXDW%$z z93(uK609;U!3!x5fRUOLDUPT@0K|TkU7;Q-H7gNLB+0$yA4D_>UebDYY6DRO69fr! m+M^h*R7h!@NmBA~>SiCU*ZUSe^=pc~nmo@lI-^Cl$o>OJKC9ON diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-39.pyc deleted file mode 100644 index 62e1ba096119208176d838356aa83457cf8dfbee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1581 zcmZ`(%Z}Vc6s?C}?RNJJ0il3UXda97g7$(H5sC;CL>5sCF_Voqmg6eA-SLZZ^(52k ztR~xh0K1+gzrknJmKDFi2JS6;U=k^oTt0QHTt4^QbDd2lA%W|+Kjxbwmykbka`WOa z`3~;x1q^}+T9O2xtfUo77)8uWUO9WjziwrxJHYRsWcga2 zG__Vu`9Nf?mI}h7hefXK5=^|ZS*>h%`arF=m8|tond+p<@x<$k0>Dg9;O;($L6Za3 zY{Rc8C7KXmUH{_y>iAI;=cE16Y~ zvRafx z%dU$T=dwPJ%i?L=Ug&jGf4%r7?g}lxYP0-Vwvt`k7HyouF43qsN2&5&syNLnv1l*M z1c-0jbRZpJ@*WI?Ml_)62+$iUF$mzgRp~weO*FlP3V{c}5w9K4h#fd+MfddJ2o7q2 zLo9X%Og8SGrrsW_>Mqab+>9-?RO)QinGg~!va;BLTBEhxs-n|HzVp{wxA)?B7a-^W z&3%OhQw|PD%=o9EO3~EDt(tAEO*mwW!XNkF_&+jd#?N}k7^j05Z3+5eil>cN5>>Y+ z-hx1P35k-1#SHM)BEhvTSspsF>ZmJ0Dw4R#d}*w)z-ISR1Mj z0hwuEMJ2nosXJ->;a_05%AOCaBE1f}ttx5_26HfbbsJA`@ZGl+a;mJTzl7zX#vb)} z#65nCPie^1U3@V}Q{0uN*!IUNz}Oi2YccefwO}&45m{KWgX0#1*Q{rgJMY|P-?5%f zzIgYhzKg-v!|w<3>uZl5>GeWm_G(_!ud_;~>5bg+pQEhTgKw)wY)g3`-O!=b0gD(| Q984bZzzd?l3qJ_xzfwn#$p8QV diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-39.pyc deleted file mode 100644 index 560762958829b7d538133ca3f7e8e32901180006..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3086 zcmai0Pj4f)6(>1=G#bgW*Xy|6&8Ah0^pA>0N>QL_&~3V1XE#NV3PD#vS|Pw-EK;kH zM>7+WvSVX>i5EzF*rJDCdeZ{!VZTO^Pr++W`3UWy?t7e(?KTEVVV+1n^6|&VA0J=5 zu@Mp|fBi>qzI~gJFR^jGxX^e2pZXXCC!D5aT>aBAwQV+L@Xu0b;f`HOxWnDlTliz& z*1fc`2*!b}`)P9#jzdb`CA`6dXM_jBJ$J?}PM?ro^D9_^413hHemxp}@GBk{TF9>` zbVA?eemt3p{XEk$Pg5bGtNBhc(Y6~JxA)^TJ%}fVkCRk|3oP%0p*g& z*R^v_GFHNf$SpmPUg;M<<=FO1r+A6*8X)r3U>YksS@v zf^H7rL%*ocK$NTq;P}XyThci#-6JBWr(4j&R!&J@ z&@=BNlI^)fyL0d4J|+0$(EEF!#haw`3A%bdzZ}(U%6qr@#~ih+luyIe}q>TrJ&ZX%bERz&<)qUrc5%E7X7dt9y_Sos%00Ao7sab6 zz6;`Y_!LejUPwdW&lc^#ze~5A9k$0#_x5k#5(0TV!ArR=7)OvyNG`Pn@v?MlB6+2w zzOZESfJ|Q?5#$eRLNOo|E7{!T^pMFJ^m;2K4|~Co3?*AqIppljfiVpX>d!G2u~qN_ zXjl4YEc@8b_F(pBb~aE9XH$|r)FJ3vy1m*!&Aie$=dfPX0!;_7u=(a6iH)Q_Z#)am z8hUGWt8AbJ7`3Ul^=+i-YNy5&*nN=sD@WwdRQhEw-?jgU`x~I!gZ*IiyR*7mHj(J1 zQwGtiCC299^zWBkdWb}@yso)-aME4Ghe`JIitOE7c9#mfkfruK`{AX9(JWEj<0MVH zcte&23`kQPj7MY1D}`RltTI{TT4Wl6YN2GA`?c@BIirU zULw3i#kW9=UxVbMUnd{^`h`*bI`L2vFS}*CO|z<$%BE(m oDP+9IRmNMf8Btt=clqd;;C{8|w=onbOk@BfP@&D*6n@Ts08EJ=;{X5v diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-39.pyc deleted file mode 100644 index bdef57e8c0506351ec1dfe072724234cd8b22092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1833 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 F{C^dxFOdKM diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-39.pyc deleted file mode 100644 index ee29405177e053560e98c1c267a167c3b4450cdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2182 zcmZ`)&2Aev5GHq5(pr{Xr@u*BBuq{bkXl81Dv%cWX;Sp!9$X-(E(EottaVnqDoI(k zpq}iP=*>R*HToEPEqcf+^we*5Wm`=Z3LJ7d!{PT0XDGF`)n;ga{MkMHdxNpR=wr1- z_;`x$1cYXqXKc*-oU|NbZCOpupjDZpLH8=Va2+#-@(-2F8~DKyT{K8Slq>OK)RkL$`6_PWjOb zm1P5!ym^&o=CxImiLvU4Gu9Sp`(tRutX>w%7Smh{C597G3=U1=#cY%&BQZ;1<&6>M z$k-DJj_NW7k;F?7~)isI+0|BGq8t8@@0-qGW7;W zB};f%_ap2vm9wPCy~({3#jy5Md*5wW+Gp^fytnB9J{({hF|oyQiUR-#J_KkOo1GBO z3PH_gx&4<>1xPt3rVjhZW;`&~)d-Z(#dHABl?#^?aQ;ZjuE@Zb{7tMGrpLm8x2w?P zg{NaxlB61#!RJJ{k-xY*+@cjjvWOncc*R|IB)$Vr+VY)Qx89 z&=}uC(0wmALoc1N$O!3=bBP;BjB~x+Bak@CR!>)evEY%RaLp^afvM!6ari?^VT zP8A~CA zJ~$Da(eGE52Vb#yyRrzcwcoF5HLobXLIx4b3VXTz?5ciVT3gt%Sr_OfuUOWs==N)B z+X$|c!-=e|9zfwfgkU`2+d+pngMhbbjOGv5b6ws3Ke`mCimt$fsMt^Go-pI*!3Dd( zd#b4}AorOiYurW)gKa>RF#>s{vZ=9j!|!5m)}X(JYMDb#zSElDU5m5gxA*=OdJHcF z@Ej#dNrZWD9xeic2*}X|vyU(~E^s#sq*e{KSp~j~=*g@hH)a+kQ9fK>m#e|DpW(>M zW%7k;?8`_iuijy4>Gk-IC|3Vhyn|oN<6wS!9ZkaVevVJ!=06;{=5GQk7J&}xai8?> z@_w?)yBqGkr8;yZw%Xlg1lrQ6p^?{duy>%gcS#UU`#Fg!?XGjr-pATYbhiz`z-uRr zkZKjXd+XTUoYBRz*`{ZNY8JKJmU3L^X-4yol)p_?w$!ww)I}nt-NG667Ks~F6x#~M z3bY%1^t@0?R`_BbZN`nb6W@wA+p#4bUhXnTi~99$)_+8mVx6}#eo`Yu1uvu53I7EL Cr5Z&5 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-39.pyc deleted file mode 100644 index 828664daa34abccda6c4d0bff8e7305328754db2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4714 zcmb7ITaP1074GV8+dUr7>|`^!U#KJu;L(oFUP8#QiZ*O68_3R*%&Y=_Y4y0u$ z=ai$RrK*G9FaJ=#_m2yX^LMJu{(Mw!AnDJM2}iKRX%%1AVyL@`+w)pp&u{s?Qme$M z&r8a^a;w~{v?{3ktw1~`N}~KJYb}V12tIXM)ps4SAgZ4_qAC|pyjBhMMNvb&CTplK zp}r)RQD3(8Wz;W-71UR3{eocIPW|FT$mDF*y}a7VR4+0jGBRK2M@mautWArd8P?rA zpjH$2Fo<#?6B7-eS&J_5HNn?*`PxtT+O5sC+na0K{N39-ZI{*`|ENsqCX!x7He&s% zaUQT!=a`My$a%`ycD`U+byt&fPBth)!% zJt)tVS~~PV5nyEbPiiNVS4?ZS~F+?b$|}`%&KwB>i<{(jgGGT)~73Sb4$|KEA$% zo6{l}hph$x|uCbQzOzz#@s;u}O}&j*jLe$^b@wuzl;!-S^*u`VXQb&EvG4 z420wwH>lxfd&(H~c(%tIdBPd6Nv~idFUAavAj)>P^2%6+ppB=oWL_Dc3XEw*R!^Z7 zoloGS2p6pjMTeLirnNf8#JC}}x9_|LN>RU`9Iayky^PFZRo4g4RawAR+~MQ%O0Z+M z>g7BL!!+v2FwCoA*vrHqp>iz@KORI$(PIU)va9E@?##YK?TVO9J&ugbqRYqvH&_f7 zY}=#hjC65EXP`1yc$Uh1sI8PQ-bv+K(a}w!_Tg;{09&5N7;sa7g(xUW=~{#BHNVUS z;1s7c+Rp6^z-Y1n(wxbO@JVKC@()pnonz1|OzrG5wPkEcxX(Bz?ASA|v6TB6Gd`JJ zlzxhy&mB?z%suu^Y2=@<5oTX^LtG`_99>su;H^aDsRl+k}YiU0xkCSd)K)%3c8!lC8jqH-nK!A>$54j{~GC8$LHD<2)d~A}O8AN=n=#EMY=g z=SlKY?$&U#aGY-rOoq5MM&ty~Ye6oob=Gu)Pn~Kn-s>8^3lBuD6?emGc;*1PZ+iXY zoT4pFZJ(XMXT#OG6O2i8t6n*WW%W(WQpB7En2C^Q7C&P-Lg>3lIzR?Q`+*nuidx%9 zb3f9@4J3UY)m^+He#;QD6`@;c9J&G9&{UAu-jB4oor$;;Bc}g7n8E`4J?j|}%fMTw z86Tf(5{*TPLNIxBiFcq^zKa-{XDO$ZHYQ8iRR($zs!gM0-cec4cK#p1)wRZz#uYmW zp%iS{9wZcnM7VL0&eCW%kwt_!4maKbDR;6%1QOleeJXM!VmC0DAZ*%Kl8*Uy#L@VA+R%rP2mU@y{vy1!e!D>{pci z2HD&_BUYyeh`ncjLxH@M^;YgaZaKw-0?dH&I=l}&lko0)YMt6CbisXe;nOzlI3MGf z{(&gbS8Y+7@g9&5bA?ad4ndD+%BYpB@3a1H;ONoFN4VptPwb4!g9@I5B@>A9s5J7P zc23;m^2no=M*b;#+BvRJpII1HMCCb01Sc*=1fyV7zR%Pjtz_OPc*;3m5X@8_RLvst z+GydFow_jvPzzgUq-I&pI?CZvLf}TcV(*E9rksbQp7@gwm{VV}UNA3%Kg>YqFIb`> zREE1pA>2STNbu~mol+}eEQS9997Viuy(|cZUd>)FIz$$yd7zEz*tTHjz1wex@7&(W z%X>X)saFf?_bC8BbH6PsB85~|#N5N_s6t;fDGqa4E*3l zMXh!G|FBXR@EWT5qU=R+(ioUH(e{yE#7x$%6zLTX`@2-KaTL9{^K!O(53fcWui6mB sGP+%V=A>385+@I?!>EXp-yn6_5FucJyXvmEzE>>;{>sZMkF7lRZ&QO%0{{R3 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-39.pyc deleted file mode 100644 index 3ff6b00d974e9e5987ba339e84bbe78fc0be993f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4233 zcmbtX%aa>N8Sm~H&5R!V^y1hKB*F;>1zTF%OL)}Am0%MR9vhQ2hNy52v+CJh?ds*8 z(Z&*^Dyr6SOAZtVsPaKumCN3!g5ty}e*}lVa`Kr2RXN1`z8*=tQfzZzRQ*j)KfeAR zzwhf$!Q5Pq;ra8YrMZSyR0pB* z;|DFjquRAFiYn!Uuys&r)VC^~UcB3GT`zyP0=2>`q-?MgMwL#zQ}MA%wpFDT)OK-n zD^~4B1>EXEquvk8ot|FuA(o%YVUG}!86m_;@lkbULC#^`lk;)`@2p&uOL*rDV$SH?=GZQ3qek!@KUs9B8J#sc z&{^#9Lq4z*K)1`(YxsuqrTB;stk@c2{D>#Q&qyn=VkZ@h_6*%4b_@18#O$7jmW^|u zdGlRBZ%#Uo+&Uj*>MY4fcb!Q$u@9K~G_j?7o(<=vcf4XR`{T!Zd@bQghiY8UpetlS$3P9sJz~2*MdfLqdZw(a<#qH zmObt6hJg%Kq@5@Z;%=l}1W;6Ox3r_eAfh)AhXkO$1n$~C2vqMge)-=N+Lt5Js#ber z?G9{F=tiNxRd1OzP+C!>wR*{H0w<|Oy{+BvQ{cS&p0@n$jI{Oh8L5|Pd65Wd zt-eZxY?Ypyi8_rs){-n8ZS91yw)figmLi>X#;94!YC8%W+uBv({VsBXI!pV%LMs-> zj`7F(+A@d(Jr8~Ap`465>9j7SZ~q`@bi*05tE=EhtfMs$#&g2sg+d`GxZoc5o;a4x zZS+9@V?VJMFvjQ63WlOD`irwJs*$zE4_VbiGja4MbP^E(rJJn3l87O$2q}&P@M8_c zFIelW&0^lW#(^CqeQRKSz*=IJQN&66cj7#gnSD#$POL<{zy?SG1H>A*IK;)oiZHQa z_0Ppt!hm=am4_lh>>c8SO@KGf^!|{Z@Bt%9Rt+uXHq_T3pEBqkfnoJA=@JnEGz?JQ zc>Dy9BAxmt;^dn41Uj|_U4zUGafg^JEB00!9YYBc%6s#$Sm~B%I zA;BjO`6oUkOal{&I#LLd&Wf});iU1%kW=!yS2QlNk!~;pcUVUvvEhnW$xWN={;P?Q zHd2)(Ge}jL*iOHt1DCl-kVszOh}#=(%IypFTYOvOD$WvTymp=S=i|)KNr;CFI9!CY z+}=M@XQeYkPv+^q9k?kp;_Nok8)f-NBIWZ5|ClbN`Tno(BDZh%itVl{Qm7Y4;ZlSb zYP-dtC5y;)2(4}{E(S#ecB9x;4P39+bH&kfx#hD$C+jq`y&#Ad5ZwvIljz2F)x<+A~Hrn2xNnTdsg&cJe3P(c}$^@B8t-PO*E5v zDG=2Q_%gB_TPI2wTh2k&K902Yc09MAnJ?802_1lGQsjMTK5UOaU~J{OTVu5t)J-$rc8L zNuR30)h}o;DNOzj7X1sPK`bC6v>4iHJ!-VMK*=r^d(O7#txf9`yNF^+sMdLuCgc7( zi@j0dlFlN2huKN_G8)6G+-L`ii^*;j8QASnJ%-ur%+BmON`+y5Y)4ABRQsKT&i`9x z81x)-MOCCaM`YUaiW281Xa;Y#aGvzP{uI1idrF0oMhacy&la+bS=2(8PS-+6NK}s% z)0(J-1a-PDO5uJR`<^N8@o8~Qt|=8zETEJz*wc0&*-GcAa%&>qqR8Ai29i31TLhO7 zRrBhbL`*I*)*-Yis;6g6q$l9K_6W1l1rP>sUZ8ll&QZ*NzKH1eMDFuK=BZ%4HU-xI z5$5VA&y(T$Ur2`Mg!c8Rv!+6us+srvV{BPdn))YR-O|$l6;^ Y?QnyxhiDmuYEJw_ffvMz<=LM7U&;xoK>z>% diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-39.pyc deleted file mode 100644 index b932f964ff111bd9d644646e8bff927ef2403eb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmYjPy^a$x5VrR}mjsTZK|BD`7Q_V=2q93YDAI6Mnw7I2Zui(9%XV^H`2B zQ|fup1Z}tuk*6XS$rrkgMEIWM*b%S_ z_0A?pyuZY)-yv8k$d;&khI}SnVCjL{L_RX~kl4gh8`#iBHnyptUz0;-$@f46Hv17! zGVt(@qo`<=$8K7BK?N9oq1}lFRr99agL0D!wyM^qF5PK))Z2h6%7$z09t>acO#?*> zrs{>>r&KAihMlwka+N;b#s0k%ke7Z zyLajB*-z{o{Tt1yz6G|ab#=ur0Sq&s4eQ{8DX@nf3N@d)LaM&R+t^|U-HtW&hRJJG z+dW%6XSz1ubalS+md9$2{xA(S^=uf9&l!3e!F@b)*~_*U+Xi0wKS!S-V9l7&(faov DKZ>j$ diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/_cmd.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/_cmd.py deleted file mode 100644 index f1e0ad9..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/_cmd.py +++ /dev/null @@ -1,57 +0,0 @@ -import logging - -from pip._vendor import requests - -from pip._vendor.cachecontrol.adapter import CacheControlAdapter -from pip._vendor.cachecontrol.cache import DictCache -from pip._vendor.cachecontrol.controller import logger - -from argparse import ArgumentParser - - -def setup_logging(): - logger.setLevel(logging.DEBUG) - handler = logging.StreamHandler() - logger.addHandler(handler) - - -def get_session(): - adapter = CacheControlAdapter( - DictCache(), cache_etags=True, serializer=None, heuristic=None - ) - sess = requests.Session() - sess.mount("http://", adapter) - sess.mount("https://", adapter) - - sess.cache_controller = adapter.controller - return sess - - -def get_args(): - parser = ArgumentParser() - parser.add_argument("url", help="The URL to try and cache") - return parser.parse_args() - - -def main(args=None): - args = get_args() - sess = get_session() - - # Make a request to get a response - resp = sess.get(args.url) - - # Turn on logging - setup_logging() - - # try setting the cache - sess.cache_controller.cache_response(resp.request, resp.raw) - - # Now try to get it - if sess.cache_controller.cached_request(resp.request): - print("Cached!") - else: - print("Not cached :(") - - -if __name__ == "__main__": - main() diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/adapter.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/adapter.py deleted file mode 100644 index 815650e..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/adapter.py +++ /dev/null @@ -1,133 +0,0 @@ -import types -import functools -import zlib - -from pip._vendor.requests.adapters import HTTPAdapter - -from .controller import CacheController -from .cache import DictCache -from .filewrapper import CallbackFileWrapper - - -class CacheControlAdapter(HTTPAdapter): - invalidating_methods = {"PUT", "DELETE"} - - def __init__( - self, - cache=None, - cache_etags=True, - controller_class=None, - serializer=None, - heuristic=None, - cacheable_methods=None, - *args, - **kw - ): - super(CacheControlAdapter, self).__init__(*args, **kw) - self.cache = DictCache() if cache is None else cache - self.heuristic = heuristic - self.cacheable_methods = cacheable_methods or ("GET",) - - controller_factory = controller_class or CacheController - self.controller = controller_factory( - self.cache, cache_etags=cache_etags, serializer=serializer - ) - - def send(self, request, cacheable_methods=None, **kw): - """ - Send a request. Use the request information to see if it - exists in the cache and cache the response if we need to and can. - """ - cacheable = cacheable_methods or self.cacheable_methods - if request.method in cacheable: - try: - cached_response = self.controller.cached_request(request) - except zlib.error: - cached_response = None - if cached_response: - return self.build_response(request, cached_response, from_cache=True) - - # check for etags and add headers if appropriate - request.headers.update(self.controller.conditional_headers(request)) - - resp = super(CacheControlAdapter, self).send(request, **kw) - - return resp - - def build_response( - self, request, response, from_cache=False, cacheable_methods=None - ): - """ - Build a response by making a request or using the cache. - - This will end up calling send and returning a potentially - cached response - """ - cacheable = cacheable_methods or self.cacheable_methods - if not from_cache and request.method in cacheable: - # Check for any heuristics that might update headers - # before trying to cache. - if self.heuristic: - response = self.heuristic.apply(response) - - # apply any expiration heuristics - if response.status == 304: - # We must have sent an ETag request. This could mean - # that we've been expired already or that we simply - # have an etag. In either case, we want to try and - # update the cache if that is the case. - cached_response = self.controller.update_cached_response( - request, response - ) - - if cached_response is not response: - from_cache = True - - # We are done with the server response, read a - # possible response body (compliant servers will - # not return one, but we cannot be 100% sure) and - # release the connection back to the pool. - response.read(decode_content=False) - response.release_conn() - - response = cached_response - - # We always cache the 301 responses - elif response.status == 301: - self.controller.cache_response(request, response) - else: - # Wrap the response file with a wrapper that will cache the - # response when the stream has been consumed. - response._fp = CallbackFileWrapper( - response._fp, - functools.partial( - self.controller.cache_response, request, response - ), - ) - if response.chunked: - super_update_chunk_length = response._update_chunk_length - - def _update_chunk_length(self): - super_update_chunk_length() - if self.chunk_left == 0: - self._fp._close() - - response._update_chunk_length = types.MethodType( - _update_chunk_length, response - ) - - resp = super(CacheControlAdapter, self).build_response(request, response) - - # See if we should invalidate the cache. - if request.method in self.invalidating_methods and resp.ok: - cache_url = self.controller.cache_url(request.url) - self.cache.delete(cache_url) - - # Give the request a from_cache attr to let people use it - resp.from_cache = from_cache - - return resp - - def close(self): - self.cache.close() - super(CacheControlAdapter, self).close() diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/cache.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/cache.py deleted file mode 100644 index 94e0773..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/cache.py +++ /dev/null @@ -1,39 +0,0 @@ -""" -The cache object API for implementing caches. The default is a thread -safe in-memory dictionary. -""" -from threading import Lock - - -class BaseCache(object): - - def get(self, key): - raise NotImplementedError() - - def set(self, key, value): - raise NotImplementedError() - - def delete(self, key): - raise NotImplementedError() - - def close(self): - pass - - -class DictCache(BaseCache): - - def __init__(self, init_dict=None): - self.lock = Lock() - self.data = init_dict or {} - - def get(self, key): - return self.data.get(key, None) - - def set(self, key, value): - with self.lock: - self.data.update({key: value}) - - def delete(self, key): - with self.lock: - if key in self.data: - self.data.pop(key) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__init__.py deleted file mode 100644 index 0e1658f..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .file_cache import FileCache # noqa -from .redis_cache import RedisCache # noqa diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index fe8ecd908ac11bb4ac2c014de8cd06d0964dbd58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmYk1Jx;|i49A=H2|?lAfD3e>9+;32LPBC>0Eyu(QC{Om^GK5@4uvO9!V$Oz$LPw$ z6_{`e1D5>p^WU;;wOrN(+uKL8z32Ry;lGs(m+W-RK^I!sVh}4Ka$VYTs8$u%)m_mn zz66gnVmi1s7Ozy-BSU?Q+R#il&0?xItjR8mF|VEuW7hvV6?fi?xW{P@->=a70by;Z ze^y(>1PLjD!%dQeal|Ooi<2Sx4vC;0(T!lu8p1C1-kr8*KqlcyP~D??K!RWbNS@L@ j!hA*NU5eiR0)dpqnIvT!cGLd(;PsQmi~JYmYmdYakt0=+ diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-39.pyc deleted file mode 100644 index e14897b1b1cffac5dcf8d28aca5ba54590e65148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3320 zcmZWrUvDEx5%2E#n`5P5OWEZ@tdm9)cRRK- zo-y6+Y+{WibXndI#{)0Cpyb}}J_X`q^ea#K2=D?`J+b5Lj@8xws>@Z?Rln+Fbu}dL z{rz8!;YW2s{*9C6FM!EoXsQ6h38yLPls)ZGn6s3PoQ^{YcetCnBd_Dxv6uRzN~c1} zG!OwL`y|_NiKw1^N(uf%C{}u`6C99?Z4vJC$}7^TeL{G^tFH*J3h&(Mtn!er!1@}e z&q6#`Nm4aMSYv4VX=s;I{?Ch{K zvNR5O!h#g6pqI|fv1e8ahdY;SpFFqDprFS^t#DAz=j7TYu-9-~CTz#8_D*|ux4mzI zcKqa7>*Kux!(JXXRt?J)uI=x&Te}CQ(vG+Ho__qo`0e=V@3(hNrJtxoYbkxOR91i( zUy4zFB2493`>B+z0t>+!FM zybm(}J8Smyk!T(cRR3i%6hb$(P`a6ko{p7}Cql;hG>gYF?+T@wn=BLiWn7- zUrG>l2h>s#5W;-F?uImUpt+2$(K@WGQ5Z3wg;Z_;PZt@NKMy94p{XZ81i>)xFn*VN z+`|Tg(SCPV??@lw>@@LEKFfr6Qdl3EdY`f|;11!7l8f4`96d z+haI3UzmO!MoV9-{o?7v=vfx!k_!oP>|cSXXyL)=ET2T9iPBL&IT5!`qXrlp(I8Vg zf$Zm-(E)IGlWe{e4RmxeNFs=_hqul~xU}G!OS;9TO|J{c>8+3(D*OI)AXM#8$WCIN1~}zv=qoGB)QTx_Hy`561|#HkQ|60PqI!b-^wHDleQ%h^DV- z3(y4-st-_LeAQ1LJouUMMb<@>srJPw9{?C=h!}eMn&xr~WG2v*1$Q>B-zZcHcmwqp z>U;plKotUL49Kr(!LX?PiM|Dkt83+GF^NB)8dz*<)b4GrJ^ zzj4!n(h|#wamR`78+VuwGJ87>S2parMNS{B6x?{@L~8Y#Eyjs^nE+;mC`|yU?$PP$ zjXkjYhA|7A_zX_m7&HCQngfOFi;bC6IOy+v!k}8a@H>YZjRof?M18PzU3LzjhsyjG zpoTL?jRW9+PM{{2CL1OX!5j<`c^8OrrAWBBiyF3ay^~KeZo_(RvvVxY+)=#{%OSY)S zzOFzuez;tX;Vb~$CH>+zGgkx14FT+ip>>&8co!=LE35g9)3Q3a?Buq~UfccK@-8|~ zz7J|PYNgw3hyvpn$qo{fS z4;Xgg%-xi&L+rR`TgxuKae!Akz+x48L9QYB6_AE=W0JMybpzmymkKS;fp-xsJ{E2W znB{yg*&5!Cdsm1XhCP`ZE$oGKR)Sy%VI*y=V z<=kd=sq|wMw}a#pBsc!GBXqL-CXf%IDO?J?>!hOOKjFI!Tpm<{YOrRx-f%Ixc^i+u z1*C*W#G?YD8C?r#L#LnZ!5zvh!t&R{vew1NP=r_$9m12BM|rvVyS?4b(3Ywf{eg;j zE>whNT4V|yMmOihDIk{muH}RaKrk~^D>Ro>=EG za>c07pV1ZsS>nO7sttYPj@*Q<1js;(Q~gpVKcyLoS;#E@qbn2_F4b{ diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-39.pyc deleted file mode 100644 index 97cb0f060dc1cf25cd39e81e1c480055bb723e26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1576 zcmZ`(&5qEpZxkC7`UUV#%;PPZnE7E6xHE?26)ud19)r(=fWk3Zw{Uj<`-(PlV& z+#|Ztr zuBzDUd;{gF9^s8UrVnuW=l5h;uOK-o%<>{T2e63+W0ML_ZE8SoK&SSyN*i70U`#UG zK($HA;v{LV?6R)Do;^=YVd1ML%im;YV3MY2k`!;LS|_>Vq^_*4%YI`LO%PJ2nKf5k zl%_>h*fgbRj0455Kf1>`+w1d(fQecMc!EO9&e<(*`Ia9u9pXXkIhdU|1AFJ`2#-4P z2Cf|H{zF7*GN!qAeK>H9rt_R?Xg^4%pF6iNP-unuc<;LPwpdNo7p<_~t=O_>?458r zzvVV)#cjA{?>XKQRCD_djN8W^A4?&`v|EKl{jrRDqu5b2n@8}H`lo+R; z;>Cx)pW+$KJ+)5;)b?gMNA-SCeu-d5u0)}Cyk$SI-;Um4L1TtJ$}ned#|rZtd)Ghx z2xS9Wp4M9CC1kp&&SX}W(k?+_wv8+*nMsw|>;!vsCVw#?FABRH%iYMcwZ)G9d>)HF z6F!+~iu*&Ly1=>l1l7h>hB)NcM+0C^{U2O}k*32%HoMrrbyjk1z({IO$SDxn)OCp{ zzLZrhD*z>JjnHb0n=sv9oXs8IG4G3k+ULHkDNHo^3=ezuy$3;}GRBwTfcme>R*k8wdeH-TNpu@()CpGmMEna& COIqIm diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py deleted file mode 100644 index 607b945..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +++ /dev/null @@ -1,146 +0,0 @@ -import hashlib -import os -from textwrap import dedent - -from ..cache import BaseCache -from ..controller import CacheController - -try: - FileNotFoundError -except NameError: - # py2.X - FileNotFoundError = (IOError, OSError) - - -def _secure_open_write(filename, fmode): - # We only want to write to this file, so open it in write only mode - flags = os.O_WRONLY - - # os.O_CREAT | os.O_EXCL will fail if the file already exists, so we only - # will open *new* files. - # We specify this because we want to ensure that the mode we pass is the - # mode of the file. - flags |= os.O_CREAT | os.O_EXCL - - # Do not follow symlinks to prevent someone from making a symlink that - # we follow and insecurely open a cache file. - if hasattr(os, "O_NOFOLLOW"): - flags |= os.O_NOFOLLOW - - # On Windows we'll mark this file as binary - if hasattr(os, "O_BINARY"): - flags |= os.O_BINARY - - # Before we open our file, we want to delete any existing file that is - # there - try: - os.remove(filename) - except (IOError, OSError): - # The file must not exist already, so we can just skip ahead to opening - pass - - # Open our file, the use of os.O_CREAT | os.O_EXCL will ensure that if a - # race condition happens between the os.remove and this line, that an - # error will be raised. Because we utilize a lockfile this should only - # happen if someone is attempting to attack us. - fd = os.open(filename, flags, fmode) - try: - return os.fdopen(fd, "wb") - - except: - # An error occurred wrapping our FD in a file object - os.close(fd) - raise - - -class FileCache(BaseCache): - - def __init__( - self, - directory, - forever=False, - filemode=0o0600, - dirmode=0o0700, - use_dir_lock=None, - lock_class=None, - ): - - if use_dir_lock is not None and lock_class is not None: - raise ValueError("Cannot use use_dir_lock and lock_class together") - - try: - from lockfile import LockFile - from lockfile.mkdirlockfile import MkdirLockFile - except ImportError: - notice = dedent( - """ - NOTE: In order to use the FileCache you must have - lockfile installed. You can install it via pip: - pip install lockfile - """ - ) - raise ImportError(notice) - - else: - if use_dir_lock: - lock_class = MkdirLockFile - - elif lock_class is None: - lock_class = LockFile - - self.directory = directory - self.forever = forever - self.filemode = filemode - self.dirmode = dirmode - self.lock_class = lock_class - - @staticmethod - def encode(x): - return hashlib.sha224(x.encode()).hexdigest() - - def _fn(self, name): - # NOTE: This method should not change as some may depend on it. - # See: https://github.com/ionrock/cachecontrol/issues/63 - hashed = self.encode(name) - parts = list(hashed[:5]) + [hashed] - return os.path.join(self.directory, *parts) - - def get(self, key): - name = self._fn(key) - try: - with open(name, "rb") as fh: - return fh.read() - - except FileNotFoundError: - return None - - def set(self, key, value): - name = self._fn(key) - - # Make sure the directory exists - try: - os.makedirs(os.path.dirname(name), self.dirmode) - except (IOError, OSError): - pass - - with self.lock_class(name) as lock: - # Write our actual file - with _secure_open_write(lock.path, self.filemode) as fh: - fh.write(value) - - def delete(self, key): - name = self._fn(key) - if not self.forever: - try: - os.remove(name) - except FileNotFoundError: - pass - - -def url_to_file_path(url, filecache): - """Return the file cache path based on the URL. - - This does not ensure the file exists! - """ - key = CacheController.cache_url(url) - return filecache._fn(key) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py deleted file mode 100644 index ed705ce..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +++ /dev/null @@ -1,33 +0,0 @@ -from __future__ import division - -from datetime import datetime -from pip._vendor.cachecontrol.cache import BaseCache - - -class RedisCache(BaseCache): - - def __init__(self, conn): - self.conn = conn - - def get(self, key): - return self.conn.get(key) - - def set(self, key, value, expires=None): - if not expires: - self.conn.set(key, value) - else: - expires = expires - datetime.utcnow() - self.conn.setex(key, int(expires.total_seconds()), value) - - def delete(self, key): - self.conn.delete(key) - - def clear(self): - """Helper for clearing all the keys in a database. Use with - caution!""" - for key in self.conn.keys(): - self.conn.delete(key) - - def close(self): - """Redis uses connection pooling, no need to close the connection.""" - pass diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/compat.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/compat.py deleted file mode 100644 index 33b5aed..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/compat.py +++ /dev/null @@ -1,29 +0,0 @@ -try: - from urllib.parse import urljoin -except ImportError: - from urlparse import urljoin - - -try: - import cPickle as pickle -except ImportError: - import pickle - - -# Handle the case where the requests module has been patched to not have -# urllib3 bundled as part of its source. -try: - from pip._vendor.requests.packages.urllib3.response import HTTPResponse -except ImportError: - from pip._vendor.urllib3.response import HTTPResponse - -try: - from pip._vendor.requests.packages.urllib3.util import is_fp_closed -except ImportError: - from pip._vendor.urllib3.util import is_fp_closed - -# Replicate some six behaviour -try: - text_type = unicode -except NameError: - text_type = str diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/controller.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/controller.py deleted file mode 100644 index dafe55c..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/controller.py +++ /dev/null @@ -1,376 +0,0 @@ -""" -The httplib2 algorithms ported for use with requests. -""" -import logging -import re -import calendar -import time -from email.utils import parsedate_tz - -from pip._vendor.requests.structures import CaseInsensitiveDict - -from .cache import DictCache -from .serialize import Serializer - - -logger = logging.getLogger(__name__) - -URI = re.compile(r"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?") - - -def parse_uri(uri): - """Parses a URI using the regex given in Appendix B of RFC 3986. - - (scheme, authority, path, query, fragment) = parse_uri(uri) - """ - groups = URI.match(uri).groups() - return (groups[1], groups[3], groups[4], groups[6], groups[8]) - - -class CacheController(object): - """An interface to see if request should cached or not. - """ - - def __init__( - self, cache=None, cache_etags=True, serializer=None, status_codes=None - ): - self.cache = DictCache() if cache is None else cache - self.cache_etags = cache_etags - self.serializer = serializer or Serializer() - self.cacheable_status_codes = status_codes or (200, 203, 300, 301) - - @classmethod - def _urlnorm(cls, uri): - """Normalize the URL to create a safe key for the cache""" - (scheme, authority, path, query, fragment) = parse_uri(uri) - if not scheme or not authority: - raise Exception("Only absolute URIs are allowed. uri = %s" % uri) - - scheme = scheme.lower() - authority = authority.lower() - - if not path: - path = "/" - - # Could do syntax based normalization of the URI before - # computing the digest. See Section 6.2.2 of Std 66. - request_uri = query and "?".join([path, query]) or path - defrag_uri = scheme + "://" + authority + request_uri - - return defrag_uri - - @classmethod - def cache_url(cls, uri): - return cls._urlnorm(uri) - - def parse_cache_control(self, headers): - known_directives = { - # https://tools.ietf.org/html/rfc7234#section-5.2 - "max-age": (int, True), - "max-stale": (int, False), - "min-fresh": (int, True), - "no-cache": (None, False), - "no-store": (None, False), - "no-transform": (None, False), - "only-if-cached": (None, False), - "must-revalidate": (None, False), - "public": (None, False), - "private": (None, False), - "proxy-revalidate": (None, False), - "s-maxage": (int, True), - } - - cc_headers = headers.get("cache-control", headers.get("Cache-Control", "")) - - retval = {} - - for cc_directive in cc_headers.split(","): - if not cc_directive.strip(): - continue - - parts = cc_directive.split("=", 1) - directive = parts[0].strip() - - try: - typ, required = known_directives[directive] - except KeyError: - logger.debug("Ignoring unknown cache-control directive: %s", directive) - continue - - if not typ or not required: - retval[directive] = None - if typ: - try: - retval[directive] = typ(parts[1].strip()) - except IndexError: - if required: - logger.debug( - "Missing value for cache-control " "directive: %s", - directive, - ) - except ValueError: - logger.debug( - "Invalid value for cache-control directive " "%s, must be %s", - directive, - typ.__name__, - ) - - return retval - - def cached_request(self, request): - """ - Return a cached response if it exists in the cache, otherwise - return False. - """ - cache_url = self.cache_url(request.url) - logger.debug('Looking up "%s" in the cache', cache_url) - cc = self.parse_cache_control(request.headers) - - # Bail out if the request insists on fresh data - if "no-cache" in cc: - logger.debug('Request header has "no-cache", cache bypassed') - return False - - if "max-age" in cc and cc["max-age"] == 0: - logger.debug('Request header has "max_age" as 0, cache bypassed') - return False - - # Request allows serving from the cache, let's see if we find something - cache_data = self.cache.get(cache_url) - if cache_data is None: - logger.debug("No cache entry available") - return False - - # Check whether it can be deserialized - resp = self.serializer.loads(request, cache_data) - if not resp: - logger.warning("Cache entry deserialization failed, entry ignored") - return False - - # If we have a cached 301, return it immediately. We don't - # need to test our response for other headers b/c it is - # intrinsically "cacheable" as it is Permanent. - # See: - # https://tools.ietf.org/html/rfc7231#section-6.4.2 - # - # Client can try to refresh the value by repeating the request - # with cache busting headers as usual (ie no-cache). - if resp.status == 301: - msg = ( - 'Returning cached "301 Moved Permanently" response ' - "(ignoring date and etag information)" - ) - logger.debug(msg) - return resp - - headers = CaseInsensitiveDict(resp.headers) - if not headers or "date" not in headers: - if "etag" not in headers: - # Without date or etag, the cached response can never be used - # and should be deleted. - logger.debug("Purging cached response: no date or etag") - self.cache.delete(cache_url) - logger.debug("Ignoring cached response: no date") - return False - - now = time.time() - date = calendar.timegm(parsedate_tz(headers["date"])) - current_age = max(0, now - date) - logger.debug("Current age based on date: %i", current_age) - - # TODO: There is an assumption that the result will be a - # urllib3 response object. This may not be best since we - # could probably avoid instantiating or constructing the - # response until we know we need it. - resp_cc = self.parse_cache_control(headers) - - # determine freshness - freshness_lifetime = 0 - - # Check the max-age pragma in the cache control header - if "max-age" in resp_cc: - freshness_lifetime = resp_cc["max-age"] - logger.debug("Freshness lifetime from max-age: %i", freshness_lifetime) - - # If there isn't a max-age, check for an expires header - elif "expires" in headers: - expires = parsedate_tz(headers["expires"]) - if expires is not None: - expire_time = calendar.timegm(expires) - date - freshness_lifetime = max(0, expire_time) - logger.debug("Freshness lifetime from expires: %i", freshness_lifetime) - - # Determine if we are setting freshness limit in the - # request. Note, this overrides what was in the response. - if "max-age" in cc: - freshness_lifetime = cc["max-age"] - logger.debug( - "Freshness lifetime from request max-age: %i", freshness_lifetime - ) - - if "min-fresh" in cc: - min_fresh = cc["min-fresh"] - # adjust our current age by our min fresh - current_age += min_fresh - logger.debug("Adjusted current age from min-fresh: %i", current_age) - - # Return entry if it is fresh enough - if freshness_lifetime > current_age: - logger.debug('The response is "fresh", returning cached response') - logger.debug("%i > %i", freshness_lifetime, current_age) - return resp - - # we're not fresh. If we don't have an Etag, clear it out - if "etag" not in headers: - logger.debug('The cached response is "stale" with no etag, purging') - self.cache.delete(cache_url) - - # return the original handler - return False - - def conditional_headers(self, request): - cache_url = self.cache_url(request.url) - resp = self.serializer.loads(request, self.cache.get(cache_url)) - new_headers = {} - - if resp: - headers = CaseInsensitiveDict(resp.headers) - - if "etag" in headers: - new_headers["If-None-Match"] = headers["ETag"] - - if "last-modified" in headers: - new_headers["If-Modified-Since"] = headers["Last-Modified"] - - return new_headers - - def cache_response(self, request, response, body=None, status_codes=None): - """ - Algorithm for caching requests. - - This assumes a requests Response object. - """ - # From httplib2: Don't cache 206's since we aren't going to - # handle byte range requests - cacheable_status_codes = status_codes or self.cacheable_status_codes - if response.status not in cacheable_status_codes: - logger.debug( - "Status code %s not in %s", response.status, cacheable_status_codes - ) - return - - response_headers = CaseInsensitiveDict(response.headers) - - # If we've been given a body, our response has a Content-Length, that - # Content-Length is valid then we can check to see if the body we've - # been given matches the expected size, and if it doesn't we'll just - # skip trying to cache it. - if ( - body is not None - and "content-length" in response_headers - and response_headers["content-length"].isdigit() - and int(response_headers["content-length"]) != len(body) - ): - return - - cc_req = self.parse_cache_control(request.headers) - cc = self.parse_cache_control(response_headers) - - cache_url = self.cache_url(request.url) - logger.debug('Updating cache with response from "%s"', cache_url) - - # Delete it from the cache if we happen to have it stored there - no_store = False - if "no-store" in cc: - no_store = True - logger.debug('Response header has "no-store"') - if "no-store" in cc_req: - no_store = True - logger.debug('Request header has "no-store"') - if no_store and self.cache.get(cache_url): - logger.debug('Purging existing cache entry to honor "no-store"') - self.cache.delete(cache_url) - if no_store: - return - - # https://tools.ietf.org/html/rfc7234#section-4.1: - # A Vary header field-value of "*" always fails to match. - # Storing such a response leads to a deserialization warning - # during cache lookup and is not allowed to ever be served, - # so storing it can be avoided. - if "*" in response_headers.get("vary", ""): - logger.debug('Response header has "Vary: *"') - return - - # If we've been given an etag, then keep the response - if self.cache_etags and "etag" in response_headers: - logger.debug("Caching due to etag") - self.cache.set( - cache_url, self.serializer.dumps(request, response, body=body) - ) - - # Add to the cache any 301s. We do this before looking that - # the Date headers. - elif response.status == 301: - logger.debug("Caching permanant redirect") - self.cache.set(cache_url, self.serializer.dumps(request, response)) - - # Add to the cache if the response headers demand it. If there - # is no date header then we can't do anything about expiring - # the cache. - elif "date" in response_headers: - # cache when there is a max-age > 0 - if "max-age" in cc and cc["max-age"] > 0: - logger.debug("Caching b/c date exists and max-age > 0") - self.cache.set( - cache_url, self.serializer.dumps(request, response, body=body) - ) - - # If the request can expire, it means we should cache it - # in the meantime. - elif "expires" in response_headers: - if response_headers["expires"]: - logger.debug("Caching b/c of expires header") - self.cache.set( - cache_url, self.serializer.dumps(request, response, body=body) - ) - - def update_cached_response(self, request, response): - """On a 304 we will get a new set of headers that we want to - update our cached value with, assuming we have one. - - This should only ever be called when we've sent an ETag and - gotten a 304 as the response. - """ - cache_url = self.cache_url(request.url) - - cached_response = self.serializer.loads(request, self.cache.get(cache_url)) - - if not cached_response: - # we didn't have a cached response - return response - - # Lets update our headers with the headers from the new request: - # http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-26#section-4.1 - # - # The server isn't supposed to send headers that would make - # the cached body invalid. But... just in case, we'll be sure - # to strip out ones we know that might be problmatic due to - # typical assumptions. - excluded_headers = ["content-length"] - - cached_response.headers.update( - dict( - (k, v) - for k, v in response.headers.items() - if k.lower() not in excluded_headers - ) - ) - - # we want a 200 b/c we have content via the cache - cached_response.status = 200 - - # update our cache - self.cache.set(cache_url, self.serializer.dumps(request, cached_response)) - - return cached_response diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/filewrapper.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/filewrapper.py deleted file mode 100644 index 30ed4c5..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/filewrapper.py +++ /dev/null @@ -1,80 +0,0 @@ -from io import BytesIO - - -class CallbackFileWrapper(object): - """ - Small wrapper around a fp object which will tee everything read into a - buffer, and when that file is closed it will execute a callback with the - contents of that buffer. - - All attributes are proxied to the underlying file object. - - This class uses members with a double underscore (__) leading prefix so as - not to accidentally shadow an attribute. - """ - - def __init__(self, fp, callback): - self.__buf = BytesIO() - self.__fp = fp - self.__callback = callback - - def __getattr__(self, name): - # The vaguaries of garbage collection means that self.__fp is - # not always set. By using __getattribute__ and the private - # name[0] allows looking up the attribute value and raising an - # AttributeError when it doesn't exist. This stop thigns from - # infinitely recursing calls to getattr in the case where - # self.__fp hasn't been set. - # - # [0] https://docs.python.org/2/reference/expressions.html#atom-identifiers - fp = self.__getattribute__("_CallbackFileWrapper__fp") - return getattr(fp, name) - - def __is_fp_closed(self): - try: - return self.__fp.fp is None - - except AttributeError: - pass - - try: - return self.__fp.closed - - except AttributeError: - pass - - # We just don't cache it then. - # TODO: Add some logging here... - return False - - def _close(self): - if self.__callback: - self.__callback(self.__buf.getvalue()) - - # We assign this to None here, because otherwise we can get into - # really tricky problems where the CPython interpreter dead locks - # because the callback is holding a reference to something which - # has a __del__ method. Setting this to None breaks the cycle - # and allows the garbage collector to do it's thing normally. - self.__callback = None - - def read(self, amt=None): - data = self.__fp.read(amt) - self.__buf.write(data) - if self.__is_fp_closed(): - self._close() - - return data - - def _safe_read(self, amt): - data = self.__fp._safe_read(amt) - if amt == 2 and data == b"\r\n": - # urllib executes this read to toss the CRLF at the end - # of the chunk. - return data - - self.__buf.write(data) - if self.__is_fp_closed(): - self._close() - - return data diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/heuristics.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/heuristics.py deleted file mode 100644 index 6c0e979..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/heuristics.py +++ /dev/null @@ -1,135 +0,0 @@ -import calendar -import time - -from email.utils import formatdate, parsedate, parsedate_tz - -from datetime import datetime, timedelta - -TIME_FMT = "%a, %d %b %Y %H:%M:%S GMT" - - -def expire_after(delta, date=None): - date = date or datetime.utcnow() - return date + delta - - -def datetime_to_header(dt): - return formatdate(calendar.timegm(dt.timetuple())) - - -class BaseHeuristic(object): - - def warning(self, response): - """ - Return a valid 1xx warning header value describing the cache - adjustments. - - The response is provided too allow warnings like 113 - http://tools.ietf.org/html/rfc7234#section-5.5.4 where we need - to explicitly say response is over 24 hours old. - """ - return '110 - "Response is Stale"' - - def update_headers(self, response): - """Update the response headers with any new headers. - - NOTE: This SHOULD always include some Warning header to - signify that the response was cached by the client, not - by way of the provided headers. - """ - return {} - - def apply(self, response): - updated_headers = self.update_headers(response) - - if updated_headers: - response.headers.update(updated_headers) - warning_header_value = self.warning(response) - if warning_header_value is not None: - response.headers.update({"Warning": warning_header_value}) - - return response - - -class OneDayCache(BaseHeuristic): - """ - Cache the response by providing an expires 1 day in the - future. - """ - - def update_headers(self, response): - headers = {} - - if "expires" not in response.headers: - date = parsedate(response.headers["date"]) - expires = expire_after(timedelta(days=1), date=datetime(*date[:6])) - headers["expires"] = datetime_to_header(expires) - headers["cache-control"] = "public" - return headers - - -class ExpiresAfter(BaseHeuristic): - """ - Cache **all** requests for a defined time period. - """ - - def __init__(self, **kw): - self.delta = timedelta(**kw) - - def update_headers(self, response): - expires = expire_after(self.delta) - return {"expires": datetime_to_header(expires), "cache-control": "public"} - - def warning(self, response): - tmpl = "110 - Automatically cached for %s. Response might be stale" - return tmpl % self.delta - - -class LastModified(BaseHeuristic): - """ - If there is no Expires header already, fall back on Last-Modified - using the heuristic from - http://tools.ietf.org/html/rfc7234#section-4.2.2 - to calculate a reasonable value. - - Firefox also does something like this per - https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching_FAQ - http://lxr.mozilla.org/mozilla-release/source/netwerk/protocol/http/nsHttpResponseHead.cpp#397 - Unlike mozilla we limit this to 24-hr. - """ - cacheable_by_default_statuses = { - 200, 203, 204, 206, 300, 301, 404, 405, 410, 414, 501 - } - - def update_headers(self, resp): - headers = resp.headers - - if "expires" in headers: - return {} - - if "cache-control" in headers and headers["cache-control"] != "public": - return {} - - if resp.status not in self.cacheable_by_default_statuses: - return {} - - if "date" not in headers or "last-modified" not in headers: - return {} - - date = calendar.timegm(parsedate_tz(headers["date"])) - last_modified = parsedate(headers["last-modified"]) - if date is None or last_modified is None: - return {} - - now = time.time() - current_age = max(0, now - date) - delta = date - calendar.timegm(last_modified) - freshness_lifetime = max(0, min(delta / 10, 24 * 3600)) - if freshness_lifetime <= current_age: - return {} - - expires = date + freshness_lifetime - return {"expires": time.strftime(TIME_FMT, time.gmtime(expires))} - - def warning(self, resp): - return None diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py deleted file mode 100644 index 3b6ec2d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py +++ /dev/null @@ -1,188 +0,0 @@ -import base64 -import io -import json -import zlib - -from pip._vendor import msgpack -from pip._vendor.requests.structures import CaseInsensitiveDict - -from .compat import HTTPResponse, pickle, text_type - - -def _b64_decode_bytes(b): - return base64.b64decode(b.encode("ascii")) - - -def _b64_decode_str(s): - return _b64_decode_bytes(s).decode("utf8") - - -class Serializer(object): - - def dumps(self, request, response, body=None): - response_headers = CaseInsensitiveDict(response.headers) - - if body is None: - body = response.read(decode_content=False) - - # NOTE: 99% sure this is dead code. I'm only leaving it - # here b/c I don't have a test yet to prove - # it. Basically, before using - # `cachecontrol.filewrapper.CallbackFileWrapper`, - # this made an effort to reset the file handle. The - # `CallbackFileWrapper` short circuits this code by - # setting the body as the content is consumed, the - # result being a `body` argument is *always* passed - # into cache_response, and in turn, - # `Serializer.dump`. - response._fp = io.BytesIO(body) - - # NOTE: This is all a bit weird, but it's really important that on - # Python 2.x these objects are unicode and not str, even when - # they contain only ascii. The problem here is that msgpack - # understands the difference between unicode and bytes and we - # have it set to differentiate between them, however Python 2 - # doesn't know the difference. Forcing these to unicode will be - # enough to have msgpack know the difference. - data = { - u"response": { - u"body": body, - u"headers": dict( - (text_type(k), text_type(v)) for k, v in response.headers.items() - ), - u"status": response.status, - u"version": response.version, - u"reason": text_type(response.reason), - u"strict": response.strict, - u"decode_content": response.decode_content, - } - } - - # Construct our vary headers - data[u"vary"] = {} - if u"vary" in response_headers: - varied_headers = response_headers[u"vary"].split(",") - for header in varied_headers: - header = text_type(header).strip() - header_value = request.headers.get(header, None) - if header_value is not None: - header_value = text_type(header_value) - data[u"vary"][header] = header_value - - return b",".join([b"cc=4", msgpack.dumps(data, use_bin_type=True)]) - - def loads(self, request, data): - # Short circuit if we've been given an empty set of data - if not data: - return - - # Determine what version of the serializer the data was serialized - # with - try: - ver, data = data.split(b",", 1) - except ValueError: - ver = b"cc=0" - - # Make sure that our "ver" is actually a version and isn't a false - # positive from a , being in the data stream. - if ver[:3] != b"cc=": - data = ver + data - ver = b"cc=0" - - # Get the version number out of the cc=N - ver = ver.split(b"=", 1)[-1].decode("ascii") - - # Dispatch to the actual load method for the given version - try: - return getattr(self, "_loads_v{}".format(ver))(request, data) - - except AttributeError: - # This is a version we don't have a loads function for, so we'll - # just treat it as a miss and return None - return - - def prepare_response(self, request, cached): - """Verify our vary headers match and construct a real urllib3 - HTTPResponse object. - """ - # Special case the '*' Vary value as it means we cannot actually - # determine if the cached response is suitable for this request. - # This case is also handled in the controller code when creating - # a cache entry, but is left here for backwards compatibility. - if "*" in cached.get("vary", {}): - return - - # Ensure that the Vary headers for the cached response match our - # request - for header, value in cached.get("vary", {}).items(): - if request.headers.get(header, None) != value: - return - - body_raw = cached["response"].pop("body") - - headers = CaseInsensitiveDict(data=cached["response"]["headers"]) - if headers.get("transfer-encoding", "") == "chunked": - headers.pop("transfer-encoding") - - cached["response"]["headers"] = headers - - try: - body = io.BytesIO(body_raw) - except TypeError: - # This can happen if cachecontrol serialized to v1 format (pickle) - # using Python 2. A Python 2 str(byte string) will be unpickled as - # a Python 3 str (unicode string), which will cause the above to - # fail with: - # - # TypeError: 'str' does not support the buffer interface - body = io.BytesIO(body_raw.encode("utf8")) - - return HTTPResponse(body=body, preload_content=False, **cached["response"]) - - def _loads_v0(self, request, data): - # The original legacy cache data. This doesn't contain enough - # information to construct everything we need, so we'll treat this as - # a miss. - return - - def _loads_v1(self, request, data): - try: - cached = pickle.loads(data) - except ValueError: - return - - return self.prepare_response(request, cached) - - def _loads_v2(self, request, data): - try: - cached = json.loads(zlib.decompress(data).decode("utf8")) - except (ValueError, zlib.error): - return - - # We need to decode the items that we've base64 encoded - cached["response"]["body"] = _b64_decode_bytes(cached["response"]["body"]) - cached["response"]["headers"] = dict( - (_b64_decode_str(k), _b64_decode_str(v)) - for k, v in cached["response"]["headers"].items() - ) - cached["response"]["reason"] = _b64_decode_str(cached["response"]["reason"]) - cached["vary"] = dict( - (_b64_decode_str(k), _b64_decode_str(v) if v is not None else v) - for k, v in cached["vary"].items() - ) - - return self.prepare_response(request, cached) - - def _loads_v3(self, request, data): - # Due to Python 2 encoding issues, it's impossible to know for sure - # exactly how to load v3 entries, thus we'll treat these as a miss so - # that they get rewritten out as v4 entries. - return - - def _loads_v4(self, request, data): - try: - cached = msgpack.loads(data, raw=False) - except ValueError: - return - - return self.prepare_response(request, cached) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/wrapper.py b/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/wrapper.py deleted file mode 100644 index d8e6fc6..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/wrapper.py +++ /dev/null @@ -1,29 +0,0 @@ -from .adapter import CacheControlAdapter -from .cache import DictCache - - -def CacheControl( - sess, - cache=None, - cache_etags=True, - serializer=None, - heuristic=None, - controller_class=None, - adapter_class=None, - cacheable_methods=None, -): - - cache = DictCache() if cache is None else cache - adapter_class = adapter_class or CacheControlAdapter - adapter = adapter_class( - cache, - cache_etags=cache_etags, - serializer=serializer, - heuristic=heuristic, - controller_class=controller_class, - cacheable_methods=cacheable_methods, - ) - sess.mount("http://", adapter) - sess.mount("https://", adapter) - - return sess diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__init__.py deleted file mode 100644 index eebdf88..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from .core import contents, where - -__version__ = "2021.05.30" diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__main__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__main__.py deleted file mode 100644 index 0037634..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__main__.py +++ /dev/null @@ -1,12 +0,0 @@ -import argparse - -from pip._vendor.certifi import contents, where - -parser = argparse.ArgumentParser() -parser.add_argument("-c", "--contents", action="store_true") -args = parser.parse_args() - -if args.contents: - print(contents()) -else: - print(where()) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 1367cea1a405fbec5d02e2707976c835cf9aa5ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmYjMK~BRk5Okb?s-j99`9cn4Ln{tQsNw}&xaG1+<1KMXY|Cp>%1?L#-{2X!a^ee| zuy2gCvl@+dcDG%vmLlTgt2}ID|4!mRWE2mv_$rbTDjUR@HQ6W|nF%GET;)%qEPk?R zmvUZo)&w$v=d)u^p5B-1dVN#Xx7DV8EQ`75tS6sBeI9APK%B_4wg&N2`152W`nAy8 zkzl8}Keh*=0D(Awp?yFmABQl!8Fb!u#0=F$W`aTQz@0*G&8E5o)`6~F+r6~U#Nf1p jxXUQ(p(7vkUIU^wIv`f=G%xN)t6m4%rcXFscq#t?gicPu diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-39.pyc deleted file mode 100644 index bd292d44768aea420a04a0701116de02f62481ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmYjLu};G<5Vf5q4N*Zzd_{)F0}~QLureSd7SzRZ<7?~E*wNW7v@0_ozy>3~!Do17 z;ul!JDHY-*zq|Krzk70jzaX)m-^=-T>>nNZUuh)g@wnRviYU4uqpq_BZPYswog&y;E?Pt~;S0~(Q55rd0cXA4j$K-sM nobQrzAsVTT5LLSl`DtU-asg*Fu6JFAoE@^99@3m;bijT96_tpn diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-39.pyc deleted file mode 100644 index 07eaa5f642c59982b95bf4565fca8be41ba50154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1533 zcmZux!EPHj5GA>kv|35Fo1|?HMX)Gx(ILAD+Dm~Tu%S9_ib53{0cmw1*2}TAwzRt; zDaSU_9wJ|Z-U{?)1HI%o`Wd|T)L+P{!(AzH8&lw5h8ph7n|Z^e*9!=)KmO_;-suqX zw==FTAB}C?`cD*+Oo*hC&FF-FL!>A9IguRL(wlf^kAc6UKo1)iP1(4llNPkpwrtAQ zIhpw2Ey*j2cl}v=9!xs(?xahJWJwSAhHTef&q)3yC*YkLO5E>flHWy}pZ;Fka!Yn( z_nc0;vRB_g4|bo(4Y`R?HYIyX`X8M^kb*MVeioId!LRRD5R9jp4(Ekj%pg=?7An`F znL?Q5+9b1CVzMF+XGK~o#eSG3?n_Y#^RQ51W^|Yqxq;m1DEJ2pLWZf6R~JQN8@KMF z05YLiG$tt~#_T6zl$E2zq*IWCIz@~H!@g&IA@XDnLfAlvIz`mGLOfq2v-+PmL^bi7 zm3Vs;Pm4LkdzqfTNDcu^Y(SehhkYY7sAEvVoaCZZMG9KS(J|!5@hsbm%TqHg@-L#V zVx1YdS0?FEasWCmvoaRwB?}d=$`_}F0<5887}mkjPVs4F+goDvWF(%BcZOf@eE-96 zR}6N49A8_GfxF647=mS>!#-7xR`1c&S_{u?mPs-RU)1B`C$B$^|Vp8Ed&w+>n^SXR>24{Gwq-g-|qyp%WNajX_lof z_w{mxay}K7ho~50=o07dC6ny6_uK7XyqDeuyClyDLzEnUOOIk@9}peguja;04o;V= zwl}m?y`k2JJS}9FA0XFwQ9@oNWVx$npWD`obGA{zQy*ho%VlDcD_~rM6h0DU8+X-E zLT}LOB*l~eEH?%f0tct2|L`n~!K86{l*MMIE0&>5?(HpdIfE!w=1Q=4R9974$AZVW zSFHFTUSl0^0~PE(cHO;CuRW|mV`y8e?kY!Pb;F5UD3FN`&;P?#O!U{I{vCR($@p1) z$$g-|g;f)>NO4YCp>2EjB!$vFA@zK8p3KWanO&s{Wm`CYnJRMYA%kl6J4E(oRypBd zMhbMXP&lp1y~xVpsFT}tTF(g={rX%V)=$PG4?Xl<6ujwsTbxnOyOdL(HQ5&9l(X(_ Lv{| detector.MINIMUM_THRESHOLD: - charset_name = prober.charset_name - lower_charset_name = prober.charset_name.lower() - # Use Windows encoding name instead of ISO-8859 if we saw any - # extra Windows-specific bytes - if lower_charset_name.startswith('iso-8859'): - if detector._has_win_bytes: - charset_name = detector.ISO_WIN_MAP.get(lower_charset_name, - charset_name) - results.append({ - 'encoding': charset_name, - 'confidence': prober.get_confidence(), - 'language': prober.language, - }) - if len(results) > 0: - return sorted(results, key=lambda result: -result['confidence']) - - return [detector.result] diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 4f455b1042db67e38c2f39c51885ea9ae0c738e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1910 zcmd5-&2Jk;6rb5IuQyJbq@^XmVZ{kc#EVoRrBM~}k%(9#3DhYcmgsuzo!IN_?rdkq zO&r!2!j(S&2_YL!9QhZx@DKDf;>M|GZk14Zvl}-FXAZ11Z{C}EUo-Q2Z-d1}2f_FK zZ}s8tHH7|D!qra$;XN398%T&k9HRucF;=`5Yl+_03to?n#B7_1)wVF|qtN&Xw=1C; zTHm6!9acgc=4x1Np}O-7gR450D-YA?31K{lw}~JLqPu zqcWCu`COF!g4j)Xi|5oE(1dv1h!0MJAtAzpqX;i0N5bcX0RVh)n)(@|J;J%yfa`qX z#ZlMG#$rIzyN!Duj|5rIg5Gh^C)~@T%mdt{A!S}~5HJYn`F@l}!uK25m{}0@bp?f0 zAgJPC2V2;BVe2-`4leeu;YS%%U=;ZI1DO8?KMF^~s&Ix2#~ORuM-vU?+BW*?i;14= z)5V$EUph9}qg)@}m>7yqmuF~V=H_%I)Ml9d2pX#ey*a&=o4GO5Ku?>#l7n{PK_A`@ z^&fPF+Q*N?om@M|p#eUhidS>3EYPs>oz_yZ*7_JQZJ+&m71K~w1&%YydDM+B0S>tN z-yodX@G56^#OeCR#=H0Gy0qtYD4iZnkD^djleFU??T-K@&p`irlTZyqHHsDtu9{*F z-EIvn6lK28Zo^7}S7=feBYYH#LM+KG*p>GEI7qr-u=OcOf5AX!Z(R1K#{HP~f|zds zQ>uX{{g{mFudyoVG8L08C<2Wbu|-9e6j52R8;UFgku`ua^hhWsXp&4D&e-Lp0Buf3V_7|G11OM~pzQ6bWCsKz1(h9N+N{-!8`RFl8rNt?Omc!Oy zrEakmn3$?KSt+lNORG$gy{T4Li>NQNSDF0lf|;tpbr^gD$hE@NRN>lM4I3~osWR48 zQQKI1VQ2={fH(ej%o<+S3NQP0N3M+K|DSnBDm#}+(ow?8i>+MzelCA3vf`^hjqew2 fqHuO4P1VrY1sD<hk0haK9i>^6)=`^9 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 D%gnL& diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-39.pyc deleted file mode 100644 index 64fcdc9fbb8d7aa130b0f9e3cf5589a58b020dc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1144 zcma)5%Wl&^6rJ%aZj_YLs=$I3tRm5P0bL*=1Wi$eL<&-N-i#d2G?_AfbY@aW)m0gFR5e0KjOFVy58ubRXOeEWO<;Wa);se1@n zaHg!>n_DrMCVC|72VIPXhMmnp!DT)f*~E%rl1^nVVD-VCob2vPW3?R5tSs`^d7|b< z8rbXZy*=1vqaho<-+%Kig#dpHcQrH500AB>k97go#R7Mhs5zLPsfdkb}!Ha0DKpjs0@2LrC^9yaoZG z>$FWndbV{-WdEkvzZgYU2ly)%%qcMC99ACwsW)InchJy$Qo3X6mGljUr*vTwW z%bl9HDg+)u6?U$-z^mQ{Q*~DjO@&gRklXs#@d%Poi|7#mgZDb5oxq`O*P-<~YVA%o zUQw{@lSYoJ&85N&-neXe<7)j?8+B(Ja$71e051mQi1MsmH*&dcNcdt|;LC@Y5Q?Bf H>&N{Kq@EW! diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-39.pyc deleted file mode 100644 index 8f0bb13e0c1659fb6f8ac635f90def1035a103e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6230 zcmcgwNpl;=6`l+2)l`FaDkgY0zA(@j?IpO4cF3$J$fFwWxETtlAQ2nM~FAuL@ zfBoL;$@lm7Xn20{m-NP8FKXJq$+SKem?;$RA0R>#dPytmwq7=Dqiouy&NicDl_Pef z9JQn6m>pAXW+`4y*oktF-Ba$hdsUlN>MQr#{pA6Bpgd>~s7%ER_>dBh&k zwRufMMeK z{LIyBZ(r>saH!eUBJtdQ({UolXBOtKcM>?LI$Fe?4I7RVHuk~7QYTphY;O^DM)6%G z6|fs^j{$B9#k&LIYPK#k+Yq{K3d6R9X-9-*M@2+LpJ;YW#6%o#z((}ooe;gE5APn) zF9z`L6@wy)cb^!-)(;00v+H?zv*`J^Ny`l#6uYErMuiEJ6U*1^z z(I~4=ZZu5jP#|FTAJ(biEQ)spL}+!*2`My1-B8q2)KWB3*Pce7X*>i=+Mb?G$AS^3 z08Jdf>a0rlfm4;jl|irL=T}Ou;}vUeaMIt|Di-o3N3^Kx$UL+TB95q5+@KHheT<+e z53`l1kcmjwbNxL%uspZ4x~Iw4pz41fW!9@@H?vao)*t0JT-VR|uIFbe?yB#2u6*c1 zqsJ9zOI8c6=VdNGbSn=trQ%9vYsX)&R<2!sC*u`;_pPmbVKcwxdYP@_R>r|7QI#3~ zv4BYRZqfPj)=m(2oMNTuJI-aAZ2&|wqk1%gqJFh=vt2gk^8U>3yD$c6LRY(Bfa-$O z5GHoqs-0DaNafW&yYkIcq2%Tz_??vJ=Y989gUV#nrX0sxPLNEJoFbvsLUM++lOW$i z@uDD_1>KF>nXa0ve=ZO~`wu-Vc?F)2P^kmhn}!?(K(xC4Oy4ytmN0hBx+%=fh+M7% zmK(aTz75PddflvR8^)$4mjxiTfl-s%rqvu}HAh(@iiO8&=T}`kR_A@f9AKLQN9eMWQ>Kjs%G{*AHjFQkiX-l5QE3ha& zh?6=H8blP5kJv4+sLL&k_mUu*5jXk_OONXVMvp$A*Iw&tLe6X3cxrrL!DTS812%tC z_r_2I2w)#wo~Ct{R3BS6O_^=>vQ3{LwMMm5+OA&boCs{1t?Oz=1lBWZm!#`&%Sx(H zt*jP>TPe7ymAnUoRx2s@G0hI(i74VC?QfcH!>*yUxw&pvZ78$Bp6()`i@(vZm+F7 zw2#1ikGrOswM*T#Y@bw66F3PE>r_=88lE75jY=C?c^-9TvwaiBS9W}OPyeVTYUjHvvJd)fx}RRFk}tcC6ZAMvxhl5dn;m#v=fQTq6!yrssKhr&(j=Ei&XUkq z$TvvdB%$L|dbI4a@-E7;4561(Jsz;QZiPQ1J{V8L2jaoZejHd=8nGaXwSU%j4 z6ZK=DamKa~G>IVMZEv|!Uc=nb7~I3qc~G8IzJyz;&Vs@bLRG?X3Z=Z~IZkLJWf^5l zjP&9l8Zgg*Q9Ivt5r^@j6+` z=uEk?bS$e*dgE`H-1s4g@|KNftQ`Px&s1kwX3!e+tQMt*0}R*Lvgc}17tsG0C0tY_ z4p%r~)Gl;i)PXPFi%P05-zK?Aq6|cVL4VVJ1-De%x1oaAb&gYi%pG}v;?ekVy)UZv zr~szzF`L}~imMNEUn{QUH=&n&pG2)X!WvJEWIPU06=RJaHuO$v>4)cx(|(HbJeoSI z{&l12_f+&dB=m6d9g+hy$#=;r^a#!+KI5HEI`+S?LSlX9@y;PN4_*VarRw&%{h|?fNS~54S8tPcLiAsW2r9 z(bLb`u}4S_VsnsP(D{u~daKV!rZAa&EcGmsb*O%z(rlOSDzbOo-*!folw zAz*f`%Ij#2!Zqdaj-fZFdZQEgHaCv+2qP?!z)i`j(_!^Ypap>J#XYnl5~$95mOA-d-5NGpbe@vD*OGgf~DCN=Q47*<6?+?LvhU^89zoV$UnK(=$ zLrm(!xLx)ElNK_?uGV`2JaRMtMDYiBWXnszBh&B??!5v)-h;;f4)^D$ zKzlRxwPf90R`UV~p>_XBnFk1AOE!HvNVwYt{}DgQNdrxi7LXjJdN!r%Q5mdCUYWNB zJ!>oc@Y=D{5Rx_o5GmrLiy#)|0F?>_wKSqqUDN~)me9!YOdLCo?aZtL zF&i$i)C)))xNu93z4VXZ&)6H{)Dw3u@O!fki9>Fz{ocGcJ3I3}e(z1AQYkS!zy20? z{+?y*4^qxQK9o;E_FXW=6z{TKUgw--(G|O1-Q#SHDNp%hrhM%kd39d}>nskRb9@r> zto)_vZ?=1_^`wz#=#{(M4YRHjn%1U?MNdrrnF zW=FgpLXK3?$puwXGhq)d7(2JS23fnwO)tHHsUZll+dTkUS5&2!o@4zs`x z2ih2NE{mjW_u7e+*^F#7llH!rz2RgvAk?N__) z&FbJF+3xo~SiM!X?L@yfXf$^kEp4lV_Mj@UO7%^(iDW5kNu$+Ci(;1Bv^qF25zM&` zvLrA*&qMr1FaI~dtEWCU2^FUg1)4%a!L|>;P6K@`P8foWpi3`h9seHt=8Z$1aIS<)Dvg}Wv0^9bV{A1z(txI1jhYchyDzYDS}VDOOHrIa0W z@;cYZ2a-Bs9SN_+p0h5SZRtcd`@OBU(!Hk6%9FgvUSn53<<9op+%uc6;)wU@ELZ9x zbk_QO^x7rXp5N~O8EqDDV2sw+WE`~suxd!#3l}nhr1-fYEWnenpXsT)nNJK8I zKSH4J0XRP#id5LSy)YFWZkK3026#^Rp_h9026Qj+I{uC@4^pb?fHaIDzAp$Q1c{&( z5mtnNq>z9mU{_S)BZ6HK>x#HvfYh?%! zS#Q>d0Cxf;=dnw|?Y*0+*9q+g1?xCcKD6SA;Ed*vODF7**3+AS-hgIO z|HMbFh}7R<=4R?6$>-$x72{=C!reu2dCofeFBaI zUFr3cmAnIt7NO#QR$wb1LyyaOU@1ptnb@nus9l`PW7zGtfbA?$dUMz^RCNybhL9Zx zd1+FDvZCwnbcoAZ<~#91+Nfl{2HAJO7?MMMhRC1Dl*BotG2&N2c@IKWU%w=E(@i5r zJDH(dhaKg%TU3IG5A diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-39.pyc deleted file mode 100644 index a142139c93dba0b2368bfeea137339042c46a472..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3493 zcmai1Pj4H?6`%b_Q8Xnxa_lrpT1=BR37bf45uiW}*RdnCTEENIhxU1#PkX&iG zOV13gP@qr&c0WXKGSG`ZMS=9v&#>2?e95Ii552g*w@WTXS!!3{?9AIY@87)No2OuD zsmAd9<@?6ozppa(Pg|$H5EQ}2+tN&i5?I`JPo50ABKAnCXENXp+K4;IY)`D0RHPEV{T@v-2wkVdwGH5knE7mMVYG~W;u!Y@ z%{{@k*-LAyQOPR4CU3J#agcQVP81udvV}P9b`gkdu`A6c=Ac!5KMDHM_p=Ipm8xN9 zu9k5}EkMyrrk3#fk7@SOzHGK5-8%^Oq%=(uQ>lFOUE&W^8cMC3>rZ9! zv>8Y3=3r!cY4Z8{7fl@*xi$#G{h%v#a}W)hKDb1xnju0UAd=o%8VErs)(0c9ElMKe z`yZ3z6%5R(;P3GIT-4U5Y#|-^^r1NgE)QBA6T|i>NHzsYc_1_#MN!Qb@7~+Fx3TkJ z>nlY%URsLSbH|HenYcV9Vcch!>ilf1!>jXF8zUiBntVd zG)ryv;p)7$(`;`f%l}Z?uygM+r#e?wGTeY^4*)?fn)L!=AAt%UCBUZm`)t zvd8va_W1UZGqz5gu|rk$&-T0Qg=I0Uu%^|KJ9bap7ff%CUE%ICwJAK%Xa{PJ#hzRr z=M{JO1wc{bljj@Bh3rI$G zytCGNTrx)qYFHAOC{2R+2A^AUfV!vT?wR6Gn4-X>SlVYg?vNjZ|q1X02Rj^Y;;t{tRGXt*6meN;M8 ziffN}VS!%fJH1Hr&M*nd36356n#2{S3EyL)L5k@GW~RiHvSJx%!&Aid0`J%P9S9-w zqV6yqYS{N=NJ*bZe_}@|E>MyyIf#Q$3LFi&gXqMPYt(7U106=uEVApha%15~eyQ+a zFo-Dx@Pi!Cp^64Z^MhU#_P9uSk{UilxbIC)cy?0jr9Ay}B@J9s}sDefY__ zz&%IM9C``4C3^pgMS)&n9ofP@atv<$G1`!477&~Ok8BK_3g;b`W7Zpcz^bio5`R+1 z%ERiur~vbxSOAJw$KHtpRIg&6v+t_ov8|7RYLWzGmvsOXQOzqtF8#=PvI@?VDW_PR zaiad!f`6dom8bepnxRTG(ke^`BZB|#E+DnLTjaNrgdrp*iXAA(y3@HjNtaUCv@q}> z5u7SzUQ1@#IROo&G-Vu$%7K&#zj^Bv%PisU#5zUl7Y0l-^Z%=e`h6)P^i}bwG^{N< zDU_yRI8>^H+N}%FGN~m6XvF!TnO2u}YI;-Hli$sSZ{} zO<|TnjPpPPiiGu2-tO)uN^0_}q5<9AoyF*PitaB(%}$QDTlsi%NBx+{guN{Q>L+-k zH$s<*J1&-q`YC#ohaG?C{=<7%Y~EFuu|-ikkX6yQ4x}<8g@0(6x<&)l z1@#Vnty4!6g?))zM5ya(38oquZ!-slD79`XmY0WG-cJBg}=AxT=OowYE==){{m80g;oFn diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-39.pyc deleted file mode 100644 index e2677779f4bdbfe1acc194691fab5e4913d27ac0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2920 zcmb7G%Z?jG6s_*|qsQYhArFxVf(jNW7Kt4xi--t8LK4`(fMy~V-n7bHWxJhrw^LP~ z$wZS?@(oDrl4X8_&*&|y`~n*|x7s}(&ln`ys&YNgJ$3HA)h%{*S`5$ce{`pf4r6~( z=k!xU=RS(Lfl4yzrEI{YFN4&Z`2*i$KQLL7_18?+Rq!ep)TFo1x{dc(&34~=sJmX# z{z=4>BvboVSQXRM=_f$vK8ksSO0j__*}#|HARsfZ86cg3L0vXv6a9t^1xcD%aNj7!{m&V0!I7^G;dB6=3;j@wzw>dvhIvE{t!G}kf zFzVStWwGL;Tw`o5v`ykgDm2Ha1MczfbM3$sK+0WqqPSEzpv5k&VwD^ybCV~QA0}za zM@mUmT%g=pVF5aW{dKGENVG5?VcIIKj3r40 zmM(05tCHki%K_~_d9e4Sgt&(@B)~L|Ly3xwXlT;RPH=G2KUHIqu6xEokuOi48%YnM z2!0^aL~?jZ@p%qDUFSqdqan1?d?E}VDg`;D%4{-9lV|XCWGb`XUOF|RHvv5_YlgF{dMJmXpN+2?v6O-9Y$%OI+h7yWZ zxYiuPFle5IqeE2=U&{J;Z|~>5O4-ukr-c14P2r<-<@>Xy_xoDT@bvMK2d<@eb;Z?_w0a#2xtx0w#n ze&=btKT8Rm4*Emt?x6Y>#W)vxFRpH&;FMg80eb76#J~idV>U$uTth5eV=sO5JnK(` zr@p=|(Ti$sKES+>!lF8@aAUP=>@r3_VlM;NuVbFpA(oC=jZJH^aTiB*2=wM|?iSl| zDvXINy?R_A6`d+j%E6*tt{CA)&2_Quys%tP$LuzA9e++1r<1-+-3C=nny)#j3NJ2N zE+idX(Q+~Bz)Arrnw*M7D^t%AJoMK74ugj9SkUp>@a+Y^sSuU556)s)y`iMvvB+xHdS9$o04HPzPImhKB-spqO z`3k;v*<92p_Yh!C)lHnPIs@*@q*N(dCdK|KVqg9nu?_qF54$kMXU77WsyVD}(oBDj ziC<5s_!|?kLfP$Z>uszpS`pn|i4un`hXv(P z5kds$}$x_Ib^5N6#)j$h0o$-^M6t&{uXQ+f+m#)`fed^%g#@ZURrBWu;^%H_KE$xWyDZVR{PxZDnugwr6xlMJAL F-7k>7bBzE1 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-39.pyc deleted file mode 100644 index f4e334198db311e6a9dbefa52fa6b70f4636f3db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1151 zcma)5y>1jS5VrU4HsKONAP6KXs7}CbL7GU2ze_|BE<~JYwy}I`C%0k$uzi7x(p{uH z16?Td8a&3fRJ;NeGu}km2qEE>XJ^Lt%=nwnd}(Qs!1(r~ckr@9$WJud!vo_LOuY$0 z5J5AN)0k4!oy^JI*tNQwdAT3^R`;?X@5CKS-V))9;Dm@k`g1o9MQ22M;V%lIdbGa3 z^>MKMVKdc6rQ@kd%i?vxvzbmcEUpepkrw+S!;KvBWReyVymyDw%%pE-Mh+%ijilLC z;!LWyyWHwT;fCYTfWcaF(f zh%16XV7k*=sC_-Hq*4JKu0zJsA~lRD45)ncEhH8XrgP<>y(U_?F^<3;NmctwYH7}C z?P;0q!GD3VB;#5$c20h)Xj0}f8mD^lg&#<1A|thl3b|*Pmg-O{X1*4zQe`5wj{1kP zIE=D%991(jDT`1Xz_Z9gK>;ggr}phpwE`~HMPW57Zh={Mu@C@(6+D-Z z!J`o{;vC&;=WK8Kzr4YAsU$D{ojA;Ru|EY|qE^yt7rorj3$e#oA7k|*V|gj28R}ie zK2LeptXSyk5TFERn3=i_VbvOldg-F6iOe!!$rS+0xCK$LM0yB{#^)W?{fEoB8+xvZl2PTT%z$)j&z4s14n!<*Fm$^X7st9$-Pp JgD$n7`v><`7JmQ$ diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-39.pyc deleted file mode 100644 index cc4db345d366b0b25ec2e5300780d2401e8e7a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2658 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-39.pyc deleted file mode 100644 index 3e4f7b6d68501273a086ff986a399339afa604d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7092 zcmeHL%Wl&^6tz>wd8aR43siN%0wbk{utGwJQX)d1D9Oqj%gszkO5#MeTOMD)FCg&) z{03ivX3NT70D=woPHe|9ZY!gzkxF9Cc<$5pUf($x*(jCr0{lLGRgTJvAbdw6{Hp`; z6o&n6K@f;Q#J(^PHBl5uN=s4kXaR;qa1IX%xiKRRytv`(avy|K1ob2$^Epk@9(OF0 z2wYq;nNdF+L$L1L*JP5>GBgF=WSSvak|X)gvX&(UEr(V-e)JUBMArN%z&q<6msgY* z*pH)+c;p#}d5|^FKg>I2{g>@IdJCPWTAmcO0?m;U&C>!YdsQitMXdzZ=T`-*6=ZbI zI$DX-=)m9j{rg^H>ox8UKXd;cc<^n#yZ^+n{5%`f^>uh}bn04}ENP3hM3!lpE|L|p z%6n;vT+^08JHBe+XNK2)OwoIw6Q4I`G+iGrN8b+pP4#l;uC@YuV3jUIN3GCRa-H1Z zabF`hn}Tx76=9DnA}j70?QYMcO~-KPT>-cjN?aI%1qd*^3B#Ce1T#(lsz2P7{P*jo zVdbWLlK0ssZ-vr6^hgDT5xA)wk+ky)YL zH*8yXjKe-<#WB$_+Ro5o1sf696P4Rt!_xcI^k~U629#y{hWYx~c7mm<9w zT+YlqnE-z-rD|6I&UydMC&8N6U=}q{a)~yon*)UTPVptA z?lhRZGqk8-?km?>nwrN0+rn>KOs;GC)^3xfo2|`8i=}Ig#sMh5Y&G@08cTz;*<#D6 zRNrjqyS072wfStf#tJCe)AtUZ*LGP6&a-%&-P-5AiW3ryZ%wF(kCln!FIU^Ird$CT za)rX_aC}#&7maGCG35%#kSi3%yFxwB)fd6Khc6PRUwySZ98mSJXLsKkN0d6MLv2Sj zX~)rRYMoF^cix%$$Qrh(ZL1q6)I3r9y+d{M-suj_hZ~PnyXVl#$Y{TTuPC-U>Wx$# zw8+p>@rw%qm(*_CgN@O9mVG=JlH)#oavPp)e}t)+lJ2aD>*AVt1Fp4SQcg;x#NhfZ jXU1~WSQl@@SpO*%PSZgR)Pw7XRE*bJLyg~3c3S!e2p5-` diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-39.pyc deleted file mode 100644 index 94d96ca4513df6adabb2e136b82635a4e352317c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2457 zcma)8%}*Og6rY*>U~LxTkdQ!BRYYnImKq$XRn3g$~m{gIvX5PFvAMefl=6w*&%~c6}zy8ta z|5hX9FBGOf7ld!16+Z$IM9`FEv`aJAWfWzWI+@#bE$^gW=68L|yXj08bOXzKX(g+6 ztCsiE*(~galsq6}Mg%8B1kycrx^tq^CXMQA3T7J2gxhMco8-N=jc)kh!P*V*>q*4s2hUkkcxz5Ts3B(N<&Dc*STam8yUe6L6m7iRN5+ zAgTbzDzSx=7n$-=UKCRp@(4j3!~PkZtH&jTZ-!<-M*AeKeZTzxL{=gl0mhkbV*ZUFFZy4GP4GAxMmfCqhfN1*l=nvPROqu8W-lRsu^_f*!gIlg-iQun@A?JY+9FSn z;kQnH`11t=?AfU^p%b=D&gctg0s+wX4w!1ejDI>KAQ<`qw915?L8j8x{w#zAZIas|17rRPI~=-{X*4UtNF$mDf!c-Gqk>Z;G%qS z9~fB#@9Vem zl!NcKp0?KcqmJ>~o%=f-bF~M~8IP2bIrQMHVAxbSq>WOvQDodbDTRW91?KHhOl5te zv$58B)Ouj%djrj7J{a}(xrlURYF6hU-%EtdV`&!J54UzYYfn48^KfSageU6_Pc5Lf z0D*urDnkRTQu=9(I<(*?Ff z8O$N|of@mrkcPOHjqB4vh*!K6e26wS8wno+120QXDR?G&II|qnHWH56yDVhW&K+1@ z;^kz~VZ$kJ3m3Fyk3+v_!t?BIrS~t13ciO{U?Cv(I^&zu$Gwa(6c;Ecm}EGI=i}Kx zj8f!7&Yz8qu(FKxjrl_p${qxD4AG7%k=;5yzeq`aIeJVYpf;(R;D^SLiuz41@3}Y5C8xG diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-39.pyc deleted file mode 100644 index cc68ec1d5bfe79856c0a7103b462446c1c49c31d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12073 zcmYk?b+{JPw#DI1cS(aFAT6*_P(%>v5Tr3Mw!{WD-CkX)sBWm5B_W|agdDLEUWDNhDT6aa9FI9E^D{;) zfTqe$X`^K~%R;@?u}qn0a2qU&z3`Cf5CMyoJ(Pv`9#0=J8N4tKM zQd(Ji*N5o~YhXLe4%i9nSn@(uAL|8cy9Csxs>eZinwn{Mw~amU6YPZ)gMHLMYCm-V z4#FWAXK2Z4Rrp)f?|Og0pK#gqFRG@Ev(#xRe^ck+JY0Y_Uho%RDL()=%NrcaaGkms zE#Z6WRRKAfABU%vH5|Icl9%POyr)h7p=wcAs3GFd!Bc+B6RE2P&p5Q%?mSV~^wycy zfPa;rI#dPzQ(lMp%-30R!wtQJOc4tV(okt39i)d0@U-I@sZ5aH?yWYSF?beURz634 z=Hy_wTQ9SXB%de?l@+oPx*RGr1s<()xG*t%5LOCc86`+!}olwqN=hO|TXu8ngHtJ>5%F4}9N$*A1ZdSfT zoux+GE$j6il#7+yQy&Cr;brE^0;)uWa(-SFF?hwGo83gyLDc&ORh4U%Zwt+*mzUZF zCE$i$P1lm63XclC-P#yy-#`JDj?AMRnnm4XW25P4y)kfywQ6wCpa~@KjWsPQeuVhy zEQh7M$?~e{oqBgc4X6|cVHopzz9muyQFojE6U*?UX-(xlaI;4)<$F$OExk-OYE!ig zo@KdLSqJWee#{jNPE#M+sB18Vsz=p_B`kYc?tn*>4GbE>81c2Ck+Lx~fu_(5%9!3y zHHQ}P0JMZwP$VXYCw;6sjD1pdHm7YAJWXYrf9cVH{)^(1B&V z@bL}02+R#O>tCX(Rl9k<{i>Ru4 zV{LSWG|=62g!os4{;StRFC`)jvQgEbr{2A8^rGh3=uM3?J))fGL)WG{>rGP5j%DZ| zCA+~ngIlOqMKx3Qk_ZF6B^`Vep3I6%AIz zyzsb<;RYk%KQ~swQ_7Bfm%X%d^o4t1u8q#(b4Y%g@0p13l0jL!NgAsyp>O^{tc_sJm>uNR=^tiF!FAly`En_YI}yP{pV(Z486wrJRUs z;TwZjtTm!u^@4q-Z+Y5y=24Qb8?1sG@S>C5;xz2H_8{MD1~sVBHpakMcopiWTA~Uq zZM?4csNOiLoZa!%1egeuV4g#-$7$GZt(~X6Velrr1#iP@0m(2~S;*RO@o)PalVOeN z6lw~~RG0?uz`KwTr(v=~*9A;ve$U{2_y9hHkKkjN4(A=ZPy7t!G;4X4GnE5OXHng} zewnhoX$4pdpO`*p8cZL9_3%8rBkwTvyH{1IX6MP-EX-u!^$-Kmw#cd)Eiu2Qas zHLw=e!Ft#L8{t6#J#1uj_l)HGrED_Y3{_(<9QA@s(GogG6*9w8y;p7Qw2@iB78~zV zTcZkjSRRQt!d2>1*YYdRC=(=~h$?hamNclS{8YJ3z((pvq1&OkLk;0>$me)lp}Cax z3JKz0_Rl1f=-> z_QhUk;`m3d`RzWX7kmf%ZQSeH0qP+0o6Lu(lGGg2!=^{{?vK52%;2cUa19{)`B--R)`GDxM7S z--g8Rin>Jo#dj9|hI25%TQ=G_ugu~r8S1%@!vuo{EEC}Z%SE^ZA2Uy6xvcDG;~(lu zMEK9iN!GIRT{V~t)l8k`Hdw5%YW9c!wpD?zlKt7Ge|?Fg>;Y} zGDL)0QYOWK(4Wd^Fx(3=QR`!Tm}qcPFPm>8vq2trKi4}?WzkzfWu>ygKc?BK9I(kF zpO^P}%nKKV_V%=#rn%q)0W;mmt;`bzQMW>ACurU* z3~E4bgT8uSQFHC~Q{HV_6B;YOHvI;^g?kK|7}TO_!@W=k?t{8e59&h$Xb6phuL{lVHlMvy82n*(py?bNgQ&+1o`58HG9qM?GSsyeHah9Oqqp5#s!($Ubhgo$r4H=y zpdBndS-M#3NPQ)08`NjH3#K^!q+VAk$xy^#r+{ay-Q-3$gL%{y(>tNN-ZxYaYAlr! zRcIR5!q;|t8f+2&A@owtm(rWs<@oIeeUyEnAM}R-Fc2C@9z+d>Autq%!EdI+sS)rL zJPivRdf)UJ<+Jb{jD+W5AJ=CT8GVG&)EHRA zJeGPD8rgV_dL0HR$5FTVfof*=GWD3jc!SD%pGldZY-hU2BPS{+MTD$g`i3%@?=!n^ zDtAS5=xw@E?}0cCMPnJhf;I-3Vti;#Wt3c)?+M84ZVq{sm5r&XdT&XduFS7|TR9mP zd({Dht1v}xDolfSUETNW0gblvzWy-@o^blCCTmc7t%9>uE1y<^gLFC38V*uPOH` zf8yHLV;U(*S3BmBwyr*fUVV{sZ9=pE-PXX6BQ61FN&QAen6ti4D5te4fpf1yspuaLzw zP{q9O4D}oQ4u8O(5uve@?d2s(`ODxe{0-+=@<&U!oA19E8ir8ci9gSB0h%j!ODXT# z1HO&7_-?k5LXBm4&yBrsp6{ag#io~}6fjut+qkT3Z{r`9`&bGJ{e`+>dKC&YUlUa% zs*r42BJ~;Yr+{mG|H6MT+TeOrp$v0Xp*f=paX*7&rLi^}bht-Tfzkyqi68BW!}rkkdvk*ut_!FSjxe z+yr?cALNIvECr~75#jk5A8JBFhcb9ZAz$n+y)X3kDQ}?)*{DX%=KICT!lH^mQFuD_ zrBr5?4Ny#39BzTn^-56N;#RMd3Y;jYdFH!hH4A#U?yLC>ZoZ4>Opu29)<(HgGZ>2@F+Y6kHZN8^WX_(5Qvc? z@RPv_=95qo-j9~>m%$R|b}&L{b~wfIGn9fHdcRP&LN6yzQ@yD^(ANvTlegU6zvcC( z+Q2lQql#WX<_=MXSoDw_ybP~Igw@OqT>B~Jg(b=t#P5YNj*l>X z*|j2G(9d9$fHelAsWC7XUWM1-b$Ek$95o&$z(jb{z;7=playy1`bhj6sZ&VjL3KUo zOTNG0ErTZB@-}r+?`Ozq_YNC-Z2TtgcfNOEGV>Ie3e%vawRfoO-f{}g!b%$l<-KeA z9=s19z=siGpc@}4|B&(&bKj`K41?btUn#1!!N+{J@=d48nzk{Rks6@vV>(mWg_>{o z5X&sRax9-v!#wR%>a&P&z_s$Gy{*-S3oL)?{RI`^EL4Qg?S27Y!dLLKYhP2}z_;)n zOcV97XMC@Gi|=nKKPYFz9B9h-70gx6gJR6{siFd=!vf_(SOn)pEvA-$-%nDOQn{FC zM1*=i;4-}*;xuek{>V3zWqBNgXZ0$%Hrn6~xJS9zgNiH1M}&9zau}q8W~M77x1_G{ z-7a*c-b1k$F2s#+(AwKJuEGKsW#hcpuVTK9T1~Bq2)EnV$Jbft&&+F02T<#%N;cM0 z*P<^hvysevk>xkfP14ILr7LV;-UypuGi-sa5n&Yb1)+EN2%n@zDPOd^jpbvOA8l-h z9k3J9ujkWE;~%@b;gWJvYA=3- zu*RWEd`&#}h~(USf3o}~>OblU)3eIIp^A@x&W)Gtc4wKza^Cci@&a`cF2O9xSFBxD z7IovOUNK0r@v(q^Os~LIm>zp!z8gJEd+_D9@ibgxd4~GebYTn)SD34%_DuhS>#)%g~A+rZv^?BbA z<^RW;(la%gN}=9isqUqPsayuRArIUHc_ANM^P_dmwfxEgP!I~izovJYc8%A?^q7kVlCDxZp;utQlydE5s) zC%Krs>+*_I-%8oU_b}fLgRXqHKszVjvimG`i;ZUu65{^|OF7^xdCp*|-Z5$tkP@m&?_v}^s2+1a92bK z4%JZB^NcDsW>AaZq}{tsYeE{|WGR+=l(pb*zS`8iPzTcT{gC<~KSuZIE#|9Br8BKZ z)ra&34XB3D2pU5Zc+Yfd>Hh+obl7v~Jd*UW=rL&DynZ+pKOpb|L3SzzeS^@cFj6AI#B3;I}MuFi;Jz28n%|HK~s`XncIP8rl=Sf`%J$%7LICl4B&*f+V`;G{vx1BWILOd34AZ&Lq({kkL% z8kAUNXma17iM>-gC-xsPxJSRf)vDA?9F#IRxpMzbU3zuuo;)bAe@g$vr0D9}Z(w4V v9-RhujgiSiy7U^@ZD8_%D*Z1gh5Z=8%UyKt%6c9*MP+20r0vaTQ04Jg_4k#AQHLLUOCcfnU*xd`*O6N#< z2D(t@HFyT9YpHkzDrWW)l>j&+uB*en7P_p68Lvc$hnUz zoPcAx+h3_&Rh2?YC;_Q`#*#eIj7fATU7TBq4JAxv5=&CwaXyVR$P%@&n|tLy&7De^kRvv_4rfh%iw;la_Z(Vkp~IoU&FkTG{)Sobg!V1eaP zCi*a=EHK1c+;0bMZ~CvmwKpoHi1L32_R}aosDPNQR?r(az1q`dR M#Dq`?J!(Gt4~dl+`~Uy| diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-39.pyc deleted file mode 100644 index 4f9a438411f3727b6fdee703e53bbb83b0c2dfb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27193 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-39.pyc deleted file mode 100644 index 54daab992e4b51f4a5688a098c72c3a406230f75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1152 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 Wo!;o#xkABk2manuoCNU_#QPrt2Z?9^ diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-39.pyc deleted file mode 100644 index f662f0d8a4f5b2f2dd0c6eec32aed3c8670af4da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcma)5%We}f6t(A-X_P)FDiVkdtcU~|(Xv582%4g9NI}YOHr8b9CR02QY^RW_yF}_Y zuq(^{2A|3HN!hAUqIs?#3Z+4M{irMZr~<+Ixek zG}->li2fu|Lt#FuawHV2Z1+o^72}~vj2I;8Br62WJ~-Up-Fv=!kZGf`(bQyR@wQ0h zOlKNaH=9*99I(NMgLm&!2y&~r*CYJ`fFLpDBz7*yG3Asyi!gSD$6f9%$ehML;5u`_ z!3FV1jG4D=rwP&|n&Lf{4KYT*uAhQ2#L#mxcP^dpgc9Q#Zw_PTn_y1h-#RCkA+B%& zp6O9{&H8#;38kP4#De|5nu1UH=!k)kir3RsRef%A^=ifgF^Mr&-?0&bGhlBP{dz#*u?AWT|mrD|k6W3Vx6GP^*a zj#Mc~>0fA`h}4(7L{%U91FHUteXIIJt6rpD9`ZuZnYA4ova9*#%*>hDGxMEuX7gQL z4uR*JA5-P-_Xzm~8?BECjZdHimjDD2v_dwhM=8pz!Zr-gpk$T^Lzw$Sn36s;JX2UX zl1dy>n3AGV*YsLmR`?J?@D-~a?kJSvFC1oaHTU}eLz zgy|)O<#mXJXNwLmDQwRXNv~5lo+~=NF5!CJqRTray1kx9q)5dn(X(%Ry`oq2?Gvw0 z^os$g`^BI*4fTK+62njriV-mi^=UaI&WN-73qT^TR98y{Xat3-lF@MM z&~_=C)L}Ql7S4L(#Q;Cr3iJB^Fk#b1e`x5 z&x7<@bwj3CO2OJrzAR;!4rLIgeOU~7Al0^1JiPD2r>X@R1nKc@>2IeirIqyNZn#$U zuZ~|!2c=MsZRQK>`BfRDH%pso4qBqB(zrVTORi}yV|&IocU2!8#$!C>9sokSX`8W%YWAb=+xBNYr}rV-czZ!)rnphBM03n^3egQNx!1`$ppj3S(C z!g-WN0KSD1*Z>6WGZS>Lugx}nvV}%yp&rUj!*F*sZCDLWf{@D*g`Fv;hM-czC>!bw zR8d#m3l?J*-I&CapK+uu+Gter7nWqN?%Exkm~U2QMj)t zkzH8k^OnYP+rC+MrM?p$t-84m*=vxjp(rT z)F4!mQP@()*)WSzil1O+@CE=m!x?RpZcOB6DTyAn^q24y<7oa0e}W z-9(=BEZv4#L<#7@Srj-WO4VChE5)*_@Ok~Dk}vXCG&Db#<#BXP-=13HGjqA+sqAzn z>c6uvJ2wpuemiq>Df2ncP5}{ppUvg&w)g2I6m_pcGAUI3Vo6B9AazoT`f%;}g_+Eq z=CVyH^vxA)twgp?K_DIH!^OmpX~)lR$Rn^kz~o9ympYK1T$(U|fg_XETc!=k^;p!j zuF%E{`WhC^3x3tZYCezKUGEXkl-T0K(5&oa+;DuD=2kb!e!oC}Eyb69_LcRiW}Zv{L^@g2%c? zjGefCbhxF?;%@~WH2hXL9Iu6~3d%0$_u$_l9#OC3r^XO4MASIKn+RzH+?9FA0b>v_y7TKaD7Fp*HF@ttmAhQnvo5+68!XpyXq4hy@`NZin{8*9tByc zaNgoJc!w)}?;@pNK?&Xku$f6uyq0O1*w0+Yc5D;gZu>f;&L|XvQT?lxO<7S_-G|~U lQXz$rCH<|9Am#zT)MA3Z|IviV{xCko8)%ijRbA>9{s+gCwLAa- diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-39.pyc deleted file mode 100644 index 63b8cf0ddfc174029232c2188ba5b3c4bc8b308d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22145 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 YefxJC+9$et(eMWRHZ3Y{oVc<72aD?7xc~qF diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-39.pyc deleted file mode 100644 index c31d5e413410f4ebee893495ddecaa79d5013378..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37618 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-39.pyc deleted file mode 100644 index 576a275cc213ac5585aa560db287292a30f398cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21820 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-39.pyc deleted file mode 100644 index 24deb6503f19fb069a630df16d2c871956bbdc53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20496 zcmeI22Y6NG8GvsR0*Iiva4U)f6cPauP*C!&%J;+Q4m1^_r_Is z>!^EctKH+Id!)6?4sVxsw|3a`p3krUxycO%LN9%uUe9yi|NGasPjc0y`t<3Q2>-eD z^+Ai?TwRiQi%I;Sl9EJXT)2>)cW@#h2`OnvEGd~Eu1cwtMITl>|CDXP*^ab!+cY-R zQo0q^JJJ|mZ|h;(Io652?Rs2C$8u>W;@_NRjlE<2|J|K!XPw@O`|4(GcigFMWu4A( zTD6lBQXZ}9p88N4uDNsD%DU5N5;oN%quPyona?`6v{zJvl9l+}tk~$Z>Ph0(*vq4l zeVywK=IyPU7JU!Uq@G~gEZL~uxE(vem`}EQHnz8}o^x9z_cq#&YIePZ530{ba@^Jf zvlt)STen@+Y5G`=%Wm#$lUY3#@2q@Y=ug+u4l?gFBI%=%+YBq#ziNw`a)wH=6R*2^ zpm!}g&gPF@wYcnYPoq^0wr`s9joiq0F22^@y4um$amgJLyj3*4u8!_w7zT>w4Z!w3TXzz;3)>G=6zMWQCtGk_KWX<;7y6)t+Zg0G+ySs;V z>YE#d%RpNx-V1HL$Zs9pnp>l0&hn?eKvxZ9i&Jm0qWdcGvtQ$}`)WPzpX#(*xq9@j zMa`b-X&aOIWgh7%z3qG|&r^5x*F_(f>^CE4;vTEUTv`;a>bd*O+GpNrMRGcF>|2!T)%VUU#z#EMZ#|xo&RUJ1L#xi! zx_!4Zi@MLMMV_zc;~G0FYwQ}AT5)n*qNDVzYId1-9(C3x=eXrEO=RegKk**Wb?)dJ z<*aXsO*^Y`pkMXrX#VIa_04YRsP90&@AJ9mHa~MQI*Tq7wyS$+if0O+yB534s(NX0 zGTLKn%x&HLa@Mz|?yAl8oL19x>*zeRbyoD_tedY}GFtu2bBojF@pzH#t;RZaaMt5D zw!{NFs~XLoixVq0Q`uQ^)=kTnjH(yvEsLE|-)z^7=9iA@k6I@q&Lh=iS<+d4stzpJ zqyEHKY=_ZeSGlV_?=)LP*mapEBAwfQZeMmS^UgZI>-FF3)EXW*OPV=OYliJ!$JRTa zdDW%S5vzWn%1|He5X}v~IqPlfZZ|eJS`4b6nPpwyF3r4Za6YPE%$@bkS?OrcqOj;R z*4z%ZJ#1Qp>Sg?Uo$YjFDgU~&Z?WlUB)=xx$eO;7U5nlHS$r0|jh1pET_>Eq5g>sy!k{PpPUsfuEmZv)ugqz46vqIQJ<_r zteRzZx@KLiISZNxESNo3OxCWT;&yM_SjV3Ie#e@tY}~e5*RyJW+gNwqjf8&7yw=8| zXV+?veXNI{`K8i5&(kAXQ|8-`ul1D8KRZbKC-+7#*-?5+AK6KEmcFu!>?*s-?y`sU zlRafG*<1FJePut{Uk;E1rN0~`2g`sQn}^7ua+n-017(mLAxFw!86p)@DM!gr879N! zXc-~L$VeF_qvcpRPR7XC*!_4cTO;?B& zwO$s<;;{D`WQjCNlQhe@;!9dGvQ(DIayd^{gq?A|Tp$<9MRKuRA}i%mxlC4tKCHf` zWK&{(nO7p0%NnoDE0rr`t*nzPH}sg_El+QBmtuExzE9|mtD?%gzEG)ccdQS)=zq04 z%ERv15Ozm-PIq*djn#=kS7-T~lR+h|{i^F5Ya6@?D>B~1x|Cn-Wo9;s*N`m@x3l4& zq9g{5&5l7H362GafU%$g90Lvn!@-eY5D5Q%C6OHnjs}%rFc<+214F@a;BYVi90d*q z2Z14A6c`3ZgI&O`pdZ*dgx?Kmf3Q2)1C)XOpbyv^l!F~XU%(&ZWV?d{K%`{{q@G|W z&?AH&sp`#iKd>h_0_+8L1N(q|L-qS=}e;jd|nOzY!J1@GNe_Y3DkkbpcS;!9(C-@KNwF@CbMmJO&;I z9|uo>C&5$TY48kq7CZ-@2QPpZL-;enSxjF6uY%XWC%`Ac>);LWDe!6V8Sq)~Iq-S# z1@J}iCGcesfEMr-@Kx|N@OAJF@J;Y7@NMuN@LkXfz6ZV!-UL4YKLkGlKL$SmZ-JkJ zpMjr)Ux2qm_)C#~34R5B4SoZD3*G_mg5QDPgFk>jf+KicU6p?4gegn89IOe}2J3<=gZ072 z;OgMo;JV=Y;D+GF;HKc_;FjRl;I`oQU{i2MaA$B=aCdM|aBpy5aDVVX@L=#z@Nn=* z@M!Q@@Obb<@MQ2*@O1D@@NDp0@O@M7>%@N)1<@M`c{%gUBZTP|x^)v~(f@|HC% zSG25cS=X|@WkbuxK|NY~F9^SGrM*nDF}1{N?b(oOtX-O_^;&mfJ(+1rHu>WD$t9`g z)}3rKxrFa#t^G19n(G&&8j{UT>H19lGB4?;GWAWZyDs*;=42|ppuRrY;AJwNpKk4$ zYG|%Y)p!}7*Uo>R^z@ouT{UFXs1c)wjGPsEGN8G>xgxpD3sdG-U|qaSMY`q#|C;@# z8qfDj!;7tbr_P={`K08G@w28TXI4#`JfpS$-08C>Rn4tVlIf&wPnc5+TtvTF9E z$+KJc%5y^R9uT^b#Es<0yf^!`+mG%&obdaWgrR`eF@0Q;R$=Q2zg980E6chWeVy<`tQ`rpDnFqbtJ{dPAC13l@jj zPgjPysQe%ol^^7ylJwWoLs9xGnpd>;921I58@%Jo!nCAE9h^w??p0c{ot`(kjoVI^ zOG=Bj3t#nO&WkxOR0fK@R;WxnJH?#4Tog(w=Dbjuc6N$6ceyB(RLpsyGVSaXbMA6c zD5;q9LS@?7DdybeqEJ#X=Y`6&vs28u%SEB2V$KVdX=kUHbC-)kNyVHOD$~wRG3PE9 zg_4RnFI1+Tonp>iE(#?Tb6%)SJ3DW5TbbC}=cVqKB)0w;yxsmktc$)VZNCiAb%~zz WPkFbv7w>i7q1YM!*BR)rGyV+&-p!u? diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-39.pyc deleted file mode 100644 index 6ae7dc6904e03b61d9786f58d44e34e720530eab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20564 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-39.pyc deleted file mode 100644 index 101ebe67b2997a83902da7214792709579808a31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21765 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 H-^%zGL7I$b diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-39.pyc deleted file mode 100644 index 81c5a8f368efcb14e67c07035c4426f17d62332b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26368 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 ak_u#%kyImV2L-aq2wG&Vqyk-5#{U8d8Tb1D diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-39.pyc deleted file mode 100644 index 24b15e52275b2a6a00f70f6d4c293de2a233b8d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20740 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-39.pyc deleted file mode 100644 index 9e9938e219a329b236ae015635564683a505de22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20580 zcmeI2cXV9U5rqLtO7m>VR^#qkV29p&@3_!= zuc0IXWYT+&(tDKN3#sqhpC|XNY$qqlInh7MJNn)&b7y`t_ueO;g9;-@4$r0k-S&F@ zl4pBra^Izs{ja7bmz$6d6c5@xm$RJJwC6f%7N(06O~)%w0FJ<1OKuE0m42aktUoTW|V zN(EG)uKX~sJfc4J5c zxQ#s3rhR3F4n0__0+k-rleHB13T5U>H0o!Jp8IqEvcv+P?1XH5UZZhVk%@wZqM-nb z4OtOSzGUIqcARD5g|Q?cc#(g&;YjXzi5arH*CTUF+) z$jUZWD|-$!7gwp}>ePco@}KM|WATYSTJ9y=R)&=d;(A)Xs&dq4;_UjZII{lQfg@Q3 zURAe=St#c?j%97CQ0Jfh*IMYKzDugNuhmqI z+R2B`iaeko#*{+kkzMPNHLo+T+mA1O4XK0IfVIl7(u>!{{qR-|TtieZeHxcy-Cst$ z0*Z$h<&LuGK?fwNtI_IkChc=&c~&}J!)JPj5DeU@%$uK#>jg2xLQq*Ti_8rVLcGv@26xvx;JyI!F;~T&2#9D{yP~SDBCRie_~exc8p7Dxi~~ zF{oU<7TE~WpbRP%cm-UiYUZk<_R3l?&q`M&`xsf-`0D6Q<0z0;X5uRJNu#Usx5ly5 zygYiH-2-|&mLe$|wWH#A65Y@L|Lwb=8b!6r1^Nw*_lfK@<9by^AJ?dAfM0oaKiWZ6 zlrdM}zW)7NXAC>3lt%i#Pwsu=zLc+s0@TveTjQ+e-fPC^6j$GT&K;-UACzQ&UowtH z_bxrLT0S$d28yqWdycGiUA)~hz7;cS(Fk>-!mPt8K3PBVF9lM@h_7UgcFxI+>(>2e z6{Aw28mLeHitk=x7FvT>wAGc*f$NG&@v3MV)6V)lHDJBh9BZ!v{^>!lLFMYGCDuT> zt9~AZ)$T)W?S$IW=TUVMR0Ao~i0@WbfvX~p_GjQZa0RX^+xNDV5k)&h1dpt$t3Jw+ znDJ3B%Z(|JK3}OUWG_-r^9KJ zj*dV1LBaabbWRlkTk?v&e1CcCH1c)@-ts-dB347OTsyuuTmwavbzH4Fpe|-gOFN;g zrB>Ql&z#ozYTg=)HON|cn^`H)NVXoTf%4a$`_5yqTguZ${uj2YFy704zV zBd*HULuZUQoB>tcwNRH>1y>vWD3-jb?YrPJoGjY-VZF{-^gv7bdL}x1z9X!XFXb*T zvhlUd>!d(eP#HtsBMyuz~E zkOGfHbUhw5TLY|^jeb3=s6e~mx$3PwW|e25w)~Kj_K4Yd>Rpp|$9I89%y?y8i|-@- z|L!D8lPf0zyCP+NHWkHV`a4?@>DrhAUlHFi4{ynvdRZ!GMm(OcaBtauRzVzBEB1Y* zznO`*gWZs=Yw|w!uEN*y&RP$=3$oK~&MNS>>P^pYtm6BLz&r6ZOE2yfzSWZ|wNVg# z=$v^poi+SvmszKtVh}~A(bah0Z>nNqO)I_?k(09VZ=!1PujxwNsH4A8)gS;@V@((T~>ic+)ip#FW2T?wF|D76OZtsetC#?J@I~(hT?Lc2yOXk&I|EuhF{&pSNxBK?D&(V+T;%ppqOTDEc zTZ77bll7*YqbDqhz;5W=Yc15haSPd1Mt09ylT|R#Zo~ap-+@_rWj#Y*AC)r_dumC6 zuO%mq>#I&rW3)6wjv7^-I+cv*91;Z!Wk^Krj`XT>s-C=f4WcsXq@Nv&ZTIa;u=Dt? z2`#9It19ae)%fp5^1w!K+W5k+Dj+qkUvaWKtg2{@E2pPN>l78=wB#G_u?A91%(zn7 zVXr5yRs~VY3awIAAftHkc=D(S^2WRrqaeoA8sacZW>Jk=sK&qIC>HdGRq-LFSH{=# zR(-^QHSpZ9(+-fI)GH&;%d^l4WK`PluQiGg^YeW0$Ee;>fyb0q)ls$g_==+1#Q2&e zrXnh9&r@DeCnZ?Zik?xB{w%DuO$YrMYQtuj zwu8OZcC@$IPPVh{V!PVt3e7`oH{0FzNHg5i-fnxP71`VNv3lFr_OtzMj5S!J9bgCA zL3XemVu#v0?46nQV{M!rW{2AmcBCC;<86XXv`IGErr1g zW9>MbXH7QW7TEE2f}Ln5*+P4lz1vQUPV2I6 zJI#U>tz^rr$4<91Y`Lwl_t=?smYr?q*tvF|oo^S|g?5o$Y?s)jc9~snSJ;(ym0fMu z*tK?@U2iwojdqjWY`560cAMR9ci2i>WvgwC-D!8(-FA=NYxmjx_JBQT581=^h&^hL z+2i(vJ!wzb)Ao!#YtPy9_JY0l+M1QQg>^}dy=X5bbxEzgY_Hh+?EO~_T{y%((3Gox zwV%Hxsjul9)zsFxxILM)yp&9CErh0|G`q`^_Wrtby1y2re`%7dAK(8L+HVJqU~jN9 zI0Wno#(+b?5nwBDAlMExfPKLMV1KX&*cBWM_5w$N{lM51VG~;0gPp(##)i<^2D}Zt zm9etm9q96xGyUadBWab5x1_Zr7z&1g&A=95G#CdC1Dk_UU_5vSI0(EG91eB^M}qY4 zZ*u)xgIz#9*c9vowgrDr5f}>u4+IYc4=4>p3+1$s8xRzb8>nBvb0F1#t3V|~xf)Yx zAu_Ntfy_g>5M&w3b(u(uss%PGpf6DDFdC3TKz(2r0y`Mk-@q;e_BW71Afr&;w+Xb^ znZV`+wmYz^ffEtf)xdTKY8A>G`fS?je+E1ao&ryTC&1(2G4LpO1Uw8L0uO=*!2RGp za4)zA+zsvmcY-w_0jt3(uoBz>ZU?u4Tfr@03Ah>D1a1U3fa}3^;96kd8gMnZ3S0@U z0GETyz@^|6a4a|(Tmss_#o(e8;SgFEf(yX;;5=|HI0u{!&H`tGRxks!fVp4+cu$IO zD6JKs8N3@T2WNnHfyLl-Fa`90WuO2`pqL_*5Bfs70h|W9L05{v;SWcF2`T!I2Pc7} zQ-ra!=74En9yl>Y7)NV1m;~m7CeR6HrU-}8I+fOuv?hZNa11yBEJ_g$r_M^2w7z4`J;2>I~!QP+&)Pt=+ zIofWth^8C53$25}reII72iOcflEOL;4Xxx!1dr_umU9D1@J6*96StGgH>Q9;NuZ)1Gj>k!A;->a4on7TnVlK z7l8}G1>k&e9yk}A1I`9#fipq*5-+E<43t0-1aKPY2IV{0NvjeL6nqSP9DD+N z5_}4L8hi$P7JLqT9()0O5qt@J8GHrwfv~oI=i|@}W>_>+0KPX_9p33&obUwtRb1 zDkY)VH>}X!-CAf)N^|Nr>D!~bt-B%LlcfJD4-Lezq|{JsUZm{rq1izVFMQBwGXAA z*P68A;LXz;Te~`v#^$uprx%taNvW}v6ibbr$)Zxen1r4*>(UvW`BY9zQYb_wv4BN2JYV z?a5JfX^O=ichBWU46m&j#OJjklLj$*O>H%Pwf@!fKX?_W-oNVo8@$t3{r*?)U-kY~ z@8956pnCtR_iyk{U-kE2_5M}wU-kYCUInW6uX_Im@AOrF|5fi__5M}w-{4iCdjG2T zZ}3iE_4i-({#Eba;NHJ;bN|cp+NS5^{@Ora$(-7K*7AQi3Sfa5iK(tatQ@J02nxx>A!>TZKJY&b{dhN`P zTVk9GiPR%pxwXe$_#^sf>T}X-Prmw`-0uJaK@J5UR=#x1huXsvtpm^pU~yRYs_UX0 zPan=3uQDz#b0_qu@#WOS48WtwHS&3xJE2ES@Dpv3uq>v+V>gHhL}{0ZlB7FUI4#O` zQaQE<$wn$PE!EZ=sxI{{)mxJa1OalLxLwx`E%$7&+JlemK~9oA3yFioMN&ZG0jVr1 zl)f~#=na7WpVPZ@J#yYWTid&jaD+dV(830~v| zLX9K22}F{RLdCO(q(uc4Y}X4dVF`Pegtl~qBivoGLqiw%g76Gq5JlmG-V;+IfZyUn zVw2E^*q74aW_j8NEko@QdE{g=IFl|{ z+|)@1eW_Fc+ftA7PTbL)r_(%YB$_uN&v+BqBrWlllAFBQ8^l_w)KM~#`Uy?#L`E(6 zE%MBe^C#q4QeE$LWp%BStUqXMNU5t@Cb}BSmgb36_od?cyO{S?uPKwHx^Q2{_p4E7 zt=iwx>%I8Hg^Sgsqvg4Nqj|5eiJq#WQv!~R3?6U>)WAZ2OO@dX4TJ!b zo6s_KVGduPgl*yAfk)z3!_8-bXhaNR)~1@x8uYaN$QhBxrmq8XY}r%|z-O(jex{DW zo;0}r)wM5q?aC@&zP+TTL8P$!)Nv#;NKQN_Cl3^DU=mDW0=@=xIFs|%VEhkPG2F&g ztaCw)J465T`pUTr7e2mt?tFI75jUm*LI+{vaic3E*qxwLy z(l&(3I!Qock8DBjF}0|j4HrULpky-y8*gMgpcm{DsFh1#jfJsU22BxAw6dU@wo>ua z)2&Vfna&?{^g5SuJA!29k<=hd()~E`8UVW5tCtGU(8d}(lt-!El2T~cmz)AZ zs82nZK4pKo3^|+5P>&6d=VFX|aNE(0>}fK!1dl?=KDyNZ>8=IEYoL;zPWZgqr=oANMF z;%AO18lbC(c$SFWcl5dDQuTmNYE~Q&bvJ^h>#CB-yAfe zOkXs=m_n=*x-rZrH+gT-6R8V4mPLO?W@-nW=m>asn?Lyfz-Z6vVu$G z>MQCjn5egqyp04sm~hSXGjuKWE@jXE^i5bLm^}dvn9XcRzTC8?>3^EPy6@YizX2`s BTpIuY diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-39.pyc deleted file mode 100644 index 4914b7de226cd113915ddf4cb4ed73b377f8de3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2272 zcma)7UvC>l5Z~SVle2Sn)1-e=0VRM6GNLgO@KC8BAPH?G;-J{&!4g`Xy=(j2^PRi5 z4vpo$kf1*C0eFjf>pP#IA7fv6>Q_LO!pu4e2~8ySyyKbuGc!9ozuBl%DiUbFzpV5h zl?eF@g|p2C;cMvmr$7V|G$8}pq!f9Uuz}Nb25!@( ztwK#{trw}f)IX@KB~^u)5V<(*)^((%3AdtlFHWVE+OXwZLm#l^KLU}YNd;*#L7R@a z@|<+2wOeSqmiL5z5HvmMi#ZV-kbT;m1HK@NmJh_d2oFfJAWEVP|HbFTCCz#8biv%% z8YMdZc2CQ5zK&OlE6^^Uv{SV23mGVF`0q1cVYtGGe5$9UPt&xtilt*cl z?2V-|g?1(&wmcu0B2S`R^EQMZqVDE0=_ntRyr8DQc^f8k&R>wfcdNZ@Agir7@BJM0 zrPNg|b6rhkNAp~&U8%T!n)0E_+A`0ptGhDYttN4+I^5H}Ed6ZtUNw)kygQ8AkE5>4 ztHXF$<*-U*s*2VHs2sGA%cTZ2kOr&6Jyif-K7yVHKnPu=K78YMFAn$W$-�RwoVl z(}>>(;UwaRY)U9Zx$mgkNKa)~t%B^%WC6Ew<_1_z&4G@Juh64ez&$0wX*G`n2p1Is zc|jEbhNv=<1teFIECRU;J;ybKmf<)>+sAKTawx0(jT7Oi)=&?+p~)|h^mVXVgNs|L zWqNZkOyoeOT8a&&GNqPa+02boUrcx$Zk|R1`2{Monaai=T;j^v_5aT!bq(!aM{zCc`$=Y*x!i>iYv9Vwf6??mMAHH?+)1S`(JAHQOOz4E&B2)UznK;_* zdyko_!Hj=6Cjfo@0D57@=0h{mtb`V#>@X1zXIc-)xR($&)f-M z6-NF59D^+wzbc&j_`i6#gwn*Ff`g!QHUb_AXPF?qNq)s0C-YRe$NQPxe+_J32hFeT z&KpyL+~LhB>Rx{As@EsJfqV_BgjXBCcPC$g-wa4Ay;!e6b;#68q*q!{!eGv(vBETZ zbp)+)%XkVdLmDTMsm*0mOyyI6Hy5J3HGu#!s?t7wU*7WNXw_H(^RGBSDxM zzqZ}rTN}oo?KJ*oqmFX$-S(r}I^S#By9=o-FOeLZ)qL7V8hUcN%Mt8ocpvX9I-q z*DIa{qY3cv;FmHqhV(x!gVsWT$<5IP3y@Qks1L!TFQMn310i$)z9J21@yKO?MedB^ zSeY)eWy+3xr_4fF6&^7bu<=`$zzGld28@ax(HJKO$|JB(Uw@(Au(SDyO6ZXBnYinyfAd$a8@B z3?@Y>W+=xI#@e@-mD`bRe49DB8@a}JSSc?@W#hZ7l2@au@k`9h{m3_dnFV<*su{n+ zZscpxn(?dbX1*S+W3-1-FZIt*>Qg+kqk0;&QKR-7LmCaN>dk)4+f?rH(YQF^qYmW| z^^Oi-ZC|qX{_FOV`7e)}`v*%J?CoxDJ=$Dyz5V9hC2bz;JlW}I4~C)$rzo;g=Nxr$YNhsBHL}lX*9CD`o02v#B#7&zcvTxcJ*r$71%z@r6;w7X z zxG|x_NyxHJSe(lKXt=ep6N*gIheezm$2}^-A}c}yr_vD*6PSt=ewlX?(bJIIH8O|8*jsdb5qye9c^@{8vtQ6#)h{Vw^Uu106kpEp6esZ8_VwYyd0y8^28t$ zi-6Wh`E;BN78M)8RM6|_AzvKQ@|i=&d=b%FDnBV;)E5ygtnxZA?TdgG*<6w*i-=a- bq`Oj=sZiIYDo^K)d8Wr-=z0Tu?X&*@Dfu5q diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-39.pyc deleted file mode 100644 index acd5657965f63f635600fe960410d85ff8fbef0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15728 zcmeHN>2BLb5EgAxmo49x6~|W+$FY()YLcc%fTC#ZD5sqSmV*NPBgooS?9`GCQMvpE zeS`vifxbqcAiw#yKmol$n;z)Skjo`krlP}f)P^Rs*UUFFJ3BjE(kvtr@eup_@t5?A zABv&Suh4P-ybFQQL=NZDnn;m7I>!OC$Oi8Pmt< zD2dTAI!?w>@&uXCC*7;VJOUSwBrZd)WnJz*@bZ~EGjr*1WLZ(^qWGcQQk-__3q46D z^(i_@k~B%D$P~^fMN;}HTc*QnTjcLMZj*Z+a+~w0j(50xPVv+Yvjcf<4vzNJY*y3c zlzy6?VzZj2r^z(VYKENFXWg@Eh$FXT-j-*;`<(98oYLpWj6P3iS?tZxc`}Qd7s#A` zhG-7ERFh8uJZ;jX`*agz(+2x{fE^etsz8Pnr0GR^iCn}zahY7oh0>Sn3OjeD6?1T-P~6$A&|Ixhqst*SS_MkiMV$!= zRr|XT)eZJorqH1e>U}V2H7Gjp0jygcU8jNndbg-!bcVsmp!omzz**I_Cg(1UN}$&v zDou5D_xX*qW)2kh3Wkxd6}I=NIcRlCg<@^LY7Q8XQ*F{vai>tt@6n3gS1X0`apqgg z+-`DaH`q^^Z>==_QBp+&_IImAb04%S<>T@B+J`}nS!@XA+ml5d{W1*pwO!Ps02^_N zwgt4WQXuN=&6fK#fPM}R2ewNv=it_bs7uFPN!Q7@u49<+8v>zQhc}F-w)XVam$$6r z>+xg)u@5_xhXOjp2C!Z}`+eY8Dk7(w7G`Tq7Trkk#fqI2wA|^r1#e*L>CFO`I~|sv zyD*9{p1|tEaQ4~S%EPC}_^kiApFMp~RsrEdFOqt5A4yiVkQ97baPx`6m+vG9XvRq> z`cLS9MNX?noj9!&`DoKhk;gL`5mFt>LjfIP16Z5)_+E0Dh@5U(_*CDGfaX|CEzKWW z#98!H-4@YER4x*7&}#Db7S=o+k&k!M=0Fd^JC(!en-%)9xKexld7drX52fZCLGp9Z zZ9R!&Cc=c%lW#M7^Brqo)v>+(b|+5XO%5B{4BuP5cKzzL&og8Cx~4-ykRn@8k&>^_ zSM#Wwq;x1bv95Tb z*_$nqy?XN{2!4kpKFeyqH43R+z{Xg&J^*9MW<`Av_!7X9;zb=iR7Zn^*QS7qIzV1} z#C13oOrnM1D#fRWMG+#-V${L(Lk-gN&By5#Q=^raWupq8kDJle2lsB|*Vc2UmfhTZ zvT16$t=pShX86HYF29jABS_C}nd27Y{o9-Q_3Y#P*6r2xteLQ=8~KeVce3kd48M*- zX;G`mfD`th7dd3p9Vq));NepXYBd3B4@yv*?uI_vbfBzhLt(HH3UoJg>pKU^nl=;$ z8=*kw(75$J1+g)^&A^j<*oz+K92_3av4;x;N3g}9u%AQK`w-z!yf0^V_RBQ0 zy=&~eF1(<$mZ?#rmZ?zoxMk4lD_YIh-c<4j)%_whjLel+wDKymx4WG=cw5`quUx-! zD`V`|=*mH%_k5X#;)JgS+|yd0Y<8~761SM diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-39.pyc deleted file mode 100644 index 05c4bdad725765bc418f870e1db6a68864660fe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3125 zcmb^zO>Y~=b!NY~{Io19c4XNF5!gitG@_Fnj1*}UN1`RAGG&N#fi6%CmOCSI$t9Pb zT}qWoo-82ft;eP(DK}m6Bl0umR`ldc(_>K}aNe7hEGda@oyEL;GxKKVeZTR`?-YfA0|TFC1KM77RXzo-_e)!f8Z?)T5MegPV~tG(A(}R%8ur&mKCSGt7B8N(AM0 zmvHAB`pWR!b;5JpJtEu{<}1_7^L&fc3a{ZzQlqLc@`r+_lW`4|+Vf>gq|asC z5wd2gn>gVIsgSFFD!Q>eP$gUpN8MHmGitsiUQWa)5L@9uL}4$Exw_qg$@<-i?-xca6&a*UTvE)Lsp+8oY^F=nq&FXe~Fb)GhV&gao z({N8P>8D|=<_AKInV$q<$Rd#fr-^d?Xx#HVA`MW~%MBHaE$ILd#G{;e2B)6M4bS4H zXLHMQ_^q$VF4d~bdpV8gdEv=&s5?JXMyA}?p92RW(2?%0ZvS5C{^M(Grz=mJ!8xNqgfzrF>&cgZq$H(N^2#_i zP6#Daz?nHU09sQMpv?(DN5h zL`uYMDZm?Qma-BN?J7GnwfpwIBKpbMb*EJ284KXbgt1fdzrA`d9*TM=OnUo%Ux>7x ziX^R%#BK_=O5m8Ke;(oHKqN_hc~6Y?>QUIKj}OvbJoxo2kx2(J;4u?dhs1ruQB=ZxoQIpxATVhTkHN7 z23M`iwRO4CrKxpnpOA&jwrK4fN9bw@wgq=Ho3G!%2~vl1LEb_ftt#&$co#tqfST`O z3{HkD$f7zFiCo0hy9kyL+yih*<*yKb55WTj4-w#DPoO6y0H6Voeh%d~4)0$lxwiAq z#6~t(@gTf*O8P`r5cX*cM+W{;EIAL$HB&;SBr=cS9R%+q&|F=xhO57ao;UyqFy;u>b@nA_FVj{s4T%qd+XfBO5(ni|K>)Jk)G_r#dlQyZ}SfJko&d8S|B^f56A zD@<+JSA_ZR^nB@Tz67)7D=U?=6|~%q{U&i8K(jK5L21|vLoVPIvW<9ANT%$>S0cU#Y)tapyz zg%HS1-4iH^uy+woygPbdQ!Ne1**QpMA{FddI}Gdi4BDz$O^H!>_~2nu4dT&m z$g!$be^-5&{HD4usy%;CRQ>9HI2s9g_{lF(bwm{JS4W}?g$an0UM$mKl2+3mxPPw~ zM;s2T-OoIv0+*?~yI}Z&bP@winGm$nMlAoLxz>2P z*=($--0F6-y|cZggH{z=Po6#BYOvO(*U%B1#k`K{+jx);avehGM=HP8Xg5~do6U8o zQ(v$~bNj{m2HRWi=&pBjrAwj?rv_k*|SD1uhWilJMe;lee#kLtgLS6cY<;v zoxyZYP=yN~f07lHwJQYwBM6*q03e1-3)F&)6}ra^N=`P7*&9x z1l@XL83m0Q)S%W6mIaCB-gSuuue*{^Fo@B+bl`3Q!ZB3A<+(Ai(1j@MuM6{w`bq?LRABoLu;#4D`wtU2KvllF!|Sv%m7sWM3eGESp6&X1iguX5>ai|8-qHapgB|& zJ^b}`YPsr2HREZsb_3rVy2vwl7~q3r5(#*Flo)$C@uO@-F2h~&5rU5pJVt=kS63qC zLT!fUOL~yi2AzaI!&PJ!-X+}9`J!&UEndp~G?V`` TEU>z`mW&czFu_&dScM+}+1&y0 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-39.pyc deleted file mode 100644 index fd57c29a200735c9023c4e9802cc61885b482cba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1710 zcmZWo%WfMt6eVXyFKhI$B0IK`KDJuaQzwuk14U8Wac#k`LSw@yH^fLoOB2sX3OQ2h zLRmRLexU`raF+Rv{zEt1cGX3HpqrGJqu8>-!5rKdFE8&s^a_Oqq}K0$)?WTqM(A%) zW|yUuAJi}YP~amUhbY1XV~~x|h)iN?*$k~HMN(0kq_u8^nJ7!LQI6!ao(dPDJjrW0 z9okWW6rv(2MkP{;%A_1ElEtV(D%zh3A4OGC)p9mmik8W;mUH3bXoaj`w2%A+KmQi_ zd4_LHvg+F|suljhs>B+WmEE4lT^8^2!D#psAG8@)R{MapIeR_T4Y}5IPido3-=cN8 zbAGhH-D+;1(Bsn=dq?ugMf2pv>4i%-p4KHfZcaz!1ScBE~y(iGA!FZ?nXFhb%-aHC0oV+?`!_W|kco^QQ&$EU6z7 zir*B(D8>_XW850=5k|3jgWllSic>zGD5|_Mv}|bEoZ#E^#F&`x4Hap{nHz}AYRqX| z(3sa~Ybo~ zOmU_%*DPrX7GBCiPd|z28FDEcbc2o;(ud~iI1rjx}zly*W-2ueSo|He*l5HY76 zh~8`OC1bG@GZ8y|b{SK__?U4T|I&w(I!p*>ea!k}Ck)!o@H*}d`p?$491+Cqo1xda z^14ho!(ix873B}O(^2o)S1CoiBf9XYll!a>uX$D7&r!cDQGximiVdOf3aN>U$BRR4!1M$tVQbru3C+O5)K~$ilQA9TtXa zq+hCf5&(|#uK-}`>*^PVf-KhhNo`G5;D%~4GneBKBJE@p$$d3TWF_?a-S#N#dOYy@ znk4r_mqqY)Ib&Ce=Z+Y%1fC>a;?hhjgO!hjxXY#aq?x6OrYWb{1`L!1h>v?-kmLZ4 zNu47e@hdg_#H?9YQsYXlH7#HB8(J{a8{H-7jm&7gxT1}WuuI3^J@!a G+x#EbyT4ul diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-39.pyc deleted file mode 100644 index c64751ef38674071881ea7253a7c0c9275055ac2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2493 zcmZ`5O-~y~bY{Q2Hnt&9zN)GsQgg7{;!5qIm7=OC(1a+M2s?*bs-}x)Fl%<#W@bzQ zIVY%c&9yf;=1=sHpE1{-_zStD@6Fo9G|HNpc{6Y3eSZ*DDkTEnUvF!@zpI4&gPZBk zgUwGc)bB8H!f8TM+NKm?Cvj4@?ONDPywq>|7WR@LEwl?3_LDFzwu=@Hl2SU;o=MB? zG9`}*FYxe^@KDeTw_V}ICaINfD6pwfv$Qizbo}#~78{3=YzqBc_VqEjjw^V~nmcS~cXR7m z%`s)B3 zwRZt~=Ih{sz*^9uU5g`fRl*ybG|3y|g?|sD0b#n9mcWitql+bUe@svmoU@bD%Ng|~fdqdtG*AM%tsPD(> z@Q86E1&>jvpzVJWsvg$3}xe;R%wZb@H@BBkz0CwVug>J z{4=0%*W@G8b93XPX(dvxd2$98Yg##n&@4{(a9Y4=5vL`b5c?Gjg(fB-)%o15=hv+b zKM)3EU<2QTFadkgqZ7uCV|d*UTz?5ZC#u1-tV`-U_7HpNRFY z9g4V5a$LR#j`?knn7hkxYlQ&h=g@9l(?%ra73gy9A0>?_Q2=Xr-Ij^aFVmT~d zgN6uStz4rNt4AL0CtAYEBKWS*IKTfut-)WOC~JqYUW26W%e6?a?L+wm+zom{V$|KB zZ*H(e+`Nac_9>(}xK$W85t*#OxhZ8(Wtqb2EHOTfzqPlwyJv!=-|Y%%d@lBfU5W80 zS8+o3nxL`UVmn(V$X}XZyVb;f_{;8##wOct8NbO^HEa z$+vm@dj~>r3GEEnTTx7LbE~zr(b{f2HnZKnW+LkkyN8TNIx0*T6+5T#*ghr5w4zl4Y1!%&+r5jqDy zEIp<7o`VG_FGD4}R_PLT;C$X$fiwzhc+koBuUsojXD-4Al zgn&*ZdcHa(?OjVl6N1KrHHtBCB1`*xm>^tc?06U@ImT9QTPRHkQ3^dvpH0ONnpYxU zQyF)djz|*dWVddxHP@C~Y<6G3P*`_ES}v45hn8F%;eA`L8?~yLP4~w&FwY8!VQ=Ph zciVVM^M5>Sw}j@04QHx3=KV704LX@V%^PF@Bo%a0+gW{)4O3+!-{wf(C~oDo5Xx)9 Thq+CD#J;1jg+UOEe{=4?KB!sm diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-39.pyc deleted file mode 100644 index 0f61dacc2d0da9df14644d34b72a335604bfa3b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5841 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 -# -# 128 --> 0.42261 -# 256 --> 0.57851 -# 512 --> 0.74851 -# 1024 --> 0.89384 -# 2048 --> 0.97583 -# -# Ideal Distribution Ratio = 0.74851/(1-0.74851) =2.98 -# Random Distribution Ration = 512/(5401-512)=0.105 -# -# Typical Distribution Ratio about 25% of Ideal one, still much higher than RDR - -BIG5_TYPICAL_DISTRIBUTION_RATIO = 0.75 - -#Char to FreqOrder table -BIG5_TABLE_SIZE = 5376 - -BIG5_CHAR_TO_FREQ_ORDER = ( - 1,1801,1506, 255,1431, 198, 9, 82, 6,5008, 177, 202,3681,1256,2821, 110, # 16 -3814, 33,3274, 261, 76, 44,2114, 16,2946,2187,1176, 659,3971, 26,3451,2653, # 32 -1198,3972,3350,4202, 410,2215, 302, 590, 361,1964, 8, 204, 58,4510,5009,1932, # 48 - 63,5010,5011, 317,1614, 75, 222, 159,4203,2417,1480,5012,3555,3091, 224,2822, # 64 -3682, 3, 10,3973,1471, 29,2787,1135,2866,1940, 873, 130,3275,1123, 312,5013, # 80 -4511,2052, 507, 252, 682,5014, 142,1915, 124, 206,2947, 34,3556,3204, 64, 604, # 96 -5015,2501,1977,1978, 155,1991, 645, 641,1606,5016,3452, 337, 72, 406,5017, 80, # 112 - 630, 238,3205,1509, 263, 939,1092,2654, 756,1440,1094,3453, 449, 69,2987, 591, # 128 - 179,2096, 471, 115,2035,1844, 60, 50,2988, 134, 806,1869, 734,2036,3454, 180, # 144 - 995,1607, 156, 537,2907, 688,5018, 319,1305, 779,2145, 514,2379, 298,4512, 359, # 160 -2502, 90,2716,1338, 663, 11, 906,1099,2553, 20,2441, 182, 532,1716,5019, 732, # 176 -1376,4204,1311,1420,3206, 25,2317,1056, 113, 399, 382,1950, 242,3455,2474, 529, # 192 -3276, 475,1447,3683,5020, 117, 21, 656, 810,1297,2300,2334,3557,5021, 126,4205, # 208 - 706, 456, 150, 613,4513, 71,1118,2037,4206, 145,3092, 85, 835, 486,2115,1246, # 224 -1426, 428, 727,1285,1015, 800, 106, 623, 303,1281,5022,2128,2359, 347,3815, 221, # 240 -3558,3135,5023,1956,1153,4207, 83, 296,1199,3093, 192, 624, 93,5024, 822,1898, # 256 -2823,3136, 795,2065, 991,1554,1542,1592, 27, 43,2867, 859, 139,1456, 860,4514, # 272 - 437, 712,3974, 164,2397,3137, 695, 211,3037,2097, 195,3975,1608,3559,3560,3684, # 288 -3976, 234, 811,2989,2098,3977,2233,1441,3561,1615,2380, 668,2077,1638, 305, 228, # 304 -1664,4515, 467, 415,5025, 262,2099,1593, 239, 108, 300, 200,1033, 512,1247,2078, # 320 -5026,5027,2176,3207,3685,2682, 593, 845,1062,3277, 88,1723,2038,3978,1951, 212, # 336 - 266, 152, 149, 468,1899,4208,4516, 77, 187,5028,3038, 37, 5,2990,5029,3979, # 352 -5030,5031, 39,2524,4517,2908,3208,2079, 55, 148, 74,4518, 545, 483,1474,1029, # 368 -1665, 217,1870,1531,3138,1104,2655,4209, 24, 172,3562, 900,3980,3563,3564,4519, # 384 - 32,1408,2824,1312, 329, 487,2360,2251,2717, 784,2683, 4,3039,3351,1427,1789, # 400 - 188, 109, 499,5032,3686,1717,1790, 888,1217,3040,4520,5033,3565,5034,3352,1520, # 416 -3687,3981, 196,1034, 775,5035,5036, 929,1816, 249, 439, 38,5037,1063,5038, 794, # 432 -3982,1435,2301, 46, 178,3278,2066,5039,2381,5040, 214,1709,4521, 804, 35, 707, # 448 - 324,3688,1601,2554, 140, 459,4210,5041,5042,1365, 839, 272, 978,2262,2580,3456, # 464 -2129,1363,3689,1423, 697, 100,3094, 48, 70,1231, 495,3139,2196,5043,1294,5044, # 480 -2080, 462, 586,1042,3279, 853, 256, 988, 185,2382,3457,1698, 434,1084,5045,3458, # 496 - 314,2625,2788,4522,2335,2336, 569,2285, 637,1817,2525, 757,1162,1879,1616,3459, # 512 - 287,1577,2116, 768,4523,1671,2868,3566,2526,1321,3816, 909,2418,5046,4211, 933, # 528 -3817,4212,2053,2361,1222,4524, 765,2419,1322, 786,4525,5047,1920,1462,1677,2909, # 544 -1699,5048,4526,1424,2442,3140,3690,2600,3353,1775,1941,3460,3983,4213, 309,1369, # 560 -1130,2825, 364,2234,1653,1299,3984,3567,3985,3986,2656, 525,1085,3041, 902,2001, # 576 -1475, 964,4527, 421,1845,1415,1057,2286, 940,1364,3141, 376,4528,4529,1381, 7, # 592 -2527, 983,2383, 336,1710,2684,1846, 321,3461, 559,1131,3042,2752,1809,1132,1313, # 608 - 265,1481,1858,5049, 352,1203,2826,3280, 167,1089, 420,2827, 776, 792,1724,3568, # 624 -4214,2443,3281,5050,4215,5051, 446, 229, 333,2753, 901,3818,1200,1557,4530,2657, # 640 -1921, 395,2754,2685,3819,4216,1836, 125, 916,3209,2626,4531,5052,5053,3820,5054, # 656 -5055,5056,4532,3142,3691,1133,2555,1757,3462,1510,2318,1409,3569,5057,2146, 438, # 672 -2601,2910,2384,3354,1068, 958,3043, 461, 311,2869,2686,4217,1916,3210,4218,1979, # 688 - 383, 750,2755,2627,4219, 274, 539, 385,1278,1442,5058,1154,1965, 384, 561, 210, # 704 - 98,1295,2556,3570,5059,1711,2420,1482,3463,3987,2911,1257, 129,5060,3821, 642, # 720 - 523,2789,2790,2658,5061, 141,2235,1333, 68, 176, 441, 876, 907,4220, 603,2602, # 736 - 710, 171,3464, 404, 549, 18,3143,2398,1410,3692,1666,5062,3571,4533,2912,4534, # 752 -5063,2991, 368,5064, 146, 366, 99, 871,3693,1543, 748, 807,1586,1185, 22,2263, # 768 - 379,3822,3211,5065,3212, 505,1942,2628,1992,1382,2319,5066, 380,2362, 218, 702, # 784 -1818,1248,3465,3044,3572,3355,3282,5067,2992,3694, 930,3283,3823,5068, 59,5069, # 800 - 585, 601,4221, 497,3466,1112,1314,4535,1802,5070,1223,1472,2177,5071, 749,1837, # 816 - 690,1900,3824,1773,3988,1476, 429,1043,1791,2236,2117, 917,4222, 447,1086,1629, # 832 -5072, 556,5073,5074,2021,1654, 844,1090, 105, 550, 966,1758,2828,1008,1783, 686, # 848 -1095,5075,2287, 793,1602,5076,3573,2603,4536,4223,2948,2302,4537,3825, 980,2503, # 864 - 544, 353, 527,4538, 908,2687,2913,5077, 381,2629,1943,1348,5078,1341,1252, 560, # 880 -3095,5079,3467,2870,5080,2054, 973, 886,2081, 143,4539,5081,5082, 157,3989, 496, # 896 -4224, 57, 840, 540,2039,4540,4541,3468,2118,1445, 970,2264,1748,1966,2082,4225, # 912 -3144,1234,1776,3284,2829,3695, 773,1206,2130,1066,2040,1326,3990,1738,1725,4226, # 928 - 279,3145, 51,1544,2604, 423,1578,2131,2067, 173,4542,1880,5083,5084,1583, 264, # 944 - 610,3696,4543,2444, 280, 154,5085,5086,5087,1739, 338,1282,3096, 693,2871,1411, # 960 -1074,3826,2445,5088,4544,5089,5090,1240, 952,2399,5091,2914,1538,2688, 685,1483, # 976 -4227,2475,1436, 953,4228,2055,4545, 671,2400, 79,4229,2446,3285, 608, 567,2689, # 992 -3469,4230,4231,1691, 393,1261,1792,2401,5092,4546,5093,5094,5095,5096,1383,1672, # 1008 -3827,3213,1464, 522,1119, 661,1150, 216, 675,4547,3991,1432,3574, 609,4548,2690, # 1024 -2402,5097,5098,5099,4232,3045, 0,5100,2476, 315, 231,2447, 301,3356,4549,2385, # 1040 -5101, 233,4233,3697,1819,4550,4551,5102, 96,1777,1315,2083,5103, 257,5104,1810, # 1056 -3698,2718,1139,1820,4234,2022,1124,2164,2791,1778,2659,5105,3097, 363,1655,3214, # 1072 -5106,2993,5107,5108,5109,3992,1567,3993, 718, 103,3215, 849,1443, 341,3357,2949, # 1088 -1484,5110,1712, 127, 67, 339,4235,2403, 679,1412, 821,5111,5112, 834, 738, 351, # 1104 -2994,2147, 846, 235,1497,1881, 418,1993,3828,2719, 186,1100,2148,2756,3575,1545, # 1120 -1355,2950,2872,1377, 583,3994,4236,2581,2995,5113,1298,3699,1078,2557,3700,2363, # 1136 - 78,3829,3830, 267,1289,2100,2002,1594,4237, 348, 369,1274,2197,2178,1838,4552, # 1152 -1821,2830,3701,2757,2288,2003,4553,2951,2758, 144,3358, 882,4554,3995,2759,3470, # 1168 -4555,2915,5114,4238,1726, 320,5115,3996,3046, 788,2996,5116,2831,1774,1327,2873, # 1184 -3997,2832,5117,1306,4556,2004,1700,3831,3576,2364,2660, 787,2023, 506, 824,3702, # 1200 - 534, 323,4557,1044,3359,2024,1901, 946,3471,5118,1779,1500,1678,5119,1882,4558, # 1216 - 165, 243,4559,3703,2528, 123, 683,4239, 764,4560, 36,3998,1793, 589,2916, 816, # 1232 - 626,1667,3047,2237,1639,1555,1622,3832,3999,5120,4000,2874,1370,1228,1933, 891, # 1248 -2084,2917, 304,4240,5121, 292,2997,2720,3577, 691,2101,4241,1115,4561, 118, 662, # 1264 -5122, 611,1156, 854,2386,1316,2875, 2, 386, 515,2918,5123,5124,3286, 868,2238, # 1280 -1486, 855,2661, 785,2216,3048,5125,1040,3216,3578,5126,3146, 448,5127,1525,5128, # 1296 -2165,4562,5129,3833,5130,4242,2833,3579,3147, 503, 818,4001,3148,1568, 814, 676, # 1312 -1444, 306,1749,5131,3834,1416,1030, 197,1428, 805,2834,1501,4563,5132,5133,5134, # 1328 -1994,5135,4564,5136,5137,2198, 13,2792,3704,2998,3149,1229,1917,5138,3835,2132, # 1344 -5139,4243,4565,2404,3580,5140,2217,1511,1727,1120,5141,5142, 646,3836,2448, 307, # 1360 -5143,5144,1595,3217,5145,5146,5147,3705,1113,1356,4002,1465,2529,2530,5148, 519, # 1376 -5149, 128,2133, 92,2289,1980,5150,4003,1512, 342,3150,2199,5151,2793,2218,1981, # 1392 -3360,4244, 290,1656,1317, 789, 827,2365,5152,3837,4566, 562, 581,4004,5153, 401, # 1408 -4567,2252, 94,4568,5154,1399,2794,5155,1463,2025,4569,3218,1944,5156, 828,1105, # 1424 -4245,1262,1394,5157,4246, 605,4570,5158,1784,2876,5159,2835, 819,2102, 578,2200, # 1440 -2952,5160,1502, 436,3287,4247,3288,2836,4005,2919,3472,3473,5161,2721,2320,5162, # 1456 -5163,2337,2068, 23,4571, 193, 826,3838,2103, 699,1630,4248,3098, 390,1794,1064, # 1472 -3581,5164,1579,3099,3100,1400,5165,4249,1839,1640,2877,5166,4572,4573, 137,4250, # 1488 - 598,3101,1967, 780, 104, 974,2953,5167, 278, 899, 253, 402, 572, 504, 493,1339, # 1504 -5168,4006,1275,4574,2582,2558,5169,3706,3049,3102,2253, 565,1334,2722, 863, 41, # 1520 -5170,5171,4575,5172,1657,2338, 19, 463,2760,4251, 606,5173,2999,3289,1087,2085, # 1536 -1323,2662,3000,5174,1631,1623,1750,4252,2691,5175,2878, 791,2723,2663,2339, 232, # 1552 -2421,5176,3001,1498,5177,2664,2630, 755,1366,3707,3290,3151,2026,1609, 119,1918, # 1568 -3474, 862,1026,4253,5178,4007,3839,4576,4008,4577,2265,1952,2477,5179,1125, 817, # 1584 -4254,4255,4009,1513,1766,2041,1487,4256,3050,3291,2837,3840,3152,5180,5181,1507, # 1600 -5182,2692, 733, 40,1632,1106,2879, 345,4257, 841,2531, 230,4578,3002,1847,3292, # 1616 -3475,5183,1263, 986,3476,5184, 735, 879, 254,1137, 857, 622,1300,1180,1388,1562, # 1632 -4010,4011,2954, 967,2761,2665,1349, 592,2134,1692,3361,3003,1995,4258,1679,4012, # 1648 -1902,2188,5185, 739,3708,2724,1296,1290,5186,4259,2201,2202,1922,1563,2605,2559, # 1664 -1871,2762,3004,5187, 435,5188, 343,1108, 596, 17,1751,4579,2239,3477,3709,5189, # 1680 -4580, 294,3582,2955,1693, 477, 979, 281,2042,3583, 643,2043,3710,2631,2795,2266, # 1696 -1031,2340,2135,2303,3584,4581, 367,1249,2560,5190,3585,5191,4582,1283,3362,2005, # 1712 - 240,1762,3363,4583,4584, 836,1069,3153, 474,5192,2149,2532, 268,3586,5193,3219, # 1728 -1521,1284,5194,1658,1546,4260,5195,3587,3588,5196,4261,3364,2693,1685,4262, 961, # 1744 -1673,2632, 190,2006,2203,3841,4585,4586,5197, 570,2504,3711,1490,5198,4587,2633, # 1760 -3293,1957,4588, 584,1514, 396,1045,1945,5199,4589,1968,2449,5200,5201,4590,4013, # 1776 - 619,5202,3154,3294, 215,2007,2796,2561,3220,4591,3221,4592, 763,4263,3842,4593, # 1792 -5203,5204,1958,1767,2956,3365,3712,1174, 452,1477,4594,3366,3155,5205,2838,1253, # 1808 -2387,2189,1091,2290,4264, 492,5206, 638,1169,1825,2136,1752,4014, 648, 926,1021, # 1824 -1324,4595, 520,4596, 997, 847,1007, 892,4597,3843,2267,1872,3713,2405,1785,4598, # 1840 -1953,2957,3103,3222,1728,4265,2044,3714,4599,2008,1701,3156,1551, 30,2268,4266, # 1856 -5207,2027,4600,3589,5208, 501,5209,4267, 594,3478,2166,1822,3590,3479,3591,3223, # 1872 - 829,2839,4268,5210,1680,3157,1225,4269,5211,3295,4601,4270,3158,2341,5212,4602, # 1888 -4271,5213,4015,4016,5214,1848,2388,2606,3367,5215,4603, 374,4017, 652,4272,4273, # 1904 - 375,1140, 798,5216,5217,5218,2366,4604,2269, 546,1659, 138,3051,2450,4605,5219, # 1920 -2254, 612,1849, 910, 796,3844,1740,1371, 825,3845,3846,5220,2920,2562,5221, 692, # 1936 - 444,3052,2634, 801,4606,4274,5222,1491, 244,1053,3053,4275,4276, 340,5223,4018, # 1952 -1041,3005, 293,1168, 87,1357,5224,1539, 959,5225,2240, 721, 694,4277,3847, 219, # 1968 -1478, 644,1417,3368,2666,1413,1401,1335,1389,4019,5226,5227,3006,2367,3159,1826, # 1984 - 730,1515, 184,2840, 66,4607,5228,1660,2958, 246,3369, 378,1457, 226,3480, 975, # 2000 -4020,2959,1264,3592, 674, 696,5229, 163,5230,1141,2422,2167, 713,3593,3370,4608, # 2016 -4021,5231,5232,1186, 15,5233,1079,1070,5234,1522,3224,3594, 276,1050,2725, 758, # 2032 -1126, 653,2960,3296,5235,2342, 889,3595,4022,3104,3007, 903,1250,4609,4023,3481, # 2048 -3596,1342,1681,1718, 766,3297, 286, 89,2961,3715,5236,1713,5237,2607,3371,3008, # 2064 -5238,2962,2219,3225,2880,5239,4610,2505,2533, 181, 387,1075,4024, 731,2190,3372, # 2080 -5240,3298, 310, 313,3482,2304, 770,4278, 54,3054, 189,4611,3105,3848,4025,5241, # 2096 -1230,1617,1850, 355,3597,4279,4612,3373, 111,4280,3716,1350,3160,3483,3055,4281, # 2112 -2150,3299,3598,5242,2797,4026,4027,3009, 722,2009,5243,1071, 247,1207,2343,2478, # 2128 -1378,4613,2010, 864,1437,1214,4614, 373,3849,1142,2220, 667,4615, 442,2763,2563, # 2144 -3850,4028,1969,4282,3300,1840, 837, 170,1107, 934,1336,1883,5244,5245,2119,4283, # 2160 -2841, 743,1569,5246,4616,4284, 582,2389,1418,3484,5247,1803,5248, 357,1395,1729, # 2176 -3717,3301,2423,1564,2241,5249,3106,3851,1633,4617,1114,2086,4285,1532,5250, 482, # 2192 -2451,4618,5251,5252,1492, 833,1466,5253,2726,3599,1641,2842,5254,1526,1272,3718, # 2208 -4286,1686,1795, 416,2564,1903,1954,1804,5255,3852,2798,3853,1159,2321,5256,2881, # 2224 -4619,1610,1584,3056,2424,2764, 443,3302,1163,3161,5257,5258,4029,5259,4287,2506, # 2240 -3057,4620,4030,3162,2104,1647,3600,2011,1873,4288,5260,4289, 431,3485,5261, 250, # 2256 - 97, 81,4290,5262,1648,1851,1558, 160, 848,5263, 866, 740,1694,5264,2204,2843, # 2272 -3226,4291,4621,3719,1687, 950,2479, 426, 469,3227,3720,3721,4031,5265,5266,1188, # 2288 - 424,1996, 861,3601,4292,3854,2205,2694, 168,1235,3602,4293,5267,2087,1674,4622, # 2304 -3374,3303, 220,2565,1009,5268,3855, 670,3010, 332,1208, 717,5269,5270,3603,2452, # 2320 -4032,3375,5271, 513,5272,1209,2882,3376,3163,4623,1080,5273,5274,5275,5276,2534, # 2336 -3722,3604, 815,1587,4033,4034,5277,3605,3486,3856,1254,4624,1328,3058,1390,4035, # 2352 -1741,4036,3857,4037,5278, 236,3858,2453,3304,5279,5280,3723,3859,1273,3860,4625, # 2368 -5281, 308,5282,4626, 245,4627,1852,2480,1307,2583, 430, 715,2137,2454,5283, 270, # 2384 - 199,2883,4038,5284,3606,2727,1753, 761,1754, 725,1661,1841,4628,3487,3724,5285, # 2400 -5286, 587, 14,3305, 227,2608, 326, 480,2270, 943,2765,3607, 291, 650,1884,5287, # 2416 -1702,1226, 102,1547, 62,3488, 904,4629,3489,1164,4294,5288,5289,1224,1548,2766, # 2432 - 391, 498,1493,5290,1386,1419,5291,2056,1177,4630, 813, 880,1081,2368, 566,1145, # 2448 -4631,2291,1001,1035,2566,2609,2242, 394,1286,5292,5293,2069,5294, 86,1494,1730, # 2464 -4039, 491,1588, 745, 897,2963, 843,3377,4040,2767,2884,3306,1768, 998,2221,2070, # 2480 - 397,1827,1195,1970,3725,3011,3378, 284,5295,3861,2507,2138,2120,1904,5296,4041, # 2496 -2151,4042,4295,1036,3490,1905, 114,2567,4296, 209,1527,5297,5298,2964,2844,2635, # 2512 -2390,2728,3164, 812,2568,5299,3307,5300,1559, 737,1885,3726,1210, 885, 28,2695, # 2528 -3608,3862,5301,4297,1004,1780,4632,5302, 346,1982,2222,2696,4633,3863,1742, 797, # 2544 -1642,4043,1934,1072,1384,2152, 896,4044,3308,3727,3228,2885,3609,5303,2569,1959, # 2560 -4634,2455,1786,5304,5305,5306,4045,4298,1005,1308,3728,4299,2729,4635,4636,1528, # 2576 -2610, 161,1178,4300,1983, 987,4637,1101,4301, 631,4046,1157,3229,2425,1343,1241, # 2592 -1016,2243,2570, 372, 877,2344,2508,1160, 555,1935, 911,4047,5307, 466,1170, 169, # 2608 -1051,2921,2697,3729,2481,3012,1182,2012,2571,1251,2636,5308, 992,2345,3491,1540, # 2624 -2730,1201,2071,2406,1997,2482,5309,4638, 528,1923,2191,1503,1874,1570,2369,3379, # 2640 -3309,5310, 557,1073,5311,1828,3492,2088,2271,3165,3059,3107, 767,3108,2799,4639, # 2656 -1006,4302,4640,2346,1267,2179,3730,3230, 778,4048,3231,2731,1597,2667,5312,4641, # 2672 -5313,3493,5314,5315,5316,3310,2698,1433,3311, 131, 95,1504,4049, 723,4303,3166, # 2688 -1842,3610,2768,2192,4050,2028,2105,3731,5317,3013,4051,1218,5318,3380,3232,4052, # 2704 -4304,2584, 248,1634,3864, 912,5319,2845,3732,3060,3865, 654, 53,5320,3014,5321, # 2720 -1688,4642, 777,3494,1032,4053,1425,5322, 191, 820,2121,2846, 971,4643, 931,3233, # 2736 - 135, 664, 783,3866,1998, 772,2922,1936,4054,3867,4644,2923,3234, 282,2732, 640, # 2752 -1372,3495,1127, 922, 325,3381,5323,5324, 711,2045,5325,5326,4055,2223,2800,1937, # 2768 -4056,3382,2224,2255,3868,2305,5327,4645,3869,1258,3312,4057,3235,2139,2965,4058, # 2784 -4059,5328,2225, 258,3236,4646, 101,1227,5329,3313,1755,5330,1391,3314,5331,2924, # 2800 -2057, 893,5332,5333,5334,1402,4305,2347,5335,5336,3237,3611,5337,5338, 878,1325, # 2816 -1781,2801,4647, 259,1385,2585, 744,1183,2272,4648,5339,4060,2509,5340, 684,1024, # 2832 -4306,5341, 472,3612,3496,1165,3315,4061,4062, 322,2153, 881, 455,1695,1152,1340, # 2848 - 660, 554,2154,4649,1058,4650,4307, 830,1065,3383,4063,4651,1924,5342,1703,1919, # 2864 -5343, 932,2273, 122,5344,4652, 947, 677,5345,3870,2637, 297,1906,1925,2274,4653, # 2880 -2322,3316,5346,5347,4308,5348,4309, 84,4310, 112, 989,5349, 547,1059,4064, 701, # 2896 -3613,1019,5350,4311,5351,3497, 942, 639, 457,2306,2456, 993,2966, 407, 851, 494, # 2912 -4654,3384, 927,5352,1237,5353,2426,3385, 573,4312, 680, 921,2925,1279,1875, 285, # 2928 - 790,1448,1984, 719,2168,5354,5355,4655,4065,4066,1649,5356,1541, 563,5357,1077, # 2944 -5358,3386,3061,3498, 511,3015,4067,4068,3733,4069,1268,2572,3387,3238,4656,4657, # 2960 -5359, 535,1048,1276,1189,2926,2029,3167,1438,1373,2847,2967,1134,2013,5360,4313, # 2976 -1238,2586,3109,1259,5361, 700,5362,2968,3168,3734,4314,5363,4315,1146,1876,1907, # 2992 -4658,2611,4070, 781,2427, 132,1589, 203, 147, 273,2802,2407, 898,1787,2155,4071, # 3008 -4072,5364,3871,2803,5365,5366,4659,4660,5367,3239,5368,1635,3872, 965,5369,1805, # 3024 -2699,1516,3614,1121,1082,1329,3317,4073,1449,3873, 65,1128,2848,2927,2769,1590, # 3040 -3874,5370,5371, 12,2668, 45, 976,2587,3169,4661, 517,2535,1013,1037,3240,5372, # 3056 -3875,2849,5373,3876,5374,3499,5375,2612, 614,1999,2323,3877,3110,2733,2638,5376, # 3072 -2588,4316, 599,1269,5377,1811,3735,5378,2700,3111, 759,1060, 489,1806,3388,3318, # 3088 -1358,5379,5380,2391,1387,1215,2639,2256, 490,5381,5382,4317,1759,2392,2348,5383, # 3104 -4662,3878,1908,4074,2640,1807,3241,4663,3500,3319,2770,2349, 874,5384,5385,3501, # 3120 -3736,1859, 91,2928,3737,3062,3879,4664,5386,3170,4075,2669,5387,3502,1202,1403, # 3136 -3880,2969,2536,1517,2510,4665,3503,2511,5388,4666,5389,2701,1886,1495,1731,4076, # 3152 -2370,4667,5390,2030,5391,5392,4077,2702,1216, 237,2589,4318,2324,4078,3881,4668, # 3168 -4669,2703,3615,3504, 445,4670,5393,5394,5395,5396,2771, 61,4079,3738,1823,4080, # 3184 -5397, 687,2046, 935, 925, 405,2670, 703,1096,1860,2734,4671,4081,1877,1367,2704, # 3200 -3389, 918,2106,1782,2483, 334,3320,1611,1093,4672, 564,3171,3505,3739,3390, 945, # 3216 -2641,2058,4673,5398,1926, 872,4319,5399,3506,2705,3112, 349,4320,3740,4082,4674, # 3232 -3882,4321,3741,2156,4083,4675,4676,4322,4677,2408,2047, 782,4084, 400, 251,4323, # 3248 -1624,5400,5401, 277,3742, 299,1265, 476,1191,3883,2122,4324,4325,1109, 205,5402, # 3264 -2590,1000,2157,3616,1861,5403,5404,5405,4678,5406,4679,2573, 107,2484,2158,4085, # 3280 -3507,3172,5407,1533, 541,1301, 158, 753,4326,2886,3617,5408,1696, 370,1088,4327, # 3296 -4680,3618, 579, 327, 440, 162,2244, 269,1938,1374,3508, 968,3063, 56,1396,3113, # 3312 -2107,3321,3391,5409,1927,2159,4681,3016,5410,3619,5411,5412,3743,4682,2485,5413, # 3328 -2804,5414,1650,4683,5415,2613,5416,5417,4086,2671,3392,1149,3393,4087,3884,4088, # 3344 -5418,1076, 49,5419, 951,3242,3322,3323, 450,2850, 920,5420,1812,2805,2371,4328, # 3360 -1909,1138,2372,3885,3509,5421,3243,4684,1910,1147,1518,2428,4685,3886,5422,4686, # 3376 -2393,2614, 260,1796,3244,5423,5424,3887,3324, 708,5425,3620,1704,5426,3621,1351, # 3392 -1618,3394,3017,1887, 944,4329,3395,4330,3064,3396,4331,5427,3744, 422, 413,1714, # 3408 -3325, 500,2059,2350,4332,2486,5428,1344,1911, 954,5429,1668,5430,5431,4089,2409, # 3424 -4333,3622,3888,4334,5432,2307,1318,2512,3114, 133,3115,2887,4687, 629, 31,2851, # 3440 -2706,3889,4688, 850, 949,4689,4090,2970,1732,2089,4335,1496,1853,5433,4091, 620, # 3456 -3245, 981,1242,3745,3397,1619,3746,1643,3326,2140,2457,1971,1719,3510,2169,5434, # 3472 -3246,5435,5436,3398,1829,5437,1277,4690,1565,2048,5438,1636,3623,3116,5439, 869, # 3488 -2852, 655,3890,3891,3117,4092,3018,3892,1310,3624,4691,5440,5441,5442,1733, 558, # 3504 -4692,3747, 335,1549,3065,1756,4336,3748,1946,3511,1830,1291,1192, 470,2735,2108, # 3520 -2806, 913,1054,4093,5443,1027,5444,3066,4094,4693, 982,2672,3399,3173,3512,3247, # 3536 -3248,1947,2807,5445, 571,4694,5446,1831,5447,3625,2591,1523,2429,5448,2090, 984, # 3552 -4695,3749,1960,5449,3750, 852, 923,2808,3513,3751, 969,1519, 999,2049,2325,1705, # 3568 -5450,3118, 615,1662, 151, 597,4095,2410,2326,1049, 275,4696,3752,4337, 568,3753, # 3584 -3626,2487,4338,3754,5451,2430,2275, 409,3249,5452,1566,2888,3514,1002, 769,2853, # 3600 - 194,2091,3174,3755,2226,3327,4339, 628,1505,5453,5454,1763,2180,3019,4096, 521, # 3616 -1161,2592,1788,2206,2411,4697,4097,1625,4340,4341, 412, 42,3119, 464,5455,2642, # 3632 -4698,3400,1760,1571,2889,3515,2537,1219,2207,3893,2643,2141,2373,4699,4700,3328, # 3648 -1651,3401,3627,5456,5457,3628,2488,3516,5458,3756,5459,5460,2276,2092, 460,5461, # 3664 -4701,5462,3020, 962, 588,3629, 289,3250,2644,1116, 52,5463,3067,1797,5464,5465, # 3680 -5466,1467,5467,1598,1143,3757,4342,1985,1734,1067,4702,1280,3402, 465,4703,1572, # 3696 - 510,5468,1928,2245,1813,1644,3630,5469,4704,3758,5470,5471,2673,1573,1534,5472, # 3712 -5473, 536,1808,1761,3517,3894,3175,2645,5474,5475,5476,4705,3518,2929,1912,2809, # 3728 -5477,3329,1122, 377,3251,5478, 360,5479,5480,4343,1529, 551,5481,2060,3759,1769, # 3744 -2431,5482,2930,4344,3330,3120,2327,2109,2031,4706,1404, 136,1468,1479, 672,1171, # 3760 -3252,2308, 271,3176,5483,2772,5484,2050, 678,2736, 865,1948,4707,5485,2014,4098, # 3776 -2971,5486,2737,2227,1397,3068,3760,4708,4709,1735,2931,3403,3631,5487,3895, 509, # 3792 -2854,2458,2890,3896,5488,5489,3177,3178,4710,4345,2538,4711,2309,1166,1010, 552, # 3808 - 681,1888,5490,5491,2972,2973,4099,1287,1596,1862,3179, 358, 453, 736, 175, 478, # 3824 -1117, 905,1167,1097,5492,1854,1530,5493,1706,5494,2181,3519,2292,3761,3520,3632, # 3840 -4346,2093,4347,5495,3404,1193,2489,4348,1458,2193,2208,1863,1889,1421,3331,2932, # 3856 -3069,2182,3521, 595,2123,5496,4100,5497,5498,4349,1707,2646, 223,3762,1359, 751, # 3872 -3121, 183,3522,5499,2810,3021, 419,2374, 633, 704,3897,2394, 241,5500,5501,5502, # 3888 - 838,3022,3763,2277,2773,2459,3898,1939,2051,4101,1309,3122,2246,1181,5503,1136, # 3904 -2209,3899,2375,1446,4350,2310,4712,5504,5505,4351,1055,2615, 484,3764,5506,4102, # 3920 - 625,4352,2278,3405,1499,4353,4103,5507,4104,4354,3253,2279,2280,3523,5508,5509, # 3936 -2774, 808,2616,3765,3406,4105,4355,3123,2539, 526,3407,3900,4356, 955,5510,1620, # 3952 -4357,2647,2432,5511,1429,3766,1669,1832, 994, 928,5512,3633,1260,5513,5514,5515, # 3968 -1949,2293, 741,2933,1626,4358,2738,2460, 867,1184, 362,3408,1392,5516,5517,4106, # 3984 -4359,1770,1736,3254,2934,4713,4714,1929,2707,1459,1158,5518,3070,3409,2891,1292, # 4000 -1930,2513,2855,3767,1986,1187,2072,2015,2617,4360,5519,2574,2514,2170,3768,2490, # 4016 -3332,5520,3769,4715,5521,5522, 666,1003,3023,1022,3634,4361,5523,4716,1814,2257, # 4032 - 574,3901,1603, 295,1535, 705,3902,4362, 283, 858, 417,5524,5525,3255,4717,4718, # 4048 -3071,1220,1890,1046,2281,2461,4107,1393,1599, 689,2575, 388,4363,5526,2491, 802, # 4064 -5527,2811,3903,2061,1405,2258,5528,4719,3904,2110,1052,1345,3256,1585,5529, 809, # 4080 -5530,5531,5532, 575,2739,3524, 956,1552,1469,1144,2328,5533,2329,1560,2462,3635, # 4096 -3257,4108, 616,2210,4364,3180,2183,2294,5534,1833,5535,3525,4720,5536,1319,3770, # 4112 -3771,1211,3636,1023,3258,1293,2812,5537,5538,5539,3905, 607,2311,3906, 762,2892, # 4128 -1439,4365,1360,4721,1485,3072,5540,4722,1038,4366,1450,2062,2648,4367,1379,4723, # 4144 -2593,5541,5542,4368,1352,1414,2330,2935,1172,5543,5544,3907,3908,4724,1798,1451, # 4160 -5545,5546,5547,5548,2936,4109,4110,2492,2351, 411,4111,4112,3637,3333,3124,4725, # 4176 -1561,2674,1452,4113,1375,5549,5550, 47,2974, 316,5551,1406,1591,2937,3181,5552, # 4192 -1025,2142,3125,3182, 354,2740, 884,2228,4369,2412, 508,3772, 726,3638, 996,2433, # 4208 -3639, 729,5553, 392,2194,1453,4114,4726,3773,5554,5555,2463,3640,2618,1675,2813, # 4224 - 919,2352,2975,2353,1270,4727,4115, 73,5556,5557, 647,5558,3259,2856,2259,1550, # 4240 -1346,3024,5559,1332, 883,3526,5560,5561,5562,5563,3334,2775,5564,1212, 831,1347, # 4256 -4370,4728,2331,3909,1864,3073, 720,3910,4729,4730,3911,5565,4371,5566,5567,4731, # 4272 -5568,5569,1799,4732,3774,2619,4733,3641,1645,2376,4734,5570,2938, 669,2211,2675, # 4288 -2434,5571,2893,5572,5573,1028,3260,5574,4372,2413,5575,2260,1353,5576,5577,4735, # 4304 -3183, 518,5578,4116,5579,4373,1961,5580,2143,4374,5581,5582,3025,2354,2355,3912, # 4320 - 516,1834,1454,4117,2708,4375,4736,2229,2620,1972,1129,3642,5583,2776,5584,2976, # 4336 -1422, 577,1470,3026,1524,3410,5585,5586, 432,4376,3074,3527,5587,2594,1455,2515, # 4352 -2230,1973,1175,5588,1020,2741,4118,3528,4737,5589,2742,5590,1743,1361,3075,3529, # 4368 -2649,4119,4377,4738,2295, 895, 924,4378,2171, 331,2247,3076, 166,1627,3077,1098, # 4384 -5591,1232,2894,2231,3411,4739, 657, 403,1196,2377, 542,3775,3412,1600,4379,3530, # 4400 -5592,4740,2777,3261, 576, 530,1362,4741,4742,2540,2676,3776,4120,5593, 842,3913, # 4416 -5594,2814,2032,1014,4121, 213,2709,3413, 665, 621,4380,5595,3777,2939,2435,5596, # 4432 -2436,3335,3643,3414,4743,4381,2541,4382,4744,3644,1682,4383,3531,1380,5597, 724, # 4448 -2282, 600,1670,5598,1337,1233,4745,3126,2248,5599,1621,4746,5600, 651,4384,5601, # 4464 -1612,4385,2621,5602,2857,5603,2743,2312,3078,5604, 716,2464,3079, 174,1255,2710, # 4480 -4122,3645, 548,1320,1398, 728,4123,1574,5605,1891,1197,3080,4124,5606,3081,3082, # 4496 -3778,3646,3779, 747,5607, 635,4386,4747,5608,5609,5610,4387,5611,5612,4748,5613, # 4512 -3415,4749,2437, 451,5614,3780,2542,2073,4388,2744,4389,4125,5615,1764,4750,5616, # 4528 -4390, 350,4751,2283,2395,2493,5617,4391,4126,2249,1434,4127, 488,4752, 458,4392, # 4544 -4128,3781, 771,1330,2396,3914,2576,3184,2160,2414,1553,2677,3185,4393,5618,2494, # 4560 -2895,2622,1720,2711,4394,3416,4753,5619,2543,4395,5620,3262,4396,2778,5621,2016, # 4576 -2745,5622,1155,1017,3782,3915,5623,3336,2313, 201,1865,4397,1430,5624,4129,5625, # 4592 -5626,5627,5628,5629,4398,1604,5630, 414,1866, 371,2595,4754,4755,3532,2017,3127, # 4608 -4756,1708, 960,4399, 887, 389,2172,1536,1663,1721,5631,2232,4130,2356,2940,1580, # 4624 -5632,5633,1744,4757,2544,4758,4759,5634,4760,5635,2074,5636,4761,3647,3417,2896, # 4640 -4400,5637,4401,2650,3418,2815, 673,2712,2465, 709,3533,4131,3648,4402,5638,1148, # 4656 - 502, 634,5639,5640,1204,4762,3649,1575,4763,2623,3783,5641,3784,3128, 948,3263, # 4672 - 121,1745,3916,1110,5642,4403,3083,2516,3027,4132,3785,1151,1771,3917,1488,4133, # 4688 -1987,5643,2438,3534,5644,5645,2094,5646,4404,3918,1213,1407,2816, 531,2746,2545, # 4704 -3264,1011,1537,4764,2779,4405,3129,1061,5647,3786,3787,1867,2897,5648,2018, 120, # 4720 -4406,4407,2063,3650,3265,2314,3919,2678,3419,1955,4765,4134,5649,3535,1047,2713, # 4736 -1266,5650,1368,4766,2858, 649,3420,3920,2546,2747,1102,2859,2679,5651,5652,2000, # 4752 -5653,1111,3651,2977,5654,2495,3921,3652,2817,1855,3421,3788,5655,5656,3422,2415, # 4768 -2898,3337,3266,3653,5657,2577,5658,3654,2818,4135,1460, 856,5659,3655,5660,2899, # 4784 -2978,5661,2900,3922,5662,4408, 632,2517, 875,3923,1697,3924,2296,5663,5664,4767, # 4800 -3028,1239, 580,4768,4409,5665, 914, 936,2075,1190,4136,1039,2124,5666,5667,5668, # 4816 -5669,3423,1473,5670,1354,4410,3925,4769,2173,3084,4137, 915,3338,4411,4412,3339, # 4832 -1605,1835,5671,2748, 398,3656,4413,3926,4138, 328,1913,2860,4139,3927,1331,4414, # 4848 -3029, 937,4415,5672,3657,4140,4141,3424,2161,4770,3425, 524, 742, 538,3085,1012, # 4864 -5673,5674,3928,2466,5675, 658,1103, 225,3929,5676,5677,4771,5678,4772,5679,3267, # 4880 -1243,5680,4142, 963,2250,4773,5681,2714,3658,3186,5682,5683,2596,2332,5684,4774, # 4896 -5685,5686,5687,3536, 957,3426,2547,2033,1931,2941,2467, 870,2019,3659,1746,2780, # 4912 -2781,2439,2468,5688,3930,5689,3789,3130,3790,3537,3427,3791,5690,1179,3086,5691, # 4928 -3187,2378,4416,3792,2548,3188,3131,2749,4143,5692,3428,1556,2549,2297, 977,2901, # 4944 -2034,4144,1205,3429,5693,1765,3430,3189,2125,1271, 714,1689,4775,3538,5694,2333, # 4960 -3931, 533,4417,3660,2184, 617,5695,2469,3340,3539,2315,5696,5697,3190,5698,5699, # 4976 -3932,1988, 618, 427,2651,3540,3431,5700,5701,1244,1690,5702,2819,4418,4776,5703, # 4992 -3541,4777,5704,2284,1576, 473,3661,4419,3432, 972,5705,3662,5706,3087,5707,5708, # 5008 -4778,4779,5709,3793,4145,4146,5710, 153,4780, 356,5711,1892,2902,4420,2144, 408, # 5024 - 803,2357,5712,3933,5713,4421,1646,2578,2518,4781,4782,3934,5714,3935,4422,5715, # 5040 -2416,3433, 752,5716,5717,1962,3341,2979,5718, 746,3030,2470,4783,4423,3794, 698, # 5056 -4784,1893,4424,3663,2550,4785,3664,3936,5719,3191,3434,5720,1824,1302,4147,2715, # 5072 -3937,1974,4425,5721,4426,3192, 823,1303,1288,1236,2861,3542,4148,3435, 774,3938, # 5088 -5722,1581,4786,1304,2862,3939,4787,5723,2440,2162,1083,3268,4427,4149,4428, 344, # 5104 -1173, 288,2316, 454,1683,5724,5725,1461,4788,4150,2597,5726,5727,4789, 985, 894, # 5120 -5728,3436,3193,5729,1914,2942,3795,1989,5730,2111,1975,5731,4151,5732,2579,1194, # 5136 - 425,5733,4790,3194,1245,3796,4429,5734,5735,2863,5736, 636,4791,1856,3940, 760, # 5152 -1800,5737,4430,2212,1508,4792,4152,1894,1684,2298,5738,5739,4793,4431,4432,2213, # 5168 - 479,5740,5741, 832,5742,4153,2496,5743,2980,2497,3797, 990,3132, 627,1815,2652, # 5184 -4433,1582,4434,2126,2112,3543,4794,5744, 799,4435,3195,5745,4795,2113,1737,3031, # 5200 -1018, 543, 754,4436,3342,1676,4796,4797,4154,4798,1489,5746,3544,5747,2624,2903, # 5216 -4155,5748,5749,2981,5750,5751,5752,5753,3196,4799,4800,2185,1722,5754,3269,3270, # 5232 -1843,3665,1715, 481, 365,1976,1857,5755,5756,1963,2498,4801,5757,2127,3666,3271, # 5248 - 433,1895,2064,2076,5758, 602,2750,5759,5760,5761,5762,5763,3032,1628,3437,5764, # 5264 -3197,4802,4156,2904,4803,2519,5765,2551,2782,5766,5767,5768,3343,4804,2905,5769, # 5280 -4805,5770,2864,4806,4807,1221,2982,4157,2520,5771,5772,5773,1868,1990,5774,5775, # 5296 -5776,1896,5777,5778,4808,1897,4158, 318,5779,2095,4159,4437,5780,5781, 485,5782, # 5312 - 938,3941, 553,2680, 116,5783,3942,3667,5784,3545,2681,2783,3438,3344,2820,5785, # 5328 -3668,2943,4160,1747,2944,2983,5786,5787, 207,5788,4809,5789,4810,2521,5790,3033, # 5344 - 890,3669,3943,5791,1878,3798,3439,5792,2186,2358,3440,1652,5793,5794,5795, 941, # 5360 -2299, 208,3546,4161,2020, 330,4438,3944,2906,2499,3799,4439,4811,5796,5797,5798, # 5376 -) - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5prober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5prober.py deleted file mode 100644 index 98f9970..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5prober.py +++ /dev/null @@ -1,47 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import Big5DistributionAnalysis -from .mbcssm import BIG5_SM_MODEL - - -class Big5Prober(MultiByteCharSetProber): - def __init__(self): - super(Big5Prober, self).__init__() - self.coding_sm = CodingStateMachine(BIG5_SM_MODEL) - self.distribution_analyzer = Big5DistributionAnalysis() - self.reset() - - @property - def charset_name(self): - return "Big5" - - @property - def language(self): - return "Chinese" diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/chardistribution.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/chardistribution.py deleted file mode 100644 index c0395f4..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/chardistribution.py +++ /dev/null @@ -1,233 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .euctwfreq import (EUCTW_CHAR_TO_FREQ_ORDER, EUCTW_TABLE_SIZE, - EUCTW_TYPICAL_DISTRIBUTION_RATIO) -from .euckrfreq import (EUCKR_CHAR_TO_FREQ_ORDER, EUCKR_TABLE_SIZE, - EUCKR_TYPICAL_DISTRIBUTION_RATIO) -from .gb2312freq import (GB2312_CHAR_TO_FREQ_ORDER, GB2312_TABLE_SIZE, - GB2312_TYPICAL_DISTRIBUTION_RATIO) -from .big5freq import (BIG5_CHAR_TO_FREQ_ORDER, BIG5_TABLE_SIZE, - BIG5_TYPICAL_DISTRIBUTION_RATIO) -from .jisfreq import (JIS_CHAR_TO_FREQ_ORDER, JIS_TABLE_SIZE, - JIS_TYPICAL_DISTRIBUTION_RATIO) - - -class CharDistributionAnalysis(object): - ENOUGH_DATA_THRESHOLD = 1024 - SURE_YES = 0.99 - SURE_NO = 0.01 - MINIMUM_DATA_THRESHOLD = 3 - - def __init__(self): - # Mapping table to get frequency order from char order (get from - # GetOrder()) - self._char_to_freq_order = None - self._table_size = None # Size of above table - # This is a constant value which varies from language to language, - # used in calculating confidence. See - # http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html - # for further detail. - self.typical_distribution_ratio = None - self._done = None - self._total_chars = None - self._freq_chars = None - self.reset() - - def reset(self): - """reset analyser, clear any state""" - # If this flag is set to True, detection is done and conclusion has - # been made - self._done = False - self._total_chars = 0 # Total characters encountered - # The number of characters whose frequency order is less than 512 - self._freq_chars = 0 - - def feed(self, char, char_len): - """feed a character with known length""" - if char_len == 2: - # we only care about 2-bytes character in our distribution analysis - order = self.get_order(char) - else: - order = -1 - if order >= 0: - self._total_chars += 1 - # order is valid - if order < self._table_size: - if 512 > self._char_to_freq_order[order]: - self._freq_chars += 1 - - def get_confidence(self): - """return confidence based on existing data""" - # if we didn't receive any character in our consideration range, - # return negative answer - if self._total_chars <= 0 or self._freq_chars <= self.MINIMUM_DATA_THRESHOLD: - return self.SURE_NO - - if self._total_chars != self._freq_chars: - r = (self._freq_chars / ((self._total_chars - self._freq_chars) - * self.typical_distribution_ratio)) - if r < self.SURE_YES: - return r - - # normalize confidence (we don't want to be 100% sure) - return self.SURE_YES - - def got_enough_data(self): - # It is not necessary to receive all data to draw conclusion. - # For charset detection, certain amount of data is enough - return self._total_chars > self.ENOUGH_DATA_THRESHOLD - - def get_order(self, byte_str): - # We do not handle characters based on the original encoding string, - # but convert this encoding string to a number, here called order. - # This allows multiple encodings of a language to share one frequency - # table. - return -1 - - -class EUCTWDistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(EUCTWDistributionAnalysis, self).__init__() - self._char_to_freq_order = EUCTW_CHAR_TO_FREQ_ORDER - self._table_size = EUCTW_TABLE_SIZE - self.typical_distribution_ratio = EUCTW_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for euc-TW encoding, we are interested - # first byte range: 0xc4 -- 0xfe - # second byte range: 0xa1 -- 0xfe - # no validation needed here. State machine has done that - first_char = byte_str[0] - if first_char >= 0xC4: - return 94 * (first_char - 0xC4) + byte_str[1] - 0xA1 - else: - return -1 - - -class EUCKRDistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(EUCKRDistributionAnalysis, self).__init__() - self._char_to_freq_order = EUCKR_CHAR_TO_FREQ_ORDER - self._table_size = EUCKR_TABLE_SIZE - self.typical_distribution_ratio = EUCKR_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for euc-KR encoding, we are interested - # first byte range: 0xb0 -- 0xfe - # second byte range: 0xa1 -- 0xfe - # no validation needed here. State machine has done that - first_char = byte_str[0] - if first_char >= 0xB0: - return 94 * (first_char - 0xB0) + byte_str[1] - 0xA1 - else: - return -1 - - -class GB2312DistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(GB2312DistributionAnalysis, self).__init__() - self._char_to_freq_order = GB2312_CHAR_TO_FREQ_ORDER - self._table_size = GB2312_TABLE_SIZE - self.typical_distribution_ratio = GB2312_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for GB2312 encoding, we are interested - # first byte range: 0xb0 -- 0xfe - # second byte range: 0xa1 -- 0xfe - # no validation needed here. State machine has done that - first_char, second_char = byte_str[0], byte_str[1] - if (first_char >= 0xB0) and (second_char >= 0xA1): - return 94 * (first_char - 0xB0) + second_char - 0xA1 - else: - return -1 - - -class Big5DistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(Big5DistributionAnalysis, self).__init__() - self._char_to_freq_order = BIG5_CHAR_TO_FREQ_ORDER - self._table_size = BIG5_TABLE_SIZE - self.typical_distribution_ratio = BIG5_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for big5 encoding, we are interested - # first byte range: 0xa4 -- 0xfe - # second byte range: 0x40 -- 0x7e , 0xa1 -- 0xfe - # no validation needed here. State machine has done that - first_char, second_char = byte_str[0], byte_str[1] - if first_char >= 0xA4: - if second_char >= 0xA1: - return 157 * (first_char - 0xA4) + second_char - 0xA1 + 63 - else: - return 157 * (first_char - 0xA4) + second_char - 0x40 - else: - return -1 - - -class SJISDistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(SJISDistributionAnalysis, self).__init__() - self._char_to_freq_order = JIS_CHAR_TO_FREQ_ORDER - self._table_size = JIS_TABLE_SIZE - self.typical_distribution_ratio = JIS_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for sjis encoding, we are interested - # first byte range: 0x81 -- 0x9f , 0xe0 -- 0xfe - # second byte range: 0x40 -- 0x7e, 0x81 -- oxfe - # no validation needed here. State machine has done that - first_char, second_char = byte_str[0], byte_str[1] - if (first_char >= 0x81) and (first_char <= 0x9F): - order = 188 * (first_char - 0x81) - elif (first_char >= 0xE0) and (first_char <= 0xEF): - order = 188 * (first_char - 0xE0 + 31) - else: - return -1 - order = order + second_char - 0x40 - if second_char > 0x7F: - order = -1 - return order - - -class EUCJPDistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(EUCJPDistributionAnalysis, self).__init__() - self._char_to_freq_order = JIS_CHAR_TO_FREQ_ORDER - self._table_size = JIS_TABLE_SIZE - self.typical_distribution_ratio = JIS_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for euc-JP encoding, we are interested - # first byte range: 0xa0 -- 0xfe - # second byte range: 0xa1 -- 0xfe - # no validation needed here. State machine has done that - char = byte_str[0] - if char >= 0xA0: - return 94 * (char - 0xA1) + byte_str[1] - 0xa1 - else: - return -1 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetgroupprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetgroupprober.py deleted file mode 100644 index 5812cef..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetgroupprober.py +++ /dev/null @@ -1,107 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .enums import ProbingState -from .charsetprober import CharSetProber - - -class CharSetGroupProber(CharSetProber): - def __init__(self, lang_filter=None): - super(CharSetGroupProber, self).__init__(lang_filter=lang_filter) - self._active_num = 0 - self.probers = [] - self._best_guess_prober = None - - def reset(self): - super(CharSetGroupProber, self).reset() - self._active_num = 0 - for prober in self.probers: - if prober: - prober.reset() - prober.active = True - self._active_num += 1 - self._best_guess_prober = None - - @property - def charset_name(self): - if not self._best_guess_prober: - self.get_confidence() - if not self._best_guess_prober: - return None - return self._best_guess_prober.charset_name - - @property - def language(self): - if not self._best_guess_prober: - self.get_confidence() - if not self._best_guess_prober: - return None - return self._best_guess_prober.language - - def feed(self, byte_str): - for prober in self.probers: - if not prober: - continue - if not prober.active: - continue - state = prober.feed(byte_str) - if not state: - continue - if state == ProbingState.FOUND_IT: - self._best_guess_prober = prober - self._state = ProbingState.FOUND_IT - return self.state - elif state == ProbingState.NOT_ME: - prober.active = False - self._active_num -= 1 - if self._active_num <= 0: - self._state = ProbingState.NOT_ME - return self.state - return self.state - - def get_confidence(self): - state = self.state - if state == ProbingState.FOUND_IT: - return 0.99 - elif state == ProbingState.NOT_ME: - return 0.01 - best_conf = 0.0 - self._best_guess_prober = None - for prober in self.probers: - if not prober: - continue - if not prober.active: - self.logger.debug('%s not active', prober.charset_name) - continue - conf = prober.get_confidence() - self.logger.debug('%s %s confidence = %s', prober.charset_name, prober.language, conf) - if best_conf < conf: - best_conf = conf - self._best_guess_prober = prober - if not self._best_guess_prober: - return 0.0 - return best_conf diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetprober.py deleted file mode 100644 index eac4e59..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetprober.py +++ /dev/null @@ -1,145 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -import logging -import re - -from .enums import ProbingState - - -class CharSetProber(object): - - SHORTCUT_THRESHOLD = 0.95 - - def __init__(self, lang_filter=None): - self._state = None - self.lang_filter = lang_filter - self.logger = logging.getLogger(__name__) - - def reset(self): - self._state = ProbingState.DETECTING - - @property - def charset_name(self): - return None - - def feed(self, buf): - pass - - @property - def state(self): - return self._state - - def get_confidence(self): - return 0.0 - - @staticmethod - def filter_high_byte_only(buf): - buf = re.sub(b'([\x00-\x7F])+', b' ', buf) - return buf - - @staticmethod - def filter_international_words(buf): - """ - We define three types of bytes: - alphabet: english alphabets [a-zA-Z] - international: international characters [\x80-\xFF] - marker: everything else [^a-zA-Z\x80-\xFF] - - The input buffer can be thought to contain a series of words delimited - by markers. This function works to filter all words that contain at - least one international character. All contiguous sequences of markers - are replaced by a single space ascii character. - - This filter applies to all scripts which do not use English characters. - """ - filtered = bytearray() - - # This regex expression filters out only words that have at-least one - # international character. The word may include one marker character at - # the end. - words = re.findall(b'[a-zA-Z]*[\x80-\xFF]+[a-zA-Z]*[^a-zA-Z\x80-\xFF]?', - buf) - - for word in words: - filtered.extend(word[:-1]) - - # If the last character in the word is a marker, replace it with a - # space as markers shouldn't affect our analysis (they are used - # similarly across all languages and may thus have similar - # frequencies). - last_char = word[-1:] - if not last_char.isalpha() and last_char < b'\x80': - last_char = b' ' - filtered.extend(last_char) - - return filtered - - @staticmethod - def filter_with_english_letters(buf): - """ - Returns a copy of ``buf`` that retains only the sequences of English - alphabet and high byte characters that are not between <> characters. - Also retains English alphabet and high byte characters immediately - before occurrences of >. - - This filter can be applied to all scripts which contain both English - characters and extended ASCII characters, but is currently only used by - ``Latin1Prober``. - """ - filtered = bytearray() - in_tag = False - prev = 0 - - for curr in range(len(buf)): - # Slice here to get bytes instead of an int with Python 3 - buf_char = buf[curr:curr + 1] - # Check if we're coming out of or entering an HTML tag - if buf_char == b'>': - in_tag = False - elif buf_char == b'<': - in_tag = True - - # If current character is not extended-ASCII and not alphabetic... - if buf_char < b'\x80' and not buf_char.isalpha(): - # ...and we're not in a tag - if curr > prev and not in_tag: - # Keep everything after last non-extended-ASCII, - # non-alphabetic character - filtered.extend(buf[prev:curr]) - # Output a space to delimit stretch we kept - filtered.extend(b' ') - prev = curr + 1 - - # If we're not in a tag... - if not in_tag: - # Keep everything after last non-extended-ASCII, non-alphabetic - # character - filtered.extend(buf[prev:]) - - return filtered diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__init__.py deleted file mode 100644 index 8b13789..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index dccda38c8030584c7775b2a03782415370667a5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmYjLu?@m75OgF8gp@%j$QM*d2r&T-1H2sj!48RS`As0BFam2Z1}!7dQQ=f@(%tJ% zr_;%@oQaIvW8M_`zQ*Stqq)uGNfs^kVqWa-B98V?J`Bcp1hr*zkquFTM4Z6UAt6)j zDPp=h4ACoMhN>smLu+dYLo(his}-)VWf%77(qo39$;p QbGq)lKDV?P$GkJe7b^NWK>z>% diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-39.pyc deleted file mode 100644 index 4042d56af9d17635f3e281741b7abd3cad5b99dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2700 zcma)8&5j$#5uSf?XSvkcaSX^#gg!)wXzY@f5*XW+mIIiHGitJ%%i+!s z)!p1RDeh@=v>w2>C34C$_?E}$t511_AcpeQ47sKtA2I}cs(Y$yx~jhVYWTrH?BM$L zU!Cc9kiMtM?&V|h2mH0dAe@0CT;XMI?hU-$ANYAN2wYn8vv3er_h=B|9%PNYIcQeT z!fY>(2XQ4w*?!&{v>+ddrr7(tJ2((+5sQ6DZFx(y&OBAf_LTz-|8u8vi{Eh_C;oh- z(wSiwlXNs;hM!5z%0jYIvAk50jnhoB88;Kncp;dQvr-vSVP+yz#e_6+WTc2?F)Bq` zoa#9K@XyzcJ8fT#wT9HRb!=_v84JF)PZg6Yy!K%5xYKM=UiPms9wZ7PGlw zV^!u%8@SSq<9{PHPRF;m_)wSG+{h%&DFC)TQ)yw6@w^zBv@Go5yh!1{OtRES#WQ`< zaqWJRoJ*zgJV`M1AAk7(w>Q2hQd;KOqbhc#vSIbUkwQYS0-x?!5vdut$S z?OnR7KzO$ul?nekUTtPr3vN4WU_*qox^^K&KuTlzLlyDQq?xONafAonpCb1f;2DyL zL{eCXdCG@bTo|c$%@#bDeRhJ89&b(qKxG+#i`>v^^}Zdu^&XtETC-7l zTA&zgb9;>C?dO+$_WbfSygk3P@sC(t9*`Qar=*@|=A^T)8c3zxqeF6~_`(KbDTNIL zYR-nEtklv*wYH-4+ek>lmG$*P+n*yG$h#$}R=!~CA-J7Me9$=1wRlQA}_eNQ|l@a6aY+>6qR%R6Nq#V;x^c@UN z9Jx*WVlQ$@irm0G#J%N4F9Tn_3yl$2>gEa{Q3$KD_y&S;rY;fZ3m2evr=IXdV4Q1T zglktsCQ$cGIE{*k#%bf!6^$1m3WGF3k|MrtnmuUlzwl`luy@uj%FLVYqtM<%f%(_1 zwWH3>foQ=-TO7RbT*n-kTPr-99$tA@D86TZ6>Xx_<@Xg}{sgK-mH@ImC)T7aFs@GL z$Qg)+mXJveWD{Yc8n^<5zFG}XKku_oHwAOE`3OYEQdH1Pj?!@|#fFNv?>eS;)g?lu zb#s9OPk^x__Vg*x(DzEwsJ4IVPTmJdU|Jx=| zx;s7M<}j}aTNrC%%pI86up;E;-#(@mbTL6`{73^ASSjZjh4xGmQBZqPIr;vI@z*E! zgdB4eW4|W(j`h^gy6<%Y8%$(2vjKT-!vel*+t?^C_l}P@RBjs^VYz?z9?Imjqd^26 z&qlnW6ZI>ga`}%h%Q-SGnVJ^`5#&w_MB@NmLHS%}i!OVNa@XvmC!c+K{D_&06fKU| zq*vjB=!vso#*4EWM{rhyk9f8rMj&9!7Uf*k4Xn$MYE0P$FAO7>j_44(2RJ^a1q*|H+8=Ik`k1E5wzv=po>thkO-jZSM5tmX^(K5(O$;^~&c|b^)LXPd z&CAA>J=&_(FDsQ)b7K}Zta_)7(DbmOs&Vx;6etDIKDSY|Q&lr<-EqZS_3#cE3UZzn z4i=rb7&h$ zBFa&c*f>EyM~9P1qNo)sp9W$a^=lf)S^G2aU3bHG-Az&}e+TdU#FH)<03S~^mEZj- z1$;Nu9|QIGQK_m9Q3qvvXkv4miAZy2s6x^FU0#ZLCVx*PsVVqD`z;Rv@LJ%|mLLBj IzSDI72OxVT(f|Me diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/chardetect.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/chardetect.py deleted file mode 100644 index 6d6f93a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/chardetect.py +++ /dev/null @@ -1,84 +0,0 @@ -""" -Script which takes one or more file paths and reports on their detected -encodings - -Example:: - - % chardetect somefile someotherfile - somefile: windows-1252 with confidence 0.5 - someotherfile: ascii with confidence 1.0 - -If no paths are provided, it takes its input from stdin. - -""" - -from __future__ import absolute_import, print_function, unicode_literals - -import argparse -import sys - -from pip._vendor.chardet import __version__ -from pip._vendor.chardet.compat import PY2 -from pip._vendor.chardet.universaldetector import UniversalDetector - - -def description_of(lines, name='stdin'): - """ - Return a string describing the probable encoding of a file or - list of strings. - - :param lines: The lines to get the encoding of. - :type lines: Iterable of bytes - :param name: Name of file or collection of lines - :type name: str - """ - u = UniversalDetector() - for line in lines: - line = bytearray(line) - u.feed(line) - # shortcut out of the loop to save reading further - particularly useful if we read a BOM. - if u.done: - break - u.close() - result = u.result - if PY2: - name = name.decode(sys.getfilesystemencoding(), 'ignore') - if result['encoding']: - return '{}: {} with confidence {}'.format(name, result['encoding'], - result['confidence']) - else: - return '{}: no result'.format(name) - - -def main(argv=None): - """ - Handles command line arguments and gets things started. - - :param argv: List of arguments, as if specified on the command-line. - If None, ``sys.argv[1:]`` is used instead. - :type argv: list of str - """ - # Get command line arguments - parser = argparse.ArgumentParser( - description="Takes one or more file paths and reports their detected \ - encodings") - parser.add_argument('input', - help='File whose encoding we would like to determine. \ - (default: stdin)', - type=argparse.FileType('rb'), nargs='*', - default=[sys.stdin if PY2 else sys.stdin.buffer]) - parser.add_argument('--version', action='version', - version='%(prog)s {}'.format(__version__)) - args = parser.parse_args(argv) - - for f in args.input: - if f.isatty(): - print("You are running chardetect interactively. Press " + - "CTRL-D twice at the start of a blank line to signal the " + - "end of your input. If you want help, run chardetect " + - "--help\n", file=sys.stderr) - print(description_of(f, f.name)) - - -if __name__ == '__main__': - main() diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/codingstatemachine.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/codingstatemachine.py deleted file mode 100644 index 68fba44..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/codingstatemachine.py +++ /dev/null @@ -1,88 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -import logging - -from .enums import MachineState - - -class CodingStateMachine(object): - """ - A state machine to verify a byte sequence for a particular encoding. For - each byte the detector receives, it will feed that byte to every active - state machine available, one byte at a time. The state machine changes its - state based on its previous state and the byte it receives. There are 3 - states in a state machine that are of interest to an auto-detector: - - START state: This is the state to start with, or a legal byte sequence - (i.e. a valid code point) for character has been identified. - - ME state: This indicates that the state machine identified a byte sequence - that is specific to the charset it is designed for and that - there is no other possible encoding which can contain this byte - sequence. This will to lead to an immediate positive answer for - the detector. - - ERROR state: This indicates the state machine identified an illegal byte - sequence for that encoding. This will lead to an immediate - negative answer for this encoding. Detector will exclude this - encoding from consideration from here on. - """ - def __init__(self, sm): - self._model = sm - self._curr_byte_pos = 0 - self._curr_char_len = 0 - self._curr_state = None - self.logger = logging.getLogger(__name__) - self.reset() - - def reset(self): - self._curr_state = MachineState.START - - def next_state(self, c): - # for each byte we get its class - # if it is first byte, we also get byte length - byte_class = self._model['class_table'][c] - if self._curr_state == MachineState.START: - self._curr_byte_pos = 0 - self._curr_char_len = self._model['char_len_table'][byte_class] - # from byte's class and state_table, we get its next state - curr_state = (self._curr_state * self._model['class_factor'] - + byte_class) - self._curr_state = self._model['state_table'][curr_state] - self._curr_byte_pos += 1 - return self._curr_state - - def get_current_charlen(self): - return self._curr_char_len - - def get_coding_state_machine(self): - return self._model['name'] - - @property - def language(self): - return self._model['language'] diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/compat.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/compat.py deleted file mode 100644 index 8941572..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/compat.py +++ /dev/null @@ -1,36 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# Contributor(s): -# Dan Blanchard -# Ian Cordasco -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -import sys - - -if sys.version_info < (3, 0): - PY2 = True - PY3 = False - string_types = (str, unicode) - text_type = unicode - iteritems = dict.iteritems -else: - PY2 = False - PY3 = True - string_types = (bytes, str) - text_type = str - iteritems = dict.items diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cp949prober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cp949prober.py deleted file mode 100644 index efd793a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cp949prober.py +++ /dev/null @@ -1,49 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .chardistribution import EUCKRDistributionAnalysis -from .codingstatemachine import CodingStateMachine -from .mbcharsetprober import MultiByteCharSetProber -from .mbcssm import CP949_SM_MODEL - - -class CP949Prober(MultiByteCharSetProber): - def __init__(self): - super(CP949Prober, self).__init__() - self.coding_sm = CodingStateMachine(CP949_SM_MODEL) - # NOTE: CP949 is a superset of EUC-KR, so the distribution should be - # not different. - self.distribution_analyzer = EUCKRDistributionAnalysis() - self.reset() - - @property - def charset_name(self): - return "CP949" - - @property - def language(self): - return "Korean" diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/enums.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/enums.py deleted file mode 100644 index 0451207..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/enums.py +++ /dev/null @@ -1,76 +0,0 @@ -""" -All of the Enums that are used throughout the chardet package. - -:author: Dan Blanchard (dan.blanchard@gmail.com) -""" - - -class InputState(object): - """ - This enum represents the different states a universal detector can be in. - """ - PURE_ASCII = 0 - ESC_ASCII = 1 - HIGH_BYTE = 2 - - -class LanguageFilter(object): - """ - This enum represents the different language filters we can apply to a - ``UniversalDetector``. - """ - CHINESE_SIMPLIFIED = 0x01 - CHINESE_TRADITIONAL = 0x02 - JAPANESE = 0x04 - KOREAN = 0x08 - NON_CJK = 0x10 - ALL = 0x1F - CHINESE = CHINESE_SIMPLIFIED | CHINESE_TRADITIONAL - CJK = CHINESE | JAPANESE | KOREAN - - -class ProbingState(object): - """ - This enum represents the different states a prober can be in. - """ - DETECTING = 0 - FOUND_IT = 1 - NOT_ME = 2 - - -class MachineState(object): - """ - This enum represents the different states a state machine can be in. - """ - START = 0 - ERROR = 1 - ITS_ME = 2 - - -class SequenceLikelihood(object): - """ - This enum represents the likelihood of a character following the previous one. - """ - NEGATIVE = 0 - UNLIKELY = 1 - LIKELY = 2 - POSITIVE = 3 - - @classmethod - def get_num_categories(cls): - """:returns: The number of likelihood categories in the enum.""" - return 4 - - -class CharacterCategory(object): - """ - This enum represents the different categories language models for - ``SingleByteCharsetProber`` put characters into. - - Anything less than CONTROL is considered a letter. - """ - UNDEFINED = 255 - LINE_BREAK = 254 - SYMBOL = 253 - DIGIT = 252 - CONTROL = 251 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.py deleted file mode 100644 index c70493f..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.py +++ /dev/null @@ -1,101 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .codingstatemachine import CodingStateMachine -from .enums import LanguageFilter, ProbingState, MachineState -from .escsm import (HZ_SM_MODEL, ISO2022CN_SM_MODEL, ISO2022JP_SM_MODEL, - ISO2022KR_SM_MODEL) - - -class EscCharSetProber(CharSetProber): - """ - This CharSetProber uses a "code scheme" approach for detecting encodings, - whereby easily recognizable escape or shift sequences are relied on to - identify these encodings. - """ - - def __init__(self, lang_filter=None): - super(EscCharSetProber, self).__init__(lang_filter=lang_filter) - self.coding_sm = [] - if self.lang_filter & LanguageFilter.CHINESE_SIMPLIFIED: - self.coding_sm.append(CodingStateMachine(HZ_SM_MODEL)) - self.coding_sm.append(CodingStateMachine(ISO2022CN_SM_MODEL)) - if self.lang_filter & LanguageFilter.JAPANESE: - self.coding_sm.append(CodingStateMachine(ISO2022JP_SM_MODEL)) - if self.lang_filter & LanguageFilter.KOREAN: - self.coding_sm.append(CodingStateMachine(ISO2022KR_SM_MODEL)) - self.active_sm_count = None - self._detected_charset = None - self._detected_language = None - self._state = None - self.reset() - - def reset(self): - super(EscCharSetProber, self).reset() - for coding_sm in self.coding_sm: - if not coding_sm: - continue - coding_sm.active = True - coding_sm.reset() - self.active_sm_count = len(self.coding_sm) - self._detected_charset = None - self._detected_language = None - - @property - def charset_name(self): - return self._detected_charset - - @property - def language(self): - return self._detected_language - - def get_confidence(self): - if self._detected_charset: - return 0.99 - else: - return 0.00 - - def feed(self, byte_str): - for c in byte_str: - for coding_sm in self.coding_sm: - if not coding_sm or not coding_sm.active: - continue - coding_state = coding_sm.next_state(c) - if coding_state == MachineState.ERROR: - coding_sm.active = False - self.active_sm_count -= 1 - if self.active_sm_count <= 0: - self._state = ProbingState.NOT_ME - return self.state - elif coding_state == MachineState.ITS_ME: - self._state = ProbingState.FOUND_IT - self._detected_charset = coding_sm.get_coding_state_machine() - self._detected_language = coding_sm.language - return self.state - - return self.state diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escsm.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escsm.py deleted file mode 100644 index 0069523..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escsm.py +++ /dev/null @@ -1,246 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .enums import MachineState - -HZ_CLS = ( -1,0,0,0,0,0,0,0, # 00 - 07 -0,0,0,0,0,0,0,0, # 08 - 0f -0,0,0,0,0,0,0,0, # 10 - 17 -0,0,0,1,0,0,0,0, # 18 - 1f -0,0,0,0,0,0,0,0, # 20 - 27 -0,0,0,0,0,0,0,0, # 28 - 2f -0,0,0,0,0,0,0,0, # 30 - 37 -0,0,0,0,0,0,0,0, # 38 - 3f -0,0,0,0,0,0,0,0, # 40 - 47 -0,0,0,0,0,0,0,0, # 48 - 4f -0,0,0,0,0,0,0,0, # 50 - 57 -0,0,0,0,0,0,0,0, # 58 - 5f -0,0,0,0,0,0,0,0, # 60 - 67 -0,0,0,0,0,0,0,0, # 68 - 6f -0,0,0,0,0,0,0,0, # 70 - 77 -0,0,0,4,0,5,2,0, # 78 - 7f -1,1,1,1,1,1,1,1, # 80 - 87 -1,1,1,1,1,1,1,1, # 88 - 8f -1,1,1,1,1,1,1,1, # 90 - 97 -1,1,1,1,1,1,1,1, # 98 - 9f -1,1,1,1,1,1,1,1, # a0 - a7 -1,1,1,1,1,1,1,1, # a8 - af -1,1,1,1,1,1,1,1, # b0 - b7 -1,1,1,1,1,1,1,1, # b8 - bf -1,1,1,1,1,1,1,1, # c0 - c7 -1,1,1,1,1,1,1,1, # c8 - cf -1,1,1,1,1,1,1,1, # d0 - d7 -1,1,1,1,1,1,1,1, # d8 - df -1,1,1,1,1,1,1,1, # e0 - e7 -1,1,1,1,1,1,1,1, # e8 - ef -1,1,1,1,1,1,1,1, # f0 - f7 -1,1,1,1,1,1,1,1, # f8 - ff -) - -HZ_ST = ( -MachineState.START,MachineState.ERROR, 3,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,# 00-07 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 08-0f -MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START, 4,MachineState.ERROR,# 10-17 - 5,MachineState.ERROR, 6,MachineState.ERROR, 5, 5, 4,MachineState.ERROR,# 18-1f - 4,MachineState.ERROR, 4, 4, 4,MachineState.ERROR, 4,MachineState.ERROR,# 20-27 - 4,MachineState.ITS_ME,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 28-2f -) - -HZ_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0) - -HZ_SM_MODEL = {'class_table': HZ_CLS, - 'class_factor': 6, - 'state_table': HZ_ST, - 'char_len_table': HZ_CHAR_LEN_TABLE, - 'name': "HZ-GB-2312", - 'language': 'Chinese'} - -ISO2022CN_CLS = ( -2,0,0,0,0,0,0,0, # 00 - 07 -0,0,0,0,0,0,0,0, # 08 - 0f -0,0,0,0,0,0,0,0, # 10 - 17 -0,0,0,1,0,0,0,0, # 18 - 1f -0,0,0,0,0,0,0,0, # 20 - 27 -0,3,0,0,0,0,0,0, # 28 - 2f -0,0,0,0,0,0,0,0, # 30 - 37 -0,0,0,0,0,0,0,0, # 38 - 3f -0,0,0,4,0,0,0,0, # 40 - 47 -0,0,0,0,0,0,0,0, # 48 - 4f -0,0,0,0,0,0,0,0, # 50 - 57 -0,0,0,0,0,0,0,0, # 58 - 5f -0,0,0,0,0,0,0,0, # 60 - 67 -0,0,0,0,0,0,0,0, # 68 - 6f -0,0,0,0,0,0,0,0, # 70 - 77 -0,0,0,0,0,0,0,0, # 78 - 7f -2,2,2,2,2,2,2,2, # 80 - 87 -2,2,2,2,2,2,2,2, # 88 - 8f -2,2,2,2,2,2,2,2, # 90 - 97 -2,2,2,2,2,2,2,2, # 98 - 9f -2,2,2,2,2,2,2,2, # a0 - a7 -2,2,2,2,2,2,2,2, # a8 - af -2,2,2,2,2,2,2,2, # b0 - b7 -2,2,2,2,2,2,2,2, # b8 - bf -2,2,2,2,2,2,2,2, # c0 - c7 -2,2,2,2,2,2,2,2, # c8 - cf -2,2,2,2,2,2,2,2, # d0 - d7 -2,2,2,2,2,2,2,2, # d8 - df -2,2,2,2,2,2,2,2, # e0 - e7 -2,2,2,2,2,2,2,2, # e8 - ef -2,2,2,2,2,2,2,2, # f0 - f7 -2,2,2,2,2,2,2,2, # f8 - ff -) - -ISO2022CN_ST = ( -MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 00-07 -MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 08-0f -MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 10-17 -MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 4,MachineState.ERROR,# 18-1f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 20-27 - 5, 6,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 28-2f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 30-37 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,# 38-3f -) - -ISO2022CN_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0, 0, 0, 0) - -ISO2022CN_SM_MODEL = {'class_table': ISO2022CN_CLS, - 'class_factor': 9, - 'state_table': ISO2022CN_ST, - 'char_len_table': ISO2022CN_CHAR_LEN_TABLE, - 'name': "ISO-2022-CN", - 'language': 'Chinese'} - -ISO2022JP_CLS = ( -2,0,0,0,0,0,0,0, # 00 - 07 -0,0,0,0,0,0,2,2, # 08 - 0f -0,0,0,0,0,0,0,0, # 10 - 17 -0,0,0,1,0,0,0,0, # 18 - 1f -0,0,0,0,7,0,0,0, # 20 - 27 -3,0,0,0,0,0,0,0, # 28 - 2f -0,0,0,0,0,0,0,0, # 30 - 37 -0,0,0,0,0,0,0,0, # 38 - 3f -6,0,4,0,8,0,0,0, # 40 - 47 -0,9,5,0,0,0,0,0, # 48 - 4f -0,0,0,0,0,0,0,0, # 50 - 57 -0,0,0,0,0,0,0,0, # 58 - 5f -0,0,0,0,0,0,0,0, # 60 - 67 -0,0,0,0,0,0,0,0, # 68 - 6f -0,0,0,0,0,0,0,0, # 70 - 77 -0,0,0,0,0,0,0,0, # 78 - 7f -2,2,2,2,2,2,2,2, # 80 - 87 -2,2,2,2,2,2,2,2, # 88 - 8f -2,2,2,2,2,2,2,2, # 90 - 97 -2,2,2,2,2,2,2,2, # 98 - 9f -2,2,2,2,2,2,2,2, # a0 - a7 -2,2,2,2,2,2,2,2, # a8 - af -2,2,2,2,2,2,2,2, # b0 - b7 -2,2,2,2,2,2,2,2, # b8 - bf -2,2,2,2,2,2,2,2, # c0 - c7 -2,2,2,2,2,2,2,2, # c8 - cf -2,2,2,2,2,2,2,2, # d0 - d7 -2,2,2,2,2,2,2,2, # d8 - df -2,2,2,2,2,2,2,2, # e0 - e7 -2,2,2,2,2,2,2,2, # e8 - ef -2,2,2,2,2,2,2,2, # f0 - f7 -2,2,2,2,2,2,2,2, # f8 - ff -) - -ISO2022JP_ST = ( -MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 00-07 -MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 08-0f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 10-17 -MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,# 18-1f -MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 4,MachineState.ERROR,MachineState.ERROR,# 20-27 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 6,MachineState.ITS_ME,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,# 28-2f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,# 30-37 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 38-3f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,MachineState.START,# 40-47 -) - -ISO2022JP_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - -ISO2022JP_SM_MODEL = {'class_table': ISO2022JP_CLS, - 'class_factor': 10, - 'state_table': ISO2022JP_ST, - 'char_len_table': ISO2022JP_CHAR_LEN_TABLE, - 'name': "ISO-2022-JP", - 'language': 'Japanese'} - -ISO2022KR_CLS = ( -2,0,0,0,0,0,0,0, # 00 - 07 -0,0,0,0,0,0,0,0, # 08 - 0f -0,0,0,0,0,0,0,0, # 10 - 17 -0,0,0,1,0,0,0,0, # 18 - 1f -0,0,0,0,3,0,0,0, # 20 - 27 -0,4,0,0,0,0,0,0, # 28 - 2f -0,0,0,0,0,0,0,0, # 30 - 37 -0,0,0,0,0,0,0,0, # 38 - 3f -0,0,0,5,0,0,0,0, # 40 - 47 -0,0,0,0,0,0,0,0, # 48 - 4f -0,0,0,0,0,0,0,0, # 50 - 57 -0,0,0,0,0,0,0,0, # 58 - 5f -0,0,0,0,0,0,0,0, # 60 - 67 -0,0,0,0,0,0,0,0, # 68 - 6f -0,0,0,0,0,0,0,0, # 70 - 77 -0,0,0,0,0,0,0,0, # 78 - 7f -2,2,2,2,2,2,2,2, # 80 - 87 -2,2,2,2,2,2,2,2, # 88 - 8f -2,2,2,2,2,2,2,2, # 90 - 97 -2,2,2,2,2,2,2,2, # 98 - 9f -2,2,2,2,2,2,2,2, # a0 - a7 -2,2,2,2,2,2,2,2, # a8 - af -2,2,2,2,2,2,2,2, # b0 - b7 -2,2,2,2,2,2,2,2, # b8 - bf -2,2,2,2,2,2,2,2, # c0 - c7 -2,2,2,2,2,2,2,2, # c8 - cf -2,2,2,2,2,2,2,2, # d0 - d7 -2,2,2,2,2,2,2,2, # d8 - df -2,2,2,2,2,2,2,2, # e0 - e7 -2,2,2,2,2,2,2,2, # e8 - ef -2,2,2,2,2,2,2,2, # f0 - f7 -2,2,2,2,2,2,2,2, # f8 - ff -) - -ISO2022KR_ST = ( -MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,# 00-07 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 08-0f -MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 4,MachineState.ERROR,MachineState.ERROR,# 10-17 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 18-1f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 20-27 -) - -ISO2022KR_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0) - -ISO2022KR_SM_MODEL = {'class_table': ISO2022KR_CLS, - 'class_factor': 6, - 'state_table': ISO2022KR_ST, - 'char_len_table': ISO2022KR_CHAR_LEN_TABLE, - 'name': "ISO-2022-KR", - 'language': 'Korean'} - - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/eucjpprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/eucjpprober.py deleted file mode 100644 index 20ce8f7..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/eucjpprober.py +++ /dev/null @@ -1,92 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .enums import ProbingState, MachineState -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import EUCJPDistributionAnalysis -from .jpcntx import EUCJPContextAnalysis -from .mbcssm import EUCJP_SM_MODEL - - -class EUCJPProber(MultiByteCharSetProber): - def __init__(self): - super(EUCJPProber, self).__init__() - self.coding_sm = CodingStateMachine(EUCJP_SM_MODEL) - self.distribution_analyzer = EUCJPDistributionAnalysis() - self.context_analyzer = EUCJPContextAnalysis() - self.reset() - - def reset(self): - super(EUCJPProber, self).reset() - self.context_analyzer.reset() - - @property - def charset_name(self): - return "EUC-JP" - - @property - def language(self): - return "Japanese" - - def feed(self, byte_str): - for i in range(len(byte_str)): - # PY3K: byte_str is a byte array, so byte_str[i] is an int, not a byte - coding_state = self.coding_sm.next_state(byte_str[i]) - if coding_state == MachineState.ERROR: - self.logger.debug('%s %s prober hit error at byte %s', - self.charset_name, self.language, i) - self._state = ProbingState.NOT_ME - break - elif coding_state == MachineState.ITS_ME: - self._state = ProbingState.FOUND_IT - break - elif coding_state == MachineState.START: - char_len = self.coding_sm.get_current_charlen() - if i == 0: - self._last_char[1] = byte_str[0] - self.context_analyzer.feed(self._last_char, char_len) - self.distribution_analyzer.feed(self._last_char, char_len) - else: - self.context_analyzer.feed(byte_str[i - 1:i + 1], - char_len) - self.distribution_analyzer.feed(byte_str[i - 1:i + 1], - char_len) - - self._last_char[0] = byte_str[-1] - - if self.state == ProbingState.DETECTING: - if (self.context_analyzer.got_enough_data() and - (self.get_confidence() > self.SHORTCUT_THRESHOLD)): - self._state = ProbingState.FOUND_IT - - return self.state - - def get_confidence(self): - context_conf = self.context_analyzer.get_confidence() - distrib_conf = self.distribution_analyzer.get_confidence() - return max(context_conf, distrib_conf) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrfreq.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrfreq.py deleted file mode 100644 index b68078c..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrfreq.py +++ /dev/null @@ -1,195 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# Sampling from about 20M text materials include literature and computer technology - -# 128 --> 0.79 -# 256 --> 0.92 -# 512 --> 0.986 -# 1024 --> 0.99944 -# 2048 --> 0.99999 -# -# Idea Distribution Ratio = 0.98653 / (1-0.98653) = 73.24 -# Random Distribution Ration = 512 / (2350-512) = 0.279. -# -# Typical Distribution Ratio - -EUCKR_TYPICAL_DISTRIBUTION_RATIO = 6.0 - -EUCKR_TABLE_SIZE = 2352 - -# Char to FreqOrder table , -EUCKR_CHAR_TO_FREQ_ORDER = ( - 13, 130, 120,1396, 481,1719,1720, 328, 609, 212,1721, 707, 400, 299,1722, 87, -1397,1723, 104, 536,1117,1203,1724,1267, 685,1268, 508,1725,1726,1727,1728,1398, -1399,1729,1730,1731, 141, 621, 326,1057, 368,1732, 267, 488, 20,1733,1269,1734, - 945,1400,1735, 47, 904,1270,1736,1737, 773, 248,1738, 409, 313, 786, 429,1739, - 116, 987, 813,1401, 683, 75,1204, 145,1740,1741,1742,1743, 16, 847, 667, 622, - 708,1744,1745,1746, 966, 787, 304, 129,1747, 60, 820, 123, 676,1748,1749,1750, -1751, 617,1752, 626,1753,1754,1755,1756, 653,1757,1758,1759,1760,1761,1762, 856, - 344,1763,1764,1765,1766, 89, 401, 418, 806, 905, 848,1767,1768,1769, 946,1205, - 709,1770,1118,1771, 241,1772,1773,1774,1271,1775, 569,1776, 999,1777,1778,1779, -1780, 337, 751,1058, 28, 628, 254,1781, 177, 906, 270, 349, 891,1079,1782, 19, -1783, 379,1784, 315,1785, 629, 754,1402, 559,1786, 636, 203,1206,1787, 710, 567, -1788, 935, 814,1789,1790,1207, 766, 528,1791,1792,1208,1793,1794,1795,1796,1797, -1403,1798,1799, 533,1059,1404,1405,1156,1406, 936, 884,1080,1800, 351,1801,1802, -1803,1804,1805, 801,1806,1807,1808,1119,1809,1157, 714, 474,1407,1810, 298, 899, - 885,1811,1120, 802,1158,1812, 892,1813,1814,1408, 659,1815,1816,1121,1817,1818, -1819,1820,1821,1822, 319,1823, 594, 545,1824, 815, 937,1209,1825,1826, 573,1409, -1022,1827,1210,1828,1829,1830,1831,1832,1833, 556, 722, 807,1122,1060,1834, 697, -1835, 900, 557, 715,1836,1410, 540,1411, 752,1159, 294, 597,1211, 976, 803, 770, -1412,1837,1838, 39, 794,1413, 358,1839, 371, 925,1840, 453, 661, 788, 531, 723, - 544,1023,1081, 869, 91,1841, 392, 430, 790, 602,1414, 677,1082, 457,1415,1416, -1842,1843, 475, 327,1024,1417, 795, 121,1844, 733, 403,1418,1845,1846,1847, 300, - 119, 711,1212, 627,1848,1272, 207,1849,1850, 796,1213, 382,1851, 519,1852,1083, - 893,1853,1854,1855, 367, 809, 487, 671,1856, 663,1857,1858, 956, 471, 306, 857, -1859,1860,1160,1084,1861,1862,1863,1864,1865,1061,1866,1867,1868,1869,1870,1871, - 282, 96, 574,1872, 502,1085,1873,1214,1874, 907,1875,1876, 827, 977,1419,1420, -1421, 268,1877,1422,1878,1879,1880, 308,1881, 2, 537,1882,1883,1215,1884,1885, - 127, 791,1886,1273,1423,1887, 34, 336, 404, 643,1888, 571, 654, 894, 840,1889, - 0, 886,1274, 122, 575, 260, 908, 938,1890,1275, 410, 316,1891,1892, 100,1893, -1894,1123, 48,1161,1124,1025,1895, 633, 901,1276,1896,1897, 115, 816,1898, 317, -1899, 694,1900, 909, 734,1424, 572, 866,1425, 691, 85, 524,1010, 543, 394, 841, -1901,1902,1903,1026,1904,1905,1906,1907,1908,1909, 30, 451, 651, 988, 310,1910, -1911,1426, 810,1216, 93,1912,1913,1277,1217,1914, 858, 759, 45, 58, 181, 610, - 269,1915,1916, 131,1062, 551, 443,1000, 821,1427, 957, 895,1086,1917,1918, 375, -1919, 359,1920, 687,1921, 822,1922, 293,1923,1924, 40, 662, 118, 692, 29, 939, - 887, 640, 482, 174,1925, 69,1162, 728,1428, 910,1926,1278,1218,1279, 386, 870, - 217, 854,1163, 823,1927,1928,1929,1930, 834,1931, 78,1932, 859,1933,1063,1934, -1935,1936,1937, 438,1164, 208, 595,1938,1939,1940,1941,1219,1125,1942, 280, 888, -1429,1430,1220,1431,1943,1944,1945,1946,1947,1280, 150, 510,1432,1948,1949,1950, -1951,1952,1953,1954,1011,1087,1955,1433,1043,1956, 881,1957, 614, 958,1064,1065, -1221,1958, 638,1001, 860, 967, 896,1434, 989, 492, 553,1281,1165,1959,1282,1002, -1283,1222,1960,1961,1962,1963, 36, 383, 228, 753, 247, 454,1964, 876, 678,1965, -1966,1284, 126, 464, 490, 835, 136, 672, 529, 940,1088,1435, 473,1967,1968, 467, - 50, 390, 227, 587, 279, 378, 598, 792, 968, 240, 151, 160, 849, 882,1126,1285, - 639,1044, 133, 140, 288, 360, 811, 563,1027, 561, 142, 523,1969,1970,1971, 7, - 103, 296, 439, 407, 506, 634, 990,1972,1973,1974,1975, 645,1976,1977,1978,1979, -1980,1981, 236,1982,1436,1983,1984,1089, 192, 828, 618, 518,1166, 333,1127,1985, - 818,1223,1986,1987,1988,1989,1990,1991,1992,1993, 342,1128,1286, 746, 842,1994, -1995, 560, 223,1287, 98, 8, 189, 650, 978,1288,1996,1437,1997, 17, 345, 250, - 423, 277, 234, 512, 226, 97, 289, 42, 167,1998, 201,1999,2000, 843, 836, 824, - 532, 338, 783,1090, 182, 576, 436,1438,1439, 527, 500,2001, 947, 889,2002,2003, -2004,2005, 262, 600, 314, 447,2006, 547,2007, 693, 738,1129,2008, 71,1440, 745, - 619, 688,2009, 829,2010,2011, 147,2012, 33, 948,2013,2014, 74, 224,2015, 61, - 191, 918, 399, 637,2016,1028,1130, 257, 902,2017,2018,2019,2020,2021,2022,2023, -2024,2025,2026, 837,2027,2028,2029,2030, 179, 874, 591, 52, 724, 246,2031,2032, -2033,2034,1167, 969,2035,1289, 630, 605, 911,1091,1168,2036,2037,2038,1441, 912, -2039, 623,2040,2041, 253,1169,1290,2042,1442, 146, 620, 611, 577, 433,2043,1224, - 719,1170, 959, 440, 437, 534, 84, 388, 480,1131, 159, 220, 198, 679,2044,1012, - 819,1066,1443, 113,1225, 194, 318,1003,1029,2045,2046,2047,2048,1067,2049,2050, -2051,2052,2053, 59, 913, 112,2054, 632,2055, 455, 144, 739,1291,2056, 273, 681, - 499,2057, 448,2058,2059, 760,2060,2061, 970, 384, 169, 245,1132,2062,2063, 414, -1444,2064,2065, 41, 235,2066, 157, 252, 877, 568, 919, 789, 580,2067, 725,2068, -2069,1292,2070,2071,1445,2072,1446,2073,2074, 55, 588, 66,1447, 271,1092,2075, -1226,2076, 960,1013, 372,2077,2078,2079,2080,2081,1293,2082,2083,2084,2085, 850, -2086,2087,2088,2089,2090, 186,2091,1068, 180,2092,2093,2094, 109,1227, 522, 606, -2095, 867,1448,1093, 991,1171, 926, 353,1133,2096, 581,2097,2098,2099,1294,1449, -1450,2100, 596,1172,1014,1228,2101,1451,1295,1173,1229,2102,2103,1296,1134,1452, - 949,1135,2104,2105,1094,1453,1454,1455,2106,1095,2107,2108,2109,2110,2111,2112, -2113,2114,2115,2116,2117, 804,2118,2119,1230,1231, 805,1456, 405,1136,2120,2121, -2122,2123,2124, 720, 701,1297, 992,1457, 927,1004,2125,2126,2127,2128,2129,2130, - 22, 417,2131, 303,2132, 385,2133, 971, 520, 513,2134,1174, 73,1096, 231, 274, - 962,1458, 673,2135,1459,2136, 152,1137,2137,2138,2139,2140,1005,1138,1460,1139, -2141,2142,2143,2144, 11, 374, 844,2145, 154,1232, 46,1461,2146, 838, 830, 721, -1233, 106,2147, 90, 428, 462, 578, 566,1175, 352,2148,2149, 538,1234, 124,1298, -2150,1462, 761, 565,2151, 686,2152, 649,2153, 72, 173,2154, 460, 415,2155,1463, -2156,1235, 305,2157,2158,2159,2160,2161,2162, 579,2163,2164,2165,2166,2167, 747, -2168,2169,2170,2171,1464, 669,2172,2173,2174,2175,2176,1465,2177, 23, 530, 285, -2178, 335, 729,2179, 397,2180,2181,2182,1030,2183,2184, 698,2185,2186, 325,2187, -2188, 369,2189, 799,1097,1015, 348,2190,1069, 680,2191, 851,1466,2192,2193, 10, -2194, 613, 424,2195, 979, 108, 449, 589, 27, 172, 81,1031, 80, 774, 281, 350, -1032, 525, 301, 582,1176,2196, 674,1045,2197,2198,1467, 730, 762,2199,2200,2201, -2202,1468,2203, 993,2204,2205, 266,1070, 963,1140,2206,2207,2208, 664,1098, 972, -2209,2210,2211,1177,1469,1470, 871,2212,2213,2214,2215,2216,1471,2217,2218,2219, -2220,2221,2222,2223,2224,2225,2226,2227,1472,1236,2228,2229,2230,2231,2232,2233, -2234,2235,1299,2236,2237, 200,2238, 477, 373,2239,2240, 731, 825, 777,2241,2242, -2243, 521, 486, 548,2244,2245,2246,1473,1300, 53, 549, 137, 875, 76, 158,2247, -1301,1474, 469, 396,1016, 278, 712,2248, 321, 442, 503, 767, 744, 941,1237,1178, -1475,2249, 82, 178,1141,1179, 973,2250,1302,2251, 297,2252,2253, 570,2254,2255, -2256, 18, 450, 206,2257, 290, 292,1142,2258, 511, 162, 99, 346, 164, 735,2259, -1476,1477, 4, 554, 343, 798,1099,2260,1100,2261, 43, 171,1303, 139, 215,2262, -2263, 717, 775,2264,1033, 322, 216,2265, 831,2266, 149,2267,1304,2268,2269, 702, -1238, 135, 845, 347, 309,2270, 484,2271, 878, 655, 238,1006,1478,2272, 67,2273, - 295,2274,2275, 461,2276, 478, 942, 412,2277,1034,2278,2279,2280, 265,2281, 541, -2282,2283,2284,2285,2286, 70, 852,1071,2287,2288,2289,2290, 21, 56, 509, 117, - 432,2291,2292, 331, 980, 552,1101, 148, 284, 105, 393,1180,1239, 755,2293, 187, -2294,1046,1479,2295, 340,2296, 63,1047, 230,2297,2298,1305, 763,1306, 101, 800, - 808, 494,2299,2300,2301, 903,2302, 37,1072, 14, 5,2303, 79, 675,2304, 312, -2305,2306,2307,2308,2309,1480, 6,1307,2310,2311,2312, 1, 470, 35, 24, 229, -2313, 695, 210, 86, 778, 15, 784, 592, 779, 32, 77, 855, 964,2314, 259,2315, - 501, 380,2316,2317, 83, 981, 153, 689,1308,1481,1482,1483,2318,2319, 716,1484, -2320,2321,2322,2323,2324,2325,1485,2326,2327, 128, 57, 68, 261,1048, 211, 170, -1240, 31,2328, 51, 435, 742,2329,2330,2331, 635,2332, 264, 456,2333,2334,2335, - 425,2336,1486, 143, 507, 263, 943,2337, 363, 920,1487, 256,1488,1102, 243, 601, -1489,2338,2339,2340,2341,2342,2343,2344, 861,2345,2346,2347,2348,2349,2350, 395, -2351,1490,1491, 62, 535, 166, 225,2352,2353, 668, 419,1241, 138, 604, 928,2354, -1181,2355,1492,1493,2356,2357,2358,1143,2359, 696,2360, 387, 307,1309, 682, 476, -2361,2362, 332, 12, 222, 156,2363, 232,2364, 641, 276, 656, 517,1494,1495,1035, - 416, 736,1496,2365,1017, 586,2366,2367,2368,1497,2369, 242,2370,2371,2372,1498, -2373, 965, 713,2374,2375,2376,2377, 740, 982,1499, 944,1500,1007,2378,2379,1310, -1501,2380,2381,2382, 785, 329,2383,2384,1502,2385,2386,2387, 932,2388,1503,2389, -2390,2391,2392,1242,2393,2394,2395,2396,2397, 994, 950,2398,2399,2400,2401,1504, -1311,2402,2403,2404,2405,1049, 749,2406,2407, 853, 718,1144,1312,2408,1182,1505, -2409,2410, 255, 516, 479, 564, 550, 214,1506,1507,1313, 413, 239, 444, 339,1145, -1036,1508,1509,1314,1037,1510,1315,2411,1511,2412,2413,2414, 176, 703, 497, 624, - 593, 921, 302,2415, 341, 165,1103,1512,2416,1513,2417,2418,2419, 376,2420, 700, -2421,2422,2423, 258, 768,1316,2424,1183,2425, 995, 608,2426,2427,2428,2429, 221, -2430,2431,2432,2433,2434,2435,2436,2437, 195, 323, 726, 188, 897, 983,1317, 377, - 644,1050, 879,2438, 452,2439,2440,2441,2442,2443,2444, 914,2445,2446,2447,2448, - 915, 489,2449,1514,1184,2450,2451, 515, 64, 427, 495,2452, 583,2453, 483, 485, -1038, 562, 213,1515, 748, 666,2454,2455,2456,2457, 334,2458, 780, 996,1008, 705, -1243,2459,2460,2461,2462,2463, 114,2464, 493,1146, 366, 163,1516, 961,1104,2465, - 291,2466,1318,1105,2467,1517, 365,2468, 355, 951,1244,2469,1319,2470, 631,2471, -2472, 218,1320, 364, 320, 756,1518,1519,1321,1520,1322,2473,2474,2475,2476, 997, -2477,2478,2479,2480, 665,1185,2481, 916,1521,2482,2483,2484, 584, 684,2485,2486, - 797,2487,1051,1186,2488,2489,2490,1522,2491,2492, 370,2493,1039,1187, 65,2494, - 434, 205, 463,1188,2495, 125, 812, 391, 402, 826, 699, 286, 398, 155, 781, 771, - 585,2496, 590, 505,1073,2497, 599, 244, 219, 917,1018, 952, 646,1523,2498,1323, -2499,2500, 49, 984, 354, 741,2501, 625,2502,1324,2503,1019, 190, 357, 757, 491, - 95, 782, 868,2504,2505,2506,2507,2508,2509, 134,1524,1074, 422,1525, 898,2510, - 161,2511,2512,2513,2514, 769,2515,1526,2516,2517, 411,1325,2518, 472,1527,2519, -2520,2521,2522,2523,2524, 985,2525,2526,2527,2528,2529,2530, 764,2531,1245,2532, -2533, 25, 204, 311,2534, 496,2535,1052,2536,2537,2538,2539,2540,2541,2542, 199, - 704, 504, 468, 758, 657,1528, 196, 44, 839,1246, 272, 750,2543, 765, 862,2544, -2545,1326,2546, 132, 615, 933,2547, 732,2548,2549,2550,1189,1529,2551, 283,1247, -1053, 607, 929,2552,2553,2554, 930, 183, 872, 616,1040,1147,2555,1148,1020, 441, - 249,1075,2556,2557,2558, 466, 743,2559,2560,2561, 92, 514, 426, 420, 526,2562, -2563,2564,2565,2566,2567,2568, 185,2569,2570,2571,2572, 776,1530, 658,2573, 362, -2574, 361, 922,1076, 793,2575,2576,2577,2578,2579,2580,1531, 251,2581,2582,2583, -2584,1532, 54, 612, 237,1327,2585,2586, 275, 408, 647, 111,2587,1533,1106, 465, - 3, 458, 9, 38,2588, 107, 110, 890, 209, 26, 737, 498,2589,1534,2590, 431, - 202, 88,1535, 356, 287,1107, 660,1149,2591, 381,1536, 986,1150, 445,1248,1151, - 974,2592,2593, 846,2594, 446, 953, 184,1249,1250, 727,2595, 923, 193, 883,2596, -2597,2598, 102, 324, 539, 817,2599, 421,1041,2600, 832,2601, 94, 175, 197, 406, -2602, 459,2603,2604,2605,2606,2607, 330, 555,2608,2609,2610, 706,1108, 389,2611, -2612,2613,2614, 233,2615, 833, 558, 931, 954,1251,2616,2617,1537, 546,2618,2619, -1009,2620,2621,2622,1538, 690,1328,2623, 955,2624,1539,2625,2626, 772,2627,2628, -2629,2630,2631, 924, 648, 863, 603,2632,2633, 934,1540, 864, 865,2634, 642,1042, - 670,1190,2635,2636,2637,2638, 168,2639, 652, 873, 542,1054,1541,2640,2641,2642, # 512, 256 -) - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrprober.py deleted file mode 100644 index 345a060..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrprober.py +++ /dev/null @@ -1,47 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import EUCKRDistributionAnalysis -from .mbcssm import EUCKR_SM_MODEL - - -class EUCKRProber(MultiByteCharSetProber): - def __init__(self): - super(EUCKRProber, self).__init__() - self.coding_sm = CodingStateMachine(EUCKR_SM_MODEL) - self.distribution_analyzer = EUCKRDistributionAnalysis() - self.reset() - - @property - def charset_name(self): - return "EUC-KR" - - @property - def language(self): - return "Korean" diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwfreq.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwfreq.py deleted file mode 100644 index ed7a995..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwfreq.py +++ /dev/null @@ -1,387 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# EUCTW frequency table -# Converted from big5 work -# by Taiwan's Mandarin Promotion Council -# - -# 128 --> 0.42261 -# 256 --> 0.57851 -# 512 --> 0.74851 -# 1024 --> 0.89384 -# 2048 --> 0.97583 -# -# Idea Distribution Ratio = 0.74851/(1-0.74851) =2.98 -# Random Distribution Ration = 512/(5401-512)=0.105 -# -# Typical Distribution Ratio about 25% of Ideal one, still much higher than RDR - -EUCTW_TYPICAL_DISTRIBUTION_RATIO = 0.75 - -# Char to FreqOrder table , -EUCTW_TABLE_SIZE = 5376 - -EUCTW_CHAR_TO_FREQ_ORDER = ( - 1,1800,1506, 255,1431, 198, 9, 82, 6,7310, 177, 202,3615,1256,2808, 110, # 2742 -3735, 33,3241, 261, 76, 44,2113, 16,2931,2184,1176, 659,3868, 26,3404,2643, # 2758 -1198,3869,3313,4060, 410,2211, 302, 590, 361,1963, 8, 204, 58,4296,7311,1931, # 2774 - 63,7312,7313, 317,1614, 75, 222, 159,4061,2412,1480,7314,3500,3068, 224,2809, # 2790 -3616, 3, 10,3870,1471, 29,2774,1135,2852,1939, 873, 130,3242,1123, 312,7315, # 2806 -4297,2051, 507, 252, 682,7316, 142,1914, 124, 206,2932, 34,3501,3173, 64, 604, # 2822 -7317,2494,1976,1977, 155,1990, 645, 641,1606,7318,3405, 337, 72, 406,7319, 80, # 2838 - 630, 238,3174,1509, 263, 939,1092,2644, 756,1440,1094,3406, 449, 69,2969, 591, # 2854 - 179,2095, 471, 115,2034,1843, 60, 50,2970, 134, 806,1868, 734,2035,3407, 180, # 2870 - 995,1607, 156, 537,2893, 688,7320, 319,1305, 779,2144, 514,2374, 298,4298, 359, # 2886 -2495, 90,2707,1338, 663, 11, 906,1099,2545, 20,2436, 182, 532,1716,7321, 732, # 2902 -1376,4062,1311,1420,3175, 25,2312,1056, 113, 399, 382,1949, 242,3408,2467, 529, # 2918 -3243, 475,1447,3617,7322, 117, 21, 656, 810,1297,2295,2329,3502,7323, 126,4063, # 2934 - 706, 456, 150, 613,4299, 71,1118,2036,4064, 145,3069, 85, 835, 486,2114,1246, # 2950 -1426, 428, 727,1285,1015, 800, 106, 623, 303,1281,7324,2127,2354, 347,3736, 221, # 2966 -3503,3110,7325,1955,1153,4065, 83, 296,1199,3070, 192, 624, 93,7326, 822,1897, # 2982 -2810,3111, 795,2064, 991,1554,1542,1592, 27, 43,2853, 859, 139,1456, 860,4300, # 2998 - 437, 712,3871, 164,2392,3112, 695, 211,3017,2096, 195,3872,1608,3504,3505,3618, # 3014 -3873, 234, 811,2971,2097,3874,2229,1441,3506,1615,2375, 668,2076,1638, 305, 228, # 3030 -1664,4301, 467, 415,7327, 262,2098,1593, 239, 108, 300, 200,1033, 512,1247,2077, # 3046 -7328,7329,2173,3176,3619,2673, 593, 845,1062,3244, 88,1723,2037,3875,1950, 212, # 3062 - 266, 152, 149, 468,1898,4066,4302, 77, 187,7330,3018, 37, 5,2972,7331,3876, # 3078 -7332,7333, 39,2517,4303,2894,3177,2078, 55, 148, 74,4304, 545, 483,1474,1029, # 3094 -1665, 217,1869,1531,3113,1104,2645,4067, 24, 172,3507, 900,3877,3508,3509,4305, # 3110 - 32,1408,2811,1312, 329, 487,2355,2247,2708, 784,2674, 4,3019,3314,1427,1788, # 3126 - 188, 109, 499,7334,3620,1717,1789, 888,1217,3020,4306,7335,3510,7336,3315,1520, # 3142 -3621,3878, 196,1034, 775,7337,7338, 929,1815, 249, 439, 38,7339,1063,7340, 794, # 3158 -3879,1435,2296, 46, 178,3245,2065,7341,2376,7342, 214,1709,4307, 804, 35, 707, # 3174 - 324,3622,1601,2546, 140, 459,4068,7343,7344,1365, 839, 272, 978,2257,2572,3409, # 3190 -2128,1363,3623,1423, 697, 100,3071, 48, 70,1231, 495,3114,2193,7345,1294,7346, # 3206 -2079, 462, 586,1042,3246, 853, 256, 988, 185,2377,3410,1698, 434,1084,7347,3411, # 3222 - 314,2615,2775,4308,2330,2331, 569,2280, 637,1816,2518, 757,1162,1878,1616,3412, # 3238 - 287,1577,2115, 768,4309,1671,2854,3511,2519,1321,3737, 909,2413,7348,4069, 933, # 3254 -3738,7349,2052,2356,1222,4310, 765,2414,1322, 786,4311,7350,1919,1462,1677,2895, # 3270 -1699,7351,4312,1424,2437,3115,3624,2590,3316,1774,1940,3413,3880,4070, 309,1369, # 3286 -1130,2812, 364,2230,1653,1299,3881,3512,3882,3883,2646, 525,1085,3021, 902,2000, # 3302 -1475, 964,4313, 421,1844,1415,1057,2281, 940,1364,3116, 376,4314,4315,1381, 7, # 3318 -2520, 983,2378, 336,1710,2675,1845, 321,3414, 559,1131,3022,2742,1808,1132,1313, # 3334 - 265,1481,1857,7352, 352,1203,2813,3247, 167,1089, 420,2814, 776, 792,1724,3513, # 3350 -4071,2438,3248,7353,4072,7354, 446, 229, 333,2743, 901,3739,1200,1557,4316,2647, # 3366 -1920, 395,2744,2676,3740,4073,1835, 125, 916,3178,2616,4317,7355,7356,3741,7357, # 3382 -7358,7359,4318,3117,3625,1133,2547,1757,3415,1510,2313,1409,3514,7360,2145, 438, # 3398 -2591,2896,2379,3317,1068, 958,3023, 461, 311,2855,2677,4074,1915,3179,4075,1978, # 3414 - 383, 750,2745,2617,4076, 274, 539, 385,1278,1442,7361,1154,1964, 384, 561, 210, # 3430 - 98,1295,2548,3515,7362,1711,2415,1482,3416,3884,2897,1257, 129,7363,3742, 642, # 3446 - 523,2776,2777,2648,7364, 141,2231,1333, 68, 176, 441, 876, 907,4077, 603,2592, # 3462 - 710, 171,3417, 404, 549, 18,3118,2393,1410,3626,1666,7365,3516,4319,2898,4320, # 3478 -7366,2973, 368,7367, 146, 366, 99, 871,3627,1543, 748, 807,1586,1185, 22,2258, # 3494 - 379,3743,3180,7368,3181, 505,1941,2618,1991,1382,2314,7369, 380,2357, 218, 702, # 3510 -1817,1248,3418,3024,3517,3318,3249,7370,2974,3628, 930,3250,3744,7371, 59,7372, # 3526 - 585, 601,4078, 497,3419,1112,1314,4321,1801,7373,1223,1472,2174,7374, 749,1836, # 3542 - 690,1899,3745,1772,3885,1476, 429,1043,1790,2232,2116, 917,4079, 447,1086,1629, # 3558 -7375, 556,7376,7377,2020,1654, 844,1090, 105, 550, 966,1758,2815,1008,1782, 686, # 3574 -1095,7378,2282, 793,1602,7379,3518,2593,4322,4080,2933,2297,4323,3746, 980,2496, # 3590 - 544, 353, 527,4324, 908,2678,2899,7380, 381,2619,1942,1348,7381,1341,1252, 560, # 3606 -3072,7382,3420,2856,7383,2053, 973, 886,2080, 143,4325,7384,7385, 157,3886, 496, # 3622 -4081, 57, 840, 540,2038,4326,4327,3421,2117,1445, 970,2259,1748,1965,2081,4082, # 3638 -3119,1234,1775,3251,2816,3629, 773,1206,2129,1066,2039,1326,3887,1738,1725,4083, # 3654 - 279,3120, 51,1544,2594, 423,1578,2130,2066, 173,4328,1879,7386,7387,1583, 264, # 3670 - 610,3630,4329,2439, 280, 154,7388,7389,7390,1739, 338,1282,3073, 693,2857,1411, # 3686 -1074,3747,2440,7391,4330,7392,7393,1240, 952,2394,7394,2900,1538,2679, 685,1483, # 3702 -4084,2468,1436, 953,4085,2054,4331, 671,2395, 79,4086,2441,3252, 608, 567,2680, # 3718 -3422,4087,4088,1691, 393,1261,1791,2396,7395,4332,7396,7397,7398,7399,1383,1672, # 3734 -3748,3182,1464, 522,1119, 661,1150, 216, 675,4333,3888,1432,3519, 609,4334,2681, # 3750 -2397,7400,7401,7402,4089,3025, 0,7403,2469, 315, 231,2442, 301,3319,4335,2380, # 3766 -7404, 233,4090,3631,1818,4336,4337,7405, 96,1776,1315,2082,7406, 257,7407,1809, # 3782 -3632,2709,1139,1819,4091,2021,1124,2163,2778,1777,2649,7408,3074, 363,1655,3183, # 3798 -7409,2975,7410,7411,7412,3889,1567,3890, 718, 103,3184, 849,1443, 341,3320,2934, # 3814 -1484,7413,1712, 127, 67, 339,4092,2398, 679,1412, 821,7414,7415, 834, 738, 351, # 3830 -2976,2146, 846, 235,1497,1880, 418,1992,3749,2710, 186,1100,2147,2746,3520,1545, # 3846 -1355,2935,2858,1377, 583,3891,4093,2573,2977,7416,1298,3633,1078,2549,3634,2358, # 3862 - 78,3750,3751, 267,1289,2099,2001,1594,4094, 348, 369,1274,2194,2175,1837,4338, # 3878 -1820,2817,3635,2747,2283,2002,4339,2936,2748, 144,3321, 882,4340,3892,2749,3423, # 3894 -4341,2901,7417,4095,1726, 320,7418,3893,3026, 788,2978,7419,2818,1773,1327,2859, # 3910 -3894,2819,7420,1306,4342,2003,1700,3752,3521,2359,2650, 787,2022, 506, 824,3636, # 3926 - 534, 323,4343,1044,3322,2023,1900, 946,3424,7421,1778,1500,1678,7422,1881,4344, # 3942 - 165, 243,4345,3637,2521, 123, 683,4096, 764,4346, 36,3895,1792, 589,2902, 816, # 3958 - 626,1667,3027,2233,1639,1555,1622,3753,3896,7423,3897,2860,1370,1228,1932, 891, # 3974 -2083,2903, 304,4097,7424, 292,2979,2711,3522, 691,2100,4098,1115,4347, 118, 662, # 3990 -7425, 611,1156, 854,2381,1316,2861, 2, 386, 515,2904,7426,7427,3253, 868,2234, # 4006 -1486, 855,2651, 785,2212,3028,7428,1040,3185,3523,7429,3121, 448,7430,1525,7431, # 4022 -2164,4348,7432,3754,7433,4099,2820,3524,3122, 503, 818,3898,3123,1568, 814, 676, # 4038 -1444, 306,1749,7434,3755,1416,1030, 197,1428, 805,2821,1501,4349,7435,7436,7437, # 4054 -1993,7438,4350,7439,7440,2195, 13,2779,3638,2980,3124,1229,1916,7441,3756,2131, # 4070 -7442,4100,4351,2399,3525,7443,2213,1511,1727,1120,7444,7445, 646,3757,2443, 307, # 4086 -7446,7447,1595,3186,7448,7449,7450,3639,1113,1356,3899,1465,2522,2523,7451, 519, # 4102 -7452, 128,2132, 92,2284,1979,7453,3900,1512, 342,3125,2196,7454,2780,2214,1980, # 4118 -3323,7455, 290,1656,1317, 789, 827,2360,7456,3758,4352, 562, 581,3901,7457, 401, # 4134 -4353,2248, 94,4354,1399,2781,7458,1463,2024,4355,3187,1943,7459, 828,1105,4101, # 4150 -1262,1394,7460,4102, 605,4356,7461,1783,2862,7462,2822, 819,2101, 578,2197,2937, # 4166 -7463,1502, 436,3254,4103,3255,2823,3902,2905,3425,3426,7464,2712,2315,7465,7466, # 4182 -2332,2067, 23,4357, 193, 826,3759,2102, 699,1630,4104,3075, 390,1793,1064,3526, # 4198 -7467,1579,3076,3077,1400,7468,4105,1838,1640,2863,7469,4358,4359, 137,4106, 598, # 4214 -3078,1966, 780, 104, 974,2938,7470, 278, 899, 253, 402, 572, 504, 493,1339,7471, # 4230 -3903,1275,4360,2574,2550,7472,3640,3029,3079,2249, 565,1334,2713, 863, 41,7473, # 4246 -7474,4361,7475,1657,2333, 19, 463,2750,4107, 606,7476,2981,3256,1087,2084,1323, # 4262 -2652,2982,7477,1631,1623,1750,4108,2682,7478,2864, 791,2714,2653,2334, 232,2416, # 4278 -7479,2983,1498,7480,2654,2620, 755,1366,3641,3257,3126,2025,1609, 119,1917,3427, # 4294 - 862,1026,4109,7481,3904,3760,4362,3905,4363,2260,1951,2470,7482,1125, 817,4110, # 4310 -4111,3906,1513,1766,2040,1487,4112,3030,3258,2824,3761,3127,7483,7484,1507,7485, # 4326 -2683, 733, 40,1632,1106,2865, 345,4113, 841,2524, 230,4364,2984,1846,3259,3428, # 4342 -7486,1263, 986,3429,7487, 735, 879, 254,1137, 857, 622,1300,1180,1388,1562,3907, # 4358 -3908,2939, 967,2751,2655,1349, 592,2133,1692,3324,2985,1994,4114,1679,3909,1901, # 4374 -2185,7488, 739,3642,2715,1296,1290,7489,4115,2198,2199,1921,1563,2595,2551,1870, # 4390 -2752,2986,7490, 435,7491, 343,1108, 596, 17,1751,4365,2235,3430,3643,7492,4366, # 4406 - 294,3527,2940,1693, 477, 979, 281,2041,3528, 643,2042,3644,2621,2782,2261,1031, # 4422 -2335,2134,2298,3529,4367, 367,1249,2552,7493,3530,7494,4368,1283,3325,2004, 240, # 4438 -1762,3326,4369,4370, 836,1069,3128, 474,7495,2148,2525, 268,3531,7496,3188,1521, # 4454 -1284,7497,1658,1546,4116,7498,3532,3533,7499,4117,3327,2684,1685,4118, 961,1673, # 4470 -2622, 190,2005,2200,3762,4371,4372,7500, 570,2497,3645,1490,7501,4373,2623,3260, # 4486 -1956,4374, 584,1514, 396,1045,1944,7502,4375,1967,2444,7503,7504,4376,3910, 619, # 4502 -7505,3129,3261, 215,2006,2783,2553,3189,4377,3190,4378, 763,4119,3763,4379,7506, # 4518 -7507,1957,1767,2941,3328,3646,1174, 452,1477,4380,3329,3130,7508,2825,1253,2382, # 4534 -2186,1091,2285,4120, 492,7509, 638,1169,1824,2135,1752,3911, 648, 926,1021,1324, # 4550 -4381, 520,4382, 997, 847,1007, 892,4383,3764,2262,1871,3647,7510,2400,1784,4384, # 4566 -1952,2942,3080,3191,1728,4121,2043,3648,4385,2007,1701,3131,1551, 30,2263,4122, # 4582 -7511,2026,4386,3534,7512, 501,7513,4123, 594,3431,2165,1821,3535,3432,3536,3192, # 4598 - 829,2826,4124,7514,1680,3132,1225,4125,7515,3262,4387,4126,3133,2336,7516,4388, # 4614 -4127,7517,3912,3913,7518,1847,2383,2596,3330,7519,4389, 374,3914, 652,4128,4129, # 4630 - 375,1140, 798,7520,7521,7522,2361,4390,2264, 546,1659, 138,3031,2445,4391,7523, # 4646 -2250, 612,1848, 910, 796,3765,1740,1371, 825,3766,3767,7524,2906,2554,7525, 692, # 4662 - 444,3032,2624, 801,4392,4130,7526,1491, 244,1053,3033,4131,4132, 340,7527,3915, # 4678 -1041,2987, 293,1168, 87,1357,7528,1539, 959,7529,2236, 721, 694,4133,3768, 219, # 4694 -1478, 644,1417,3331,2656,1413,1401,1335,1389,3916,7530,7531,2988,2362,3134,1825, # 4710 - 730,1515, 184,2827, 66,4393,7532,1660,2943, 246,3332, 378,1457, 226,3433, 975, # 4726 -3917,2944,1264,3537, 674, 696,7533, 163,7534,1141,2417,2166, 713,3538,3333,4394, # 4742 -3918,7535,7536,1186, 15,7537,1079,1070,7538,1522,3193,3539, 276,1050,2716, 758, # 4758 -1126, 653,2945,3263,7539,2337, 889,3540,3919,3081,2989, 903,1250,4395,3920,3434, # 4774 -3541,1342,1681,1718, 766,3264, 286, 89,2946,3649,7540,1713,7541,2597,3334,2990, # 4790 -7542,2947,2215,3194,2866,7543,4396,2498,2526, 181, 387,1075,3921, 731,2187,3335, # 4806 -7544,3265, 310, 313,3435,2299, 770,4134, 54,3034, 189,4397,3082,3769,3922,7545, # 4822 -1230,1617,1849, 355,3542,4135,4398,3336, 111,4136,3650,1350,3135,3436,3035,4137, # 4838 -2149,3266,3543,7546,2784,3923,3924,2991, 722,2008,7547,1071, 247,1207,2338,2471, # 4854 -1378,4399,2009, 864,1437,1214,4400, 373,3770,1142,2216, 667,4401, 442,2753,2555, # 4870 -3771,3925,1968,4138,3267,1839, 837, 170,1107, 934,1336,1882,7548,7549,2118,4139, # 4886 -2828, 743,1569,7550,4402,4140, 582,2384,1418,3437,7551,1802,7552, 357,1395,1729, # 4902 -3651,3268,2418,1564,2237,7553,3083,3772,1633,4403,1114,2085,4141,1532,7554, 482, # 4918 -2446,4404,7555,7556,1492, 833,1466,7557,2717,3544,1641,2829,7558,1526,1272,3652, # 4934 -4142,1686,1794, 416,2556,1902,1953,1803,7559,3773,2785,3774,1159,2316,7560,2867, # 4950 -4405,1610,1584,3036,2419,2754, 443,3269,1163,3136,7561,7562,3926,7563,4143,2499, # 4966 -3037,4406,3927,3137,2103,1647,3545,2010,1872,4144,7564,4145, 431,3438,7565, 250, # 4982 - 97, 81,4146,7566,1648,1850,1558, 160, 848,7567, 866, 740,1694,7568,2201,2830, # 4998 -3195,4147,4407,3653,1687, 950,2472, 426, 469,3196,3654,3655,3928,7569,7570,1188, # 5014 - 424,1995, 861,3546,4148,3775,2202,2685, 168,1235,3547,4149,7571,2086,1674,4408, # 5030 -3337,3270, 220,2557,1009,7572,3776, 670,2992, 332,1208, 717,7573,7574,3548,2447, # 5046 -3929,3338,7575, 513,7576,1209,2868,3339,3138,4409,1080,7577,7578,7579,7580,2527, # 5062 -3656,3549, 815,1587,3930,3931,7581,3550,3439,3777,1254,4410,1328,3038,1390,3932, # 5078 -1741,3933,3778,3934,7582, 236,3779,2448,3271,7583,7584,3657,3780,1273,3781,4411, # 5094 -7585, 308,7586,4412, 245,4413,1851,2473,1307,2575, 430, 715,2136,2449,7587, 270, # 5110 - 199,2869,3935,7588,3551,2718,1753, 761,1754, 725,1661,1840,4414,3440,3658,7589, # 5126 -7590, 587, 14,3272, 227,2598, 326, 480,2265, 943,2755,3552, 291, 650,1883,7591, # 5142 -1702,1226, 102,1547, 62,3441, 904,4415,3442,1164,4150,7592,7593,1224,1548,2756, # 5158 - 391, 498,1493,7594,1386,1419,7595,2055,1177,4416, 813, 880,1081,2363, 566,1145, # 5174 -4417,2286,1001,1035,2558,2599,2238, 394,1286,7596,7597,2068,7598, 86,1494,1730, # 5190 -3936, 491,1588, 745, 897,2948, 843,3340,3937,2757,2870,3273,1768, 998,2217,2069, # 5206 - 397,1826,1195,1969,3659,2993,3341, 284,7599,3782,2500,2137,2119,1903,7600,3938, # 5222 -2150,3939,4151,1036,3443,1904, 114,2559,4152, 209,1527,7601,7602,2949,2831,2625, # 5238 -2385,2719,3139, 812,2560,7603,3274,7604,1559, 737,1884,3660,1210, 885, 28,2686, # 5254 -3553,3783,7605,4153,1004,1779,4418,7606, 346,1981,2218,2687,4419,3784,1742, 797, # 5270 -1642,3940,1933,1072,1384,2151, 896,3941,3275,3661,3197,2871,3554,7607,2561,1958, # 5286 -4420,2450,1785,7608,7609,7610,3942,4154,1005,1308,3662,4155,2720,4421,4422,1528, # 5302 -2600, 161,1178,4156,1982, 987,4423,1101,4157, 631,3943,1157,3198,2420,1343,1241, # 5318 -1016,2239,2562, 372, 877,2339,2501,1160, 555,1934, 911,3944,7611, 466,1170, 169, # 5334 -1051,2907,2688,3663,2474,2994,1182,2011,2563,1251,2626,7612, 992,2340,3444,1540, # 5350 -2721,1201,2070,2401,1996,2475,7613,4424, 528,1922,2188,1503,1873,1570,2364,3342, # 5366 -3276,7614, 557,1073,7615,1827,3445,2087,2266,3140,3039,3084, 767,3085,2786,4425, # 5382 -1006,4158,4426,2341,1267,2176,3664,3199, 778,3945,3200,2722,1597,2657,7616,4427, # 5398 -7617,3446,7618,7619,7620,3277,2689,1433,3278, 131, 95,1504,3946, 723,4159,3141, # 5414 -1841,3555,2758,2189,3947,2027,2104,3665,7621,2995,3948,1218,7622,3343,3201,3949, # 5430 -4160,2576, 248,1634,3785, 912,7623,2832,3666,3040,3786, 654, 53,7624,2996,7625, # 5446 -1688,4428, 777,3447,1032,3950,1425,7626, 191, 820,2120,2833, 971,4429, 931,3202, # 5462 - 135, 664, 783,3787,1997, 772,2908,1935,3951,3788,4430,2909,3203, 282,2723, 640, # 5478 -1372,3448,1127, 922, 325,3344,7627,7628, 711,2044,7629,7630,3952,2219,2787,1936, # 5494 -3953,3345,2220,2251,3789,2300,7631,4431,3790,1258,3279,3954,3204,2138,2950,3955, # 5510 -3956,7632,2221, 258,3205,4432, 101,1227,7633,3280,1755,7634,1391,3281,7635,2910, # 5526 -2056, 893,7636,7637,7638,1402,4161,2342,7639,7640,3206,3556,7641,7642, 878,1325, # 5542 -1780,2788,4433, 259,1385,2577, 744,1183,2267,4434,7643,3957,2502,7644, 684,1024, # 5558 -4162,7645, 472,3557,3449,1165,3282,3958,3959, 322,2152, 881, 455,1695,1152,1340, # 5574 - 660, 554,2153,4435,1058,4436,4163, 830,1065,3346,3960,4437,1923,7646,1703,1918, # 5590 -7647, 932,2268, 122,7648,4438, 947, 677,7649,3791,2627, 297,1905,1924,2269,4439, # 5606 -2317,3283,7650,7651,4164,7652,4165, 84,4166, 112, 989,7653, 547,1059,3961, 701, # 5622 -3558,1019,7654,4167,7655,3450, 942, 639, 457,2301,2451, 993,2951, 407, 851, 494, # 5638 -4440,3347, 927,7656,1237,7657,2421,3348, 573,4168, 680, 921,2911,1279,1874, 285, # 5654 - 790,1448,1983, 719,2167,7658,7659,4441,3962,3963,1649,7660,1541, 563,7661,1077, # 5670 -7662,3349,3041,3451, 511,2997,3964,3965,3667,3966,1268,2564,3350,3207,4442,4443, # 5686 -7663, 535,1048,1276,1189,2912,2028,3142,1438,1373,2834,2952,1134,2012,7664,4169, # 5702 -1238,2578,3086,1259,7665, 700,7666,2953,3143,3668,4170,7667,4171,1146,1875,1906, # 5718 -4444,2601,3967, 781,2422, 132,1589, 203, 147, 273,2789,2402, 898,1786,2154,3968, # 5734 -3969,7668,3792,2790,7669,7670,4445,4446,7671,3208,7672,1635,3793, 965,7673,1804, # 5750 -2690,1516,3559,1121,1082,1329,3284,3970,1449,3794, 65,1128,2835,2913,2759,1590, # 5766 -3795,7674,7675, 12,2658, 45, 976,2579,3144,4447, 517,2528,1013,1037,3209,7676, # 5782 -3796,2836,7677,3797,7678,3452,7679,2602, 614,1998,2318,3798,3087,2724,2628,7680, # 5798 -2580,4172, 599,1269,7681,1810,3669,7682,2691,3088, 759,1060, 489,1805,3351,3285, # 5814 -1358,7683,7684,2386,1387,1215,2629,2252, 490,7685,7686,4173,1759,2387,2343,7687, # 5830 -4448,3799,1907,3971,2630,1806,3210,4449,3453,3286,2760,2344, 874,7688,7689,3454, # 5846 -3670,1858, 91,2914,3671,3042,3800,4450,7690,3145,3972,2659,7691,3455,1202,1403, # 5862 -3801,2954,2529,1517,2503,4451,3456,2504,7692,4452,7693,2692,1885,1495,1731,3973, # 5878 -2365,4453,7694,2029,7695,7696,3974,2693,1216, 237,2581,4174,2319,3975,3802,4454, # 5894 -4455,2694,3560,3457, 445,4456,7697,7698,7699,7700,2761, 61,3976,3672,1822,3977, # 5910 -7701, 687,2045, 935, 925, 405,2660, 703,1096,1859,2725,4457,3978,1876,1367,2695, # 5926 -3352, 918,2105,1781,2476, 334,3287,1611,1093,4458, 564,3146,3458,3673,3353, 945, # 5942 -2631,2057,4459,7702,1925, 872,4175,7703,3459,2696,3089, 349,4176,3674,3979,4460, # 5958 -3803,4177,3675,2155,3980,4461,4462,4178,4463,2403,2046, 782,3981, 400, 251,4179, # 5974 -1624,7704,7705, 277,3676, 299,1265, 476,1191,3804,2121,4180,4181,1109, 205,7706, # 5990 -2582,1000,2156,3561,1860,7707,7708,7709,4464,7710,4465,2565, 107,2477,2157,3982, # 6006 -3460,3147,7711,1533, 541,1301, 158, 753,4182,2872,3562,7712,1696, 370,1088,4183, # 6022 -4466,3563, 579, 327, 440, 162,2240, 269,1937,1374,3461, 968,3043, 56,1396,3090, # 6038 -2106,3288,3354,7713,1926,2158,4467,2998,7714,3564,7715,7716,3677,4468,2478,7717, # 6054 -2791,7718,1650,4469,7719,2603,7720,7721,3983,2661,3355,1149,3356,3984,3805,3985, # 6070 -7722,1076, 49,7723, 951,3211,3289,3290, 450,2837, 920,7724,1811,2792,2366,4184, # 6086 -1908,1138,2367,3806,3462,7725,3212,4470,1909,1147,1518,2423,4471,3807,7726,4472, # 6102 -2388,2604, 260,1795,3213,7727,7728,3808,3291, 708,7729,3565,1704,7730,3566,1351, # 6118 -1618,3357,2999,1886, 944,4185,3358,4186,3044,3359,4187,7731,3678, 422, 413,1714, # 6134 -3292, 500,2058,2345,4188,2479,7732,1344,1910, 954,7733,1668,7734,7735,3986,2404, # 6150 -4189,3567,3809,4190,7736,2302,1318,2505,3091, 133,3092,2873,4473, 629, 31,2838, # 6166 -2697,3810,4474, 850, 949,4475,3987,2955,1732,2088,4191,1496,1852,7737,3988, 620, # 6182 -3214, 981,1242,3679,3360,1619,3680,1643,3293,2139,2452,1970,1719,3463,2168,7738, # 6198 -3215,7739,7740,3361,1828,7741,1277,4476,1565,2047,7742,1636,3568,3093,7743, 869, # 6214 -2839, 655,3811,3812,3094,3989,3000,3813,1310,3569,4477,7744,7745,7746,1733, 558, # 6230 -4478,3681, 335,1549,3045,1756,4192,3682,1945,3464,1829,1291,1192, 470,2726,2107, # 6246 -2793, 913,1054,3990,7747,1027,7748,3046,3991,4479, 982,2662,3362,3148,3465,3216, # 6262 -3217,1946,2794,7749, 571,4480,7750,1830,7751,3570,2583,1523,2424,7752,2089, 984, # 6278 -4481,3683,1959,7753,3684, 852, 923,2795,3466,3685, 969,1519, 999,2048,2320,1705, # 6294 -7754,3095, 615,1662, 151, 597,3992,2405,2321,1049, 275,4482,3686,4193, 568,3687, # 6310 -3571,2480,4194,3688,7755,2425,2270, 409,3218,7756,1566,2874,3467,1002, 769,2840, # 6326 - 194,2090,3149,3689,2222,3294,4195, 628,1505,7757,7758,1763,2177,3001,3993, 521, # 6342 -1161,2584,1787,2203,2406,4483,3994,1625,4196,4197, 412, 42,3096, 464,7759,2632, # 6358 -4484,3363,1760,1571,2875,3468,2530,1219,2204,3814,2633,2140,2368,4485,4486,3295, # 6374 -1651,3364,3572,7760,7761,3573,2481,3469,7762,3690,7763,7764,2271,2091, 460,7765, # 6390 -4487,7766,3002, 962, 588,3574, 289,3219,2634,1116, 52,7767,3047,1796,7768,7769, # 6406 -7770,1467,7771,1598,1143,3691,4198,1984,1734,1067,4488,1280,3365, 465,4489,1572, # 6422 - 510,7772,1927,2241,1812,1644,3575,7773,4490,3692,7774,7775,2663,1573,1534,7776, # 6438 -7777,4199, 536,1807,1761,3470,3815,3150,2635,7778,7779,7780,4491,3471,2915,1911, # 6454 -2796,7781,3296,1122, 377,3220,7782, 360,7783,7784,4200,1529, 551,7785,2059,3693, # 6470 -1769,2426,7786,2916,4201,3297,3097,2322,2108,2030,4492,1404, 136,1468,1479, 672, # 6486 -1171,3221,2303, 271,3151,7787,2762,7788,2049, 678,2727, 865,1947,4493,7789,2013, # 6502 -3995,2956,7790,2728,2223,1397,3048,3694,4494,4495,1735,2917,3366,3576,7791,3816, # 6518 - 509,2841,2453,2876,3817,7792,7793,3152,3153,4496,4202,2531,4497,2304,1166,1010, # 6534 - 552, 681,1887,7794,7795,2957,2958,3996,1287,1596,1861,3154, 358, 453, 736, 175, # 6550 - 478,1117, 905,1167,1097,7796,1853,1530,7797,1706,7798,2178,3472,2287,3695,3473, # 6566 -3577,4203,2092,4204,7799,3367,1193,2482,4205,1458,2190,2205,1862,1888,1421,3298, # 6582 -2918,3049,2179,3474, 595,2122,7800,3997,7801,7802,4206,1707,2636, 223,3696,1359, # 6598 - 751,3098, 183,3475,7803,2797,3003, 419,2369, 633, 704,3818,2389, 241,7804,7805, # 6614 -7806, 838,3004,3697,2272,2763,2454,3819,1938,2050,3998,1309,3099,2242,1181,7807, # 6630 -1136,2206,3820,2370,1446,4207,2305,4498,7808,7809,4208,1055,2605, 484,3698,7810, # 6646 -3999, 625,4209,2273,3368,1499,4210,4000,7811,4001,4211,3222,2274,2275,3476,7812, # 6662 -7813,2764, 808,2606,3699,3369,4002,4212,3100,2532, 526,3370,3821,4213, 955,7814, # 6678 -1620,4214,2637,2427,7815,1429,3700,1669,1831, 994, 928,7816,3578,1260,7817,7818, # 6694 -7819,1948,2288, 741,2919,1626,4215,2729,2455, 867,1184, 362,3371,1392,7820,7821, # 6710 -4003,4216,1770,1736,3223,2920,4499,4500,1928,2698,1459,1158,7822,3050,3372,2877, # 6726 -1292,1929,2506,2842,3701,1985,1187,2071,2014,2607,4217,7823,2566,2507,2169,3702, # 6742 -2483,3299,7824,3703,4501,7825,7826, 666,1003,3005,1022,3579,4218,7827,4502,1813, # 6758 -2253, 574,3822,1603, 295,1535, 705,3823,4219, 283, 858, 417,7828,7829,3224,4503, # 6774 -4504,3051,1220,1889,1046,2276,2456,4004,1393,1599, 689,2567, 388,4220,7830,2484, # 6790 - 802,7831,2798,3824,2060,1405,2254,7832,4505,3825,2109,1052,1345,3225,1585,7833, # 6806 - 809,7834,7835,7836, 575,2730,3477, 956,1552,1469,1144,2323,7837,2324,1560,2457, # 6822 -3580,3226,4005, 616,2207,3155,2180,2289,7838,1832,7839,3478,4506,7840,1319,3704, # 6838 -3705,1211,3581,1023,3227,1293,2799,7841,7842,7843,3826, 607,2306,3827, 762,2878, # 6854 -1439,4221,1360,7844,1485,3052,7845,4507,1038,4222,1450,2061,2638,4223,1379,4508, # 6870 -2585,7846,7847,4224,1352,1414,2325,2921,1172,7848,7849,3828,3829,7850,1797,1451, # 6886 -7851,7852,7853,7854,2922,4006,4007,2485,2346, 411,4008,4009,3582,3300,3101,4509, # 6902 -1561,2664,1452,4010,1375,7855,7856, 47,2959, 316,7857,1406,1591,2923,3156,7858, # 6918 -1025,2141,3102,3157, 354,2731, 884,2224,4225,2407, 508,3706, 726,3583, 996,2428, # 6934 -3584, 729,7859, 392,2191,1453,4011,4510,3707,7860,7861,2458,3585,2608,1675,2800, # 6950 - 919,2347,2960,2348,1270,4511,4012, 73,7862,7863, 647,7864,3228,2843,2255,1550, # 6966 -1346,3006,7865,1332, 883,3479,7866,7867,7868,7869,3301,2765,7870,1212, 831,1347, # 6982 -4226,4512,2326,3830,1863,3053, 720,3831,4513,4514,3832,7871,4227,7872,7873,4515, # 6998 -7874,7875,1798,4516,3708,2609,4517,3586,1645,2371,7876,7877,2924, 669,2208,2665, # 7014 -2429,7878,2879,7879,7880,1028,3229,7881,4228,2408,7882,2256,1353,7883,7884,4518, # 7030 -3158, 518,7885,4013,7886,4229,1960,7887,2142,4230,7888,7889,3007,2349,2350,3833, # 7046 - 516,1833,1454,4014,2699,4231,4519,2225,2610,1971,1129,3587,7890,2766,7891,2961, # 7062 -1422, 577,1470,3008,1524,3373,7892,7893, 432,4232,3054,3480,7894,2586,1455,2508, # 7078 -2226,1972,1175,7895,1020,2732,4015,3481,4520,7896,2733,7897,1743,1361,3055,3482, # 7094 -2639,4016,4233,4521,2290, 895, 924,4234,2170, 331,2243,3056, 166,1627,3057,1098, # 7110 -7898,1232,2880,2227,3374,4522, 657, 403,1196,2372, 542,3709,3375,1600,4235,3483, # 7126 -7899,4523,2767,3230, 576, 530,1362,7900,4524,2533,2666,3710,4017,7901, 842,3834, # 7142 -7902,2801,2031,1014,4018, 213,2700,3376, 665, 621,4236,7903,3711,2925,2430,7904, # 7158 -2431,3302,3588,3377,7905,4237,2534,4238,4525,3589,1682,4239,3484,1380,7906, 724, # 7174 -2277, 600,1670,7907,1337,1233,4526,3103,2244,7908,1621,4527,7909, 651,4240,7910, # 7190 -1612,4241,2611,7911,2844,7912,2734,2307,3058,7913, 716,2459,3059, 174,1255,2701, # 7206 -4019,3590, 548,1320,1398, 728,4020,1574,7914,1890,1197,3060,4021,7915,3061,3062, # 7222 -3712,3591,3713, 747,7916, 635,4242,4528,7917,7918,7919,4243,7920,7921,4529,7922, # 7238 -3378,4530,2432, 451,7923,3714,2535,2072,4244,2735,4245,4022,7924,1764,4531,7925, # 7254 -4246, 350,7926,2278,2390,2486,7927,4247,4023,2245,1434,4024, 488,4532, 458,4248, # 7270 -4025,3715, 771,1330,2391,3835,2568,3159,2159,2409,1553,2667,3160,4249,7928,2487, # 7286 -2881,2612,1720,2702,4250,3379,4533,7929,2536,4251,7930,3231,4252,2768,7931,2015, # 7302 -2736,7932,1155,1017,3716,3836,7933,3303,2308, 201,1864,4253,1430,7934,4026,7935, # 7318 -7936,7937,7938,7939,4254,1604,7940, 414,1865, 371,2587,4534,4535,3485,2016,3104, # 7334 -4536,1708, 960,4255, 887, 389,2171,1536,1663,1721,7941,2228,4027,2351,2926,1580, # 7350 -7942,7943,7944,1744,7945,2537,4537,4538,7946,4539,7947,2073,7948,7949,3592,3380, # 7366 -2882,4256,7950,4257,2640,3381,2802, 673,2703,2460, 709,3486,4028,3593,4258,7951, # 7382 -1148, 502, 634,7952,7953,1204,4540,3594,1575,4541,2613,3717,7954,3718,3105, 948, # 7398 -3232, 121,1745,3837,1110,7955,4259,3063,2509,3009,4029,3719,1151,1771,3838,1488, # 7414 -4030,1986,7956,2433,3487,7957,7958,2093,7959,4260,3839,1213,1407,2803, 531,2737, # 7430 -2538,3233,1011,1537,7960,2769,4261,3106,1061,7961,3720,3721,1866,2883,7962,2017, # 7446 - 120,4262,4263,2062,3595,3234,2309,3840,2668,3382,1954,4542,7963,7964,3488,1047, # 7462 -2704,1266,7965,1368,4543,2845, 649,3383,3841,2539,2738,1102,2846,2669,7966,7967, # 7478 -1999,7968,1111,3596,2962,7969,2488,3842,3597,2804,1854,3384,3722,7970,7971,3385, # 7494 -2410,2884,3304,3235,3598,7972,2569,7973,3599,2805,4031,1460, 856,7974,3600,7975, # 7510 -2885,2963,7976,2886,3843,7977,4264, 632,2510, 875,3844,1697,3845,2291,7978,7979, # 7526 -4544,3010,1239, 580,4545,4265,7980, 914, 936,2074,1190,4032,1039,2123,7981,7982, # 7542 -7983,3386,1473,7984,1354,4266,3846,7985,2172,3064,4033, 915,3305,4267,4268,3306, # 7558 -1605,1834,7986,2739, 398,3601,4269,3847,4034, 328,1912,2847,4035,3848,1331,4270, # 7574 -3011, 937,4271,7987,3602,4036,4037,3387,2160,4546,3388, 524, 742, 538,3065,1012, # 7590 -7988,7989,3849,2461,7990, 658,1103, 225,3850,7991,7992,4547,7993,4548,7994,3236, # 7606 -1243,7995,4038, 963,2246,4549,7996,2705,3603,3161,7997,7998,2588,2327,7999,4550, # 7622 -8000,8001,8002,3489,3307, 957,3389,2540,2032,1930,2927,2462, 870,2018,3604,1746, # 7638 -2770,2771,2434,2463,8003,3851,8004,3723,3107,3724,3490,3390,3725,8005,1179,3066, # 7654 -8006,3162,2373,4272,3726,2541,3163,3108,2740,4039,8007,3391,1556,2542,2292, 977, # 7670 -2887,2033,4040,1205,3392,8008,1765,3393,3164,2124,1271,1689, 714,4551,3491,8009, # 7686 -2328,3852, 533,4273,3605,2181, 617,8010,2464,3308,3492,2310,8011,8012,3165,8013, # 7702 -8014,3853,1987, 618, 427,2641,3493,3394,8015,8016,1244,1690,8017,2806,4274,4552, # 7718 -8018,3494,8019,8020,2279,1576, 473,3606,4275,3395, 972,8021,3607,8022,3067,8023, # 7734 -8024,4553,4554,8025,3727,4041,4042,8026, 153,4555, 356,8027,1891,2888,4276,2143, # 7750 - 408, 803,2352,8028,3854,8029,4277,1646,2570,2511,4556,4557,3855,8030,3856,4278, # 7766 -8031,2411,3396, 752,8032,8033,1961,2964,8034, 746,3012,2465,8035,4279,3728, 698, # 7782 -4558,1892,4280,3608,2543,4559,3609,3857,8036,3166,3397,8037,1823,1302,4043,2706, # 7798 -3858,1973,4281,8038,4282,3167, 823,1303,1288,1236,2848,3495,4044,3398, 774,3859, # 7814 -8039,1581,4560,1304,2849,3860,4561,8040,2435,2161,1083,3237,4283,4045,4284, 344, # 7830 -1173, 288,2311, 454,1683,8041,8042,1461,4562,4046,2589,8043,8044,4563, 985, 894, # 7846 -8045,3399,3168,8046,1913,2928,3729,1988,8047,2110,1974,8048,4047,8049,2571,1194, # 7862 - 425,8050,4564,3169,1245,3730,4285,8051,8052,2850,8053, 636,4565,1855,3861, 760, # 7878 -1799,8054,4286,2209,1508,4566,4048,1893,1684,2293,8055,8056,8057,4287,4288,2210, # 7894 - 479,8058,8059, 832,8060,4049,2489,8061,2965,2490,3731, 990,3109, 627,1814,2642, # 7910 -4289,1582,4290,2125,2111,3496,4567,8062, 799,4291,3170,8063,4568,2112,1737,3013, # 7926 -1018, 543, 754,4292,3309,1676,4569,4570,4050,8064,1489,8065,3497,8066,2614,2889, # 7942 -4051,8067,8068,2966,8069,8070,8071,8072,3171,4571,4572,2182,1722,8073,3238,3239, # 7958 -1842,3610,1715, 481, 365,1975,1856,8074,8075,1962,2491,4573,8076,2126,3611,3240, # 7974 - 433,1894,2063,2075,8077, 602,2741,8078,8079,8080,8081,8082,3014,1628,3400,8083, # 7990 -3172,4574,4052,2890,4575,2512,8084,2544,2772,8085,8086,8087,3310,4576,2891,8088, # 8006 -4577,8089,2851,4578,4579,1221,2967,4053,2513,8090,8091,8092,1867,1989,8093,8094, # 8022 -8095,1895,8096,8097,4580,1896,4054, 318,8098,2094,4055,4293,8099,8100, 485,8101, # 8038 - 938,3862, 553,2670, 116,8102,3863,3612,8103,3498,2671,2773,3401,3311,2807,8104, # 8054 -3613,2929,4056,1747,2930,2968,8105,8106, 207,8107,8108,2672,4581,2514,8109,3015, # 8070 - 890,3614,3864,8110,1877,3732,3402,8111,2183,2353,3403,1652,8112,8113,8114, 941, # 8086 -2294, 208,3499,4057,2019, 330,4294,3865,2892,2492,3733,4295,8115,8116,8117,8118, # 8102 -) - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwprober.py deleted file mode 100644 index 35669cc..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwprober.py +++ /dev/null @@ -1,46 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import EUCTWDistributionAnalysis -from .mbcssm import EUCTW_SM_MODEL - -class EUCTWProber(MultiByteCharSetProber): - def __init__(self): - super(EUCTWProber, self).__init__() - self.coding_sm = CodingStateMachine(EUCTW_SM_MODEL) - self.distribution_analyzer = EUCTWDistributionAnalysis() - self.reset() - - @property - def charset_name(self): - return "EUC-TW" - - @property - def language(self): - return "Taiwan" diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312freq.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312freq.py deleted file mode 100644 index 697837b..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312freq.py +++ /dev/null @@ -1,283 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# GB2312 most frequently used character table -# -# Char to FreqOrder table , from hz6763 - -# 512 --> 0.79 -- 0.79 -# 1024 --> 0.92 -- 0.13 -# 2048 --> 0.98 -- 0.06 -# 6768 --> 1.00 -- 0.02 -# -# Ideal Distribution Ratio = 0.79135/(1-0.79135) = 3.79 -# Random Distribution Ration = 512 / (3755 - 512) = 0.157 -# -# Typical Distribution Ratio about 25% of Ideal one, still much higher that RDR - -GB2312_TYPICAL_DISTRIBUTION_RATIO = 0.9 - -GB2312_TABLE_SIZE = 3760 - -GB2312_CHAR_TO_FREQ_ORDER = ( -1671, 749,1443,2364,3924,3807,2330,3921,1704,3463,2691,1511,1515, 572,3191,2205, -2361, 224,2558, 479,1711, 963,3162, 440,4060,1905,2966,2947,3580,2647,3961,3842, -2204, 869,4207, 970,2678,5626,2944,2956,1479,4048, 514,3595, 588,1346,2820,3409, - 249,4088,1746,1873,2047,1774, 581,1813, 358,1174,3590,1014,1561,4844,2245, 670, -1636,3112, 889,1286, 953, 556,2327,3060,1290,3141, 613, 185,3477,1367, 850,3820, -1715,2428,2642,2303,2732,3041,2562,2648,3566,3946,1349, 388,3098,2091,1360,3585, - 152,1687,1539, 738,1559, 59,1232,2925,2267,1388,1249,1741,1679,2960, 151,1566, -1125,1352,4271, 924,4296, 385,3166,4459, 310,1245,2850, 70,3285,2729,3534,3575, -2398,3298,3466,1960,2265, 217,3647, 864,1909,2084,4401,2773,1010,3269,5152, 853, -3051,3121,1244,4251,1895, 364,1499,1540,2313,1180,3655,2268, 562, 715,2417,3061, - 544, 336,3768,2380,1752,4075, 950, 280,2425,4382, 183,2759,3272, 333,4297,2155, -1688,2356,1444,1039,4540, 736,1177,3349,2443,2368,2144,2225, 565, 196,1482,3406, - 927,1335,4147, 692, 878,1311,1653,3911,3622,1378,4200,1840,2969,3149,2126,1816, -2534,1546,2393,2760, 737,2494, 13, 447, 245,2747, 38,2765,2129,2589,1079, 606, - 360, 471,3755,2890, 404, 848, 699,1785,1236, 370,2221,1023,3746,2074,2026,2023, -2388,1581,2119, 812,1141,3091,2536,1519, 804,2053, 406,1596,1090, 784, 548,4414, -1806,2264,2936,1100, 343,4114,5096, 622,3358, 743,3668,1510,1626,5020,3567,2513, -3195,4115,5627,2489,2991, 24,2065,2697,1087,2719, 48,1634, 315, 68, 985,2052, - 198,2239,1347,1107,1439, 597,2366,2172, 871,3307, 919,2487,2790,1867, 236,2570, -1413,3794, 906,3365,3381,1701,1982,1818,1524,2924,1205, 616,2586,2072,2004, 575, - 253,3099, 32,1365,1182, 197,1714,2454,1201, 554,3388,3224,2748, 756,2587, 250, -2567,1507,1517,3529,1922,2761,2337,3416,1961,1677,2452,2238,3153, 615, 911,1506, -1474,2495,1265,1906,2749,3756,3280,2161, 898,2714,1759,3450,2243,2444, 563, 26, -3286,2266,3769,3344,2707,3677, 611,1402, 531,1028,2871,4548,1375, 261,2948, 835, -1190,4134, 353, 840,2684,1900,3082,1435,2109,1207,1674, 329,1872,2781,4055,2686, -2104, 608,3318,2423,2957,2768,1108,3739,3512,3271,3985,2203,1771,3520,1418,2054, -1681,1153, 225,1627,2929, 162,2050,2511,3687,1954, 124,1859,2431,1684,3032,2894, - 585,4805,3969,2869,2704,2088,2032,2095,3656,2635,4362,2209, 256, 518,2042,2105, -3777,3657, 643,2298,1148,1779, 190, 989,3544, 414, 11,2135,2063,2979,1471, 403, -3678, 126, 770,1563, 671,2499,3216,2877, 600,1179, 307,2805,4937,1268,1297,2694, - 252,4032,1448,1494,1331,1394, 127,2256, 222,1647,1035,1481,3056,1915,1048, 873, -3651, 210, 33,1608,2516, 200,1520, 415, 102, 0,3389,1287, 817, 91,3299,2940, - 836,1814, 549,2197,1396,1669,2987,3582,2297,2848,4528,1070, 687, 20,1819, 121, -1552,1364,1461,1968,2617,3540,2824,2083, 177, 948,4938,2291, 110,4549,2066, 648, -3359,1755,2110,2114,4642,4845,1693,3937,3308,1257,1869,2123, 208,1804,3159,2992, -2531,2549,3361,2418,1350,2347,2800,2568,1291,2036,2680, 72, 842,1990, 212,1233, -1154,1586, 75,2027,3410,4900,1823,1337,2710,2676, 728,2810,1522,3026,4995, 157, - 755,1050,4022, 710, 785,1936,2194,2085,1406,2777,2400, 150,1250,4049,1206, 807, -1910, 534, 529,3309,1721,1660, 274, 39,2827, 661,2670,1578, 925,3248,3815,1094, -4278,4901,4252, 41,1150,3747,2572,2227,4501,3658,4902,3813,3357,3617,2884,2258, - 887, 538,4187,3199,1294,2439,3042,2329,2343,2497,1255, 107, 543,1527, 521,3478, -3568, 194,5062, 15, 961,3870,1241,1192,2664, 66,5215,3260,2111,1295,1127,2152, -3805,4135, 901,1164,1976, 398,1278, 530,1460, 748, 904,1054,1966,1426, 53,2909, - 509, 523,2279,1534, 536,1019, 239,1685, 460,2353, 673,1065,2401,3600,4298,2272, -1272,2363, 284,1753,3679,4064,1695, 81, 815,2677,2757,2731,1386, 859, 500,4221, -2190,2566, 757,1006,2519,2068,1166,1455, 337,2654,3203,1863,1682,1914,3025,1252, -1409,1366, 847, 714,2834,2038,3209, 964,2970,1901, 885,2553,1078,1756,3049, 301, -1572,3326, 688,2130,1996,2429,1805,1648,2930,3421,2750,3652,3088, 262,1158,1254, - 389,1641,1812, 526,1719, 923,2073,1073,1902, 468, 489,4625,1140, 857,2375,3070, -3319,2863, 380, 116,1328,2693,1161,2244, 273,1212,1884,2769,3011,1775,1142, 461, -3066,1200,2147,2212, 790, 702,2695,4222,1601,1058, 434,2338,5153,3640, 67,2360, -4099,2502, 618,3472,1329, 416,1132, 830,2782,1807,2653,3211,3510,1662, 192,2124, - 296,3979,1739,1611,3684, 23, 118, 324, 446,1239,1225, 293,2520,3814,3795,2535, -3116, 17,1074, 467,2692,2201, 387,2922, 45,1326,3055,1645,3659,2817, 958, 243, -1903,2320,1339,2825,1784,3289, 356, 576, 865,2315,2381,3377,3916,1088,3122,1713, -1655, 935, 628,4689,1034,1327, 441, 800, 720, 894,1979,2183,1528,5289,2702,1071, -4046,3572,2399,1571,3281, 79, 761,1103, 327, 134, 758,1899,1371,1615, 879, 442, - 215,2605,2579, 173,2048,2485,1057,2975,3317,1097,2253,3801,4263,1403,1650,2946, - 814,4968,3487,1548,2644,1567,1285, 2, 295,2636, 97, 946,3576, 832, 141,4257, -3273, 760,3821,3521,3156,2607, 949,1024,1733,1516,1803,1920,2125,2283,2665,3180, -1501,2064,3560,2171,1592, 803,3518,1416, 732,3897,4258,1363,1362,2458, 119,1427, - 602,1525,2608,1605,1639,3175, 694,3064, 10, 465, 76,2000,4846,4208, 444,3781, -1619,3353,2206,1273,3796, 740,2483, 320,1723,2377,3660,2619,1359,1137,1762,1724, -2345,2842,1850,1862, 912, 821,1866, 612,2625,1735,2573,3369,1093, 844, 89, 937, - 930,1424,3564,2413,2972,1004,3046,3019,2011, 711,3171,1452,4178, 428, 801,1943, - 432, 445,2811, 206,4136,1472, 730, 349, 73, 397,2802,2547, 998,1637,1167, 789, - 396,3217, 154,1218, 716,1120,1780,2819,4826,1931,3334,3762,2139,1215,2627, 552, -3664,3628,3232,1405,2383,3111,1356,2652,3577,3320,3101,1703, 640,1045,1370,1246, -4996, 371,1575,2436,1621,2210, 984,4033,1734,2638, 16,4529, 663,2755,3255,1451, -3917,2257,1253,1955,2234,1263,2951, 214,1229, 617, 485, 359,1831,1969, 473,2310, - 750,2058, 165, 80,2864,2419, 361,4344,2416,2479,1134, 796,3726,1266,2943, 860, -2715, 938, 390,2734,1313,1384, 248, 202, 877,1064,2854, 522,3907, 279,1602, 297, -2357, 395,3740, 137,2075, 944,4089,2584,1267,3802, 62,1533,2285, 178, 176, 780, -2440, 201,3707, 590, 478,1560,4354,2117,1075, 30, 74,4643,4004,1635,1441,2745, - 776,2596, 238,1077,1692,1912,2844, 605, 499,1742,3947, 241,3053, 980,1749, 936, -2640,4511,2582, 515,1543,2162,5322,2892,2993, 890,2148,1924, 665,1827,3581,1032, - 968,3163, 339,1044,1896, 270, 583,1791,1720,4367,1194,3488,3669, 43,2523,1657, - 163,2167, 290,1209,1622,3378, 550, 634,2508,2510, 695,2634,2384,2512,1476,1414, - 220,1469,2341,2138,2852,3183,2900,4939,2865,3502,1211,3680, 854,3227,1299,2976, -3172, 186,2998,1459, 443,1067,3251,1495, 321,1932,3054, 909, 753,1410,1828, 436, -2441,1119,1587,3164,2186,1258, 227, 231,1425,1890,3200,3942, 247, 959, 725,5254, -2741, 577,2158,2079, 929, 120, 174, 838,2813, 591,1115, 417,2024, 40,3240,1536, -1037, 291,4151,2354, 632,1298,2406,2500,3535,1825,1846,3451, 205,1171, 345,4238, - 18,1163, 811, 685,2208,1217, 425,1312,1508,1175,4308,2552,1033, 587,1381,3059, -2984,3482, 340,1316,4023,3972, 792,3176, 519, 777,4690, 918, 933,4130,2981,3741, - 90,3360,2911,2200,5184,4550, 609,3079,2030, 272,3379,2736, 363,3881,1130,1447, - 286, 779, 357,1169,3350,3137,1630,1220,2687,2391, 747,1277,3688,2618,2682,2601, -1156,3196,5290,4034,3102,1689,3596,3128, 874, 219,2783, 798, 508,1843,2461, 269, -1658,1776,1392,1913,2983,3287,2866,2159,2372, 829,4076, 46,4253,2873,1889,1894, - 915,1834,1631,2181,2318, 298, 664,2818,3555,2735, 954,3228,3117, 527,3511,2173, - 681,2712,3033,2247,2346,3467,1652, 155,2164,3382, 113,1994, 450, 899, 494, 994, -1237,2958,1875,2336,1926,3727, 545,1577,1550, 633,3473, 204,1305,3072,2410,1956, -2471, 707,2134, 841,2195,2196,2663,3843,1026,4940, 990,3252,4997, 368,1092, 437, -3212,3258,1933,1829, 675,2977,2893, 412, 943,3723,4644,3294,3283,2230,2373,5154, -2389,2241,2661,2323,1404,2524, 593, 787, 677,3008,1275,2059, 438,2709,2609,2240, -2269,2246,1446, 36,1568,1373,3892,1574,2301,1456,3962, 693,2276,5216,2035,1143, -2720,1919,1797,1811,2763,4137,2597,1830,1699,1488,1198,2090, 424,1694, 312,3634, -3390,4179,3335,2252,1214, 561,1059,3243,2295,2561, 975,5155,2321,2751,3772, 472, -1537,3282,3398,1047,2077,2348,2878,1323,3340,3076, 690,2906, 51, 369, 170,3541, -1060,2187,2688,3670,2541,1083,1683, 928,3918, 459, 109,4427, 599,3744,4286, 143, -2101,2730,2490, 82,1588,3036,2121, 281,1860, 477,4035,1238,2812,3020,2716,3312, -1530,2188,2055,1317, 843, 636,1808,1173,3495, 649, 181,1002, 147,3641,1159,2414, -3750,2289,2795, 813,3123,2610,1136,4368, 5,3391,4541,2174, 420, 429,1728, 754, -1228,2115,2219, 347,2223,2733, 735,1518,3003,2355,3134,1764,3948,3329,1888,2424, -1001,1234,1972,3321,3363,1672,1021,1450,1584, 226, 765, 655,2526,3404,3244,2302, -3665, 731, 594,2184, 319,1576, 621, 658,2656,4299,2099,3864,1279,2071,2598,2739, - 795,3086,3699,3908,1707,2352,2402,1382,3136,2475,1465,4847,3496,3865,1085,3004, -2591,1084, 213,2287,1963,3565,2250, 822, 793,4574,3187,1772,1789,3050, 595,1484, -1959,2770,1080,2650, 456, 422,2996, 940,3322,4328,4345,3092,2742, 965,2784, 739, -4124, 952,1358,2498,2949,2565, 332,2698,2378, 660,2260,2473,4194,3856,2919, 535, -1260,2651,1208,1428,1300,1949,1303,2942, 433,2455,2450,1251,1946, 614,1269, 641, -1306,1810,2737,3078,2912, 564,2365,1419,1415,1497,4460,2367,2185,1379,3005,1307, -3218,2175,1897,3063, 682,1157,4040,4005,1712,1160,1941,1399, 394, 402,2952,1573, -1151,2986,2404, 862, 299,2033,1489,3006, 346, 171,2886,3401,1726,2932, 168,2533, - 47,2507,1030,3735,1145,3370,1395,1318,1579,3609,4560,2857,4116,1457,2529,1965, - 504,1036,2690,2988,2405, 745,5871, 849,2397,2056,3081, 863,2359,3857,2096, 99, -1397,1769,2300,4428,1643,3455,1978,1757,3718,1440, 35,4879,3742,1296,4228,2280, - 160,5063,1599,2013, 166, 520,3479,1646,3345,3012, 490,1937,1545,1264,2182,2505, -1096,1188,1369,1436,2421,1667,2792,2460,1270,2122, 727,3167,2143, 806,1706,1012, -1800,3037, 960,2218,1882, 805, 139,2456,1139,1521, 851,1052,3093,3089, 342,2039, - 744,5097,1468,1502,1585,2087, 223, 939, 326,2140,2577, 892,2481,1623,4077, 982, -3708, 135,2131, 87,2503,3114,2326,1106, 876,1616, 547,2997,2831,2093,3441,4530, -4314, 9,3256,4229,4148, 659,1462,1986,1710,2046,2913,2231,4090,4880,5255,3392, -3274,1368,3689,4645,1477, 705,3384,3635,1068,1529,2941,1458,3782,1509, 100,1656, -2548, 718,2339, 408,1590,2780,3548,1838,4117,3719,1345,3530, 717,3442,2778,3220, -2898,1892,4590,3614,3371,2043,1998,1224,3483, 891, 635, 584,2559,3355, 733,1766, -1729,1172,3789,1891,2307, 781,2982,2271,1957,1580,5773,2633,2005,4195,3097,1535, -3213,1189,1934,5693,3262, 586,3118,1324,1598, 517,1564,2217,1868,1893,4445,3728, -2703,3139,1526,1787,1992,3882,2875,1549,1199,1056,2224,1904,2711,5098,4287, 338, -1993,3129,3489,2689,1809,2815,1997, 957,1855,3898,2550,3275,3057,1105,1319, 627, -1505,1911,1883,3526, 698,3629,3456,1833,1431, 746, 77,1261,2017,2296,1977,1885, - 125,1334,1600, 525,1798,1109,2222,1470,1945, 559,2236,1186,3443,2476,1929,1411, -2411,3135,1777,3372,2621,1841,1613,3229, 668,1430,1839,2643,2916, 195,1989,2671, -2358,1387, 629,3205,2293,5256,4439, 123,1310, 888,1879,4300,3021,3605,1003,1162, -3192,2910,2010, 140,2395,2859, 55,1082,2012,2901, 662, 419,2081,1438, 680,2774, -4654,3912,1620,1731,1625,5035,4065,2328, 512,1344, 802,5443,2163,2311,2537, 524, -3399, 98,1155,2103,1918,2606,3925,2816,1393,2465,1504,3773,2177,3963,1478,4346, - 180,1113,4655,3461,2028,1698, 833,2696,1235,1322,1594,4408,3623,3013,3225,2040, -3022, 541,2881, 607,3632,2029,1665,1219, 639,1385,1686,1099,2803,3231,1938,3188, -2858, 427, 676,2772,1168,2025, 454,3253,2486,3556, 230,1950, 580, 791,1991,1280, -1086,1974,2034, 630, 257,3338,2788,4903,1017, 86,4790, 966,2789,1995,1696,1131, - 259,3095,4188,1308, 179,1463,5257, 289,4107,1248, 42,3413,1725,2288, 896,1947, - 774,4474,4254, 604,3430,4264, 392,2514,2588, 452, 237,1408,3018, 988,4531,1970, -3034,3310, 540,2370,1562,1288,2990, 502,4765,1147, 4,1853,2708, 207, 294,2814, -4078,2902,2509, 684, 34,3105,3532,2551, 644, 709,2801,2344, 573,1727,3573,3557, -2021,1081,3100,4315,2100,3681, 199,2263,1837,2385, 146,3484,1195,2776,3949, 997, -1939,3973,1008,1091,1202,1962,1847,1149,4209,5444,1076, 493, 117,5400,2521, 972, -1490,2934,1796,4542,2374,1512,2933,2657, 413,2888,1135,2762,2314,2156,1355,2369, - 766,2007,2527,2170,3124,2491,2593,2632,4757,2437, 234,3125,3591,1898,1750,1376, -1942,3468,3138, 570,2127,2145,3276,4131, 962, 132,1445,4196, 19, 941,3624,3480, -3366,1973,1374,4461,3431,2629, 283,2415,2275, 808,2887,3620,2112,2563,1353,3610, - 955,1089,3103,1053, 96, 88,4097, 823,3808,1583, 399, 292,4091,3313, 421,1128, - 642,4006, 903,2539,1877,2082, 596, 29,4066,1790, 722,2157, 130, 995,1569, 769, -1485, 464, 513,2213, 288,1923,1101,2453,4316, 133, 486,2445, 50, 625, 487,2207, - 57, 423, 481,2962, 159,3729,1558, 491, 303, 482, 501, 240,2837, 112,3648,2392, -1783, 362, 8,3433,3422, 610,2793,3277,1390,1284,1654, 21,3823, 734, 367, 623, - 193, 287, 374,1009,1483, 816, 476, 313,2255,2340,1262,2150,2899,1146,2581, 782, -2116,1659,2018,1880, 255,3586,3314,1110,2867,2137,2564, 986,2767,5185,2006, 650, - 158, 926, 762, 881,3157,2717,2362,3587, 306,3690,3245,1542,3077,2427,1691,2478, -2118,2985,3490,2438, 539,2305, 983, 129,1754, 355,4201,2386, 827,2923, 104,1773, -2838,2771, 411,2905,3919, 376, 767, 122,1114, 828,2422,1817,3506, 266,3460,1007, -1609,4998, 945,2612,4429,2274, 726,1247,1964,2914,2199,2070,4002,4108, 657,3323, -1422, 579, 455,2764,4737,1222,2895,1670, 824,1223,1487,2525, 558, 861,3080, 598, -2659,2515,1967, 752,2583,2376,2214,4180, 977, 704,2464,4999,2622,4109,1210,2961, - 819,1541, 142,2284, 44, 418, 457,1126,3730,4347,4626,1644,1876,3671,1864, 302, -1063,5694, 624, 723,1984,3745,1314,1676,2488,1610,1449,3558,3569,2166,2098, 409, -1011,2325,3704,2306, 818,1732,1383,1824,1844,3757, 999,2705,3497,1216,1423,2683, -2426,2954,2501,2726,2229,1475,2554,5064,1971,1794,1666,2014,1343, 783, 724, 191, -2434,1354,2220,5065,1763,2752,2472,4152, 131, 175,2885,3434, 92,1466,4920,2616, -3871,3872,3866, 128,1551,1632, 669,1854,3682,4691,4125,1230, 188,2973,3290,1302, -1213, 560,3266, 917, 763,3909,3249,1760, 868,1958, 764,1782,2097, 145,2277,3774, -4462, 64,1491,3062, 971,2132,3606,2442, 221,1226,1617, 218, 323,1185,3207,3147, - 571, 619,1473,1005,1744,2281, 449,1887,2396,3685, 275, 375,3816,1743,3844,3731, - 845,1983,2350,4210,1377, 773, 967,3499,3052,3743,2725,4007,1697,1022,3943,1464, -3264,2855,2722,1952,1029,2839,2467, 84,4383,2215, 820,1391,2015,2448,3672, 377, -1948,2168, 797,2545,3536,2578,2645, 94,2874,1678, 405,1259,3071, 771, 546,1315, - 470,1243,3083, 895,2468, 981, 969,2037, 846,4181, 653,1276,2928, 14,2594, 557, -3007,2474, 156, 902,1338,1740,2574, 537,2518, 973,2282,2216,2433,1928, 138,2903, -1293,2631,1612, 646,3457, 839,2935, 111, 496,2191,2847, 589,3186, 149,3994,2060, -4031,2641,4067,3145,1870, 37,3597,2136,1025,2051,3009,3383,3549,1121,1016,3261, -1301, 251,2446,2599,2153, 872,3246, 637, 334,3705, 831, 884, 921,3065,3140,4092, -2198,1944, 246,2964, 108,2045,1152,1921,2308,1031, 203,3173,4170,1907,3890, 810, -1401,2003,1690, 506, 647,1242,2828,1761,1649,3208,2249,1589,3709,2931,5156,1708, - 498, 666,2613, 834,3817,1231, 184,2851,1124, 883,3197,2261,3710,1765,1553,2658, -1178,2639,2351, 93,1193, 942,2538,2141,4402, 235,1821, 870,1591,2192,1709,1871, -3341,1618,4126,2595,2334, 603, 651, 69, 701, 268,2662,3411,2555,1380,1606, 503, - 448, 254,2371,2646, 574,1187,2309,1770, 322,2235,1292,1801, 305, 566,1133, 229, -2067,2057, 706, 167, 483,2002,2672,3295,1820,3561,3067, 316, 378,2746,3452,1112, - 136,1981, 507,1651,2917,1117, 285,4591, 182,2580,3522,1304, 335,3303,1835,2504, -1795,1792,2248, 674,1018,2106,2449,1857,2292,2845, 976,3047,1781,2600,2727,1389, -1281, 52,3152, 153, 265,3950, 672,3485,3951,4463, 430,1183, 365, 278,2169, 27, -1407,1336,2304, 209,1340,1730,2202,1852,2403,2883, 979,1737,1062, 631,2829,2542, -3876,2592, 825,2086,2226,3048,3625, 352,1417,3724, 542, 991, 431,1351,3938,1861, -2294, 826,1361,2927,3142,3503,1738, 463,2462,2723, 582,1916,1595,2808, 400,3845, -3891,2868,3621,2254, 58,2492,1123, 910,2160,2614,1372,1603,1196,1072,3385,1700, -3267,1980, 696, 480,2430, 920, 799,1570,2920,1951,2041,4047,2540,1321,4223,2469, -3562,2228,1271,2602, 401,2833,3351,2575,5157, 907,2312,1256, 410, 263,3507,1582, - 996, 678,1849,2316,1480, 908,3545,2237, 703,2322, 667,1826,2849,1531,2604,2999, -2407,3146,2151,2630,1786,3711, 469,3542, 497,3899,2409, 858, 837,4446,3393,1274, - 786, 620,1845,2001,3311, 484, 308,3367,1204,1815,3691,2332,1532,2557,1842,2020, -2724,1927,2333,4440, 567, 22,1673,2728,4475,1987,1858,1144,1597, 101,1832,3601, - 12, 974,3783,4391, 951,1412, 1,3720, 453,4608,4041, 528,1041,1027,3230,2628, -1129, 875,1051,3291,1203,2262,1069,2860,2799,2149,2615,3278, 144,1758,3040, 31, - 475,1680, 366,2685,3184, 311,1642,4008,2466,5036,1593,1493,2809, 216,1420,1668, - 233, 304,2128,3284, 232,1429,1768,1040,2008,3407,2740,2967,2543, 242,2133, 778, -1565,2022,2620, 505,2189,2756,1098,2273, 372,1614, 708, 553,2846,2094,2278, 169, -3626,2835,4161, 228,2674,3165, 809,1454,1309, 466,1705,1095, 900,3423, 880,2667, -3751,5258,2317,3109,2571,4317,2766,1503,1342, 866,4447,1118, 63,2076, 314,1881, -1348,1061, 172, 978,3515,1747, 532, 511,3970, 6, 601, 905,2699,3300,1751, 276, -1467,3725,2668, 65,4239,2544,2779,2556,1604, 578,2451,1802, 992,2331,2624,1320, -3446, 713,1513,1013, 103,2786,2447,1661, 886,1702, 916, 654,3574,2031,1556, 751, -2178,2821,2179,1498,1538,2176, 271, 914,2251,2080,1325, 638,1953,2937,3877,2432, -2754, 95,3265,1716, 260,1227,4083, 775, 106,1357,3254, 426,1607, 555,2480, 772, -1985, 244,2546, 474, 495,1046,2611,1851,2061, 71,2089,1675,2590, 742,3758,2843, -3222,1433, 267,2180,2576,2826,2233,2092,3913,2435, 956,1745,3075, 856,2113,1116, - 451, 3,1988,2896,1398, 993,2463,1878,2049,1341,2718,2721,2870,2108, 712,2904, -4363,2753,2324, 277,2872,2349,2649, 384, 987, 435, 691,3000, 922, 164,3939, 652, -1500,1184,4153,2482,3373,2165,4848,2335,3775,3508,3154,2806,2830,1554,2102,1664, -2530,1434,2408, 893,1547,2623,3447,2832,2242,2532,3169,2856,3223,2078, 49,3770, -3469, 462, 318, 656,2259,3250,3069, 679,1629,2758, 344,1138,1104,3120,1836,1283, -3115,2154,1437,4448, 934, 759,1999, 794,2862,1038, 533,2560,1722,2342, 855,2626, -1197,1663,4476,3127, 85,4240,2528, 25,1111,1181,3673, 407,3470,4561,2679,2713, - 768,1925,2841,3986,1544,1165, 932, 373,1240,2146,1930,2673, 721,4766, 354,4333, - 391,2963, 187, 61,3364,1442,1102, 330,1940,1767, 341,3809,4118, 393,2496,2062, -2211, 105, 331, 300, 439, 913,1332, 626, 379,3304,1557, 328, 689,3952, 309,1555, - 931, 317,2517,3027, 325, 569, 686,2107,3084, 60,1042,1333,2794, 264,3177,4014, -1628, 258,3712, 7,4464,1176,1043,1778, 683, 114,1975, 78,1492, 383,1886, 510, - 386, 645,5291,2891,2069,3305,4138,3867,2939,2603,2493,1935,1066,1848,3588,1015, -1282,1289,4609, 697,1453,3044,2666,3611,1856,2412, 54, 719,1330, 568,3778,2459, -1748, 788, 492, 551,1191,1000, 488,3394,3763, 282,1799, 348,2016,1523,3155,2390, -1049, 382,2019,1788,1170, 729,2968,3523, 897,3926,2785,2938,3292, 350,2319,3238, -1718,1717,2655,3453,3143,4465, 161,2889,2980,2009,1421, 56,1908,1640,2387,2232, -1917,1874,2477,4921, 148, 83,3438, 592,4245,2882,1822,1055, 741, 115,1496,1624, - 381,1638,4592,1020, 516,3214, 458, 947,4575,1432, 211,1514,2926,1865,2142, 189, - 852,1221,1400,1486, 882,2299,4036, 351, 28,1122, 700,6479,6480,6481,6482,6483, #last 512 -) - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312prober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312prober.py deleted file mode 100644 index 8446d2d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312prober.py +++ /dev/null @@ -1,46 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import GB2312DistributionAnalysis -from .mbcssm import GB2312_SM_MODEL - -class GB2312Prober(MultiByteCharSetProber): - def __init__(self): - super(GB2312Prober, self).__init__() - self.coding_sm = CodingStateMachine(GB2312_SM_MODEL) - self.distribution_analyzer = GB2312DistributionAnalysis() - self.reset() - - @property - def charset_name(self): - return "GB2312" - - @property - def language(self): - return "Chinese" diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/hebrewprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/hebrewprober.py deleted file mode 100644 index b0e1bf4..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/hebrewprober.py +++ /dev/null @@ -1,292 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Shy Shalom -# Portions created by the Initial Developer are Copyright (C) 2005 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .enums import ProbingState - -# This prober doesn't actually recognize a language or a charset. -# It is a helper prober for the use of the Hebrew model probers - -### General ideas of the Hebrew charset recognition ### -# -# Four main charsets exist in Hebrew: -# "ISO-8859-8" - Visual Hebrew -# "windows-1255" - Logical Hebrew -# "ISO-8859-8-I" - Logical Hebrew -# "x-mac-hebrew" - ?? Logical Hebrew ?? -# -# Both "ISO" charsets use a completely identical set of code points, whereas -# "windows-1255" and "x-mac-hebrew" are two different proper supersets of -# these code points. windows-1255 defines additional characters in the range -# 0x80-0x9F as some misc punctuation marks as well as some Hebrew-specific -# diacritics and additional 'Yiddish' ligature letters in the range 0xc0-0xd6. -# x-mac-hebrew defines similar additional code points but with a different -# mapping. -# -# As far as an average Hebrew text with no diacritics is concerned, all four -# charsets are identical with respect to code points. Meaning that for the -# main Hebrew alphabet, all four map the same values to all 27 Hebrew letters -# (including final letters). -# -# The dominant difference between these charsets is their directionality. -# "Visual" directionality means that the text is ordered as if the renderer is -# not aware of a BIDI rendering algorithm. The renderer sees the text and -# draws it from left to right. The text itself when ordered naturally is read -# backwards. A buffer of Visual Hebrew generally looks like so: -# "[last word of first line spelled backwards] [whole line ordered backwards -# and spelled backwards] [first word of first line spelled backwards] -# [end of line] [last word of second line] ... etc' " -# adding punctuation marks, numbers and English text to visual text is -# naturally also "visual" and from left to right. -# -# "Logical" directionality means the text is ordered "naturally" according to -# the order it is read. It is the responsibility of the renderer to display -# the text from right to left. A BIDI algorithm is used to place general -# punctuation marks, numbers and English text in the text. -# -# Texts in x-mac-hebrew are almost impossible to find on the Internet. From -# what little evidence I could find, it seems that its general directionality -# is Logical. -# -# To sum up all of the above, the Hebrew probing mechanism knows about two -# charsets: -# Visual Hebrew - "ISO-8859-8" - backwards text - Words and sentences are -# backwards while line order is natural. For charset recognition purposes -# the line order is unimportant (In fact, for this implementation, even -# word order is unimportant). -# Logical Hebrew - "windows-1255" - normal, naturally ordered text. -# -# "ISO-8859-8-I" is a subset of windows-1255 and doesn't need to be -# specifically identified. -# "x-mac-hebrew" is also identified as windows-1255. A text in x-mac-hebrew -# that contain special punctuation marks or diacritics is displayed with -# some unconverted characters showing as question marks. This problem might -# be corrected using another model prober for x-mac-hebrew. Due to the fact -# that x-mac-hebrew texts are so rare, writing another model prober isn't -# worth the effort and performance hit. -# -#### The Prober #### -# -# The prober is divided between two SBCharSetProbers and a HebrewProber, -# all of which are managed, created, fed data, inquired and deleted by the -# SBCSGroupProber. The two SBCharSetProbers identify that the text is in -# fact some kind of Hebrew, Logical or Visual. The final decision about which -# one is it is made by the HebrewProber by combining final-letter scores -# with the scores of the two SBCharSetProbers to produce a final answer. -# -# The SBCSGroupProber is responsible for stripping the original text of HTML -# tags, English characters, numbers, low-ASCII punctuation characters, spaces -# and new lines. It reduces any sequence of such characters to a single space. -# The buffer fed to each prober in the SBCS group prober is pure text in -# high-ASCII. -# The two SBCharSetProbers (model probers) share the same language model: -# Win1255Model. -# The first SBCharSetProber uses the model normally as any other -# SBCharSetProber does, to recognize windows-1255, upon which this model was -# built. The second SBCharSetProber is told to make the pair-of-letter -# lookup in the language model backwards. This in practice exactly simulates -# a visual Hebrew model using the windows-1255 logical Hebrew model. -# -# The HebrewProber is not using any language model. All it does is look for -# final-letter evidence suggesting the text is either logical Hebrew or visual -# Hebrew. Disjointed from the model probers, the results of the HebrewProber -# alone are meaningless. HebrewProber always returns 0.00 as confidence -# since it never identifies a charset by itself. Instead, the pointer to the -# HebrewProber is passed to the model probers as a helper "Name Prober". -# When the Group prober receives a positive identification from any prober, -# it asks for the name of the charset identified. If the prober queried is a -# Hebrew model prober, the model prober forwards the call to the -# HebrewProber to make the final decision. In the HebrewProber, the -# decision is made according to the final-letters scores maintained and Both -# model probers scores. The answer is returned in the form of the name of the -# charset identified, either "windows-1255" or "ISO-8859-8". - -class HebrewProber(CharSetProber): - # windows-1255 / ISO-8859-8 code points of interest - FINAL_KAF = 0xea - NORMAL_KAF = 0xeb - FINAL_MEM = 0xed - NORMAL_MEM = 0xee - FINAL_NUN = 0xef - NORMAL_NUN = 0xf0 - FINAL_PE = 0xf3 - NORMAL_PE = 0xf4 - FINAL_TSADI = 0xf5 - NORMAL_TSADI = 0xf6 - - # Minimum Visual vs Logical final letter score difference. - # If the difference is below this, don't rely solely on the final letter score - # distance. - MIN_FINAL_CHAR_DISTANCE = 5 - - # Minimum Visual vs Logical model score difference. - # If the difference is below this, don't rely at all on the model score - # distance. - MIN_MODEL_DISTANCE = 0.01 - - VISUAL_HEBREW_NAME = "ISO-8859-8" - LOGICAL_HEBREW_NAME = "windows-1255" - - def __init__(self): - super(HebrewProber, self).__init__() - self._final_char_logical_score = None - self._final_char_visual_score = None - self._prev = None - self._before_prev = None - self._logical_prober = None - self._visual_prober = None - self.reset() - - def reset(self): - self._final_char_logical_score = 0 - self._final_char_visual_score = 0 - # The two last characters seen in the previous buffer, - # mPrev and mBeforePrev are initialized to space in order to simulate - # a word delimiter at the beginning of the data - self._prev = ' ' - self._before_prev = ' ' - # These probers are owned by the group prober. - - def set_model_probers(self, logicalProber, visualProber): - self._logical_prober = logicalProber - self._visual_prober = visualProber - - def is_final(self, c): - return c in [self.FINAL_KAF, self.FINAL_MEM, self.FINAL_NUN, - self.FINAL_PE, self.FINAL_TSADI] - - def is_non_final(self, c): - # The normal Tsadi is not a good Non-Final letter due to words like - # 'lechotet' (to chat) containing an apostrophe after the tsadi. This - # apostrophe is converted to a space in FilterWithoutEnglishLetters - # causing the Non-Final tsadi to appear at an end of a word even - # though this is not the case in the original text. - # The letters Pe and Kaf rarely display a related behavior of not being - # a good Non-Final letter. Words like 'Pop', 'Winamp' and 'Mubarak' - # for example legally end with a Non-Final Pe or Kaf. However, the - # benefit of these letters as Non-Final letters outweighs the damage - # since these words are quite rare. - return c in [self.NORMAL_KAF, self.NORMAL_MEM, - self.NORMAL_NUN, self.NORMAL_PE] - - def feed(self, byte_str): - # Final letter analysis for logical-visual decision. - # Look for evidence that the received buffer is either logical Hebrew - # or visual Hebrew. - # The following cases are checked: - # 1) A word longer than 1 letter, ending with a final letter. This is - # an indication that the text is laid out "naturally" since the - # final letter really appears at the end. +1 for logical score. - # 2) A word longer than 1 letter, ending with a Non-Final letter. In - # normal Hebrew, words ending with Kaf, Mem, Nun, Pe or Tsadi, - # should not end with the Non-Final form of that letter. Exceptions - # to this rule are mentioned above in isNonFinal(). This is an - # indication that the text is laid out backwards. +1 for visual - # score - # 3) A word longer than 1 letter, starting with a final letter. Final - # letters should not appear at the beginning of a word. This is an - # indication that the text is laid out backwards. +1 for visual - # score. - # - # The visual score and logical score are accumulated throughout the - # text and are finally checked against each other in GetCharSetName(). - # No checking for final letters in the middle of words is done since - # that case is not an indication for either Logical or Visual text. - # - # We automatically filter out all 7-bit characters (replace them with - # spaces) so the word boundary detection works properly. [MAP] - - if self.state == ProbingState.NOT_ME: - # Both model probers say it's not them. No reason to continue. - return ProbingState.NOT_ME - - byte_str = self.filter_high_byte_only(byte_str) - - for cur in byte_str: - if cur == ' ': - # We stand on a space - a word just ended - if self._before_prev != ' ': - # next-to-last char was not a space so self._prev is not a - # 1 letter word - if self.is_final(self._prev): - # case (1) [-2:not space][-1:final letter][cur:space] - self._final_char_logical_score += 1 - elif self.is_non_final(self._prev): - # case (2) [-2:not space][-1:Non-Final letter][ - # cur:space] - self._final_char_visual_score += 1 - else: - # Not standing on a space - if ((self._before_prev == ' ') and - (self.is_final(self._prev)) and (cur != ' ')): - # case (3) [-2:space][-1:final letter][cur:not space] - self._final_char_visual_score += 1 - self._before_prev = self._prev - self._prev = cur - - # Forever detecting, till the end or until both model probers return - # ProbingState.NOT_ME (handled above) - return ProbingState.DETECTING - - @property - def charset_name(self): - # Make the decision: is it Logical or Visual? - # If the final letter score distance is dominant enough, rely on it. - finalsub = self._final_char_logical_score - self._final_char_visual_score - if finalsub >= self.MIN_FINAL_CHAR_DISTANCE: - return self.LOGICAL_HEBREW_NAME - if finalsub <= -self.MIN_FINAL_CHAR_DISTANCE: - return self.VISUAL_HEBREW_NAME - - # It's not dominant enough, try to rely on the model scores instead. - modelsub = (self._logical_prober.get_confidence() - - self._visual_prober.get_confidence()) - if modelsub > self.MIN_MODEL_DISTANCE: - return self.LOGICAL_HEBREW_NAME - if modelsub < -self.MIN_MODEL_DISTANCE: - return self.VISUAL_HEBREW_NAME - - # Still no good, back to final letter distance, maybe it'll save the - # day. - if finalsub < 0.0: - return self.VISUAL_HEBREW_NAME - - # (finalsub > 0 - Logical) or (don't know what to do) default to - # Logical. - return self.LOGICAL_HEBREW_NAME - - @property - def language(self): - return 'Hebrew' - - @property - def state(self): - # Remain active as long as any of the model probers are active. - if (self._logical_prober.state == ProbingState.NOT_ME) and \ - (self._visual_prober.state == ProbingState.NOT_ME): - return ProbingState.NOT_ME - return ProbingState.DETECTING diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jisfreq.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jisfreq.py deleted file mode 100644 index 83fc082..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jisfreq.py +++ /dev/null @@ -1,325 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# Sampling from about 20M text materials include literature and computer technology -# -# Japanese frequency table, applied to both S-JIS and EUC-JP -# They are sorted in order. - -# 128 --> 0.77094 -# 256 --> 0.85710 -# 512 --> 0.92635 -# 1024 --> 0.97130 -# 2048 --> 0.99431 -# -# Ideal Distribution Ratio = 0.92635 / (1-0.92635) = 12.58 -# Random Distribution Ration = 512 / (2965+62+83+86-512) = 0.191 -# -# Typical Distribution Ratio, 25% of IDR - -JIS_TYPICAL_DISTRIBUTION_RATIO = 3.0 - -# Char to FreqOrder table , -JIS_TABLE_SIZE = 4368 - -JIS_CHAR_TO_FREQ_ORDER = ( - 40, 1, 6, 182, 152, 180, 295,2127, 285, 381,3295,4304,3068,4606,3165,3510, # 16 -3511,1822,2785,4607,1193,2226,5070,4608, 171,2996,1247, 18, 179,5071, 856,1661, # 32 -1262,5072, 619, 127,3431,3512,3230,1899,1700, 232, 228,1294,1298, 284, 283,2041, # 48 -2042,1061,1062, 48, 49, 44, 45, 433, 434,1040,1041, 996, 787,2997,1255,4305, # 64 -2108,4609,1684,1648,5073,5074,5075,5076,5077,5078,3687,5079,4610,5080,3927,3928, # 80 -5081,3296,3432, 290,2285,1471,2187,5082,2580,2825,1303,2140,1739,1445,2691,3375, # 96 -1691,3297,4306,4307,4611, 452,3376,1182,2713,3688,3069,4308,5083,5084,5085,5086, # 112 -5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,5100,5101,5102, # 128 -5103,5104,5105,5106,5107,5108,5109,5110,5111,5112,4097,5113,5114,5115,5116,5117, # 144 -5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133, # 160 -5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149, # 176 -5150,5151,5152,4612,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164, # 192 -5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,1472, 598, 618, 820,1205, # 208 -1309,1412,1858,1307,1692,5176,5177,5178,5179,5180,5181,5182,1142,1452,1234,1172, # 224 -1875,2043,2149,1793,1382,2973, 925,2404,1067,1241, 960,1377,2935,1491, 919,1217, # 240 -1865,2030,1406,1499,2749,4098,5183,5184,5185,5186,5187,5188,2561,4099,3117,1804, # 256 -2049,3689,4309,3513,1663,5189,3166,3118,3298,1587,1561,3433,5190,3119,1625,2998, # 272 -3299,4613,1766,3690,2786,4614,5191,5192,5193,5194,2161, 26,3377, 2,3929, 20, # 288 -3691, 47,4100, 50, 17, 16, 35, 268, 27, 243, 42, 155, 24, 154, 29, 184, # 304 - 4, 91, 14, 92, 53, 396, 33, 289, 9, 37, 64, 620, 21, 39, 321, 5, # 320 - 12, 11, 52, 13, 3, 208, 138, 0, 7, 60, 526, 141, 151,1069, 181, 275, # 336 -1591, 83, 132,1475, 126, 331, 829, 15, 69, 160, 59, 22, 157, 55,1079, 312, # 352 - 109, 38, 23, 25, 10, 19, 79,5195, 61, 382,1124, 8, 30,5196,5197,5198, # 368 -5199,5200,5201,5202,5203,5204,5205,5206, 89, 62, 74, 34,2416, 112, 139, 196, # 384 - 271, 149, 84, 607, 131, 765, 46, 88, 153, 683, 76, 874, 101, 258, 57, 80, # 400 - 32, 364, 121,1508, 169,1547, 68, 235, 145,2999, 41, 360,3027, 70, 63, 31, # 416 - 43, 259, 262,1383, 99, 533, 194, 66, 93, 846, 217, 192, 56, 106, 58, 565, # 432 - 280, 272, 311, 256, 146, 82, 308, 71, 100, 128, 214, 655, 110, 261, 104,1140, # 448 - 54, 51, 36, 87, 67,3070, 185,2618,2936,2020, 28,1066,2390,2059,5207,5208, # 464 -5209,5210,5211,5212,5213,5214,5215,5216,4615,5217,5218,5219,5220,5221,5222,5223, # 480 -5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,3514,5237,5238, # 496 -5239,5240,5241,5242,5243,5244,2297,2031,4616,4310,3692,5245,3071,5246,3598,5247, # 512 -4617,3231,3515,5248,4101,4311,4618,3808,4312,4102,5249,4103,4104,3599,5250,5251, # 528 -5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267, # 544 -5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283, # 560 -5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299, # 576 -5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315, # 592 -5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331, # 608 -5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347, # 624 -5348,5349,5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363, # 640 -5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379, # 656 -5380,5381, 363, 642,2787,2878,2788,2789,2316,3232,2317,3434,2011, 165,1942,3930, # 672 -3931,3932,3933,5382,4619,5383,4620,5384,5385,5386,5387,5388,5389,5390,5391,5392, # 688 -5393,5394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408, # 704 -5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424, # 720 -5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440, # 736 -5441,5442,5443,5444,5445,5446,5447,5448,5449,5450,5451,5452,5453,5454,5455,5456, # 752 -5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472, # 768 -5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,5484,5485,5486,5487,5488, # 784 -5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,5502,5503,5504, # 800 -5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520, # 816 -5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536, # 832 -5537,5538,5539,5540,5541,5542,5543,5544,5545,5546,5547,5548,5549,5550,5551,5552, # 848 -5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568, # 864 -5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584, # 880 -5585,5586,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,5600, # 896 -5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616, # 912 -5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632, # 928 -5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648, # 944 -5649,5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,5664, # 960 -5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680, # 976 -5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696, # 992 -5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712, # 1008 -5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728, # 1024 -5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744, # 1040 -5745,5746,5747,5748,5749,5750,5751,5752,5753,5754,5755,5756,5757,5758,5759,5760, # 1056 -5761,5762,5763,5764,5765,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776, # 1072 -5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5787,5788,5789,5790,5791,5792, # 1088 -5793,5794,5795,5796,5797,5798,5799,5800,5801,5802,5803,5804,5805,5806,5807,5808, # 1104 -5809,5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824, # 1120 -5825,5826,5827,5828,5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840, # 1136 -5841,5842,5843,5844,5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856, # 1152 -5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872, # 1168 -5873,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888, # 1184 -5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,5904, # 1200 -5905,5906,5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920, # 1216 -5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936, # 1232 -5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,5950,5951,5952, # 1248 -5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968, # 1264 -5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984, # 1280 -5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,6000, # 1296 -6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016, # 1312 -6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032, # 1328 -6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048, # 1344 -6049,6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064, # 1360 -6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080, # 1376 -6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096, # 1392 -6097,6098,6099,6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112, # 1408 -6113,6114,2044,2060,4621, 997,1235, 473,1186,4622, 920,3378,6115,6116, 379,1108, # 1424 -4313,2657,2735,3934,6117,3809, 636,3233, 573,1026,3693,3435,2974,3300,2298,4105, # 1440 - 854,2937,2463, 393,2581,2417, 539, 752,1280,2750,2480, 140,1161, 440, 708,1569, # 1456 - 665,2497,1746,1291,1523,3000, 164,1603, 847,1331, 537,1997, 486, 508,1693,2418, # 1472 -1970,2227, 878,1220, 299,1030, 969, 652,2751, 624,1137,3301,2619, 65,3302,2045, # 1488 -1761,1859,3120,1930,3694,3516, 663,1767, 852, 835,3695, 269, 767,2826,2339,1305, # 1504 - 896,1150, 770,1616,6118, 506,1502,2075,1012,2519, 775,2520,2975,2340,2938,4314, # 1520 -3028,2086,1224,1943,2286,6119,3072,4315,2240,1273,1987,3935,1557, 175, 597, 985, # 1536 -3517,2419,2521,1416,3029, 585, 938,1931,1007,1052,1932,1685,6120,3379,4316,4623, # 1552 - 804, 599,3121,1333,2128,2539,1159,1554,2032,3810, 687,2033,2904, 952, 675,1467, # 1568 -3436,6121,2241,1096,1786,2440,1543,1924, 980,1813,2228, 781,2692,1879, 728,1918, # 1584 -3696,4624, 548,1950,4625,1809,1088,1356,3303,2522,1944, 502, 972, 373, 513,2827, # 1600 - 586,2377,2391,1003,1976,1631,6122,2464,1084, 648,1776,4626,2141, 324, 962,2012, # 1616 -2177,2076,1384, 742,2178,1448,1173,1810, 222, 102, 301, 445, 125,2420, 662,2498, # 1632 - 277, 200,1476,1165,1068, 224,2562,1378,1446, 450,1880, 659, 791, 582,4627,2939, # 1648 -3936,1516,1274, 555,2099,3697,1020,1389,1526,3380,1762,1723,1787,2229, 412,2114, # 1664 -1900,2392,3518, 512,2597, 427,1925,2341,3122,1653,1686,2465,2499, 697, 330, 273, # 1680 - 380,2162, 951, 832, 780, 991,1301,3073, 965,2270,3519, 668,2523,2636,1286, 535, # 1696 -1407, 518, 671, 957,2658,2378, 267, 611,2197,3030,6123, 248,2299, 967,1799,2356, # 1712 - 850,1418,3437,1876,1256,1480,2828,1718,6124,6125,1755,1664,2405,6126,4628,2879, # 1728 -2829, 499,2179, 676,4629, 557,2329,2214,2090, 325,3234, 464, 811,3001, 992,2342, # 1744 -2481,1232,1469, 303,2242, 466,1070,2163, 603,1777,2091,4630,2752,4631,2714, 322, # 1760 -2659,1964,1768, 481,2188,1463,2330,2857,3600,2092,3031,2421,4632,2318,2070,1849, # 1776 -2598,4633,1302,2254,1668,1701,2422,3811,2905,3032,3123,2046,4106,1763,1694,4634, # 1792 -1604, 943,1724,1454, 917, 868,2215,1169,2940, 552,1145,1800,1228,1823,1955, 316, # 1808 -1080,2510, 361,1807,2830,4107,2660,3381,1346,1423,1134,4108,6127, 541,1263,1229, # 1824 -1148,2540, 545, 465,1833,2880,3438,1901,3074,2482, 816,3937, 713,1788,2500, 122, # 1840 -1575, 195,1451,2501,1111,6128, 859, 374,1225,2243,2483,4317, 390,1033,3439,3075, # 1856 -2524,1687, 266, 793,1440,2599, 946, 779, 802, 507, 897,1081, 528,2189,1292, 711, # 1872 -1866,1725,1167,1640, 753, 398,2661,1053, 246, 348,4318, 137,1024,3440,1600,2077, # 1888 -2129, 825,4319, 698, 238, 521, 187,2300,1157,2423,1641,1605,1464,1610,1097,2541, # 1904 -1260,1436, 759,2255,1814,2150, 705,3235, 409,2563,3304, 561,3033,2005,2564, 726, # 1920 -1956,2343,3698,4109, 949,3812,3813,3520,1669, 653,1379,2525, 881,2198, 632,2256, # 1936 -1027, 778,1074, 733,1957, 514,1481,2466, 554,2180, 702,3938,1606,1017,1398,6129, # 1952 -1380,3521, 921, 993,1313, 594, 449,1489,1617,1166, 768,1426,1360, 495,1794,3601, # 1968 -1177,3602,1170,4320,2344, 476, 425,3167,4635,3168,1424, 401,2662,1171,3382,1998, # 1984 -1089,4110, 477,3169, 474,6130,1909, 596,2831,1842, 494, 693,1051,1028,1207,3076, # 2000 - 606,2115, 727,2790,1473,1115, 743,3522, 630, 805,1532,4321,2021, 366,1057, 838, # 2016 - 684,1114,2142,4322,2050,1492,1892,1808,2271,3814,2424,1971,1447,1373,3305,1090, # 2032 -1536,3939,3523,3306,1455,2199, 336, 369,2331,1035, 584,2393, 902, 718,2600,6131, # 2048 -2753, 463,2151,1149,1611,2467, 715,1308,3124,1268, 343,1413,3236,1517,1347,2663, # 2064 -2093,3940,2022,1131,1553,2100,2941,1427,3441,2942,1323,2484,6132,1980, 872,2368, # 2080 -2441,2943, 320,2369,2116,1082, 679,1933,3941,2791,3815, 625,1143,2023, 422,2200, # 2096 -3816,6133, 730,1695, 356,2257,1626,2301,2858,2637,1627,1778, 937, 883,2906,2693, # 2112 -3002,1769,1086, 400,1063,1325,3307,2792,4111,3077, 456,2345,1046, 747,6134,1524, # 2128 - 884,1094,3383,1474,2164,1059, 974,1688,2181,2258,1047, 345,1665,1187, 358, 875, # 2144 -3170, 305, 660,3524,2190,1334,1135,3171,1540,1649,2542,1527, 927, 968,2793, 885, # 2160 -1972,1850, 482, 500,2638,1218,1109,1085,2543,1654,2034, 876, 78,2287,1482,1277, # 2176 - 861,1675,1083,1779, 724,2754, 454, 397,1132,1612,2332, 893, 672,1237, 257,2259, # 2192 -2370, 135,3384, 337,2244, 547, 352, 340, 709,2485,1400, 788,1138,2511, 540, 772, # 2208 -1682,2260,2272,2544,2013,1843,1902,4636,1999,1562,2288,4637,2201,1403,1533, 407, # 2224 - 576,3308,1254,2071, 978,3385, 170, 136,1201,3125,2664,3172,2394, 213, 912, 873, # 2240 -3603,1713,2202, 699,3604,3699, 813,3442, 493, 531,1054, 468,2907,1483, 304, 281, # 2256 -4112,1726,1252,2094, 339,2319,2130,2639, 756,1563,2944, 748, 571,2976,1588,2425, # 2272 -2715,1851,1460,2426,1528,1392,1973,3237, 288,3309, 685,3386, 296, 892,2716,2216, # 2288 -1570,2245, 722,1747,2217, 905,3238,1103,6135,1893,1441,1965, 251,1805,2371,3700, # 2304 -2601,1919,1078, 75,2182,1509,1592,1270,2640,4638,2152,6136,3310,3817, 524, 706, # 2320 -1075, 292,3818,1756,2602, 317, 98,3173,3605,3525,1844,2218,3819,2502, 814, 567, # 2336 - 385,2908,1534,6137, 534,1642,3239, 797,6138,1670,1529, 953,4323, 188,1071, 538, # 2352 - 178, 729,3240,2109,1226,1374,2000,2357,2977, 731,2468,1116,2014,2051,6139,1261, # 2368 -1593, 803,2859,2736,3443, 556, 682, 823,1541,6140,1369,2289,1706,2794, 845, 462, # 2384 -2603,2665,1361, 387, 162,2358,1740, 739,1770,1720,1304,1401,3241,1049, 627,1571, # 2400 -2427,3526,1877,3942,1852,1500, 431,1910,1503, 677, 297,2795, 286,1433,1038,1198, # 2416 -2290,1133,1596,4113,4639,2469,1510,1484,3943,6141,2442, 108, 712,4640,2372, 866, # 2432 -3701,2755,3242,1348, 834,1945,1408,3527,2395,3243,1811, 824, 994,1179,2110,1548, # 2448 -1453, 790,3003, 690,4324,4325,2832,2909,3820,1860,3821, 225,1748, 310, 346,1780, # 2464 -2470, 821,1993,2717,2796, 828, 877,3528,2860,2471,1702,2165,2910,2486,1789, 453, # 2480 - 359,2291,1676, 73,1164,1461,1127,3311, 421, 604, 314,1037, 589, 116,2487, 737, # 2496 - 837,1180, 111, 244, 735,6142,2261,1861,1362, 986, 523, 418, 581,2666,3822, 103, # 2512 - 855, 503,1414,1867,2488,1091, 657,1597, 979, 605,1316,4641,1021,2443,2078,2001, # 2528 -1209, 96, 587,2166,1032, 260,1072,2153, 173, 94, 226,3244, 819,2006,4642,4114, # 2544 -2203, 231,1744, 782, 97,2667, 786,3387, 887, 391, 442,2219,4326,1425,6143,2694, # 2560 - 633,1544,1202, 483,2015, 592,2052,1958,2472,1655, 419, 129,4327,3444,3312,1714, # 2576 -1257,3078,4328,1518,1098, 865,1310,1019,1885,1512,1734, 469,2444, 148, 773, 436, # 2592 -1815,1868,1128,1055,4329,1245,2756,3445,2154,1934,1039,4643, 579,1238, 932,2320, # 2608 - 353, 205, 801, 115,2428, 944,2321,1881, 399,2565,1211, 678, 766,3944, 335,2101, # 2624 -1459,1781,1402,3945,2737,2131,1010, 844, 981,1326,1013, 550,1816,1545,2620,1335, # 2640 -1008, 371,2881, 936,1419,1613,3529,1456,1395,2273,1834,2604,1317,2738,2503, 416, # 2656 -1643,4330, 806,1126, 229, 591,3946,1314,1981,1576,1837,1666, 347,1790, 977,3313, # 2672 - 764,2861,1853, 688,2429,1920,1462, 77, 595, 415,2002,3034, 798,1192,4115,6144, # 2688 -2978,4331,3035,2695,2582,2072,2566, 430,2430,1727, 842,1396,3947,3702, 613, 377, # 2704 - 278, 236,1417,3388,3314,3174, 757,1869, 107,3530,6145,1194, 623,2262, 207,1253, # 2720 -2167,3446,3948, 492,1117,1935, 536,1838,2757,1246,4332, 696,2095,2406,1393,1572, # 2736 -3175,1782, 583, 190, 253,1390,2230, 830,3126,3389, 934,3245,1703,1749,2979,1870, # 2752 -2545,1656,2204, 869,2346,4116,3176,1817, 496,1764,4644, 942,1504, 404,1903,1122, # 2768 -1580,3606,2945,1022, 515, 372,1735, 955,2431,3036,6146,2797,1110,2302,2798, 617, # 2784 -6147, 441, 762,1771,3447,3607,3608,1904, 840,3037, 86, 939,1385, 572,1370,2445, # 2800 -1336, 114,3703, 898, 294, 203,3315, 703,1583,2274, 429, 961,4333,1854,1951,3390, # 2816 -2373,3704,4334,1318,1381, 966,1911,2322,1006,1155, 309, 989, 458,2718,1795,1372, # 2832 -1203, 252,1689,1363,3177, 517,1936, 168,1490, 562, 193,3823,1042,4117,1835, 551, # 2848 - 470,4645, 395, 489,3448,1871,1465,2583,2641, 417,1493, 279,1295, 511,1236,1119, # 2864 - 72,1231,1982,1812,3004, 871,1564, 984,3449,1667,2696,2096,4646,2347,2833,1673, # 2880 -3609, 695,3246,2668, 807,1183,4647, 890, 388,2333,1801,1457,2911,1765,1477,1031, # 2896 -3316,3317,1278,3391,2799,2292,2526, 163,3450,4335,2669,1404,1802,6148,2323,2407, # 2912 -1584,1728,1494,1824,1269, 298, 909,3318,1034,1632, 375, 776,1683,2061, 291, 210, # 2928 -1123, 809,1249,1002,2642,3038, 206,1011,2132, 144, 975, 882,1565, 342, 667, 754, # 2944 -1442,2143,1299,2303,2062, 447, 626,2205,1221,2739,2912,1144,1214,2206,2584, 760, # 2960 -1715, 614, 950,1281,2670,2621, 810, 577,1287,2546,4648, 242,2168, 250,2643, 691, # 2976 - 123,2644, 647, 313,1029, 689,1357,2946,1650, 216, 771,1339,1306, 808,2063, 549, # 2992 - 913,1371,2913,2914,6149,1466,1092,1174,1196,1311,2605,2396,1783,1796,3079, 406, # 3008 -2671,2117,3949,4649, 487,1825,2220,6150,2915, 448,2348,1073,6151,2397,1707, 130, # 3024 - 900,1598, 329, 176,1959,2527,1620,6152,2275,4336,3319,1983,2191,3705,3610,2155, # 3040 -3706,1912,1513,1614,6153,1988, 646, 392,2304,1589,3320,3039,1826,1239,1352,1340, # 3056 -2916, 505,2567,1709,1437,2408,2547, 906,6154,2672, 384,1458,1594,1100,1329, 710, # 3072 - 423,3531,2064,2231,2622,1989,2673,1087,1882, 333, 841,3005,1296,2882,2379, 580, # 3088 -1937,1827,1293,2585, 601, 574, 249,1772,4118,2079,1120, 645, 901,1176,1690, 795, # 3104 -2207, 478,1434, 516,1190,1530, 761,2080, 930,1264, 355, 435,1552, 644,1791, 987, # 3120 - 220,1364,1163,1121,1538, 306,2169,1327,1222, 546,2645, 218, 241, 610,1704,3321, # 3136 -1984,1839,1966,2528, 451,6155,2586,3707,2568, 907,3178, 254,2947, 186,1845,4650, # 3152 - 745, 432,1757, 428,1633, 888,2246,2221,2489,3611,2118,1258,1265, 956,3127,1784, # 3168 -4337,2490, 319, 510, 119, 457,3612, 274,2035,2007,4651,1409,3128, 970,2758, 590, # 3184 -2800, 661,2247,4652,2008,3950,1420,1549,3080,3322,3951,1651,1375,2111, 485,2491, # 3200 -1429,1156,6156,2548,2183,1495, 831,1840,2529,2446, 501,1657, 307,1894,3247,1341, # 3216 - 666, 899,2156,1539,2549,1559, 886, 349,2208,3081,2305,1736,3824,2170,2759,1014, # 3232 -1913,1386, 542,1397,2948, 490, 368, 716, 362, 159, 282,2569,1129,1658,1288,1750, # 3248 -2674, 276, 649,2016, 751,1496, 658,1818,1284,1862,2209,2087,2512,3451, 622,2834, # 3264 - 376, 117,1060,2053,1208,1721,1101,1443, 247,1250,3179,1792,3952,2760,2398,3953, # 3280 -6157,2144,3708, 446,2432,1151,2570,3452,2447,2761,2835,1210,2448,3082, 424,2222, # 3296 -1251,2449,2119,2836, 504,1581,4338, 602, 817, 857,3825,2349,2306, 357,3826,1470, # 3312 -1883,2883, 255, 958, 929,2917,3248, 302,4653,1050,1271,1751,2307,1952,1430,2697, # 3328 -2719,2359, 354,3180, 777, 158,2036,4339,1659,4340,4654,2308,2949,2248,1146,2232, # 3344 -3532,2720,1696,2623,3827,6158,3129,1550,2698,1485,1297,1428, 637, 931,2721,2145, # 3360 - 914,2550,2587, 81,2450, 612, 827,2646,1242,4655,1118,2884, 472,1855,3181,3533, # 3376 -3534, 569,1353,2699,1244,1758,2588,4119,2009,2762,2171,3709,1312,1531,6159,1152, # 3392 -1938, 134,1830, 471,3710,2276,1112,1535,3323,3453,3535, 982,1337,2950, 488, 826, # 3408 - 674,1058,1628,4120,2017, 522,2399, 211, 568,1367,3454, 350, 293,1872,1139,3249, # 3424 -1399,1946,3006,1300,2360,3324, 588, 736,6160,2606, 744, 669,3536,3828,6161,1358, # 3440 - 199, 723, 848, 933, 851,1939,1505,1514,1338,1618,1831,4656,1634,3613, 443,2740, # 3456 -3829, 717,1947, 491,1914,6162,2551,1542,4121,1025,6163,1099,1223, 198,3040,2722, # 3472 - 370, 410,1905,2589, 998,1248,3182,2380, 519,1449,4122,1710, 947, 928,1153,4341, # 3488 -2277, 344,2624,1511, 615, 105, 161,1212,1076,1960,3130,2054,1926,1175,1906,2473, # 3504 - 414,1873,2801,6164,2309, 315,1319,3325, 318,2018,2146,2157, 963, 631, 223,4342, # 3520 -4343,2675, 479,3711,1197,2625,3712,2676,2361,6165,4344,4123,6166,2451,3183,1886, # 3536 -2184,1674,1330,1711,1635,1506, 799, 219,3250,3083,3954,1677,3713,3326,2081,3614, # 3552 -1652,2073,4657,1147,3041,1752, 643,1961, 147,1974,3955,6167,1716,2037, 918,3007, # 3568 -1994, 120,1537, 118, 609,3184,4345, 740,3455,1219, 332,1615,3830,6168,1621,2980, # 3584 -1582, 783, 212, 553,2350,3714,1349,2433,2082,4124, 889,6169,2310,1275,1410, 973, # 3600 - 166,1320,3456,1797,1215,3185,2885,1846,2590,2763,4658, 629, 822,3008, 763, 940, # 3616 -1990,2862, 439,2409,1566,1240,1622, 926,1282,1907,2764, 654,2210,1607, 327,1130, # 3632 -3956,1678,1623,6170,2434,2192, 686, 608,3831,3715, 903,3957,3042,6171,2741,1522, # 3648 -1915,1105,1555,2552,1359, 323,3251,4346,3457, 738,1354,2553,2311,2334,1828,2003, # 3664 -3832,1753,2351,1227,6172,1887,4125,1478,6173,2410,1874,1712,1847, 520,1204,2607, # 3680 - 264,4659, 836,2677,2102, 600,4660,3833,2278,3084,6174,4347,3615,1342, 640, 532, # 3696 - 543,2608,1888,2400,2591,1009,4348,1497, 341,1737,3616,2723,1394, 529,3252,1321, # 3712 - 983,4661,1515,2120, 971,2592, 924, 287,1662,3186,4349,2700,4350,1519, 908,1948, # 3728 -2452, 156, 796,1629,1486,2223,2055, 694,4126,1259,1036,3392,1213,2249,2742,1889, # 3744 -1230,3958,1015, 910, 408, 559,3617,4662, 746, 725, 935,4663,3959,3009,1289, 563, # 3760 - 867,4664,3960,1567,2981,2038,2626, 988,2263,2381,4351, 143,2374, 704,1895,6175, # 3776 -1188,3716,2088, 673,3085,2362,4352, 484,1608,1921,2765,2918, 215, 904,3618,3537, # 3792 - 894, 509, 976,3043,2701,3961,4353,2837,2982, 498,6176,6177,1102,3538,1332,3393, # 3808 -1487,1636,1637, 233, 245,3962, 383, 650, 995,3044, 460,1520,1206,2352, 749,3327, # 3824 - 530, 700, 389,1438,1560,1773,3963,2264, 719,2951,2724,3834, 870,1832,1644,1000, # 3840 - 839,2474,3717, 197,1630,3394, 365,2886,3964,1285,2133, 734, 922, 818,1106, 732, # 3856 - 480,2083,1774,3458, 923,2279,1350, 221,3086, 85,2233,2234,3835,1585,3010,2147, # 3872 -1387,1705,2382,1619,2475, 133, 239,2802,1991,1016,2084,2383, 411,2838,1113, 651, # 3888 -1985,1160,3328, 990,1863,3087,1048,1276,2647, 265,2627,1599,3253,2056, 150, 638, # 3904 -2019, 656, 853, 326,1479, 680,1439,4354,1001,1759, 413,3459,3395,2492,1431, 459, # 3920 -4355,1125,3329,2265,1953,1450,2065,2863, 849, 351,2678,3131,3254,3255,1104,1577, # 3936 - 227,1351,1645,2453,2193,1421,2887, 812,2121, 634, 95,2435, 201,2312,4665,1646, # 3952 -1671,2743,1601,2554,2702,2648,2280,1315,1366,2089,3132,1573,3718,3965,1729,1189, # 3968 - 328,2679,1077,1940,1136, 558,1283, 964,1195, 621,2074,1199,1743,3460,3619,1896, # 3984 -1916,1890,3836,2952,1154,2112,1064, 862, 378,3011,2066,2113,2803,1568,2839,6178, # 4000 -3088,2919,1941,1660,2004,1992,2194, 142, 707,1590,1708,1624,1922,1023,1836,1233, # 4016 -1004,2313, 789, 741,3620,6179,1609,2411,1200,4127,3719,3720,4666,2057,3721, 593, # 4032 -2840, 367,2920,1878,6180,3461,1521, 628,1168, 692,2211,2649, 300, 720,2067,2571, # 4048 -2953,3396, 959,2504,3966,3539,3462,1977, 701,6181, 954,1043, 800, 681, 183,3722, # 4064 -1803,1730,3540,4128,2103, 815,2314, 174, 467, 230,2454,1093,2134, 755,3541,3397, # 4080 -1141,1162,6182,1738,2039, 270,3256,2513,1005,1647,2185,3837, 858,1679,1897,1719, # 4096 -2954,2324,1806, 402, 670, 167,4129,1498,2158,2104, 750,6183, 915, 189,1680,1551, # 4112 - 455,4356,1501,2455, 405,1095,2955, 338,1586,1266,1819, 570, 641,1324, 237,1556, # 4128 -2650,1388,3723,6184,1368,2384,1343,1978,3089,2436, 879,3724, 792,1191, 758,3012, # 4144 -1411,2135,1322,4357, 240,4667,1848,3725,1574,6185, 420,3045,1546,1391, 714,4358, # 4160 -1967, 941,1864, 863, 664, 426, 560,1731,2680,1785,2864,1949,2363, 403,3330,1415, # 4176 -1279,2136,1697,2335, 204, 721,2097,3838, 90,6186,2085,2505, 191,3967, 124,2148, # 4192 -1376,1798,1178,1107,1898,1405, 860,4359,1243,1272,2375,2983,1558,2456,1638, 113, # 4208 -3621, 578,1923,2609, 880, 386,4130, 784,2186,2266,1422,2956,2172,1722, 497, 263, # 4224 -2514,1267,2412,2610, 177,2703,3542, 774,1927,1344, 616,1432,1595,1018, 172,4360, # 4240 -2325, 911,4361, 438,1468,3622, 794,3968,2024,2173,1681,1829,2957, 945, 895,3090, # 4256 - 575,2212,2476, 475,2401,2681, 785,2744,1745,2293,2555,1975,3133,2865, 394,4668, # 4272 -3839, 635,4131, 639, 202,1507,2195,2766,1345,1435,2572,3726,1908,1184,1181,2457, # 4288 -3727,3134,4362, 843,2611, 437, 916,4669, 234, 769,1884,3046,3047,3623, 833,6187, # 4304 -1639,2250,2402,1355,1185,2010,2047, 999, 525,1732,1290,1488,2612, 948,1578,3728, # 4320 -2413,2477,1216,2725,2159, 334,3840,1328,3624,2921,1525,4132, 564,1056, 891,4363, # 4336 -1444,1698,2385,2251,3729,1365,2281,2235,1717,6188, 864,3841,2515, 444, 527,2767, # 4352 -2922,3625, 544, 461,6189, 566, 209,2437,3398,2098,1065,2068,3331,3626,3257,2137, # 4368 #last 512 -) - - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jpcntx.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jpcntx.py deleted file mode 100644 index 20044e4..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jpcntx.py +++ /dev/null @@ -1,233 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - - -# This is hiragana 2-char sequence table, the number in each cell represents its frequency category -jp2CharContext = ( -(0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1), -(2,4,0,4,0,3,0,4,0,3,4,4,4,2,4,3,3,4,3,2,3,3,4,2,3,3,3,2,4,1,4,3,3,1,5,4,3,4,3,4,3,5,3,0,3,5,4,2,0,3,1,0,3,3,0,3,3,0,1,1,0,4,3,0,3,3,0,4,0,2,0,3,5,5,5,5,4,0,4,1,0,3,4), -(0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2), -(0,4,0,5,0,5,0,4,0,4,5,4,4,3,5,3,5,1,5,3,4,3,4,4,3,4,3,3,4,3,5,4,4,3,5,5,3,5,5,5,3,5,5,3,4,5,5,3,1,3,2,0,3,4,0,4,2,0,4,2,1,5,3,2,3,5,0,4,0,2,0,5,4,4,5,4,5,0,4,0,0,4,4), -(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), -(0,3,0,4,0,3,0,3,0,4,5,4,3,3,3,3,4,3,5,4,4,3,5,4,4,3,4,3,4,4,4,4,5,3,4,4,3,4,5,5,4,5,5,1,4,5,4,3,0,3,3,1,3,3,0,4,4,0,3,3,1,5,3,3,3,5,0,4,0,3,0,4,4,3,4,3,3,0,4,1,1,3,4), -(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), -(0,4,0,3,0,3,0,4,0,3,4,4,3,2,2,1,2,1,3,1,3,3,3,3,3,4,3,1,3,3,5,3,3,0,4,3,0,5,4,3,3,5,4,4,3,4,4,5,0,1,2,0,1,2,0,2,2,0,1,0,0,5,2,2,1,4,0,3,0,1,0,4,4,3,5,4,3,0,2,1,0,4,3), -(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), -(0,3,0,5,0,4,0,2,1,4,4,2,4,1,4,2,4,2,4,3,3,3,4,3,3,3,3,1,4,2,3,3,3,1,4,4,1,1,1,4,3,3,2,0,2,4,3,2,0,3,3,0,3,1,1,0,0,0,3,3,0,4,2,2,3,4,0,4,0,3,0,4,4,5,3,4,4,0,3,0,0,1,4), -(1,4,0,4,0,4,0,4,0,3,5,4,4,3,4,3,5,4,3,3,4,3,5,4,4,4,4,3,4,2,4,3,3,1,5,4,3,2,4,5,4,5,5,4,4,5,4,4,0,3,2,2,3,3,0,4,3,1,3,2,1,4,3,3,4,5,0,3,0,2,0,4,5,5,4,5,4,0,4,0,0,5,4), -(0,5,0,5,0,4,0,3,0,4,4,3,4,3,3,3,4,0,4,4,4,3,4,3,4,3,3,1,4,2,4,3,4,0,5,4,1,4,5,4,4,5,3,2,4,3,4,3,2,4,1,3,3,3,2,3,2,0,4,3,3,4,3,3,3,4,0,4,0,3,0,4,5,4,4,4,3,0,4,1,0,1,3), -(0,3,1,4,0,3,0,2,0,3,4,4,3,1,4,2,3,3,4,3,4,3,4,3,4,4,3,2,3,1,5,4,4,1,4,4,3,5,4,4,3,5,5,4,3,4,4,3,1,2,3,1,2,2,0,3,2,0,3,1,0,5,3,3,3,4,3,3,3,3,4,4,4,4,5,4,2,0,3,3,2,4,3), -(0,2,0,3,0,1,0,1,0,0,3,2,0,0,2,0,1,0,2,1,3,3,3,1,2,3,1,0,1,0,4,2,1,1,3,3,0,4,3,3,1,4,3,3,0,3,3,2,0,0,0,0,1,0,0,2,0,0,0,0,0,4,1,0,2,3,2,2,2,1,3,3,3,4,4,3,2,0,3,1,0,3,3), -(0,4,0,4,0,3,0,3,0,4,4,4,3,3,3,3,3,3,4,3,4,2,4,3,4,3,3,2,4,3,4,5,4,1,4,5,3,5,4,5,3,5,4,0,3,5,5,3,1,3,3,2,2,3,0,3,4,1,3,3,2,4,3,3,3,4,0,4,0,3,0,4,5,4,4,5,3,0,4,1,0,3,4), -(0,2,0,3,0,3,0,0,0,2,2,2,1,0,1,0,0,0,3,0,3,0,3,0,1,3,1,0,3,1,3,3,3,1,3,3,3,0,1,3,1,3,4,0,0,3,1,1,0,3,2,0,0,0,0,1,3,0,1,0,0,3,3,2,0,3,0,0,0,0,0,3,4,3,4,3,3,0,3,0,0,2,3), -(2,3,0,3,0,2,0,1,0,3,3,4,3,1,3,1,1,1,3,1,4,3,4,3,3,3,0,0,3,1,5,4,3,1,4,3,2,5,5,4,4,4,4,3,3,4,4,4,0,2,1,1,3,2,0,1,2,0,0,1,0,4,1,3,3,3,0,3,0,1,0,4,4,4,5,5,3,0,2,0,0,4,4), -(0,2,0,1,0,3,1,3,0,2,3,3,3,0,3,1,0,0,3,0,3,2,3,1,3,2,1,1,0,0,4,2,1,0,2,3,1,4,3,2,0,4,4,3,1,3,1,3,0,1,0,0,1,0,0,0,1,0,0,0,0,4,1,1,1,2,0,3,0,0,0,3,4,2,4,3,2,0,1,0,0,3,3), -(0,1,0,4,0,5,0,4,0,2,4,4,2,3,3,2,3,3,5,3,3,3,4,3,4,2,3,0,4,3,3,3,4,1,4,3,2,1,5,5,3,4,5,1,3,5,4,2,0,3,3,0,1,3,0,4,2,0,1,3,1,4,3,3,3,3,0,3,0,1,0,3,4,4,4,5,5,0,3,0,1,4,5), -(0,2,0,3,0,3,0,0,0,2,3,1,3,0,4,0,1,1,3,0,3,4,3,2,3,1,0,3,3,2,3,1,3,0,2,3,0,2,1,4,1,2,2,0,0,3,3,0,0,2,0,0,0,1,0,0,0,0,2,2,0,3,2,1,3,3,0,2,0,2,0,0,3,3,1,2,4,0,3,0,2,2,3), -(2,4,0,5,0,4,0,4,0,2,4,4,4,3,4,3,3,3,1,2,4,3,4,3,4,4,5,0,3,3,3,3,2,0,4,3,1,4,3,4,1,4,4,3,3,4,4,3,1,2,3,0,4,2,0,4,1,0,3,3,0,4,3,3,3,4,0,4,0,2,0,3,5,3,4,5,2,0,3,0,0,4,5), -(0,3,0,4,0,1,0,1,0,1,3,2,2,1,3,0,3,0,2,0,2,0,3,0,2,0,0,0,1,0,1,1,0,0,3,1,0,0,0,4,0,3,1,0,2,1,3,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,2,2,3,1,0,3,0,0,0,1,4,4,4,3,0,0,4,0,0,1,4), -(1,4,1,5,0,3,0,3,0,4,5,4,4,3,5,3,3,4,4,3,4,1,3,3,3,3,2,1,4,1,5,4,3,1,4,4,3,5,4,4,3,5,4,3,3,4,4,4,0,3,3,1,2,3,0,3,1,0,3,3,0,5,4,4,4,4,4,4,3,3,5,4,4,3,3,5,4,0,3,2,0,4,4), -(0,2,0,3,0,1,0,0,0,1,3,3,3,2,4,1,3,0,3,1,3,0,2,2,1,1,0,0,2,0,4,3,1,0,4,3,0,4,4,4,1,4,3,1,1,3,3,1,0,2,0,0,1,3,0,0,0,0,2,0,0,4,3,2,4,3,5,4,3,3,3,4,3,3,4,3,3,0,2,1,0,3,3), -(0,2,0,4,0,3,0,2,0,2,5,5,3,4,4,4,4,1,4,3,3,0,4,3,4,3,1,3,3,2,4,3,0,3,4,3,0,3,4,4,2,4,4,0,4,5,3,3,2,2,1,1,1,2,0,1,5,0,3,3,2,4,3,3,3,4,0,3,0,2,0,4,4,3,5,5,0,0,3,0,2,3,3), -(0,3,0,4,0,3,0,1,0,3,4,3,3,1,3,3,3,0,3,1,3,0,4,3,3,1,1,0,3,0,3,3,0,0,4,4,0,1,5,4,3,3,5,0,3,3,4,3,0,2,0,1,1,1,0,1,3,0,1,2,1,3,3,2,3,3,0,3,0,1,0,1,3,3,4,4,1,0,1,2,2,1,3), -(0,1,0,4,0,4,0,3,0,1,3,3,3,2,3,1,1,0,3,0,3,3,4,3,2,4,2,0,1,0,4,3,2,0,4,3,0,5,3,3,2,4,4,4,3,3,3,4,0,1,3,0,0,1,0,0,1,0,0,0,0,4,2,3,3,3,0,3,0,0,0,4,4,4,5,3,2,0,3,3,0,3,5), -(0,2,0,3,0,0,0,3,0,1,3,0,2,0,0,0,1,0,3,1,1,3,3,0,0,3,0,0,3,0,2,3,1,0,3,1,0,3,3,2,0,4,2,2,0,2,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,2,1,2,0,1,0,1,0,0,0,1,3,1,2,0,0,0,1,0,0,1,4), -(0,3,0,3,0,5,0,1,0,2,4,3,1,3,3,2,1,1,5,2,1,0,5,1,2,0,0,0,3,3,2,2,3,2,4,3,0,0,3,3,1,3,3,0,2,5,3,4,0,3,3,0,1,2,0,2,2,0,3,2,0,2,2,3,3,3,0,2,0,1,0,3,4,4,2,5,4,0,3,0,0,3,5), -(0,3,0,3,0,3,0,1,0,3,3,3,3,0,3,0,2,0,2,1,1,0,2,0,1,0,0,0,2,1,0,0,1,0,3,2,0,0,3,3,1,2,3,1,0,3,3,0,0,1,0,0,0,0,0,2,0,0,0,0,0,2,3,1,2,3,0,3,0,1,0,3,2,1,0,4,3,0,1,1,0,3,3), -(0,4,0,5,0,3,0,3,0,4,5,5,4,3,5,3,4,3,5,3,3,2,5,3,4,4,4,3,4,3,4,5,5,3,4,4,3,4,4,5,4,4,4,3,4,5,5,4,2,3,4,2,3,4,0,3,3,1,4,3,2,4,3,3,5,5,0,3,0,3,0,5,5,5,5,4,4,0,4,0,1,4,4), -(0,4,0,4,0,3,0,3,0,3,5,4,4,2,3,2,5,1,3,2,5,1,4,2,3,2,3,3,4,3,3,3,3,2,5,4,1,3,3,5,3,4,4,0,4,4,3,1,1,3,1,0,2,3,0,2,3,0,3,0,0,4,3,1,3,4,0,3,0,2,0,4,4,4,3,4,5,0,4,0,0,3,4), -(0,3,0,3,0,3,1,2,0,3,4,4,3,3,3,0,2,2,4,3,3,1,3,3,3,1,1,0,3,1,4,3,2,3,4,4,2,4,4,4,3,4,4,3,2,4,4,3,1,3,3,1,3,3,0,4,1,0,2,2,1,4,3,2,3,3,5,4,3,3,5,4,4,3,3,0,4,0,3,2,2,4,4), -(0,2,0,1,0,0,0,0,0,1,2,1,3,0,0,0,0,0,2,0,1,2,1,0,0,1,0,0,0,0,3,0,0,1,0,1,1,3,1,0,0,0,1,1,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,1,2,2,0,3,4,0,0,0,1,1,0,0,1,0,0,0,0,0,1,1), -(0,1,0,0,0,1,0,0,0,0,4,0,4,1,4,0,3,0,4,0,3,0,4,0,3,0,3,0,4,1,5,1,4,0,0,3,0,5,0,5,2,0,1,0,0,0,2,1,4,0,1,3,0,0,3,0,0,3,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0), -(1,4,0,5,0,3,0,2,0,3,5,4,4,3,4,3,5,3,4,3,3,0,4,3,3,3,3,3,3,2,4,4,3,1,3,4,4,5,4,4,3,4,4,1,3,5,4,3,3,3,1,2,2,3,3,1,3,1,3,3,3,5,3,3,4,5,0,3,0,3,0,3,4,3,4,4,3,0,3,0,2,4,3), -(0,1,0,4,0,0,0,0,0,1,4,0,4,1,4,2,4,0,3,0,1,0,1,0,0,0,0,0,2,0,3,1,1,1,0,3,0,0,0,1,2,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,3,0,0,0,0,3,2,0,2,2,0,1,0,0,0,2,3,2,3,3,0,0,0,0,2,1,0), -(0,5,1,5,0,3,0,3,0,5,4,4,5,1,5,3,3,0,4,3,4,3,5,3,4,3,3,2,4,3,4,3,3,0,3,3,1,4,4,3,4,4,4,3,4,5,5,3,2,3,1,1,3,3,1,3,1,1,3,3,2,4,5,3,3,5,0,4,0,3,0,4,4,3,5,3,3,0,3,4,0,4,3), -(0,5,0,5,0,3,0,2,0,4,4,3,5,2,4,3,3,3,4,4,4,3,5,3,5,3,3,1,4,0,4,3,3,0,3,3,0,4,4,4,4,5,4,3,3,5,5,3,2,3,1,2,3,2,0,1,0,0,3,2,2,4,4,3,1,5,0,4,0,3,0,4,3,1,3,2,1,0,3,3,0,3,3), -(0,4,0,5,0,5,0,4,0,4,5,5,5,3,4,3,3,2,5,4,4,3,5,3,5,3,4,0,4,3,4,4,3,2,4,4,3,4,5,4,4,5,5,0,3,5,5,4,1,3,3,2,3,3,1,3,1,0,4,3,1,4,4,3,4,5,0,4,0,2,0,4,3,4,4,3,3,0,4,0,0,5,5), -(0,4,0,4,0,5,0,1,1,3,3,4,4,3,4,1,3,0,5,1,3,0,3,1,3,1,1,0,3,0,3,3,4,0,4,3,0,4,4,4,3,4,4,0,3,5,4,1,0,3,0,0,2,3,0,3,1,0,3,1,0,3,2,1,3,5,0,3,0,1,0,3,2,3,3,4,4,0,2,2,0,4,4), -(2,4,0,5,0,4,0,3,0,4,5,5,4,3,5,3,5,3,5,3,5,2,5,3,4,3,3,4,3,4,5,3,2,1,5,4,3,2,3,4,5,3,4,1,2,5,4,3,0,3,3,0,3,2,0,2,3,0,4,1,0,3,4,3,3,5,0,3,0,1,0,4,5,5,5,4,3,0,4,2,0,3,5), -(0,5,0,4,0,4,0,2,0,5,4,3,4,3,4,3,3,3,4,3,4,2,5,3,5,3,4,1,4,3,4,4,4,0,3,5,0,4,4,4,4,5,3,1,3,4,5,3,3,3,3,3,3,3,0,2,2,0,3,3,2,4,3,3,3,5,3,4,1,3,3,5,3,2,0,0,0,0,4,3,1,3,3), -(0,1,0,3,0,3,0,1,0,1,3,3,3,2,3,3,3,0,3,0,0,0,3,1,3,0,0,0,2,2,2,3,0,0,3,2,0,1,2,4,1,3,3,0,0,3,3,3,0,1,0,0,2,1,0,0,3,0,3,1,0,3,0,0,1,3,0,2,0,1,0,3,3,1,3,3,0,0,1,1,0,3,3), -(0,2,0,3,0,2,1,4,0,2,2,3,1,1,3,1,1,0,2,0,3,1,2,3,1,3,0,0,1,0,4,3,2,3,3,3,1,4,2,3,3,3,3,1,0,3,1,4,0,1,1,0,1,2,0,1,1,0,1,1,0,3,1,3,2,2,0,1,0,0,0,2,3,3,3,1,0,0,0,0,0,2,3), -(0,5,0,4,0,5,0,2,0,4,5,5,3,3,4,3,3,1,5,4,4,2,4,4,4,3,4,2,4,3,5,5,4,3,3,4,3,3,5,5,4,5,5,1,3,4,5,3,1,4,3,1,3,3,0,3,3,1,4,3,1,4,5,3,3,5,0,4,0,3,0,5,3,3,1,4,3,0,4,0,1,5,3), -(0,5,0,5,0,4,0,2,0,4,4,3,4,3,3,3,3,3,5,4,4,4,4,4,4,5,3,3,5,2,4,4,4,3,4,4,3,3,4,4,5,5,3,3,4,3,4,3,3,4,3,3,3,3,1,2,2,1,4,3,3,5,4,4,3,4,0,4,0,3,0,4,4,4,4,4,1,0,4,2,0,2,4), -(0,4,0,4,0,3,0,1,0,3,5,2,3,0,3,0,2,1,4,2,3,3,4,1,4,3,3,2,4,1,3,3,3,0,3,3,0,0,3,3,3,5,3,3,3,3,3,2,0,2,0,0,2,0,0,2,0,0,1,0,0,3,1,2,2,3,0,3,0,2,0,4,4,3,3,4,1,0,3,0,0,2,4), -(0,0,0,4,0,0,0,0,0,0,1,0,1,0,2,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,3,1,3,0,3,2,0,0,0,1,0,3,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,0,2,0,0,0,0,0,0,2), -(0,2,1,3,0,2,0,2,0,3,3,3,3,1,3,1,3,3,3,3,3,3,4,2,2,1,2,1,4,0,4,3,1,3,3,3,2,4,3,5,4,3,3,3,3,3,3,3,0,1,3,0,2,0,0,1,0,0,1,0,0,4,2,0,2,3,0,3,3,0,3,3,4,2,3,1,4,0,1,2,0,2,3), -(0,3,0,3,0,1,0,3,0,2,3,3,3,0,3,1,2,0,3,3,2,3,3,2,3,2,3,1,3,0,4,3,2,0,3,3,1,4,3,3,2,3,4,3,1,3,3,1,1,0,1,1,0,1,0,1,0,1,0,0,0,4,1,1,0,3,0,3,1,0,2,3,3,3,3,3,1,0,0,2,0,3,3), -(0,0,0,0,0,0,0,0,0,0,3,0,2,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,3,0,3,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,2,0,2,3,0,0,0,0,0,0,0,0,3), -(0,2,0,3,1,3,0,3,0,2,3,3,3,1,3,1,3,1,3,1,3,3,3,1,3,0,2,3,1,1,4,3,3,2,3,3,1,2,2,4,1,3,3,0,1,4,2,3,0,1,3,0,3,0,0,1,3,0,2,0,0,3,3,2,1,3,0,3,0,2,0,3,4,4,4,3,1,0,3,0,0,3,3), -(0,2,0,1,0,2,0,0,0,1,3,2,2,1,3,0,1,1,3,0,3,2,3,1,2,0,2,0,1,1,3,3,3,0,3,3,1,1,2,3,2,3,3,1,2,3,2,0,0,1,0,0,0,0,0,0,3,0,1,0,0,2,1,2,1,3,0,3,0,0,0,3,4,4,4,3,2,0,2,0,0,2,4), -(0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,2,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,3,1,0,0,0,0,0,0,0,3), -(0,3,0,3,0,2,0,3,0,3,3,3,2,3,2,2,2,0,3,1,3,3,3,2,3,3,0,0,3,0,3,2,2,0,2,3,1,4,3,4,3,3,2,3,1,5,4,4,0,3,1,2,1,3,0,3,1,1,2,0,2,3,1,3,1,3,0,3,0,1,0,3,3,4,4,2,1,0,2,1,0,2,4), -(0,1,0,3,0,1,0,2,0,1,4,2,5,1,4,0,2,0,2,1,3,1,4,0,2,1,0,0,2,1,4,1,1,0,3,3,0,5,1,3,2,3,3,1,0,3,2,3,0,1,0,0,0,0,0,0,1,0,0,0,0,4,0,1,0,3,0,2,0,1,0,3,3,3,4,3,3,0,0,0,0,2,3), -(0,0,0,1,0,0,0,0,0,0,2,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,1,0,0,0,0,0,3), -(0,1,0,3,0,4,0,3,0,2,4,3,1,0,3,2,2,1,3,1,2,2,3,1,1,1,2,1,3,0,1,2,0,1,3,2,1,3,0,5,5,1,0,0,1,3,2,1,0,3,0,0,1,0,0,0,0,0,3,4,0,1,1,1,3,2,0,2,0,1,0,2,3,3,1,2,3,0,1,0,1,0,4), -(0,0,0,1,0,3,0,3,0,2,2,1,0,0,4,0,3,0,3,1,3,0,3,0,3,0,1,0,3,0,3,1,3,0,3,3,0,0,1,2,1,1,1,0,1,2,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,2,2,1,2,0,0,2,0,0,0,0,2,3,3,3,3,0,0,0,0,1,4), -(0,0,0,3,0,3,0,0,0,0,3,1,1,0,3,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,3,0,2,0,2,3,0,0,2,2,3,1,2,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,2,3), -(2,4,0,5,0,5,0,4,0,3,4,3,3,3,4,3,3,3,4,3,4,4,5,4,5,5,5,2,3,0,5,5,4,1,5,4,3,1,5,4,3,4,4,3,3,4,3,3,0,3,2,0,2,3,0,3,0,0,3,3,0,5,3,2,3,3,0,3,0,3,0,3,4,5,4,5,3,0,4,3,0,3,4), -(0,3,0,3,0,3,0,3,0,3,3,4,3,2,3,2,3,0,4,3,3,3,3,3,3,3,3,0,3,2,4,3,3,1,3,4,3,4,4,4,3,4,4,3,2,4,4,1,0,2,0,0,1,1,0,2,0,0,3,1,0,5,3,2,1,3,0,3,0,1,2,4,3,2,4,3,3,0,3,2,0,4,4), -(0,3,0,3,0,1,0,0,0,1,4,3,3,2,3,1,3,1,4,2,3,2,4,2,3,4,3,0,2,2,3,3,3,0,3,3,3,0,3,4,1,3,3,0,3,4,3,3,0,1,1,0,1,0,0,0,4,0,3,0,0,3,1,2,1,3,0,4,0,1,0,4,3,3,4,3,3,0,2,0,0,3,3), -(0,3,0,4,0,1,0,3,0,3,4,3,3,0,3,3,3,1,3,1,3,3,4,3,3,3,0,0,3,1,5,3,3,1,3,3,2,5,4,3,3,4,5,3,2,5,3,4,0,1,0,0,0,0,0,2,0,0,1,1,0,4,2,2,1,3,0,3,0,2,0,4,4,3,5,3,2,0,1,1,0,3,4), -(0,5,0,4,0,5,0,2,0,4,4,3,3,2,3,3,3,1,4,3,4,1,5,3,4,3,4,0,4,2,4,3,4,1,5,4,0,4,4,4,4,5,4,1,3,5,4,2,1,4,1,1,3,2,0,3,1,0,3,2,1,4,3,3,3,4,0,4,0,3,0,4,4,4,3,3,3,0,4,2,0,3,4), -(1,4,0,4,0,3,0,1,0,3,3,3,1,1,3,3,2,2,3,3,1,0,3,2,2,1,2,0,3,1,2,1,2,0,3,2,0,2,2,3,3,4,3,0,3,3,1,2,0,1,1,3,1,2,0,0,3,0,1,1,0,3,2,2,3,3,0,3,0,0,0,2,3,3,4,3,3,0,1,0,0,1,4), -(0,4,0,4,0,4,0,0,0,3,4,4,3,1,4,2,3,2,3,3,3,1,4,3,4,0,3,0,4,2,3,3,2,2,5,4,2,1,3,4,3,4,3,1,3,3,4,2,0,2,1,0,3,3,0,0,2,0,3,1,0,4,4,3,4,3,0,4,0,1,0,2,4,4,4,4,4,0,3,2,0,3,3), -(0,0,0,1,0,4,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,3,2,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2), -(0,2,0,3,0,4,0,4,0,1,3,3,3,0,4,0,2,1,2,1,1,1,2,0,3,1,1,0,1,0,3,1,0,0,3,3,2,0,1,1,0,0,0,0,0,1,0,2,0,2,2,0,3,1,0,0,1,0,1,1,0,1,2,0,3,0,0,0,0,1,0,0,3,3,4,3,1,0,1,0,3,0,2), -(0,0,0,3,0,5,0,0,0,0,1,0,2,0,3,1,0,1,3,0,0,0,2,0,0,0,1,0,0,0,1,1,0,0,4,0,0,0,2,3,0,1,4,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,3,0,0,0,0,0,3), -(0,2,0,5,0,5,0,1,0,2,4,3,3,2,5,1,3,2,3,3,3,0,4,1,2,0,3,0,4,0,2,2,1,1,5,3,0,0,1,4,2,3,2,0,3,3,3,2,0,2,4,1,1,2,0,1,1,0,3,1,0,1,3,1,2,3,0,2,0,0,0,1,3,5,4,4,4,0,3,0,0,1,3), -(0,4,0,5,0,4,0,4,0,4,5,4,3,3,4,3,3,3,4,3,4,4,5,3,4,5,4,2,4,2,3,4,3,1,4,4,1,3,5,4,4,5,5,4,4,5,5,5,2,3,3,1,4,3,1,3,3,0,3,3,1,4,3,4,4,4,0,3,0,4,0,3,3,4,4,5,0,0,4,3,0,4,5), -(0,4,0,4,0,3,0,3,0,3,4,4,4,3,3,2,4,3,4,3,4,3,5,3,4,3,2,1,4,2,4,4,3,1,3,4,2,4,5,5,3,4,5,4,1,5,4,3,0,3,2,2,3,2,1,3,1,0,3,3,3,5,3,3,3,5,4,4,2,3,3,4,3,3,3,2,1,0,3,2,1,4,3), -(0,4,0,5,0,4,0,3,0,3,5,5,3,2,4,3,4,0,5,4,4,1,4,4,4,3,3,3,4,3,5,5,2,3,3,4,1,2,5,5,3,5,5,2,3,5,5,4,0,3,2,0,3,3,1,1,5,1,4,1,0,4,3,2,3,5,0,4,0,3,0,5,4,3,4,3,0,0,4,1,0,4,4), -(1,3,0,4,0,2,0,2,0,2,5,5,3,3,3,3,3,0,4,2,3,4,4,4,3,4,0,0,3,4,5,4,3,3,3,3,2,5,5,4,5,5,5,4,3,5,5,5,1,3,1,0,1,0,0,3,2,0,4,2,0,5,2,3,2,4,1,3,0,3,0,4,5,4,5,4,3,0,4,2,0,5,4), -(0,3,0,4,0,5,0,3,0,3,4,4,3,2,3,2,3,3,3,3,3,2,4,3,3,2,2,0,3,3,3,3,3,1,3,3,3,0,4,4,3,4,4,1,1,4,4,2,0,3,1,0,1,1,0,4,1,0,2,3,1,3,3,1,3,4,0,3,0,1,0,3,1,3,0,0,1,0,2,0,0,4,4), -(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), -(0,3,0,3,0,2,0,3,0,1,5,4,3,3,3,1,4,2,1,2,3,4,4,2,4,4,5,0,3,1,4,3,4,0,4,3,3,3,2,3,2,5,3,4,3,2,2,3,0,0,3,0,2,1,0,1,2,0,0,0,0,2,1,1,3,1,0,2,0,4,0,3,4,4,4,5,2,0,2,0,0,1,3), -(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,4,2,1,1,0,1,0,3,2,0,0,3,1,1,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,0,2,0,0,0,1,4,0,4,2,1,0,0,0,0,0,1), -(0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,3,1,0,0,0,2,0,2,1,0,0,1,2,1,0,1,1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,1,0,0,2,1,0,0,0,0,0,0,0,0,2), -(0,4,0,4,0,4,0,3,0,4,4,3,4,2,4,3,2,0,4,4,4,3,5,3,5,3,3,2,4,2,4,3,4,3,1,4,0,2,3,4,4,4,3,3,3,4,4,4,3,4,1,3,4,3,2,1,2,1,3,3,3,4,4,3,3,5,0,4,0,3,0,4,3,3,3,2,1,0,3,0,0,3,3), -(0,4,0,3,0,3,0,3,0,3,5,5,3,3,3,3,4,3,4,3,3,3,4,4,4,3,3,3,3,4,3,5,3,3,1,3,2,4,5,5,5,5,4,3,4,5,5,3,2,2,3,3,3,3,2,3,3,1,2,3,2,4,3,3,3,4,0,4,0,2,0,4,3,2,2,1,2,0,3,0,0,4,1), -) - -class JapaneseContextAnalysis(object): - NUM_OF_CATEGORY = 6 - DONT_KNOW = -1 - ENOUGH_REL_THRESHOLD = 100 - MAX_REL_THRESHOLD = 1000 - MINIMUM_DATA_THRESHOLD = 4 - - def __init__(self): - self._total_rel = None - self._rel_sample = None - self._need_to_skip_char_num = None - self._last_char_order = None - self._done = None - self.reset() - - def reset(self): - self._total_rel = 0 # total sequence received - # category counters, each integer counts sequence in its category - self._rel_sample = [0] * self.NUM_OF_CATEGORY - # if last byte in current buffer is not the last byte of a character, - # we need to know how many bytes to skip in next buffer - self._need_to_skip_char_num = 0 - self._last_char_order = -1 # The order of previous char - # If this flag is set to True, detection is done and conclusion has - # been made - self._done = False - - def feed(self, byte_str, num_bytes): - if self._done: - return - - # The buffer we got is byte oriented, and a character may span in more than one - # buffers. In case the last one or two byte in last buffer is not - # complete, we record how many byte needed to complete that character - # and skip these bytes here. We can choose to record those bytes as - # well and analyse the character once it is complete, but since a - # character will not make much difference, by simply skipping - # this character will simply our logic and improve performance. - i = self._need_to_skip_char_num - while i < num_bytes: - order, char_len = self.get_order(byte_str[i:i + 2]) - i += char_len - if i > num_bytes: - self._need_to_skip_char_num = i - num_bytes - self._last_char_order = -1 - else: - if (order != -1) and (self._last_char_order != -1): - self._total_rel += 1 - if self._total_rel > self.MAX_REL_THRESHOLD: - self._done = True - break - self._rel_sample[jp2CharContext[self._last_char_order][order]] += 1 - self._last_char_order = order - - def got_enough_data(self): - return self._total_rel > self.ENOUGH_REL_THRESHOLD - - def get_confidence(self): - # This is just one way to calculate confidence. It works well for me. - if self._total_rel > self.MINIMUM_DATA_THRESHOLD: - return (self._total_rel - self._rel_sample[0]) / self._total_rel - else: - return self.DONT_KNOW - - def get_order(self, byte_str): - return -1, 1 - -class SJISContextAnalysis(JapaneseContextAnalysis): - def __init__(self): - super(SJISContextAnalysis, self).__init__() - self._charset_name = "SHIFT_JIS" - - @property - def charset_name(self): - return self._charset_name - - def get_order(self, byte_str): - if not byte_str: - return -1, 1 - # find out current char's byte length - first_char = byte_str[0] - if (0x81 <= first_char <= 0x9F) or (0xE0 <= first_char <= 0xFC): - char_len = 2 - if (first_char == 0x87) or (0xFA <= first_char <= 0xFC): - self._charset_name = "CP932" - else: - char_len = 1 - - # return its order if it is hiragana - if len(byte_str) > 1: - second_char = byte_str[1] - if (first_char == 202) and (0x9F <= second_char <= 0xF1): - return second_char - 0x9F, char_len - - return -1, char_len - -class EUCJPContextAnalysis(JapaneseContextAnalysis): - def get_order(self, byte_str): - if not byte_str: - return -1, 1 - # find out current char's byte length - first_char = byte_str[0] - if (first_char == 0x8E) or (0xA1 <= first_char <= 0xFE): - char_len = 2 - elif first_char == 0x8F: - char_len = 3 - else: - char_len = 1 - - # return its order if it is hiragana - if len(byte_str) > 1: - second_char = byte_str[1] - if (first_char == 0xA4) and (0xA1 <= second_char <= 0xF3): - return second_char - 0xA1, char_len - - return -1, char_len - - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langbulgarianmodel.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langbulgarianmodel.py deleted file mode 100644 index f5fcf83..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +++ /dev/null @@ -1,4649 +0,0 @@ -# -*- coding: utf-8 -*- - -from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel - - -# 3: Positive -# 2: Likely -# 1: Unlikely -# 0: Negative - -BULGARIAN_LANG_MODEL = { - 63: { # 'e' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 0, # 'а' - 18: 1, # 'б' - 9: 1, # 'в' - 20: 1, # 'г' - 11: 1, # 'д' - 3: 1, # 'е' - 23: 1, # 'ж' - 15: 1, # 'з' - 2: 0, # 'и' - 26: 1, # 'й' - 12: 1, # 'к' - 10: 1, # 'л' - 14: 1, # 'м' - 6: 1, # 'н' - 4: 1, # 'о' - 13: 1, # 'п' - 7: 1, # 'р' - 8: 1, # 'с' - 5: 1, # 'т' - 19: 0, # 'у' - 29: 1, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 1, # 'ч' - 27: 1, # 'ш' - 24: 1, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 45: { # '\xad' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 0, # 'Г' - 37: 1, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 0, # 'Л' - 38: 1, # 'М' - 36: 0, # 'Н' - 41: 1, # 'О' - 30: 1, # 'П' - 39: 1, # 'Р' - 28: 1, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 1, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 0, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 0, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 0, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 0, # 'о' - 13: 0, # 'п' - 7: 0, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 0, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 31: { # 'А' - 63: 0, # 'e' - 45: 1, # '\xad' - 31: 1, # 'А' - 32: 1, # 'Б' - 35: 2, # 'В' - 43: 1, # 'Г' - 37: 2, # 'Д' - 44: 2, # 'Е' - 55: 1, # 'Ж' - 47: 2, # 'З' - 40: 1, # 'И' - 59: 1, # 'Й' - 33: 1, # 'К' - 46: 2, # 'Л' - 38: 1, # 'М' - 36: 2, # 'Н' - 41: 1, # 'О' - 30: 2, # 'П' - 39: 2, # 'Р' - 28: 2, # 'С' - 34: 2, # 'Т' - 51: 1, # 'У' - 48: 2, # 'Ф' - 49: 1, # 'Х' - 53: 1, # 'Ц' - 50: 1, # 'Ч' - 54: 1, # 'Ш' - 57: 2, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 1, # 'Я' - 1: 1, # 'а' - 18: 2, # 'б' - 9: 2, # 'в' - 20: 2, # 'г' - 11: 2, # 'д' - 3: 1, # 'е' - 23: 1, # 'ж' - 15: 2, # 'з' - 2: 0, # 'и' - 26: 2, # 'й' - 12: 2, # 'к' - 10: 3, # 'л' - 14: 2, # 'м' - 6: 3, # 'н' - 4: 0, # 'о' - 13: 2, # 'п' - 7: 2, # 'р' - 8: 2, # 'с' - 5: 2, # 'т' - 19: 1, # 'у' - 29: 2, # 'ф' - 25: 1, # 'х' - 22: 1, # 'ц' - 21: 1, # 'ч' - 27: 1, # 'ш' - 24: 0, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 32: { # 'Б' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 2, # 'Б' - 35: 1, # 'В' - 43: 1, # 'Г' - 37: 2, # 'Д' - 44: 1, # 'Е' - 55: 1, # 'Ж' - 47: 2, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 2, # 'Н' - 41: 2, # 'О' - 30: 1, # 'П' - 39: 1, # 'Р' - 28: 2, # 'С' - 34: 2, # 'Т' - 51: 1, # 'У' - 48: 2, # 'Ф' - 49: 1, # 'Х' - 53: 1, # 'Ц' - 50: 1, # 'Ч' - 54: 0, # 'Ш' - 57: 1, # 'Щ' - 61: 2, # 'Ъ' - 60: 1, # 'Ю' - 56: 1, # 'Я' - 1: 3, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 1, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 2, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 2, # 'р' - 8: 1, # 'с' - 5: 0, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 3, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 2, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 35: { # 'В' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 0, # 'Г' - 37: 1, # 'Д' - 44: 2, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 1, # 'О' - 30: 1, # 'П' - 39: 2, # 'Р' - 28: 2, # 'С' - 34: 1, # 'Т' - 51: 1, # 'У' - 48: 2, # 'Ф' - 49: 0, # 'Х' - 53: 1, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 1, # 'Ю' - 56: 2, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 1, # 'д' - 3: 3, # 'е' - 23: 1, # 'ж' - 15: 2, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 2, # 'л' - 14: 1, # 'м' - 6: 2, # 'н' - 4: 2, # 'о' - 13: 1, # 'п' - 7: 2, # 'р' - 8: 2, # 'с' - 5: 2, # 'т' - 19: 1, # 'у' - 29: 0, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 2, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 43: { # 'Г' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 1, # 'Д' - 44: 2, # 'Е' - 55: 0, # 'Ж' - 47: 1, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 0, # 'М' - 36: 1, # 'Н' - 41: 1, # 'О' - 30: 0, # 'П' - 39: 1, # 'Р' - 28: 1, # 'С' - 34: 0, # 'Т' - 51: 1, # 'У' - 48: 1, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 1, # 'Щ' - 61: 1, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 2, # 'а' - 18: 1, # 'б' - 9: 1, # 'в' - 20: 0, # 'г' - 11: 1, # 'д' - 3: 3, # 'е' - 23: 1, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 2, # 'л' - 14: 1, # 'м' - 6: 1, # 'н' - 4: 2, # 'о' - 13: 0, # 'п' - 7: 2, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 1, # 'щ' - 17: 2, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 37: { # 'Д' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 2, # 'В' - 43: 1, # 'Г' - 37: 2, # 'Д' - 44: 2, # 'Е' - 55: 2, # 'Ж' - 47: 1, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 2, # 'О' - 30: 2, # 'П' - 39: 1, # 'Р' - 28: 2, # 'С' - 34: 1, # 'Т' - 51: 1, # 'У' - 48: 1, # 'Ф' - 49: 0, # 'Х' - 53: 1, # 'Ц' - 50: 1, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 1, # 'Ю' - 56: 1, # 'Я' - 1: 3, # 'а' - 18: 0, # 'б' - 9: 2, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 3, # 'е' - 23: 3, # 'ж' - 15: 1, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 1, # 'л' - 14: 1, # 'м' - 6: 2, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 2, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 1, # 'ь' - 42: 2, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 44: { # 'Е' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 1, # 'А' - 32: 1, # 'Б' - 35: 2, # 'В' - 43: 1, # 'Г' - 37: 1, # 'Д' - 44: 1, # 'Е' - 55: 1, # 'Ж' - 47: 1, # 'З' - 40: 1, # 'И' - 59: 1, # 'Й' - 33: 2, # 'К' - 46: 2, # 'Л' - 38: 1, # 'М' - 36: 2, # 'Н' - 41: 2, # 'О' - 30: 1, # 'П' - 39: 2, # 'Р' - 28: 2, # 'С' - 34: 2, # 'Т' - 51: 1, # 'У' - 48: 2, # 'Ф' - 49: 1, # 'Х' - 53: 2, # 'Ц' - 50: 1, # 'Ч' - 54: 1, # 'Ш' - 57: 1, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 1, # 'Я' - 1: 0, # 'а' - 18: 1, # 'б' - 9: 2, # 'в' - 20: 1, # 'г' - 11: 2, # 'д' - 3: 0, # 'е' - 23: 1, # 'ж' - 15: 1, # 'з' - 2: 0, # 'и' - 26: 1, # 'й' - 12: 2, # 'к' - 10: 2, # 'л' - 14: 2, # 'м' - 6: 2, # 'н' - 4: 0, # 'о' - 13: 1, # 'п' - 7: 2, # 'р' - 8: 2, # 'с' - 5: 1, # 'т' - 19: 1, # 'у' - 29: 1, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 1, # 'ч' - 27: 1, # 'ш' - 24: 1, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 55: { # 'Ж' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 1, # 'А' - 32: 0, # 'Б' - 35: 1, # 'В' - 43: 0, # 'Г' - 37: 1, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 1, # 'Н' - 41: 1, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 1, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 2, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 1, # 'д' - 3: 2, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 2, # 'о' - 13: 1, # 'п' - 7: 1, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 1, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 47: { # 'З' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 1, # 'Г' - 37: 1, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 1, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 2, # 'Н' - 41: 1, # 'О' - 30: 1, # 'П' - 39: 1, # 'Р' - 28: 1, # 'С' - 34: 1, # 'Т' - 51: 1, # 'У' - 48: 0, # 'Ф' - 49: 1, # 'Х' - 53: 1, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 0, # 'Ю' - 56: 1, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 2, # 'в' - 20: 1, # 'г' - 11: 2, # 'д' - 3: 2, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 1, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 2, # 'л' - 14: 1, # 'м' - 6: 1, # 'н' - 4: 1, # 'о' - 13: 0, # 'п' - 7: 1, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 1, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 40: { # 'И' - 63: 0, # 'e' - 45: 1, # '\xad' - 31: 1, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 1, # 'Г' - 37: 1, # 'Д' - 44: 2, # 'Е' - 55: 1, # 'Ж' - 47: 2, # 'З' - 40: 1, # 'И' - 59: 1, # 'Й' - 33: 2, # 'К' - 46: 2, # 'Л' - 38: 2, # 'М' - 36: 2, # 'Н' - 41: 1, # 'О' - 30: 1, # 'П' - 39: 2, # 'Р' - 28: 2, # 'С' - 34: 2, # 'Т' - 51: 0, # 'У' - 48: 1, # 'Ф' - 49: 1, # 'Х' - 53: 1, # 'Ц' - 50: 1, # 'Ч' - 54: 1, # 'Ш' - 57: 1, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 2, # 'Я' - 1: 1, # 'а' - 18: 1, # 'б' - 9: 3, # 'в' - 20: 2, # 'г' - 11: 1, # 'д' - 3: 1, # 'е' - 23: 0, # 'ж' - 15: 3, # 'з' - 2: 0, # 'и' - 26: 1, # 'й' - 12: 1, # 'к' - 10: 2, # 'л' - 14: 2, # 'м' - 6: 2, # 'н' - 4: 0, # 'о' - 13: 1, # 'п' - 7: 2, # 'р' - 8: 2, # 'с' - 5: 2, # 'т' - 19: 0, # 'у' - 29: 1, # 'ф' - 25: 1, # 'х' - 22: 1, # 'ц' - 21: 1, # 'ч' - 27: 1, # 'ш' - 24: 1, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 59: { # 'Й' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 1, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 1, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 1, # 'С' - 34: 1, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 1, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 1, # 'Я' - 1: 0, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 1, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 0, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 2, # 'о' - 13: 0, # 'п' - 7: 0, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 0, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 33: { # 'К' - 63: 0, # 'e' - 45: 1, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 1, # 'Г' - 37: 1, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 1, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 0, # 'М' - 36: 2, # 'Н' - 41: 2, # 'О' - 30: 2, # 'П' - 39: 1, # 'Р' - 28: 2, # 'С' - 34: 1, # 'Т' - 51: 1, # 'У' - 48: 1, # 'Ф' - 49: 1, # 'Х' - 53: 1, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 1, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 0, # 'б' - 9: 1, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 2, # 'е' - 23: 1, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 2, # 'л' - 14: 1, # 'м' - 6: 2, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 3, # 'р' - 8: 1, # 'с' - 5: 0, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 1, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 1, # 'ь' - 42: 2, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 46: { # 'Л' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 2, # 'Г' - 37: 1, # 'Д' - 44: 2, # 'Е' - 55: 0, # 'Ж' - 47: 1, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 0, # 'М' - 36: 1, # 'Н' - 41: 2, # 'О' - 30: 1, # 'П' - 39: 0, # 'Р' - 28: 1, # 'С' - 34: 1, # 'Т' - 51: 1, # 'У' - 48: 0, # 'Ф' - 49: 1, # 'Х' - 53: 1, # 'Ц' - 50: 1, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 1, # 'Ю' - 56: 1, # 'Я' - 1: 2, # 'а' - 18: 0, # 'б' - 9: 1, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 2, # 'о' - 13: 0, # 'п' - 7: 0, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 1, # 'ь' - 42: 2, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 38: { # 'М' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 2, # 'В' - 43: 0, # 'Г' - 37: 1, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 1, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 2, # 'О' - 30: 1, # 'П' - 39: 1, # 'Р' - 28: 2, # 'С' - 34: 1, # 'Т' - 51: 1, # 'У' - 48: 1, # 'Ф' - 49: 0, # 'Х' - 53: 1, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 0, # 'Ю' - 56: 1, # 'Я' - 1: 3, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 2, # 'л' - 14: 0, # 'м' - 6: 2, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 1, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 1, # 'ь' - 42: 2, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 36: { # 'Н' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 2, # 'Б' - 35: 1, # 'В' - 43: 1, # 'Г' - 37: 2, # 'Д' - 44: 2, # 'Е' - 55: 1, # 'Ж' - 47: 1, # 'З' - 40: 2, # 'И' - 59: 1, # 'Й' - 33: 2, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 2, # 'О' - 30: 1, # 'П' - 39: 1, # 'Р' - 28: 2, # 'С' - 34: 2, # 'Т' - 51: 1, # 'У' - 48: 1, # 'Ф' - 49: 1, # 'Х' - 53: 1, # 'Ц' - 50: 1, # 'Ч' - 54: 1, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 1, # 'Ю' - 56: 1, # 'Я' - 1: 3, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 1, # 'г' - 11: 0, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 0, # 'р' - 8: 0, # 'с' - 5: 1, # 'т' - 19: 1, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 1, # 'ш' - 24: 0, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 2, # 'ю' - 16: 2, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 41: { # 'О' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 1, # 'А' - 32: 1, # 'Б' - 35: 2, # 'В' - 43: 1, # 'Г' - 37: 2, # 'Д' - 44: 1, # 'Е' - 55: 1, # 'Ж' - 47: 1, # 'З' - 40: 1, # 'И' - 59: 1, # 'Й' - 33: 2, # 'К' - 46: 2, # 'Л' - 38: 2, # 'М' - 36: 2, # 'Н' - 41: 2, # 'О' - 30: 1, # 'П' - 39: 2, # 'Р' - 28: 2, # 'С' - 34: 2, # 'Т' - 51: 1, # 'У' - 48: 1, # 'Ф' - 49: 1, # 'Х' - 53: 0, # 'Ц' - 50: 1, # 'Ч' - 54: 1, # 'Ш' - 57: 1, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 1, # 'Я' - 1: 1, # 'а' - 18: 2, # 'б' - 9: 2, # 'в' - 20: 2, # 'г' - 11: 1, # 'д' - 3: 1, # 'е' - 23: 1, # 'ж' - 15: 1, # 'з' - 2: 0, # 'и' - 26: 1, # 'й' - 12: 2, # 'к' - 10: 2, # 'л' - 14: 1, # 'м' - 6: 1, # 'н' - 4: 0, # 'о' - 13: 2, # 'п' - 7: 2, # 'р' - 8: 2, # 'с' - 5: 3, # 'т' - 19: 1, # 'у' - 29: 1, # 'ф' - 25: 1, # 'х' - 22: 1, # 'ц' - 21: 2, # 'ч' - 27: 0, # 'ш' - 24: 2, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 30: { # 'П' - 63: 0, # 'e' - 45: 1, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 1, # 'Г' - 37: 1, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 1, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 2, # 'О' - 30: 2, # 'П' - 39: 2, # 'Р' - 28: 2, # 'С' - 34: 1, # 'Т' - 51: 2, # 'У' - 48: 1, # 'Ф' - 49: 0, # 'Х' - 53: 1, # 'Ц' - 50: 1, # 'Ч' - 54: 1, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 1, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 2, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 3, # 'л' - 14: 0, # 'м' - 6: 1, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 3, # 'р' - 8: 1, # 'с' - 5: 1, # 'т' - 19: 2, # 'у' - 29: 1, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 1, # 'ч' - 27: 1, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 39: { # 'Р' - 63: 0, # 'e' - 45: 1, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 2, # 'Г' - 37: 2, # 'Д' - 44: 2, # 'Е' - 55: 0, # 'Ж' - 47: 1, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 0, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 2, # 'О' - 30: 2, # 'П' - 39: 1, # 'Р' - 28: 1, # 'С' - 34: 1, # 'Т' - 51: 1, # 'У' - 48: 1, # 'Ф' - 49: 1, # 'Х' - 53: 1, # 'Ц' - 50: 1, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 1, # 'Ю' - 56: 1, # 'Я' - 1: 3, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 2, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 1, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 0, # 'р' - 8: 1, # 'с' - 5: 0, # 'т' - 19: 3, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 28: { # 'С' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 3, # 'А' - 32: 2, # 'Б' - 35: 2, # 'В' - 43: 1, # 'Г' - 37: 2, # 'Д' - 44: 2, # 'Е' - 55: 1, # 'Ж' - 47: 1, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 2, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 2, # 'О' - 30: 2, # 'П' - 39: 1, # 'Р' - 28: 2, # 'С' - 34: 2, # 'Т' - 51: 1, # 'У' - 48: 1, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 1, # 'Ю' - 56: 1, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 2, # 'в' - 20: 1, # 'г' - 11: 1, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 2, # 'к' - 10: 3, # 'л' - 14: 2, # 'м' - 6: 1, # 'н' - 4: 3, # 'о' - 13: 3, # 'п' - 7: 2, # 'р' - 8: 0, # 'с' - 5: 3, # 'т' - 19: 2, # 'у' - 29: 2, # 'ф' - 25: 1, # 'х' - 22: 1, # 'ц' - 21: 1, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 3, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 34: { # 'Т' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 2, # 'Б' - 35: 1, # 'В' - 43: 0, # 'Г' - 37: 1, # 'Д' - 44: 2, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 2, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 2, # 'О' - 30: 1, # 'П' - 39: 2, # 'Р' - 28: 2, # 'С' - 34: 1, # 'Т' - 51: 1, # 'У' - 48: 1, # 'Ф' - 49: 0, # 'Х' - 53: 1, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 1, # 'Ъ' - 60: 0, # 'Ю' - 56: 1, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 1, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 1, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 3, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 2, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 51: { # 'У' - 63: 0, # 'e' - 45: 1, # '\xad' - 31: 1, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 1, # 'Г' - 37: 1, # 'Д' - 44: 2, # 'Е' - 55: 1, # 'Ж' - 47: 1, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 0, # 'О' - 30: 1, # 'П' - 39: 1, # 'Р' - 28: 1, # 'С' - 34: 2, # 'Т' - 51: 0, # 'У' - 48: 1, # 'Ф' - 49: 1, # 'Х' - 53: 1, # 'Ц' - 50: 1, # 'Ч' - 54: 1, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 1, # 'а' - 18: 1, # 'б' - 9: 2, # 'в' - 20: 1, # 'г' - 11: 1, # 'д' - 3: 2, # 'е' - 23: 1, # 'ж' - 15: 1, # 'з' - 2: 2, # 'и' - 26: 1, # 'й' - 12: 2, # 'к' - 10: 1, # 'л' - 14: 1, # 'м' - 6: 2, # 'н' - 4: 2, # 'о' - 13: 1, # 'п' - 7: 1, # 'р' - 8: 2, # 'с' - 5: 1, # 'т' - 19: 1, # 'у' - 29: 0, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 2, # 'ч' - 27: 1, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 48: { # 'Ф' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 0, # 'М' - 36: 1, # 'Н' - 41: 1, # 'О' - 30: 2, # 'П' - 39: 1, # 'Р' - 28: 2, # 'С' - 34: 1, # 'Т' - 51: 1, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 2, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 2, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 2, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 2, # 'о' - 13: 0, # 'п' - 7: 2, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 1, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 49: { # 'Х' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 1, # 'А' - 32: 0, # 'Б' - 35: 1, # 'В' - 43: 1, # 'Г' - 37: 1, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 1, # 'О' - 30: 1, # 'П' - 39: 1, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 1, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 2, # 'а' - 18: 0, # 'б' - 9: 1, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 2, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 1, # 'л' - 14: 1, # 'м' - 6: 0, # 'н' - 4: 2, # 'о' - 13: 0, # 'п' - 7: 2, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 53: { # 'Ц' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 1, # 'А' - 32: 0, # 'Б' - 35: 1, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 2, # 'И' - 59: 0, # 'Й' - 33: 2, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 1, # 'Р' - 28: 2, # 'С' - 34: 0, # 'Т' - 51: 1, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 2, # 'а' - 18: 0, # 'б' - 9: 2, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 2, # 'е' - 23: 0, # 'ж' - 15: 1, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 1, # 'о' - 13: 0, # 'п' - 7: 1, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 1, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 50: { # 'Ч' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 2, # 'А' - 32: 1, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 1, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 0, # 'М' - 36: 1, # 'Н' - 41: 1, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 1, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 2, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 3, # 'е' - 23: 1, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 1, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 2, # 'о' - 13: 0, # 'п' - 7: 1, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 1, # 'ь' - 42: 0, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 54: { # 'Ш' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 1, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 1, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 1, # 'Н' - 41: 1, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 1, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 2, # 'а' - 18: 0, # 'б' - 9: 2, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 2, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 2, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 1, # 'л' - 14: 1, # 'м' - 6: 1, # 'н' - 4: 2, # 'о' - 13: 1, # 'п' - 7: 1, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 1, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 1, # 'ь' - 42: 0, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 57: { # 'Щ' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 1, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 1, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 2, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 2, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 1, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 1, # 'о' - 13: 0, # 'п' - 7: 1, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 1, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 61: { # 'Ъ' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 0, # 'Г' - 37: 1, # 'Д' - 44: 0, # 'Е' - 55: 1, # 'Ж' - 47: 1, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 2, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 0, # 'О' - 30: 1, # 'П' - 39: 2, # 'Р' - 28: 1, # 'С' - 34: 1, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 1, # 'Х' - 53: 1, # 'Ц' - 50: 1, # 'Ч' - 54: 1, # 'Ш' - 57: 1, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 0, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 0, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 0, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 1, # 'л' - 14: 0, # 'м' - 6: 1, # 'н' - 4: 0, # 'о' - 13: 0, # 'п' - 7: 1, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 0, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 60: { # 'Ю' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 1, # 'А' - 32: 1, # 'Б' - 35: 0, # 'В' - 43: 1, # 'Г' - 37: 1, # 'Д' - 44: 0, # 'Е' - 55: 1, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 0, # 'М' - 36: 1, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 1, # 'Р' - 28: 1, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 0, # 'а' - 18: 1, # 'б' - 9: 1, # 'в' - 20: 2, # 'г' - 11: 1, # 'д' - 3: 0, # 'е' - 23: 2, # 'ж' - 15: 1, # 'з' - 2: 1, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 1, # 'л' - 14: 1, # 'м' - 6: 1, # 'н' - 4: 0, # 'о' - 13: 1, # 'п' - 7: 1, # 'р' - 8: 1, # 'с' - 5: 1, # 'т' - 19: 0, # 'у' - 29: 0, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 56: { # 'Я' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 1, # 'Б' - 35: 1, # 'В' - 43: 1, # 'Г' - 37: 1, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 1, # 'Л' - 38: 1, # 'М' - 36: 1, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 1, # 'С' - 34: 2, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 0, # 'а' - 18: 1, # 'б' - 9: 1, # 'в' - 20: 1, # 'г' - 11: 1, # 'д' - 3: 0, # 'е' - 23: 0, # 'ж' - 15: 1, # 'з' - 2: 1, # 'и' - 26: 1, # 'й' - 12: 1, # 'к' - 10: 1, # 'л' - 14: 2, # 'м' - 6: 2, # 'н' - 4: 0, # 'о' - 13: 2, # 'п' - 7: 1, # 'р' - 8: 1, # 'с' - 5: 1, # 'т' - 19: 0, # 'у' - 29: 0, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 1, # 'ш' - 24: 0, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 1: { # 'а' - 63: 1, # 'e' - 45: 1, # '\xad' - 31: 1, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 1, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 1, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 3, # 'г' - 11: 3, # 'д' - 3: 3, # 'е' - 23: 3, # 'ж' - 15: 3, # 'з' - 2: 3, # 'и' - 26: 3, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 2, # 'о' - 13: 3, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 3, # 'у' - 29: 3, # 'ф' - 25: 3, # 'х' - 22: 3, # 'ц' - 21: 3, # 'ч' - 27: 3, # 'ш' - 24: 3, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 18: { # 'б' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 0, # 'б' - 9: 3, # 'в' - 20: 1, # 'г' - 11: 2, # 'д' - 3: 3, # 'е' - 23: 1, # 'ж' - 15: 1, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 3, # 'л' - 14: 2, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 1, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 0, # 'т' - 19: 3, # 'у' - 29: 0, # 'ф' - 25: 2, # 'х' - 22: 1, # 'ц' - 21: 1, # 'ч' - 27: 1, # 'ш' - 24: 3, # 'щ' - 17: 3, # 'ъ' - 52: 1, # 'ь' - 42: 2, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 9: { # 'в' - 63: 1, # 'e' - 45: 1, # '\xad' - 31: 0, # 'А' - 32: 1, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 1, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 0, # 'в' - 20: 2, # 'г' - 11: 3, # 'д' - 3: 3, # 'е' - 23: 1, # 'ж' - 15: 3, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 2, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 2, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 2, # 'х' - 22: 2, # 'ц' - 21: 3, # 'ч' - 27: 2, # 'ш' - 24: 1, # 'щ' - 17: 3, # 'ъ' - 52: 1, # 'ь' - 42: 2, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 20: { # 'г' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 2, # 'в' - 20: 1, # 'г' - 11: 2, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 1, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 3, # 'л' - 14: 1, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 1, # 'п' - 7: 3, # 'р' - 8: 2, # 'с' - 5: 2, # 'т' - 19: 3, # 'у' - 29: 1, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 1, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 3, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 11: { # 'д' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 2, # 'б' - 9: 3, # 'в' - 20: 2, # 'г' - 11: 2, # 'д' - 3: 3, # 'е' - 23: 3, # 'ж' - 15: 2, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 3, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 1, # 'т' - 19: 3, # 'у' - 29: 1, # 'ф' - 25: 2, # 'х' - 22: 2, # 'ц' - 21: 2, # 'ч' - 27: 1, # 'ш' - 24: 1, # 'щ' - 17: 3, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 3: { # 'е' - 63: 0, # 'e' - 45: 1, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 2, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 3, # 'г' - 11: 3, # 'д' - 3: 2, # 'е' - 23: 3, # 'ж' - 15: 3, # 'з' - 2: 2, # 'и' - 26: 3, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 3, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 2, # 'у' - 29: 3, # 'ф' - 25: 3, # 'х' - 22: 3, # 'ц' - 21: 3, # 'ч' - 27: 3, # 'ш' - 24: 3, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 23: { # 'ж' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 3, # 'б' - 9: 2, # 'в' - 20: 1, # 'г' - 11: 3, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 2, # 'к' - 10: 1, # 'л' - 14: 1, # 'м' - 6: 3, # 'н' - 4: 2, # 'о' - 13: 1, # 'п' - 7: 1, # 'р' - 8: 1, # 'с' - 5: 1, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 1, # 'ц' - 21: 1, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 15: { # 'з' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 3, # 'г' - 11: 3, # 'д' - 3: 3, # 'е' - 23: 1, # 'ж' - 15: 1, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 3, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 3, # 'у' - 29: 1, # 'ф' - 25: 2, # 'х' - 22: 2, # 'ц' - 21: 2, # 'ч' - 27: 2, # 'ш' - 24: 1, # 'щ' - 17: 2, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 2, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 2: { # 'и' - 63: 1, # 'e' - 45: 1, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 1, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 1, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 1, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 1, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 3, # 'г' - 11: 3, # 'д' - 3: 3, # 'е' - 23: 3, # 'ж' - 15: 3, # 'з' - 2: 3, # 'и' - 26: 3, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 3, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 2, # 'у' - 29: 3, # 'ф' - 25: 3, # 'х' - 22: 3, # 'ц' - 21: 3, # 'ч' - 27: 3, # 'ш' - 24: 3, # 'щ' - 17: 2, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 26: { # 'й' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 1, # 'а' - 18: 2, # 'б' - 9: 2, # 'в' - 20: 1, # 'г' - 11: 2, # 'д' - 3: 2, # 'е' - 23: 0, # 'ж' - 15: 2, # 'з' - 2: 1, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 2, # 'л' - 14: 2, # 'м' - 6: 3, # 'н' - 4: 2, # 'о' - 13: 1, # 'п' - 7: 2, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 1, # 'у' - 29: 2, # 'ф' - 25: 1, # 'х' - 22: 2, # 'ц' - 21: 2, # 'ч' - 27: 1, # 'ш' - 24: 1, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 12: { # 'к' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 1, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 1, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 3, # 'в' - 20: 2, # 'г' - 11: 1, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 2, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 3, # 'л' - 14: 2, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 1, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 3, # 'у' - 29: 1, # 'ф' - 25: 1, # 'х' - 22: 3, # 'ц' - 21: 2, # 'ч' - 27: 1, # 'ш' - 24: 0, # 'щ' - 17: 3, # 'ъ' - 52: 1, # 'ь' - 42: 2, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 10: { # 'л' - 63: 1, # 'e' - 45: 1, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 1, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 3, # 'г' - 11: 2, # 'д' - 3: 3, # 'е' - 23: 3, # 'ж' - 15: 2, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 1, # 'л' - 14: 2, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 2, # 'п' - 7: 2, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 3, # 'у' - 29: 2, # 'ф' - 25: 2, # 'х' - 22: 2, # 'ц' - 21: 2, # 'ч' - 27: 2, # 'ш' - 24: 1, # 'щ' - 17: 3, # 'ъ' - 52: 2, # 'ь' - 42: 3, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 14: { # 'м' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 1, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 1, # 'г' - 11: 1, # 'д' - 3: 3, # 'е' - 23: 1, # 'ж' - 15: 1, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 2, # 'к' - 10: 3, # 'л' - 14: 1, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 3, # 'п' - 7: 2, # 'р' - 8: 2, # 'с' - 5: 1, # 'т' - 19: 3, # 'у' - 29: 2, # 'ф' - 25: 1, # 'х' - 22: 2, # 'ц' - 21: 2, # 'ч' - 27: 2, # 'ш' - 24: 1, # 'щ' - 17: 3, # 'ъ' - 52: 1, # 'ь' - 42: 2, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 6: { # 'н' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 1, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 2, # 'б' - 9: 2, # 'в' - 20: 3, # 'г' - 11: 3, # 'д' - 3: 3, # 'е' - 23: 2, # 'ж' - 15: 2, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 2, # 'л' - 14: 1, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 1, # 'п' - 7: 2, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 3, # 'у' - 29: 3, # 'ф' - 25: 2, # 'х' - 22: 3, # 'ц' - 21: 3, # 'ч' - 27: 2, # 'ш' - 24: 1, # 'щ' - 17: 3, # 'ъ' - 52: 2, # 'ь' - 42: 2, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 4: { # 'о' - 63: 0, # 'e' - 45: 1, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 2, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 3, # 'г' - 11: 3, # 'д' - 3: 3, # 'е' - 23: 3, # 'ж' - 15: 3, # 'з' - 2: 3, # 'и' - 26: 3, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 2, # 'о' - 13: 3, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 2, # 'у' - 29: 3, # 'ф' - 25: 3, # 'х' - 22: 3, # 'ц' - 21: 3, # 'ч' - 27: 3, # 'ш' - 24: 3, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 13: { # 'п' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 2, # 'в' - 20: 1, # 'г' - 11: 1, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 1, # 'з' - 2: 3, # 'и' - 26: 1, # 'й' - 12: 2, # 'к' - 10: 3, # 'л' - 14: 1, # 'м' - 6: 2, # 'н' - 4: 3, # 'о' - 13: 1, # 'п' - 7: 3, # 'р' - 8: 2, # 'с' - 5: 2, # 'т' - 19: 3, # 'у' - 29: 1, # 'ф' - 25: 1, # 'х' - 22: 2, # 'ц' - 21: 2, # 'ч' - 27: 1, # 'ш' - 24: 1, # 'щ' - 17: 3, # 'ъ' - 52: 1, # 'ь' - 42: 2, # 'ю' - 16: 2, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 7: { # 'р' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 3, # 'г' - 11: 3, # 'д' - 3: 3, # 'е' - 23: 3, # 'ж' - 15: 2, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 2, # 'п' - 7: 1, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 3, # 'у' - 29: 2, # 'ф' - 25: 3, # 'х' - 22: 3, # 'ц' - 21: 2, # 'ч' - 27: 3, # 'ш' - 24: 1, # 'щ' - 17: 3, # 'ъ' - 52: 1, # 'ь' - 42: 2, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 8: { # 'с' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 2, # 'б' - 9: 3, # 'в' - 20: 2, # 'г' - 11: 2, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 1, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 3, # 'п' - 7: 3, # 'р' - 8: 1, # 'с' - 5: 3, # 'т' - 19: 3, # 'у' - 29: 2, # 'ф' - 25: 2, # 'х' - 22: 2, # 'ц' - 21: 2, # 'ч' - 27: 2, # 'ш' - 24: 0, # 'щ' - 17: 3, # 'ъ' - 52: 2, # 'ь' - 42: 2, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 5: { # 'т' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 2, # 'г' - 11: 2, # 'д' - 3: 3, # 'е' - 23: 1, # 'ж' - 15: 1, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 2, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 2, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 3, # 'у' - 29: 1, # 'ф' - 25: 2, # 'х' - 22: 2, # 'ц' - 21: 2, # 'ч' - 27: 1, # 'ш' - 24: 1, # 'щ' - 17: 3, # 'ъ' - 52: 2, # 'ь' - 42: 2, # 'ю' - 16: 3, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 19: { # 'у' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 3, # 'г' - 11: 3, # 'д' - 3: 2, # 'е' - 23: 3, # 'ж' - 15: 3, # 'з' - 2: 2, # 'и' - 26: 2, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 2, # 'о' - 13: 3, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 1, # 'у' - 29: 2, # 'ф' - 25: 2, # 'х' - 22: 2, # 'ц' - 21: 3, # 'ч' - 27: 3, # 'ш' - 24: 2, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 29: { # 'ф' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 1, # 'в' - 20: 1, # 'г' - 11: 0, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 2, # 'к' - 10: 2, # 'л' - 14: 1, # 'м' - 6: 1, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 2, # 'р' - 8: 2, # 'с' - 5: 2, # 'т' - 19: 2, # 'у' - 29: 0, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 1, # 'ч' - 27: 1, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 2, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 25: { # 'х' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 3, # 'в' - 20: 0, # 'г' - 11: 1, # 'д' - 3: 2, # 'е' - 23: 0, # 'ж' - 15: 1, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 2, # 'л' - 14: 2, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 1, # 'п' - 7: 3, # 'р' - 8: 1, # 'с' - 5: 2, # 'т' - 19: 3, # 'у' - 29: 0, # 'ф' - 25: 1, # 'х' - 22: 0, # 'ц' - 21: 1, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 22: { # 'ц' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 2, # 'в' - 20: 1, # 'г' - 11: 1, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 1, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 2, # 'к' - 10: 1, # 'л' - 14: 1, # 'м' - 6: 1, # 'н' - 4: 2, # 'о' - 13: 1, # 'п' - 7: 1, # 'р' - 8: 1, # 'с' - 5: 1, # 'т' - 19: 2, # 'у' - 29: 1, # 'ф' - 25: 1, # 'х' - 22: 1, # 'ц' - 21: 1, # 'ч' - 27: 1, # 'ш' - 24: 1, # 'щ' - 17: 2, # 'ъ' - 52: 1, # 'ь' - 42: 0, # 'ю' - 16: 2, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 21: { # 'ч' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 1, # 'б' - 9: 3, # 'в' - 20: 1, # 'г' - 11: 0, # 'д' - 3: 3, # 'е' - 23: 1, # 'ж' - 15: 0, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 2, # 'л' - 14: 2, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 2, # 'р' - 8: 0, # 'с' - 5: 2, # 'т' - 19: 3, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 1, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 27: { # 'ш' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 0, # 'б' - 9: 2, # 'в' - 20: 0, # 'г' - 11: 1, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 3, # 'к' - 10: 2, # 'л' - 14: 1, # 'м' - 6: 3, # 'н' - 4: 2, # 'о' - 13: 2, # 'п' - 7: 1, # 'р' - 8: 0, # 'с' - 5: 1, # 'т' - 19: 2, # 'у' - 29: 1, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 1, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 2, # 'ъ' - 52: 1, # 'ь' - 42: 1, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 24: { # 'щ' - 63: 1, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 3, # 'а' - 18: 0, # 'б' - 9: 1, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 3, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 3, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 2, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 1, # 'р' - 8: 0, # 'с' - 5: 2, # 'т' - 19: 3, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 1, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 2, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 17: { # 'ъ' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 1, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 3, # 'г' - 11: 3, # 'д' - 3: 2, # 'е' - 23: 3, # 'ж' - 15: 3, # 'з' - 2: 1, # 'и' - 26: 2, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 3, # 'о' - 13: 3, # 'п' - 7: 3, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 1, # 'у' - 29: 1, # 'ф' - 25: 2, # 'х' - 22: 2, # 'ц' - 21: 3, # 'ч' - 27: 2, # 'ш' - 24: 3, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 2, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 52: { # 'ь' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 0, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 1, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 0, # 'и' - 26: 0, # 'й' - 12: 1, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 1, # 'н' - 4: 3, # 'о' - 13: 0, # 'п' - 7: 0, # 'р' - 8: 0, # 'с' - 5: 1, # 'т' - 19: 0, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 1, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 1, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 42: { # 'ю' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 1, # 'а' - 18: 2, # 'б' - 9: 1, # 'в' - 20: 2, # 'г' - 11: 2, # 'д' - 3: 1, # 'е' - 23: 2, # 'ж' - 15: 2, # 'з' - 2: 1, # 'и' - 26: 1, # 'й' - 12: 2, # 'к' - 10: 2, # 'л' - 14: 2, # 'м' - 6: 2, # 'н' - 4: 1, # 'о' - 13: 1, # 'п' - 7: 2, # 'р' - 8: 2, # 'с' - 5: 2, # 'т' - 19: 1, # 'у' - 29: 1, # 'ф' - 25: 1, # 'х' - 22: 2, # 'ц' - 21: 3, # 'ч' - 27: 1, # 'ш' - 24: 1, # 'щ' - 17: 1, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 16: { # 'я' - 63: 0, # 'e' - 45: 1, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 0, # 'а' - 18: 3, # 'б' - 9: 3, # 'в' - 20: 2, # 'г' - 11: 3, # 'д' - 3: 2, # 'е' - 23: 1, # 'ж' - 15: 2, # 'з' - 2: 1, # 'и' - 26: 2, # 'й' - 12: 3, # 'к' - 10: 3, # 'л' - 14: 3, # 'м' - 6: 3, # 'н' - 4: 1, # 'о' - 13: 2, # 'п' - 7: 2, # 'р' - 8: 3, # 'с' - 5: 3, # 'т' - 19: 1, # 'у' - 29: 1, # 'ф' - 25: 3, # 'х' - 22: 2, # 'ц' - 21: 1, # 'ч' - 27: 1, # 'ш' - 24: 2, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 1, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 58: { # 'є' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 0, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 0, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 0, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 0, # 'о' - 13: 0, # 'п' - 7: 0, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 0, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, - 62: { # '№' - 63: 0, # 'e' - 45: 0, # '\xad' - 31: 0, # 'А' - 32: 0, # 'Б' - 35: 0, # 'В' - 43: 0, # 'Г' - 37: 0, # 'Д' - 44: 0, # 'Е' - 55: 0, # 'Ж' - 47: 0, # 'З' - 40: 0, # 'И' - 59: 0, # 'Й' - 33: 0, # 'К' - 46: 0, # 'Л' - 38: 0, # 'М' - 36: 0, # 'Н' - 41: 0, # 'О' - 30: 0, # 'П' - 39: 0, # 'Р' - 28: 0, # 'С' - 34: 0, # 'Т' - 51: 0, # 'У' - 48: 0, # 'Ф' - 49: 0, # 'Х' - 53: 0, # 'Ц' - 50: 0, # 'Ч' - 54: 0, # 'Ш' - 57: 0, # 'Щ' - 61: 0, # 'Ъ' - 60: 0, # 'Ю' - 56: 0, # 'Я' - 1: 0, # 'а' - 18: 0, # 'б' - 9: 0, # 'в' - 20: 0, # 'г' - 11: 0, # 'д' - 3: 0, # 'е' - 23: 0, # 'ж' - 15: 0, # 'з' - 2: 0, # 'и' - 26: 0, # 'й' - 12: 0, # 'к' - 10: 0, # 'л' - 14: 0, # 'м' - 6: 0, # 'н' - 4: 0, # 'о' - 13: 0, # 'п' - 7: 0, # 'р' - 8: 0, # 'с' - 5: 0, # 'т' - 19: 0, # 'у' - 29: 0, # 'ф' - 25: 0, # 'х' - 22: 0, # 'ц' - 21: 0, # 'ч' - 27: 0, # 'ш' - 24: 0, # 'щ' - 17: 0, # 'ъ' - 52: 0, # 'ь' - 42: 0, # 'ю' - 16: 0, # 'я' - 58: 0, # 'є' - 62: 0, # '№' - }, -} - -# 255: Undefined characters that did not exist in training text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 -# 251: Control characters - -# Character Mapping Table(s): -ISO_8859_5_BULGARIAN_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 77, # 'A' - 66: 90, # 'B' - 67: 99, # 'C' - 68: 100, # 'D' - 69: 72, # 'E' - 70: 109, # 'F' - 71: 107, # 'G' - 72: 101, # 'H' - 73: 79, # 'I' - 74: 185, # 'J' - 75: 81, # 'K' - 76: 102, # 'L' - 77: 76, # 'M' - 78: 94, # 'N' - 79: 82, # 'O' - 80: 110, # 'P' - 81: 186, # 'Q' - 82: 108, # 'R' - 83: 91, # 'S' - 84: 74, # 'T' - 85: 119, # 'U' - 86: 84, # 'V' - 87: 96, # 'W' - 88: 111, # 'X' - 89: 187, # 'Y' - 90: 115, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 65, # 'a' - 98: 69, # 'b' - 99: 70, # 'c' - 100: 66, # 'd' - 101: 63, # 'e' - 102: 68, # 'f' - 103: 112, # 'g' - 104: 103, # 'h' - 105: 92, # 'i' - 106: 194, # 'j' - 107: 104, # 'k' - 108: 95, # 'l' - 109: 86, # 'm' - 110: 87, # 'n' - 111: 71, # 'o' - 112: 116, # 'p' - 113: 195, # 'q' - 114: 85, # 'r' - 115: 93, # 's' - 116: 97, # 't' - 117: 113, # 'u' - 118: 196, # 'v' - 119: 197, # 'w' - 120: 198, # 'x' - 121: 199, # 'y' - 122: 200, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 194, # '\x80' - 129: 195, # '\x81' - 130: 196, # '\x82' - 131: 197, # '\x83' - 132: 198, # '\x84' - 133: 199, # '\x85' - 134: 200, # '\x86' - 135: 201, # '\x87' - 136: 202, # '\x88' - 137: 203, # '\x89' - 138: 204, # '\x8a' - 139: 205, # '\x8b' - 140: 206, # '\x8c' - 141: 207, # '\x8d' - 142: 208, # '\x8e' - 143: 209, # '\x8f' - 144: 210, # '\x90' - 145: 211, # '\x91' - 146: 212, # '\x92' - 147: 213, # '\x93' - 148: 214, # '\x94' - 149: 215, # '\x95' - 150: 216, # '\x96' - 151: 217, # '\x97' - 152: 218, # '\x98' - 153: 219, # '\x99' - 154: 220, # '\x9a' - 155: 221, # '\x9b' - 156: 222, # '\x9c' - 157: 223, # '\x9d' - 158: 224, # '\x9e' - 159: 225, # '\x9f' - 160: 81, # '\xa0' - 161: 226, # 'Ё' - 162: 227, # 'Ђ' - 163: 228, # 'Ѓ' - 164: 229, # 'Є' - 165: 230, # 'Ѕ' - 166: 105, # 'І' - 167: 231, # 'Ї' - 168: 232, # 'Ј' - 169: 233, # 'Љ' - 170: 234, # 'Њ' - 171: 235, # 'Ћ' - 172: 236, # 'Ќ' - 173: 45, # '\xad' - 174: 237, # 'Ў' - 175: 238, # 'Џ' - 176: 31, # 'А' - 177: 32, # 'Б' - 178: 35, # 'В' - 179: 43, # 'Г' - 180: 37, # 'Д' - 181: 44, # 'Е' - 182: 55, # 'Ж' - 183: 47, # 'З' - 184: 40, # 'И' - 185: 59, # 'Й' - 186: 33, # 'К' - 187: 46, # 'Л' - 188: 38, # 'М' - 189: 36, # 'Н' - 190: 41, # 'О' - 191: 30, # 'П' - 192: 39, # 'Р' - 193: 28, # 'С' - 194: 34, # 'Т' - 195: 51, # 'У' - 196: 48, # 'Ф' - 197: 49, # 'Х' - 198: 53, # 'Ц' - 199: 50, # 'Ч' - 200: 54, # 'Ш' - 201: 57, # 'Щ' - 202: 61, # 'Ъ' - 203: 239, # 'Ы' - 204: 67, # 'Ь' - 205: 240, # 'Э' - 206: 60, # 'Ю' - 207: 56, # 'Я' - 208: 1, # 'а' - 209: 18, # 'б' - 210: 9, # 'в' - 211: 20, # 'г' - 212: 11, # 'д' - 213: 3, # 'е' - 214: 23, # 'ж' - 215: 15, # 'з' - 216: 2, # 'и' - 217: 26, # 'й' - 218: 12, # 'к' - 219: 10, # 'л' - 220: 14, # 'м' - 221: 6, # 'н' - 222: 4, # 'о' - 223: 13, # 'п' - 224: 7, # 'р' - 225: 8, # 'с' - 226: 5, # 'т' - 227: 19, # 'у' - 228: 29, # 'ф' - 229: 25, # 'х' - 230: 22, # 'ц' - 231: 21, # 'ч' - 232: 27, # 'ш' - 233: 24, # 'щ' - 234: 17, # 'ъ' - 235: 75, # 'ы' - 236: 52, # 'ь' - 237: 241, # 'э' - 238: 42, # 'ю' - 239: 16, # 'я' - 240: 62, # '№' - 241: 242, # 'ё' - 242: 243, # 'ђ' - 243: 244, # 'ѓ' - 244: 58, # 'є' - 245: 245, # 'ѕ' - 246: 98, # 'і' - 247: 246, # 'ї' - 248: 247, # 'ј' - 249: 248, # 'љ' - 250: 249, # 'њ' - 251: 250, # 'ћ' - 252: 251, # 'ќ' - 253: 91, # '§' - 254: 252, # 'ў' - 255: 253, # 'џ' -} - -ISO_8859_5_BULGARIAN_MODEL = SingleByteCharSetModel(charset_name='ISO-8859-5', - language='Bulgarian', - char_to_order_map=ISO_8859_5_BULGARIAN_CHAR_TO_ORDER, - language_model=BULGARIAN_LANG_MODEL, - typical_positive_ratio=0.969392, - keep_ascii_letters=False, - alphabet='АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯабвгдежзийклмнопрстуфхцчшщъьюя') - -WINDOWS_1251_BULGARIAN_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 77, # 'A' - 66: 90, # 'B' - 67: 99, # 'C' - 68: 100, # 'D' - 69: 72, # 'E' - 70: 109, # 'F' - 71: 107, # 'G' - 72: 101, # 'H' - 73: 79, # 'I' - 74: 185, # 'J' - 75: 81, # 'K' - 76: 102, # 'L' - 77: 76, # 'M' - 78: 94, # 'N' - 79: 82, # 'O' - 80: 110, # 'P' - 81: 186, # 'Q' - 82: 108, # 'R' - 83: 91, # 'S' - 84: 74, # 'T' - 85: 119, # 'U' - 86: 84, # 'V' - 87: 96, # 'W' - 88: 111, # 'X' - 89: 187, # 'Y' - 90: 115, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 65, # 'a' - 98: 69, # 'b' - 99: 70, # 'c' - 100: 66, # 'd' - 101: 63, # 'e' - 102: 68, # 'f' - 103: 112, # 'g' - 104: 103, # 'h' - 105: 92, # 'i' - 106: 194, # 'j' - 107: 104, # 'k' - 108: 95, # 'l' - 109: 86, # 'm' - 110: 87, # 'n' - 111: 71, # 'o' - 112: 116, # 'p' - 113: 195, # 'q' - 114: 85, # 'r' - 115: 93, # 's' - 116: 97, # 't' - 117: 113, # 'u' - 118: 196, # 'v' - 119: 197, # 'w' - 120: 198, # 'x' - 121: 199, # 'y' - 122: 200, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 206, # 'Ђ' - 129: 207, # 'Ѓ' - 130: 208, # '‚' - 131: 209, # 'ѓ' - 132: 210, # '„' - 133: 211, # '…' - 134: 212, # '†' - 135: 213, # '‡' - 136: 120, # '€' - 137: 214, # '‰' - 138: 215, # 'Љ' - 139: 216, # '‹' - 140: 217, # 'Њ' - 141: 218, # 'Ќ' - 142: 219, # 'Ћ' - 143: 220, # 'Џ' - 144: 221, # 'ђ' - 145: 78, # '‘' - 146: 64, # '’' - 147: 83, # '“' - 148: 121, # '”' - 149: 98, # '•' - 150: 117, # '–' - 151: 105, # '—' - 152: 222, # None - 153: 223, # '™' - 154: 224, # 'љ' - 155: 225, # '›' - 156: 226, # 'њ' - 157: 227, # 'ќ' - 158: 228, # 'ћ' - 159: 229, # 'џ' - 160: 88, # '\xa0' - 161: 230, # 'Ў' - 162: 231, # 'ў' - 163: 232, # 'Ј' - 164: 233, # '¤' - 165: 122, # 'Ґ' - 166: 89, # '¦' - 167: 106, # '§' - 168: 234, # 'Ё' - 169: 235, # '©' - 170: 236, # 'Є' - 171: 237, # '«' - 172: 238, # '¬' - 173: 45, # '\xad' - 174: 239, # '®' - 175: 240, # 'Ї' - 176: 73, # '°' - 177: 80, # '±' - 178: 118, # 'І' - 179: 114, # 'і' - 180: 241, # 'ґ' - 181: 242, # 'µ' - 182: 243, # '¶' - 183: 244, # '·' - 184: 245, # 'ё' - 185: 62, # '№' - 186: 58, # 'є' - 187: 246, # '»' - 188: 247, # 'ј' - 189: 248, # 'Ѕ' - 190: 249, # 'ѕ' - 191: 250, # 'ї' - 192: 31, # 'А' - 193: 32, # 'Б' - 194: 35, # 'В' - 195: 43, # 'Г' - 196: 37, # 'Д' - 197: 44, # 'Е' - 198: 55, # 'Ж' - 199: 47, # 'З' - 200: 40, # 'И' - 201: 59, # 'Й' - 202: 33, # 'К' - 203: 46, # 'Л' - 204: 38, # 'М' - 205: 36, # 'Н' - 206: 41, # 'О' - 207: 30, # 'П' - 208: 39, # 'Р' - 209: 28, # 'С' - 210: 34, # 'Т' - 211: 51, # 'У' - 212: 48, # 'Ф' - 213: 49, # 'Х' - 214: 53, # 'Ц' - 215: 50, # 'Ч' - 216: 54, # 'Ш' - 217: 57, # 'Щ' - 218: 61, # 'Ъ' - 219: 251, # 'Ы' - 220: 67, # 'Ь' - 221: 252, # 'Э' - 222: 60, # 'Ю' - 223: 56, # 'Я' - 224: 1, # 'а' - 225: 18, # 'б' - 226: 9, # 'в' - 227: 20, # 'г' - 228: 11, # 'д' - 229: 3, # 'е' - 230: 23, # 'ж' - 231: 15, # 'з' - 232: 2, # 'и' - 233: 26, # 'й' - 234: 12, # 'к' - 235: 10, # 'л' - 236: 14, # 'м' - 237: 6, # 'н' - 238: 4, # 'о' - 239: 13, # 'п' - 240: 7, # 'р' - 241: 8, # 'с' - 242: 5, # 'т' - 243: 19, # 'у' - 244: 29, # 'ф' - 245: 25, # 'х' - 246: 22, # 'ц' - 247: 21, # 'ч' - 248: 27, # 'ш' - 249: 24, # 'щ' - 250: 17, # 'ъ' - 251: 75, # 'ы' - 252: 52, # 'ь' - 253: 253, # 'э' - 254: 42, # 'ю' - 255: 16, # 'я' -} - -WINDOWS_1251_BULGARIAN_MODEL = SingleByteCharSetModel(charset_name='windows-1251', - language='Bulgarian', - char_to_order_map=WINDOWS_1251_BULGARIAN_CHAR_TO_ORDER, - language_model=BULGARIAN_LANG_MODEL, - typical_positive_ratio=0.969392, - keep_ascii_letters=False, - alphabet='АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯабвгдежзийклмнопрстуфхцчшщъьюя') - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langgreekmodel.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langgreekmodel.py deleted file mode 100644 index e120745..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langgreekmodel.py +++ /dev/null @@ -1,4397 +0,0 @@ -# -*- coding: utf-8 -*- - -from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel - - -# 3: Positive -# 2: Likely -# 1: Unlikely -# 0: Negative - -GREEK_LANG_MODEL = { - 60: { # 'e' - 60: 2, # 'e' - 55: 1, # 'o' - 58: 2, # 't' - 36: 1, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 1, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 55: { # 'o' - 60: 0, # 'e' - 55: 2, # 'o' - 58: 2, # 't' - 36: 1, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 1, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 1, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 58: { # 't' - 60: 2, # 'e' - 55: 1, # 'o' - 58: 1, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 2, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 1, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 36: { # '·' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 61: { # 'Ά' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 1, # 'γ' - 21: 2, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 1, # 'π' - 8: 2, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 46: { # 'Έ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 2, # 'β' - 20: 2, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 2, # 'κ' - 16: 2, # 'λ' - 10: 0, # 'μ' - 6: 3, # 'ν' - 30: 2, # 'ξ' - 4: 0, # 'ο' - 9: 2, # 'π' - 8: 2, # 'ρ' - 14: 0, # 'ς' - 7: 1, # 'σ' - 2: 2, # 'τ' - 12: 0, # 'υ' - 28: 2, # 'φ' - 23: 3, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 54: { # 'Ό' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 2, # 'μ' - 6: 2, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 2, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 2, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 2, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 31: { # 'Α' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 2, # 'Β' - 43: 2, # 'Γ' - 41: 1, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 2, # 'Θ' - 47: 2, # 'Ι' - 44: 2, # 'Κ' - 53: 2, # 'Λ' - 38: 2, # 'Μ' - 49: 2, # 'Ν' - 59: 1, # 'Ξ' - 39: 0, # 'Ο' - 35: 2, # 'Π' - 48: 2, # 'Ρ' - 37: 2, # 'Σ' - 33: 2, # 'Τ' - 45: 2, # 'Υ' - 56: 2, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 2, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 1, # 'θ' - 5: 0, # 'ι' - 11: 2, # 'κ' - 16: 3, # 'λ' - 10: 2, # 'μ' - 6: 3, # 'ν' - 30: 2, # 'ξ' - 4: 0, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 2, # 'ς' - 7: 2, # 'σ' - 2: 0, # 'τ' - 12: 3, # 'υ' - 28: 2, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 2, # 'ύ' - 27: 0, # 'ώ' - }, - 51: { # 'Β' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 1, # 'Ε' - 40: 1, # 'Η' - 52: 0, # 'Θ' - 47: 1, # 'Ι' - 44: 0, # 'Κ' - 53: 1, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 2, # 'ά' - 18: 2, # 'έ' - 22: 2, # 'ή' - 15: 0, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 2, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 2, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 0, # 'π' - 8: 2, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 43: { # 'Γ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 1, # 'Α' - 51: 0, # 'Β' - 43: 2, # 'Γ' - 41: 0, # 'Δ' - 34: 2, # 'Ε' - 40: 1, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 1, # 'Κ' - 53: 1, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 1, # 'Ο' - 35: 0, # 'Π' - 48: 2, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 2, # 'Υ' - 56: 0, # 'Φ' - 50: 1, # 'Χ' - 57: 2, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 2, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 2, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 0, # 'μ' - 6: 2, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 0, # 'π' - 8: 2, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 41: { # 'Δ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 2, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 2, # 'ή' - 15: 2, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 2, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 0, # 'π' - 8: 2, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 2, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 2, # 'ω' - 19: 1, # 'ό' - 26: 2, # 'ύ' - 27: 2, # 'ώ' - }, - 34: { # 'Ε' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 0, # 'Β' - 43: 2, # 'Γ' - 41: 2, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 2, # 'Κ' - 53: 2, # 'Λ' - 38: 2, # 'Μ' - 49: 2, # 'Ν' - 59: 1, # 'Ξ' - 39: 0, # 'Ο' - 35: 2, # 'Π' - 48: 2, # 'Ρ' - 37: 2, # 'Σ' - 33: 2, # 'Τ' - 45: 2, # 'Υ' - 56: 0, # 'Φ' - 50: 2, # 'Χ' - 57: 2, # 'Ω' - 17: 3, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 3, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 3, # 'γ' - 21: 2, # 'δ' - 3: 1, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 1, # 'θ' - 5: 2, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 2, # 'μ' - 6: 3, # 'ν' - 30: 2, # 'ξ' - 4: 0, # 'ο' - 9: 3, # 'π' - 8: 2, # 'ρ' - 14: 0, # 'ς' - 7: 2, # 'σ' - 2: 2, # 'τ' - 12: 2, # 'υ' - 28: 2, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 1, # 'ύ' - 27: 0, # 'ώ' - }, - 40: { # 'Η' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 1, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 2, # 'Θ' - 47: 0, # 'Ι' - 44: 2, # 'Κ' - 53: 0, # 'Λ' - 38: 2, # 'Μ' - 49: 2, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 2, # 'Π' - 48: 2, # 'Ρ' - 37: 2, # 'Σ' - 33: 2, # 'Τ' - 45: 1, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 0, # 'μ' - 6: 1, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 1, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 52: { # 'Θ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 1, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 1, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 2, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 2, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 2, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 2, # 'ύ' - 27: 0, # 'ώ' - }, - 47: { # 'Ι' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 1, # 'Β' - 43: 1, # 'Γ' - 41: 2, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 2, # 'Κ' - 53: 2, # 'Λ' - 38: 2, # 'Μ' - 49: 2, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 2, # 'Ρ' - 37: 2, # 'Σ' - 33: 2, # 'Τ' - 45: 0, # 'Υ' - 56: 2, # 'Φ' - 50: 0, # 'Χ' - 57: 2, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 2, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 1, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 2, # 'σ' - 2: 1, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 1, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 44: { # 'Κ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 1, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 1, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 2, # 'Ρ' - 37: 0, # 'Σ' - 33: 1, # 'Τ' - 45: 2, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 1, # 'Ω' - 17: 3, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 2, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 2, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 0, # 'π' - 8: 2, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 2, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 2, # 'ό' - 26: 2, # 'ύ' - 27: 2, # 'ώ' - }, - 53: { # 'Λ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 0, # 'Κ' - 53: 2, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 2, # 'Σ' - 33: 0, # 'Τ' - 45: 2, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 2, # 'Ω' - 17: 2, # 'ά' - 18: 2, # 'έ' - 22: 0, # 'ή' - 15: 2, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 2, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 1, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 2, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 2, # 'ό' - 26: 2, # 'ύ' - 27: 0, # 'ώ' - }, - 38: { # 'Μ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 2, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 2, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 2, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 2, # 'ά' - 18: 2, # 'έ' - 22: 2, # 'ή' - 15: 2, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 2, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 3, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 2, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 2, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 49: { # 'Ν' - 60: 2, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 2, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 2, # 'Ω' - 17: 0, # 'ά' - 18: 2, # 'έ' - 22: 0, # 'ή' - 15: 2, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 1, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 1, # 'ω' - 19: 2, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 59: { # 'Ξ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 1, # 'Ε' - 40: 1, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 1, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 2, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 2, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 39: { # 'Ο' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 1, # 'Β' - 43: 2, # 'Γ' - 41: 2, # 'Δ' - 34: 2, # 'Ε' - 40: 1, # 'Η' - 52: 2, # 'Θ' - 47: 2, # 'Ι' - 44: 2, # 'Κ' - 53: 2, # 'Λ' - 38: 2, # 'Μ' - 49: 2, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 2, # 'Π' - 48: 2, # 'Ρ' - 37: 2, # 'Σ' - 33: 2, # 'Τ' - 45: 2, # 'Υ' - 56: 2, # 'Φ' - 50: 2, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 2, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 2, # 'κ' - 16: 2, # 'λ' - 10: 2, # 'μ' - 6: 2, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 2, # 'π' - 8: 2, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 2, # 'τ' - 12: 2, # 'υ' - 28: 1, # 'φ' - 23: 1, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 2, # 'ύ' - 27: 0, # 'ώ' - }, - 35: { # 'Π' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 2, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 0, # 'Κ' - 53: 2, # 'Λ' - 38: 1, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 2, # 'Ρ' - 37: 0, # 'Σ' - 33: 1, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 1, # 'Χ' - 57: 2, # 'Ω' - 17: 2, # 'ά' - 18: 1, # 'έ' - 22: 1, # 'ή' - 15: 2, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 2, # 'η' - 25: 0, # 'θ' - 5: 2, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 0, # 'μ' - 6: 2, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 3, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 2, # 'υ' - 28: 0, # 'φ' - 23: 2, # 'χ' - 42: 0, # 'ψ' - 24: 2, # 'ω' - 19: 2, # 'ό' - 26: 0, # 'ύ' - 27: 3, # 'ώ' - }, - 48: { # 'Ρ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 0, # 'Β' - 43: 1, # 'Γ' - 41: 1, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 2, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 2, # 'Ρ' - 37: 0, # 'Σ' - 33: 1, # 'Τ' - 45: 1, # 'Υ' - 56: 0, # 'Φ' - 50: 1, # 'Χ' - 57: 1, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 2, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 1, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 3, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 2, # 'ω' - 19: 0, # 'ό' - 26: 2, # 'ύ' - 27: 0, # 'ώ' - }, - 37: { # 'Σ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 1, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 2, # 'Κ' - 53: 0, # 'Λ' - 38: 2, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 2, # 'Σ' - 33: 2, # 'Τ' - 45: 2, # 'Υ' - 56: 0, # 'Φ' - 50: 2, # 'Χ' - 57: 2, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 2, # 'ή' - 15: 2, # 'ί' - 1: 2, # 'α' - 29: 2, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 0, # 'θ' - 5: 2, # 'ι' - 11: 2, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 2, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 0, # 'φ' - 23: 2, # 'χ' - 42: 0, # 'ψ' - 24: 2, # 'ω' - 19: 0, # 'ό' - 26: 2, # 'ύ' - 27: 2, # 'ώ' - }, - 33: { # 'Τ' - 60: 0, # 'e' - 55: 1, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 2, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 2, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 2, # 'Ρ' - 37: 0, # 'Σ' - 33: 1, # 'Τ' - 45: 1, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 2, # 'Ω' - 17: 2, # 'ά' - 18: 2, # 'έ' - 22: 0, # 'ή' - 15: 2, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 2, # 'ε' - 32: 0, # 'ζ' - 13: 2, # 'η' - 25: 0, # 'θ' - 5: 2, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 2, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 2, # 'ρ' - 14: 0, # 'ς' - 7: 2, # 'σ' - 2: 0, # 'τ' - 12: 2, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 2, # 'ό' - 26: 2, # 'ύ' - 27: 3, # 'ώ' - }, - 45: { # 'Υ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 2, # 'Γ' - 41: 0, # 'Δ' - 34: 1, # 'Ε' - 40: 2, # 'Η' - 52: 2, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 1, # 'Λ' - 38: 2, # 'Μ' - 49: 2, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 2, # 'Π' - 48: 1, # 'Ρ' - 37: 2, # 'Σ' - 33: 2, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 1, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 3, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 56: { # 'Φ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 1, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 1, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 2, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 2, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 2, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 2, # 'τ' - 12: 2, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 1, # 'ύ' - 27: 1, # 'ώ' - }, - 50: { # 'Χ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 1, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 2, # 'Ε' - 40: 2, # 'Η' - 52: 0, # 'Θ' - 47: 2, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 1, # 'Ν' - 59: 0, # 'Ξ' - 39: 1, # 'Ο' - 35: 0, # 'Π' - 48: 2, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 1, # 'Χ' - 57: 1, # 'Ω' - 17: 2, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 2, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 0, # 'π' - 8: 3, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 2, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 2, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 57: { # 'Ω' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 1, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 1, # 'Λ' - 38: 0, # 'Μ' - 49: 2, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 2, # 'Ρ' - 37: 2, # 'Σ' - 33: 2, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 0, # 'π' - 8: 2, # 'ρ' - 14: 2, # 'ς' - 7: 2, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 1, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 17: { # 'ά' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 2, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 3, # 'β' - 20: 3, # 'γ' - 21: 3, # 'δ' - 3: 3, # 'ε' - 32: 3, # 'ζ' - 13: 0, # 'η' - 25: 3, # 'θ' - 5: 2, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 3, # 'ξ' - 4: 0, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 3, # 'φ' - 23: 3, # 'χ' - 42: 3, # 'ψ' - 24: 2, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 18: { # 'έ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 3, # 'α' - 29: 2, # 'β' - 20: 3, # 'γ' - 21: 2, # 'δ' - 3: 3, # 'ε' - 32: 2, # 'ζ' - 13: 0, # 'η' - 25: 3, # 'θ' - 5: 0, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 3, # 'ξ' - 4: 3, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 3, # 'φ' - 23: 3, # 'χ' - 42: 3, # 'ψ' - 24: 2, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 22: { # 'ή' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 1, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 3, # 'γ' - 21: 3, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 3, # 'θ' - 5: 0, # 'ι' - 11: 3, # 'κ' - 16: 2, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 2, # 'ξ' - 4: 0, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 2, # 'φ' - 23: 3, # 'χ' - 42: 2, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 15: { # 'ί' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 3, # 'α' - 29: 2, # 'β' - 20: 3, # 'γ' - 21: 3, # 'δ' - 3: 3, # 'ε' - 32: 3, # 'ζ' - 13: 3, # 'η' - 25: 3, # 'θ' - 5: 0, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 3, # 'ξ' - 4: 3, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 1, # 'φ' - 23: 3, # 'χ' - 42: 2, # 'ψ' - 24: 3, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 1: { # 'α' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 2, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 2, # 'έ' - 22: 0, # 'ή' - 15: 3, # 'ί' - 1: 0, # 'α' - 29: 3, # 'β' - 20: 3, # 'γ' - 21: 3, # 'δ' - 3: 2, # 'ε' - 32: 3, # 'ζ' - 13: 1, # 'η' - 25: 3, # 'θ' - 5: 3, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 3, # 'ξ' - 4: 2, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 3, # 'φ' - 23: 3, # 'χ' - 42: 2, # 'ψ' - 24: 0, # 'ω' - 19: 2, # 'ό' - 26: 2, # 'ύ' - 27: 0, # 'ώ' - }, - 29: { # 'β' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 2, # 'έ' - 22: 3, # 'ή' - 15: 2, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 2, # 'γ' - 21: 2, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 2, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 3, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 3, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 2, # 'ω' - 19: 2, # 'ό' - 26: 2, # 'ύ' - 27: 2, # 'ώ' - }, - 20: { # 'γ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 3, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 3, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 3, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 2, # 'υ' - 28: 0, # 'φ' - 23: 3, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 2, # 'ύ' - 27: 3, # 'ώ' - }, - 21: { # 'δ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 2, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 3, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 3, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 3, # 'ύ' - 27: 3, # 'ώ' - }, - 3: { # 'ε' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 2, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 3, # 'ί' - 1: 2, # 'α' - 29: 3, # 'β' - 20: 3, # 'γ' - 21: 3, # 'δ' - 3: 2, # 'ε' - 32: 2, # 'ζ' - 13: 0, # 'η' - 25: 3, # 'θ' - 5: 3, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 3, # 'ξ' - 4: 2, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 3, # 'φ' - 23: 3, # 'χ' - 42: 2, # 'ψ' - 24: 3, # 'ω' - 19: 2, # 'ό' - 26: 3, # 'ύ' - 27: 2, # 'ώ' - }, - 32: { # 'ζ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 2, # 'ά' - 18: 2, # 'έ' - 22: 2, # 'ή' - 15: 2, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 0, # 'θ' - 5: 2, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 1, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 2, # 'ό' - 26: 0, # 'ύ' - 27: 2, # 'ώ' - }, - 13: { # 'η' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 2, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 3, # 'γ' - 21: 2, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 3, # 'θ' - 5: 0, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 2, # 'ξ' - 4: 0, # 'ο' - 9: 2, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 2, # 'φ' - 23: 3, # 'χ' - 42: 2, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 25: { # 'θ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 2, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 2, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 1, # 'λ' - 10: 3, # 'μ' - 6: 2, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 3, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 3, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 3, # 'ύ' - 27: 3, # 'ώ' - }, - 5: { # 'ι' - 60: 0, # 'e' - 55: 1, # 'o' - 58: 0, # 't' - 36: 2, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 1, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 0, # 'ί' - 1: 3, # 'α' - 29: 3, # 'β' - 20: 3, # 'γ' - 21: 3, # 'δ' - 3: 3, # 'ε' - 32: 2, # 'ζ' - 13: 3, # 'η' - 25: 3, # 'θ' - 5: 0, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 3, # 'ξ' - 4: 3, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 2, # 'φ' - 23: 3, # 'χ' - 42: 2, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 0, # 'ύ' - 27: 3, # 'ώ' - }, - 11: { # 'κ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 3, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 2, # 'θ' - 5: 3, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 2, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 2, # 'π' - 8: 3, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 2, # 'φ' - 23: 2, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 3, # 'ύ' - 27: 3, # 'ώ' - }, - 16: { # 'λ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 1, # 'β' - 20: 2, # 'γ' - 21: 1, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 2, # 'θ' - 5: 3, # 'ι' - 11: 2, # 'κ' - 16: 3, # 'λ' - 10: 2, # 'μ' - 6: 2, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 3, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 2, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 3, # 'ύ' - 27: 3, # 'ώ' - }, - 10: { # 'μ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 1, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 3, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 3, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 2, # 'υ' - 28: 3, # 'φ' - 23: 0, # 'χ' - 42: 2, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 2, # 'ύ' - 27: 2, # 'ώ' - }, - 6: { # 'ν' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 2, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 3, # 'δ' - 3: 3, # 'ε' - 32: 2, # 'ζ' - 13: 3, # 'η' - 25: 3, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 1, # 'λ' - 10: 0, # 'μ' - 6: 2, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 3, # 'ύ' - 27: 3, # 'ώ' - }, - 30: { # 'ξ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 2, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 2, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 0, # 'θ' - 5: 2, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 3, # 'τ' - 12: 2, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 2, # 'ό' - 26: 3, # 'ύ' - 27: 1, # 'ώ' - }, - 4: { # 'ο' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 2, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 2, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 2, # 'α' - 29: 3, # 'β' - 20: 3, # 'γ' - 21: 3, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 3, # 'θ' - 5: 3, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 2, # 'ξ' - 4: 2, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 3, # 'φ' - 23: 3, # 'χ' - 42: 2, # 'ψ' - 24: 2, # 'ω' - 19: 1, # 'ό' - 26: 3, # 'ύ' - 27: 2, # 'ώ' - }, - 9: { # 'π' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 3, # 'λ' - 10: 0, # 'μ' - 6: 2, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 3, # 'ρ' - 14: 2, # 'ς' - 7: 0, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 0, # 'φ' - 23: 2, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 2, # 'ύ' - 27: 3, # 'ώ' - }, - 8: { # 'ρ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 2, # 'β' - 20: 3, # 'γ' - 21: 2, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 3, # 'θ' - 5: 3, # 'ι' - 11: 3, # 'κ' - 16: 1, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 2, # 'ξ' - 4: 3, # 'ο' - 9: 2, # 'π' - 8: 2, # 'ρ' - 14: 0, # 'ς' - 7: 2, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 3, # 'φ' - 23: 3, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 3, # 'ύ' - 27: 3, # 'ώ' - }, - 14: { # 'ς' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 2, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 0, # 'θ' - 5: 0, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 0, # 'τ' - 12: 0, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 7: { # 'σ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 2, # 'ά' - 18: 2, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 3, # 'β' - 20: 0, # 'γ' - 21: 2, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 3, # 'θ' - 5: 3, # 'ι' - 11: 3, # 'κ' - 16: 2, # 'λ' - 10: 3, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 3, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 3, # 'φ' - 23: 3, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 3, # 'ύ' - 27: 2, # 'ώ' - }, - 2: { # 'τ' - 60: 0, # 'e' - 55: 2, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 2, # 'ζ' - 13: 3, # 'η' - 25: 0, # 'θ' - 5: 3, # 'ι' - 11: 2, # 'κ' - 16: 2, # 'λ' - 10: 3, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 3, # 'ρ' - 14: 0, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 2, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 3, # 'ύ' - 27: 3, # 'ώ' - }, - 12: { # 'υ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 2, # 'ά' - 18: 2, # 'έ' - 22: 3, # 'ή' - 15: 2, # 'ί' - 1: 3, # 'α' - 29: 2, # 'β' - 20: 3, # 'γ' - 21: 2, # 'δ' - 3: 2, # 'ε' - 32: 2, # 'ζ' - 13: 2, # 'η' - 25: 3, # 'θ' - 5: 2, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 3, # 'ξ' - 4: 3, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 2, # 'φ' - 23: 3, # 'χ' - 42: 2, # 'ψ' - 24: 2, # 'ω' - 19: 2, # 'ό' - 26: 0, # 'ύ' - 27: 2, # 'ώ' - }, - 28: { # 'φ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 3, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 2, # 'η' - 25: 2, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 0, # 'μ' - 6: 1, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 3, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 1, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 2, # 'ύ' - 27: 2, # 'ώ' - }, - 23: { # 'χ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 3, # 'ά' - 18: 2, # 'έ' - 22: 3, # 'ή' - 15: 3, # 'ί' - 1: 3, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 2, # 'η' - 25: 2, # 'θ' - 5: 3, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 2, # 'μ' - 6: 3, # 'ν' - 30: 0, # 'ξ' - 4: 3, # 'ο' - 9: 0, # 'π' - 8: 3, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 3, # 'τ' - 12: 3, # 'υ' - 28: 0, # 'φ' - 23: 2, # 'χ' - 42: 0, # 'ψ' - 24: 3, # 'ω' - 19: 3, # 'ό' - 26: 3, # 'ύ' - 27: 3, # 'ώ' - }, - 42: { # 'ψ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 2, # 'ά' - 18: 2, # 'έ' - 22: 1, # 'ή' - 15: 2, # 'ί' - 1: 2, # 'α' - 29: 0, # 'β' - 20: 0, # 'γ' - 21: 0, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 3, # 'η' - 25: 0, # 'θ' - 5: 2, # 'ι' - 11: 0, # 'κ' - 16: 0, # 'λ' - 10: 0, # 'μ' - 6: 0, # 'ν' - 30: 0, # 'ξ' - 4: 2, # 'ο' - 9: 0, # 'π' - 8: 0, # 'ρ' - 14: 0, # 'ς' - 7: 0, # 'σ' - 2: 2, # 'τ' - 12: 1, # 'υ' - 28: 0, # 'φ' - 23: 0, # 'χ' - 42: 0, # 'ψ' - 24: 2, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 24: { # 'ω' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 1, # 'ά' - 18: 0, # 'έ' - 22: 2, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 2, # 'β' - 20: 3, # 'γ' - 21: 2, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 0, # 'η' - 25: 3, # 'θ' - 5: 2, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 0, # 'ξ' - 4: 0, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 2, # 'φ' - 23: 2, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 19: { # 'ό' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 3, # 'β' - 20: 3, # 'γ' - 21: 3, # 'δ' - 3: 1, # 'ε' - 32: 2, # 'ζ' - 13: 2, # 'η' - 25: 2, # 'θ' - 5: 2, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 1, # 'ξ' - 4: 2, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 2, # 'φ' - 23: 3, # 'χ' - 42: 2, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 26: { # 'ύ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 2, # 'α' - 29: 2, # 'β' - 20: 2, # 'γ' - 21: 1, # 'δ' - 3: 3, # 'ε' - 32: 0, # 'ζ' - 13: 2, # 'η' - 25: 3, # 'θ' - 5: 0, # 'ι' - 11: 3, # 'κ' - 16: 3, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 2, # 'ξ' - 4: 3, # 'ο' - 9: 3, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 2, # 'φ' - 23: 2, # 'χ' - 42: 2, # 'ψ' - 24: 2, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, - 27: { # 'ώ' - 60: 0, # 'e' - 55: 0, # 'o' - 58: 0, # 't' - 36: 0, # '·' - 61: 0, # 'Ά' - 46: 0, # 'Έ' - 54: 0, # 'Ό' - 31: 0, # 'Α' - 51: 0, # 'Β' - 43: 0, # 'Γ' - 41: 0, # 'Δ' - 34: 0, # 'Ε' - 40: 0, # 'Η' - 52: 0, # 'Θ' - 47: 0, # 'Ι' - 44: 0, # 'Κ' - 53: 0, # 'Λ' - 38: 0, # 'Μ' - 49: 0, # 'Ν' - 59: 0, # 'Ξ' - 39: 0, # 'Ο' - 35: 0, # 'Π' - 48: 0, # 'Ρ' - 37: 0, # 'Σ' - 33: 0, # 'Τ' - 45: 0, # 'Υ' - 56: 0, # 'Φ' - 50: 0, # 'Χ' - 57: 0, # 'Ω' - 17: 0, # 'ά' - 18: 0, # 'έ' - 22: 0, # 'ή' - 15: 0, # 'ί' - 1: 0, # 'α' - 29: 1, # 'β' - 20: 0, # 'γ' - 21: 3, # 'δ' - 3: 0, # 'ε' - 32: 0, # 'ζ' - 13: 1, # 'η' - 25: 2, # 'θ' - 5: 2, # 'ι' - 11: 0, # 'κ' - 16: 2, # 'λ' - 10: 3, # 'μ' - 6: 3, # 'ν' - 30: 1, # 'ξ' - 4: 0, # 'ο' - 9: 2, # 'π' - 8: 3, # 'ρ' - 14: 3, # 'ς' - 7: 3, # 'σ' - 2: 3, # 'τ' - 12: 0, # 'υ' - 28: 1, # 'φ' - 23: 1, # 'χ' - 42: 0, # 'ψ' - 24: 0, # 'ω' - 19: 0, # 'ό' - 26: 0, # 'ύ' - 27: 0, # 'ώ' - }, -} - -# 255: Undefined characters that did not exist in training text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 -# 251: Control characters - -# Character Mapping Table(s): -WINDOWS_1253_GREEK_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 82, # 'A' - 66: 100, # 'B' - 67: 104, # 'C' - 68: 94, # 'D' - 69: 98, # 'E' - 70: 101, # 'F' - 71: 116, # 'G' - 72: 102, # 'H' - 73: 111, # 'I' - 74: 187, # 'J' - 75: 117, # 'K' - 76: 92, # 'L' - 77: 88, # 'M' - 78: 113, # 'N' - 79: 85, # 'O' - 80: 79, # 'P' - 81: 118, # 'Q' - 82: 105, # 'R' - 83: 83, # 'S' - 84: 67, # 'T' - 85: 114, # 'U' - 86: 119, # 'V' - 87: 95, # 'W' - 88: 99, # 'X' - 89: 109, # 'Y' - 90: 188, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 72, # 'a' - 98: 70, # 'b' - 99: 80, # 'c' - 100: 81, # 'd' - 101: 60, # 'e' - 102: 96, # 'f' - 103: 93, # 'g' - 104: 89, # 'h' - 105: 68, # 'i' - 106: 120, # 'j' - 107: 97, # 'k' - 108: 77, # 'l' - 109: 86, # 'm' - 110: 69, # 'n' - 111: 55, # 'o' - 112: 78, # 'p' - 113: 115, # 'q' - 114: 65, # 'r' - 115: 66, # 's' - 116: 58, # 't' - 117: 76, # 'u' - 118: 106, # 'v' - 119: 103, # 'w' - 120: 87, # 'x' - 121: 107, # 'y' - 122: 112, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 255, # '€' - 129: 255, # None - 130: 255, # '‚' - 131: 255, # 'ƒ' - 132: 255, # '„' - 133: 255, # '…' - 134: 255, # '†' - 135: 255, # '‡' - 136: 255, # None - 137: 255, # '‰' - 138: 255, # None - 139: 255, # '‹' - 140: 255, # None - 141: 255, # None - 142: 255, # None - 143: 255, # None - 144: 255, # None - 145: 255, # '‘' - 146: 255, # '’' - 147: 255, # '“' - 148: 255, # '”' - 149: 255, # '•' - 150: 255, # '–' - 151: 255, # '—' - 152: 255, # None - 153: 255, # '™' - 154: 255, # None - 155: 255, # '›' - 156: 255, # None - 157: 255, # None - 158: 255, # None - 159: 255, # None - 160: 253, # '\xa0' - 161: 233, # '΅' - 162: 61, # 'Ά' - 163: 253, # '£' - 164: 253, # '¤' - 165: 253, # '¥' - 166: 253, # '¦' - 167: 253, # '§' - 168: 253, # '¨' - 169: 253, # '©' - 170: 253, # None - 171: 253, # '«' - 172: 253, # '¬' - 173: 74, # '\xad' - 174: 253, # '®' - 175: 253, # '―' - 176: 253, # '°' - 177: 253, # '±' - 178: 253, # '²' - 179: 253, # '³' - 180: 247, # '΄' - 181: 253, # 'µ' - 182: 253, # '¶' - 183: 36, # '·' - 184: 46, # 'Έ' - 185: 71, # 'Ή' - 186: 73, # 'Ί' - 187: 253, # '»' - 188: 54, # 'Ό' - 189: 253, # '½' - 190: 108, # 'Ύ' - 191: 123, # 'Ώ' - 192: 110, # 'ΐ' - 193: 31, # 'Α' - 194: 51, # 'Β' - 195: 43, # 'Γ' - 196: 41, # 'Δ' - 197: 34, # 'Ε' - 198: 91, # 'Ζ' - 199: 40, # 'Η' - 200: 52, # 'Θ' - 201: 47, # 'Ι' - 202: 44, # 'Κ' - 203: 53, # 'Λ' - 204: 38, # 'Μ' - 205: 49, # 'Ν' - 206: 59, # 'Ξ' - 207: 39, # 'Ο' - 208: 35, # 'Π' - 209: 48, # 'Ρ' - 210: 250, # None - 211: 37, # 'Σ' - 212: 33, # 'Τ' - 213: 45, # 'Υ' - 214: 56, # 'Φ' - 215: 50, # 'Χ' - 216: 84, # 'Ψ' - 217: 57, # 'Ω' - 218: 120, # 'Ϊ' - 219: 121, # 'Ϋ' - 220: 17, # 'ά' - 221: 18, # 'έ' - 222: 22, # 'ή' - 223: 15, # 'ί' - 224: 124, # 'ΰ' - 225: 1, # 'α' - 226: 29, # 'β' - 227: 20, # 'γ' - 228: 21, # 'δ' - 229: 3, # 'ε' - 230: 32, # 'ζ' - 231: 13, # 'η' - 232: 25, # 'θ' - 233: 5, # 'ι' - 234: 11, # 'κ' - 235: 16, # 'λ' - 236: 10, # 'μ' - 237: 6, # 'ν' - 238: 30, # 'ξ' - 239: 4, # 'ο' - 240: 9, # 'π' - 241: 8, # 'ρ' - 242: 14, # 'ς' - 243: 7, # 'σ' - 244: 2, # 'τ' - 245: 12, # 'υ' - 246: 28, # 'φ' - 247: 23, # 'χ' - 248: 42, # 'ψ' - 249: 24, # 'ω' - 250: 64, # 'ϊ' - 251: 75, # 'ϋ' - 252: 19, # 'ό' - 253: 26, # 'ύ' - 254: 27, # 'ώ' - 255: 253, # None -} - -WINDOWS_1253_GREEK_MODEL = SingleByteCharSetModel(charset_name='windows-1253', - language='Greek', - char_to_order_map=WINDOWS_1253_GREEK_CHAR_TO_ORDER, - language_model=GREEK_LANG_MODEL, - typical_positive_ratio=0.982851, - keep_ascii_letters=False, - alphabet='ΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩάέήίαβγδεζηθικλμνξοπρςστυφχψωόύώ') - -ISO_8859_7_GREEK_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 82, # 'A' - 66: 100, # 'B' - 67: 104, # 'C' - 68: 94, # 'D' - 69: 98, # 'E' - 70: 101, # 'F' - 71: 116, # 'G' - 72: 102, # 'H' - 73: 111, # 'I' - 74: 187, # 'J' - 75: 117, # 'K' - 76: 92, # 'L' - 77: 88, # 'M' - 78: 113, # 'N' - 79: 85, # 'O' - 80: 79, # 'P' - 81: 118, # 'Q' - 82: 105, # 'R' - 83: 83, # 'S' - 84: 67, # 'T' - 85: 114, # 'U' - 86: 119, # 'V' - 87: 95, # 'W' - 88: 99, # 'X' - 89: 109, # 'Y' - 90: 188, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 72, # 'a' - 98: 70, # 'b' - 99: 80, # 'c' - 100: 81, # 'd' - 101: 60, # 'e' - 102: 96, # 'f' - 103: 93, # 'g' - 104: 89, # 'h' - 105: 68, # 'i' - 106: 120, # 'j' - 107: 97, # 'k' - 108: 77, # 'l' - 109: 86, # 'm' - 110: 69, # 'n' - 111: 55, # 'o' - 112: 78, # 'p' - 113: 115, # 'q' - 114: 65, # 'r' - 115: 66, # 's' - 116: 58, # 't' - 117: 76, # 'u' - 118: 106, # 'v' - 119: 103, # 'w' - 120: 87, # 'x' - 121: 107, # 'y' - 122: 112, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 255, # '\x80' - 129: 255, # '\x81' - 130: 255, # '\x82' - 131: 255, # '\x83' - 132: 255, # '\x84' - 133: 255, # '\x85' - 134: 255, # '\x86' - 135: 255, # '\x87' - 136: 255, # '\x88' - 137: 255, # '\x89' - 138: 255, # '\x8a' - 139: 255, # '\x8b' - 140: 255, # '\x8c' - 141: 255, # '\x8d' - 142: 255, # '\x8e' - 143: 255, # '\x8f' - 144: 255, # '\x90' - 145: 255, # '\x91' - 146: 255, # '\x92' - 147: 255, # '\x93' - 148: 255, # '\x94' - 149: 255, # '\x95' - 150: 255, # '\x96' - 151: 255, # '\x97' - 152: 255, # '\x98' - 153: 255, # '\x99' - 154: 255, # '\x9a' - 155: 255, # '\x9b' - 156: 255, # '\x9c' - 157: 255, # '\x9d' - 158: 255, # '\x9e' - 159: 255, # '\x9f' - 160: 253, # '\xa0' - 161: 233, # '‘' - 162: 90, # '’' - 163: 253, # '£' - 164: 253, # '€' - 165: 253, # '₯' - 166: 253, # '¦' - 167: 253, # '§' - 168: 253, # '¨' - 169: 253, # '©' - 170: 253, # 'ͺ' - 171: 253, # '«' - 172: 253, # '¬' - 173: 74, # '\xad' - 174: 253, # None - 175: 253, # '―' - 176: 253, # '°' - 177: 253, # '±' - 178: 253, # '²' - 179: 253, # '³' - 180: 247, # '΄' - 181: 248, # '΅' - 182: 61, # 'Ά' - 183: 36, # '·' - 184: 46, # 'Έ' - 185: 71, # 'Ή' - 186: 73, # 'Ί' - 187: 253, # '»' - 188: 54, # 'Ό' - 189: 253, # '½' - 190: 108, # 'Ύ' - 191: 123, # 'Ώ' - 192: 110, # 'ΐ' - 193: 31, # 'Α' - 194: 51, # 'Β' - 195: 43, # 'Γ' - 196: 41, # 'Δ' - 197: 34, # 'Ε' - 198: 91, # 'Ζ' - 199: 40, # 'Η' - 200: 52, # 'Θ' - 201: 47, # 'Ι' - 202: 44, # 'Κ' - 203: 53, # 'Λ' - 204: 38, # 'Μ' - 205: 49, # 'Ν' - 206: 59, # 'Ξ' - 207: 39, # 'Ο' - 208: 35, # 'Π' - 209: 48, # 'Ρ' - 210: 250, # None - 211: 37, # 'Σ' - 212: 33, # 'Τ' - 213: 45, # 'Υ' - 214: 56, # 'Φ' - 215: 50, # 'Χ' - 216: 84, # 'Ψ' - 217: 57, # 'Ω' - 218: 120, # 'Ϊ' - 219: 121, # 'Ϋ' - 220: 17, # 'ά' - 221: 18, # 'έ' - 222: 22, # 'ή' - 223: 15, # 'ί' - 224: 124, # 'ΰ' - 225: 1, # 'α' - 226: 29, # 'β' - 227: 20, # 'γ' - 228: 21, # 'δ' - 229: 3, # 'ε' - 230: 32, # 'ζ' - 231: 13, # 'η' - 232: 25, # 'θ' - 233: 5, # 'ι' - 234: 11, # 'κ' - 235: 16, # 'λ' - 236: 10, # 'μ' - 237: 6, # 'ν' - 238: 30, # 'ξ' - 239: 4, # 'ο' - 240: 9, # 'π' - 241: 8, # 'ρ' - 242: 14, # 'ς' - 243: 7, # 'σ' - 244: 2, # 'τ' - 245: 12, # 'υ' - 246: 28, # 'φ' - 247: 23, # 'χ' - 248: 42, # 'ψ' - 249: 24, # 'ω' - 250: 64, # 'ϊ' - 251: 75, # 'ϋ' - 252: 19, # 'ό' - 253: 26, # 'ύ' - 254: 27, # 'ώ' - 255: 253, # None -} - -ISO_8859_7_GREEK_MODEL = SingleByteCharSetModel(charset_name='ISO-8859-7', - language='Greek', - char_to_order_map=ISO_8859_7_GREEK_CHAR_TO_ORDER, - language_model=GREEK_LANG_MODEL, - typical_positive_ratio=0.982851, - keep_ascii_letters=False, - alphabet='ΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩάέήίαβγδεζηθικλμνξοπρςστυφχψωόύώ') - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhebrewmodel.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhebrewmodel.py deleted file mode 100644 index 2a19e61..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhebrewmodel.py +++ /dev/null @@ -1,4382 +0,0 @@ -# -*- coding: utf-8 -*- - -from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel - - -# 3: Positive -# 2: Likely -# 1: Unlikely -# 0: Negative - -HEBREW_LANG_MODEL = { - 50: { # 'a' - 50: 0, # 'a' - 60: 1, # 'c' - 61: 1, # 'd' - 42: 1, # 'e' - 53: 1, # 'i' - 56: 2, # 'l' - 54: 2, # 'n' - 49: 0, # 'o' - 51: 2, # 'r' - 43: 1, # 's' - 44: 2, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 1, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 1, # 'ק' - 7: 0, # 'ר' - 10: 1, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 60: { # 'c' - 50: 1, # 'a' - 60: 1, # 'c' - 61: 0, # 'd' - 42: 1, # 'e' - 53: 1, # 'i' - 56: 1, # 'l' - 54: 0, # 'n' - 49: 1, # 'o' - 51: 1, # 'r' - 43: 1, # 's' - 44: 2, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 1, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 1, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 61: { # 'd' - 50: 1, # 'a' - 60: 0, # 'c' - 61: 1, # 'd' - 42: 1, # 'e' - 53: 1, # 'i' - 56: 1, # 'l' - 54: 1, # 'n' - 49: 2, # 'o' - 51: 1, # 'r' - 43: 1, # 's' - 44: 0, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 1, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 1, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 42: { # 'e' - 50: 1, # 'a' - 60: 1, # 'c' - 61: 2, # 'd' - 42: 1, # 'e' - 53: 1, # 'i' - 56: 2, # 'l' - 54: 2, # 'n' - 49: 1, # 'o' - 51: 2, # 'r' - 43: 2, # 's' - 44: 2, # 't' - 63: 1, # 'u' - 34: 1, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 1, # '–' - 52: 2, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 53: { # 'i' - 50: 1, # 'a' - 60: 2, # 'c' - 61: 1, # 'd' - 42: 1, # 'e' - 53: 0, # 'i' - 56: 1, # 'l' - 54: 2, # 'n' - 49: 2, # 'o' - 51: 1, # 'r' - 43: 2, # 's' - 44: 2, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 56: { # 'l' - 50: 1, # 'a' - 60: 1, # 'c' - 61: 1, # 'd' - 42: 2, # 'e' - 53: 2, # 'i' - 56: 2, # 'l' - 54: 1, # 'n' - 49: 1, # 'o' - 51: 0, # 'r' - 43: 1, # 's' - 44: 1, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 54: { # 'n' - 50: 1, # 'a' - 60: 1, # 'c' - 61: 1, # 'd' - 42: 1, # 'e' - 53: 1, # 'i' - 56: 1, # 'l' - 54: 1, # 'n' - 49: 1, # 'o' - 51: 0, # 'r' - 43: 1, # 's' - 44: 2, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 1, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 2, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 49: { # 'o' - 50: 1, # 'a' - 60: 1, # 'c' - 61: 1, # 'd' - 42: 1, # 'e' - 53: 1, # 'i' - 56: 1, # 'l' - 54: 2, # 'n' - 49: 1, # 'o' - 51: 2, # 'r' - 43: 1, # 's' - 44: 1, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 51: { # 'r' - 50: 2, # 'a' - 60: 1, # 'c' - 61: 1, # 'd' - 42: 2, # 'e' - 53: 1, # 'i' - 56: 1, # 'l' - 54: 1, # 'n' - 49: 2, # 'o' - 51: 1, # 'r' - 43: 1, # 's' - 44: 1, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 2, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 43: { # 's' - 50: 1, # 'a' - 60: 1, # 'c' - 61: 0, # 'd' - 42: 2, # 'e' - 53: 1, # 'i' - 56: 1, # 'l' - 54: 1, # 'n' - 49: 1, # 'o' - 51: 1, # 'r' - 43: 1, # 's' - 44: 2, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 2, # '”' - 58: 0, # '†' - 40: 2, # '…' - }, - 44: { # 't' - 50: 1, # 'a' - 60: 1, # 'c' - 61: 0, # 'd' - 42: 2, # 'e' - 53: 2, # 'i' - 56: 1, # 'l' - 54: 0, # 'n' - 49: 1, # 'o' - 51: 1, # 'r' - 43: 1, # 's' - 44: 1, # 't' - 63: 1, # 'u' - 34: 1, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 2, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 63: { # 'u' - 50: 1, # 'a' - 60: 1, # 'c' - 61: 1, # 'd' - 42: 1, # 'e' - 53: 1, # 'i' - 56: 1, # 'l' - 54: 1, # 'n' - 49: 0, # 'o' - 51: 1, # 'r' - 43: 2, # 's' - 44: 1, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 34: { # '\xa0' - 50: 1, # 'a' - 60: 0, # 'c' - 61: 1, # 'd' - 42: 0, # 'e' - 53: 1, # 'i' - 56: 0, # 'l' - 54: 1, # 'n' - 49: 1, # 'o' - 51: 0, # 'r' - 43: 1, # 's' - 44: 1, # 't' - 63: 0, # 'u' - 34: 2, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 1, # 'ב' - 20: 1, # 'ג' - 16: 1, # 'ד' - 3: 1, # 'ה' - 2: 1, # 'ו' - 24: 1, # 'ז' - 14: 1, # 'ח' - 22: 1, # 'ט' - 1: 2, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 2, # 'מ' - 23: 0, # 'ן' - 12: 1, # 'נ' - 19: 1, # 'ס' - 13: 1, # 'ע' - 26: 0, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 1, # 'צ' - 17: 1, # 'ק' - 7: 1, # 'ר' - 10: 1, # 'ש' - 5: 1, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 55: { # '´' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 1, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 1, # 'ה' - 2: 1, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 2, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 1, # 'ן' - 12: 1, # 'נ' - 19: 1, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 1, # 'ר' - 10: 1, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 48: { # '¼' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 1, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 39: { # '½' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 1, # 'צ' - 17: 1, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 57: { # '¾' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 30: { # 'ְ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 1, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 1, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 2, # 'ב' - 20: 2, # 'ג' - 16: 2, # 'ד' - 3: 2, # 'ה' - 2: 2, # 'ו' - 24: 2, # 'ז' - 14: 2, # 'ח' - 22: 2, # 'ט' - 1: 2, # 'י' - 25: 2, # 'ך' - 15: 2, # 'כ' - 4: 2, # 'ל' - 11: 1, # 'ם' - 6: 2, # 'מ' - 23: 0, # 'ן' - 12: 2, # 'נ' - 19: 2, # 'ס' - 13: 2, # 'ע' - 26: 0, # 'ף' - 18: 2, # 'פ' - 27: 0, # 'ץ' - 21: 2, # 'צ' - 17: 2, # 'ק' - 7: 2, # 'ר' - 10: 2, # 'ש' - 5: 2, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 59: { # 'ֱ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 1, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 1, # 'ב' - 20: 1, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 1, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 1, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 2, # 'ל' - 11: 0, # 'ם' - 6: 2, # 'מ' - 23: 0, # 'ן' - 12: 1, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 1, # 'ר' - 10: 1, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 41: { # 'ֲ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 2, # 'ב' - 20: 1, # 'ג' - 16: 2, # 'ד' - 3: 1, # 'ה' - 2: 1, # 'ו' - 24: 1, # 'ז' - 14: 1, # 'ח' - 22: 1, # 'ט' - 1: 1, # 'י' - 25: 1, # 'ך' - 15: 1, # 'כ' - 4: 2, # 'ל' - 11: 0, # 'ם' - 6: 2, # 'מ' - 23: 0, # 'ן' - 12: 2, # 'נ' - 19: 1, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 2, # 'צ' - 17: 1, # 'ק' - 7: 2, # 'ר' - 10: 2, # 'ש' - 5: 1, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 33: { # 'ִ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 1, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 1, # 'ִ' - 37: 0, # 'ֵ' - 36: 1, # 'ֶ' - 31: 0, # 'ַ' - 29: 1, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 1, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 2, # 'ב' - 20: 2, # 'ג' - 16: 2, # 'ד' - 3: 1, # 'ה' - 2: 1, # 'ו' - 24: 2, # 'ז' - 14: 1, # 'ח' - 22: 1, # 'ט' - 1: 3, # 'י' - 25: 1, # 'ך' - 15: 2, # 'כ' - 4: 2, # 'ל' - 11: 2, # 'ם' - 6: 2, # 'מ' - 23: 2, # 'ן' - 12: 2, # 'נ' - 19: 2, # 'ס' - 13: 1, # 'ע' - 26: 0, # 'ף' - 18: 2, # 'פ' - 27: 1, # 'ץ' - 21: 2, # 'צ' - 17: 2, # 'ק' - 7: 2, # 'ר' - 10: 2, # 'ש' - 5: 2, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 37: { # 'ֵ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 1, # 'ֶ' - 31: 1, # 'ַ' - 29: 1, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 2, # 'ב' - 20: 1, # 'ג' - 16: 2, # 'ד' - 3: 2, # 'ה' - 2: 1, # 'ו' - 24: 1, # 'ז' - 14: 2, # 'ח' - 22: 1, # 'ט' - 1: 3, # 'י' - 25: 2, # 'ך' - 15: 1, # 'כ' - 4: 2, # 'ל' - 11: 2, # 'ם' - 6: 1, # 'מ' - 23: 2, # 'ן' - 12: 2, # 'נ' - 19: 1, # 'ס' - 13: 2, # 'ע' - 26: 1, # 'ף' - 18: 1, # 'פ' - 27: 1, # 'ץ' - 21: 1, # 'צ' - 17: 1, # 'ק' - 7: 2, # 'ר' - 10: 2, # 'ש' - 5: 2, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 36: { # 'ֶ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 1, # 'ֶ' - 31: 1, # 'ַ' - 29: 1, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 2, # 'ב' - 20: 1, # 'ג' - 16: 2, # 'ד' - 3: 2, # 'ה' - 2: 1, # 'ו' - 24: 1, # 'ז' - 14: 2, # 'ח' - 22: 1, # 'ט' - 1: 2, # 'י' - 25: 2, # 'ך' - 15: 1, # 'כ' - 4: 2, # 'ל' - 11: 2, # 'ם' - 6: 2, # 'מ' - 23: 2, # 'ן' - 12: 2, # 'נ' - 19: 2, # 'ס' - 13: 1, # 'ע' - 26: 1, # 'ף' - 18: 1, # 'פ' - 27: 2, # 'ץ' - 21: 1, # 'צ' - 17: 1, # 'ק' - 7: 2, # 'ר' - 10: 2, # 'ש' - 5: 2, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 31: { # 'ַ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 1, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 1, # 'ֶ' - 31: 0, # 'ַ' - 29: 2, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 2, # 'ב' - 20: 2, # 'ג' - 16: 2, # 'ד' - 3: 2, # 'ה' - 2: 1, # 'ו' - 24: 2, # 'ז' - 14: 2, # 'ח' - 22: 2, # 'ט' - 1: 3, # 'י' - 25: 1, # 'ך' - 15: 2, # 'כ' - 4: 2, # 'ל' - 11: 2, # 'ם' - 6: 2, # 'מ' - 23: 2, # 'ן' - 12: 2, # 'נ' - 19: 2, # 'ס' - 13: 2, # 'ע' - 26: 2, # 'ף' - 18: 2, # 'פ' - 27: 1, # 'ץ' - 21: 2, # 'צ' - 17: 2, # 'ק' - 7: 2, # 'ר' - 10: 2, # 'ש' - 5: 2, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 29: { # 'ָ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 1, # 'ַ' - 29: 2, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 1, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 2, # 'ב' - 20: 2, # 'ג' - 16: 2, # 'ד' - 3: 3, # 'ה' - 2: 2, # 'ו' - 24: 2, # 'ז' - 14: 2, # 'ח' - 22: 1, # 'ט' - 1: 2, # 'י' - 25: 2, # 'ך' - 15: 2, # 'כ' - 4: 2, # 'ל' - 11: 2, # 'ם' - 6: 2, # 'מ' - 23: 2, # 'ן' - 12: 2, # 'נ' - 19: 1, # 'ס' - 13: 2, # 'ע' - 26: 1, # 'ף' - 18: 2, # 'פ' - 27: 1, # 'ץ' - 21: 2, # 'צ' - 17: 2, # 'ק' - 7: 2, # 'ר' - 10: 2, # 'ש' - 5: 2, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 35: { # 'ֹ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 1, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 2, # 'ב' - 20: 1, # 'ג' - 16: 2, # 'ד' - 3: 2, # 'ה' - 2: 1, # 'ו' - 24: 1, # 'ז' - 14: 1, # 'ח' - 22: 1, # 'ט' - 1: 1, # 'י' - 25: 1, # 'ך' - 15: 2, # 'כ' - 4: 2, # 'ל' - 11: 2, # 'ם' - 6: 2, # 'מ' - 23: 2, # 'ן' - 12: 2, # 'נ' - 19: 2, # 'ס' - 13: 2, # 'ע' - 26: 1, # 'ף' - 18: 2, # 'פ' - 27: 1, # 'ץ' - 21: 2, # 'צ' - 17: 2, # 'ק' - 7: 2, # 'ר' - 10: 2, # 'ש' - 5: 2, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 62: { # 'ֻ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 1, # 'ב' - 20: 1, # 'ג' - 16: 1, # 'ד' - 3: 1, # 'ה' - 2: 1, # 'ו' - 24: 1, # 'ז' - 14: 1, # 'ח' - 22: 0, # 'ט' - 1: 1, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 2, # 'ל' - 11: 1, # 'ם' - 6: 1, # 'מ' - 23: 1, # 'ן' - 12: 1, # 'נ' - 19: 1, # 'ס' - 13: 1, # 'ע' - 26: 0, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 1, # 'צ' - 17: 1, # 'ק' - 7: 1, # 'ר' - 10: 1, # 'ש' - 5: 1, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 28: { # 'ּ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 3, # 'ְ' - 59: 0, # 'ֱ' - 41: 1, # 'ֲ' - 33: 3, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 3, # 'ַ' - 29: 3, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 0, # 'ּ' - 38: 2, # 'ׁ' - 45: 1, # 'ׂ' - 9: 2, # 'א' - 8: 2, # 'ב' - 20: 1, # 'ג' - 16: 2, # 'ד' - 3: 1, # 'ה' - 2: 2, # 'ו' - 24: 1, # 'ז' - 14: 1, # 'ח' - 22: 1, # 'ט' - 1: 2, # 'י' - 25: 2, # 'ך' - 15: 2, # 'כ' - 4: 2, # 'ל' - 11: 1, # 'ם' - 6: 2, # 'מ' - 23: 1, # 'ן' - 12: 2, # 'נ' - 19: 1, # 'ס' - 13: 2, # 'ע' - 26: 1, # 'ף' - 18: 1, # 'פ' - 27: 1, # 'ץ' - 21: 1, # 'צ' - 17: 1, # 'ק' - 7: 2, # 'ר' - 10: 2, # 'ש' - 5: 2, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 38: { # 'ׁ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 1, # 'ֹ' - 62: 1, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 2, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 1, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 1, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 45: { # 'ׂ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 1, # 'ֵ' - 36: 2, # 'ֶ' - 31: 1, # 'ַ' - 29: 2, # 'ָ' - 35: 1, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 0, # 'ב' - 20: 1, # 'ג' - 16: 0, # 'ד' - 3: 1, # 'ה' - 2: 2, # 'ו' - 24: 0, # 'ז' - 14: 1, # 'ח' - 22: 0, # 'ט' - 1: 1, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 1, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 1, # 'נ' - 19: 0, # 'ס' - 13: 1, # 'ע' - 26: 0, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 1, # 'ר' - 10: 0, # 'ש' - 5: 1, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 9: { # 'א' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 1, # '´' - 48: 1, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 2, # 'ֱ' - 41: 2, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 3, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 2, # 'ע' - 26: 3, # 'ף' - 18: 3, # 'פ' - 27: 1, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 8: { # 'ב' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 1, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 3, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 2, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 2, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 3, # 'ע' - 26: 1, # 'ף' - 18: 3, # 'פ' - 27: 2, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 1, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 20: { # 'ג' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 2, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 1, # 'ִ' - 37: 1, # 'ֵ' - 36: 1, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 1, # 'ֹ' - 62: 0, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 3, # 'ב' - 20: 2, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 2, # 'ח' - 22: 2, # 'ט' - 1: 3, # 'י' - 25: 1, # 'ך' - 15: 1, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 2, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 2, # 'פ' - 27: 1, # 'ץ' - 21: 1, # 'צ' - 17: 1, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 16: { # 'ד' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 1, # 'ז' - 14: 2, # 'ח' - 22: 2, # 'ט' - 1: 3, # 'י' - 25: 2, # 'ך' - 15: 2, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 2, # 'ן' - 12: 3, # 'נ' - 19: 2, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 3, # 'פ' - 27: 0, # 'ץ' - 21: 2, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 3: { # 'ה' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 1, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 0, # '´' - 48: 1, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 1, # 'ְ' - 59: 1, # 'ֱ' - 41: 2, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 3, # 'ַ' - 29: 2, # 'ָ' - 35: 1, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 1, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 3, # 'ע' - 26: 0, # 'ף' - 18: 3, # 'פ' - 27: 1, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 1, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 2, # '…' - }, - 2: { # 'ו' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 1, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 1, # '´' - 48: 1, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 1, # 'ֵ' - 36: 1, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 3, # 'ֹ' - 62: 0, # 'ֻ' - 28: 3, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 3, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 3, # 'ע' - 26: 3, # 'ף' - 18: 3, # 'פ' - 27: 3, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 1, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 2, # '…' - }, - 24: { # 'ז' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 1, # 'ֲ' - 33: 1, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 1, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 2, # 'ב' - 20: 2, # 'ג' - 16: 2, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 2, # 'ז' - 14: 2, # 'ח' - 22: 1, # 'ט' - 1: 3, # 'י' - 25: 1, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 2, # 'ם' - 6: 3, # 'מ' - 23: 2, # 'ן' - 12: 2, # 'נ' - 19: 1, # 'ס' - 13: 2, # 'ע' - 26: 1, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 2, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 1, # 'ש' - 5: 2, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 14: { # 'ח' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 1, # 'ֱ' - 41: 2, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 3, # 'ב' - 20: 2, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 2, # 'ח' - 22: 2, # 'ט' - 1: 3, # 'י' - 25: 1, # 'ך' - 15: 2, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 2, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 1, # 'ע' - 26: 2, # 'ף' - 18: 2, # 'פ' - 27: 2, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 22: { # 'ט' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 1, # 'ֵ' - 36: 1, # 'ֶ' - 31: 2, # 'ַ' - 29: 1, # 'ָ' - 35: 1, # 'ֹ' - 62: 1, # 'ֻ' - 28: 1, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 1, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 2, # 'ז' - 14: 3, # 'ח' - 22: 2, # 'ט' - 1: 3, # 'י' - 25: 1, # 'ך' - 15: 2, # 'כ' - 4: 3, # 'ל' - 11: 2, # 'ם' - 6: 2, # 'מ' - 23: 2, # 'ן' - 12: 3, # 'נ' - 19: 2, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 3, # 'פ' - 27: 1, # 'ץ' - 21: 2, # 'צ' - 17: 2, # 'ק' - 7: 3, # 'ר' - 10: 2, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 1: { # 'י' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 1, # '´' - 48: 1, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 1, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 3, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 3, # 'ע' - 26: 3, # 'ף' - 18: 3, # 'פ' - 27: 3, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 1, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 2, # '…' - }, - 25: { # 'ך' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 2, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 1, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 1, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 1, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 1, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 15: { # 'כ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 1, # 'ֹ' - 62: 1, # 'ֻ' - 28: 3, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 2, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 3, # 'ח' - 22: 2, # 'ט' - 1: 3, # 'י' - 25: 3, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 2, # 'ע' - 26: 3, # 'ף' - 18: 3, # 'פ' - 27: 1, # 'ץ' - 21: 2, # 'צ' - 17: 2, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 4: { # 'ל' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 3, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 3, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 2, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 3, # 'פ' - 27: 2, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 1, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 11: { # 'ם' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 1, # 'ב' - 20: 1, # 'ג' - 16: 0, # 'ד' - 3: 1, # 'ה' - 2: 1, # 'ו' - 24: 1, # 'ז' - 14: 1, # 'ח' - 22: 0, # 'ט' - 1: 1, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 1, # 'ל' - 11: 1, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 1, # 'נ' - 19: 0, # 'ס' - 13: 1, # 'ע' - 26: 0, # 'ף' - 18: 1, # 'פ' - 27: 1, # 'ץ' - 21: 1, # 'צ' - 17: 1, # 'ק' - 7: 1, # 'ר' - 10: 1, # 'ש' - 5: 1, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 2, # '…' - }, - 6: { # 'מ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 2, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 3, # 'ע' - 26: 0, # 'ף' - 18: 3, # 'פ' - 27: 2, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 23: { # 'ן' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 0, # '´' - 48: 1, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 1, # 'ב' - 20: 1, # 'ג' - 16: 1, # 'ד' - 3: 1, # 'ה' - 2: 1, # 'ו' - 24: 0, # 'ז' - 14: 1, # 'ח' - 22: 1, # 'ט' - 1: 1, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 1, # 'ל' - 11: 1, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 1, # 'נ' - 19: 1, # 'ס' - 13: 1, # 'ע' - 26: 1, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 1, # 'ק' - 7: 1, # 'ר' - 10: 1, # 'ש' - 5: 1, # 'ת' - 32: 1, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 2, # '…' - }, - 12: { # 'נ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 1, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 2, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 3, # 'פ' - 27: 2, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 19: { # 'ס' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 1, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 1, # 'ָ' - 35: 1, # 'ֹ' - 62: 2, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 1, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 2, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 2, # 'ם' - 6: 3, # 'מ' - 23: 2, # 'ן' - 12: 3, # 'נ' - 19: 2, # 'ס' - 13: 3, # 'ע' - 26: 3, # 'ף' - 18: 3, # 'פ' - 27: 0, # 'ץ' - 21: 2, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 1, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 13: { # 'ע' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 1, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 1, # 'ְ' - 59: 1, # 'ֱ' - 41: 2, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 1, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 2, # 'ך' - 15: 2, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 2, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 2, # 'ע' - 26: 1, # 'ף' - 18: 2, # 'פ' - 27: 2, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 26: { # 'ף' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 1, # 'ו' - 24: 0, # 'ז' - 14: 1, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 1, # 'ס' - 13: 0, # 'ע' - 26: 1, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 1, # 'ק' - 7: 1, # 'ר' - 10: 1, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 18: { # 'פ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 1, # 'ֵ' - 36: 2, # 'ֶ' - 31: 1, # 'ַ' - 29: 2, # 'ָ' - 35: 1, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 2, # 'ב' - 20: 3, # 'ג' - 16: 2, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 2, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 2, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 2, # 'ם' - 6: 2, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 2, # 'פ' - 27: 2, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 27: { # 'ץ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 1, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 1, # 'ר' - 10: 0, # 'ש' - 5: 1, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 21: { # 'צ' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 1, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 1, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 2, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 1, # 'ז' - 14: 3, # 'ח' - 22: 2, # 'ט' - 1: 3, # 'י' - 25: 1, # 'ך' - 15: 1, # 'כ' - 4: 3, # 'ל' - 11: 2, # 'ם' - 6: 3, # 'מ' - 23: 2, # 'ן' - 12: 3, # 'נ' - 19: 1, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 3, # 'פ' - 27: 2, # 'ץ' - 21: 2, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 0, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 17: { # 'ק' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 1, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 1, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 2, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 2, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 1, # 'ך' - 15: 1, # 'כ' - 4: 3, # 'ל' - 11: 2, # 'ם' - 6: 3, # 'מ' - 23: 2, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 3, # 'פ' - 27: 2, # 'ץ' - 21: 3, # 'צ' - 17: 2, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 7: { # 'ר' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 2, # '´' - 48: 1, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 1, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 2, # 'ֹ' - 62: 1, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 3, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 3, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 3, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 3, # 'פ' - 27: 3, # 'ץ' - 21: 3, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 2, # '…' - }, - 10: { # 'ש' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 1, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 1, # 'ִ' - 37: 1, # 'ֵ' - 36: 1, # 'ֶ' - 31: 1, # 'ַ' - 29: 1, # 'ָ' - 35: 1, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 3, # 'ׁ' - 45: 2, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 3, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 2, # 'ז' - 14: 3, # 'ח' - 22: 3, # 'ט' - 1: 3, # 'י' - 25: 3, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 2, # 'ן' - 12: 3, # 'נ' - 19: 2, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 3, # 'פ' - 27: 1, # 'ץ' - 21: 2, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 1, # '…' - }, - 5: { # 'ת' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 1, # '\xa0' - 55: 0, # '´' - 48: 1, # '¼' - 39: 1, # '½' - 57: 0, # '¾' - 30: 2, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 2, # 'ִ' - 37: 2, # 'ֵ' - 36: 2, # 'ֶ' - 31: 2, # 'ַ' - 29: 2, # 'ָ' - 35: 1, # 'ֹ' - 62: 1, # 'ֻ' - 28: 2, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 3, # 'א' - 8: 3, # 'ב' - 20: 3, # 'ג' - 16: 2, # 'ד' - 3: 3, # 'ה' - 2: 3, # 'ו' - 24: 2, # 'ז' - 14: 3, # 'ח' - 22: 2, # 'ט' - 1: 3, # 'י' - 25: 2, # 'ך' - 15: 3, # 'כ' - 4: 3, # 'ל' - 11: 3, # 'ם' - 6: 3, # 'מ' - 23: 3, # 'ן' - 12: 3, # 'נ' - 19: 2, # 'ס' - 13: 3, # 'ע' - 26: 2, # 'ף' - 18: 3, # 'פ' - 27: 1, # 'ץ' - 21: 2, # 'צ' - 17: 3, # 'ק' - 7: 3, # 'ר' - 10: 3, # 'ש' - 5: 3, # 'ת' - 32: 1, # '–' - 52: 1, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 2, # '…' - }, - 32: { # '–' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 1, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 1, # 'ב' - 20: 1, # 'ג' - 16: 1, # 'ד' - 3: 1, # 'ה' - 2: 1, # 'ו' - 24: 0, # 'ז' - 14: 1, # 'ח' - 22: 0, # 'ט' - 1: 1, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 1, # 'ס' - 13: 1, # 'ע' - 26: 0, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 1, # 'צ' - 17: 0, # 'ק' - 7: 1, # 'ר' - 10: 1, # 'ש' - 5: 1, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 52: { # '’' - 50: 1, # 'a' - 60: 0, # 'c' - 61: 1, # 'd' - 42: 1, # 'e' - 53: 1, # 'i' - 56: 1, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 1, # 'r' - 43: 2, # 's' - 44: 2, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 1, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 1, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 47: { # '“' - 50: 1, # 'a' - 60: 1, # 'c' - 61: 1, # 'd' - 42: 1, # 'e' - 53: 1, # 'i' - 56: 1, # 'l' - 54: 1, # 'n' - 49: 1, # 'o' - 51: 1, # 'r' - 43: 1, # 's' - 44: 1, # 't' - 63: 1, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 2, # 'א' - 8: 1, # 'ב' - 20: 1, # 'ג' - 16: 1, # 'ד' - 3: 1, # 'ה' - 2: 1, # 'ו' - 24: 1, # 'ז' - 14: 1, # 'ח' - 22: 1, # 'ט' - 1: 1, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 1, # 'נ' - 19: 1, # 'ס' - 13: 1, # 'ע' - 26: 0, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 1, # 'צ' - 17: 1, # 'ק' - 7: 1, # 'ר' - 10: 1, # 'ש' - 5: 1, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 46: { # '”' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 1, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 1, # 'ב' - 20: 1, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 1, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 1, # 'צ' - 17: 0, # 'ק' - 7: 1, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 0, # '†' - 40: 0, # '…' - }, - 58: { # '†' - 50: 0, # 'a' - 60: 0, # 'c' - 61: 0, # 'd' - 42: 0, # 'e' - 53: 0, # 'i' - 56: 0, # 'l' - 54: 0, # 'n' - 49: 0, # 'o' - 51: 0, # 'r' - 43: 0, # 's' - 44: 0, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 0, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 0, # 'ה' - 2: 0, # 'ו' - 24: 0, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 0, # 'י' - 25: 0, # 'ך' - 15: 0, # 'כ' - 4: 0, # 'ל' - 11: 0, # 'ם' - 6: 0, # 'מ' - 23: 0, # 'ן' - 12: 0, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 0, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 0, # 'ר' - 10: 0, # 'ש' - 5: 0, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 0, # '”' - 58: 2, # '†' - 40: 0, # '…' - }, - 40: { # '…' - 50: 1, # 'a' - 60: 1, # 'c' - 61: 1, # 'd' - 42: 1, # 'e' - 53: 1, # 'i' - 56: 0, # 'l' - 54: 1, # 'n' - 49: 0, # 'o' - 51: 1, # 'r' - 43: 1, # 's' - 44: 1, # 't' - 63: 0, # 'u' - 34: 0, # '\xa0' - 55: 0, # '´' - 48: 0, # '¼' - 39: 0, # '½' - 57: 0, # '¾' - 30: 0, # 'ְ' - 59: 0, # 'ֱ' - 41: 0, # 'ֲ' - 33: 0, # 'ִ' - 37: 0, # 'ֵ' - 36: 0, # 'ֶ' - 31: 0, # 'ַ' - 29: 0, # 'ָ' - 35: 0, # 'ֹ' - 62: 0, # 'ֻ' - 28: 0, # 'ּ' - 38: 0, # 'ׁ' - 45: 0, # 'ׂ' - 9: 1, # 'א' - 8: 0, # 'ב' - 20: 0, # 'ג' - 16: 0, # 'ד' - 3: 1, # 'ה' - 2: 1, # 'ו' - 24: 1, # 'ז' - 14: 0, # 'ח' - 22: 0, # 'ט' - 1: 1, # 'י' - 25: 0, # 'ך' - 15: 1, # 'כ' - 4: 1, # 'ל' - 11: 0, # 'ם' - 6: 1, # 'מ' - 23: 0, # 'ן' - 12: 1, # 'נ' - 19: 0, # 'ס' - 13: 0, # 'ע' - 26: 0, # 'ף' - 18: 1, # 'פ' - 27: 0, # 'ץ' - 21: 0, # 'צ' - 17: 0, # 'ק' - 7: 1, # 'ר' - 10: 1, # 'ש' - 5: 1, # 'ת' - 32: 0, # '–' - 52: 0, # '’' - 47: 0, # '“' - 46: 1, # '”' - 58: 0, # '†' - 40: 2, # '…' - }, -} - -# 255: Undefined characters that did not exist in training text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 -# 251: Control characters - -# Character Mapping Table(s): -WINDOWS_1255_HEBREW_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 69, # 'A' - 66: 91, # 'B' - 67: 79, # 'C' - 68: 80, # 'D' - 69: 92, # 'E' - 70: 89, # 'F' - 71: 97, # 'G' - 72: 90, # 'H' - 73: 68, # 'I' - 74: 111, # 'J' - 75: 112, # 'K' - 76: 82, # 'L' - 77: 73, # 'M' - 78: 95, # 'N' - 79: 85, # 'O' - 80: 78, # 'P' - 81: 121, # 'Q' - 82: 86, # 'R' - 83: 71, # 'S' - 84: 67, # 'T' - 85: 102, # 'U' - 86: 107, # 'V' - 87: 84, # 'W' - 88: 114, # 'X' - 89: 103, # 'Y' - 90: 115, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 50, # 'a' - 98: 74, # 'b' - 99: 60, # 'c' - 100: 61, # 'd' - 101: 42, # 'e' - 102: 76, # 'f' - 103: 70, # 'g' - 104: 64, # 'h' - 105: 53, # 'i' - 106: 105, # 'j' - 107: 93, # 'k' - 108: 56, # 'l' - 109: 65, # 'm' - 110: 54, # 'n' - 111: 49, # 'o' - 112: 66, # 'p' - 113: 110, # 'q' - 114: 51, # 'r' - 115: 43, # 's' - 116: 44, # 't' - 117: 63, # 'u' - 118: 81, # 'v' - 119: 77, # 'w' - 120: 98, # 'x' - 121: 75, # 'y' - 122: 108, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 124, # '€' - 129: 202, # None - 130: 203, # '‚' - 131: 204, # 'ƒ' - 132: 205, # '„' - 133: 40, # '…' - 134: 58, # '†' - 135: 206, # '‡' - 136: 207, # 'ˆ' - 137: 208, # '‰' - 138: 209, # None - 139: 210, # '‹' - 140: 211, # None - 141: 212, # None - 142: 213, # None - 143: 214, # None - 144: 215, # None - 145: 83, # '‘' - 146: 52, # '’' - 147: 47, # '“' - 148: 46, # '”' - 149: 72, # '•' - 150: 32, # '–' - 151: 94, # '—' - 152: 216, # '˜' - 153: 113, # '™' - 154: 217, # None - 155: 109, # '›' - 156: 218, # None - 157: 219, # None - 158: 220, # None - 159: 221, # None - 160: 34, # '\xa0' - 161: 116, # '¡' - 162: 222, # '¢' - 163: 118, # '£' - 164: 100, # '₪' - 165: 223, # '¥' - 166: 224, # '¦' - 167: 117, # '§' - 168: 119, # '¨' - 169: 104, # '©' - 170: 125, # '×' - 171: 225, # '«' - 172: 226, # '¬' - 173: 87, # '\xad' - 174: 99, # '®' - 175: 227, # '¯' - 176: 106, # '°' - 177: 122, # '±' - 178: 123, # '²' - 179: 228, # '³' - 180: 55, # '´' - 181: 229, # 'µ' - 182: 230, # '¶' - 183: 101, # '·' - 184: 231, # '¸' - 185: 232, # '¹' - 186: 120, # '÷' - 187: 233, # '»' - 188: 48, # '¼' - 189: 39, # '½' - 190: 57, # '¾' - 191: 234, # '¿' - 192: 30, # 'ְ' - 193: 59, # 'ֱ' - 194: 41, # 'ֲ' - 195: 88, # 'ֳ' - 196: 33, # 'ִ' - 197: 37, # 'ֵ' - 198: 36, # 'ֶ' - 199: 31, # 'ַ' - 200: 29, # 'ָ' - 201: 35, # 'ֹ' - 202: 235, # None - 203: 62, # 'ֻ' - 204: 28, # 'ּ' - 205: 236, # 'ֽ' - 206: 126, # '־' - 207: 237, # 'ֿ' - 208: 238, # '׀' - 209: 38, # 'ׁ' - 210: 45, # 'ׂ' - 211: 239, # '׃' - 212: 240, # 'װ' - 213: 241, # 'ױ' - 214: 242, # 'ײ' - 215: 243, # '׳' - 216: 127, # '״' - 217: 244, # None - 218: 245, # None - 219: 246, # None - 220: 247, # None - 221: 248, # None - 222: 249, # None - 223: 250, # None - 224: 9, # 'א' - 225: 8, # 'ב' - 226: 20, # 'ג' - 227: 16, # 'ד' - 228: 3, # 'ה' - 229: 2, # 'ו' - 230: 24, # 'ז' - 231: 14, # 'ח' - 232: 22, # 'ט' - 233: 1, # 'י' - 234: 25, # 'ך' - 235: 15, # 'כ' - 236: 4, # 'ל' - 237: 11, # 'ם' - 238: 6, # 'מ' - 239: 23, # 'ן' - 240: 12, # 'נ' - 241: 19, # 'ס' - 242: 13, # 'ע' - 243: 26, # 'ף' - 244: 18, # 'פ' - 245: 27, # 'ץ' - 246: 21, # 'צ' - 247: 17, # 'ק' - 248: 7, # 'ר' - 249: 10, # 'ש' - 250: 5, # 'ת' - 251: 251, # None - 252: 252, # None - 253: 128, # '\u200e' - 254: 96, # '\u200f' - 255: 253, # None -} - -WINDOWS_1255_HEBREW_MODEL = SingleByteCharSetModel(charset_name='windows-1255', - language='Hebrew', - char_to_order_map=WINDOWS_1255_HEBREW_CHAR_TO_ORDER, - language_model=HEBREW_LANG_MODEL, - typical_positive_ratio=0.984004, - keep_ascii_letters=False, - alphabet='אבגדהוזחטיךכלםמןנסעףפץצקרשתװױײ') - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhungarianmodel.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhungarianmodel.py deleted file mode 100644 index 8260cb9..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhungarianmodel.py +++ /dev/null @@ -1,4649 +0,0 @@ -# -*- coding: utf-8 -*- - -from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel - - -# 3: Positive -# 2: Likely -# 1: Unlikely -# 0: Negative - -HUNGARIAN_LANG_MODEL = { - 28: { # 'A' - 28: 0, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 2, # 'D' - 32: 1, # 'E' - 50: 1, # 'F' - 49: 2, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 2, # 'K' - 41: 2, # 'L' - 34: 1, # 'M' - 35: 2, # 'N' - 47: 1, # 'O' - 46: 2, # 'P' - 43: 2, # 'R' - 33: 2, # 'S' - 37: 2, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 2, # 'Z' - 2: 0, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 2, # 'd' - 1: 1, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 1, # 'h' - 9: 1, # 'i' - 22: 1, # 'j' - 7: 2, # 'k' - 6: 2, # 'l' - 13: 2, # 'm' - 4: 2, # 'n' - 8: 0, # 'o' - 23: 2, # 'p' - 10: 2, # 'r' - 5: 1, # 's' - 3: 1, # 't' - 21: 1, # 'u' - 19: 1, # 'v' - 62: 1, # 'x' - 16: 0, # 'y' - 11: 3, # 'z' - 51: 1, # 'Á' - 44: 0, # 'É' - 61: 1, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 40: { # 'B' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 0, # 'M' - 35: 1, # 'N' - 47: 2, # 'O' - 46: 0, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 3, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 2, # 'i' - 22: 1, # 'j' - 7: 0, # 'k' - 6: 1, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 2, # 'o' - 23: 1, # 'p' - 10: 2, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 3, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 0, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 2, # 'á' - 15: 2, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 54: { # 'C' - 28: 1, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 1, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 0, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 2, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 0, # 'V' - 55: 1, # 'Y' - 52: 1, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 1, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 1, # 'h' - 9: 1, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 1, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 2, # 'o' - 23: 0, # 'p' - 10: 1, # 'r' - 5: 3, # 's' - 3: 0, # 't' - 21: 1, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 1, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 1, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 45: { # 'D' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 0, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 0, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 2, # 'O' - 46: 0, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 1, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 3, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 1, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 0, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 1, # 'o' - 23: 0, # 'p' - 10: 2, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 2, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 1, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 1, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 1, # 'ő' - 56: 0, # 'ű' - }, - 32: { # 'E' - 28: 1, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 1, # 'E' - 50: 1, # 'F' - 49: 2, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 2, # 'K' - 41: 2, # 'L' - 34: 2, # 'M' - 35: 2, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 2, # 'R' - 33: 2, # 'S' - 37: 2, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 1, # 'Z' - 2: 1, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 2, # 'd' - 1: 1, # 'e' - 27: 1, # 'f' - 12: 3, # 'g' - 20: 1, # 'h' - 9: 1, # 'i' - 22: 1, # 'j' - 7: 1, # 'k' - 6: 2, # 'l' - 13: 2, # 'm' - 4: 2, # 'n' - 8: 0, # 'o' - 23: 1, # 'p' - 10: 2, # 'r' - 5: 2, # 's' - 3: 1, # 't' - 21: 2, # 'u' - 19: 1, # 'v' - 62: 1, # 'x' - 16: 0, # 'y' - 11: 3, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 0, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 0, # 'Ú' - 63: 1, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 1, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 50: { # 'F' - 28: 1, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 1, # 'E' - 50: 1, # 'F' - 49: 0, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 1, # 'O' - 46: 0, # 'P' - 43: 1, # 'R' - 33: 0, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 0, # 'V' - 55: 1, # 'Y' - 52: 0, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 2, # 'e' - 27: 1, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 2, # 'i' - 22: 1, # 'j' - 7: 0, # 'k' - 6: 1, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 2, # 'o' - 23: 0, # 'p' - 10: 2, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 1, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 0, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 0, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 0, # 'Ú' - 63: 1, # 'Ü' - 14: 1, # 'á' - 15: 1, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 2, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 49: { # 'G' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 2, # 'Y' - 52: 1, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 2, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 1, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 1, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 2, # 'o' - 23: 0, # 'p' - 10: 2, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 1, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 2, # 'y' - 11: 0, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 1, # 'á' - 15: 1, # 'é' - 30: 0, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 1, # 'ő' - 56: 0, # 'ű' - }, - 38: { # 'H' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 0, # 'D' - 32: 1, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 1, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 1, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 1, # 'O' - 46: 0, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 0, # 'V' - 55: 1, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 2, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 2, # 'i' - 22: 1, # 'j' - 7: 0, # 'k' - 6: 1, # 'l' - 13: 1, # 'm' - 4: 0, # 'n' - 8: 3, # 'o' - 23: 0, # 'p' - 10: 1, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 2, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 0, # 'z' - 51: 2, # 'Á' - 44: 2, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 2, # 'á' - 15: 1, # 'é' - 30: 2, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 39: { # 'I' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 1, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 2, # 'K' - 41: 2, # 'L' - 34: 1, # 'M' - 35: 2, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 2, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 2, # 'Z' - 2: 0, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 2, # 'd' - 1: 0, # 'e' - 27: 1, # 'f' - 12: 2, # 'g' - 20: 1, # 'h' - 9: 0, # 'i' - 22: 1, # 'j' - 7: 1, # 'k' - 6: 2, # 'l' - 13: 2, # 'm' - 4: 1, # 'n' - 8: 0, # 'o' - 23: 1, # 'p' - 10: 2, # 'r' - 5: 2, # 's' - 3: 2, # 't' - 21: 0, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 1, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 0, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 53: { # 'J' - 28: 2, # 'A' - 40: 0, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 1, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 1, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 2, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 1, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 0, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 1, # 'o' - 23: 0, # 'p' - 10: 0, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 2, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 0, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 0, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 2, # 'á' - 15: 1, # 'é' - 30: 0, # 'í' - 25: 2, # 'ó' - 24: 2, # 'ö' - 31: 1, # 'ú' - 29: 0, # 'ü' - 42: 1, # 'ő' - 56: 0, # 'ű' - }, - 36: { # 'K' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 0, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 2, # 'O' - 46: 0, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 0, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 2, # 'e' - 27: 1, # 'f' - 12: 0, # 'g' - 20: 1, # 'h' - 9: 3, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 1, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 8: 2, # 'o' - 23: 0, # 'p' - 10: 2, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 1, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 0, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 2, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 2, # 'á' - 15: 2, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 2, # 'ö' - 31: 1, # 'ú' - 29: 2, # 'ü' - 42: 1, # 'ő' - 56: 0, # 'ű' - }, - 41: { # 'L' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 2, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 2, # 'O' - 46: 0, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 2, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 1, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 3, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 2, # 'i' - 22: 1, # 'j' - 7: 0, # 'k' - 6: 1, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 2, # 'o' - 23: 0, # 'p' - 10: 0, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 2, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 0, # 'z' - 51: 2, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 2, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 0, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 34: { # 'M' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 0, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 1, # 'Z' - 2: 3, # 'a' - 18: 0, # 'b' - 26: 1, # 'c' - 17: 0, # 'd' - 1: 3, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 3, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 0, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 8: 3, # 'o' - 23: 0, # 'p' - 10: 1, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 2, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 0, # 'z' - 51: 2, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 2, # 'á' - 15: 2, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 1, # 'ű' - }, - 35: { # 'N' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 2, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 2, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 2, # 'Y' - 52: 1, # 'Z' - 2: 3, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 3, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 2, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 0, # 'l' - 13: 0, # 'm' - 4: 1, # 'n' - 8: 2, # 'o' - 23: 0, # 'p' - 10: 0, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 1, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 2, # 'y' - 11: 0, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 1, # 'á' - 15: 2, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 1, # 'ő' - 56: 0, # 'ű' - }, - 47: { # 'O' - 28: 1, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 1, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 2, # 'K' - 41: 2, # 'L' - 34: 2, # 'M' - 35: 2, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 2, # 'R' - 33: 2, # 'S' - 37: 2, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 1, # 'Z' - 2: 0, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 1, # 'd' - 1: 1, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 1, # 'h' - 9: 1, # 'i' - 22: 1, # 'j' - 7: 2, # 'k' - 6: 2, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 8: 1, # 'o' - 23: 1, # 'p' - 10: 2, # 'r' - 5: 1, # 's' - 3: 2, # 't' - 21: 1, # 'u' - 19: 0, # 'v' - 62: 1, # 'x' - 16: 0, # 'y' - 11: 1, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 0, # 'Í' - 58: 1, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 46: { # 'P' - 28: 1, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 1, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 0, # 'M' - 35: 1, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 2, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 1, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 2, # 'e' - 27: 1, # 'f' - 12: 0, # 'g' - 20: 1, # 'h' - 9: 2, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 1, # 'l' - 13: 0, # 'm' - 4: 1, # 'n' - 8: 2, # 'o' - 23: 0, # 'p' - 10: 2, # 'r' - 5: 1, # 's' - 3: 0, # 't' - 21: 1, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 0, # 'z' - 51: 2, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 0, # 'Ú' - 63: 1, # 'Ü' - 14: 3, # 'á' - 15: 2, # 'é' - 30: 0, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 0, # 'ú' - 29: 1, # 'ü' - 42: 1, # 'ő' - 56: 0, # 'ű' - }, - 43: { # 'R' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 2, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 2, # 'S' - 37: 2, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 1, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 2, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 1, # 'h' - 9: 2, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 0, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 2, # 'o' - 23: 0, # 'p' - 10: 0, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 1, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 0, # 'z' - 51: 2, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 2, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 2, # 'á' - 15: 2, # 'é' - 30: 1, # 'í' - 25: 2, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 33: { # 'S' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 2, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 2, # 'S' - 37: 2, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 3, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 1, # 'c' - 17: 0, # 'd' - 1: 2, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 1, # 'h' - 9: 2, # 'i' - 22: 0, # 'j' - 7: 1, # 'k' - 6: 1, # 'l' - 13: 1, # 'm' - 4: 0, # 'n' - 8: 2, # 'o' - 23: 1, # 'p' - 10: 0, # 'r' - 5: 0, # 's' - 3: 1, # 't' - 21: 1, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 3, # 'z' - 51: 2, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 2, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 37: { # 'T' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 2, # 'O' - 46: 1, # 'P' - 43: 2, # 'R' - 33: 1, # 'S' - 37: 2, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 1, # 'Z' - 2: 2, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 2, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 1, # 'h' - 9: 2, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 0, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 2, # 'o' - 23: 0, # 'p' - 10: 1, # 'r' - 5: 1, # 's' - 3: 0, # 't' - 21: 2, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 1, # 'z' - 51: 2, # 'Á' - 44: 2, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 2, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 2, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 57: { # 'U' - 28: 1, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 1, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 2, # 'S' - 37: 1, # 'T' - 57: 0, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 1, # 'Z' - 2: 0, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 1, # 'd' - 1: 1, # 'e' - 27: 0, # 'f' - 12: 2, # 'g' - 20: 0, # 'h' - 9: 0, # 'i' - 22: 1, # 'j' - 7: 1, # 'k' - 6: 1, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 8: 0, # 'o' - 23: 1, # 'p' - 10: 1, # 'r' - 5: 1, # 's' - 3: 1, # 't' - 21: 0, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 1, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 1, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 48: { # 'V' - 28: 2, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 0, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 2, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 2, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 1, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 2, # 'o' - 23: 0, # 'p' - 10: 0, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 1, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 0, # 'z' - 51: 2, # 'Á' - 44: 2, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 0, # 'Ú' - 63: 1, # 'Ü' - 14: 2, # 'á' - 15: 2, # 'é' - 30: 1, # 'í' - 25: 0, # 'ó' - 24: 1, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 55: { # 'Y' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 1, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 2, # 'Z' - 2: 1, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 1, # 'd' - 1: 1, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 0, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 0, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 8: 1, # 'o' - 23: 1, # 'p' - 10: 0, # 'r' - 5: 0, # 's' - 3: 0, # 't' - 21: 0, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 0, # 'z' - 51: 1, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 52: { # 'Z' - 28: 2, # 'A' - 40: 1, # 'B' - 54: 0, # 'C' - 45: 1, # 'D' - 32: 2, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 2, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 2, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 2, # 'S' - 37: 1, # 'T' - 57: 1, # 'U' - 48: 1, # 'V' - 55: 1, # 'Y' - 52: 1, # 'Z' - 2: 1, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 1, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 1, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 0, # 'l' - 13: 0, # 'm' - 4: 1, # 'n' - 8: 1, # 'o' - 23: 0, # 'p' - 10: 1, # 'r' - 5: 2, # 's' - 3: 0, # 't' - 21: 1, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 0, # 'z' - 51: 2, # 'Á' - 44: 1, # 'É' - 61: 1, # 'Í' - 58: 1, # 'Ó' - 59: 1, # 'Ö' - 60: 1, # 'Ú' - 63: 1, # 'Ü' - 14: 1, # 'á' - 15: 1, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 2: { # 'a' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 1, # 'a' - 18: 3, # 'b' - 26: 3, # 'c' - 17: 3, # 'd' - 1: 2, # 'e' - 27: 2, # 'f' - 12: 3, # 'g' - 20: 3, # 'h' - 9: 3, # 'i' - 22: 3, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 2, # 'o' - 23: 3, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 3, # 'v' - 62: 1, # 'x' - 16: 2, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 1, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 18: { # 'b' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 3, # 'b' - 26: 1, # 'c' - 17: 1, # 'd' - 1: 3, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 1, # 'h' - 9: 3, # 'i' - 22: 2, # 'j' - 7: 2, # 'k' - 6: 2, # 'l' - 13: 1, # 'm' - 4: 2, # 'n' - 8: 3, # 'o' - 23: 1, # 'p' - 10: 3, # 'r' - 5: 2, # 's' - 3: 1, # 't' - 21: 3, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 1, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 2, # 'í' - 25: 3, # 'ó' - 24: 2, # 'ö' - 31: 2, # 'ú' - 29: 2, # 'ü' - 42: 2, # 'ő' - 56: 1, # 'ű' - }, - 26: { # 'c' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 1, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 1, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 2, # 'a' - 18: 1, # 'b' - 26: 2, # 'c' - 17: 1, # 'd' - 1: 3, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 3, # 'h' - 9: 3, # 'i' - 22: 1, # 'j' - 7: 2, # 'k' - 6: 1, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 8: 3, # 'o' - 23: 1, # 'p' - 10: 2, # 'r' - 5: 3, # 's' - 3: 2, # 't' - 21: 2, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 2, # 'á' - 15: 2, # 'é' - 30: 2, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 17: { # 'd' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 2, # 'b' - 26: 1, # 'c' - 17: 2, # 'd' - 1: 3, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 2, # 'h' - 9: 3, # 'i' - 22: 3, # 'j' - 7: 2, # 'k' - 6: 1, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 8: 3, # 'o' - 23: 1, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 3, # 'v' - 62: 0, # 'x' - 16: 2, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 3, # 'í' - 25: 3, # 'ó' - 24: 3, # 'ö' - 31: 2, # 'ú' - 29: 2, # 'ü' - 42: 2, # 'ő' - 56: 1, # 'ű' - }, - 1: { # 'e' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 2, # 'a' - 18: 3, # 'b' - 26: 3, # 'c' - 17: 3, # 'd' - 1: 2, # 'e' - 27: 3, # 'f' - 12: 3, # 'g' - 20: 3, # 'h' - 9: 3, # 'i' - 22: 3, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 2, # 'o' - 23: 3, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 2, # 'u' - 19: 3, # 'v' - 62: 2, # 'x' - 16: 2, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 27: { # 'f' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 1, # 'd' - 1: 3, # 'e' - 27: 2, # 'f' - 12: 1, # 'g' - 20: 1, # 'h' - 9: 3, # 'i' - 22: 2, # 'j' - 7: 1, # 'k' - 6: 1, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 8: 3, # 'o' - 23: 0, # 'p' - 10: 3, # 'r' - 5: 1, # 's' - 3: 1, # 't' - 21: 2, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 0, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 3, # 'ö' - 31: 1, # 'ú' - 29: 2, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 12: { # 'g' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 3, # 'b' - 26: 2, # 'c' - 17: 2, # 'd' - 1: 3, # 'e' - 27: 2, # 'f' - 12: 3, # 'g' - 20: 3, # 'h' - 9: 3, # 'i' - 22: 3, # 'j' - 7: 2, # 'k' - 6: 3, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 8: 3, # 'o' - 23: 1, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 3, # 'v' - 62: 0, # 'x' - 16: 3, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 2, # 'í' - 25: 3, # 'ó' - 24: 2, # 'ö' - 31: 2, # 'ú' - 29: 2, # 'ü' - 42: 2, # 'ő' - 56: 1, # 'ű' - }, - 20: { # 'h' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 0, # 'd' - 1: 3, # 'e' - 27: 0, # 'f' - 12: 1, # 'g' - 20: 2, # 'h' - 9: 3, # 'i' - 22: 1, # 'j' - 7: 1, # 'k' - 6: 1, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 8: 3, # 'o' - 23: 0, # 'p' - 10: 1, # 'r' - 5: 2, # 's' - 3: 1, # 't' - 21: 3, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 2, # 'y' - 11: 0, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 3, # 'í' - 25: 2, # 'ó' - 24: 2, # 'ö' - 31: 2, # 'ú' - 29: 1, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 9: { # 'i' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 3, # 'b' - 26: 3, # 'c' - 17: 3, # 'd' - 1: 3, # 'e' - 27: 3, # 'f' - 12: 3, # 'g' - 20: 3, # 'h' - 9: 2, # 'i' - 22: 2, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 2, # 'o' - 23: 2, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 3, # 'v' - 62: 1, # 'x' - 16: 1, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 2, # 'é' - 30: 1, # 'í' - 25: 3, # 'ó' - 24: 1, # 'ö' - 31: 2, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 1, # 'ű' - }, - 22: { # 'j' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 2, # 'b' - 26: 1, # 'c' - 17: 3, # 'd' - 1: 3, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 2, # 'h' - 9: 1, # 'i' - 22: 2, # 'j' - 7: 2, # 'k' - 6: 2, # 'l' - 13: 1, # 'm' - 4: 2, # 'n' - 8: 3, # 'o' - 23: 1, # 'p' - 10: 2, # 'r' - 5: 2, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 1, # 'í' - 25: 3, # 'ó' - 24: 3, # 'ö' - 31: 3, # 'ú' - 29: 2, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 7: { # 'k' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 3, # 'b' - 26: 2, # 'c' - 17: 1, # 'd' - 1: 3, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 2, # 'h' - 9: 3, # 'i' - 22: 2, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 1, # 'm' - 4: 3, # 'n' - 8: 3, # 'o' - 23: 1, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 2, # 'v' - 62: 0, # 'x' - 16: 2, # 'y' - 11: 1, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 3, # 'í' - 25: 2, # 'ó' - 24: 3, # 'ö' - 31: 1, # 'ú' - 29: 3, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 6: { # 'l' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 1, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 1, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 2, # 'b' - 26: 3, # 'c' - 17: 3, # 'd' - 1: 3, # 'e' - 27: 3, # 'f' - 12: 3, # 'g' - 20: 3, # 'h' - 9: 3, # 'i' - 22: 3, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 3, # 'o' - 23: 2, # 'p' - 10: 2, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 3, # 'v' - 62: 0, # 'x' - 16: 3, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 3, # 'í' - 25: 3, # 'ó' - 24: 3, # 'ö' - 31: 2, # 'ú' - 29: 2, # 'ü' - 42: 3, # 'ő' - 56: 1, # 'ű' - }, - 13: { # 'm' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 3, # 'b' - 26: 2, # 'c' - 17: 1, # 'd' - 1: 3, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 2, # 'h' - 9: 3, # 'i' - 22: 2, # 'j' - 7: 1, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 2, # 'n' - 8: 3, # 'o' - 23: 3, # 'p' - 10: 2, # 'r' - 5: 2, # 's' - 3: 2, # 't' - 21: 3, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 2, # 'í' - 25: 2, # 'ó' - 24: 2, # 'ö' - 31: 2, # 'ú' - 29: 2, # 'ü' - 42: 1, # 'ő' - 56: 2, # 'ű' - }, - 4: { # 'n' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 3, # 'b' - 26: 3, # 'c' - 17: 3, # 'd' - 1: 3, # 'e' - 27: 2, # 'f' - 12: 3, # 'g' - 20: 3, # 'h' - 9: 3, # 'i' - 22: 2, # 'j' - 7: 3, # 'k' - 6: 2, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 8: 3, # 'o' - 23: 2, # 'p' - 10: 2, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 2, # 'v' - 62: 1, # 'x' - 16: 3, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 2, # 'í' - 25: 2, # 'ó' - 24: 3, # 'ö' - 31: 2, # 'ú' - 29: 3, # 'ü' - 42: 2, # 'ő' - 56: 1, # 'ű' - }, - 8: { # 'o' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 1, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 2, # 'a' - 18: 3, # 'b' - 26: 3, # 'c' - 17: 3, # 'd' - 1: 2, # 'e' - 27: 2, # 'f' - 12: 3, # 'g' - 20: 3, # 'h' - 9: 2, # 'i' - 22: 2, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 1, # 'o' - 23: 3, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 2, # 'u' - 19: 3, # 'v' - 62: 1, # 'x' - 16: 1, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 1, # 'á' - 15: 2, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 23: { # 'p' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 1, # 'b' - 26: 2, # 'c' - 17: 1, # 'd' - 1: 3, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 2, # 'h' - 9: 3, # 'i' - 22: 2, # 'j' - 7: 2, # 'k' - 6: 3, # 'l' - 13: 1, # 'm' - 4: 2, # 'n' - 8: 3, # 'o' - 23: 3, # 'p' - 10: 3, # 'r' - 5: 2, # 's' - 3: 2, # 't' - 21: 3, # 'u' - 19: 2, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 2, # 'í' - 25: 2, # 'ó' - 24: 2, # 'ö' - 31: 1, # 'ú' - 29: 2, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 10: { # 'r' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 3, # 'b' - 26: 3, # 'c' - 17: 3, # 'd' - 1: 3, # 'e' - 27: 2, # 'f' - 12: 3, # 'g' - 20: 2, # 'h' - 9: 3, # 'i' - 22: 3, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 3, # 'o' - 23: 2, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 3, # 'v' - 62: 1, # 'x' - 16: 2, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 2, # 'í' - 25: 3, # 'ó' - 24: 3, # 'ö' - 31: 3, # 'ú' - 29: 3, # 'ü' - 42: 2, # 'ő' - 56: 2, # 'ű' - }, - 5: { # 's' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 3, # 'b' - 26: 2, # 'c' - 17: 2, # 'd' - 1: 3, # 'e' - 27: 2, # 'f' - 12: 2, # 'g' - 20: 2, # 'h' - 9: 3, # 'i' - 22: 1, # 'j' - 7: 3, # 'k' - 6: 2, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 3, # 'o' - 23: 2, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 2, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 3, # 'í' - 25: 3, # 'ó' - 24: 3, # 'ö' - 31: 3, # 'ú' - 29: 3, # 'ü' - 42: 2, # 'ő' - 56: 1, # 'ű' - }, - 3: { # 't' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 3, # 'b' - 26: 2, # 'c' - 17: 1, # 'd' - 1: 3, # 'e' - 27: 2, # 'f' - 12: 1, # 'g' - 20: 3, # 'h' - 9: 3, # 'i' - 22: 3, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 8: 3, # 'o' - 23: 1, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 3, # 'v' - 62: 0, # 'x' - 16: 3, # 'y' - 11: 1, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 2, # 'í' - 25: 3, # 'ó' - 24: 3, # 'ö' - 31: 3, # 'ú' - 29: 3, # 'ü' - 42: 3, # 'ő' - 56: 2, # 'ű' - }, - 21: { # 'u' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 1, # 'a' - 18: 2, # 'b' - 26: 2, # 'c' - 17: 3, # 'd' - 1: 2, # 'e' - 27: 1, # 'f' - 12: 3, # 'g' - 20: 2, # 'h' - 9: 2, # 'i' - 22: 2, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 1, # 'o' - 23: 2, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 1, # 'u' - 19: 3, # 'v' - 62: 1, # 'x' - 16: 1, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 2, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 0, # 'ö' - 31: 1, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 19: { # 'v' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 2, # 'b' - 26: 1, # 'c' - 17: 1, # 'd' - 1: 3, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 1, # 'h' - 9: 3, # 'i' - 22: 1, # 'j' - 7: 1, # 'k' - 6: 1, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 8: 3, # 'o' - 23: 1, # 'p' - 10: 1, # 'r' - 5: 2, # 's' - 3: 2, # 't' - 21: 2, # 'u' - 19: 2, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 1, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 2, # 'í' - 25: 2, # 'ó' - 24: 2, # 'ö' - 31: 1, # 'ú' - 29: 2, # 'ü' - 42: 1, # 'ő' - 56: 1, # 'ű' - }, - 62: { # 'x' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 1, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 0, # 'd' - 1: 1, # 'e' - 27: 1, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 1, # 'i' - 22: 0, # 'j' - 7: 1, # 'k' - 6: 1, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 8: 1, # 'o' - 23: 1, # 'p' - 10: 1, # 'r' - 5: 1, # 's' - 3: 1, # 't' - 21: 1, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 0, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 1, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 1, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 16: { # 'y' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 2, # 'b' - 26: 1, # 'c' - 17: 1, # 'd' - 1: 3, # 'e' - 27: 2, # 'f' - 12: 2, # 'g' - 20: 2, # 'h' - 9: 3, # 'i' - 22: 2, # 'j' - 7: 2, # 'k' - 6: 2, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 8: 3, # 'o' - 23: 2, # 'p' - 10: 2, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 3, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 2, # 'í' - 25: 2, # 'ó' - 24: 3, # 'ö' - 31: 2, # 'ú' - 29: 2, # 'ü' - 42: 1, # 'ő' - 56: 2, # 'ű' - }, - 11: { # 'z' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 3, # 'a' - 18: 2, # 'b' - 26: 1, # 'c' - 17: 3, # 'd' - 1: 3, # 'e' - 27: 1, # 'f' - 12: 2, # 'g' - 20: 2, # 'h' - 9: 3, # 'i' - 22: 1, # 'j' - 7: 3, # 'k' - 6: 2, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 3, # 'o' - 23: 1, # 'p' - 10: 2, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 3, # 'u' - 19: 2, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 3, # 'á' - 15: 3, # 'é' - 30: 3, # 'í' - 25: 3, # 'ó' - 24: 3, # 'ö' - 31: 2, # 'ú' - 29: 3, # 'ü' - 42: 2, # 'ő' - 56: 1, # 'ű' - }, - 51: { # 'Á' - 28: 0, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 0, # 'E' - 50: 1, # 'F' - 49: 2, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 2, # 'L' - 34: 1, # 'M' - 35: 2, # 'N' - 47: 0, # 'O' - 46: 1, # 'P' - 43: 2, # 'R' - 33: 2, # 'S' - 37: 1, # 'T' - 57: 0, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 1, # 'Z' - 2: 0, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 1, # 'd' - 1: 0, # 'e' - 27: 0, # 'f' - 12: 1, # 'g' - 20: 1, # 'h' - 9: 0, # 'i' - 22: 1, # 'j' - 7: 1, # 'k' - 6: 2, # 'l' - 13: 2, # 'm' - 4: 0, # 'n' - 8: 0, # 'o' - 23: 1, # 'p' - 10: 1, # 'r' - 5: 1, # 's' - 3: 1, # 't' - 21: 0, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 1, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 1, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 44: { # 'É' - 28: 0, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 1, # 'E' - 50: 0, # 'F' - 49: 2, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 2, # 'L' - 34: 1, # 'M' - 35: 2, # 'N' - 47: 0, # 'O' - 46: 1, # 'P' - 43: 2, # 'R' - 33: 2, # 'S' - 37: 2, # 'T' - 57: 0, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 1, # 'Z' - 2: 0, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 1, # 'd' - 1: 0, # 'e' - 27: 0, # 'f' - 12: 1, # 'g' - 20: 1, # 'h' - 9: 0, # 'i' - 22: 1, # 'j' - 7: 1, # 'k' - 6: 2, # 'l' - 13: 1, # 'm' - 4: 2, # 'n' - 8: 0, # 'o' - 23: 1, # 'p' - 10: 2, # 'r' - 5: 3, # 's' - 3: 1, # 't' - 21: 0, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 0, # 'z' - 51: 0, # 'Á' - 44: 1, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 61: { # 'Í' - 28: 0, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 0, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 1, # 'J' - 36: 0, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 0, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 0, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 1, # 'Z' - 2: 0, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 0, # 'e' - 27: 0, # 'f' - 12: 2, # 'g' - 20: 0, # 'h' - 9: 0, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 0, # 'l' - 13: 1, # 'm' - 4: 0, # 'n' - 8: 0, # 'o' - 23: 0, # 'p' - 10: 1, # 'r' - 5: 0, # 's' - 3: 1, # 't' - 21: 0, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 1, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 58: { # 'Ó' - 28: 1, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 0, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 1, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 2, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 0, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 0, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 1, # 'Z' - 2: 0, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 1, # 'd' - 1: 0, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 2, # 'h' - 9: 0, # 'i' - 22: 0, # 'j' - 7: 1, # 'k' - 6: 1, # 'l' - 13: 0, # 'm' - 4: 1, # 'n' - 8: 0, # 'o' - 23: 1, # 'p' - 10: 1, # 'r' - 5: 1, # 's' - 3: 0, # 't' - 21: 0, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 1, # 'z' - 51: 0, # 'Á' - 44: 1, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 59: { # 'Ö' - 28: 0, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 0, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 0, # 'O' - 46: 1, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 0, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 1, # 'Z' - 2: 0, # 'a' - 18: 0, # 'b' - 26: 1, # 'c' - 17: 1, # 'd' - 1: 0, # 'e' - 27: 0, # 'f' - 12: 0, # 'g' - 20: 0, # 'h' - 9: 0, # 'i' - 22: 0, # 'j' - 7: 1, # 'k' - 6: 1, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 8: 0, # 'o' - 23: 0, # 'p' - 10: 2, # 'r' - 5: 1, # 's' - 3: 1, # 't' - 21: 0, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 1, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 60: { # 'Ú' - 28: 0, # 'A' - 40: 1, # 'B' - 54: 1, # 'C' - 45: 1, # 'D' - 32: 0, # 'E' - 50: 1, # 'F' - 49: 1, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 0, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 1, # 'Z' - 2: 0, # 'a' - 18: 0, # 'b' - 26: 0, # 'c' - 17: 0, # 'd' - 1: 0, # 'e' - 27: 0, # 'f' - 12: 2, # 'g' - 20: 0, # 'h' - 9: 0, # 'i' - 22: 2, # 'j' - 7: 0, # 'k' - 6: 0, # 'l' - 13: 0, # 'm' - 4: 1, # 'n' - 8: 0, # 'o' - 23: 0, # 'p' - 10: 1, # 'r' - 5: 1, # 's' - 3: 1, # 't' - 21: 0, # 'u' - 19: 0, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 0, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 63: { # 'Ü' - 28: 0, # 'A' - 40: 1, # 'B' - 54: 0, # 'C' - 45: 1, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 1, # 'G' - 38: 1, # 'H' - 39: 0, # 'I' - 53: 1, # 'J' - 36: 1, # 'K' - 41: 1, # 'L' - 34: 1, # 'M' - 35: 1, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 1, # 'R' - 33: 1, # 'S' - 37: 1, # 'T' - 57: 0, # 'U' - 48: 1, # 'V' - 55: 0, # 'Y' - 52: 1, # 'Z' - 2: 0, # 'a' - 18: 1, # 'b' - 26: 0, # 'c' - 17: 1, # 'd' - 1: 0, # 'e' - 27: 0, # 'f' - 12: 1, # 'g' - 20: 0, # 'h' - 9: 0, # 'i' - 22: 0, # 'j' - 7: 0, # 'k' - 6: 1, # 'l' - 13: 0, # 'm' - 4: 1, # 'n' - 8: 0, # 'o' - 23: 0, # 'p' - 10: 1, # 'r' - 5: 1, # 's' - 3: 1, # 't' - 21: 0, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 1, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 14: { # 'á' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 1, # 'a' - 18: 3, # 'b' - 26: 3, # 'c' - 17: 3, # 'd' - 1: 1, # 'e' - 27: 2, # 'f' - 12: 3, # 'g' - 20: 2, # 'h' - 9: 2, # 'i' - 22: 3, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 1, # 'o' - 23: 2, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 2, # 'u' - 19: 3, # 'v' - 62: 0, # 'x' - 16: 1, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 1, # 'á' - 15: 2, # 'é' - 30: 1, # 'í' - 25: 0, # 'ó' - 24: 1, # 'ö' - 31: 0, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 15: { # 'é' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 1, # 'a' - 18: 3, # 'b' - 26: 2, # 'c' - 17: 3, # 'd' - 1: 1, # 'e' - 27: 1, # 'f' - 12: 3, # 'g' - 20: 3, # 'h' - 9: 2, # 'i' - 22: 2, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 1, # 'o' - 23: 3, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 0, # 'u' - 19: 3, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 1, # 'á' - 15: 1, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 30: { # 'í' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 0, # 'a' - 18: 1, # 'b' - 26: 2, # 'c' - 17: 1, # 'd' - 1: 0, # 'e' - 27: 1, # 'f' - 12: 3, # 'g' - 20: 0, # 'h' - 9: 0, # 'i' - 22: 1, # 'j' - 7: 1, # 'k' - 6: 2, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 8: 0, # 'o' - 23: 1, # 'p' - 10: 3, # 'r' - 5: 2, # 's' - 3: 3, # 't' - 21: 0, # 'u' - 19: 3, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 25: { # 'ó' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 2, # 'a' - 18: 3, # 'b' - 26: 2, # 'c' - 17: 3, # 'd' - 1: 1, # 'e' - 27: 2, # 'f' - 12: 2, # 'g' - 20: 2, # 'h' - 9: 2, # 'i' - 22: 2, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 8: 1, # 'o' - 23: 2, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 1, # 'u' - 19: 2, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 1, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 0, # 'ó' - 24: 1, # 'ö' - 31: 1, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 24: { # 'ö' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 0, # 'a' - 18: 3, # 'b' - 26: 1, # 'c' - 17: 2, # 'd' - 1: 0, # 'e' - 27: 1, # 'f' - 12: 2, # 'g' - 20: 1, # 'h' - 9: 0, # 'i' - 22: 1, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 8: 0, # 'o' - 23: 2, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 3, # 't' - 21: 0, # 'u' - 19: 3, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 3, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 31: { # 'ú' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 1, # 'a' - 18: 1, # 'b' - 26: 2, # 'c' - 17: 1, # 'd' - 1: 1, # 'e' - 27: 2, # 'f' - 12: 3, # 'g' - 20: 1, # 'h' - 9: 1, # 'i' - 22: 3, # 'j' - 7: 1, # 'k' - 6: 3, # 'l' - 13: 1, # 'm' - 4: 2, # 'n' - 8: 0, # 'o' - 23: 1, # 'p' - 10: 3, # 'r' - 5: 3, # 's' - 3: 2, # 't' - 21: 1, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 1, # 'á' - 15: 1, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 29: { # 'ü' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 1, # 'a' - 18: 1, # 'b' - 26: 1, # 'c' - 17: 2, # 'd' - 1: 1, # 'e' - 27: 1, # 'f' - 12: 3, # 'g' - 20: 2, # 'h' - 9: 1, # 'i' - 22: 1, # 'j' - 7: 3, # 'k' - 6: 3, # 'l' - 13: 1, # 'm' - 4: 3, # 'n' - 8: 0, # 'o' - 23: 1, # 'p' - 10: 2, # 'r' - 5: 2, # 's' - 3: 2, # 't' - 21: 0, # 'u' - 19: 2, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 1, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 42: { # 'ő' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 1, # 'a' - 18: 2, # 'b' - 26: 1, # 'c' - 17: 2, # 'd' - 1: 1, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 1, # 'h' - 9: 1, # 'i' - 22: 1, # 'j' - 7: 2, # 'k' - 6: 3, # 'l' - 13: 1, # 'm' - 4: 2, # 'n' - 8: 1, # 'o' - 23: 1, # 'p' - 10: 2, # 'r' - 5: 2, # 's' - 3: 2, # 't' - 21: 1, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 1, # 'é' - 30: 1, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 1, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, - 56: { # 'ű' - 28: 0, # 'A' - 40: 0, # 'B' - 54: 0, # 'C' - 45: 0, # 'D' - 32: 0, # 'E' - 50: 0, # 'F' - 49: 0, # 'G' - 38: 0, # 'H' - 39: 0, # 'I' - 53: 0, # 'J' - 36: 0, # 'K' - 41: 0, # 'L' - 34: 0, # 'M' - 35: 0, # 'N' - 47: 0, # 'O' - 46: 0, # 'P' - 43: 0, # 'R' - 33: 0, # 'S' - 37: 0, # 'T' - 57: 0, # 'U' - 48: 0, # 'V' - 55: 0, # 'Y' - 52: 0, # 'Z' - 2: 1, # 'a' - 18: 1, # 'b' - 26: 0, # 'c' - 17: 1, # 'd' - 1: 1, # 'e' - 27: 1, # 'f' - 12: 1, # 'g' - 20: 1, # 'h' - 9: 1, # 'i' - 22: 1, # 'j' - 7: 1, # 'k' - 6: 1, # 'l' - 13: 0, # 'm' - 4: 2, # 'n' - 8: 0, # 'o' - 23: 0, # 'p' - 10: 1, # 'r' - 5: 1, # 's' - 3: 1, # 't' - 21: 0, # 'u' - 19: 1, # 'v' - 62: 0, # 'x' - 16: 0, # 'y' - 11: 2, # 'z' - 51: 0, # 'Á' - 44: 0, # 'É' - 61: 0, # 'Í' - 58: 0, # 'Ó' - 59: 0, # 'Ö' - 60: 0, # 'Ú' - 63: 0, # 'Ü' - 14: 0, # 'á' - 15: 0, # 'é' - 30: 0, # 'í' - 25: 0, # 'ó' - 24: 0, # 'ö' - 31: 0, # 'ú' - 29: 0, # 'ü' - 42: 0, # 'ő' - 56: 0, # 'ű' - }, -} - -# 255: Undefined characters that did not exist in training text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 -# 251: Control characters - -# Character Mapping Table(s): -WINDOWS_1250_HUNGARIAN_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 28, # 'A' - 66: 40, # 'B' - 67: 54, # 'C' - 68: 45, # 'D' - 69: 32, # 'E' - 70: 50, # 'F' - 71: 49, # 'G' - 72: 38, # 'H' - 73: 39, # 'I' - 74: 53, # 'J' - 75: 36, # 'K' - 76: 41, # 'L' - 77: 34, # 'M' - 78: 35, # 'N' - 79: 47, # 'O' - 80: 46, # 'P' - 81: 72, # 'Q' - 82: 43, # 'R' - 83: 33, # 'S' - 84: 37, # 'T' - 85: 57, # 'U' - 86: 48, # 'V' - 87: 64, # 'W' - 88: 68, # 'X' - 89: 55, # 'Y' - 90: 52, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 2, # 'a' - 98: 18, # 'b' - 99: 26, # 'c' - 100: 17, # 'd' - 101: 1, # 'e' - 102: 27, # 'f' - 103: 12, # 'g' - 104: 20, # 'h' - 105: 9, # 'i' - 106: 22, # 'j' - 107: 7, # 'k' - 108: 6, # 'l' - 109: 13, # 'm' - 110: 4, # 'n' - 111: 8, # 'o' - 112: 23, # 'p' - 113: 67, # 'q' - 114: 10, # 'r' - 115: 5, # 's' - 116: 3, # 't' - 117: 21, # 'u' - 118: 19, # 'v' - 119: 65, # 'w' - 120: 62, # 'x' - 121: 16, # 'y' - 122: 11, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 161, # '€' - 129: 162, # None - 130: 163, # '‚' - 131: 164, # None - 132: 165, # '„' - 133: 166, # '…' - 134: 167, # '†' - 135: 168, # '‡' - 136: 169, # None - 137: 170, # '‰' - 138: 171, # 'Š' - 139: 172, # '‹' - 140: 173, # 'Ś' - 141: 174, # 'Ť' - 142: 175, # 'Ž' - 143: 176, # 'Ź' - 144: 177, # None - 145: 178, # '‘' - 146: 179, # '’' - 147: 180, # '“' - 148: 78, # '”' - 149: 181, # '•' - 150: 69, # '–' - 151: 182, # '—' - 152: 183, # None - 153: 184, # '™' - 154: 185, # 'š' - 155: 186, # '›' - 156: 187, # 'ś' - 157: 188, # 'ť' - 158: 189, # 'ž' - 159: 190, # 'ź' - 160: 191, # '\xa0' - 161: 192, # 'ˇ' - 162: 193, # '˘' - 163: 194, # 'Ł' - 164: 195, # '¤' - 165: 196, # 'Ą' - 166: 197, # '¦' - 167: 76, # '§' - 168: 198, # '¨' - 169: 199, # '©' - 170: 200, # 'Ş' - 171: 201, # '«' - 172: 202, # '¬' - 173: 203, # '\xad' - 174: 204, # '®' - 175: 205, # 'Ż' - 176: 81, # '°' - 177: 206, # '±' - 178: 207, # '˛' - 179: 208, # 'ł' - 180: 209, # '´' - 181: 210, # 'µ' - 182: 211, # '¶' - 183: 212, # '·' - 184: 213, # '¸' - 185: 214, # 'ą' - 186: 215, # 'ş' - 187: 216, # '»' - 188: 217, # 'Ľ' - 189: 218, # '˝' - 190: 219, # 'ľ' - 191: 220, # 'ż' - 192: 221, # 'Ŕ' - 193: 51, # 'Á' - 194: 83, # 'Â' - 195: 222, # 'Ă' - 196: 80, # 'Ä' - 197: 223, # 'Ĺ' - 198: 224, # 'Ć' - 199: 225, # 'Ç' - 200: 226, # 'Č' - 201: 44, # 'É' - 202: 227, # 'Ę' - 203: 228, # 'Ë' - 204: 229, # 'Ě' - 205: 61, # 'Í' - 206: 230, # 'Î' - 207: 231, # 'Ď' - 208: 232, # 'Đ' - 209: 233, # 'Ń' - 210: 234, # 'Ň' - 211: 58, # 'Ó' - 212: 235, # 'Ô' - 213: 66, # 'Ő' - 214: 59, # 'Ö' - 215: 236, # '×' - 216: 237, # 'Ř' - 217: 238, # 'Ů' - 218: 60, # 'Ú' - 219: 70, # 'Ű' - 220: 63, # 'Ü' - 221: 239, # 'Ý' - 222: 240, # 'Ţ' - 223: 241, # 'ß' - 224: 84, # 'ŕ' - 225: 14, # 'á' - 226: 75, # 'â' - 227: 242, # 'ă' - 228: 71, # 'ä' - 229: 82, # 'ĺ' - 230: 243, # 'ć' - 231: 73, # 'ç' - 232: 244, # 'č' - 233: 15, # 'é' - 234: 85, # 'ę' - 235: 79, # 'ë' - 236: 86, # 'ě' - 237: 30, # 'í' - 238: 77, # 'î' - 239: 87, # 'ď' - 240: 245, # 'đ' - 241: 246, # 'ń' - 242: 247, # 'ň' - 243: 25, # 'ó' - 244: 74, # 'ô' - 245: 42, # 'ő' - 246: 24, # 'ö' - 247: 248, # '÷' - 248: 249, # 'ř' - 249: 250, # 'ů' - 250: 31, # 'ú' - 251: 56, # 'ű' - 252: 29, # 'ü' - 253: 251, # 'ý' - 254: 252, # 'ţ' - 255: 253, # '˙' -} - -WINDOWS_1250_HUNGARIAN_MODEL = SingleByteCharSetModel(charset_name='windows-1250', - language='Hungarian', - char_to_order_map=WINDOWS_1250_HUNGARIAN_CHAR_TO_ORDER, - language_model=HUNGARIAN_LANG_MODEL, - typical_positive_ratio=0.947368, - keep_ascii_letters=True, - alphabet='ABCDEFGHIJKLMNOPRSTUVZabcdefghijklmnoprstuvzÁÉÍÓÖÚÜáéíóöúüŐőŰű') - -ISO_8859_2_HUNGARIAN_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 28, # 'A' - 66: 40, # 'B' - 67: 54, # 'C' - 68: 45, # 'D' - 69: 32, # 'E' - 70: 50, # 'F' - 71: 49, # 'G' - 72: 38, # 'H' - 73: 39, # 'I' - 74: 53, # 'J' - 75: 36, # 'K' - 76: 41, # 'L' - 77: 34, # 'M' - 78: 35, # 'N' - 79: 47, # 'O' - 80: 46, # 'P' - 81: 71, # 'Q' - 82: 43, # 'R' - 83: 33, # 'S' - 84: 37, # 'T' - 85: 57, # 'U' - 86: 48, # 'V' - 87: 64, # 'W' - 88: 68, # 'X' - 89: 55, # 'Y' - 90: 52, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 2, # 'a' - 98: 18, # 'b' - 99: 26, # 'c' - 100: 17, # 'd' - 101: 1, # 'e' - 102: 27, # 'f' - 103: 12, # 'g' - 104: 20, # 'h' - 105: 9, # 'i' - 106: 22, # 'j' - 107: 7, # 'k' - 108: 6, # 'l' - 109: 13, # 'm' - 110: 4, # 'n' - 111: 8, # 'o' - 112: 23, # 'p' - 113: 67, # 'q' - 114: 10, # 'r' - 115: 5, # 's' - 116: 3, # 't' - 117: 21, # 'u' - 118: 19, # 'v' - 119: 65, # 'w' - 120: 62, # 'x' - 121: 16, # 'y' - 122: 11, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 159, # '\x80' - 129: 160, # '\x81' - 130: 161, # '\x82' - 131: 162, # '\x83' - 132: 163, # '\x84' - 133: 164, # '\x85' - 134: 165, # '\x86' - 135: 166, # '\x87' - 136: 167, # '\x88' - 137: 168, # '\x89' - 138: 169, # '\x8a' - 139: 170, # '\x8b' - 140: 171, # '\x8c' - 141: 172, # '\x8d' - 142: 173, # '\x8e' - 143: 174, # '\x8f' - 144: 175, # '\x90' - 145: 176, # '\x91' - 146: 177, # '\x92' - 147: 178, # '\x93' - 148: 179, # '\x94' - 149: 180, # '\x95' - 150: 181, # '\x96' - 151: 182, # '\x97' - 152: 183, # '\x98' - 153: 184, # '\x99' - 154: 185, # '\x9a' - 155: 186, # '\x9b' - 156: 187, # '\x9c' - 157: 188, # '\x9d' - 158: 189, # '\x9e' - 159: 190, # '\x9f' - 160: 191, # '\xa0' - 161: 192, # 'Ą' - 162: 193, # '˘' - 163: 194, # 'Ł' - 164: 195, # '¤' - 165: 196, # 'Ľ' - 166: 197, # 'Ś' - 167: 75, # '§' - 168: 198, # '¨' - 169: 199, # 'Š' - 170: 200, # 'Ş' - 171: 201, # 'Ť' - 172: 202, # 'Ź' - 173: 203, # '\xad' - 174: 204, # 'Ž' - 175: 205, # 'Ż' - 176: 79, # '°' - 177: 206, # 'ą' - 178: 207, # '˛' - 179: 208, # 'ł' - 180: 209, # '´' - 181: 210, # 'ľ' - 182: 211, # 'ś' - 183: 212, # 'ˇ' - 184: 213, # '¸' - 185: 214, # 'š' - 186: 215, # 'ş' - 187: 216, # 'ť' - 188: 217, # 'ź' - 189: 218, # '˝' - 190: 219, # 'ž' - 191: 220, # 'ż' - 192: 221, # 'Ŕ' - 193: 51, # 'Á' - 194: 81, # 'Â' - 195: 222, # 'Ă' - 196: 78, # 'Ä' - 197: 223, # 'Ĺ' - 198: 224, # 'Ć' - 199: 225, # 'Ç' - 200: 226, # 'Č' - 201: 44, # 'É' - 202: 227, # 'Ę' - 203: 228, # 'Ë' - 204: 229, # 'Ě' - 205: 61, # 'Í' - 206: 230, # 'Î' - 207: 231, # 'Ď' - 208: 232, # 'Đ' - 209: 233, # 'Ń' - 210: 234, # 'Ň' - 211: 58, # 'Ó' - 212: 235, # 'Ô' - 213: 66, # 'Ő' - 214: 59, # 'Ö' - 215: 236, # '×' - 216: 237, # 'Ř' - 217: 238, # 'Ů' - 218: 60, # 'Ú' - 219: 69, # 'Ű' - 220: 63, # 'Ü' - 221: 239, # 'Ý' - 222: 240, # 'Ţ' - 223: 241, # 'ß' - 224: 82, # 'ŕ' - 225: 14, # 'á' - 226: 74, # 'â' - 227: 242, # 'ă' - 228: 70, # 'ä' - 229: 80, # 'ĺ' - 230: 243, # 'ć' - 231: 72, # 'ç' - 232: 244, # 'č' - 233: 15, # 'é' - 234: 83, # 'ę' - 235: 77, # 'ë' - 236: 84, # 'ě' - 237: 30, # 'í' - 238: 76, # 'î' - 239: 85, # 'ď' - 240: 245, # 'đ' - 241: 246, # 'ń' - 242: 247, # 'ň' - 243: 25, # 'ó' - 244: 73, # 'ô' - 245: 42, # 'ő' - 246: 24, # 'ö' - 247: 248, # '÷' - 248: 249, # 'ř' - 249: 250, # 'ů' - 250: 31, # 'ú' - 251: 56, # 'ű' - 252: 29, # 'ü' - 253: 251, # 'ý' - 254: 252, # 'ţ' - 255: 253, # '˙' -} - -ISO_8859_2_HUNGARIAN_MODEL = SingleByteCharSetModel(charset_name='ISO-8859-2', - language='Hungarian', - char_to_order_map=ISO_8859_2_HUNGARIAN_CHAR_TO_ORDER, - language_model=HUNGARIAN_LANG_MODEL, - typical_positive_ratio=0.947368, - keep_ascii_letters=True, - alphabet='ABCDEFGHIJKLMNOPRSTUVZabcdefghijklmnoprstuvzÁÉÍÓÖÚÜáéíóöúüŐőŰű') - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langrussianmodel.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langrussianmodel.py deleted file mode 100644 index c1a060d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langrussianmodel.py +++ /dev/null @@ -1,5717 +0,0 @@ -# -*- coding: utf-8 -*- - -from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel - - -# 3: Positive -# 2: Likely -# 1: Unlikely -# 0: Negative - -RUSSIAN_LANG_MODEL = { - 37: { # 'А' - 37: 0, # 'А' - 44: 1, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 1, # 'Д' - 48: 1, # 'Е' - 56: 1, # 'Ж' - 51: 1, # 'З' - 42: 1, # 'И' - 60: 1, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 2, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 1, # 'Ф' - 55: 1, # 'Х' - 58: 1, # 'Ц' - 50: 1, # 'Ч' - 57: 1, # 'Ш' - 63: 1, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 1, # 'Ю' - 43: 1, # 'Я' - 3: 1, # 'а' - 21: 2, # 'б' - 10: 2, # 'в' - 19: 2, # 'г' - 13: 2, # 'д' - 2: 0, # 'е' - 24: 1, # 'ж' - 20: 1, # 'з' - 4: 0, # 'и' - 23: 1, # 'й' - 11: 2, # 'к' - 8: 3, # 'л' - 12: 2, # 'м' - 5: 2, # 'н' - 1: 0, # 'о' - 15: 2, # 'п' - 9: 2, # 'р' - 7: 2, # 'с' - 6: 2, # 'т' - 14: 2, # 'у' - 39: 2, # 'ф' - 26: 2, # 'х' - 28: 0, # 'ц' - 22: 1, # 'ч' - 25: 2, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 1, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 44: { # 'Б' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 0, # 'П' - 45: 1, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 1, # 'Я' - 3: 2, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 1, # 'д' - 2: 3, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 2, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 2, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 2, # 'ы' - 17: 1, # 'ь' - 30: 2, # 'э' - 27: 1, # 'ю' - 16: 1, # 'я' - }, - 33: { # 'В' - 37: 2, # 'А' - 44: 0, # 'Б' - 33: 1, # 'В' - 46: 0, # 'Г' - 41: 1, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 1, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 1, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 1, # 'Я' - 3: 2, # 'а' - 21: 1, # 'б' - 10: 1, # 'в' - 19: 1, # 'г' - 13: 2, # 'д' - 2: 3, # 'е' - 24: 0, # 'ж' - 20: 2, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 1, # 'к' - 8: 2, # 'л' - 12: 2, # 'м' - 5: 2, # 'н' - 1: 3, # 'о' - 15: 2, # 'п' - 9: 2, # 'р' - 7: 3, # 'с' - 6: 2, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 1, # 'х' - 28: 1, # 'ц' - 22: 2, # 'ч' - 25: 1, # 'ш' - 29: 0, # 'щ' - 54: 1, # 'ъ' - 18: 3, # 'ы' - 17: 1, # 'ь' - 30: 2, # 'э' - 27: 0, # 'ю' - 16: 1, # 'я' - }, - 46: { # 'Г' - 37: 1, # 'А' - 44: 1, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 1, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 1, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 0, # 'б' - 10: 1, # 'в' - 19: 0, # 'г' - 13: 2, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 2, # 'л' - 12: 1, # 'м' - 5: 1, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 2, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 1, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 0, # 'я' - }, - 41: { # 'Д' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 1, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 2, # 'Е' - 56: 1, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 0, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 0, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 1, # 'Ц' - 50: 1, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 1, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 1, # 'Я' - 3: 3, # 'а' - 21: 0, # 'б' - 10: 2, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 3, # 'ж' - 20: 1, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 2, # 'л' - 12: 1, # 'м' - 5: 1, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 2, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 1, # 'ы' - 17: 1, # 'ь' - 30: 2, # 'э' - 27: 1, # 'ю' - 16: 1, # 'я' - }, - 48: { # 'Е' - 37: 1, # 'А' - 44: 1, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 1, # 'Д' - 48: 1, # 'Е' - 56: 1, # 'Ж' - 51: 1, # 'З' - 42: 1, # 'И' - 60: 1, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 2, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 2, # 'Р' - 32: 2, # 'С' - 40: 1, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 1, # 'Х' - 58: 1, # 'Ц' - 50: 1, # 'Ч' - 57: 1, # 'Ш' - 63: 1, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 1, # 'Я' - 3: 0, # 'а' - 21: 0, # 'б' - 10: 2, # 'в' - 19: 2, # 'г' - 13: 2, # 'д' - 2: 2, # 'е' - 24: 1, # 'ж' - 20: 1, # 'з' - 4: 0, # 'и' - 23: 2, # 'й' - 11: 1, # 'к' - 8: 2, # 'л' - 12: 2, # 'м' - 5: 1, # 'н' - 1: 0, # 'о' - 15: 1, # 'п' - 9: 1, # 'р' - 7: 3, # 'с' - 6: 0, # 'т' - 14: 0, # 'у' - 39: 1, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 1, # 'ш' - 29: 2, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 1, # 'ю' - 16: 0, # 'я' - }, - 56: { # 'Ж' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 1, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 1, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 1, # 'б' - 10: 0, # 'в' - 19: 1, # 'г' - 13: 1, # 'д' - 2: 2, # 'е' - 24: 1, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 0, # 'л' - 12: 1, # 'м' - 5: 0, # 'н' - 1: 2, # 'о' - 15: 0, # 'п' - 9: 1, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 2, # 'ю' - 16: 0, # 'я' - }, - 51: { # 'З' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 1, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 0, # 'П' - 45: 1, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 1, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 1, # 'б' - 10: 2, # 'в' - 19: 0, # 'г' - 13: 2, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 1, # 'л' - 12: 1, # 'м' - 5: 2, # 'н' - 1: 2, # 'о' - 15: 0, # 'п' - 9: 1, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 1, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 1, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 1, # 'я' - }, - 42: { # 'И' - 37: 1, # 'А' - 44: 1, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 1, # 'Д' - 48: 2, # 'Е' - 56: 1, # 'Ж' - 51: 1, # 'З' - 42: 1, # 'И' - 60: 1, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 1, # 'Р' - 32: 2, # 'С' - 40: 1, # 'Т' - 52: 0, # 'У' - 53: 1, # 'Ф' - 55: 1, # 'Х' - 58: 1, # 'Ц' - 50: 1, # 'Ч' - 57: 0, # 'Ш' - 63: 1, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 1, # 'Ю' - 43: 1, # 'Я' - 3: 1, # 'а' - 21: 2, # 'б' - 10: 2, # 'в' - 19: 2, # 'г' - 13: 2, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 2, # 'з' - 4: 1, # 'и' - 23: 0, # 'й' - 11: 1, # 'к' - 8: 2, # 'л' - 12: 2, # 'м' - 5: 2, # 'н' - 1: 1, # 'о' - 15: 1, # 'п' - 9: 2, # 'р' - 7: 2, # 'с' - 6: 2, # 'т' - 14: 1, # 'у' - 39: 1, # 'ф' - 26: 2, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 1, # 'ш' - 29: 1, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 1, # 'ю' - 16: 0, # 'я' - }, - 60: { # 'Й' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 1, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 1, # 'Х' - 58: 1, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 0, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 1, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 0, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 0, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 2, # 'о' - 15: 0, # 'п' - 9: 0, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 0, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 36: { # 'К' - 37: 2, # 'А' - 44: 0, # 'Б' - 33: 1, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 1, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 1, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 2, # 'О' - 35: 1, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 1, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 0, # 'б' - 10: 1, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 2, # 'л' - 12: 0, # 'м' - 5: 1, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 2, # 'р' - 7: 2, # 'с' - 6: 2, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 1, # 'ы' - 17: 1, # 'ь' - 30: 2, # 'э' - 27: 1, # 'ю' - 16: 0, # 'я' - }, - 49: { # 'Л' - 37: 2, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 1, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 1, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 0, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 0, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 1, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 1, # 'Ь' - 47: 0, # 'Э' - 59: 1, # 'Ю' - 43: 1, # 'Я' - 3: 2, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 1, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 1, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 1, # 'л' - 12: 0, # 'м' - 5: 1, # 'н' - 1: 2, # 'о' - 15: 0, # 'п' - 9: 0, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 1, # 'ы' - 17: 1, # 'ь' - 30: 2, # 'э' - 27: 2, # 'ю' - 16: 1, # 'я' - }, - 38: { # 'М' - 37: 1, # 'А' - 44: 1, # 'Б' - 33: 1, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 1, # 'Ф' - 55: 1, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 0, # 'Ь' - 47: 1, # 'Э' - 59: 0, # 'Ю' - 43: 1, # 'Я' - 3: 3, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 1, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 1, # 'л' - 12: 1, # 'м' - 5: 2, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 1, # 'р' - 7: 1, # 'с' - 6: 0, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 3, # 'ы' - 17: 1, # 'ь' - 30: 2, # 'э' - 27: 1, # 'ю' - 16: 1, # 'я' - }, - 31: { # 'Н' - 37: 2, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 1, # 'Г' - 41: 1, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 1, # 'З' - 42: 2, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 0, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 1, # 'Ф' - 55: 1, # 'Х' - 58: 1, # 'Ц' - 50: 1, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 1, # 'Ь' - 47: 1, # 'Э' - 59: 0, # 'Ю' - 43: 1, # 'Я' - 3: 3, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 3, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 0, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 1, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 3, # 'у' - 39: 0, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 1, # 'ы' - 17: 2, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 1, # 'я' - }, - 34: { # 'О' - 37: 0, # 'А' - 44: 1, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 2, # 'Д' - 48: 1, # 'Е' - 56: 1, # 'Ж' - 51: 1, # 'З' - 42: 1, # 'И' - 60: 1, # 'Й' - 36: 1, # 'К' - 49: 2, # 'Л' - 38: 1, # 'М' - 31: 2, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 2, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 1, # 'Ф' - 55: 1, # 'Х' - 58: 0, # 'Ц' - 50: 1, # 'Ч' - 57: 1, # 'Ш' - 63: 1, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 1, # 'Я' - 3: 1, # 'а' - 21: 2, # 'б' - 10: 1, # 'в' - 19: 2, # 'г' - 13: 2, # 'д' - 2: 0, # 'е' - 24: 1, # 'ж' - 20: 1, # 'з' - 4: 0, # 'и' - 23: 1, # 'й' - 11: 2, # 'к' - 8: 2, # 'л' - 12: 1, # 'м' - 5: 3, # 'н' - 1: 0, # 'о' - 15: 2, # 'п' - 9: 2, # 'р' - 7: 2, # 'с' - 6: 2, # 'т' - 14: 1, # 'у' - 39: 1, # 'ф' - 26: 2, # 'х' - 28: 1, # 'ц' - 22: 2, # 'ч' - 25: 2, # 'ш' - 29: 1, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 35: { # 'П' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 1, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 2, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 1, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 1, # 'Я' - 3: 2, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 2, # 'л' - 12: 0, # 'м' - 5: 1, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 3, # 'р' - 7: 1, # 'с' - 6: 1, # 'т' - 14: 2, # 'у' - 39: 1, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 1, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 1, # 'ы' - 17: 2, # 'ь' - 30: 1, # 'э' - 27: 0, # 'ю' - 16: 2, # 'я' - }, - 45: { # 'Р' - 37: 2, # 'А' - 44: 1, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 1, # 'Д' - 48: 2, # 'Е' - 56: 1, # 'Ж' - 51: 0, # 'З' - 42: 2, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 2, # 'О' - 35: 0, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 1, # 'Х' - 58: 1, # 'Ц' - 50: 1, # 'Ч' - 57: 1, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 1, # 'Ь' - 47: 1, # 'Э' - 59: 1, # 'Ю' - 43: 1, # 'Я' - 3: 3, # 'а' - 21: 0, # 'б' - 10: 1, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 1, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 0, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 1, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 2, # 'ы' - 17: 0, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 2, # 'я' - }, - 32: { # 'С' - 37: 1, # 'А' - 44: 1, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 1, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 2, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 1, # 'Х' - 58: 1, # 'Ц' - 50: 1, # 'Ч' - 57: 1, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 1, # 'Ь' - 47: 1, # 'Э' - 59: 1, # 'Ю' - 43: 1, # 'Я' - 3: 2, # 'а' - 21: 1, # 'б' - 10: 2, # 'в' - 19: 1, # 'г' - 13: 2, # 'д' - 2: 3, # 'е' - 24: 1, # 'ж' - 20: 1, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 2, # 'к' - 8: 2, # 'л' - 12: 2, # 'м' - 5: 2, # 'н' - 1: 2, # 'о' - 15: 2, # 'п' - 9: 2, # 'р' - 7: 1, # 'с' - 6: 3, # 'т' - 14: 2, # 'у' - 39: 1, # 'ф' - 26: 1, # 'х' - 28: 1, # 'ц' - 22: 1, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 1, # 'ъ' - 18: 1, # 'ы' - 17: 1, # 'ь' - 30: 2, # 'э' - 27: 1, # 'ю' - 16: 1, # 'я' - }, - 40: { # 'Т' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 1, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 2, # 'О' - 35: 0, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 1, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 1, # 'Ь' - 47: 1, # 'Э' - 59: 1, # 'Ю' - 43: 1, # 'Я' - 3: 3, # 'а' - 21: 1, # 'б' - 10: 2, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 3, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 1, # 'к' - 8: 1, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 2, # 'р' - 7: 1, # 'с' - 6: 0, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 1, # 'щ' - 54: 0, # 'ъ' - 18: 3, # 'ы' - 17: 1, # 'ь' - 30: 2, # 'э' - 27: 1, # 'ю' - 16: 1, # 'я' - }, - 52: { # 'У' - 37: 1, # 'А' - 44: 1, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 1, # 'Д' - 48: 1, # 'Е' - 56: 1, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 1, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 1, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 1, # 'Х' - 58: 0, # 'Ц' - 50: 1, # 'Ч' - 57: 1, # 'Ш' - 63: 1, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 1, # 'Ю' - 43: 0, # 'Я' - 3: 1, # 'а' - 21: 2, # 'б' - 10: 2, # 'в' - 19: 1, # 'г' - 13: 2, # 'д' - 2: 1, # 'е' - 24: 2, # 'ж' - 20: 2, # 'з' - 4: 2, # 'и' - 23: 1, # 'й' - 11: 1, # 'к' - 8: 2, # 'л' - 12: 2, # 'м' - 5: 1, # 'н' - 1: 2, # 'о' - 15: 1, # 'п' - 9: 2, # 'р' - 7: 2, # 'с' - 6: 2, # 'т' - 14: 0, # 'у' - 39: 1, # 'ф' - 26: 1, # 'х' - 28: 1, # 'ц' - 22: 2, # 'ч' - 25: 1, # 'ш' - 29: 1, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 2, # 'э' - 27: 1, # 'ю' - 16: 0, # 'я' - }, - 53: { # 'Ф' - 37: 1, # 'А' - 44: 1, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 1, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 1, # 'О' - 35: 0, # 'П' - 45: 1, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 2, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 2, # 'о' - 15: 0, # 'п' - 9: 2, # 'р' - 7: 0, # 'с' - 6: 1, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 1, # 'ь' - 30: 2, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 55: { # 'Х' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 1, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 0, # 'б' - 10: 2, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 2, # 'л' - 12: 1, # 'м' - 5: 0, # 'н' - 1: 2, # 'о' - 15: 0, # 'п' - 9: 2, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 1, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 1, # 'ь' - 30: 1, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 58: { # 'Ц' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 1, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 1, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 1, # 'а' - 21: 0, # 'б' - 10: 1, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 0, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 0, # 'о' - 15: 0, # 'п' - 9: 0, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 1, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 1, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 1, # 'ю' - 16: 0, # 'я' - }, - 50: { # 'Ч' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 0, # 'О' - 35: 1, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 1, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 1, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 1, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 1, # 'о' - 15: 0, # 'п' - 9: 1, # 'р' - 7: 0, # 'с' - 6: 3, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 1, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 57: { # 'Ш' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 1, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 0, # 'б' - 10: 1, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 1, # 'и' - 23: 0, # 'й' - 11: 1, # 'к' - 8: 2, # 'л' - 12: 1, # 'м' - 5: 1, # 'н' - 1: 2, # 'о' - 15: 2, # 'п' - 9: 1, # 'р' - 7: 0, # 'с' - 6: 2, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 1, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 1, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 63: { # 'Щ' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 1, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 1, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 1, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 1, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 0, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 1, # 'о' - 15: 0, # 'п' - 9: 0, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 1, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 62: { # 'Ы' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 1, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 0, # 'О' - 35: 1, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 1, # 'Х' - 58: 1, # 'Ц' - 50: 0, # 'Ч' - 57: 1, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 0, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 0, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 0, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 0, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 0, # 'о' - 15: 0, # 'п' - 9: 0, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 0, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 61: { # 'Ь' - 37: 0, # 'А' - 44: 1, # 'Б' - 33: 1, # 'В' - 46: 0, # 'Г' - 41: 1, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 0, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 1, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 1, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 1, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 1, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 1, # 'Ю' - 43: 1, # 'Я' - 3: 0, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 0, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 0, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 0, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 0, # 'о' - 15: 0, # 'п' - 9: 0, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 0, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 47: { # 'Э' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 1, # 'В' - 46: 0, # 'Г' - 41: 1, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 1, # 'Й' - 36: 1, # 'К' - 49: 1, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 0, # 'О' - 35: 1, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 1, # 'а' - 21: 1, # 'б' - 10: 2, # 'в' - 19: 1, # 'г' - 13: 2, # 'д' - 2: 0, # 'е' - 24: 1, # 'ж' - 20: 0, # 'з' - 4: 0, # 'и' - 23: 2, # 'й' - 11: 2, # 'к' - 8: 2, # 'л' - 12: 2, # 'м' - 5: 2, # 'н' - 1: 0, # 'о' - 15: 1, # 'п' - 9: 2, # 'р' - 7: 1, # 'с' - 6: 3, # 'т' - 14: 1, # 'у' - 39: 1, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 1, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 59: { # 'Ю' - 37: 1, # 'А' - 44: 1, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 1, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 1, # 'Р' - 32: 0, # 'С' - 40: 1, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 1, # 'Ч' - 57: 0, # 'Ш' - 63: 1, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 0, # 'а' - 21: 1, # 'б' - 10: 0, # 'в' - 19: 1, # 'г' - 13: 1, # 'д' - 2: 0, # 'е' - 24: 1, # 'ж' - 20: 0, # 'з' - 4: 0, # 'и' - 23: 0, # 'й' - 11: 1, # 'к' - 8: 2, # 'л' - 12: 1, # 'м' - 5: 2, # 'н' - 1: 0, # 'о' - 15: 1, # 'п' - 9: 1, # 'р' - 7: 1, # 'с' - 6: 0, # 'т' - 14: 0, # 'у' - 39: 0, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 43: { # 'Я' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 1, # 'В' - 46: 1, # 'Г' - 41: 0, # 'Д' - 48: 1, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 1, # 'С' - 40: 1, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 1, # 'Х' - 58: 0, # 'Ц' - 50: 1, # 'Ч' - 57: 0, # 'Ш' - 63: 1, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 1, # 'Ю' - 43: 1, # 'Я' - 3: 0, # 'а' - 21: 1, # 'б' - 10: 1, # 'в' - 19: 1, # 'г' - 13: 1, # 'д' - 2: 0, # 'е' - 24: 0, # 'ж' - 20: 1, # 'з' - 4: 0, # 'и' - 23: 1, # 'й' - 11: 1, # 'к' - 8: 1, # 'л' - 12: 1, # 'м' - 5: 2, # 'н' - 1: 0, # 'о' - 15: 1, # 'п' - 9: 1, # 'р' - 7: 1, # 'с' - 6: 0, # 'т' - 14: 0, # 'у' - 39: 0, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 1, # 'ш' - 29: 1, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 3: { # 'а' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 1, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 3, # 'б' - 10: 3, # 'в' - 19: 3, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 3, # 'ж' - 20: 3, # 'з' - 4: 3, # 'и' - 23: 3, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 2, # 'о' - 15: 3, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 3, # 'у' - 39: 2, # 'ф' - 26: 3, # 'х' - 28: 3, # 'ц' - 22: 3, # 'ч' - 25: 3, # 'ш' - 29: 3, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 2, # 'э' - 27: 3, # 'ю' - 16: 3, # 'я' - }, - 21: { # 'б' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 1, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 2, # 'б' - 10: 2, # 'в' - 19: 1, # 'г' - 13: 2, # 'д' - 2: 3, # 'е' - 24: 2, # 'ж' - 20: 1, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 2, # 'к' - 8: 3, # 'л' - 12: 2, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 1, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 2, # 'т' - 14: 3, # 'у' - 39: 0, # 'ф' - 26: 2, # 'х' - 28: 1, # 'ц' - 22: 1, # 'ч' - 25: 2, # 'ш' - 29: 3, # 'щ' - 54: 2, # 'ъ' - 18: 3, # 'ы' - 17: 2, # 'ь' - 30: 1, # 'э' - 27: 2, # 'ю' - 16: 3, # 'я' - }, - 10: { # 'в' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 2, # 'б' - 10: 2, # 'в' - 19: 2, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 1, # 'ж' - 20: 3, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 2, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 3, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 3, # 'у' - 39: 1, # 'ф' - 26: 2, # 'х' - 28: 2, # 'ц' - 22: 2, # 'ч' - 25: 3, # 'ш' - 29: 2, # 'щ' - 54: 2, # 'ъ' - 18: 3, # 'ы' - 17: 3, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 3, # 'я' - }, - 19: { # 'г' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 1, # 'б' - 10: 2, # 'в' - 19: 1, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 0, # 'ж' - 20: 1, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 2, # 'к' - 8: 3, # 'л' - 12: 2, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 3, # 'р' - 7: 2, # 'с' - 6: 2, # 'т' - 14: 3, # 'у' - 39: 1, # 'ф' - 26: 1, # 'х' - 28: 1, # 'ц' - 22: 2, # 'ч' - 25: 1, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 1, # 'ы' - 17: 1, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 0, # 'я' - }, - 13: { # 'д' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 2, # 'б' - 10: 3, # 'в' - 19: 2, # 'г' - 13: 2, # 'д' - 2: 3, # 'е' - 24: 2, # 'ж' - 20: 2, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 2, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 2, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 3, # 'у' - 39: 1, # 'ф' - 26: 2, # 'х' - 28: 3, # 'ц' - 22: 2, # 'ч' - 25: 2, # 'ш' - 29: 1, # 'щ' - 54: 2, # 'ъ' - 18: 3, # 'ы' - 17: 3, # 'ь' - 30: 1, # 'э' - 27: 2, # 'ю' - 16: 3, # 'я' - }, - 2: { # 'е' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 3, # 'б' - 10: 3, # 'в' - 19: 3, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 3, # 'ж' - 20: 3, # 'з' - 4: 2, # 'и' - 23: 3, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 3, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 2, # 'у' - 39: 2, # 'ф' - 26: 3, # 'х' - 28: 3, # 'ц' - 22: 3, # 'ч' - 25: 3, # 'ш' - 29: 3, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 1, # 'э' - 27: 2, # 'ю' - 16: 3, # 'я' - }, - 24: { # 'ж' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 2, # 'б' - 10: 1, # 'в' - 19: 2, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 2, # 'ж' - 20: 1, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 2, # 'к' - 8: 2, # 'л' - 12: 1, # 'м' - 5: 3, # 'н' - 1: 2, # 'о' - 15: 1, # 'п' - 9: 2, # 'р' - 7: 2, # 'с' - 6: 1, # 'т' - 14: 3, # 'у' - 39: 1, # 'ф' - 26: 0, # 'х' - 28: 1, # 'ц' - 22: 2, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 1, # 'ы' - 17: 2, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 1, # 'я' - }, - 20: { # 'з' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 3, # 'б' - 10: 3, # 'в' - 19: 3, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 2, # 'ж' - 20: 2, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 3, # 'р' - 7: 2, # 'с' - 6: 2, # 'т' - 14: 3, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 1, # 'ц' - 22: 2, # 'ч' - 25: 1, # 'ш' - 29: 0, # 'щ' - 54: 2, # 'ъ' - 18: 3, # 'ы' - 17: 2, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 3, # 'я' - }, - 4: { # 'и' - 37: 1, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 1, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 3, # 'б' - 10: 3, # 'в' - 19: 3, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 3, # 'ж' - 20: 3, # 'з' - 4: 3, # 'и' - 23: 3, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 3, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 2, # 'у' - 39: 2, # 'ф' - 26: 3, # 'х' - 28: 3, # 'ц' - 22: 3, # 'ч' - 25: 3, # 'ш' - 29: 3, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 2, # 'э' - 27: 3, # 'ю' - 16: 3, # 'я' - }, - 23: { # 'й' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 1, # 'а' - 21: 1, # 'б' - 10: 1, # 'в' - 19: 2, # 'г' - 13: 3, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 2, # 'з' - 4: 1, # 'и' - 23: 0, # 'й' - 11: 2, # 'к' - 8: 2, # 'л' - 12: 2, # 'м' - 5: 3, # 'н' - 1: 2, # 'о' - 15: 1, # 'п' - 9: 2, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 1, # 'у' - 39: 2, # 'ф' - 26: 1, # 'х' - 28: 2, # 'ц' - 22: 3, # 'ч' - 25: 2, # 'ш' - 29: 1, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 2, # 'я' - }, - 11: { # 'к' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 1, # 'б' - 10: 3, # 'в' - 19: 1, # 'г' - 13: 1, # 'д' - 2: 3, # 'е' - 24: 2, # 'ж' - 20: 2, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 2, # 'к' - 8: 3, # 'л' - 12: 1, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 3, # 'у' - 39: 1, # 'ф' - 26: 2, # 'х' - 28: 2, # 'ц' - 22: 1, # 'ч' - 25: 2, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 1, # 'ы' - 17: 1, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 1, # 'я' - }, - 8: { # 'л' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 2, # 'б' - 10: 2, # 'в' - 19: 3, # 'г' - 13: 2, # 'д' - 2: 3, # 'е' - 24: 3, # 'ж' - 20: 2, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 2, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 2, # 'п' - 9: 1, # 'р' - 7: 3, # 'с' - 6: 2, # 'т' - 14: 3, # 'у' - 39: 2, # 'ф' - 26: 2, # 'х' - 28: 1, # 'ц' - 22: 3, # 'ч' - 25: 2, # 'ш' - 29: 1, # 'щ' - 54: 0, # 'ъ' - 18: 3, # 'ы' - 17: 3, # 'ь' - 30: 1, # 'э' - 27: 3, # 'ю' - 16: 3, # 'я' - }, - 12: { # 'м' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 2, # 'б' - 10: 2, # 'в' - 19: 2, # 'г' - 13: 1, # 'д' - 2: 3, # 'е' - 24: 1, # 'ж' - 20: 1, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 2, # 'к' - 8: 3, # 'л' - 12: 2, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 2, # 'п' - 9: 2, # 'р' - 7: 3, # 'с' - 6: 2, # 'т' - 14: 3, # 'у' - 39: 2, # 'ф' - 26: 2, # 'х' - 28: 2, # 'ц' - 22: 2, # 'ч' - 25: 1, # 'ш' - 29: 1, # 'щ' - 54: 0, # 'ъ' - 18: 3, # 'ы' - 17: 2, # 'ь' - 30: 2, # 'э' - 27: 1, # 'ю' - 16: 3, # 'я' - }, - 5: { # 'н' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 2, # 'б' - 10: 2, # 'в' - 19: 3, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 2, # 'ж' - 20: 2, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 2, # 'л' - 12: 1, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 1, # 'п' - 9: 2, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 3, # 'у' - 39: 2, # 'ф' - 26: 2, # 'х' - 28: 3, # 'ц' - 22: 3, # 'ч' - 25: 2, # 'ш' - 29: 2, # 'щ' - 54: 1, # 'ъ' - 18: 3, # 'ы' - 17: 3, # 'ь' - 30: 1, # 'э' - 27: 3, # 'ю' - 16: 3, # 'я' - }, - 1: { # 'о' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 3, # 'б' - 10: 3, # 'в' - 19: 3, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 3, # 'ж' - 20: 3, # 'з' - 4: 3, # 'и' - 23: 3, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 3, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 2, # 'у' - 39: 2, # 'ф' - 26: 3, # 'х' - 28: 2, # 'ц' - 22: 3, # 'ч' - 25: 3, # 'ш' - 29: 3, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 2, # 'э' - 27: 3, # 'ю' - 16: 3, # 'я' - }, - 15: { # 'п' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 1, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 3, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 2, # 'к' - 8: 3, # 'л' - 12: 1, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 2, # 'п' - 9: 3, # 'р' - 7: 2, # 'с' - 6: 2, # 'т' - 14: 3, # 'у' - 39: 1, # 'ф' - 26: 0, # 'х' - 28: 2, # 'ц' - 22: 2, # 'ч' - 25: 1, # 'ш' - 29: 1, # 'щ' - 54: 0, # 'ъ' - 18: 3, # 'ы' - 17: 2, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 3, # 'я' - }, - 9: { # 'р' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 2, # 'б' - 10: 3, # 'в' - 19: 3, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 3, # 'ж' - 20: 2, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 2, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 2, # 'п' - 9: 2, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 3, # 'у' - 39: 2, # 'ф' - 26: 3, # 'х' - 28: 2, # 'ц' - 22: 2, # 'ч' - 25: 3, # 'ш' - 29: 2, # 'щ' - 54: 0, # 'ъ' - 18: 3, # 'ы' - 17: 3, # 'ь' - 30: 2, # 'э' - 27: 2, # 'ю' - 16: 3, # 'я' - }, - 7: { # 'с' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 1, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 2, # 'б' - 10: 3, # 'в' - 19: 2, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 2, # 'ж' - 20: 2, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 3, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 3, # 'у' - 39: 2, # 'ф' - 26: 3, # 'х' - 28: 2, # 'ц' - 22: 3, # 'ч' - 25: 2, # 'ш' - 29: 1, # 'щ' - 54: 2, # 'ъ' - 18: 3, # 'ы' - 17: 3, # 'ь' - 30: 2, # 'э' - 27: 3, # 'ю' - 16: 3, # 'я' - }, - 6: { # 'т' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 2, # 'б' - 10: 3, # 'в' - 19: 2, # 'г' - 13: 2, # 'д' - 2: 3, # 'е' - 24: 1, # 'ж' - 20: 1, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 2, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 2, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 2, # 'т' - 14: 3, # 'у' - 39: 2, # 'ф' - 26: 2, # 'х' - 28: 2, # 'ц' - 22: 2, # 'ч' - 25: 2, # 'ш' - 29: 2, # 'щ' - 54: 2, # 'ъ' - 18: 3, # 'ы' - 17: 3, # 'ь' - 30: 2, # 'э' - 27: 2, # 'ю' - 16: 3, # 'я' - }, - 14: { # 'у' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 3, # 'б' - 10: 3, # 'в' - 19: 3, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 3, # 'ж' - 20: 3, # 'з' - 4: 2, # 'и' - 23: 2, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 2, # 'о' - 15: 3, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 1, # 'у' - 39: 2, # 'ф' - 26: 3, # 'х' - 28: 2, # 'ц' - 22: 3, # 'ч' - 25: 3, # 'ш' - 29: 3, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 2, # 'э' - 27: 3, # 'ю' - 16: 2, # 'я' - }, - 39: { # 'ф' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 1, # 'б' - 10: 0, # 'в' - 19: 1, # 'г' - 13: 0, # 'д' - 2: 3, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 1, # 'к' - 8: 2, # 'л' - 12: 1, # 'м' - 5: 1, # 'н' - 1: 3, # 'о' - 15: 1, # 'п' - 9: 2, # 'р' - 7: 2, # 'с' - 6: 2, # 'т' - 14: 2, # 'у' - 39: 2, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 1, # 'ч' - 25: 1, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 2, # 'ы' - 17: 1, # 'ь' - 30: 2, # 'э' - 27: 1, # 'ю' - 16: 1, # 'я' - }, - 26: { # 'х' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 0, # 'б' - 10: 3, # 'в' - 19: 1, # 'г' - 13: 1, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 1, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 1, # 'к' - 8: 2, # 'л' - 12: 2, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 1, # 'п' - 9: 3, # 'р' - 7: 2, # 'с' - 6: 2, # 'т' - 14: 2, # 'у' - 39: 1, # 'ф' - 26: 1, # 'х' - 28: 1, # 'ц' - 22: 1, # 'ч' - 25: 2, # 'ш' - 29: 0, # 'щ' - 54: 1, # 'ъ' - 18: 0, # 'ы' - 17: 1, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 0, # 'я' - }, - 28: { # 'ц' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 1, # 'б' - 10: 2, # 'в' - 19: 1, # 'г' - 13: 1, # 'д' - 2: 3, # 'е' - 24: 0, # 'ж' - 20: 1, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 2, # 'к' - 8: 1, # 'л' - 12: 1, # 'м' - 5: 1, # 'н' - 1: 3, # 'о' - 15: 0, # 'п' - 9: 1, # 'р' - 7: 0, # 'с' - 6: 1, # 'т' - 14: 3, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 1, # 'ц' - 22: 0, # 'ч' - 25: 1, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 3, # 'ы' - 17: 1, # 'ь' - 30: 0, # 'э' - 27: 1, # 'ю' - 16: 0, # 'я' - }, - 22: { # 'ч' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 1, # 'б' - 10: 1, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 3, # 'е' - 24: 1, # 'ж' - 20: 0, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 2, # 'л' - 12: 1, # 'м' - 5: 3, # 'н' - 1: 2, # 'о' - 15: 0, # 'п' - 9: 2, # 'р' - 7: 1, # 'с' - 6: 3, # 'т' - 14: 3, # 'у' - 39: 1, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 1, # 'ч' - 25: 2, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 3, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 25: { # 'ш' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 1, # 'б' - 10: 2, # 'в' - 19: 1, # 'г' - 13: 0, # 'д' - 2: 3, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 2, # 'м' - 5: 3, # 'н' - 1: 3, # 'о' - 15: 2, # 'п' - 9: 2, # 'р' - 7: 1, # 'с' - 6: 2, # 'т' - 14: 3, # 'у' - 39: 2, # 'ф' - 26: 1, # 'х' - 28: 1, # 'ц' - 22: 1, # 'ч' - 25: 1, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 3, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 0, # 'я' - }, - 29: { # 'щ' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 3, # 'а' - 21: 0, # 'б' - 10: 1, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 3, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 3, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 0, # 'л' - 12: 1, # 'м' - 5: 2, # 'н' - 1: 1, # 'о' - 15: 0, # 'п' - 9: 2, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 2, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 2, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 0, # 'я' - }, - 54: { # 'ъ' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 0, # 'а' - 21: 0, # 'б' - 10: 0, # 'в' - 19: 0, # 'г' - 13: 0, # 'д' - 2: 2, # 'е' - 24: 0, # 'ж' - 20: 0, # 'з' - 4: 0, # 'и' - 23: 0, # 'й' - 11: 0, # 'к' - 8: 0, # 'л' - 12: 0, # 'м' - 5: 0, # 'н' - 1: 0, # 'о' - 15: 0, # 'п' - 9: 0, # 'р' - 7: 0, # 'с' - 6: 0, # 'т' - 14: 0, # 'у' - 39: 0, # 'ф' - 26: 0, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 0, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 1, # 'ю' - 16: 2, # 'я' - }, - 18: { # 'ы' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 0, # 'а' - 21: 3, # 'б' - 10: 3, # 'в' - 19: 2, # 'г' - 13: 2, # 'д' - 2: 3, # 'е' - 24: 2, # 'ж' - 20: 2, # 'з' - 4: 2, # 'и' - 23: 3, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 1, # 'о' - 15: 3, # 'п' - 9: 3, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 1, # 'у' - 39: 0, # 'ф' - 26: 3, # 'х' - 28: 2, # 'ц' - 22: 3, # 'ч' - 25: 3, # 'ш' - 29: 2, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 0, # 'ю' - 16: 2, # 'я' - }, - 17: { # 'ь' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 0, # 'а' - 21: 2, # 'б' - 10: 2, # 'в' - 19: 2, # 'г' - 13: 2, # 'д' - 2: 3, # 'е' - 24: 1, # 'ж' - 20: 3, # 'з' - 4: 2, # 'и' - 23: 0, # 'й' - 11: 3, # 'к' - 8: 0, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 2, # 'о' - 15: 2, # 'п' - 9: 1, # 'р' - 7: 3, # 'с' - 6: 2, # 'т' - 14: 0, # 'у' - 39: 2, # 'ф' - 26: 1, # 'х' - 28: 2, # 'ц' - 22: 2, # 'ч' - 25: 3, # 'ш' - 29: 2, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 1, # 'э' - 27: 3, # 'ю' - 16: 3, # 'я' - }, - 30: { # 'э' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 1, # 'М' - 31: 1, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 1, # 'Р' - 32: 1, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 1, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 0, # 'а' - 21: 1, # 'б' - 10: 1, # 'в' - 19: 1, # 'г' - 13: 2, # 'д' - 2: 1, # 'е' - 24: 0, # 'ж' - 20: 1, # 'з' - 4: 0, # 'и' - 23: 2, # 'й' - 11: 2, # 'к' - 8: 2, # 'л' - 12: 2, # 'м' - 5: 2, # 'н' - 1: 0, # 'о' - 15: 2, # 'п' - 9: 2, # 'р' - 7: 2, # 'с' - 6: 3, # 'т' - 14: 1, # 'у' - 39: 2, # 'ф' - 26: 1, # 'х' - 28: 0, # 'ц' - 22: 0, # 'ч' - 25: 1, # 'ш' - 29: 0, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 1, # 'э' - 27: 1, # 'ю' - 16: 1, # 'я' - }, - 27: { # 'ю' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 2, # 'а' - 21: 3, # 'б' - 10: 1, # 'в' - 19: 2, # 'г' - 13: 3, # 'д' - 2: 1, # 'е' - 24: 2, # 'ж' - 20: 2, # 'з' - 4: 1, # 'и' - 23: 1, # 'й' - 11: 2, # 'к' - 8: 2, # 'л' - 12: 2, # 'м' - 5: 2, # 'н' - 1: 1, # 'о' - 15: 2, # 'п' - 9: 2, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 0, # 'у' - 39: 1, # 'ф' - 26: 2, # 'х' - 28: 2, # 'ц' - 22: 2, # 'ч' - 25: 2, # 'ш' - 29: 3, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 1, # 'э' - 27: 2, # 'ю' - 16: 1, # 'я' - }, - 16: { # 'я' - 37: 0, # 'А' - 44: 0, # 'Б' - 33: 0, # 'В' - 46: 0, # 'Г' - 41: 0, # 'Д' - 48: 0, # 'Е' - 56: 0, # 'Ж' - 51: 0, # 'З' - 42: 0, # 'И' - 60: 0, # 'Й' - 36: 0, # 'К' - 49: 0, # 'Л' - 38: 0, # 'М' - 31: 0, # 'Н' - 34: 0, # 'О' - 35: 0, # 'П' - 45: 0, # 'Р' - 32: 0, # 'С' - 40: 0, # 'Т' - 52: 0, # 'У' - 53: 0, # 'Ф' - 55: 0, # 'Х' - 58: 0, # 'Ц' - 50: 0, # 'Ч' - 57: 0, # 'Ш' - 63: 0, # 'Щ' - 62: 0, # 'Ы' - 61: 0, # 'Ь' - 47: 0, # 'Э' - 59: 0, # 'Ю' - 43: 0, # 'Я' - 3: 0, # 'а' - 21: 2, # 'б' - 10: 3, # 'в' - 19: 2, # 'г' - 13: 3, # 'д' - 2: 3, # 'е' - 24: 3, # 'ж' - 20: 3, # 'з' - 4: 2, # 'и' - 23: 2, # 'й' - 11: 3, # 'к' - 8: 3, # 'л' - 12: 3, # 'м' - 5: 3, # 'н' - 1: 0, # 'о' - 15: 2, # 'п' - 9: 2, # 'р' - 7: 3, # 'с' - 6: 3, # 'т' - 14: 1, # 'у' - 39: 1, # 'ф' - 26: 3, # 'х' - 28: 2, # 'ц' - 22: 2, # 'ч' - 25: 2, # 'ш' - 29: 3, # 'щ' - 54: 0, # 'ъ' - 18: 0, # 'ы' - 17: 0, # 'ь' - 30: 0, # 'э' - 27: 2, # 'ю' - 16: 2, # 'я' - }, -} - -# 255: Undefined characters that did not exist in training text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 -# 251: Control characters - -# Character Mapping Table(s): -IBM866_RUSSIAN_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 142, # 'A' - 66: 143, # 'B' - 67: 144, # 'C' - 68: 145, # 'D' - 69: 146, # 'E' - 70: 147, # 'F' - 71: 148, # 'G' - 72: 149, # 'H' - 73: 150, # 'I' - 74: 151, # 'J' - 75: 152, # 'K' - 76: 74, # 'L' - 77: 153, # 'M' - 78: 75, # 'N' - 79: 154, # 'O' - 80: 155, # 'P' - 81: 156, # 'Q' - 82: 157, # 'R' - 83: 158, # 'S' - 84: 159, # 'T' - 85: 160, # 'U' - 86: 161, # 'V' - 87: 162, # 'W' - 88: 163, # 'X' - 89: 164, # 'Y' - 90: 165, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 71, # 'a' - 98: 172, # 'b' - 99: 66, # 'c' - 100: 173, # 'd' - 101: 65, # 'e' - 102: 174, # 'f' - 103: 76, # 'g' - 104: 175, # 'h' - 105: 64, # 'i' - 106: 176, # 'j' - 107: 177, # 'k' - 108: 77, # 'l' - 109: 72, # 'm' - 110: 178, # 'n' - 111: 69, # 'o' - 112: 67, # 'p' - 113: 179, # 'q' - 114: 78, # 'r' - 115: 73, # 's' - 116: 180, # 't' - 117: 181, # 'u' - 118: 79, # 'v' - 119: 182, # 'w' - 120: 183, # 'x' - 121: 184, # 'y' - 122: 185, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 37, # 'А' - 129: 44, # 'Б' - 130: 33, # 'В' - 131: 46, # 'Г' - 132: 41, # 'Д' - 133: 48, # 'Е' - 134: 56, # 'Ж' - 135: 51, # 'З' - 136: 42, # 'И' - 137: 60, # 'Й' - 138: 36, # 'К' - 139: 49, # 'Л' - 140: 38, # 'М' - 141: 31, # 'Н' - 142: 34, # 'О' - 143: 35, # 'П' - 144: 45, # 'Р' - 145: 32, # 'С' - 146: 40, # 'Т' - 147: 52, # 'У' - 148: 53, # 'Ф' - 149: 55, # 'Х' - 150: 58, # 'Ц' - 151: 50, # 'Ч' - 152: 57, # 'Ш' - 153: 63, # 'Щ' - 154: 70, # 'Ъ' - 155: 62, # 'Ы' - 156: 61, # 'Ь' - 157: 47, # 'Э' - 158: 59, # 'Ю' - 159: 43, # 'Я' - 160: 3, # 'а' - 161: 21, # 'б' - 162: 10, # 'в' - 163: 19, # 'г' - 164: 13, # 'д' - 165: 2, # 'е' - 166: 24, # 'ж' - 167: 20, # 'з' - 168: 4, # 'и' - 169: 23, # 'й' - 170: 11, # 'к' - 171: 8, # 'л' - 172: 12, # 'м' - 173: 5, # 'н' - 174: 1, # 'о' - 175: 15, # 'п' - 176: 191, # '░' - 177: 192, # '▒' - 178: 193, # '▓' - 179: 194, # '│' - 180: 195, # '┤' - 181: 196, # '╡' - 182: 197, # '╢' - 183: 198, # '╖' - 184: 199, # '╕' - 185: 200, # '╣' - 186: 201, # '║' - 187: 202, # '╗' - 188: 203, # '╝' - 189: 204, # '╜' - 190: 205, # '╛' - 191: 206, # '┐' - 192: 207, # '└' - 193: 208, # '┴' - 194: 209, # '┬' - 195: 210, # '├' - 196: 211, # '─' - 197: 212, # '┼' - 198: 213, # '╞' - 199: 214, # '╟' - 200: 215, # '╚' - 201: 216, # '╔' - 202: 217, # '╩' - 203: 218, # '╦' - 204: 219, # '╠' - 205: 220, # '═' - 206: 221, # '╬' - 207: 222, # '╧' - 208: 223, # '╨' - 209: 224, # '╤' - 210: 225, # '╥' - 211: 226, # '╙' - 212: 227, # '╘' - 213: 228, # '╒' - 214: 229, # '╓' - 215: 230, # '╫' - 216: 231, # '╪' - 217: 232, # '┘' - 218: 233, # '┌' - 219: 234, # '█' - 220: 235, # '▄' - 221: 236, # '▌' - 222: 237, # '▐' - 223: 238, # '▀' - 224: 9, # 'р' - 225: 7, # 'с' - 226: 6, # 'т' - 227: 14, # 'у' - 228: 39, # 'ф' - 229: 26, # 'х' - 230: 28, # 'ц' - 231: 22, # 'ч' - 232: 25, # 'ш' - 233: 29, # 'щ' - 234: 54, # 'ъ' - 235: 18, # 'ы' - 236: 17, # 'ь' - 237: 30, # 'э' - 238: 27, # 'ю' - 239: 16, # 'я' - 240: 239, # 'Ё' - 241: 68, # 'ё' - 242: 240, # 'Є' - 243: 241, # 'є' - 244: 242, # 'Ї' - 245: 243, # 'ї' - 246: 244, # 'Ў' - 247: 245, # 'ў' - 248: 246, # '°' - 249: 247, # '∙' - 250: 248, # '·' - 251: 249, # '√' - 252: 250, # '№' - 253: 251, # '¤' - 254: 252, # '■' - 255: 255, # '\xa0' -} - -IBM866_RUSSIAN_MODEL = SingleByteCharSetModel(charset_name='IBM866', - language='Russian', - char_to_order_map=IBM866_RUSSIAN_CHAR_TO_ORDER, - language_model=RUSSIAN_LANG_MODEL, - typical_positive_ratio=0.976601, - keep_ascii_letters=False, - alphabet='ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё') - -WINDOWS_1251_RUSSIAN_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 142, # 'A' - 66: 143, # 'B' - 67: 144, # 'C' - 68: 145, # 'D' - 69: 146, # 'E' - 70: 147, # 'F' - 71: 148, # 'G' - 72: 149, # 'H' - 73: 150, # 'I' - 74: 151, # 'J' - 75: 152, # 'K' - 76: 74, # 'L' - 77: 153, # 'M' - 78: 75, # 'N' - 79: 154, # 'O' - 80: 155, # 'P' - 81: 156, # 'Q' - 82: 157, # 'R' - 83: 158, # 'S' - 84: 159, # 'T' - 85: 160, # 'U' - 86: 161, # 'V' - 87: 162, # 'W' - 88: 163, # 'X' - 89: 164, # 'Y' - 90: 165, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 71, # 'a' - 98: 172, # 'b' - 99: 66, # 'c' - 100: 173, # 'd' - 101: 65, # 'e' - 102: 174, # 'f' - 103: 76, # 'g' - 104: 175, # 'h' - 105: 64, # 'i' - 106: 176, # 'j' - 107: 177, # 'k' - 108: 77, # 'l' - 109: 72, # 'm' - 110: 178, # 'n' - 111: 69, # 'o' - 112: 67, # 'p' - 113: 179, # 'q' - 114: 78, # 'r' - 115: 73, # 's' - 116: 180, # 't' - 117: 181, # 'u' - 118: 79, # 'v' - 119: 182, # 'w' - 120: 183, # 'x' - 121: 184, # 'y' - 122: 185, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 191, # 'Ђ' - 129: 192, # 'Ѓ' - 130: 193, # '‚' - 131: 194, # 'ѓ' - 132: 195, # '„' - 133: 196, # '…' - 134: 197, # '†' - 135: 198, # '‡' - 136: 199, # '€' - 137: 200, # '‰' - 138: 201, # 'Љ' - 139: 202, # '‹' - 140: 203, # 'Њ' - 141: 204, # 'Ќ' - 142: 205, # 'Ћ' - 143: 206, # 'Џ' - 144: 207, # 'ђ' - 145: 208, # '‘' - 146: 209, # '’' - 147: 210, # '“' - 148: 211, # '”' - 149: 212, # '•' - 150: 213, # '–' - 151: 214, # '—' - 152: 215, # None - 153: 216, # '™' - 154: 217, # 'љ' - 155: 218, # '›' - 156: 219, # 'њ' - 157: 220, # 'ќ' - 158: 221, # 'ћ' - 159: 222, # 'џ' - 160: 223, # '\xa0' - 161: 224, # 'Ў' - 162: 225, # 'ў' - 163: 226, # 'Ј' - 164: 227, # '¤' - 165: 228, # 'Ґ' - 166: 229, # '¦' - 167: 230, # '§' - 168: 231, # 'Ё' - 169: 232, # '©' - 170: 233, # 'Є' - 171: 234, # '«' - 172: 235, # '¬' - 173: 236, # '\xad' - 174: 237, # '®' - 175: 238, # 'Ї' - 176: 239, # '°' - 177: 240, # '±' - 178: 241, # 'І' - 179: 242, # 'і' - 180: 243, # 'ґ' - 181: 244, # 'µ' - 182: 245, # '¶' - 183: 246, # '·' - 184: 68, # 'ё' - 185: 247, # '№' - 186: 248, # 'є' - 187: 249, # '»' - 188: 250, # 'ј' - 189: 251, # 'Ѕ' - 190: 252, # 'ѕ' - 191: 253, # 'ї' - 192: 37, # 'А' - 193: 44, # 'Б' - 194: 33, # 'В' - 195: 46, # 'Г' - 196: 41, # 'Д' - 197: 48, # 'Е' - 198: 56, # 'Ж' - 199: 51, # 'З' - 200: 42, # 'И' - 201: 60, # 'Й' - 202: 36, # 'К' - 203: 49, # 'Л' - 204: 38, # 'М' - 205: 31, # 'Н' - 206: 34, # 'О' - 207: 35, # 'П' - 208: 45, # 'Р' - 209: 32, # 'С' - 210: 40, # 'Т' - 211: 52, # 'У' - 212: 53, # 'Ф' - 213: 55, # 'Х' - 214: 58, # 'Ц' - 215: 50, # 'Ч' - 216: 57, # 'Ш' - 217: 63, # 'Щ' - 218: 70, # 'Ъ' - 219: 62, # 'Ы' - 220: 61, # 'Ь' - 221: 47, # 'Э' - 222: 59, # 'Ю' - 223: 43, # 'Я' - 224: 3, # 'а' - 225: 21, # 'б' - 226: 10, # 'в' - 227: 19, # 'г' - 228: 13, # 'д' - 229: 2, # 'е' - 230: 24, # 'ж' - 231: 20, # 'з' - 232: 4, # 'и' - 233: 23, # 'й' - 234: 11, # 'к' - 235: 8, # 'л' - 236: 12, # 'м' - 237: 5, # 'н' - 238: 1, # 'о' - 239: 15, # 'п' - 240: 9, # 'р' - 241: 7, # 'с' - 242: 6, # 'т' - 243: 14, # 'у' - 244: 39, # 'ф' - 245: 26, # 'х' - 246: 28, # 'ц' - 247: 22, # 'ч' - 248: 25, # 'ш' - 249: 29, # 'щ' - 250: 54, # 'ъ' - 251: 18, # 'ы' - 252: 17, # 'ь' - 253: 30, # 'э' - 254: 27, # 'ю' - 255: 16, # 'я' -} - -WINDOWS_1251_RUSSIAN_MODEL = SingleByteCharSetModel(charset_name='windows-1251', - language='Russian', - char_to_order_map=WINDOWS_1251_RUSSIAN_CHAR_TO_ORDER, - language_model=RUSSIAN_LANG_MODEL, - typical_positive_ratio=0.976601, - keep_ascii_letters=False, - alphabet='ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё') - -IBM855_RUSSIAN_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 142, # 'A' - 66: 143, # 'B' - 67: 144, # 'C' - 68: 145, # 'D' - 69: 146, # 'E' - 70: 147, # 'F' - 71: 148, # 'G' - 72: 149, # 'H' - 73: 150, # 'I' - 74: 151, # 'J' - 75: 152, # 'K' - 76: 74, # 'L' - 77: 153, # 'M' - 78: 75, # 'N' - 79: 154, # 'O' - 80: 155, # 'P' - 81: 156, # 'Q' - 82: 157, # 'R' - 83: 158, # 'S' - 84: 159, # 'T' - 85: 160, # 'U' - 86: 161, # 'V' - 87: 162, # 'W' - 88: 163, # 'X' - 89: 164, # 'Y' - 90: 165, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 71, # 'a' - 98: 172, # 'b' - 99: 66, # 'c' - 100: 173, # 'd' - 101: 65, # 'e' - 102: 174, # 'f' - 103: 76, # 'g' - 104: 175, # 'h' - 105: 64, # 'i' - 106: 176, # 'j' - 107: 177, # 'k' - 108: 77, # 'l' - 109: 72, # 'm' - 110: 178, # 'n' - 111: 69, # 'o' - 112: 67, # 'p' - 113: 179, # 'q' - 114: 78, # 'r' - 115: 73, # 's' - 116: 180, # 't' - 117: 181, # 'u' - 118: 79, # 'v' - 119: 182, # 'w' - 120: 183, # 'x' - 121: 184, # 'y' - 122: 185, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 191, # 'ђ' - 129: 192, # 'Ђ' - 130: 193, # 'ѓ' - 131: 194, # 'Ѓ' - 132: 68, # 'ё' - 133: 195, # 'Ё' - 134: 196, # 'є' - 135: 197, # 'Є' - 136: 198, # 'ѕ' - 137: 199, # 'Ѕ' - 138: 200, # 'і' - 139: 201, # 'І' - 140: 202, # 'ї' - 141: 203, # 'Ї' - 142: 204, # 'ј' - 143: 205, # 'Ј' - 144: 206, # 'љ' - 145: 207, # 'Љ' - 146: 208, # 'њ' - 147: 209, # 'Њ' - 148: 210, # 'ћ' - 149: 211, # 'Ћ' - 150: 212, # 'ќ' - 151: 213, # 'Ќ' - 152: 214, # 'ў' - 153: 215, # 'Ў' - 154: 216, # 'џ' - 155: 217, # 'Џ' - 156: 27, # 'ю' - 157: 59, # 'Ю' - 158: 54, # 'ъ' - 159: 70, # 'Ъ' - 160: 3, # 'а' - 161: 37, # 'А' - 162: 21, # 'б' - 163: 44, # 'Б' - 164: 28, # 'ц' - 165: 58, # 'Ц' - 166: 13, # 'д' - 167: 41, # 'Д' - 168: 2, # 'е' - 169: 48, # 'Е' - 170: 39, # 'ф' - 171: 53, # 'Ф' - 172: 19, # 'г' - 173: 46, # 'Г' - 174: 218, # '«' - 175: 219, # '»' - 176: 220, # '░' - 177: 221, # '▒' - 178: 222, # '▓' - 179: 223, # '│' - 180: 224, # '┤' - 181: 26, # 'х' - 182: 55, # 'Х' - 183: 4, # 'и' - 184: 42, # 'И' - 185: 225, # '╣' - 186: 226, # '║' - 187: 227, # '╗' - 188: 228, # '╝' - 189: 23, # 'й' - 190: 60, # 'Й' - 191: 229, # '┐' - 192: 230, # '└' - 193: 231, # '┴' - 194: 232, # '┬' - 195: 233, # '├' - 196: 234, # '─' - 197: 235, # '┼' - 198: 11, # 'к' - 199: 36, # 'К' - 200: 236, # '╚' - 201: 237, # '╔' - 202: 238, # '╩' - 203: 239, # '╦' - 204: 240, # '╠' - 205: 241, # '═' - 206: 242, # '╬' - 207: 243, # '¤' - 208: 8, # 'л' - 209: 49, # 'Л' - 210: 12, # 'м' - 211: 38, # 'М' - 212: 5, # 'н' - 213: 31, # 'Н' - 214: 1, # 'о' - 215: 34, # 'О' - 216: 15, # 'п' - 217: 244, # '┘' - 218: 245, # '┌' - 219: 246, # '█' - 220: 247, # '▄' - 221: 35, # 'П' - 222: 16, # 'я' - 223: 248, # '▀' - 224: 43, # 'Я' - 225: 9, # 'р' - 226: 45, # 'Р' - 227: 7, # 'с' - 228: 32, # 'С' - 229: 6, # 'т' - 230: 40, # 'Т' - 231: 14, # 'у' - 232: 52, # 'У' - 233: 24, # 'ж' - 234: 56, # 'Ж' - 235: 10, # 'в' - 236: 33, # 'В' - 237: 17, # 'ь' - 238: 61, # 'Ь' - 239: 249, # '№' - 240: 250, # '\xad' - 241: 18, # 'ы' - 242: 62, # 'Ы' - 243: 20, # 'з' - 244: 51, # 'З' - 245: 25, # 'ш' - 246: 57, # 'Ш' - 247: 30, # 'э' - 248: 47, # 'Э' - 249: 29, # 'щ' - 250: 63, # 'Щ' - 251: 22, # 'ч' - 252: 50, # 'Ч' - 253: 251, # '§' - 254: 252, # '■' - 255: 255, # '\xa0' -} - -IBM855_RUSSIAN_MODEL = SingleByteCharSetModel(charset_name='IBM855', - language='Russian', - char_to_order_map=IBM855_RUSSIAN_CHAR_TO_ORDER, - language_model=RUSSIAN_LANG_MODEL, - typical_positive_ratio=0.976601, - keep_ascii_letters=False, - alphabet='ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё') - -KOI8_R_RUSSIAN_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 142, # 'A' - 66: 143, # 'B' - 67: 144, # 'C' - 68: 145, # 'D' - 69: 146, # 'E' - 70: 147, # 'F' - 71: 148, # 'G' - 72: 149, # 'H' - 73: 150, # 'I' - 74: 151, # 'J' - 75: 152, # 'K' - 76: 74, # 'L' - 77: 153, # 'M' - 78: 75, # 'N' - 79: 154, # 'O' - 80: 155, # 'P' - 81: 156, # 'Q' - 82: 157, # 'R' - 83: 158, # 'S' - 84: 159, # 'T' - 85: 160, # 'U' - 86: 161, # 'V' - 87: 162, # 'W' - 88: 163, # 'X' - 89: 164, # 'Y' - 90: 165, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 71, # 'a' - 98: 172, # 'b' - 99: 66, # 'c' - 100: 173, # 'd' - 101: 65, # 'e' - 102: 174, # 'f' - 103: 76, # 'g' - 104: 175, # 'h' - 105: 64, # 'i' - 106: 176, # 'j' - 107: 177, # 'k' - 108: 77, # 'l' - 109: 72, # 'm' - 110: 178, # 'n' - 111: 69, # 'o' - 112: 67, # 'p' - 113: 179, # 'q' - 114: 78, # 'r' - 115: 73, # 's' - 116: 180, # 't' - 117: 181, # 'u' - 118: 79, # 'v' - 119: 182, # 'w' - 120: 183, # 'x' - 121: 184, # 'y' - 122: 185, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 191, # '─' - 129: 192, # '│' - 130: 193, # '┌' - 131: 194, # '┐' - 132: 195, # '└' - 133: 196, # '┘' - 134: 197, # '├' - 135: 198, # '┤' - 136: 199, # '┬' - 137: 200, # '┴' - 138: 201, # '┼' - 139: 202, # '▀' - 140: 203, # '▄' - 141: 204, # '█' - 142: 205, # '▌' - 143: 206, # '▐' - 144: 207, # '░' - 145: 208, # '▒' - 146: 209, # '▓' - 147: 210, # '⌠' - 148: 211, # '■' - 149: 212, # '∙' - 150: 213, # '√' - 151: 214, # '≈' - 152: 215, # '≤' - 153: 216, # '≥' - 154: 217, # '\xa0' - 155: 218, # '⌡' - 156: 219, # '°' - 157: 220, # '²' - 158: 221, # '·' - 159: 222, # '÷' - 160: 223, # '═' - 161: 224, # '║' - 162: 225, # '╒' - 163: 68, # 'ё' - 164: 226, # '╓' - 165: 227, # '╔' - 166: 228, # '╕' - 167: 229, # '╖' - 168: 230, # '╗' - 169: 231, # '╘' - 170: 232, # '╙' - 171: 233, # '╚' - 172: 234, # '╛' - 173: 235, # '╜' - 174: 236, # '╝' - 175: 237, # '╞' - 176: 238, # '╟' - 177: 239, # '╠' - 178: 240, # '╡' - 179: 241, # 'Ё' - 180: 242, # '╢' - 181: 243, # '╣' - 182: 244, # '╤' - 183: 245, # '╥' - 184: 246, # '╦' - 185: 247, # '╧' - 186: 248, # '╨' - 187: 249, # '╩' - 188: 250, # '╪' - 189: 251, # '╫' - 190: 252, # '╬' - 191: 253, # '©' - 192: 27, # 'ю' - 193: 3, # 'а' - 194: 21, # 'б' - 195: 28, # 'ц' - 196: 13, # 'д' - 197: 2, # 'е' - 198: 39, # 'ф' - 199: 19, # 'г' - 200: 26, # 'х' - 201: 4, # 'и' - 202: 23, # 'й' - 203: 11, # 'к' - 204: 8, # 'л' - 205: 12, # 'м' - 206: 5, # 'н' - 207: 1, # 'о' - 208: 15, # 'п' - 209: 16, # 'я' - 210: 9, # 'р' - 211: 7, # 'с' - 212: 6, # 'т' - 213: 14, # 'у' - 214: 24, # 'ж' - 215: 10, # 'в' - 216: 17, # 'ь' - 217: 18, # 'ы' - 218: 20, # 'з' - 219: 25, # 'ш' - 220: 30, # 'э' - 221: 29, # 'щ' - 222: 22, # 'ч' - 223: 54, # 'ъ' - 224: 59, # 'Ю' - 225: 37, # 'А' - 226: 44, # 'Б' - 227: 58, # 'Ц' - 228: 41, # 'Д' - 229: 48, # 'Е' - 230: 53, # 'Ф' - 231: 46, # 'Г' - 232: 55, # 'Х' - 233: 42, # 'И' - 234: 60, # 'Й' - 235: 36, # 'К' - 236: 49, # 'Л' - 237: 38, # 'М' - 238: 31, # 'Н' - 239: 34, # 'О' - 240: 35, # 'П' - 241: 43, # 'Я' - 242: 45, # 'Р' - 243: 32, # 'С' - 244: 40, # 'Т' - 245: 52, # 'У' - 246: 56, # 'Ж' - 247: 33, # 'В' - 248: 61, # 'Ь' - 249: 62, # 'Ы' - 250: 51, # 'З' - 251: 57, # 'Ш' - 252: 47, # 'Э' - 253: 63, # 'Щ' - 254: 50, # 'Ч' - 255: 70, # 'Ъ' -} - -KOI8_R_RUSSIAN_MODEL = SingleByteCharSetModel(charset_name='KOI8-R', - language='Russian', - char_to_order_map=KOI8_R_RUSSIAN_CHAR_TO_ORDER, - language_model=RUSSIAN_LANG_MODEL, - typical_positive_ratio=0.976601, - keep_ascii_letters=False, - alphabet='ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё') - -MACCYRILLIC_RUSSIAN_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 142, # 'A' - 66: 143, # 'B' - 67: 144, # 'C' - 68: 145, # 'D' - 69: 146, # 'E' - 70: 147, # 'F' - 71: 148, # 'G' - 72: 149, # 'H' - 73: 150, # 'I' - 74: 151, # 'J' - 75: 152, # 'K' - 76: 74, # 'L' - 77: 153, # 'M' - 78: 75, # 'N' - 79: 154, # 'O' - 80: 155, # 'P' - 81: 156, # 'Q' - 82: 157, # 'R' - 83: 158, # 'S' - 84: 159, # 'T' - 85: 160, # 'U' - 86: 161, # 'V' - 87: 162, # 'W' - 88: 163, # 'X' - 89: 164, # 'Y' - 90: 165, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 71, # 'a' - 98: 172, # 'b' - 99: 66, # 'c' - 100: 173, # 'd' - 101: 65, # 'e' - 102: 174, # 'f' - 103: 76, # 'g' - 104: 175, # 'h' - 105: 64, # 'i' - 106: 176, # 'j' - 107: 177, # 'k' - 108: 77, # 'l' - 109: 72, # 'm' - 110: 178, # 'n' - 111: 69, # 'o' - 112: 67, # 'p' - 113: 179, # 'q' - 114: 78, # 'r' - 115: 73, # 's' - 116: 180, # 't' - 117: 181, # 'u' - 118: 79, # 'v' - 119: 182, # 'w' - 120: 183, # 'x' - 121: 184, # 'y' - 122: 185, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 37, # 'А' - 129: 44, # 'Б' - 130: 33, # 'В' - 131: 46, # 'Г' - 132: 41, # 'Д' - 133: 48, # 'Е' - 134: 56, # 'Ж' - 135: 51, # 'З' - 136: 42, # 'И' - 137: 60, # 'Й' - 138: 36, # 'К' - 139: 49, # 'Л' - 140: 38, # 'М' - 141: 31, # 'Н' - 142: 34, # 'О' - 143: 35, # 'П' - 144: 45, # 'Р' - 145: 32, # 'С' - 146: 40, # 'Т' - 147: 52, # 'У' - 148: 53, # 'Ф' - 149: 55, # 'Х' - 150: 58, # 'Ц' - 151: 50, # 'Ч' - 152: 57, # 'Ш' - 153: 63, # 'Щ' - 154: 70, # 'Ъ' - 155: 62, # 'Ы' - 156: 61, # 'Ь' - 157: 47, # 'Э' - 158: 59, # 'Ю' - 159: 43, # 'Я' - 160: 191, # '†' - 161: 192, # '°' - 162: 193, # 'Ґ' - 163: 194, # '£' - 164: 195, # '§' - 165: 196, # '•' - 166: 197, # '¶' - 167: 198, # 'І' - 168: 199, # '®' - 169: 200, # '©' - 170: 201, # '™' - 171: 202, # 'Ђ' - 172: 203, # 'ђ' - 173: 204, # '≠' - 174: 205, # 'Ѓ' - 175: 206, # 'ѓ' - 176: 207, # '∞' - 177: 208, # '±' - 178: 209, # '≤' - 179: 210, # '≥' - 180: 211, # 'і' - 181: 212, # 'µ' - 182: 213, # 'ґ' - 183: 214, # 'Ј' - 184: 215, # 'Є' - 185: 216, # 'є' - 186: 217, # 'Ї' - 187: 218, # 'ї' - 188: 219, # 'Љ' - 189: 220, # 'љ' - 190: 221, # 'Њ' - 191: 222, # 'њ' - 192: 223, # 'ј' - 193: 224, # 'Ѕ' - 194: 225, # '¬' - 195: 226, # '√' - 196: 227, # 'ƒ' - 197: 228, # '≈' - 198: 229, # '∆' - 199: 230, # '«' - 200: 231, # '»' - 201: 232, # '…' - 202: 233, # '\xa0' - 203: 234, # 'Ћ' - 204: 235, # 'ћ' - 205: 236, # 'Ќ' - 206: 237, # 'ќ' - 207: 238, # 'ѕ' - 208: 239, # '–' - 209: 240, # '—' - 210: 241, # '“' - 211: 242, # '”' - 212: 243, # '‘' - 213: 244, # '’' - 214: 245, # '÷' - 215: 246, # '„' - 216: 247, # 'Ў' - 217: 248, # 'ў' - 218: 249, # 'Џ' - 219: 250, # 'џ' - 220: 251, # '№' - 221: 252, # 'Ё' - 222: 68, # 'ё' - 223: 16, # 'я' - 224: 3, # 'а' - 225: 21, # 'б' - 226: 10, # 'в' - 227: 19, # 'г' - 228: 13, # 'д' - 229: 2, # 'е' - 230: 24, # 'ж' - 231: 20, # 'з' - 232: 4, # 'и' - 233: 23, # 'й' - 234: 11, # 'к' - 235: 8, # 'л' - 236: 12, # 'м' - 237: 5, # 'н' - 238: 1, # 'о' - 239: 15, # 'п' - 240: 9, # 'р' - 241: 7, # 'с' - 242: 6, # 'т' - 243: 14, # 'у' - 244: 39, # 'ф' - 245: 26, # 'х' - 246: 28, # 'ц' - 247: 22, # 'ч' - 248: 25, # 'ш' - 249: 29, # 'щ' - 250: 54, # 'ъ' - 251: 18, # 'ы' - 252: 17, # 'ь' - 253: 30, # 'э' - 254: 27, # 'ю' - 255: 255, # '€' -} - -MACCYRILLIC_RUSSIAN_MODEL = SingleByteCharSetModel(charset_name='MacCyrillic', - language='Russian', - char_to_order_map=MACCYRILLIC_RUSSIAN_CHAR_TO_ORDER, - language_model=RUSSIAN_LANG_MODEL, - typical_positive_ratio=0.976601, - keep_ascii_letters=False, - alphabet='ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё') - -ISO_8859_5_RUSSIAN_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 142, # 'A' - 66: 143, # 'B' - 67: 144, # 'C' - 68: 145, # 'D' - 69: 146, # 'E' - 70: 147, # 'F' - 71: 148, # 'G' - 72: 149, # 'H' - 73: 150, # 'I' - 74: 151, # 'J' - 75: 152, # 'K' - 76: 74, # 'L' - 77: 153, # 'M' - 78: 75, # 'N' - 79: 154, # 'O' - 80: 155, # 'P' - 81: 156, # 'Q' - 82: 157, # 'R' - 83: 158, # 'S' - 84: 159, # 'T' - 85: 160, # 'U' - 86: 161, # 'V' - 87: 162, # 'W' - 88: 163, # 'X' - 89: 164, # 'Y' - 90: 165, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 71, # 'a' - 98: 172, # 'b' - 99: 66, # 'c' - 100: 173, # 'd' - 101: 65, # 'e' - 102: 174, # 'f' - 103: 76, # 'g' - 104: 175, # 'h' - 105: 64, # 'i' - 106: 176, # 'j' - 107: 177, # 'k' - 108: 77, # 'l' - 109: 72, # 'm' - 110: 178, # 'n' - 111: 69, # 'o' - 112: 67, # 'p' - 113: 179, # 'q' - 114: 78, # 'r' - 115: 73, # 's' - 116: 180, # 't' - 117: 181, # 'u' - 118: 79, # 'v' - 119: 182, # 'w' - 120: 183, # 'x' - 121: 184, # 'y' - 122: 185, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 191, # '\x80' - 129: 192, # '\x81' - 130: 193, # '\x82' - 131: 194, # '\x83' - 132: 195, # '\x84' - 133: 196, # '\x85' - 134: 197, # '\x86' - 135: 198, # '\x87' - 136: 199, # '\x88' - 137: 200, # '\x89' - 138: 201, # '\x8a' - 139: 202, # '\x8b' - 140: 203, # '\x8c' - 141: 204, # '\x8d' - 142: 205, # '\x8e' - 143: 206, # '\x8f' - 144: 207, # '\x90' - 145: 208, # '\x91' - 146: 209, # '\x92' - 147: 210, # '\x93' - 148: 211, # '\x94' - 149: 212, # '\x95' - 150: 213, # '\x96' - 151: 214, # '\x97' - 152: 215, # '\x98' - 153: 216, # '\x99' - 154: 217, # '\x9a' - 155: 218, # '\x9b' - 156: 219, # '\x9c' - 157: 220, # '\x9d' - 158: 221, # '\x9e' - 159: 222, # '\x9f' - 160: 223, # '\xa0' - 161: 224, # 'Ё' - 162: 225, # 'Ђ' - 163: 226, # 'Ѓ' - 164: 227, # 'Є' - 165: 228, # 'Ѕ' - 166: 229, # 'І' - 167: 230, # 'Ї' - 168: 231, # 'Ј' - 169: 232, # 'Љ' - 170: 233, # 'Њ' - 171: 234, # 'Ћ' - 172: 235, # 'Ќ' - 173: 236, # '\xad' - 174: 237, # 'Ў' - 175: 238, # 'Џ' - 176: 37, # 'А' - 177: 44, # 'Б' - 178: 33, # 'В' - 179: 46, # 'Г' - 180: 41, # 'Д' - 181: 48, # 'Е' - 182: 56, # 'Ж' - 183: 51, # 'З' - 184: 42, # 'И' - 185: 60, # 'Й' - 186: 36, # 'К' - 187: 49, # 'Л' - 188: 38, # 'М' - 189: 31, # 'Н' - 190: 34, # 'О' - 191: 35, # 'П' - 192: 45, # 'Р' - 193: 32, # 'С' - 194: 40, # 'Т' - 195: 52, # 'У' - 196: 53, # 'Ф' - 197: 55, # 'Х' - 198: 58, # 'Ц' - 199: 50, # 'Ч' - 200: 57, # 'Ш' - 201: 63, # 'Щ' - 202: 70, # 'Ъ' - 203: 62, # 'Ы' - 204: 61, # 'Ь' - 205: 47, # 'Э' - 206: 59, # 'Ю' - 207: 43, # 'Я' - 208: 3, # 'а' - 209: 21, # 'б' - 210: 10, # 'в' - 211: 19, # 'г' - 212: 13, # 'д' - 213: 2, # 'е' - 214: 24, # 'ж' - 215: 20, # 'з' - 216: 4, # 'и' - 217: 23, # 'й' - 218: 11, # 'к' - 219: 8, # 'л' - 220: 12, # 'м' - 221: 5, # 'н' - 222: 1, # 'о' - 223: 15, # 'п' - 224: 9, # 'р' - 225: 7, # 'с' - 226: 6, # 'т' - 227: 14, # 'у' - 228: 39, # 'ф' - 229: 26, # 'х' - 230: 28, # 'ц' - 231: 22, # 'ч' - 232: 25, # 'ш' - 233: 29, # 'щ' - 234: 54, # 'ъ' - 235: 18, # 'ы' - 236: 17, # 'ь' - 237: 30, # 'э' - 238: 27, # 'ю' - 239: 16, # 'я' - 240: 239, # '№' - 241: 68, # 'ё' - 242: 240, # 'ђ' - 243: 241, # 'ѓ' - 244: 242, # 'є' - 245: 243, # 'ѕ' - 246: 244, # 'і' - 247: 245, # 'ї' - 248: 246, # 'ј' - 249: 247, # 'љ' - 250: 248, # 'њ' - 251: 249, # 'ћ' - 252: 250, # 'ќ' - 253: 251, # '§' - 254: 252, # 'ў' - 255: 255, # 'џ' -} - -ISO_8859_5_RUSSIAN_MODEL = SingleByteCharSetModel(charset_name='ISO-8859-5', - language='Russian', - char_to_order_map=ISO_8859_5_RUSSIAN_CHAR_TO_ORDER, - language_model=RUSSIAN_LANG_MODEL, - typical_positive_ratio=0.976601, - keep_ascii_letters=False, - alphabet='ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё') - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langthaimodel.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langthaimodel.py deleted file mode 100644 index 24e0df2..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langthaimodel.py +++ /dev/null @@ -1,4382 +0,0 @@ -# -*- coding: utf-8 -*- - -from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel - - -# 3: Positive -# 2: Likely -# 1: Unlikely -# 0: Negative - -THAI_LANG_MODEL = { - 5: { # 'ก' - 5: 2, # 'ก' - 30: 2, # 'ข' - 24: 2, # 'ค' - 8: 2, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 3, # 'ฎ' - 57: 2, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 2, # 'ณ' - 20: 2, # 'ด' - 19: 3, # 'ต' - 44: 0, # 'ถ' - 14: 2, # 'ท' - 48: 0, # 'ธ' - 3: 2, # 'น' - 17: 1, # 'บ' - 25: 2, # 'ป' - 39: 1, # 'ผ' - 62: 1, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 1, # 'ภ' - 9: 2, # 'ม' - 16: 1, # 'ย' - 2: 3, # 'ร' - 61: 2, # 'ฤ' - 15: 3, # 'ล' - 12: 3, # 'ว' - 42: 2, # 'ศ' - 46: 3, # 'ษ' - 18: 2, # 'ส' - 21: 2, # 'ห' - 4: 3, # 'อ' - 63: 1, # 'ฯ' - 22: 2, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 3, # 'ำ' - 23: 3, # 'ิ' - 13: 3, # 'ี' - 40: 0, # 'ึ' - 27: 2, # 'ื' - 32: 2, # 'ุ' - 35: 1, # 'ู' - 11: 2, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 1, # 'ใ' - 33: 2, # 'ไ' - 50: 1, # 'ๆ' - 37: 3, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 2, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 30: { # 'ข' - 5: 1, # 'ก' - 30: 0, # 'ข' - 24: 1, # 'ค' - 8: 1, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 2, # 'ณ' - 20: 0, # 'ด' - 19: 2, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 2, # 'น' - 17: 1, # 'บ' - 25: 1, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 2, # 'ย' - 2: 1, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 2, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 1, # 'ห' - 4: 3, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 2, # 'ี' - 40: 3, # 'ึ' - 27: 1, # 'ื' - 32: 1, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 1, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 1, # '็' - 6: 2, # '่' - 7: 3, # '้' - 38: 1, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 24: { # 'ค' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 2, # 'ค' - 8: 2, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 2, # 'ณ' - 20: 2, # 'ด' - 19: 2, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 0, # 'บ' - 25: 1, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 2, # 'ม' - 16: 2, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 3, # 'ล' - 12: 3, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 0, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 2, # 'ะ' - 10: 3, # 'ั' - 1: 2, # 'า' - 36: 3, # 'ำ' - 23: 3, # 'ิ' - 13: 2, # 'ี' - 40: 0, # 'ึ' - 27: 3, # 'ื' - 32: 3, # 'ุ' - 35: 2, # 'ู' - 11: 1, # 'เ' - 28: 0, # 'แ' - 41: 3, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 1, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 3, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 8: { # 'ง' - 5: 3, # 'ก' - 30: 2, # 'ข' - 24: 3, # 'ค' - 8: 2, # 'ง' - 26: 2, # 'จ' - 52: 1, # 'ฉ' - 34: 2, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 2, # 'ด' - 19: 2, # 'ต' - 44: 1, # 'ถ' - 14: 3, # 'ท' - 48: 1, # 'ธ' - 3: 3, # 'น' - 17: 2, # 'บ' - 25: 2, # 'ป' - 39: 2, # 'ผ' - 62: 1, # 'ฝ' - 31: 2, # 'พ' - 54: 0, # 'ฟ' - 45: 1, # 'ภ' - 9: 2, # 'ม' - 16: 1, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 2, # 'ว' - 42: 2, # 'ศ' - 46: 1, # 'ษ' - 18: 3, # 'ส' - 21: 3, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 1, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 2, # 'ิ' - 13: 1, # 'ี' - 40: 0, # 'ึ' - 27: 1, # 'ื' - 32: 1, # 'ุ' - 35: 0, # 'ู' - 11: 3, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 3, # 'ๆ' - 37: 0, # '็' - 6: 2, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 26: { # 'จ' - 5: 2, # 'ก' - 30: 1, # 'ข' - 24: 0, # 'ค' - 8: 2, # 'ง' - 26: 3, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 2, # 'ด' - 19: 1, # 'ต' - 44: 1, # 'ถ' - 14: 2, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 1, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 1, # 'ม' - 16: 1, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 1, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 3, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 3, # 'ำ' - 23: 2, # 'ิ' - 13: 1, # 'ี' - 40: 3, # 'ึ' - 27: 1, # 'ื' - 32: 3, # 'ุ' - 35: 2, # 'ู' - 11: 1, # 'เ' - 28: 1, # 'แ' - 41: 0, # 'โ' - 29: 1, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 2, # '่' - 7: 2, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 52: { # 'ฉ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 3, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 3, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 1, # 'ม' - 16: 1, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 1, # 'ะ' - 10: 1, # 'ั' - 1: 1, # 'า' - 36: 0, # 'ำ' - 23: 1, # 'ิ' - 13: 1, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 1, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 34: { # 'ช' - 5: 1, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 1, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 1, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 2, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 2, # 'ม' - 16: 1, # 'ย' - 2: 1, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 2, # 'ั' - 1: 3, # 'า' - 36: 1, # 'ำ' - 23: 3, # 'ิ' - 13: 2, # 'ี' - 40: 0, # 'ึ' - 27: 3, # 'ื' - 32: 3, # 'ุ' - 35: 1, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 1, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 51: { # 'ซ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 1, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 1, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 0, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 1, # 'ั' - 1: 1, # 'า' - 36: 0, # 'ำ' - 23: 1, # 'ิ' - 13: 2, # 'ี' - 40: 3, # 'ึ' - 27: 2, # 'ื' - 32: 1, # 'ุ' - 35: 1, # 'ู' - 11: 1, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 1, # '็' - 6: 1, # '่' - 7: 2, # '้' - 38: 1, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 47: { # 'ญ' - 5: 1, # 'ก' - 30: 1, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 3, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 1, # 'บ' - 25: 1, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 1, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 1, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 2, # 'ห' - 4: 1, # 'อ' - 63: 0, # 'ฯ' - 22: 1, # 'ะ' - 10: 2, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 1, # 'ิ' - 13: 1, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 1, # 'เ' - 28: 1, # 'แ' - 41: 0, # 'โ' - 29: 1, # 'ใ' - 33: 0, # 'ไ' - 50: 1, # 'ๆ' - 37: 0, # '็' - 6: 2, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 58: { # 'ฎ' - 5: 2, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 1, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 1, # 'ิ' - 13: 2, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 57: { # 'ฏ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 3, # 'ิ' - 13: 1, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 49: { # 'ฐ' - 5: 1, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 2, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 2, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 1, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 1, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 1, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 53: { # 'ฑ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 2, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 3, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 55: { # 'ฒ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 1, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 43: { # 'ณ' - 5: 1, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 3, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 3, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 1, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 1, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 3, # 'ะ' - 10: 0, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 1, # 'ิ' - 13: 2, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 1, # 'เ' - 28: 1, # 'แ' - 41: 0, # 'โ' - 29: 1, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 3, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 20: { # 'ด' - 5: 2, # 'ก' - 30: 2, # 'ข' - 24: 2, # 'ค' - 8: 3, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 2, # 'ต' - 44: 1, # 'ถ' - 14: 2, # 'ท' - 48: 0, # 'ธ' - 3: 1, # 'น' - 17: 1, # 'บ' - 25: 1, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 1, # 'ภ' - 9: 2, # 'ม' - 16: 3, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 2, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 2, # 'ห' - 4: 1, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 3, # 'ั' - 1: 2, # 'า' - 36: 2, # 'ำ' - 23: 3, # 'ิ' - 13: 3, # 'ี' - 40: 1, # 'ึ' - 27: 2, # 'ื' - 32: 3, # 'ุ' - 35: 2, # 'ู' - 11: 2, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 2, # 'ๆ' - 37: 2, # '็' - 6: 1, # '่' - 7: 3, # '้' - 38: 1, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 19: { # 'ต' - 5: 2, # 'ก' - 30: 1, # 'ข' - 24: 1, # 'ค' - 8: 0, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 1, # 'ต' - 44: 2, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 2, # 'น' - 17: 1, # 'บ' - 25: 1, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 2, # 'ภ' - 9: 1, # 'ม' - 16: 1, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 3, # 'ส' - 21: 0, # 'ห' - 4: 3, # 'อ' - 63: 1, # 'ฯ' - 22: 2, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 2, # 'ำ' - 23: 3, # 'ิ' - 13: 2, # 'ี' - 40: 1, # 'ึ' - 27: 1, # 'ื' - 32: 3, # 'ุ' - 35: 2, # 'ู' - 11: 1, # 'เ' - 28: 1, # 'แ' - 41: 1, # 'โ' - 29: 1, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 2, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 2, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 44: { # 'ถ' - 5: 1, # 'ก' - 30: 0, # 'ข' - 24: 1, # 'ค' - 8: 0, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 1, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 1, # 'น' - 17: 2, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 1, # 'ร' - 61: 0, # 'ฤ' - 15: 1, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 0, # 'ห' - 4: 1, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 2, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 2, # 'ิ' - 13: 1, # 'ี' - 40: 3, # 'ึ' - 27: 2, # 'ื' - 32: 2, # 'ุ' - 35: 3, # 'ู' - 11: 1, # 'เ' - 28: 1, # 'แ' - 41: 0, # 'โ' - 29: 1, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 2, # '่' - 7: 3, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 14: { # 'ท' - 5: 1, # 'ก' - 30: 1, # 'ข' - 24: 3, # 'ค' - 8: 1, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 2, # 'ด' - 19: 1, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 3, # 'ธ' - 3: 3, # 'น' - 17: 2, # 'บ' - 25: 2, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 2, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 1, # 'ม' - 16: 3, # 'ย' - 2: 3, # 'ร' - 61: 1, # 'ฤ' - 15: 1, # 'ล' - 12: 2, # 'ว' - 42: 3, # 'ศ' - 46: 1, # 'ษ' - 18: 1, # 'ส' - 21: 0, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 2, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 3, # 'ำ' - 23: 2, # 'ิ' - 13: 3, # 'ี' - 40: 2, # 'ึ' - 27: 1, # 'ื' - 32: 3, # 'ุ' - 35: 1, # 'ู' - 11: 0, # 'เ' - 28: 1, # 'แ' - 41: 0, # 'โ' - 29: 1, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 1, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 2, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 48: { # 'ธ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 1, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 1, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 2, # 'า' - 36: 0, # 'ำ' - 23: 3, # 'ิ' - 13: 3, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 2, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 3, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 3: { # 'น' - 5: 3, # 'ก' - 30: 2, # 'ข' - 24: 3, # 'ค' - 8: 1, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 1, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 3, # 'ด' - 19: 3, # 'ต' - 44: 2, # 'ถ' - 14: 3, # 'ท' - 48: 3, # 'ธ' - 3: 2, # 'น' - 17: 2, # 'บ' - 25: 2, # 'ป' - 39: 2, # 'ผ' - 62: 0, # 'ฝ' - 31: 2, # 'พ' - 54: 1, # 'ฟ' - 45: 1, # 'ภ' - 9: 2, # 'ม' - 16: 2, # 'ย' - 2: 2, # 'ร' - 61: 1, # 'ฤ' - 15: 2, # 'ล' - 12: 3, # 'ว' - 42: 1, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 2, # 'ห' - 4: 3, # 'อ' - 63: 1, # 'ฯ' - 22: 2, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 3, # 'ำ' - 23: 3, # 'ิ' - 13: 3, # 'ี' - 40: 3, # 'ึ' - 27: 3, # 'ื' - 32: 3, # 'ุ' - 35: 2, # 'ู' - 11: 3, # 'เ' - 28: 2, # 'แ' - 41: 3, # 'โ' - 29: 3, # 'ใ' - 33: 3, # 'ไ' - 50: 2, # 'ๆ' - 37: 1, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 2, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 17: { # 'บ' - 5: 3, # 'ก' - 30: 2, # 'ข' - 24: 2, # 'ค' - 8: 1, # 'ง' - 26: 1, # 'จ' - 52: 1, # 'ฉ' - 34: 1, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 2, # 'ต' - 44: 1, # 'ถ' - 14: 3, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 3, # 'บ' - 25: 2, # 'ป' - 39: 2, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 1, # 'ฟ' - 45: 1, # 'ภ' - 9: 1, # 'ม' - 16: 0, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 3, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 2, # 'ห' - 4: 2, # 'อ' - 63: 1, # 'ฯ' - 22: 0, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 2, # 'ำ' - 23: 2, # 'ิ' - 13: 2, # 'ี' - 40: 0, # 'ึ' - 27: 2, # 'ื' - 32: 3, # 'ุ' - 35: 2, # 'ู' - 11: 2, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 0, # 'ๆ' - 37: 1, # '็' - 6: 2, # '่' - 7: 2, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 25: { # 'ป' - 5: 2, # 'ก' - 30: 0, # 'ข' - 24: 1, # 'ค' - 8: 0, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 1, # 'ฎ' - 57: 3, # 'ฏ' - 49: 1, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 1, # 'ต' - 44: 1, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 2, # 'น' - 17: 0, # 'บ' - 25: 1, # 'ป' - 39: 1, # 'ผ' - 62: 1, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 1, # 'ม' - 16: 0, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 3, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 1, # 'ษ' - 18: 2, # 'ส' - 21: 1, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 1, # 'ะ' - 10: 3, # 'ั' - 1: 1, # 'า' - 36: 0, # 'ำ' - 23: 2, # 'ิ' - 13: 3, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 1, # 'ุ' - 35: 0, # 'ู' - 11: 1, # 'เ' - 28: 2, # 'แ' - 41: 0, # 'โ' - 29: 1, # 'ใ' - 33: 2, # 'ไ' - 50: 0, # 'ๆ' - 37: 3, # '็' - 6: 1, # '่' - 7: 2, # '้' - 38: 1, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 39: { # 'ผ' - 5: 1, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 1, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 2, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 1, # 'ม' - 16: 2, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 3, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 1, # 'ะ' - 10: 1, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 2, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 1, # 'ื' - 32: 0, # 'ุ' - 35: 3, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 3, # '่' - 7: 1, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 62: { # 'ฝ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 1, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 1, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 1, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 1, # 'ี' - 40: 2, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 2, # '่' - 7: 1, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 31: { # 'พ' - 5: 1, # 'ก' - 30: 1, # 'ข' - 24: 1, # 'ค' - 8: 1, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 1, # 'ณ' - 20: 1, # 'ด' - 19: 1, # 'ต' - 44: 0, # 'ถ' - 14: 2, # 'ท' - 48: 1, # 'ธ' - 3: 3, # 'น' - 17: 2, # 'บ' - 25: 0, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 1, # 'ม' - 16: 2, # 'ย' - 2: 3, # 'ร' - 61: 2, # 'ฤ' - 15: 2, # 'ล' - 12: 2, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 1, # 'ห' - 4: 2, # 'อ' - 63: 1, # 'ฯ' - 22: 0, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 3, # 'ิ' - 13: 2, # 'ี' - 40: 1, # 'ึ' - 27: 3, # 'ื' - 32: 1, # 'ุ' - 35: 2, # 'ู' - 11: 1, # 'เ' - 28: 1, # 'แ' - 41: 0, # 'โ' - 29: 1, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 1, # '็' - 6: 0, # '่' - 7: 1, # '้' - 38: 3, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 54: { # 'ฟ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 1, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 2, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 1, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 0, # 'ห' - 4: 1, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 2, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 1, # 'ิ' - 13: 1, # 'ี' - 40: 0, # 'ึ' - 27: 1, # 'ื' - 32: 1, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 1, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 2, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 45: { # 'ภ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 1, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 3, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 1, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 1, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 2, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 1, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 9: { # 'ม' - 5: 2, # 'ก' - 30: 2, # 'ข' - 24: 2, # 'ค' - 8: 2, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 1, # 'ณ' - 20: 2, # 'ด' - 19: 2, # 'ต' - 44: 1, # 'ถ' - 14: 2, # 'ท' - 48: 1, # 'ธ' - 3: 3, # 'น' - 17: 2, # 'บ' - 25: 2, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 3, # 'พ' - 54: 0, # 'ฟ' - 45: 1, # 'ภ' - 9: 2, # 'ม' - 16: 1, # 'ย' - 2: 2, # 'ร' - 61: 2, # 'ฤ' - 15: 2, # 'ล' - 12: 2, # 'ว' - 42: 1, # 'ศ' - 46: 1, # 'ษ' - 18: 3, # 'ส' - 21: 3, # 'ห' - 4: 3, # 'อ' - 63: 0, # 'ฯ' - 22: 1, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 3, # 'ิ' - 13: 3, # 'ี' - 40: 0, # 'ึ' - 27: 3, # 'ื' - 32: 3, # 'ุ' - 35: 3, # 'ู' - 11: 2, # 'เ' - 28: 2, # 'แ' - 41: 2, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 1, # 'ๆ' - 37: 1, # '็' - 6: 3, # '่' - 7: 2, # '้' - 38: 1, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 16: { # 'ย' - 5: 3, # 'ก' - 30: 1, # 'ข' - 24: 2, # 'ค' - 8: 3, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 2, # 'ช' - 51: 0, # 'ซ' - 47: 2, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 2, # 'ด' - 19: 2, # 'ต' - 44: 1, # 'ถ' - 14: 2, # 'ท' - 48: 1, # 'ธ' - 3: 3, # 'น' - 17: 3, # 'บ' - 25: 1, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 1, # 'ภ' - 9: 2, # 'ม' - 16: 0, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 1, # 'ล' - 12: 3, # 'ว' - 42: 1, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 1, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 2, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 2, # 'ิ' - 13: 3, # 'ี' - 40: 1, # 'ึ' - 27: 2, # 'ื' - 32: 2, # 'ุ' - 35: 3, # 'ู' - 11: 2, # 'เ' - 28: 1, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 2, # 'ๆ' - 37: 1, # '็' - 6: 3, # '่' - 7: 2, # '้' - 38: 3, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 2: { # 'ร' - 5: 3, # 'ก' - 30: 2, # 'ข' - 24: 2, # 'ค' - 8: 3, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 2, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 3, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 3, # 'ณ' - 20: 2, # 'ด' - 19: 2, # 'ต' - 44: 3, # 'ถ' - 14: 3, # 'ท' - 48: 1, # 'ธ' - 3: 2, # 'น' - 17: 2, # 'บ' - 25: 3, # 'ป' - 39: 2, # 'ผ' - 62: 1, # 'ฝ' - 31: 2, # 'พ' - 54: 1, # 'ฟ' - 45: 1, # 'ภ' - 9: 3, # 'ม' - 16: 2, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 3, # 'ว' - 42: 2, # 'ศ' - 46: 2, # 'ษ' - 18: 2, # 'ส' - 21: 2, # 'ห' - 4: 3, # 'อ' - 63: 1, # 'ฯ' - 22: 3, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 3, # 'ิ' - 13: 3, # 'ี' - 40: 2, # 'ึ' - 27: 3, # 'ื' - 32: 3, # 'ุ' - 35: 3, # 'ู' - 11: 3, # 'เ' - 28: 3, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 3, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 3, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 61: { # 'ฤ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 2, # 'ต' - 44: 0, # 'ถ' - 14: 2, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 1, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 2, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 15: { # 'ล' - 5: 2, # 'ก' - 30: 3, # 'ข' - 24: 1, # 'ค' - 8: 3, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 2, # 'ด' - 19: 2, # 'ต' - 44: 1, # 'ถ' - 14: 2, # 'ท' - 48: 0, # 'ธ' - 3: 1, # 'น' - 17: 2, # 'บ' - 25: 2, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 1, # 'ภ' - 9: 1, # 'ม' - 16: 3, # 'ย' - 2: 1, # 'ร' - 61: 0, # 'ฤ' - 15: 1, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 1, # 'ห' - 4: 3, # 'อ' - 63: 2, # 'ฯ' - 22: 3, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 2, # 'ำ' - 23: 3, # 'ิ' - 13: 3, # 'ี' - 40: 2, # 'ึ' - 27: 3, # 'ื' - 32: 2, # 'ุ' - 35: 3, # 'ู' - 11: 2, # 'เ' - 28: 1, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 2, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 2, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 12: { # 'ว' - 5: 3, # 'ก' - 30: 2, # 'ข' - 24: 1, # 'ค' - 8: 3, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 1, # 'ณ' - 20: 2, # 'ด' - 19: 1, # 'ต' - 44: 1, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 2, # 'บ' - 25: 1, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 1, # 'ฟ' - 45: 0, # 'ภ' - 9: 3, # 'ม' - 16: 3, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 3, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 2, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 2, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 3, # 'ิ' - 13: 2, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 2, # 'ุ' - 35: 0, # 'ู' - 11: 3, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 1, # 'ใ' - 33: 2, # 'ไ' - 50: 1, # 'ๆ' - 37: 0, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 1, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 42: { # 'ศ' - 5: 1, # 'ก' - 30: 0, # 'ข' - 24: 1, # 'ค' - 8: 0, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 1, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 1, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 2, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 2, # 'ว' - 42: 1, # 'ศ' - 46: 2, # 'ษ' - 18: 1, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 2, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 2, # 'ิ' - 13: 0, # 'ี' - 40: 3, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 2, # 'ู' - 11: 0, # 'เ' - 28: 1, # 'แ' - 41: 0, # 'โ' - 29: 1, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 1, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 46: { # 'ษ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 2, # 'ฎ' - 57: 1, # 'ฏ' - 49: 2, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 3, # 'ณ' - 20: 0, # 'ด' - 19: 1, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 1, # 'ภ' - 9: 1, # 'ม' - 16: 2, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 1, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 2, # 'ะ' - 10: 2, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 1, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 1, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 2, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 18: { # 'ส' - 5: 2, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 2, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 3, # 'ด' - 19: 3, # 'ต' - 44: 3, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 2, # 'บ' - 25: 1, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 2, # 'ภ' - 9: 3, # 'ม' - 16: 1, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 1, # 'ล' - 12: 2, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 2, # 'ห' - 4: 3, # 'อ' - 63: 0, # 'ฯ' - 22: 2, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 3, # 'ำ' - 23: 3, # 'ิ' - 13: 3, # 'ี' - 40: 2, # 'ึ' - 27: 3, # 'ื' - 32: 3, # 'ุ' - 35: 3, # 'ู' - 11: 2, # 'เ' - 28: 0, # 'แ' - 41: 1, # 'โ' - 29: 0, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 3, # '่' - 7: 1, # '้' - 38: 2, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 21: { # 'ห' - 5: 3, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 1, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 2, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 3, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 0, # 'บ' - 25: 1, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 3, # 'ม' - 16: 2, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 3, # 'ล' - 12: 2, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 3, # 'อ' - 63: 0, # 'ฯ' - 22: 1, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 0, # 'ำ' - 23: 1, # 'ิ' - 13: 1, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 1, # 'ุ' - 35: 1, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 3, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 2, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 4: { # 'อ' - 5: 3, # 'ก' - 30: 1, # 'ข' - 24: 2, # 'ค' - 8: 3, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 3, # 'ด' - 19: 2, # 'ต' - 44: 1, # 'ถ' - 14: 2, # 'ท' - 48: 1, # 'ธ' - 3: 3, # 'น' - 17: 3, # 'บ' - 25: 1, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 1, # 'ฟ' - 45: 1, # 'ภ' - 9: 3, # 'ม' - 16: 3, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 2, # 'ว' - 42: 1, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 2, # 'ห' - 4: 3, # 'อ' - 63: 0, # 'ฯ' - 22: 2, # 'ะ' - 10: 3, # 'ั' - 1: 3, # 'า' - 36: 2, # 'ำ' - 23: 2, # 'ิ' - 13: 3, # 'ี' - 40: 0, # 'ึ' - 27: 3, # 'ื' - 32: 3, # 'ุ' - 35: 0, # 'ู' - 11: 3, # 'เ' - 28: 1, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 1, # 'ๆ' - 37: 1, # '็' - 6: 2, # '่' - 7: 2, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 63: { # 'ฯ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 22: { # 'ะ' - 5: 3, # 'ก' - 30: 1, # 'ข' - 24: 2, # 'ค' - 8: 1, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 3, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 3, # 'ด' - 19: 3, # 'ต' - 44: 1, # 'ถ' - 14: 3, # 'ท' - 48: 1, # 'ธ' - 3: 2, # 'น' - 17: 3, # 'บ' - 25: 2, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 2, # 'พ' - 54: 0, # 'ฟ' - 45: 1, # 'ภ' - 9: 3, # 'ม' - 16: 2, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 2, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 3, # 'ส' - 21: 3, # 'ห' - 4: 2, # 'อ' - 63: 1, # 'ฯ' - 22: 1, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 3, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 10: { # 'ั' - 5: 3, # 'ก' - 30: 0, # 'ข' - 24: 1, # 'ค' - 8: 3, # 'ง' - 26: 3, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 3, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 2, # 'ฐ' - 53: 0, # 'ฑ' - 55: 3, # 'ฒ' - 43: 3, # 'ณ' - 20: 3, # 'ด' - 19: 3, # 'ต' - 44: 0, # 'ถ' - 14: 2, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 3, # 'บ' - 25: 1, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 2, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 3, # 'ม' - 16: 3, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 3, # 'ว' - 42: 2, # 'ศ' - 46: 0, # 'ษ' - 18: 3, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 1: { # 'า' - 5: 3, # 'ก' - 30: 2, # 'ข' - 24: 3, # 'ค' - 8: 3, # 'ง' - 26: 3, # 'จ' - 52: 0, # 'ฉ' - 34: 3, # 'ช' - 51: 1, # 'ซ' - 47: 2, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 3, # 'ณ' - 20: 3, # 'ด' - 19: 3, # 'ต' - 44: 1, # 'ถ' - 14: 3, # 'ท' - 48: 2, # 'ธ' - 3: 3, # 'น' - 17: 3, # 'บ' - 25: 2, # 'ป' - 39: 1, # 'ผ' - 62: 1, # 'ฝ' - 31: 3, # 'พ' - 54: 1, # 'ฟ' - 45: 1, # 'ภ' - 9: 3, # 'ม' - 16: 3, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 3, # 'ล' - 12: 3, # 'ว' - 42: 2, # 'ศ' - 46: 3, # 'ษ' - 18: 3, # 'ส' - 21: 3, # 'ห' - 4: 2, # 'อ' - 63: 1, # 'ฯ' - 22: 3, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 3, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 1, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 36: { # 'ำ' - 5: 2, # 'ก' - 30: 1, # 'ข' - 24: 3, # 'ค' - 8: 2, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 1, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 1, # 'ต' - 44: 1, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 1, # 'บ' - 25: 1, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 1, # 'ภ' - 9: 1, # 'ม' - 16: 0, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 3, # 'ห' - 4: 1, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 3, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 23: { # 'ิ' - 5: 3, # 'ก' - 30: 1, # 'ข' - 24: 2, # 'ค' - 8: 3, # 'ง' - 26: 3, # 'จ' - 52: 0, # 'ฉ' - 34: 3, # 'ช' - 51: 0, # 'ซ' - 47: 2, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 3, # 'ด' - 19: 3, # 'ต' - 44: 1, # 'ถ' - 14: 3, # 'ท' - 48: 3, # 'ธ' - 3: 3, # 'น' - 17: 3, # 'บ' - 25: 2, # 'ป' - 39: 2, # 'ผ' - 62: 0, # 'ฝ' - 31: 3, # 'พ' - 54: 1, # 'ฟ' - 45: 2, # 'ภ' - 9: 3, # 'ม' - 16: 2, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 3, # 'ว' - 42: 3, # 'ศ' - 46: 2, # 'ษ' - 18: 2, # 'ส' - 21: 3, # 'ห' - 4: 1, # 'อ' - 63: 1, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 3, # 'เ' - 28: 1, # 'แ' - 41: 1, # 'โ' - 29: 1, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 3, # '่' - 7: 2, # '้' - 38: 2, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 13: { # 'ี' - 5: 3, # 'ก' - 30: 2, # 'ข' - 24: 2, # 'ค' - 8: 0, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 2, # 'ด' - 19: 1, # 'ต' - 44: 0, # 'ถ' - 14: 2, # 'ท' - 48: 0, # 'ธ' - 3: 1, # 'น' - 17: 2, # 'บ' - 25: 2, # 'ป' - 39: 1, # 'ผ' - 62: 0, # 'ฝ' - 31: 2, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 2, # 'ม' - 16: 3, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 1, # 'ล' - 12: 2, # 'ว' - 42: 1, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 1, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 2, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 1, # 'ใ' - 33: 1, # 'ไ' - 50: 1, # 'ๆ' - 37: 0, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 40: { # 'ึ' - 5: 3, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 3, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 1, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 27: { # 'ื' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 2, # 'น' - 17: 3, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 2, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 3, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 32: { # 'ุ' - 5: 3, # 'ก' - 30: 2, # 'ข' - 24: 3, # 'ค' - 8: 3, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 2, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 1, # 'ฒ' - 43: 3, # 'ณ' - 20: 3, # 'ด' - 19: 3, # 'ต' - 44: 1, # 'ถ' - 14: 2, # 'ท' - 48: 1, # 'ธ' - 3: 2, # 'น' - 17: 2, # 'บ' - 25: 2, # 'ป' - 39: 2, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 1, # 'ภ' - 9: 3, # 'ม' - 16: 1, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 1, # 'ว' - 42: 1, # 'ศ' - 46: 2, # 'ษ' - 18: 1, # 'ส' - 21: 1, # 'ห' - 4: 1, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 1, # 'เ' - 28: 0, # 'แ' - 41: 1, # 'โ' - 29: 0, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 3, # '่' - 7: 2, # '้' - 38: 1, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 35: { # 'ู' - 5: 3, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 2, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 2, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 1, # 'ณ' - 20: 2, # 'ด' - 19: 2, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 2, # 'น' - 17: 0, # 'บ' - 25: 3, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 2, # 'ม' - 16: 0, # 'ย' - 2: 1, # 'ร' - 61: 0, # 'ฤ' - 15: 3, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 1, # 'เ' - 28: 1, # 'แ' - 41: 1, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 3, # '่' - 7: 3, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 11: { # 'เ' - 5: 3, # 'ก' - 30: 3, # 'ข' - 24: 3, # 'ค' - 8: 2, # 'ง' - 26: 3, # 'จ' - 52: 3, # 'ฉ' - 34: 3, # 'ช' - 51: 2, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 1, # 'ณ' - 20: 3, # 'ด' - 19: 3, # 'ต' - 44: 1, # 'ถ' - 14: 3, # 'ท' - 48: 1, # 'ธ' - 3: 3, # 'น' - 17: 3, # 'บ' - 25: 3, # 'ป' - 39: 2, # 'ผ' - 62: 1, # 'ฝ' - 31: 3, # 'พ' - 54: 1, # 'ฟ' - 45: 3, # 'ภ' - 9: 3, # 'ม' - 16: 2, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 3, # 'ล' - 12: 3, # 'ว' - 42: 2, # 'ศ' - 46: 0, # 'ษ' - 18: 3, # 'ส' - 21: 3, # 'ห' - 4: 3, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 28: { # 'แ' - 5: 3, # 'ก' - 30: 2, # 'ข' - 24: 2, # 'ค' - 8: 1, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 2, # 'ด' - 19: 3, # 'ต' - 44: 2, # 'ถ' - 14: 3, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 3, # 'บ' - 25: 2, # 'ป' - 39: 3, # 'ผ' - 62: 0, # 'ฝ' - 31: 2, # 'พ' - 54: 2, # 'ฟ' - 45: 0, # 'ภ' - 9: 2, # 'ม' - 16: 2, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 3, # 'ล' - 12: 2, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 3, # 'ส' - 21: 3, # 'ห' - 4: 1, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 41: { # 'โ' - 5: 2, # 'ก' - 30: 1, # 'ข' - 24: 2, # 'ค' - 8: 0, # 'ง' - 26: 1, # 'จ' - 52: 1, # 'ฉ' - 34: 1, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 3, # 'ด' - 19: 2, # 'ต' - 44: 0, # 'ถ' - 14: 2, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 1, # 'บ' - 25: 3, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 1, # 'ฟ' - 45: 1, # 'ภ' - 9: 1, # 'ม' - 16: 2, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 3, # 'ล' - 12: 0, # 'ว' - 42: 1, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 0, # 'ห' - 4: 2, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 29: { # 'ใ' - 5: 2, # 'ก' - 30: 0, # 'ข' - 24: 1, # 'ค' - 8: 0, # 'ง' - 26: 3, # 'จ' - 52: 0, # 'ฉ' - 34: 3, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 3, # 'ด' - 19: 1, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 2, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 1, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 3, # 'ส' - 21: 3, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 33: { # 'ไ' - 5: 1, # 'ก' - 30: 2, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 3, # 'ด' - 19: 1, # 'ต' - 44: 0, # 'ถ' - 14: 3, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 1, # 'บ' - 25: 3, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 2, # 'ฟ' - 45: 0, # 'ภ' - 9: 3, # 'ม' - 16: 0, # 'ย' - 2: 3, # 'ร' - 61: 0, # 'ฤ' - 15: 1, # 'ล' - 12: 3, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 2, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 50: { # 'ๆ' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 37: { # '็' - 5: 2, # 'ก' - 30: 1, # 'ข' - 24: 2, # 'ค' - 8: 2, # 'ง' - 26: 3, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 1, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 2, # 'ต' - 44: 0, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 3, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 2, # 'ม' - 16: 1, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 2, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 0, # 'ห' - 4: 1, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 1, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 6: { # '่' - 5: 2, # 'ก' - 30: 1, # 'ข' - 24: 2, # 'ค' - 8: 3, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 1, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 2, # 'ต' - 44: 1, # 'ถ' - 14: 2, # 'ท' - 48: 1, # 'ธ' - 3: 3, # 'น' - 17: 1, # 'บ' - 25: 2, # 'ป' - 39: 2, # 'ผ' - 62: 1, # 'ฝ' - 31: 1, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 3, # 'ม' - 16: 3, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 2, # 'ล' - 12: 3, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 1, # 'ห' - 4: 3, # 'อ' - 63: 0, # 'ฯ' - 22: 1, # 'ะ' - 10: 0, # 'ั' - 1: 3, # 'า' - 36: 2, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 3, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 1, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 7: { # '้' - 5: 2, # 'ก' - 30: 1, # 'ข' - 24: 2, # 'ค' - 8: 3, # 'ง' - 26: 2, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 1, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 1, # 'ด' - 19: 2, # 'ต' - 44: 1, # 'ถ' - 14: 2, # 'ท' - 48: 0, # 'ธ' - 3: 3, # 'น' - 17: 2, # 'บ' - 25: 2, # 'ป' - 39: 2, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 1, # 'ฟ' - 45: 0, # 'ภ' - 9: 3, # 'ม' - 16: 2, # 'ย' - 2: 2, # 'ร' - 61: 0, # 'ฤ' - 15: 1, # 'ล' - 12: 3, # 'ว' - 42: 1, # 'ศ' - 46: 0, # 'ษ' - 18: 2, # 'ส' - 21: 2, # 'ห' - 4: 3, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 3, # 'า' - 36: 2, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 2, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 2, # 'ใ' - 33: 2, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 38: { # '์' - 5: 2, # 'ก' - 30: 1, # 'ข' - 24: 1, # 'ค' - 8: 0, # 'ง' - 26: 1, # 'จ' - 52: 0, # 'ฉ' - 34: 1, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 2, # 'ด' - 19: 1, # 'ต' - 44: 1, # 'ถ' - 14: 1, # 'ท' - 48: 0, # 'ธ' - 3: 1, # 'น' - 17: 1, # 'บ' - 25: 1, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 1, # 'พ' - 54: 1, # 'ฟ' - 45: 0, # 'ภ' - 9: 2, # 'ม' - 16: 0, # 'ย' - 2: 1, # 'ร' - 61: 1, # 'ฤ' - 15: 1, # 'ล' - 12: 1, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 1, # 'ส' - 21: 1, # 'ห' - 4: 2, # 'อ' - 63: 1, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 2, # 'เ' - 28: 2, # 'แ' - 41: 1, # 'โ' - 29: 1, # 'ใ' - 33: 1, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 0, # '๑' - 59: 0, # '๒' - 60: 0, # '๕' - }, - 56: { # '๑' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 2, # '๑' - 59: 1, # '๒' - 60: 1, # '๕' - }, - 59: { # '๒' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 1, # '๑' - 59: 1, # '๒' - 60: 3, # '๕' - }, - 60: { # '๕' - 5: 0, # 'ก' - 30: 0, # 'ข' - 24: 0, # 'ค' - 8: 0, # 'ง' - 26: 0, # 'จ' - 52: 0, # 'ฉ' - 34: 0, # 'ช' - 51: 0, # 'ซ' - 47: 0, # 'ญ' - 58: 0, # 'ฎ' - 57: 0, # 'ฏ' - 49: 0, # 'ฐ' - 53: 0, # 'ฑ' - 55: 0, # 'ฒ' - 43: 0, # 'ณ' - 20: 0, # 'ด' - 19: 0, # 'ต' - 44: 0, # 'ถ' - 14: 0, # 'ท' - 48: 0, # 'ธ' - 3: 0, # 'น' - 17: 0, # 'บ' - 25: 0, # 'ป' - 39: 0, # 'ผ' - 62: 0, # 'ฝ' - 31: 0, # 'พ' - 54: 0, # 'ฟ' - 45: 0, # 'ภ' - 9: 0, # 'ม' - 16: 0, # 'ย' - 2: 0, # 'ร' - 61: 0, # 'ฤ' - 15: 0, # 'ล' - 12: 0, # 'ว' - 42: 0, # 'ศ' - 46: 0, # 'ษ' - 18: 0, # 'ส' - 21: 0, # 'ห' - 4: 0, # 'อ' - 63: 0, # 'ฯ' - 22: 0, # 'ะ' - 10: 0, # 'ั' - 1: 0, # 'า' - 36: 0, # 'ำ' - 23: 0, # 'ิ' - 13: 0, # 'ี' - 40: 0, # 'ึ' - 27: 0, # 'ื' - 32: 0, # 'ุ' - 35: 0, # 'ู' - 11: 0, # 'เ' - 28: 0, # 'แ' - 41: 0, # 'โ' - 29: 0, # 'ใ' - 33: 0, # 'ไ' - 50: 0, # 'ๆ' - 37: 0, # '็' - 6: 0, # '่' - 7: 0, # '้' - 38: 0, # '์' - 56: 2, # '๑' - 59: 1, # '๒' - 60: 0, # '๕' - }, -} - -# 255: Undefined characters that did not exist in training text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 -# 251: Control characters - -# Character Mapping Table(s): -TIS_620_THAI_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 254, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 254, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 253, # ' ' - 33: 253, # '!' - 34: 253, # '"' - 35: 253, # '#' - 36: 253, # '$' - 37: 253, # '%' - 38: 253, # '&' - 39: 253, # "'" - 40: 253, # '(' - 41: 253, # ')' - 42: 253, # '*' - 43: 253, # '+' - 44: 253, # ',' - 45: 253, # '-' - 46: 253, # '.' - 47: 253, # '/' - 48: 252, # '0' - 49: 252, # '1' - 50: 252, # '2' - 51: 252, # '3' - 52: 252, # '4' - 53: 252, # '5' - 54: 252, # '6' - 55: 252, # '7' - 56: 252, # '8' - 57: 252, # '9' - 58: 253, # ':' - 59: 253, # ';' - 60: 253, # '<' - 61: 253, # '=' - 62: 253, # '>' - 63: 253, # '?' - 64: 253, # '@' - 65: 182, # 'A' - 66: 106, # 'B' - 67: 107, # 'C' - 68: 100, # 'D' - 69: 183, # 'E' - 70: 184, # 'F' - 71: 185, # 'G' - 72: 101, # 'H' - 73: 94, # 'I' - 74: 186, # 'J' - 75: 187, # 'K' - 76: 108, # 'L' - 77: 109, # 'M' - 78: 110, # 'N' - 79: 111, # 'O' - 80: 188, # 'P' - 81: 189, # 'Q' - 82: 190, # 'R' - 83: 89, # 'S' - 84: 95, # 'T' - 85: 112, # 'U' - 86: 113, # 'V' - 87: 191, # 'W' - 88: 192, # 'X' - 89: 193, # 'Y' - 90: 194, # 'Z' - 91: 253, # '[' - 92: 253, # '\\' - 93: 253, # ']' - 94: 253, # '^' - 95: 253, # '_' - 96: 253, # '`' - 97: 64, # 'a' - 98: 72, # 'b' - 99: 73, # 'c' - 100: 114, # 'd' - 101: 74, # 'e' - 102: 115, # 'f' - 103: 116, # 'g' - 104: 102, # 'h' - 105: 81, # 'i' - 106: 201, # 'j' - 107: 117, # 'k' - 108: 90, # 'l' - 109: 103, # 'm' - 110: 78, # 'n' - 111: 82, # 'o' - 112: 96, # 'p' - 113: 202, # 'q' - 114: 91, # 'r' - 115: 79, # 's' - 116: 84, # 't' - 117: 104, # 'u' - 118: 105, # 'v' - 119: 97, # 'w' - 120: 98, # 'x' - 121: 92, # 'y' - 122: 203, # 'z' - 123: 253, # '{' - 124: 253, # '|' - 125: 253, # '}' - 126: 253, # '~' - 127: 253, # '\x7f' - 128: 209, # '\x80' - 129: 210, # '\x81' - 130: 211, # '\x82' - 131: 212, # '\x83' - 132: 213, # '\x84' - 133: 88, # '\x85' - 134: 214, # '\x86' - 135: 215, # '\x87' - 136: 216, # '\x88' - 137: 217, # '\x89' - 138: 218, # '\x8a' - 139: 219, # '\x8b' - 140: 220, # '\x8c' - 141: 118, # '\x8d' - 142: 221, # '\x8e' - 143: 222, # '\x8f' - 144: 223, # '\x90' - 145: 224, # '\x91' - 146: 99, # '\x92' - 147: 85, # '\x93' - 148: 83, # '\x94' - 149: 225, # '\x95' - 150: 226, # '\x96' - 151: 227, # '\x97' - 152: 228, # '\x98' - 153: 229, # '\x99' - 154: 230, # '\x9a' - 155: 231, # '\x9b' - 156: 232, # '\x9c' - 157: 233, # '\x9d' - 158: 234, # '\x9e' - 159: 235, # '\x9f' - 160: 236, # None - 161: 5, # 'ก' - 162: 30, # 'ข' - 163: 237, # 'ฃ' - 164: 24, # 'ค' - 165: 238, # 'ฅ' - 166: 75, # 'ฆ' - 167: 8, # 'ง' - 168: 26, # 'จ' - 169: 52, # 'ฉ' - 170: 34, # 'ช' - 171: 51, # 'ซ' - 172: 119, # 'ฌ' - 173: 47, # 'ญ' - 174: 58, # 'ฎ' - 175: 57, # 'ฏ' - 176: 49, # 'ฐ' - 177: 53, # 'ฑ' - 178: 55, # 'ฒ' - 179: 43, # 'ณ' - 180: 20, # 'ด' - 181: 19, # 'ต' - 182: 44, # 'ถ' - 183: 14, # 'ท' - 184: 48, # 'ธ' - 185: 3, # 'น' - 186: 17, # 'บ' - 187: 25, # 'ป' - 188: 39, # 'ผ' - 189: 62, # 'ฝ' - 190: 31, # 'พ' - 191: 54, # 'ฟ' - 192: 45, # 'ภ' - 193: 9, # 'ม' - 194: 16, # 'ย' - 195: 2, # 'ร' - 196: 61, # 'ฤ' - 197: 15, # 'ล' - 198: 239, # 'ฦ' - 199: 12, # 'ว' - 200: 42, # 'ศ' - 201: 46, # 'ษ' - 202: 18, # 'ส' - 203: 21, # 'ห' - 204: 76, # 'ฬ' - 205: 4, # 'อ' - 206: 66, # 'ฮ' - 207: 63, # 'ฯ' - 208: 22, # 'ะ' - 209: 10, # 'ั' - 210: 1, # 'า' - 211: 36, # 'ำ' - 212: 23, # 'ิ' - 213: 13, # 'ี' - 214: 40, # 'ึ' - 215: 27, # 'ื' - 216: 32, # 'ุ' - 217: 35, # 'ู' - 218: 86, # 'ฺ' - 219: 240, # None - 220: 241, # None - 221: 242, # None - 222: 243, # None - 223: 244, # '฿' - 224: 11, # 'เ' - 225: 28, # 'แ' - 226: 41, # 'โ' - 227: 29, # 'ใ' - 228: 33, # 'ไ' - 229: 245, # 'ๅ' - 230: 50, # 'ๆ' - 231: 37, # '็' - 232: 6, # '่' - 233: 7, # '้' - 234: 67, # '๊' - 235: 77, # '๋' - 236: 38, # '์' - 237: 93, # 'ํ' - 238: 246, # '๎' - 239: 247, # '๏' - 240: 68, # '๐' - 241: 56, # '๑' - 242: 59, # '๒' - 243: 65, # '๓' - 244: 69, # '๔' - 245: 60, # '๕' - 246: 70, # '๖' - 247: 80, # '๗' - 248: 71, # '๘' - 249: 87, # '๙' - 250: 248, # '๚' - 251: 249, # '๛' - 252: 250, # None - 253: 251, # None - 254: 252, # None - 255: 253, # None -} - -TIS_620_THAI_MODEL = SingleByteCharSetModel(charset_name='TIS-620', - language='Thai', - char_to_order_map=TIS_620_THAI_CHAR_TO_ORDER, - language_model=THAI_LANG_MODEL, - typical_positive_ratio=0.926386, - keep_ascii_letters=False, - alphabet='กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛') - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langturkishmodel.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langturkishmodel.py deleted file mode 100644 index 354b600..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langturkishmodel.py +++ /dev/null @@ -1,4382 +0,0 @@ -# -*- coding: utf-8 -*- - -from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel - - -# 3: Positive -# 2: Likely -# 1: Unlikely -# 0: Negative - -TURKISH_LANG_MODEL = { - 23: { # 'A' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 0, # 'c' - 12: 2, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 1, # 'g' - 25: 1, # 'h' - 3: 1, # 'i' - 24: 0, # 'j' - 10: 2, # 'k' - 5: 1, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 1, # 'r' - 8: 1, # 's' - 9: 1, # 't' - 14: 1, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 3, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 0, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 37: { # 'B' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 2, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 2, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 1, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 1, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 0, # 'Z' - 1: 2, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 0, # 'k' - 5: 0, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 1, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 1, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 0, # 'ı' - 40: 1, # 'Ş' - 19: 1, # 'ş' - }, - 47: { # 'C' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 1, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 1, # 'L' - 20: 0, # 'M' - 46: 1, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 1, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 2, # 'j' - 10: 1, # 'k' - 5: 2, # 'l' - 13: 2, # 'm' - 4: 2, # 'n' - 15: 1, # 'o' - 26: 0, # 'p' - 7: 2, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 1, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 1, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 39: { # 'D' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 1, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 1, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 2, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 0, # 'k' - 5: 1, # 'l' - 13: 3, # 'm' - 4: 0, # 'n' - 15: 1, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 1, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 1, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 0, # 'İ' - 6: 1, # 'ı' - 40: 1, # 'Ş' - 19: 0, # 'ş' - }, - 29: { # 'E' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 1, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 0, # 'c' - 12: 2, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 1, # 'g' - 25: 0, # 'h' - 3: 1, # 'i' - 24: 1, # 'j' - 10: 0, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 1, # 's' - 9: 1, # 't' - 14: 1, # 'u' - 32: 1, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 2, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 52: { # 'F' - 23: 0, # 'A' - 37: 1, # 'B' - 47: 1, # 'C' - 39: 1, # 'D' - 29: 1, # 'E' - 52: 2, # 'F' - 36: 0, # 'G' - 45: 2, # 'H' - 53: 1, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 1, # 'N' - 42: 1, # 'O' - 48: 2, # 'P' - 44: 1, # 'R' - 35: 1, # 'S' - 31: 1, # 'T' - 51: 1, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 2, # 'Y' - 56: 0, # 'Z' - 1: 0, # 'a' - 21: 1, # 'b' - 28: 1, # 'c' - 12: 1, # 'd' - 2: 0, # 'e' - 18: 1, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 2, # 'i' - 24: 1, # 'j' - 10: 0, # 'k' - 5: 0, # 'l' - 13: 1, # 'm' - 4: 2, # 'n' - 15: 1, # 'o' - 26: 0, # 'p' - 7: 2, # 'r' - 8: 1, # 's' - 9: 1, # 't' - 14: 1, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 1, # 'y' - 22: 1, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 1, # 'Ö' - 55: 2, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 2, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 1, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 2, # 'ş' - }, - 36: { # 'G' - 23: 1, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 1, # 'F' - 36: 2, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 2, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 2, # 'N' - 42: 1, # 'O' - 48: 1, # 'P' - 44: 1, # 'R' - 35: 1, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 2, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 1, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 1, # 'j' - 10: 1, # 'k' - 5: 0, # 'l' - 13: 3, # 'm' - 4: 2, # 'n' - 15: 0, # 'o' - 26: 1, # 'p' - 7: 0, # 'r' - 8: 1, # 's' - 9: 1, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 1, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 2, # 'Ö' - 55: 0, # 'Ü' - 59: 1, # 'â' - 33: 2, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 1, # 'İ' - 6: 2, # 'ı' - 40: 2, # 'Ş' - 19: 1, # 'ş' - }, - 45: { # 'H' - 23: 0, # 'A' - 37: 1, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 2, # 'F' - 36: 2, # 'G' - 45: 1, # 'H' - 53: 1, # 'I' - 60: 0, # 'J' - 16: 2, # 'K' - 49: 1, # 'L' - 20: 0, # 'M' - 46: 1, # 'N' - 42: 1, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 2, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 2, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 2, # 'i' - 24: 0, # 'j' - 10: 1, # 'k' - 5: 0, # 'l' - 13: 2, # 'm' - 4: 0, # 'n' - 15: 1, # 'o' - 26: 1, # 'p' - 7: 1, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 1, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 2, # 'ğ' - 41: 1, # 'İ' - 6: 0, # 'ı' - 40: 2, # 'Ş' - 19: 1, # 'ş' - }, - 53: { # 'I' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 1, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 2, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 2, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 0, # 'k' - 5: 2, # 'l' - 13: 2, # 'm' - 4: 0, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 2, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 0, # 'ı' - 40: 1, # 'Ş' - 19: 1, # 'ş' - }, - 60: { # 'J' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 0, # 'a' - 21: 1, # 'b' - 28: 0, # 'c' - 12: 1, # 'd' - 2: 0, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 1, # 'i' - 24: 0, # 'j' - 10: 0, # 'k' - 5: 0, # 'l' - 13: 0, # 'm' - 4: 1, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 1, # 's' - 9: 0, # 't' - 14: 0, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 0, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 16: { # 'K' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 3, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 2, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 2, # 'a' - 21: 3, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 1, # 'e' - 18: 3, # 'f' - 27: 3, # 'g' - 25: 3, # 'h' - 3: 3, # 'i' - 24: 2, # 'j' - 10: 3, # 'k' - 5: 0, # 'l' - 13: 0, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 1, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 0, # 'u' - 32: 3, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 2, # 'y' - 22: 1, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 2, # 'ü' - 30: 0, # 'ğ' - 41: 1, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 49: { # 'L' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 2, # 'E' - 52: 0, # 'F' - 36: 1, # 'G' - 45: 1, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 2, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 0, # 'Z' - 1: 0, # 'a' - 21: 3, # 'b' - 28: 0, # 'c' - 12: 2, # 'd' - 2: 0, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 2, # 'i' - 24: 0, # 'j' - 10: 1, # 'k' - 5: 0, # 'l' - 13: 0, # 'm' - 4: 2, # 'n' - 15: 1, # 'o' - 26: 1, # 'p' - 7: 1, # 'r' - 8: 1, # 's' - 9: 1, # 't' - 14: 0, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 2, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 2, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 1, # 'ü' - 30: 1, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 20: { # 'M' - 23: 1, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 1, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 1, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 2, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 1, # 'g' - 25: 1, # 'h' - 3: 2, # 'i' - 24: 2, # 'j' - 10: 2, # 'k' - 5: 2, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 1, # 'p' - 7: 3, # 'r' - 8: 0, # 's' - 9: 2, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 2, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 3, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 46: { # 'N' - 23: 0, # 'A' - 37: 1, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 1, # 'F' - 36: 1, # 'G' - 45: 1, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 2, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 1, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 1, # 'R' - 35: 1, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 2, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 1, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 2, # 'j' - 10: 1, # 'k' - 5: 1, # 'l' - 13: 3, # 'm' - 4: 2, # 'n' - 15: 1, # 'o' - 26: 1, # 'p' - 7: 1, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 1, # 'x' - 11: 1, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 1, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 1, # 'İ' - 6: 2, # 'ı' - 40: 1, # 'Ş' - 19: 1, # 'ş' - }, - 42: { # 'O' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 1, # 'F' - 36: 0, # 'G' - 45: 1, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 2, # 'K' - 49: 1, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 2, # 'P' - 44: 1, # 'R' - 35: 1, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 0, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 0, # 'n' - 15: 1, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 2, # 'Ç' - 50: 1, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 2, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 2, # 'İ' - 6: 1, # 'ı' - 40: 1, # 'Ş' - 19: 1, # 'ş' - }, - 48: { # 'P' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 2, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 2, # 'F' - 36: 1, # 'G' - 45: 1, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 2, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 1, # 'N' - 42: 1, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 1, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 2, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 1, # 'k' - 5: 0, # 'l' - 13: 2, # 'm' - 4: 0, # 'n' - 15: 2, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 2, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 2, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 2, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 1, # 'İ' - 6: 0, # 'ı' - 40: 2, # 'Ş' - 19: 1, # 'ş' - }, - 44: { # 'R' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 1, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 1, # 'b' - 28: 1, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 1, # 'k' - 5: 2, # 'l' - 13: 2, # 'm' - 4: 0, # 'n' - 15: 1, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 1, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 1, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 1, # 'ü' - 30: 1, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 1, # 'Ş' - 19: 1, # 'ş' - }, - 35: { # 'S' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 1, # 'F' - 36: 1, # 'G' - 45: 1, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 1, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 1, # 'k' - 5: 1, # 'l' - 13: 2, # 'm' - 4: 1, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 1, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 1, # 'z' - 63: 0, # '·' - 54: 2, # 'Ç' - 50: 2, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 3, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 2, # 'Ş' - 19: 1, # 'ş' - }, - 31: { # 'T' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 1, # 'J' - 16: 2, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 2, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 2, # 'b' - 28: 0, # 'c' - 12: 1, # 'd' - 2: 3, # 'e' - 18: 2, # 'f' - 27: 2, # 'g' - 25: 0, # 'h' - 3: 1, # 'i' - 24: 1, # 'j' - 10: 2, # 'k' - 5: 2, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 2, # 'p' - 7: 2, # 'r' - 8: 0, # 's' - 9: 2, # 't' - 14: 2, # 'u' - 32: 1, # 'v' - 57: 1, # 'w' - 58: 1, # 'x' - 11: 2, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 1, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 51: { # 'U' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 1, # 'F' - 36: 1, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 1, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 1, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 1, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 2, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 1, # 'k' - 5: 1, # 'l' - 13: 3, # 'm' - 4: 2, # 'n' - 15: 0, # 'o' - 26: 1, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 1, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 1, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 1, # 'ş' - }, - 38: { # 'V' - 23: 1, # 'A' - 37: 1, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 2, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 1, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 0, # 'k' - 5: 2, # 'l' - 13: 2, # 'm' - 4: 0, # 'n' - 15: 2, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 1, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 1, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 1, # 'Ö' - 55: 0, # 'Ü' - 59: 1, # 'â' - 33: 2, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 1, # 'İ' - 6: 3, # 'ı' - 40: 2, # 'Ş' - 19: 1, # 'ş' - }, - 62: { # 'W' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 0, # 'a' - 21: 0, # 'b' - 28: 0, # 'c' - 12: 0, # 'd' - 2: 0, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 0, # 'k' - 5: 0, # 'l' - 13: 0, # 'm' - 4: 0, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 0, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 0, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 43: { # 'Y' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 2, # 'F' - 36: 0, # 'G' - 45: 1, # 'H' - 53: 1, # 'I' - 60: 0, # 'J' - 16: 2, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 2, # 'N' - 42: 0, # 'O' - 48: 2, # 'P' - 44: 1, # 'R' - 35: 1, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 2, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 1, # 'j' - 10: 1, # 'k' - 5: 1, # 'l' - 13: 3, # 'm' - 4: 0, # 'n' - 15: 2, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 1, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 2, # 'Ö' - 55: 1, # 'Ü' - 59: 1, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 1, # 'İ' - 6: 0, # 'ı' - 40: 2, # 'Ş' - 19: 1, # 'ş' - }, - 56: { # 'Z' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 2, # 'Z' - 1: 2, # 'a' - 21: 1, # 'b' - 28: 0, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 2, # 'i' - 24: 1, # 'j' - 10: 0, # 'k' - 5: 0, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 1, # 'r' - 8: 1, # 's' - 9: 0, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 1, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 1, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 1: { # 'a' - 23: 3, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 3, # 'E' - 52: 0, # 'F' - 36: 1, # 'G' - 45: 1, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 1, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 3, # 'T' - 51: 0, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 2, # 'Z' - 1: 2, # 'a' - 21: 3, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 2, # 'e' - 18: 3, # 'f' - 27: 3, # 'g' - 25: 3, # 'h' - 3: 3, # 'i' - 24: 3, # 'j' - 10: 3, # 'k' - 5: 0, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 15: 1, # 'o' - 26: 3, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 3, # 'v' - 57: 2, # 'w' - 58: 0, # 'x' - 11: 3, # 'y' - 22: 0, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 1, # 'î' - 34: 1, # 'ö' - 17: 3, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 1, # 'ş' - }, - 21: { # 'b' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 1, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 1, # 'J' - 16: 2, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 1, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 2, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 3, # 'g' - 25: 1, # 'h' - 3: 3, # 'i' - 24: 2, # 'j' - 10: 3, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 3, # 'p' - 7: 1, # 'r' - 8: 2, # 's' - 9: 2, # 't' - 14: 2, # 'u' - 32: 1, # 'v' - 57: 0, # 'w' - 58: 1, # 'x' - 11: 3, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 28: { # 'c' - 23: 0, # 'A' - 37: 1, # 'B' - 47: 1, # 'C' - 39: 1, # 'D' - 29: 2, # 'E' - 52: 0, # 'F' - 36: 2, # 'G' - 45: 2, # 'H' - 53: 1, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 1, # 'N' - 42: 1, # 'O' - 48: 2, # 'P' - 44: 1, # 'R' - 35: 1, # 'S' - 31: 2, # 'T' - 51: 2, # 'U' - 38: 2, # 'V' - 62: 0, # 'W' - 43: 3, # 'Y' - 56: 0, # 'Z' - 1: 1, # 'a' - 21: 1, # 'b' - 28: 2, # 'c' - 12: 2, # 'd' - 2: 1, # 'e' - 18: 1, # 'f' - 27: 2, # 'g' - 25: 2, # 'h' - 3: 3, # 'i' - 24: 1, # 'j' - 10: 3, # 'k' - 5: 0, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 15: 2, # 'o' - 26: 2, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 1, # 'u' - 32: 0, # 'v' - 57: 1, # 'w' - 58: 0, # 'x' - 11: 2, # 'y' - 22: 1, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 1, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 1, # 'î' - 34: 2, # 'ö' - 17: 2, # 'ü' - 30: 2, # 'ğ' - 41: 1, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 2, # 'ş' - }, - 12: { # 'd' - 23: 1, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 2, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 1, # 'S' - 31: 1, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 2, # 'b' - 28: 1, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 1, # 'f' - 27: 3, # 'g' - 25: 3, # 'h' - 3: 2, # 'i' - 24: 3, # 'j' - 10: 2, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 1, # 'o' - 26: 2, # 'p' - 7: 3, # 'r' - 8: 2, # 's' - 9: 2, # 't' - 14: 3, # 'u' - 32: 1, # 'v' - 57: 0, # 'w' - 58: 1, # 'x' - 11: 3, # 'y' - 22: 1, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 1, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 2: { # 'e' - 23: 2, # 'A' - 37: 0, # 'B' - 47: 2, # 'C' - 39: 0, # 'D' - 29: 3, # 'E' - 52: 1, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 1, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 1, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 1, # 'R' - 35: 0, # 'S' - 31: 3, # 'T' - 51: 0, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 3, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 2, # 'e' - 18: 3, # 'f' - 27: 3, # 'g' - 25: 3, # 'h' - 3: 3, # 'i' - 24: 3, # 'j' - 10: 3, # 'k' - 5: 0, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 15: 1, # 'o' - 26: 3, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 3, # 'v' - 57: 2, # 'w' - 58: 0, # 'x' - 11: 3, # 'y' - 22: 1, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 3, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 18: { # 'f' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 2, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 2, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 1, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 2, # 'f' - 27: 1, # 'g' - 25: 1, # 'h' - 3: 1, # 'i' - 24: 1, # 'j' - 10: 1, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 2, # 'p' - 7: 1, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 1, # 'u' - 32: 2, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 1, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 1, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 1, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 27: { # 'g' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 1, # 'S' - 31: 1, # 'T' - 51: 0, # 'U' - 38: 2, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 1, # 'b' - 28: 0, # 'c' - 12: 1, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 2, # 'g' - 25: 1, # 'h' - 3: 2, # 'i' - 24: 3, # 'j' - 10: 2, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 2, # 'n' - 15: 0, # 'o' - 26: 1, # 'p' - 7: 2, # 'r' - 8: 2, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 1, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 1, # 'y' - 22: 0, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 25: { # 'h' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 2, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 0, # 'c' - 12: 2, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 1, # 'g' - 25: 2, # 'h' - 3: 2, # 'i' - 24: 3, # 'j' - 10: 3, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 1, # 'o' - 26: 1, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 2, # 't' - 14: 3, # 'u' - 32: 2, # 'v' - 57: 1, # 'w' - 58: 0, # 'x' - 11: 1, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 3: { # 'i' - 23: 2, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 1, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 0, # 'N' - 42: 1, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 1, # 'S' - 31: 2, # 'T' - 51: 0, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 2, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 2, # 'f' - 27: 3, # 'g' - 25: 1, # 'h' - 3: 3, # 'i' - 24: 2, # 'j' - 10: 3, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 1, # 'o' - 26: 3, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 2, # 'v' - 57: 1, # 'w' - 58: 1, # 'x' - 11: 3, # 'y' - 22: 1, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 1, # 'Ü' - 59: 0, # 'â' - 33: 2, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 3, # 'ü' - 30: 0, # 'ğ' - 41: 1, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 24: { # 'j' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 1, # 'J' - 16: 2, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 1, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 1, # 'Z' - 1: 3, # 'a' - 21: 1, # 'b' - 28: 1, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 2, # 'f' - 27: 1, # 'g' - 25: 1, # 'h' - 3: 2, # 'i' - 24: 1, # 'j' - 10: 2, # 'k' - 5: 2, # 'l' - 13: 3, # 'm' - 4: 2, # 'n' - 15: 0, # 'o' - 26: 1, # 'p' - 7: 2, # 'r' - 8: 3, # 's' - 9: 2, # 't' - 14: 3, # 'u' - 32: 2, # 'v' - 57: 0, # 'w' - 58: 2, # 'x' - 11: 1, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 1, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 10: { # 'k' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 3, # 'T' - 51: 0, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 1, # 'Z' - 1: 3, # 'a' - 21: 2, # 'b' - 28: 0, # 'c' - 12: 2, # 'd' - 2: 3, # 'e' - 18: 1, # 'f' - 27: 2, # 'g' - 25: 2, # 'h' - 3: 3, # 'i' - 24: 2, # 'j' - 10: 2, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 3, # 'p' - 7: 2, # 'r' - 8: 2, # 's' - 9: 2, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 1, # 'x' - 11: 3, # 'y' - 22: 0, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 3, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 3, # 'ü' - 30: 1, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 1, # 'ş' - }, - 5: { # 'l' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 3, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 1, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 0, # 'a' - 21: 3, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 1, # 'e' - 18: 3, # 'f' - 27: 3, # 'g' - 25: 2, # 'h' - 3: 3, # 'i' - 24: 2, # 'j' - 10: 3, # 'k' - 5: 1, # 'l' - 13: 1, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 2, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 2, # 'u' - 32: 2, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 3, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 2, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 13: { # 'm' - 23: 1, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 3, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 3, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 0, # 'Z' - 1: 2, # 'a' - 21: 3, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 2, # 'e' - 18: 3, # 'f' - 27: 3, # 'g' - 25: 3, # 'h' - 3: 3, # 'i' - 24: 3, # 'j' - 10: 3, # 'k' - 5: 0, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 15: 1, # 'o' - 26: 2, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 2, # 'u' - 32: 2, # 'v' - 57: 1, # 'w' - 58: 0, # 'x' - 11: 3, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 3, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 1, # 'ş' - }, - 4: { # 'n' - 23: 1, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 1, # 'H' - 53: 0, # 'I' - 60: 2, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 2, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 2, # 'b' - 28: 1, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 1, # 'f' - 27: 2, # 'g' - 25: 3, # 'h' - 3: 2, # 'i' - 24: 2, # 'j' - 10: 3, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 1, # 'o' - 26: 3, # 'p' - 7: 2, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 2, # 'v' - 57: 0, # 'w' - 58: 2, # 'x' - 11: 3, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 2, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 1, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 15: { # 'o' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 2, # 'F' - 36: 1, # 'G' - 45: 1, # 'H' - 53: 1, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 2, # 'L' - 20: 0, # 'M' - 46: 2, # 'N' - 42: 1, # 'O' - 48: 2, # 'P' - 44: 1, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 1, # 'i' - 24: 2, # 'j' - 10: 1, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 2, # 'n' - 15: 2, # 'o' - 26: 0, # 'p' - 7: 1, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 2, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 2, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 3, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 2, # 'ğ' - 41: 2, # 'İ' - 6: 3, # 'ı' - 40: 2, # 'Ş' - 19: 2, # 'ş' - }, - 26: { # 'p' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 1, # 'b' - 28: 0, # 'c' - 12: 1, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 1, # 'g' - 25: 1, # 'h' - 3: 2, # 'i' - 24: 3, # 'j' - 10: 1, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 2, # 'n' - 15: 0, # 'o' - 26: 2, # 'p' - 7: 2, # 'r' - 8: 1, # 's' - 9: 1, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 1, # 'x' - 11: 1, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 3, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 1, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 7: { # 'r' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 1, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 2, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 2, # 'T' - 51: 1, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 1, # 'Z' - 1: 3, # 'a' - 21: 1, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 2, # 'g' - 25: 3, # 'h' - 3: 2, # 'i' - 24: 2, # 'j' - 10: 3, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 2, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 2, # 'v' - 57: 0, # 'w' - 58: 1, # 'x' - 11: 2, # 'y' - 22: 0, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 2, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 3, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 8: { # 's' - 23: 1, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 1, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 2, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 1, # 'Z' - 1: 3, # 'a' - 21: 2, # 'b' - 28: 1, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 2, # 'g' - 25: 2, # 'h' - 3: 2, # 'i' - 24: 3, # 'j' - 10: 3, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 3, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 2, # 'v' - 57: 0, # 'w' - 58: 1, # 'x' - 11: 2, # 'y' - 22: 1, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 2, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 2, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 1, # 'ş' - }, - 9: { # 't' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 1, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 2, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 1, # 'Z' - 1: 3, # 'a' - 21: 3, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 2, # 'f' - 27: 2, # 'g' - 25: 2, # 'h' - 3: 2, # 'i' - 24: 2, # 'j' - 10: 3, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 2, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 3, # 'v' - 57: 0, # 'w' - 58: 2, # 'x' - 11: 2, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 3, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 2, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 14: { # 'u' - 23: 3, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 3, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 1, # 'H' - 53: 0, # 'I' - 60: 1, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 2, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 3, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 2, # 'Z' - 1: 2, # 'a' - 21: 3, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 2, # 'e' - 18: 2, # 'f' - 27: 3, # 'g' - 25: 3, # 'h' - 3: 3, # 'i' - 24: 2, # 'j' - 10: 3, # 'k' - 5: 0, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 3, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 2, # 'v' - 57: 2, # 'w' - 58: 0, # 'x' - 11: 3, # 'y' - 22: 0, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 3, # 'ü' - 30: 1, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 32: { # 'v' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 0, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 1, # 'j' - 10: 1, # 'k' - 5: 3, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 1, # 'p' - 7: 1, # 'r' - 8: 2, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 1, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 2, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 1, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 57: { # 'w' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 1, # 'a' - 21: 0, # 'b' - 28: 0, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 1, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 1, # 'k' - 5: 0, # 'l' - 13: 0, # 'm' - 4: 1, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 1, # 's' - 9: 0, # 't' - 14: 1, # 'u' - 32: 0, # 'v' - 57: 2, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 0, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 1, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 0, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 58: { # 'x' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 1, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 1, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 0, # 'a' - 21: 1, # 'b' - 28: 0, # 'c' - 12: 2, # 'd' - 2: 1, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 2, # 'i' - 24: 2, # 'j' - 10: 1, # 'k' - 5: 0, # 'l' - 13: 0, # 'm' - 4: 2, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 1, # 'r' - 8: 2, # 's' - 9: 1, # 't' - 14: 0, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 2, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 1, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 11: { # 'y' - 23: 1, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 1, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 1, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 1, # 'Z' - 1: 3, # 'a' - 21: 1, # 'b' - 28: 0, # 'c' - 12: 2, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 2, # 'g' - 25: 2, # 'h' - 3: 2, # 'i' - 24: 1, # 'j' - 10: 2, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 1, # 'p' - 7: 2, # 'r' - 8: 1, # 's' - 9: 2, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 1, # 'x' - 11: 3, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 3, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 2, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 22: { # 'z' - 23: 2, # 'A' - 37: 2, # 'B' - 47: 1, # 'C' - 39: 2, # 'D' - 29: 3, # 'E' - 52: 1, # 'F' - 36: 2, # 'G' - 45: 2, # 'H' - 53: 1, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 2, # 'N' - 42: 2, # 'O' - 48: 2, # 'P' - 44: 1, # 'R' - 35: 1, # 'S' - 31: 3, # 'T' - 51: 2, # 'U' - 38: 2, # 'V' - 62: 0, # 'W' - 43: 2, # 'Y' - 56: 1, # 'Z' - 1: 1, # 'a' - 21: 2, # 'b' - 28: 1, # 'c' - 12: 2, # 'd' - 2: 2, # 'e' - 18: 3, # 'f' - 27: 2, # 'g' - 25: 2, # 'h' - 3: 3, # 'i' - 24: 2, # 'j' - 10: 3, # 'k' - 5: 0, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 15: 2, # 'o' - 26: 2, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 0, # 'u' - 32: 2, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 3, # 'y' - 22: 2, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 2, # 'Ü' - 59: 1, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 2, # 'ö' - 17: 2, # 'ü' - 30: 2, # 'ğ' - 41: 1, # 'İ' - 6: 3, # 'ı' - 40: 1, # 'Ş' - 19: 2, # 'ş' - }, - 63: { # '·' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 0, # 'a' - 21: 0, # 'b' - 28: 0, # 'c' - 12: 0, # 'd' - 2: 1, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 0, # 'k' - 5: 0, # 'l' - 13: 2, # 'm' - 4: 0, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 0, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 54: { # 'Ç' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 1, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 1, # 'G' - 45: 1, # 'H' - 53: 1, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 1, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 2, # 'Y' - 56: 0, # 'Z' - 1: 0, # 'a' - 21: 1, # 'b' - 28: 0, # 'c' - 12: 1, # 'd' - 2: 0, # 'e' - 18: 0, # 'f' - 27: 1, # 'g' - 25: 0, # 'h' - 3: 3, # 'i' - 24: 0, # 'j' - 10: 1, # 'k' - 5: 0, # 'l' - 13: 0, # 'm' - 4: 2, # 'n' - 15: 1, # 'o' - 26: 0, # 'p' - 7: 2, # 'r' - 8: 0, # 's' - 9: 1, # 't' - 14: 0, # 'u' - 32: 2, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 2, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 1, # 'ş' - }, - 50: { # 'Ö' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 1, # 'D' - 29: 2, # 'E' - 52: 0, # 'F' - 36: 1, # 'G' - 45: 2, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 1, # 'N' - 42: 2, # 'O' - 48: 2, # 'P' - 44: 1, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 2, # 'Y' - 56: 0, # 'Z' - 1: 0, # 'a' - 21: 2, # 'b' - 28: 1, # 'c' - 12: 2, # 'd' - 2: 0, # 'e' - 18: 1, # 'f' - 27: 1, # 'g' - 25: 1, # 'h' - 3: 2, # 'i' - 24: 0, # 'j' - 10: 2, # 'k' - 5: 0, # 'l' - 13: 0, # 'm' - 4: 3, # 'n' - 15: 2, # 'o' - 26: 2, # 'p' - 7: 3, # 'r' - 8: 1, # 's' - 9: 2, # 't' - 14: 0, # 'u' - 32: 1, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 1, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 2, # 'ö' - 17: 2, # 'ü' - 30: 1, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 1, # 'ş' - }, - 55: { # 'Ü' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 2, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 1, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 1, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 2, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 1, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 0, # 'k' - 5: 1, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 1, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 1, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 1, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 1, # 'İ' - 6: 0, # 'ı' - 40: 0, # 'Ş' - 19: 1, # 'ş' - }, - 59: { # 'â' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 1, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 1, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 2, # 'a' - 21: 0, # 'b' - 28: 0, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 0, # 'j' - 10: 0, # 'k' - 5: 0, # 'l' - 13: 2, # 'm' - 4: 0, # 'n' - 15: 1, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 2, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 1, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 1, # 'ı' - 40: 1, # 'Ş' - 19: 0, # 'ş' - }, - 33: { # 'ç' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 3, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 2, # 'T' - 51: 0, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 0, # 'Z' - 1: 0, # 'a' - 21: 3, # 'b' - 28: 0, # 'c' - 12: 2, # 'd' - 2: 0, # 'e' - 18: 2, # 'f' - 27: 1, # 'g' - 25: 3, # 'h' - 3: 3, # 'i' - 24: 0, # 'j' - 10: 3, # 'k' - 5: 0, # 'l' - 13: 0, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 1, # 'p' - 7: 3, # 'r' - 8: 2, # 's' - 9: 3, # 't' - 14: 0, # 'u' - 32: 2, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 2, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 1, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 61: { # 'î' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 0, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 0, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 1, # 'Z' - 1: 2, # 'a' - 21: 0, # 'b' - 28: 0, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 1, # 'j' - 10: 0, # 'k' - 5: 0, # 'l' - 13: 1, # 'm' - 4: 1, # 'n' - 15: 0, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 1, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 1, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 1, # 'î' - 34: 0, # 'ö' - 17: 0, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 1, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 34: { # 'ö' - 23: 0, # 'A' - 37: 1, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 2, # 'F' - 36: 1, # 'G' - 45: 1, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 1, # 'L' - 20: 0, # 'M' - 46: 1, # 'N' - 42: 1, # 'O' - 48: 2, # 'P' - 44: 1, # 'R' - 35: 1, # 'S' - 31: 1, # 'T' - 51: 1, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 1, # 'Z' - 1: 3, # 'a' - 21: 1, # 'b' - 28: 2, # 'c' - 12: 1, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 2, # 'g' - 25: 2, # 'h' - 3: 1, # 'i' - 24: 2, # 'j' - 10: 1, # 'k' - 5: 2, # 'l' - 13: 3, # 'm' - 4: 2, # 'n' - 15: 2, # 'o' - 26: 0, # 'p' - 7: 0, # 'r' - 8: 3, # 's' - 9: 1, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 1, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 2, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 2, # 'ç' - 61: 0, # 'î' - 34: 2, # 'ö' - 17: 0, # 'ü' - 30: 2, # 'ğ' - 41: 1, # 'İ' - 6: 1, # 'ı' - 40: 2, # 'Ş' - 19: 1, # 'ş' - }, - 17: { # 'ü' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 0, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 1, # 'J' - 16: 1, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 0, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 1, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 0, # 'Y' - 56: 1, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 0, # 'c' - 12: 1, # 'd' - 2: 3, # 'e' - 18: 1, # 'f' - 27: 2, # 'g' - 25: 0, # 'h' - 3: 1, # 'i' - 24: 1, # 'j' - 10: 2, # 'k' - 5: 3, # 'l' - 13: 2, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 2, # 'p' - 7: 2, # 'r' - 8: 3, # 's' - 9: 2, # 't' - 14: 3, # 'u' - 32: 1, # 'v' - 57: 1, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 2, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 30: { # 'ğ' - 23: 0, # 'A' - 37: 2, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 2, # 'F' - 36: 1, # 'G' - 45: 0, # 'H' - 53: 1, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 1, # 'M' - 46: 2, # 'N' - 42: 2, # 'O' - 48: 1, # 'P' - 44: 1, # 'R' - 35: 0, # 'S' - 31: 1, # 'T' - 51: 0, # 'U' - 38: 2, # 'V' - 62: 0, # 'W' - 43: 2, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 0, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 2, # 'e' - 18: 0, # 'f' - 27: 0, # 'g' - 25: 0, # 'h' - 3: 0, # 'i' - 24: 3, # 'j' - 10: 1, # 'k' - 5: 2, # 'l' - 13: 3, # 'm' - 4: 0, # 'n' - 15: 1, # 'o' - 26: 0, # 'p' - 7: 1, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 2, # 'Ç' - 50: 2, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 0, # 'î' - 34: 2, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 2, # 'İ' - 6: 2, # 'ı' - 40: 2, # 'Ş' - 19: 1, # 'ş' - }, - 41: { # 'İ' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 1, # 'D' - 29: 1, # 'E' - 52: 0, # 'F' - 36: 2, # 'G' - 45: 2, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 1, # 'N' - 42: 1, # 'O' - 48: 2, # 'P' - 44: 0, # 'R' - 35: 1, # 'S' - 31: 1, # 'T' - 51: 1, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 2, # 'Y' - 56: 0, # 'Z' - 1: 1, # 'a' - 21: 2, # 'b' - 28: 1, # 'c' - 12: 2, # 'd' - 2: 1, # 'e' - 18: 0, # 'f' - 27: 3, # 'g' - 25: 2, # 'h' - 3: 2, # 'i' - 24: 2, # 'j' - 10: 2, # 'k' - 5: 0, # 'l' - 13: 1, # 'm' - 4: 3, # 'n' - 15: 1, # 'o' - 26: 1, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 2, # 't' - 14: 0, # 'u' - 32: 0, # 'v' - 57: 1, # 'w' - 58: 0, # 'x' - 11: 2, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 1, # 'Ü' - 59: 1, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 1, # 'ö' - 17: 1, # 'ü' - 30: 2, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 1, # 'ş' - }, - 6: { # 'ı' - 23: 2, # 'A' - 37: 0, # 'B' - 47: 0, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 0, # 'F' - 36: 1, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 2, # 'J' - 16: 3, # 'K' - 49: 0, # 'L' - 20: 3, # 'M' - 46: 1, # 'N' - 42: 0, # 'O' - 48: 0, # 'P' - 44: 0, # 'R' - 35: 0, # 'S' - 31: 2, # 'T' - 51: 0, # 'U' - 38: 0, # 'V' - 62: 0, # 'W' - 43: 2, # 'Y' - 56: 1, # 'Z' - 1: 3, # 'a' - 21: 2, # 'b' - 28: 1, # 'c' - 12: 3, # 'd' - 2: 3, # 'e' - 18: 3, # 'f' - 27: 3, # 'g' - 25: 2, # 'h' - 3: 3, # 'i' - 24: 3, # 'j' - 10: 3, # 'k' - 5: 3, # 'l' - 13: 3, # 'm' - 4: 3, # 'n' - 15: 0, # 'o' - 26: 3, # 'p' - 7: 3, # 'r' - 8: 3, # 's' - 9: 3, # 't' - 14: 3, # 'u' - 32: 3, # 'v' - 57: 1, # 'w' - 58: 1, # 'x' - 11: 3, # 'y' - 22: 0, # 'z' - 63: 1, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 2, # 'ç' - 61: 0, # 'î' - 34: 0, # 'ö' - 17: 3, # 'ü' - 30: 0, # 'ğ' - 41: 0, # 'İ' - 6: 3, # 'ı' - 40: 0, # 'Ş' - 19: 0, # 'ş' - }, - 40: { # 'Ş' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 1, # 'D' - 29: 1, # 'E' - 52: 0, # 'F' - 36: 1, # 'G' - 45: 2, # 'H' - 53: 1, # 'I' - 60: 0, # 'J' - 16: 0, # 'K' - 49: 0, # 'L' - 20: 2, # 'M' - 46: 1, # 'N' - 42: 1, # 'O' - 48: 2, # 'P' - 44: 2, # 'R' - 35: 1, # 'S' - 31: 1, # 'T' - 51: 0, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 2, # 'Y' - 56: 1, # 'Z' - 1: 0, # 'a' - 21: 2, # 'b' - 28: 0, # 'c' - 12: 2, # 'd' - 2: 0, # 'e' - 18: 3, # 'f' - 27: 0, # 'g' - 25: 2, # 'h' - 3: 3, # 'i' - 24: 2, # 'j' - 10: 1, # 'k' - 5: 0, # 'l' - 13: 1, # 'm' - 4: 3, # 'n' - 15: 2, # 'o' - 26: 0, # 'p' - 7: 3, # 'r' - 8: 2, # 's' - 9: 2, # 't' - 14: 1, # 'u' - 32: 3, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 2, # 'y' - 22: 0, # 'z' - 63: 0, # '·' - 54: 0, # 'Ç' - 50: 0, # 'Ö' - 55: 1, # 'Ü' - 59: 0, # 'â' - 33: 0, # 'ç' - 61: 0, # 'î' - 34: 2, # 'ö' - 17: 1, # 'ü' - 30: 2, # 'ğ' - 41: 0, # 'İ' - 6: 2, # 'ı' - 40: 1, # 'Ş' - 19: 2, # 'ş' - }, - 19: { # 'ş' - 23: 0, # 'A' - 37: 0, # 'B' - 47: 1, # 'C' - 39: 0, # 'D' - 29: 0, # 'E' - 52: 2, # 'F' - 36: 1, # 'G' - 45: 0, # 'H' - 53: 0, # 'I' - 60: 0, # 'J' - 16: 3, # 'K' - 49: 2, # 'L' - 20: 0, # 'M' - 46: 1, # 'N' - 42: 1, # 'O' - 48: 1, # 'P' - 44: 1, # 'R' - 35: 1, # 'S' - 31: 0, # 'T' - 51: 1, # 'U' - 38: 1, # 'V' - 62: 0, # 'W' - 43: 1, # 'Y' - 56: 0, # 'Z' - 1: 3, # 'a' - 21: 1, # 'b' - 28: 2, # 'c' - 12: 0, # 'd' - 2: 3, # 'e' - 18: 0, # 'f' - 27: 2, # 'g' - 25: 1, # 'h' - 3: 1, # 'i' - 24: 0, # 'j' - 10: 2, # 'k' - 5: 2, # 'l' - 13: 3, # 'm' - 4: 0, # 'n' - 15: 0, # 'o' - 26: 1, # 'p' - 7: 3, # 'r' - 8: 0, # 's' - 9: 0, # 't' - 14: 3, # 'u' - 32: 0, # 'v' - 57: 0, # 'w' - 58: 0, # 'x' - 11: 0, # 'y' - 22: 2, # 'z' - 63: 0, # '·' - 54: 1, # 'Ç' - 50: 2, # 'Ö' - 55: 0, # 'Ü' - 59: 0, # 'â' - 33: 1, # 'ç' - 61: 1, # 'î' - 34: 2, # 'ö' - 17: 0, # 'ü' - 30: 1, # 'ğ' - 41: 1, # 'İ' - 6: 1, # 'ı' - 40: 1, # 'Ş' - 19: 1, # 'ş' - }, -} - -# 255: Undefined characters that did not exist in training text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 -# 251: Control characters - -# Character Mapping Table(s): -ISO_8859_9_TURKISH_CHAR_TO_ORDER = { - 0: 255, # '\x00' - 1: 255, # '\x01' - 2: 255, # '\x02' - 3: 255, # '\x03' - 4: 255, # '\x04' - 5: 255, # '\x05' - 6: 255, # '\x06' - 7: 255, # '\x07' - 8: 255, # '\x08' - 9: 255, # '\t' - 10: 255, # '\n' - 11: 255, # '\x0b' - 12: 255, # '\x0c' - 13: 255, # '\r' - 14: 255, # '\x0e' - 15: 255, # '\x0f' - 16: 255, # '\x10' - 17: 255, # '\x11' - 18: 255, # '\x12' - 19: 255, # '\x13' - 20: 255, # '\x14' - 21: 255, # '\x15' - 22: 255, # '\x16' - 23: 255, # '\x17' - 24: 255, # '\x18' - 25: 255, # '\x19' - 26: 255, # '\x1a' - 27: 255, # '\x1b' - 28: 255, # '\x1c' - 29: 255, # '\x1d' - 30: 255, # '\x1e' - 31: 255, # '\x1f' - 32: 255, # ' ' - 33: 255, # '!' - 34: 255, # '"' - 35: 255, # '#' - 36: 255, # '$' - 37: 255, # '%' - 38: 255, # '&' - 39: 255, # "'" - 40: 255, # '(' - 41: 255, # ')' - 42: 255, # '*' - 43: 255, # '+' - 44: 255, # ',' - 45: 255, # '-' - 46: 255, # '.' - 47: 255, # '/' - 48: 255, # '0' - 49: 255, # '1' - 50: 255, # '2' - 51: 255, # '3' - 52: 255, # '4' - 53: 255, # '5' - 54: 255, # '6' - 55: 255, # '7' - 56: 255, # '8' - 57: 255, # '9' - 58: 255, # ':' - 59: 255, # ';' - 60: 255, # '<' - 61: 255, # '=' - 62: 255, # '>' - 63: 255, # '?' - 64: 255, # '@' - 65: 23, # 'A' - 66: 37, # 'B' - 67: 47, # 'C' - 68: 39, # 'D' - 69: 29, # 'E' - 70: 52, # 'F' - 71: 36, # 'G' - 72: 45, # 'H' - 73: 53, # 'I' - 74: 60, # 'J' - 75: 16, # 'K' - 76: 49, # 'L' - 77: 20, # 'M' - 78: 46, # 'N' - 79: 42, # 'O' - 80: 48, # 'P' - 81: 69, # 'Q' - 82: 44, # 'R' - 83: 35, # 'S' - 84: 31, # 'T' - 85: 51, # 'U' - 86: 38, # 'V' - 87: 62, # 'W' - 88: 65, # 'X' - 89: 43, # 'Y' - 90: 56, # 'Z' - 91: 255, # '[' - 92: 255, # '\\' - 93: 255, # ']' - 94: 255, # '^' - 95: 255, # '_' - 96: 255, # '`' - 97: 1, # 'a' - 98: 21, # 'b' - 99: 28, # 'c' - 100: 12, # 'd' - 101: 2, # 'e' - 102: 18, # 'f' - 103: 27, # 'g' - 104: 25, # 'h' - 105: 3, # 'i' - 106: 24, # 'j' - 107: 10, # 'k' - 108: 5, # 'l' - 109: 13, # 'm' - 110: 4, # 'n' - 111: 15, # 'o' - 112: 26, # 'p' - 113: 64, # 'q' - 114: 7, # 'r' - 115: 8, # 's' - 116: 9, # 't' - 117: 14, # 'u' - 118: 32, # 'v' - 119: 57, # 'w' - 120: 58, # 'x' - 121: 11, # 'y' - 122: 22, # 'z' - 123: 255, # '{' - 124: 255, # '|' - 125: 255, # '}' - 126: 255, # '~' - 127: 255, # '\x7f' - 128: 180, # '\x80' - 129: 179, # '\x81' - 130: 178, # '\x82' - 131: 177, # '\x83' - 132: 176, # '\x84' - 133: 175, # '\x85' - 134: 174, # '\x86' - 135: 173, # '\x87' - 136: 172, # '\x88' - 137: 171, # '\x89' - 138: 170, # '\x8a' - 139: 169, # '\x8b' - 140: 168, # '\x8c' - 141: 167, # '\x8d' - 142: 166, # '\x8e' - 143: 165, # '\x8f' - 144: 164, # '\x90' - 145: 163, # '\x91' - 146: 162, # '\x92' - 147: 161, # '\x93' - 148: 160, # '\x94' - 149: 159, # '\x95' - 150: 101, # '\x96' - 151: 158, # '\x97' - 152: 157, # '\x98' - 153: 156, # '\x99' - 154: 155, # '\x9a' - 155: 154, # '\x9b' - 156: 153, # '\x9c' - 157: 152, # '\x9d' - 158: 151, # '\x9e' - 159: 106, # '\x9f' - 160: 150, # '\xa0' - 161: 149, # '¡' - 162: 148, # '¢' - 163: 147, # '£' - 164: 146, # '¤' - 165: 145, # '¥' - 166: 144, # '¦' - 167: 100, # '§' - 168: 143, # '¨' - 169: 142, # '©' - 170: 141, # 'ª' - 171: 140, # '«' - 172: 139, # '¬' - 173: 138, # '\xad' - 174: 137, # '®' - 175: 136, # '¯' - 176: 94, # '°' - 177: 80, # '±' - 178: 93, # '²' - 179: 135, # '³' - 180: 105, # '´' - 181: 134, # 'µ' - 182: 133, # '¶' - 183: 63, # '·' - 184: 132, # '¸' - 185: 131, # '¹' - 186: 130, # 'º' - 187: 129, # '»' - 188: 128, # '¼' - 189: 127, # '½' - 190: 126, # '¾' - 191: 125, # '¿' - 192: 124, # 'À' - 193: 104, # 'Á' - 194: 73, # 'Â' - 195: 99, # 'Ã' - 196: 79, # 'Ä' - 197: 85, # 'Å' - 198: 123, # 'Æ' - 199: 54, # 'Ç' - 200: 122, # 'È' - 201: 98, # 'É' - 202: 92, # 'Ê' - 203: 121, # 'Ë' - 204: 120, # 'Ì' - 205: 91, # 'Í' - 206: 103, # 'Î' - 207: 119, # 'Ï' - 208: 68, # 'Ğ' - 209: 118, # 'Ñ' - 210: 117, # 'Ò' - 211: 97, # 'Ó' - 212: 116, # 'Ô' - 213: 115, # 'Õ' - 214: 50, # 'Ö' - 215: 90, # '×' - 216: 114, # 'Ø' - 217: 113, # 'Ù' - 218: 112, # 'Ú' - 219: 111, # 'Û' - 220: 55, # 'Ü' - 221: 41, # 'İ' - 222: 40, # 'Ş' - 223: 86, # 'ß' - 224: 89, # 'à' - 225: 70, # 'á' - 226: 59, # 'â' - 227: 78, # 'ã' - 228: 71, # 'ä' - 229: 82, # 'å' - 230: 88, # 'æ' - 231: 33, # 'ç' - 232: 77, # 'è' - 233: 66, # 'é' - 234: 84, # 'ê' - 235: 83, # 'ë' - 236: 110, # 'ì' - 237: 75, # 'í' - 238: 61, # 'î' - 239: 96, # 'ï' - 240: 30, # 'ğ' - 241: 67, # 'ñ' - 242: 109, # 'ò' - 243: 74, # 'ó' - 244: 87, # 'ô' - 245: 102, # 'õ' - 246: 34, # 'ö' - 247: 95, # '÷' - 248: 81, # 'ø' - 249: 108, # 'ù' - 250: 76, # 'ú' - 251: 72, # 'û' - 252: 17, # 'ü' - 253: 6, # 'ı' - 254: 19, # 'ş' - 255: 107, # 'ÿ' -} - -ISO_8859_9_TURKISH_MODEL = SingleByteCharSetModel(charset_name='ISO-8859-9', - language='Turkish', - char_to_order_map=ISO_8859_9_TURKISH_CHAR_TO_ORDER, - language_model=TURKISH_LANG_MODEL, - typical_positive_ratio=0.97029, - keep_ascii_letters=True, - alphabet='ABCDEFGHIJKLMNOPRSTUVYZabcdefghijklmnoprstuvyzÂÇÎÖÛÜâçîöûüĞğİıŞş') - diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/latin1prober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/latin1prober.py deleted file mode 100644 index 7d1e8c2..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/latin1prober.py +++ /dev/null @@ -1,145 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .enums import ProbingState - -FREQ_CAT_NUM = 4 - -UDF = 0 # undefined -OTH = 1 # other -ASC = 2 # ascii capital letter -ASS = 3 # ascii small letter -ACV = 4 # accent capital vowel -ACO = 5 # accent capital other -ASV = 6 # accent small vowel -ASO = 7 # accent small other -CLASS_NUM = 8 # total classes - -Latin1_CharToClass = ( - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 00 - 07 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 08 - 0F - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 10 - 17 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 18 - 1F - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 20 - 27 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 28 - 2F - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 30 - 37 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 38 - 3F - OTH, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 40 - 47 - ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 48 - 4F - ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 50 - 57 - ASC, ASC, ASC, OTH, OTH, OTH, OTH, OTH, # 58 - 5F - OTH, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 60 - 67 - ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 68 - 6F - ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 70 - 77 - ASS, ASS, ASS, OTH, OTH, OTH, OTH, OTH, # 78 - 7F - OTH, UDF, OTH, ASO, OTH, OTH, OTH, OTH, # 80 - 87 - OTH, OTH, ACO, OTH, ACO, UDF, ACO, UDF, # 88 - 8F - UDF, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 90 - 97 - OTH, OTH, ASO, OTH, ASO, UDF, ASO, ACO, # 98 - 9F - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # A0 - A7 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # A8 - AF - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # B0 - B7 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # B8 - BF - ACV, ACV, ACV, ACV, ACV, ACV, ACO, ACO, # C0 - C7 - ACV, ACV, ACV, ACV, ACV, ACV, ACV, ACV, # C8 - CF - ACO, ACO, ACV, ACV, ACV, ACV, ACV, OTH, # D0 - D7 - ACV, ACV, ACV, ACV, ACV, ACO, ACO, ACO, # D8 - DF - ASV, ASV, ASV, ASV, ASV, ASV, ASO, ASO, # E0 - E7 - ASV, ASV, ASV, ASV, ASV, ASV, ASV, ASV, # E8 - EF - ASO, ASO, ASV, ASV, ASV, ASV, ASV, OTH, # F0 - F7 - ASV, ASV, ASV, ASV, ASV, ASO, ASO, ASO, # F8 - FF -) - -# 0 : illegal -# 1 : very unlikely -# 2 : normal -# 3 : very likely -Latin1ClassModel = ( -# UDF OTH ASC ASS ACV ACO ASV ASO - 0, 0, 0, 0, 0, 0, 0, 0, # UDF - 0, 3, 3, 3, 3, 3, 3, 3, # OTH - 0, 3, 3, 3, 3, 3, 3, 3, # ASC - 0, 3, 3, 3, 1, 1, 3, 3, # ASS - 0, 3, 3, 3, 1, 2, 1, 2, # ACV - 0, 3, 3, 3, 3, 3, 3, 3, # ACO - 0, 3, 1, 3, 1, 1, 1, 3, # ASV - 0, 3, 1, 3, 1, 1, 3, 3, # ASO -) - - -class Latin1Prober(CharSetProber): - def __init__(self): - super(Latin1Prober, self).__init__() - self._last_char_class = None - self._freq_counter = None - self.reset() - - def reset(self): - self._last_char_class = OTH - self._freq_counter = [0] * FREQ_CAT_NUM - CharSetProber.reset(self) - - @property - def charset_name(self): - return "ISO-8859-1" - - @property - def language(self): - return "" - - def feed(self, byte_str): - byte_str = self.filter_with_english_letters(byte_str) - for c in byte_str: - char_class = Latin1_CharToClass[c] - freq = Latin1ClassModel[(self._last_char_class * CLASS_NUM) - + char_class] - if freq == 0: - self._state = ProbingState.NOT_ME - break - self._freq_counter[freq] += 1 - self._last_char_class = char_class - - return self.state - - def get_confidence(self): - if self.state == ProbingState.NOT_ME: - return 0.01 - - total = sum(self._freq_counter) - if total < 0.01: - confidence = 0.0 - else: - confidence = ((self._freq_counter[3] - self._freq_counter[1] * 20.0) - / total) - if confidence < 0.0: - confidence = 0.0 - # lower the confidence of latin1 so that other more accurate - # detector can take priority. - confidence = confidence * 0.73 - return confidence diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcharsetprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcharsetprober.py deleted file mode 100644 index 6256ecf..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcharsetprober.py +++ /dev/null @@ -1,91 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# Proofpoint, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .enums import ProbingState, MachineState - - -class MultiByteCharSetProber(CharSetProber): - """ - MultiByteCharSetProber - """ - - def __init__(self, lang_filter=None): - super(MultiByteCharSetProber, self).__init__(lang_filter=lang_filter) - self.distribution_analyzer = None - self.coding_sm = None - self._last_char = [0, 0] - - def reset(self): - super(MultiByteCharSetProber, self).reset() - if self.coding_sm: - self.coding_sm.reset() - if self.distribution_analyzer: - self.distribution_analyzer.reset() - self._last_char = [0, 0] - - @property - def charset_name(self): - raise NotImplementedError - - @property - def language(self): - raise NotImplementedError - - def feed(self, byte_str): - for i in range(len(byte_str)): - coding_state = self.coding_sm.next_state(byte_str[i]) - if coding_state == MachineState.ERROR: - self.logger.debug('%s %s prober hit error at byte %s', - self.charset_name, self.language, i) - self._state = ProbingState.NOT_ME - break - elif coding_state == MachineState.ITS_ME: - self._state = ProbingState.FOUND_IT - break - elif coding_state == MachineState.START: - char_len = self.coding_sm.get_current_charlen() - if i == 0: - self._last_char[1] = byte_str[0] - self.distribution_analyzer.feed(self._last_char, char_len) - else: - self.distribution_analyzer.feed(byte_str[i - 1:i + 1], - char_len) - - self._last_char[0] = byte_str[-1] - - if self.state == ProbingState.DETECTING: - if (self.distribution_analyzer.got_enough_data() and - (self.get_confidence() > self.SHORTCUT_THRESHOLD)): - self._state = ProbingState.FOUND_IT - - return self.state - - def get_confidence(self): - return self.distribution_analyzer.get_confidence() diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcsgroupprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcsgroupprober.py deleted file mode 100644 index 530abe7..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +++ /dev/null @@ -1,54 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# Proofpoint, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetgroupprober import CharSetGroupProber -from .utf8prober import UTF8Prober -from .sjisprober import SJISProber -from .eucjpprober import EUCJPProber -from .gb2312prober import GB2312Prober -from .euckrprober import EUCKRProber -from .cp949prober import CP949Prober -from .big5prober import Big5Prober -from .euctwprober import EUCTWProber - - -class MBCSGroupProber(CharSetGroupProber): - def __init__(self, lang_filter=None): - super(MBCSGroupProber, self).__init__(lang_filter=lang_filter) - self.probers = [ - UTF8Prober(), - SJISProber(), - EUCJPProber(), - GB2312Prober(), - EUCKRProber(), - CP949Prober(), - Big5Prober(), - EUCTWProber() - ] - self.reset() diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcssm.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcssm.py deleted file mode 100644 index 8360d0f..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcssm.py +++ /dev/null @@ -1,572 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .enums import MachineState - -# BIG5 - -BIG5_CLS = ( - 1,1,1,1,1,1,1,1, # 00 - 07 #allow 0x00 as legal value - 1,1,1,1,1,1,0,0, # 08 - 0f - 1,1,1,1,1,1,1,1, # 10 - 17 - 1,1,1,0,1,1,1,1, # 18 - 1f - 1,1,1,1,1,1,1,1, # 20 - 27 - 1,1,1,1,1,1,1,1, # 28 - 2f - 1,1,1,1,1,1,1,1, # 30 - 37 - 1,1,1,1,1,1,1,1, # 38 - 3f - 2,2,2,2,2,2,2,2, # 40 - 47 - 2,2,2,2,2,2,2,2, # 48 - 4f - 2,2,2,2,2,2,2,2, # 50 - 57 - 2,2,2,2,2,2,2,2, # 58 - 5f - 2,2,2,2,2,2,2,2, # 60 - 67 - 2,2,2,2,2,2,2,2, # 68 - 6f - 2,2,2,2,2,2,2,2, # 70 - 77 - 2,2,2,2,2,2,2,1, # 78 - 7f - 4,4,4,4,4,4,4,4, # 80 - 87 - 4,4,4,4,4,4,4,4, # 88 - 8f - 4,4,4,4,4,4,4,4, # 90 - 97 - 4,4,4,4,4,4,4,4, # 98 - 9f - 4,3,3,3,3,3,3,3, # a0 - a7 - 3,3,3,3,3,3,3,3, # a8 - af - 3,3,3,3,3,3,3,3, # b0 - b7 - 3,3,3,3,3,3,3,3, # b8 - bf - 3,3,3,3,3,3,3,3, # c0 - c7 - 3,3,3,3,3,3,3,3, # c8 - cf - 3,3,3,3,3,3,3,3, # d0 - d7 - 3,3,3,3,3,3,3,3, # d8 - df - 3,3,3,3,3,3,3,3, # e0 - e7 - 3,3,3,3,3,3,3,3, # e8 - ef - 3,3,3,3,3,3,3,3, # f0 - f7 - 3,3,3,3,3,3,3,0 # f8 - ff -) - -BIG5_ST = ( - MachineState.ERROR,MachineState.START,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,#08-0f - MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START#10-17 -) - -BIG5_CHAR_LEN_TABLE = (0, 1, 1, 2, 0) - -BIG5_SM_MODEL = {'class_table': BIG5_CLS, - 'class_factor': 5, - 'state_table': BIG5_ST, - 'char_len_table': BIG5_CHAR_LEN_TABLE, - 'name': 'Big5'} - -# CP949 - -CP949_CLS = ( - 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,0, # 00 - 0f - 1,1,1,1,1,1,1,1, 1,1,1,0,1,1,1,1, # 10 - 1f - 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, # 20 - 2f - 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, # 30 - 3f - 1,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4, # 40 - 4f - 4,4,5,5,5,5,5,5, 5,5,5,1,1,1,1,1, # 50 - 5f - 1,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5, # 60 - 6f - 5,5,5,5,5,5,5,5, 5,5,5,1,1,1,1,1, # 70 - 7f - 0,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6, # 80 - 8f - 6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6, # 90 - 9f - 6,7,7,7,7,7,7,7, 7,7,7,7,7,8,8,8, # a0 - af - 7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7, # b0 - bf - 7,7,7,7,7,7,9,2, 2,3,2,2,2,2,2,2, # c0 - cf - 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, # d0 - df - 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, # e0 - ef - 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,0, # f0 - ff -) - -CP949_ST = ( -#cls= 0 1 2 3 4 5 6 7 8 9 # previous state = - MachineState.ERROR,MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START, 4, 5,MachineState.ERROR, 6, # MachineState.START - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, # MachineState.ERROR - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME, # MachineState.ITS_ME - MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START, # 3 - MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, # 4 - MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, # 5 - MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START, # 6 -) - -CP949_CHAR_LEN_TABLE = (0, 1, 2, 0, 1, 1, 2, 2, 0, 2) - -CP949_SM_MODEL = {'class_table': CP949_CLS, - 'class_factor': 10, - 'state_table': CP949_ST, - 'char_len_table': CP949_CHAR_LEN_TABLE, - 'name': 'CP949'} - -# EUC-JP - -EUCJP_CLS = ( - 4,4,4,4,4,4,4,4, # 00 - 07 - 4,4,4,4,4,4,5,5, # 08 - 0f - 4,4,4,4,4,4,4,4, # 10 - 17 - 4,4,4,5,4,4,4,4, # 18 - 1f - 4,4,4,4,4,4,4,4, # 20 - 27 - 4,4,4,4,4,4,4,4, # 28 - 2f - 4,4,4,4,4,4,4,4, # 30 - 37 - 4,4,4,4,4,4,4,4, # 38 - 3f - 4,4,4,4,4,4,4,4, # 40 - 47 - 4,4,4,4,4,4,4,4, # 48 - 4f - 4,4,4,4,4,4,4,4, # 50 - 57 - 4,4,4,4,4,4,4,4, # 58 - 5f - 4,4,4,4,4,4,4,4, # 60 - 67 - 4,4,4,4,4,4,4,4, # 68 - 6f - 4,4,4,4,4,4,4,4, # 70 - 77 - 4,4,4,4,4,4,4,4, # 78 - 7f - 5,5,5,5,5,5,5,5, # 80 - 87 - 5,5,5,5,5,5,1,3, # 88 - 8f - 5,5,5,5,5,5,5,5, # 90 - 97 - 5,5,5,5,5,5,5,5, # 98 - 9f - 5,2,2,2,2,2,2,2, # a0 - a7 - 2,2,2,2,2,2,2,2, # a8 - af - 2,2,2,2,2,2,2,2, # b0 - b7 - 2,2,2,2,2,2,2,2, # b8 - bf - 2,2,2,2,2,2,2,2, # c0 - c7 - 2,2,2,2,2,2,2,2, # c8 - cf - 2,2,2,2,2,2,2,2, # d0 - d7 - 2,2,2,2,2,2,2,2, # d8 - df - 0,0,0,0,0,0,0,0, # e0 - e7 - 0,0,0,0,0,0,0,0, # e8 - ef - 0,0,0,0,0,0,0,0, # f0 - f7 - 0,0,0,0,0,0,0,5 # f8 - ff -) - -EUCJP_ST = ( - 3, 4, 3, 5,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.START,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#10-17 - MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 3,MachineState.ERROR,#18-1f - 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START#20-27 -) - -EUCJP_CHAR_LEN_TABLE = (2, 2, 2, 3, 1, 0) - -EUCJP_SM_MODEL = {'class_table': EUCJP_CLS, - 'class_factor': 6, - 'state_table': EUCJP_ST, - 'char_len_table': EUCJP_CHAR_LEN_TABLE, - 'name': 'EUC-JP'} - -# EUC-KR - -EUCKR_CLS = ( - 1,1,1,1,1,1,1,1, # 00 - 07 - 1,1,1,1,1,1,0,0, # 08 - 0f - 1,1,1,1,1,1,1,1, # 10 - 17 - 1,1,1,0,1,1,1,1, # 18 - 1f - 1,1,1,1,1,1,1,1, # 20 - 27 - 1,1,1,1,1,1,1,1, # 28 - 2f - 1,1,1,1,1,1,1,1, # 30 - 37 - 1,1,1,1,1,1,1,1, # 38 - 3f - 1,1,1,1,1,1,1,1, # 40 - 47 - 1,1,1,1,1,1,1,1, # 48 - 4f - 1,1,1,1,1,1,1,1, # 50 - 57 - 1,1,1,1,1,1,1,1, # 58 - 5f - 1,1,1,1,1,1,1,1, # 60 - 67 - 1,1,1,1,1,1,1,1, # 68 - 6f - 1,1,1,1,1,1,1,1, # 70 - 77 - 1,1,1,1,1,1,1,1, # 78 - 7f - 0,0,0,0,0,0,0,0, # 80 - 87 - 0,0,0,0,0,0,0,0, # 88 - 8f - 0,0,0,0,0,0,0,0, # 90 - 97 - 0,0,0,0,0,0,0,0, # 98 - 9f - 0,2,2,2,2,2,2,2, # a0 - a7 - 2,2,2,2,2,3,3,3, # a8 - af - 2,2,2,2,2,2,2,2, # b0 - b7 - 2,2,2,2,2,2,2,2, # b8 - bf - 2,2,2,2,2,2,2,2, # c0 - c7 - 2,3,2,2,2,2,2,2, # c8 - cf - 2,2,2,2,2,2,2,2, # d0 - d7 - 2,2,2,2,2,2,2,2, # d8 - df - 2,2,2,2,2,2,2,2, # e0 - e7 - 2,2,2,2,2,2,2,2, # e8 - ef - 2,2,2,2,2,2,2,2, # f0 - f7 - 2,2,2,2,2,2,2,0 # f8 - ff -) - -EUCKR_ST = ( - MachineState.ERROR,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START #08-0f -) - -EUCKR_CHAR_LEN_TABLE = (0, 1, 2, 0) - -EUCKR_SM_MODEL = {'class_table': EUCKR_CLS, - 'class_factor': 4, - 'state_table': EUCKR_ST, - 'char_len_table': EUCKR_CHAR_LEN_TABLE, - 'name': 'EUC-KR'} - -# EUC-TW - -EUCTW_CLS = ( - 2,2,2,2,2,2,2,2, # 00 - 07 - 2,2,2,2,2,2,0,0, # 08 - 0f - 2,2,2,2,2,2,2,2, # 10 - 17 - 2,2,2,0,2,2,2,2, # 18 - 1f - 2,2,2,2,2,2,2,2, # 20 - 27 - 2,2,2,2,2,2,2,2, # 28 - 2f - 2,2,2,2,2,2,2,2, # 30 - 37 - 2,2,2,2,2,2,2,2, # 38 - 3f - 2,2,2,2,2,2,2,2, # 40 - 47 - 2,2,2,2,2,2,2,2, # 48 - 4f - 2,2,2,2,2,2,2,2, # 50 - 57 - 2,2,2,2,2,2,2,2, # 58 - 5f - 2,2,2,2,2,2,2,2, # 60 - 67 - 2,2,2,2,2,2,2,2, # 68 - 6f - 2,2,2,2,2,2,2,2, # 70 - 77 - 2,2,2,2,2,2,2,2, # 78 - 7f - 0,0,0,0,0,0,0,0, # 80 - 87 - 0,0,0,0,0,0,6,0, # 88 - 8f - 0,0,0,0,0,0,0,0, # 90 - 97 - 0,0,0,0,0,0,0,0, # 98 - 9f - 0,3,4,4,4,4,4,4, # a0 - a7 - 5,5,1,1,1,1,1,1, # a8 - af - 1,1,1,1,1,1,1,1, # b0 - b7 - 1,1,1,1,1,1,1,1, # b8 - bf - 1,1,3,1,3,3,3,3, # c0 - c7 - 3,3,3,3,3,3,3,3, # c8 - cf - 3,3,3,3,3,3,3,3, # d0 - d7 - 3,3,3,3,3,3,3,3, # d8 - df - 3,3,3,3,3,3,3,3, # e0 - e7 - 3,3,3,3,3,3,3,3, # e8 - ef - 3,3,3,3,3,3,3,3, # f0 - f7 - 3,3,3,3,3,3,3,0 # f8 - ff -) - -EUCTW_ST = ( - MachineState.ERROR,MachineState.ERROR,MachineState.START, 3, 3, 3, 4,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,MachineState.ERROR,#10-17 - MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f - 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.START,MachineState.START,#20-27 - MachineState.START,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START #28-2f -) - -EUCTW_CHAR_LEN_TABLE = (0, 0, 1, 2, 2, 2, 3) - -EUCTW_SM_MODEL = {'class_table': EUCTW_CLS, - 'class_factor': 7, - 'state_table': EUCTW_ST, - 'char_len_table': EUCTW_CHAR_LEN_TABLE, - 'name': 'x-euc-tw'} - -# GB2312 - -GB2312_CLS = ( - 1,1,1,1,1,1,1,1, # 00 - 07 - 1,1,1,1,1,1,0,0, # 08 - 0f - 1,1,1,1,1,1,1,1, # 10 - 17 - 1,1,1,0,1,1,1,1, # 18 - 1f - 1,1,1,1,1,1,1,1, # 20 - 27 - 1,1,1,1,1,1,1,1, # 28 - 2f - 3,3,3,3,3,3,3,3, # 30 - 37 - 3,3,1,1,1,1,1,1, # 38 - 3f - 2,2,2,2,2,2,2,2, # 40 - 47 - 2,2,2,2,2,2,2,2, # 48 - 4f - 2,2,2,2,2,2,2,2, # 50 - 57 - 2,2,2,2,2,2,2,2, # 58 - 5f - 2,2,2,2,2,2,2,2, # 60 - 67 - 2,2,2,2,2,2,2,2, # 68 - 6f - 2,2,2,2,2,2,2,2, # 70 - 77 - 2,2,2,2,2,2,2,4, # 78 - 7f - 5,6,6,6,6,6,6,6, # 80 - 87 - 6,6,6,6,6,6,6,6, # 88 - 8f - 6,6,6,6,6,6,6,6, # 90 - 97 - 6,6,6,6,6,6,6,6, # 98 - 9f - 6,6,6,6,6,6,6,6, # a0 - a7 - 6,6,6,6,6,6,6,6, # a8 - af - 6,6,6,6,6,6,6,6, # b0 - b7 - 6,6,6,6,6,6,6,6, # b8 - bf - 6,6,6,6,6,6,6,6, # c0 - c7 - 6,6,6,6,6,6,6,6, # c8 - cf - 6,6,6,6,6,6,6,6, # d0 - d7 - 6,6,6,6,6,6,6,6, # d8 - df - 6,6,6,6,6,6,6,6, # e0 - e7 - 6,6,6,6,6,6,6,6, # e8 - ef - 6,6,6,6,6,6,6,6, # f0 - f7 - 6,6,6,6,6,6,6,0 # f8 - ff -) - -GB2312_ST = ( - MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, 3,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,#10-17 - 4,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f - MachineState.ERROR,MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,#20-27 - MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START #28-2f -) - -# To be accurate, the length of class 6 can be either 2 or 4. -# But it is not necessary to discriminate between the two since -# it is used for frequency analysis only, and we are validating -# each code range there as well. So it is safe to set it to be -# 2 here. -GB2312_CHAR_LEN_TABLE = (0, 1, 1, 1, 1, 1, 2) - -GB2312_SM_MODEL = {'class_table': GB2312_CLS, - 'class_factor': 7, - 'state_table': GB2312_ST, - 'char_len_table': GB2312_CHAR_LEN_TABLE, - 'name': 'GB2312'} - -# Shift_JIS - -SJIS_CLS = ( - 1,1,1,1,1,1,1,1, # 00 - 07 - 1,1,1,1,1,1,0,0, # 08 - 0f - 1,1,1,1,1,1,1,1, # 10 - 17 - 1,1,1,0,1,1,1,1, # 18 - 1f - 1,1,1,1,1,1,1,1, # 20 - 27 - 1,1,1,1,1,1,1,1, # 28 - 2f - 1,1,1,1,1,1,1,1, # 30 - 37 - 1,1,1,1,1,1,1,1, # 38 - 3f - 2,2,2,2,2,2,2,2, # 40 - 47 - 2,2,2,2,2,2,2,2, # 48 - 4f - 2,2,2,2,2,2,2,2, # 50 - 57 - 2,2,2,2,2,2,2,2, # 58 - 5f - 2,2,2,2,2,2,2,2, # 60 - 67 - 2,2,2,2,2,2,2,2, # 68 - 6f - 2,2,2,2,2,2,2,2, # 70 - 77 - 2,2,2,2,2,2,2,1, # 78 - 7f - 3,3,3,3,3,2,2,3, # 80 - 87 - 3,3,3,3,3,3,3,3, # 88 - 8f - 3,3,3,3,3,3,3,3, # 90 - 97 - 3,3,3,3,3,3,3,3, # 98 - 9f - #0xa0 is illegal in sjis encoding, but some pages does - #contain such byte. We need to be more error forgiven. - 2,2,2,2,2,2,2,2, # a0 - a7 - 2,2,2,2,2,2,2,2, # a8 - af - 2,2,2,2,2,2,2,2, # b0 - b7 - 2,2,2,2,2,2,2,2, # b8 - bf - 2,2,2,2,2,2,2,2, # c0 - c7 - 2,2,2,2,2,2,2,2, # c8 - cf - 2,2,2,2,2,2,2,2, # d0 - d7 - 2,2,2,2,2,2,2,2, # d8 - df - 3,3,3,3,3,3,3,3, # e0 - e7 - 3,3,3,3,3,4,4,4, # e8 - ef - 3,3,3,3,3,3,3,3, # f0 - f7 - 3,3,3,3,3,0,0,0) # f8 - ff - - -SJIS_ST = ( - MachineState.ERROR,MachineState.START,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START #10-17 -) - -SJIS_CHAR_LEN_TABLE = (0, 1, 1, 2, 0, 0) - -SJIS_SM_MODEL = {'class_table': SJIS_CLS, - 'class_factor': 6, - 'state_table': SJIS_ST, - 'char_len_table': SJIS_CHAR_LEN_TABLE, - 'name': 'Shift_JIS'} - -# UCS2-BE - -UCS2BE_CLS = ( - 0,0,0,0,0,0,0,0, # 00 - 07 - 0,0,1,0,0,2,0,0, # 08 - 0f - 0,0,0,0,0,0,0,0, # 10 - 17 - 0,0,0,3,0,0,0,0, # 18 - 1f - 0,0,0,0,0,0,0,0, # 20 - 27 - 0,3,3,3,3,3,0,0, # 28 - 2f - 0,0,0,0,0,0,0,0, # 30 - 37 - 0,0,0,0,0,0,0,0, # 38 - 3f - 0,0,0,0,0,0,0,0, # 40 - 47 - 0,0,0,0,0,0,0,0, # 48 - 4f - 0,0,0,0,0,0,0,0, # 50 - 57 - 0,0,0,0,0,0,0,0, # 58 - 5f - 0,0,0,0,0,0,0,0, # 60 - 67 - 0,0,0,0,0,0,0,0, # 68 - 6f - 0,0,0,0,0,0,0,0, # 70 - 77 - 0,0,0,0,0,0,0,0, # 78 - 7f - 0,0,0,0,0,0,0,0, # 80 - 87 - 0,0,0,0,0,0,0,0, # 88 - 8f - 0,0,0,0,0,0,0,0, # 90 - 97 - 0,0,0,0,0,0,0,0, # 98 - 9f - 0,0,0,0,0,0,0,0, # a0 - a7 - 0,0,0,0,0,0,0,0, # a8 - af - 0,0,0,0,0,0,0,0, # b0 - b7 - 0,0,0,0,0,0,0,0, # b8 - bf - 0,0,0,0,0,0,0,0, # c0 - c7 - 0,0,0,0,0,0,0,0, # c8 - cf - 0,0,0,0,0,0,0,0, # d0 - d7 - 0,0,0,0,0,0,0,0, # d8 - df - 0,0,0,0,0,0,0,0, # e0 - e7 - 0,0,0,0,0,0,0,0, # e8 - ef - 0,0,0,0,0,0,0,0, # f0 - f7 - 0,0,0,0,0,0,4,5 # f8 - ff -) - -UCS2BE_ST = ( - 5, 7, 7,MachineState.ERROR, 4, 3,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME, 6, 6, 6, 6,MachineState.ERROR,MachineState.ERROR,#10-17 - 6, 6, 6, 6, 6,MachineState.ITS_ME, 6, 6,#18-1f - 6, 6, 6, 6, 5, 7, 7,MachineState.ERROR,#20-27 - 5, 8, 6, 6,MachineState.ERROR, 6, 6, 6,#28-2f - 6, 6, 6, 6,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START #30-37 -) - -UCS2BE_CHAR_LEN_TABLE = (2, 2, 2, 0, 2, 2) - -UCS2BE_SM_MODEL = {'class_table': UCS2BE_CLS, - 'class_factor': 6, - 'state_table': UCS2BE_ST, - 'char_len_table': UCS2BE_CHAR_LEN_TABLE, - 'name': 'UTF-16BE'} - -# UCS2-LE - -UCS2LE_CLS = ( - 0,0,0,0,0,0,0,0, # 00 - 07 - 0,0,1,0,0,2,0,0, # 08 - 0f - 0,0,0,0,0,0,0,0, # 10 - 17 - 0,0,0,3,0,0,0,0, # 18 - 1f - 0,0,0,0,0,0,0,0, # 20 - 27 - 0,3,3,3,3,3,0,0, # 28 - 2f - 0,0,0,0,0,0,0,0, # 30 - 37 - 0,0,0,0,0,0,0,0, # 38 - 3f - 0,0,0,0,0,0,0,0, # 40 - 47 - 0,0,0,0,0,0,0,0, # 48 - 4f - 0,0,0,0,0,0,0,0, # 50 - 57 - 0,0,0,0,0,0,0,0, # 58 - 5f - 0,0,0,0,0,0,0,0, # 60 - 67 - 0,0,0,0,0,0,0,0, # 68 - 6f - 0,0,0,0,0,0,0,0, # 70 - 77 - 0,0,0,0,0,0,0,0, # 78 - 7f - 0,0,0,0,0,0,0,0, # 80 - 87 - 0,0,0,0,0,0,0,0, # 88 - 8f - 0,0,0,0,0,0,0,0, # 90 - 97 - 0,0,0,0,0,0,0,0, # 98 - 9f - 0,0,0,0,0,0,0,0, # a0 - a7 - 0,0,0,0,0,0,0,0, # a8 - af - 0,0,0,0,0,0,0,0, # b0 - b7 - 0,0,0,0,0,0,0,0, # b8 - bf - 0,0,0,0,0,0,0,0, # c0 - c7 - 0,0,0,0,0,0,0,0, # c8 - cf - 0,0,0,0,0,0,0,0, # d0 - d7 - 0,0,0,0,0,0,0,0, # d8 - df - 0,0,0,0,0,0,0,0, # e0 - e7 - 0,0,0,0,0,0,0,0, # e8 - ef - 0,0,0,0,0,0,0,0, # f0 - f7 - 0,0,0,0,0,0,4,5 # f8 - ff -) - -UCS2LE_ST = ( - 6, 6, 7, 6, 4, 3,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME, 5, 5, 5,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,#10-17 - 5, 5, 5,MachineState.ERROR, 5,MachineState.ERROR, 6, 6,#18-1f - 7, 6, 8, 8, 5, 5, 5,MachineState.ERROR,#20-27 - 5, 5, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5, 5,#28-2f - 5, 5, 5,MachineState.ERROR, 5,MachineState.ERROR,MachineState.START,MachineState.START #30-37 -) - -UCS2LE_CHAR_LEN_TABLE = (2, 2, 2, 2, 2, 2) - -UCS2LE_SM_MODEL = {'class_table': UCS2LE_CLS, - 'class_factor': 6, - 'state_table': UCS2LE_ST, - 'char_len_table': UCS2LE_CHAR_LEN_TABLE, - 'name': 'UTF-16LE'} - -# UTF-8 - -UTF8_CLS = ( - 1,1,1,1,1,1,1,1, # 00 - 07 #allow 0x00 as a legal value - 1,1,1,1,1,1,0,0, # 08 - 0f - 1,1,1,1,1,1,1,1, # 10 - 17 - 1,1,1,0,1,1,1,1, # 18 - 1f - 1,1,1,1,1,1,1,1, # 20 - 27 - 1,1,1,1,1,1,1,1, # 28 - 2f - 1,1,1,1,1,1,1,1, # 30 - 37 - 1,1,1,1,1,1,1,1, # 38 - 3f - 1,1,1,1,1,1,1,1, # 40 - 47 - 1,1,1,1,1,1,1,1, # 48 - 4f - 1,1,1,1,1,1,1,1, # 50 - 57 - 1,1,1,1,1,1,1,1, # 58 - 5f - 1,1,1,1,1,1,1,1, # 60 - 67 - 1,1,1,1,1,1,1,1, # 68 - 6f - 1,1,1,1,1,1,1,1, # 70 - 77 - 1,1,1,1,1,1,1,1, # 78 - 7f - 2,2,2,2,3,3,3,3, # 80 - 87 - 4,4,4,4,4,4,4,4, # 88 - 8f - 4,4,4,4,4,4,4,4, # 90 - 97 - 4,4,4,4,4,4,4,4, # 98 - 9f - 5,5,5,5,5,5,5,5, # a0 - a7 - 5,5,5,5,5,5,5,5, # a8 - af - 5,5,5,5,5,5,5,5, # b0 - b7 - 5,5,5,5,5,5,5,5, # b8 - bf - 0,0,6,6,6,6,6,6, # c0 - c7 - 6,6,6,6,6,6,6,6, # c8 - cf - 6,6,6,6,6,6,6,6, # d0 - d7 - 6,6,6,6,6,6,6,6, # d8 - df - 7,8,8,8,8,8,8,8, # e0 - e7 - 8,8,8,8,8,9,8,8, # e8 - ef - 10,11,11,11,11,11,11,11, # f0 - f7 - 12,13,13,13,14,15,0,0 # f8 - ff -) - -UTF8_ST = ( - MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 12, 10,#00-07 - 9, 11, 8, 7, 6, 5, 4, 3,#08-0f - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#10-17 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#20-27 - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#28-2f - MachineState.ERROR,MachineState.ERROR, 5, 5, 5, 5,MachineState.ERROR,MachineState.ERROR,#30-37 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#38-3f - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5, 5, 5,MachineState.ERROR,MachineState.ERROR,#40-47 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#48-4f - MachineState.ERROR,MachineState.ERROR, 7, 7, 7, 7,MachineState.ERROR,MachineState.ERROR,#50-57 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#58-5f - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 7, 7,MachineState.ERROR,MachineState.ERROR,#60-67 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#68-6f - MachineState.ERROR,MachineState.ERROR, 9, 9, 9, 9,MachineState.ERROR,MachineState.ERROR,#70-77 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#78-7f - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 9,MachineState.ERROR,MachineState.ERROR,#80-87 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#88-8f - MachineState.ERROR,MachineState.ERROR, 12, 12, 12, 12,MachineState.ERROR,MachineState.ERROR,#90-97 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#98-9f - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 12,MachineState.ERROR,MachineState.ERROR,#a0-a7 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#a8-af - MachineState.ERROR,MachineState.ERROR, 12, 12, 12,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#b0-b7 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#b8-bf - MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,#c0-c7 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR #c8-cf -) - -UTF8_CHAR_LEN_TABLE = (0, 1, 0, 0, 0, 0, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6) - -UTF8_SM_MODEL = {'class_table': UTF8_CLS, - 'class_factor': 16, - 'state_table': UTF8_ST, - 'char_len_table': UTF8_CHAR_LEN_TABLE, - 'name': 'UTF-8'} diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index a32b3f80c617cc1d0b44e8670a5cce7a261a8b84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmYk0u?@m75Jeq{0wHCP6yypjB!rlNh5=4ad|-#fw(KJ$qc8$%Fa|9n&{5%3@TLDw z_jUR@ndb|UbbA!dG+z_`m8E5u9A^ni97K`r?;=d`51#?F>j)|n^;I@R3`~*1(vdMz z=qVr%7JYCv#Rz3jwujbK;78WZuF5q;!?g6WKFbqD@WunCE9C;zS_YLWJ7TFMOF%T% UFkm@FzHM%#x}8y9fR#elWw`tD^Nk9QeIU- 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 H?acoJgBlJ+ diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/languages.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/languages.py deleted file mode 100644 index e8e4469..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/languages.py +++ /dev/null @@ -1,309 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Metadata about languages used by our model training code for our -SingleByteCharSetProbers. Could be used for other things in the future. - -This code is based on the language metadata from the uchardet project. -""" -from __future__ import absolute_import, print_function - -from string import ascii_letters - - -# TODO: Add Ukranian (KOI8-U) - -class Language(object): - """Metadata about a language useful for training models - - :ivar name: The human name for the language, in English. - :type name: str - :ivar iso_code: 2-letter ISO 639-1 if possible, 3-letter ISO code otherwise, - or use another catalog as a last resort. - :type iso_code: str - :ivar use_ascii: Whether or not ASCII letters should be included in trained - models. - :type use_ascii: bool - :ivar charsets: The charsets we want to support and create data for. - :type charsets: list of str - :ivar alphabet: The characters in the language's alphabet. If `use_ascii` is - `True`, you only need to add those not in the ASCII set. - :type alphabet: str - :ivar wiki_start_pages: The Wikipedia pages to start from if we're crawling - Wikipedia for training data. - :type wiki_start_pages: list of str - """ - def __init__(self, name=None, iso_code=None, use_ascii=True, charsets=None, - alphabet=None, wiki_start_pages=None): - super(Language, self).__init__() - self.name = name - self.iso_code = iso_code - self.use_ascii = use_ascii - self.charsets = charsets - if self.use_ascii: - if alphabet: - alphabet += ascii_letters - else: - alphabet = ascii_letters - elif not alphabet: - raise ValueError('Must supply alphabet if use_ascii is False') - self.alphabet = ''.join(sorted(set(alphabet))) if alphabet else None - self.wiki_start_pages = wiki_start_pages - - def __repr__(self): - return '{}({})'.format(self.__class__.__name__, - ', '.join('{}={!r}'.format(k, v) - for k, v in self.__dict__.items() - if not k.startswith('_'))) - - -LANGUAGES = {'Arabic': Language(name='Arabic', - iso_code='ar', - use_ascii=False, - # We only support encodings that use isolated - # forms, because the current recommendation is - # that the rendering system handles presentation - # forms. This means we purposefully skip IBM864. - charsets=['ISO-8859-6', 'WINDOWS-1256', - 'CP720', 'CP864'], - alphabet=u'ءآأؤإئابةتثجحخدذرزسشصضطظعغػؼؽؾؿـفقكلمنهوىيًٌٍَُِّ', - wiki_start_pages=[u'الصفحة_الرئيسية']), - 'Belarusian': Language(name='Belarusian', - iso_code='be', - use_ascii=False, - charsets=['ISO-8859-5', 'WINDOWS-1251', - 'IBM866', 'MacCyrillic'], - alphabet=(u'АБВГДЕЁЖЗІЙКЛМНОПРСТУЎФХЦЧШЫЬЭЮЯ' - u'абвгдеёжзійклмнопрстуўфхцчшыьэюяʼ'), - wiki_start_pages=[u'Галоўная_старонка']), - 'Bulgarian': Language(name='Bulgarian', - iso_code='bg', - use_ascii=False, - charsets=['ISO-8859-5', 'WINDOWS-1251', - 'IBM855'], - alphabet=(u'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯ' - u'абвгдежзийклмнопрстуфхцчшщъьюя'), - wiki_start_pages=[u'Начална_страница']), - 'Czech': Language(name='Czech', - iso_code='cz', - use_ascii=True, - charsets=['ISO-8859-2', 'WINDOWS-1250'], - alphabet=u'áčďéěíňóřšťúůýžÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ', - wiki_start_pages=[u'Hlavní_strana']), - 'Danish': Language(name='Danish', - iso_code='da', - use_ascii=True, - charsets=['ISO-8859-1', 'ISO-8859-15', - 'WINDOWS-1252'], - alphabet=u'æøåÆØÅ', - wiki_start_pages=[u'Forside']), - 'German': Language(name='German', - iso_code='de', - use_ascii=True, - charsets=['ISO-8859-1', 'WINDOWS-1252'], - alphabet=u'äöüßÄÖÜ', - wiki_start_pages=[u'Wikipedia:Hauptseite']), - 'Greek': Language(name='Greek', - iso_code='el', - use_ascii=False, - charsets=['ISO-8859-7', 'WINDOWS-1253'], - alphabet=(u'αβγδεζηθικλμνξοπρσςτυφχψωάέήίόύώ' - u'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΣΤΥΦΧΨΩΆΈΉΊΌΎΏ'), - wiki_start_pages=[u'Πύλη:Κύρια']), - 'English': Language(name='English', - iso_code='en', - use_ascii=True, - charsets=['ISO-8859-1', 'WINDOWS-1252'], - wiki_start_pages=[u'Main_Page']), - 'Esperanto': Language(name='Esperanto', - iso_code='eo', - # Q, W, X, and Y not used at all - use_ascii=False, - charsets=['ISO-8859-3'], - alphabet=(u'abcĉdefgĝhĥijĵklmnoprsŝtuŭvz' - u'ABCĈDEFGĜHĤIJĴKLMNOPRSŜTUŬVZ'), - wiki_start_pages=[u'Vikipedio:Ĉefpaĝo']), - 'Spanish': Language(name='Spanish', - iso_code='es', - use_ascii=True, - charsets=['ISO-8859-1', 'ISO-8859-15', - 'WINDOWS-1252'], - alphabet=u'ñáéíóúüÑÁÉÍÓÚÜ', - wiki_start_pages=[u'Wikipedia:Portada']), - 'Estonian': Language(name='Estonian', - iso_code='et', - use_ascii=False, - charsets=['ISO-8859-4', 'ISO-8859-13', - 'WINDOWS-1257'], - # C, F, Š, Q, W, X, Y, Z, Ž are only for - # loanwords - alphabet=(u'ABDEGHIJKLMNOPRSTUVÕÄÖÜ' - u'abdeghijklmnoprstuvõäöü'), - wiki_start_pages=[u'Esileht']), - 'Finnish': Language(name='Finnish', - iso_code='fi', - use_ascii=True, - charsets=['ISO-8859-1', 'ISO-8859-15', - 'WINDOWS-1252'], - alphabet=u'ÅÄÖŠŽåäöšž', - wiki_start_pages=[u'Wikipedia:Etusivu']), - 'French': Language(name='French', - iso_code='fr', - use_ascii=True, - charsets=['ISO-8859-1', 'ISO-8859-15', - 'WINDOWS-1252'], - alphabet=u'œàâçèéîïùûêŒÀÂÇÈÉÎÏÙÛÊ', - wiki_start_pages=[u'Wikipédia:Accueil_principal', - u'Bœuf (animal)']), - 'Hebrew': Language(name='Hebrew', - iso_code='he', - use_ascii=False, - charsets=['ISO-8859-8', 'WINDOWS-1255'], - alphabet=u'אבגדהוזחטיךכלםמןנסעףפץצקרשתװױײ', - wiki_start_pages=[u'עמוד_ראשי']), - 'Croatian': Language(name='Croatian', - iso_code='hr', - # Q, W, X, Y are only used for foreign words. - use_ascii=False, - charsets=['ISO-8859-2', 'WINDOWS-1250'], - alphabet=(u'abcčćdđefghijklmnoprsštuvzž' - u'ABCČĆDĐEFGHIJKLMNOPRSŠTUVZŽ'), - wiki_start_pages=[u'Glavna_stranica']), - 'Hungarian': Language(name='Hungarian', - iso_code='hu', - # Q, W, X, Y are only used for foreign words. - use_ascii=False, - charsets=['ISO-8859-2', 'WINDOWS-1250'], - alphabet=(u'abcdefghijklmnoprstuvzáéíóöőúüű' - u'ABCDEFGHIJKLMNOPRSTUVZÁÉÍÓÖŐÚÜŰ'), - wiki_start_pages=[u'Kezdőlap']), - 'Italian': Language(name='Italian', - iso_code='it', - use_ascii=True, - charsets=['ISO-8859-1', 'ISO-8859-15', - 'WINDOWS-1252'], - alphabet=u'ÀÈÉÌÒÓÙàèéìòóù', - wiki_start_pages=[u'Pagina_principale']), - 'Lithuanian': Language(name='Lithuanian', - iso_code='lt', - use_ascii=False, - charsets=['ISO-8859-13', 'WINDOWS-1257', - 'ISO-8859-4'], - # Q, W, and X not used at all - alphabet=(u'AĄBCČDEĘĖFGHIĮYJKLMNOPRSŠTUŲŪVZŽ' - u'aąbcčdeęėfghiįyjklmnoprsštuųūvzž'), - wiki_start_pages=[u'Pagrindinis_puslapis']), - 'Latvian': Language(name='Latvian', - iso_code='lv', - use_ascii=False, - charsets=['ISO-8859-13', 'WINDOWS-1257', - 'ISO-8859-4'], - # Q, W, X, Y are only for loanwords - alphabet=(u'AĀBCČDEĒFGĢHIĪJKĶLĻMNŅOPRSŠTUŪVZŽ' - u'aābcčdeēfgģhiījkķlļmnņoprsštuūvzž'), - wiki_start_pages=[u'Sākumlapa']), - 'Macedonian': Language(name='Macedonian', - iso_code='mk', - use_ascii=False, - charsets=['ISO-8859-5', 'WINDOWS-1251', - 'MacCyrillic', 'IBM855'], - alphabet=(u'АБВГДЃЕЖЗЅИЈКЛЉМНЊОПРСТЌУФХЦЧЏШ' - u'абвгдѓежзѕијклљмнњопрстќуфхцчџш'), - wiki_start_pages=[u'Главна_страница']), - 'Dutch': Language(name='Dutch', - iso_code='nl', - use_ascii=True, - charsets=['ISO-8859-1', 'WINDOWS-1252'], - wiki_start_pages=[u'Hoofdpagina']), - 'Polish': Language(name='Polish', - iso_code='pl', - # Q and X are only used for foreign words. - use_ascii=False, - charsets=['ISO-8859-2', 'WINDOWS-1250'], - alphabet=(u'AĄBCĆDEĘFGHIJKLŁMNŃOÓPRSŚTUWYZŹŻ' - u'aąbcćdeęfghijklłmnńoóprsśtuwyzźż'), - wiki_start_pages=[u'Wikipedia:Strona_główna']), - 'Portuguese': Language(name='Portuguese', - iso_code='pt', - use_ascii=True, - charsets=['ISO-8859-1', 'ISO-8859-15', - 'WINDOWS-1252'], - alphabet=u'ÁÂÃÀÇÉÊÍÓÔÕÚáâãàçéêíóôõú', - wiki_start_pages=[u'Wikipédia:Página_principal']), - 'Romanian': Language(name='Romanian', - iso_code='ro', - use_ascii=True, - charsets=['ISO-8859-2', 'WINDOWS-1250'], - alphabet=u'ăâîșțĂÂÎȘȚ', - wiki_start_pages=[u'Pagina_principală']), - 'Russian': Language(name='Russian', - iso_code='ru', - use_ascii=False, - charsets=['ISO-8859-5', 'WINDOWS-1251', - 'KOI8-R', 'MacCyrillic', 'IBM866', - 'IBM855'], - alphabet=(u'абвгдеёжзийклмнопрстуфхцчшщъыьэюя' - u'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'), - wiki_start_pages=[u'Заглавная_страница']), - 'Slovak': Language(name='Slovak', - iso_code='sk', - use_ascii=True, - charsets=['ISO-8859-2', 'WINDOWS-1250'], - alphabet=u'áäčďéíĺľňóôŕšťúýžÁÄČĎÉÍĹĽŇÓÔŔŠŤÚÝŽ', - wiki_start_pages=[u'Hlavná_stránka']), - 'Slovene': Language(name='Slovene', - iso_code='sl', - # Q, W, X, Y are only used for foreign words. - use_ascii=False, - charsets=['ISO-8859-2', 'WINDOWS-1250'], - alphabet=(u'abcčdefghijklmnoprsštuvzž' - u'ABCČDEFGHIJKLMNOPRSŠTUVZŽ'), - wiki_start_pages=[u'Glavna_stran']), - # Serbian can be written in both Latin and Cyrillic, but there's no - # simple way to get the Latin alphabet pages from Wikipedia through - # the API, so for now we just support Cyrillic. - 'Serbian': Language(name='Serbian', - iso_code='sr', - alphabet=(u'АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ' - u'абвгдђежзијклљмнњопрстћуфхцчџш'), - charsets=['ISO-8859-5', 'WINDOWS-1251', - 'MacCyrillic', 'IBM855'], - wiki_start_pages=[u'Главна_страна']), - 'Thai': Language(name='Thai', - iso_code='th', - use_ascii=False, - charsets=['ISO-8859-11', 'TIS-620', 'CP874'], - alphabet=u'กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛', - wiki_start_pages=[u'หน้าหลัก']), - 'Turkish': Language(name='Turkish', - iso_code='tr', - # Q, W, and X are not used by Turkish - use_ascii=False, - charsets=['ISO-8859-3', 'ISO-8859-9', - 'WINDOWS-1254'], - alphabet=(u'abcçdefgğhıijklmnoöprsştuüvyzâîû' - u'ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZÂÎÛ'), - wiki_start_pages=[u'Ana_Sayfa']), - 'Vietnamese': Language(name='Vietnamese', - iso_code='vi', - use_ascii=False, - # Windows-1258 is the only common 8-bit - # Vietnamese encoding supported by Python. - # From Wikipedia: - # For systems that lack support for Unicode, - # dozens of 8-bit Vietnamese code pages are - # available.[1] The most common are VISCII - # (TCVN 5712:1993), VPS, and Windows-1258.[3] - # Where ASCII is required, such as when - # ensuring readability in plain text e-mail, - # Vietnamese letters are often encoded - # according to Vietnamese Quoted-Readable - # (VIQR) or VSCII Mnemonic (VSCII-MNEM),[4] - # though usage of either variable-width - # scheme has declined dramatically following - # the adoption of Unicode on the World Wide - # Web. - charsets=['WINDOWS-1258'], - alphabet=(u'aăâbcdđeêghiklmnoôơpqrstuưvxy' - u'AĂÂBCDĐEÊGHIKLMNOÔƠPQRSTUƯVXY'), - wiki_start_pages=[u'Chữ_Quốc_ngữ']), - } diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcharsetprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcharsetprober.py deleted file mode 100644 index 46ba835..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcharsetprober.py +++ /dev/null @@ -1,145 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from collections import namedtuple - -from .charsetprober import CharSetProber -from .enums import CharacterCategory, ProbingState, SequenceLikelihood - - -SingleByteCharSetModel = namedtuple('SingleByteCharSetModel', - ['charset_name', - 'language', - 'char_to_order_map', - 'language_model', - 'typical_positive_ratio', - 'keep_ascii_letters', - 'alphabet']) - - -class SingleByteCharSetProber(CharSetProber): - SAMPLE_SIZE = 64 - SB_ENOUGH_REL_THRESHOLD = 1024 # 0.25 * SAMPLE_SIZE^2 - POSITIVE_SHORTCUT_THRESHOLD = 0.95 - NEGATIVE_SHORTCUT_THRESHOLD = 0.05 - - def __init__(self, model, reversed=False, name_prober=None): - super(SingleByteCharSetProber, self).__init__() - self._model = model - # TRUE if we need to reverse every pair in the model lookup - self._reversed = reversed - # Optional auxiliary prober for name decision - self._name_prober = name_prober - self._last_order = None - self._seq_counters = None - self._total_seqs = None - self._total_char = None - self._freq_char = None - self.reset() - - def reset(self): - super(SingleByteCharSetProber, self).reset() - # char order of last character - self._last_order = 255 - self._seq_counters = [0] * SequenceLikelihood.get_num_categories() - self._total_seqs = 0 - self._total_char = 0 - # characters that fall in our sampling range - self._freq_char = 0 - - @property - def charset_name(self): - if self._name_prober: - return self._name_prober.charset_name - else: - return self._model.charset_name - - @property - def language(self): - if self._name_prober: - return self._name_prober.language - else: - return self._model.language - - def feed(self, byte_str): - # TODO: Make filter_international_words keep things in self.alphabet - if not self._model.keep_ascii_letters: - byte_str = self.filter_international_words(byte_str) - if not byte_str: - return self.state - char_to_order_map = self._model.char_to_order_map - language_model = self._model.language_model - for char in byte_str: - order = char_to_order_map.get(char, CharacterCategory.UNDEFINED) - # XXX: This was SYMBOL_CAT_ORDER before, with a value of 250, but - # CharacterCategory.SYMBOL is actually 253, so we use CONTROL - # to make it closer to the original intent. The only difference - # is whether or not we count digits and control characters for - # _total_char purposes. - if order < CharacterCategory.CONTROL: - self._total_char += 1 - # TODO: Follow uchardet's lead and discount confidence for frequent - # control characters. - # See https://github.com/BYVoid/uchardet/commit/55b4f23971db61 - if order < self.SAMPLE_SIZE: - self._freq_char += 1 - if self._last_order < self.SAMPLE_SIZE: - self._total_seqs += 1 - if not self._reversed: - lm_cat = language_model[self._last_order][order] - else: - lm_cat = language_model[order][self._last_order] - self._seq_counters[lm_cat] += 1 - self._last_order = order - - charset_name = self._model.charset_name - if self.state == ProbingState.DETECTING: - if self._total_seqs > self.SB_ENOUGH_REL_THRESHOLD: - confidence = self.get_confidence() - if confidence > self.POSITIVE_SHORTCUT_THRESHOLD: - self.logger.debug('%s confidence = %s, we have a winner', - charset_name, confidence) - self._state = ProbingState.FOUND_IT - elif confidence < self.NEGATIVE_SHORTCUT_THRESHOLD: - self.logger.debug('%s confidence = %s, below negative ' - 'shortcut threshhold %s', charset_name, - confidence, - self.NEGATIVE_SHORTCUT_THRESHOLD) - self._state = ProbingState.NOT_ME - - return self.state - - def get_confidence(self): - r = 0.01 - if self._total_seqs > 0: - r = ((1.0 * self._seq_counters[SequenceLikelihood.POSITIVE]) / - self._total_seqs / self._model.typical_positive_ratio) - r = r * self._freq_char / self._total_char - if r >= 1.0: - r = 0.99 - return r diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcsgroupprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcsgroupprober.py deleted file mode 100644 index bdeef4e..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +++ /dev/null @@ -1,83 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetgroupprober import CharSetGroupProber -from .hebrewprober import HebrewProber -from .langbulgarianmodel import (ISO_8859_5_BULGARIAN_MODEL, - WINDOWS_1251_BULGARIAN_MODEL) -from .langgreekmodel import ISO_8859_7_GREEK_MODEL, WINDOWS_1253_GREEK_MODEL -from .langhebrewmodel import WINDOWS_1255_HEBREW_MODEL -# from .langhungarianmodel import (ISO_8859_2_HUNGARIAN_MODEL, -# WINDOWS_1250_HUNGARIAN_MODEL) -from .langrussianmodel import (IBM855_RUSSIAN_MODEL, IBM866_RUSSIAN_MODEL, - ISO_8859_5_RUSSIAN_MODEL, KOI8_R_RUSSIAN_MODEL, - MACCYRILLIC_RUSSIAN_MODEL, - WINDOWS_1251_RUSSIAN_MODEL) -from .langthaimodel import TIS_620_THAI_MODEL -from .langturkishmodel import ISO_8859_9_TURKISH_MODEL -from .sbcharsetprober import SingleByteCharSetProber - - -class SBCSGroupProber(CharSetGroupProber): - def __init__(self): - super(SBCSGroupProber, self).__init__() - hebrew_prober = HebrewProber() - logical_hebrew_prober = SingleByteCharSetProber(WINDOWS_1255_HEBREW_MODEL, - False, hebrew_prober) - # TODO: See if using ISO-8859-8 Hebrew model works better here, since - # it's actually the visual one - visual_hebrew_prober = SingleByteCharSetProber(WINDOWS_1255_HEBREW_MODEL, - True, hebrew_prober) - hebrew_prober.set_model_probers(logical_hebrew_prober, - visual_hebrew_prober) - # TODO: ORDER MATTERS HERE. I changed the order vs what was in master - # and several tests failed that did not before. Some thought - # should be put into the ordering, and we should consider making - # order not matter here, because that is very counter-intuitive. - self.probers = [ - SingleByteCharSetProber(WINDOWS_1251_RUSSIAN_MODEL), - SingleByteCharSetProber(KOI8_R_RUSSIAN_MODEL), - SingleByteCharSetProber(ISO_8859_5_RUSSIAN_MODEL), - SingleByteCharSetProber(MACCYRILLIC_RUSSIAN_MODEL), - SingleByteCharSetProber(IBM866_RUSSIAN_MODEL), - SingleByteCharSetProber(IBM855_RUSSIAN_MODEL), - SingleByteCharSetProber(ISO_8859_7_GREEK_MODEL), - SingleByteCharSetProber(WINDOWS_1253_GREEK_MODEL), - SingleByteCharSetProber(ISO_8859_5_BULGARIAN_MODEL), - SingleByteCharSetProber(WINDOWS_1251_BULGARIAN_MODEL), - # TODO: Restore Hungarian encodings (iso-8859-2 and windows-1250) - # after we retrain model. - # SingleByteCharSetProber(ISO_8859_2_HUNGARIAN_MODEL), - # SingleByteCharSetProber(WINDOWS_1250_HUNGARIAN_MODEL), - SingleByteCharSetProber(TIS_620_THAI_MODEL), - SingleByteCharSetProber(ISO_8859_9_TURKISH_MODEL), - hebrew_prober, - logical_hebrew_prober, - visual_hebrew_prober, - ] - self.reset() diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sjisprober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sjisprober.py deleted file mode 100644 index 9e29623..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sjisprober.py +++ /dev/null @@ -1,92 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import SJISDistributionAnalysis -from .jpcntx import SJISContextAnalysis -from .mbcssm import SJIS_SM_MODEL -from .enums import ProbingState, MachineState - - -class SJISProber(MultiByteCharSetProber): - def __init__(self): - super(SJISProber, self).__init__() - self.coding_sm = CodingStateMachine(SJIS_SM_MODEL) - self.distribution_analyzer = SJISDistributionAnalysis() - self.context_analyzer = SJISContextAnalysis() - self.reset() - - def reset(self): - super(SJISProber, self).reset() - self.context_analyzer.reset() - - @property - def charset_name(self): - return self.context_analyzer.charset_name - - @property - def language(self): - return "Japanese" - - def feed(self, byte_str): - for i in range(len(byte_str)): - coding_state = self.coding_sm.next_state(byte_str[i]) - if coding_state == MachineState.ERROR: - self.logger.debug('%s %s prober hit error at byte %s', - self.charset_name, self.language, i) - self._state = ProbingState.NOT_ME - break - elif coding_state == MachineState.ITS_ME: - self._state = ProbingState.FOUND_IT - break - elif coding_state == MachineState.START: - char_len = self.coding_sm.get_current_charlen() - if i == 0: - self._last_char[1] = byte_str[0] - self.context_analyzer.feed(self._last_char[2 - char_len:], - char_len) - self.distribution_analyzer.feed(self._last_char, char_len) - else: - self.context_analyzer.feed(byte_str[i + 1 - char_len:i + 3 - - char_len], char_len) - self.distribution_analyzer.feed(byte_str[i - 1:i + 1], - char_len) - - self._last_char[0] = byte_str[-1] - - if self.state == ProbingState.DETECTING: - if (self.context_analyzer.got_enough_data() and - (self.get_confidence() > self.SHORTCUT_THRESHOLD)): - self._state = ProbingState.FOUND_IT - - return self.state - - def get_confidence(self): - context_conf = self.context_analyzer.get_confidence() - distrib_conf = self.distribution_analyzer.get_confidence() - return max(context_conf, distrib_conf) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/universaldetector.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/universaldetector.py deleted file mode 100644 index 055a8ac..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/universaldetector.py +++ /dev/null @@ -1,286 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### -""" -Module containing the UniversalDetector detector class, which is the primary -class a user of ``chardet`` should use. - -:author: Mark Pilgrim (initial port to Python) -:author: Shy Shalom (original C code) -:author: Dan Blanchard (major refactoring for 3.0) -:author: Ian Cordasco -""" - - -import codecs -import logging -import re - -from .charsetgroupprober import CharSetGroupProber -from .enums import InputState, LanguageFilter, ProbingState -from .escprober import EscCharSetProber -from .latin1prober import Latin1Prober -from .mbcsgroupprober import MBCSGroupProber -from .sbcsgroupprober import SBCSGroupProber - - -class UniversalDetector(object): - """ - The ``UniversalDetector`` class underlies the ``chardet.detect`` function - and coordinates all of the different charset probers. - - To get a ``dict`` containing an encoding and its confidence, you can simply - run: - - .. code:: - - u = UniversalDetector() - u.feed(some_bytes) - u.close() - detected = u.result - - """ - - MINIMUM_THRESHOLD = 0.20 - HIGH_BYTE_DETECTOR = re.compile(b'[\x80-\xFF]') - ESC_DETECTOR = re.compile(b'(\033|~{)') - WIN_BYTE_DETECTOR = re.compile(b'[\x80-\x9F]') - ISO_WIN_MAP = {'iso-8859-1': 'Windows-1252', - 'iso-8859-2': 'Windows-1250', - 'iso-8859-5': 'Windows-1251', - 'iso-8859-6': 'Windows-1256', - 'iso-8859-7': 'Windows-1253', - 'iso-8859-8': 'Windows-1255', - 'iso-8859-9': 'Windows-1254', - 'iso-8859-13': 'Windows-1257'} - - def __init__(self, lang_filter=LanguageFilter.ALL): - self._esc_charset_prober = None - self._charset_probers = [] - self.result = None - self.done = None - self._got_data = None - self._input_state = None - self._last_char = None - self.lang_filter = lang_filter - self.logger = logging.getLogger(__name__) - self._has_win_bytes = None - self.reset() - - def reset(self): - """ - Reset the UniversalDetector and all of its probers back to their - initial states. This is called by ``__init__``, so you only need to - call this directly in between analyses of different documents. - """ - self.result = {'encoding': None, 'confidence': 0.0, 'language': None} - self.done = False - self._got_data = False - self._has_win_bytes = False - self._input_state = InputState.PURE_ASCII - self._last_char = b'' - if self._esc_charset_prober: - self._esc_charset_prober.reset() - for prober in self._charset_probers: - prober.reset() - - def feed(self, byte_str): - """ - Takes a chunk of a document and feeds it through all of the relevant - charset probers. - - After calling ``feed``, you can check the value of the ``done`` - attribute to see if you need to continue feeding the - ``UniversalDetector`` more data, or if it has made a prediction - (in the ``result`` attribute). - - .. note:: - You should always call ``close`` when you're done feeding in your - document if ``done`` is not already ``True``. - """ - if self.done: - return - - if not len(byte_str): - return - - if not isinstance(byte_str, bytearray): - byte_str = bytearray(byte_str) - - # First check for known BOMs, since these are guaranteed to be correct - if not self._got_data: - # If the data starts with BOM, we know it is UTF - if byte_str.startswith(codecs.BOM_UTF8): - # EF BB BF UTF-8 with BOM - self.result = {'encoding': "UTF-8-SIG", - 'confidence': 1.0, - 'language': ''} - elif byte_str.startswith((codecs.BOM_UTF32_LE, - codecs.BOM_UTF32_BE)): - # FF FE 00 00 UTF-32, little-endian BOM - # 00 00 FE FF UTF-32, big-endian BOM - self.result = {'encoding': "UTF-32", - 'confidence': 1.0, - 'language': ''} - elif byte_str.startswith(b'\xFE\xFF\x00\x00'): - # FE FF 00 00 UCS-4, unusual octet order BOM (3412) - self.result = {'encoding': "X-ISO-10646-UCS-4-3412", - 'confidence': 1.0, - 'language': ''} - elif byte_str.startswith(b'\x00\x00\xFF\xFE'): - # 00 00 FF FE UCS-4, unusual octet order BOM (2143) - self.result = {'encoding': "X-ISO-10646-UCS-4-2143", - 'confidence': 1.0, - 'language': ''} - elif byte_str.startswith((codecs.BOM_LE, codecs.BOM_BE)): - # FF FE UTF-16, little endian BOM - # FE FF UTF-16, big endian BOM - self.result = {'encoding': "UTF-16", - 'confidence': 1.0, - 'language': ''} - - self._got_data = True - if self.result['encoding'] is not None: - self.done = True - return - - # If none of those matched and we've only see ASCII so far, check - # for high bytes and escape sequences - if self._input_state == InputState.PURE_ASCII: - if self.HIGH_BYTE_DETECTOR.search(byte_str): - self._input_state = InputState.HIGH_BYTE - elif self._input_state == InputState.PURE_ASCII and \ - self.ESC_DETECTOR.search(self._last_char + byte_str): - self._input_state = InputState.ESC_ASCII - - self._last_char = byte_str[-1:] - - # If we've seen escape sequences, use the EscCharSetProber, which - # uses a simple state machine to check for known escape sequences in - # HZ and ISO-2022 encodings, since those are the only encodings that - # use such sequences. - if self._input_state == InputState.ESC_ASCII: - if not self._esc_charset_prober: - self._esc_charset_prober = EscCharSetProber(self.lang_filter) - if self._esc_charset_prober.feed(byte_str) == ProbingState.FOUND_IT: - self.result = {'encoding': - self._esc_charset_prober.charset_name, - 'confidence': - self._esc_charset_prober.get_confidence(), - 'language': - self._esc_charset_prober.language} - self.done = True - # If we've seen high bytes (i.e., those with values greater than 127), - # we need to do more complicated checks using all our multi-byte and - # single-byte probers that are left. The single-byte probers - # use character bigram distributions to determine the encoding, whereas - # the multi-byte probers use a combination of character unigram and - # bigram distributions. - elif self._input_state == InputState.HIGH_BYTE: - if not self._charset_probers: - self._charset_probers = [MBCSGroupProber(self.lang_filter)] - # If we're checking non-CJK encodings, use single-byte prober - if self.lang_filter & LanguageFilter.NON_CJK: - self._charset_probers.append(SBCSGroupProber()) - self._charset_probers.append(Latin1Prober()) - for prober in self._charset_probers: - if prober.feed(byte_str) == ProbingState.FOUND_IT: - self.result = {'encoding': prober.charset_name, - 'confidence': prober.get_confidence(), - 'language': prober.language} - self.done = True - break - if self.WIN_BYTE_DETECTOR.search(byte_str): - self._has_win_bytes = True - - def close(self): - """ - Stop analyzing the current document and come up with a final - prediction. - - :returns: The ``result`` attribute, a ``dict`` with the keys - `encoding`, `confidence`, and `language`. - """ - # Don't bother with checks if we're already done - if self.done: - return self.result - self.done = True - - if not self._got_data: - self.logger.debug('no data received!') - - # Default to ASCII if it is all we've seen so far - elif self._input_state == InputState.PURE_ASCII: - self.result = {'encoding': 'ascii', - 'confidence': 1.0, - 'language': ''} - - # If we have seen non-ASCII, return the best that met MINIMUM_THRESHOLD - elif self._input_state == InputState.HIGH_BYTE: - prober_confidence = None - max_prober_confidence = 0.0 - max_prober = None - for prober in self._charset_probers: - if not prober: - continue - prober_confidence = prober.get_confidence() - if prober_confidence > max_prober_confidence: - max_prober_confidence = prober_confidence - max_prober = prober - if max_prober and (max_prober_confidence > self.MINIMUM_THRESHOLD): - charset_name = max_prober.charset_name - lower_charset_name = max_prober.charset_name.lower() - confidence = max_prober.get_confidence() - # Use Windows encoding name instead of ISO-8859 if we saw any - # extra Windows-specific bytes - if lower_charset_name.startswith('iso-8859'): - if self._has_win_bytes: - charset_name = self.ISO_WIN_MAP.get(lower_charset_name, - charset_name) - self.result = {'encoding': charset_name, - 'confidence': confidence, - 'language': max_prober.language} - - # Log all prober confidences if none met MINIMUM_THRESHOLD - if self.logger.getEffectiveLevel() <= logging.DEBUG: - if self.result['encoding'] is None: - self.logger.debug('no probers hit minimum threshold') - for group_prober in self._charset_probers: - if not group_prober: - continue - if isinstance(group_prober, CharSetGroupProber): - for prober in group_prober.probers: - self.logger.debug('%s %s confidence = %s', - prober.charset_name, - prober.language, - prober.get_confidence()) - else: - self.logger.debug('%s %s confidence = %s', - group_prober.charset_name, - group_prober.language, - group_prober.get_confidence()) - return self.result diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/utf8prober.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/utf8prober.py deleted file mode 100644 index 6c3196c..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/utf8prober.py +++ /dev/null @@ -1,82 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .enums import ProbingState, MachineState -from .codingstatemachine import CodingStateMachine -from .mbcssm import UTF8_SM_MODEL - - - -class UTF8Prober(CharSetProber): - ONE_CHAR_PROB = 0.5 - - def __init__(self): - super(UTF8Prober, self).__init__() - self.coding_sm = CodingStateMachine(UTF8_SM_MODEL) - self._num_mb_chars = None - self.reset() - - def reset(self): - super(UTF8Prober, self).reset() - self.coding_sm.reset() - self._num_mb_chars = 0 - - @property - def charset_name(self): - return "utf-8" - - @property - def language(self): - return "" - - def feed(self, byte_str): - for c in byte_str: - coding_state = self.coding_sm.next_state(c) - if coding_state == MachineState.ERROR: - self._state = ProbingState.NOT_ME - break - elif coding_state == MachineState.ITS_ME: - self._state = ProbingState.FOUND_IT - break - elif coding_state == MachineState.START: - if self.coding_sm.get_current_charlen() >= 2: - self._num_mb_chars += 1 - - if self.state == ProbingState.DETECTING: - if self.get_confidence() > self.SHORTCUT_THRESHOLD: - self._state = ProbingState.FOUND_IT - - return self.state - - def get_confidence(self): - unlike = 0.99 - if self._num_mb_chars < 6: - unlike *= self.ONE_CHAR_PROB ** self._num_mb_chars - return 1.0 - unlike - else: - return unlike diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/version.py b/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/version.py deleted file mode 100644 index 70369b9..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/version.py +++ /dev/null @@ -1,9 +0,0 @@ -""" -This module exists only to simplify retrieving the version number of chardet -from within setup.py and from chardet subpackages. - -:author: Dan Blanchard (dan.blanchard@gmail.com) -""" - -__version__ = "4.0.0" -VERSION = __version__.split('.') diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__init__.py deleted file mode 100644 index b149ed7..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. -from .initialise import init, deinit, reinit, colorama_text -from .ansi import Fore, Back, Style, Cursor -from .ansitowin32 import AnsiToWin32 - -__version__ = '0.4.4' diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 157631dbb088f9ec69921d71387441ee57f61e8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmYjNJ5B>J5MA#tn`|Q5Twx2=h@?S6h@U8Ff`sJ8a(VkE!$&-e`+jRsMW*Y|4m74!!<|0NF2d3g3ZKod2njU*yS#w3;rNn}b=1o61d zWKMF~BRyG=LiS1jH=eWuS&}l?DH%4|EUNNP6h>94PlXcB=MCR$v)7}AZna^OQOBPh zl-+2fwZd`(3`_!$ z0%QSv%0ipT!S4YS0DZ`mka2no0}Y(Umy~X}u|g|K-y(AWr2yX@UTVqlT-fE7tvGks zaqF<+4~~Ytp^3U@MLVMx+*(|3xZ2=W%yGAKORXmL2@b3HVHcROM{aQ^IvjSXMjQNh d1xzV$p|tLHzBrY-S-1QQI9d4q7>&^|{sAgTea-*? diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-39.pyc deleted file mode 100644 index a29e5fed1b3ce7f45f22a8e311a7dabb5b349f97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3239 zcmc&$OK;mo5ayE9i+Wmd>?SE%^@T=lBccgVph*!}mKDc|A{&+sH%wEO(QYg{GNmln zPHZ?p0q0NjmLB~#`ZM<06aPX^ompCr{6Y&~y2O6m;Vfr3Pp+5GTN;c%{;F=sjHdmK z#P~3Qn1LC-1E89tQQ{D)J32KSgPJt)R&z|6q$#*3=tnd|t+&KU(knDebFfOyYcx*_ zZ#7zA>3ze=09~Xdpi7FjfS#abpvx=+{4CIy=p@jSip~LjnN9&crRY4%?rTng*)~Cst}!ZqMUhS1?}b4k$bngUXQm zf$)QMc+wwm^$7Tze&F@Pn$=VF^HJg6wJgWExyLt-;6ZZAmr{bZIm?3(^P$uM%mZ z%ma<5;Dz^nyEoWm_A@{1z4A5~6E;{T?0`KNZpipHFc~tF+fs0-XbNJah zfJQjviFV31M8}9vf)u49pO@OoO7+py;6VpwJ9zK)#qVQ-@eJz^3rnccQgPm<@dW2LJ(~ z*e7$^)9Y`@9(hM7`ICfcq3>yXWM6-y3jK@HUxDY6;-Dr(CJDvO*5*~O;C$wvD48U1f?u3WyTf{2Ry=} z?_wlJ1J|fdh32RWkP}^?9w)5MufbMHf-%!niRi0KUjgT^Hg@wLG}cy^E}(BVPFa+B zQk6NkxYqu9Oj&VE8S*Zmu5rG))V;;!wfgd0bxdQN7s{cvL-qxf&YiE+oUJz=emkad z+(zVeF=V5G>!T2U41{XrP&siUho&BfQ&)}8Xul_SB)PA&SB=AnzLsR?q^FIg#m)^7 zH;QUu%+bJVR|)?D*k|8##fvwj`KPdtR}el!!0>VOC`ThXD&aQ~RGoYPRWY9f<4c$! zo(s~%(&LNc^DfL|1M_%gNEK zlczbSK=V$K7Mv0-!e6}Pl<9s7B%r7^aZJB)BY_%5Gq&eGK zZOYW6`h2s!QkQ1qalI`QYxfscnliE6>@-(ozO^uae?^IKn?K8}B0&@qF;9s^vY>de zXryz8udX(cDk|zw)dx1JL@Ji0R0DZt7;k}n-@^>iNoiu9yo}>dIPU*{!aED6k?1<8 zk1$1}ZxAp~qwf$fS)&?)jesUa6oDZ;M_5PbA@~Rz2rmHIya{-wch-P05A(lz2lt=v z9c%*UCqE=|GX7I{#10&HFkyKCAeuseskN)AlZlv|UB+CJ#@xaqnQSjEKdQH6Mx~is zZ?(>}3eCq{SHIO!%sD>A=7B0lx3WyRE**4Tm*WASW3BTnLIwd3TO5x+91kBdIe50g zxkdK8Gi~APHU!n zRNW(qgJBRr-eZhK0t5(<0~zF^MJ@qy4v<`O3UbM*E;;1na}Xd{6dd$F@-7WVj%}TG@toCZnnwoREGrig7Y;UeP2beX>(JW^J zCgP~_+Gv(PGq}r3Um3g<&A+yq3xGXd23%I~Db6;HdgUA7WHi2E=l<}TmL7GItw{8whrwFfO@$h%J#|yMFFOhEc4ZaMu-^&t zD9c;)waK3a;5J&efi5zLAK(RRTEvg9jHbk?4BQQoLdN6L&c*7cC{Q2Mn;X&|Hae&K<(+e&A)l@*5b{2KpvUIe! zT&zXnjUmq9Tffehchg?9yxqxmUxslM<;x_|z^l?ul#?9A zoPxyy9@0+2UZjZD-C3Hf20^hm2(DlvQ{Q64i_@r#ceTi{F5$#QI$B|656@3yRUG#J!U@8N zUXd`wWqfKHg?BOc+hY{IMMnDF@0O9$XmI5KGCE{%Y0&5+p3s_flr_CE3x4F$t9%*> z;=$DkBu<~?gF4_X9(Z^`X-N|UlFL5hEN8L#!Vot`uq-%LJaa3y2S#>Hjhq42I5cTk z8L`;iHy;_v8QaK9dktpL-(!PYo5l@D_ciDsTIzN~&i>KkwRvGXY@1B zyQld?Jo+8t6RD!XTvlOMn9WQ)Ys@o;XHN1>A98|mq-bNt(Q%q_Ll5j=k3cS%VeY*@ zW(E}ehGN4Tv#|wa$>5~h>ZV!51;Qq*Q4t_M#CRIr>zMmPv`j@>(*>d)5S>O-pVp|? z$ZwDlYu5ErKIqc876i`+VYgT*1p!Z6&}Q;2;v#iqMuHSskRk~pOM38Vh#&c$AS@;@ zBd;jPH;5T@q@jwN9v)#0yMg1ejd+xet}=abAeyt zm+?HsZD{5@vPw~YD@7!~`O)wnRqVOn>vy9b90!HMaU?qmZ7QB!^V7t~J3M`vA;fjM zT?(w7zQ5AgyzjSmLxFG_=@6Gi&j%3#Tc#sqz8m>u!HBpC_d9Kb!n{AoRq#b%MDWe` ziX)3q$h`8Icy>V0obo4TLz+ompBH4rvK$U_WNulMD}B>;^gXPI z3)E2r)Eca`+EH?nrGmF|4q+=$EDaPVRoZs*BMk`h>k^)Y!v)E5nviG0uwK$8OWzk{ zpW+Xw`+eG7!7iLfnjz2VuVj!@kPZ6%6qyd6uq0(fWQF(9GBQHLbS>AanH8sEdF&E% z(O*Dcv4&?RH1#<0PsUmrQ&aLginaZDaFD4UUc1i17+aJgQCheq1`#P?zKaa4)eVu& zVF2ZYyXfxuNfhyjFZuV|emm@D(KXV=gt|g)#|LSzt4$$EbAKDzVY?l{3ivfYLH4MO zMC-0%H0|hQ*?`tFt=WW-%EKrT)iHpuq2tCF30PA{5Kdc!vO0AqN+O}~-Hyfx-6ed< zOp`RZ{zwbN?{~u-sca8MJ4m{eyQY1zqOdzQsIc3~_xx_>+3`_h1@m{29&bnB0HJ{_ z5XtNyBW!hcLYXb4ZCC4KG~n@1D##nAbw_#8u`89;Y&RWrxyo5%$WSLV-thdS)F<|w zh)E>$#*yG}BSMkU{L&OZ%9-lT*g{yh+c4tT!N|=^vC}pIc?DEfPDPN3)5Cdvs`ly^SZH1hW-Z4=j^ zP4)Mc>f&yM*n|77pjaWx57#%>w}O?84Ov!RH-P0yclF`@&+ctWxK~`51*I#}x^w>v z={6ob{9c-02=hB7=Mxw0tJY2scozEVwuQ#Ooczt8z!6Rv}Zv13jmcCf| zY`w9yBJH)uD-G#9x_5tTUE0|CSUL&^IkQ3ERA&b3e=MsC#DN6pHFYq7vuaI$fZ$s3 z>QB}Qnp05m!Q*B6FhTk(g#bW7*BNPVQ;oppomMVxVPe{={{VA2TJ{i~!Dh`0oBh_m z3Y(w$o8I@<4ryNC%y$!;E!cYeUt3%p9zYvsv@(>C8g8u4zgVp8^tPi3!l1^-cRj3zr1R}-40%41hYESWhXL@#>A)9P86=Y?D7%6=GrK`F#kP7n2jl_0 zqsvy^YDm_DW2V#UWv%rUic&f=(4?yTT&2P)?5jlC#S3DEx^L3~BKKEl8QmA?vO$s^ zo}Hv=SRGi0#uIbjMnYzg43R|H zhnA9_gH`v?_?l$t?3>Ro9qq_VCv2~bhzvD8rx)g}UGi|Kc1a8Mn`te6g6)5grfO7%YeR$Qq01z7X!1Lga(~NW zTB^o_m+41ia<)qTq<4^~^~?|-kakmo0%SiVO+%(Uy;gz?sK4#&GDjgv`HpTY=5Mtt8GDV=v4oxU3xf`HPW_j#N zbcQ5nsjPuKFF-Xh>}BHTIHJH?R`ncIE!m;mz1M@Yk#4bbii|d1{1>!>43{p<7beM= zl>1vGjQKvq5h#K%6hnTHQ!N^G*^vpqVjr?QsJFgm`xY)m)@#Nc$mRtuK<;^5bDsOj zE$lD-hW*|%6Z;u2cgdb%k2PF!?zK;(c_uKTIGR!WfY39ZzPry* z-vct-cxDNt12j%hO8zMf{yEC)WZKGH1ijus6=@ewX(6V+F{Qb5L$dyqBFOS5lv2Oy zi(CJOz5j(~46jde@T91gKIx_~(CpUI_`P4VkH4Ys)tUP2caxzN<>{ppWSE+af&^4h zP$MDV+zlySR-`)^H2Vq9AJtT+w7jL)}gi$0zzsU=WFXq$$Ds^H=s+QAaZUP-n$ ztuH^v;(wrJzlDzU#X~5lphsfEPT_g3Xf*cB4^cFp)Slza<3v_KS;Sa#{uBUsSrm<- zISG|c4iE>xZwnd&hoEBwqJ^z>2Hpv-xX2Y8lx*DGhUV2q4hnC`EVx-fEqp~YOzDO0wq?>NXDAwo- j8hz&5FqPgXx} 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-39.pyc deleted file mode 100644 index 3cd263414ed8a4568ca8cbe3cdf2b5564bd2c2b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4675 zcmcgwOLH5?5uVu>7E6!>DcYoES!OI-Hk_D9tR#NKvH29Om;zlS6^E##wm{5M1Po%C z*@Y;vmZ?-lSKH^@$Xk@3k)sd(0dviXf5E4GJ-Z7K5anaQn%;Tz%=Y8!o?bS_$32GM zKmSu{-+qO$|I*;{&%$64Eg~YA;2n0z>zuQ7CJbRdWx@=Mf0%U>V@uc=+j?wa?1%!! z1wFQfyUi-a3yxzdT-nF1?w$9W7!3VrbrCK41xUc^T(G(!c-<66-4bTq7FOL6cD*2+ zx+@CxqHyb;DB@&KxnH%qD`6*;7ud@r9d%(4F^P~K7d8=xNCBi)8B?zBcN>R+?<>#u z4@1%GP`~8+f9*9o*^0fqv9$7qvX(a8Sl{K$FO=39tPFDR&;ROXa_-Dje{tzc7y%cj{^B9kbeBQ>mSLm z8AMTa;Ze|iRPD6(sz*=agRpyN;iGEQii7u#8qKd84}++B)H&UWzsV$gSgxp`qQf~HvJs7Ty1)o+16&>j-PY_sZHvF`{M5)wTdIh@RTJY z;~>hZZEoFP+EC8&*1h%5chpq+^p|1I^{veZwbg-*(%vlXB>|?;BGMogUe7%zGHJO; zjNgI`L>9(V2E>@c!V{Pj4xYA{7p^Ei<-pI+#F!|dR}gQAaWR3OD{hHNQAV#Q-V{?} z8a+>36EoO3Cf*V+iI*``61T;ym_u(|ye+PaSJ9gg?}!`XHS{LMP4PPT%c1~7Ra60Z z+<`xugv9(ueG+>GE&3EBW@kKRZR4D`&4l?@!p`i3wXJi67@iL13V6DB7V-4(91|S0 zBp6;})U+Ea^FLySQVon_8VA>3KUHY?6%9-sJa<&&6@dmcSFx0rA}n-yRYZ4$4<;lTR`ZUQLAuy2dBa@ zZ{d-8N8@MUo%d<>3EEGpM@KZtY59-(eJ5%VUgboJZqx)C zif~RUwka#voW`}5)6617XQL}+{0JM?(IUFSG8gcZ@!a@& zj?N$@2`yR=<5eY7l_QYLk9?>qeDT3@F@L=Hv&kl`ux=vIQAjN_*?oT)iuH3}pkl zDX5~=cw9zDYX-#0vet}h2{S<@acU=a8@|HTXd|=nS+;MSI^b~La4 zF)Fm}S$66GIQ(lv)@kOnkl2Yc$4=euhnP1o9|Jrt42TfNs)LoASTV8k?a+#i6^l{; zW{bF5ti(+U=N6~22k^18v2&KsWhZ=(wGw#kJbhH0wAj<1Hj+I5BcI2mO2MZ|Rt4(3 zqCuO+q9cyCTPH#4vPEL1!c*BRo10s!>iXSQr<2u;o4xp`7q1*NWTS~si7VFnX(>%( z8UV!<02V%v^hEPOd)ko34 zG584-rReyW(4#SAQ%Dh}fD)(sd4`fd!;=LR?X=%@mS>PB(jg#2V zp(dNt1(`jH5cvlvP$`YZG398D0{I2?bTCuZl*TsQBC%-Y#zF%C?lI_I=-oJg4Ogjl_sw= zaT{7!H91JvJFU1A(vTwaHPn)DKU^N^TyHD8ENpG z8u=cU@8Rq;Zf;TU*F>lglvFNBsz>xCo@Uuq8r~y9H=z6@kzFDKOY5HgWWI?78b$P- z;2LhpHC@}Yy)pbbp6j}v=egdz_lhJ=e5$Lo1W``7*AAMo{+EFM$kq&3y+gU5r2ilJ Pl-!_e^O98_E8G7A6EC|C diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansi.py b/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansi.py deleted file mode 100644 index 11ec695..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansi.py +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. -''' -This module generates ANSI character codes to printing colors to terminals. -See: http://en.wikipedia.org/wiki/ANSI_escape_code -''' - -CSI = '\033[' -OSC = '\033]' -BEL = '\a' - - -def code_to_chars(code): - return CSI + str(code) + 'm' - -def set_title(title): - return OSC + '2;' + title + BEL - -def clear_screen(mode=2): - return CSI + str(mode) + 'J' - -def clear_line(mode=2): - return CSI + str(mode) + 'K' - - -class AnsiCodes(object): - def __init__(self): - # the subclasses declare class attributes which are numbers. - # Upon instantiation we define instance attributes, which are the same - # as the class attributes but wrapped with the ANSI escape sequence - for name in dir(self): - if not name.startswith('_'): - value = getattr(self, name) - setattr(self, name, code_to_chars(value)) - - -class AnsiCursor(object): - def UP(self, n=1): - return CSI + str(n) + 'A' - def DOWN(self, n=1): - return CSI + str(n) + 'B' - def FORWARD(self, n=1): - return CSI + str(n) + 'C' - def BACK(self, n=1): - return CSI + str(n) + 'D' - def POS(self, x=1, y=1): - return CSI + str(y) + ';' + str(x) + 'H' - - -class AnsiFore(AnsiCodes): - BLACK = 30 - RED = 31 - GREEN = 32 - YELLOW = 33 - BLUE = 34 - MAGENTA = 35 - CYAN = 36 - WHITE = 37 - RESET = 39 - - # These are fairly well supported, but not part of the standard. - LIGHTBLACK_EX = 90 - LIGHTRED_EX = 91 - LIGHTGREEN_EX = 92 - LIGHTYELLOW_EX = 93 - LIGHTBLUE_EX = 94 - LIGHTMAGENTA_EX = 95 - LIGHTCYAN_EX = 96 - LIGHTWHITE_EX = 97 - - -class AnsiBack(AnsiCodes): - BLACK = 40 - RED = 41 - GREEN = 42 - YELLOW = 43 - BLUE = 44 - MAGENTA = 45 - CYAN = 46 - WHITE = 47 - RESET = 49 - - # These are fairly well supported, but not part of the standard. - LIGHTBLACK_EX = 100 - LIGHTRED_EX = 101 - LIGHTGREEN_EX = 102 - LIGHTYELLOW_EX = 103 - LIGHTBLUE_EX = 104 - LIGHTMAGENTA_EX = 105 - LIGHTCYAN_EX = 106 - LIGHTWHITE_EX = 107 - - -class AnsiStyle(AnsiCodes): - BRIGHT = 1 - DIM = 2 - NORMAL = 22 - RESET_ALL = 0 - -Fore = AnsiFore() -Back = AnsiBack() -Style = AnsiStyle() -Cursor = AnsiCursor() diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansitowin32.py b/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansitowin32.py deleted file mode 100644 index 6039a05..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansitowin32.py +++ /dev/null @@ -1,258 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. -import re -import sys -import os - -from .ansi import AnsiFore, AnsiBack, AnsiStyle, Style, BEL -from .winterm import WinTerm, WinColor, WinStyle -from .win32 import windll, winapi_test - - -winterm = None -if windll is not None: - winterm = WinTerm() - - -class StreamWrapper(object): - ''' - Wraps a stream (such as stdout), acting as a transparent proxy for all - attribute access apart from method 'write()', which is delegated to our - Converter instance. - ''' - def __init__(self, wrapped, converter): - # double-underscore everything to prevent clashes with names of - # attributes on the wrapped stream object. - self.__wrapped = wrapped - self.__convertor = converter - - def __getattr__(self, name): - return getattr(self.__wrapped, name) - - def __enter__(self, *args, **kwargs): - # special method lookup bypasses __getattr__/__getattribute__, see - # https://stackoverflow.com/questions/12632894/why-doesnt-getattr-work-with-exit - # thus, contextlib magic methods are not proxied via __getattr__ - return self.__wrapped.__enter__(*args, **kwargs) - - def __exit__(self, *args, **kwargs): - return self.__wrapped.__exit__(*args, **kwargs) - - def write(self, text): - self.__convertor.write(text) - - def isatty(self): - stream = self.__wrapped - if 'PYCHARM_HOSTED' in os.environ: - if stream is not None and (stream is sys.__stdout__ or stream is sys.__stderr__): - return True - try: - stream_isatty = stream.isatty - except AttributeError: - return False - else: - return stream_isatty() - - @property - def closed(self): - stream = self.__wrapped - try: - return stream.closed - except AttributeError: - return True - - -class AnsiToWin32(object): - ''' - Implements a 'write()' method which, on Windows, will strip ANSI character - sequences from the text, and if outputting to a tty, will convert them into - win32 function calls. - ''' - ANSI_CSI_RE = re.compile('\001?\033\\[((?:\\d|;)*)([a-zA-Z])\002?') # Control Sequence Introducer - ANSI_OSC_RE = re.compile('\001?\033\\]([^\a]*)(\a)\002?') # Operating System Command - - def __init__(self, wrapped, convert=None, strip=None, autoreset=False): - # The wrapped stream (normally sys.stdout or sys.stderr) - self.wrapped = wrapped - - # should we reset colors to defaults after every .write() - self.autoreset = autoreset - - # create the proxy wrapping our output stream - self.stream = StreamWrapper(wrapped, self) - - on_windows = os.name == 'nt' - # We test if the WinAPI works, because even if we are on Windows - # we may be using a terminal that doesn't support the WinAPI - # (e.g. Cygwin Terminal). In this case it's up to the terminal - # to support the ANSI codes. - conversion_supported = on_windows and winapi_test() - - # should we strip ANSI sequences from our output? - if strip is None: - strip = conversion_supported or (not self.stream.closed and not self.stream.isatty()) - self.strip = strip - - # should we should convert ANSI sequences into win32 calls? - if convert is None: - convert = conversion_supported and not self.stream.closed and self.stream.isatty() - self.convert = convert - - # dict of ansi codes to win32 functions and parameters - self.win32_calls = self.get_win32_calls() - - # are we wrapping stderr? - self.on_stderr = self.wrapped is sys.stderr - - def should_wrap(self): - ''' - True if this class is actually needed. If false, then the output - stream will not be affected, nor will win32 calls be issued, so - wrapping stdout is not actually required. This will generally be - False on non-Windows platforms, unless optional functionality like - autoreset has been requested using kwargs to init() - ''' - return self.convert or self.strip or self.autoreset - - def get_win32_calls(self): - if self.convert and winterm: - return { - AnsiStyle.RESET_ALL: (winterm.reset_all, ), - AnsiStyle.BRIGHT: (winterm.style, WinStyle.BRIGHT), - AnsiStyle.DIM: (winterm.style, WinStyle.NORMAL), - AnsiStyle.NORMAL: (winterm.style, WinStyle.NORMAL), - AnsiFore.BLACK: (winterm.fore, WinColor.BLACK), - AnsiFore.RED: (winterm.fore, WinColor.RED), - AnsiFore.GREEN: (winterm.fore, WinColor.GREEN), - AnsiFore.YELLOW: (winterm.fore, WinColor.YELLOW), - AnsiFore.BLUE: (winterm.fore, WinColor.BLUE), - AnsiFore.MAGENTA: (winterm.fore, WinColor.MAGENTA), - AnsiFore.CYAN: (winterm.fore, WinColor.CYAN), - AnsiFore.WHITE: (winterm.fore, WinColor.GREY), - AnsiFore.RESET: (winterm.fore, ), - AnsiFore.LIGHTBLACK_EX: (winterm.fore, WinColor.BLACK, True), - AnsiFore.LIGHTRED_EX: (winterm.fore, WinColor.RED, True), - AnsiFore.LIGHTGREEN_EX: (winterm.fore, WinColor.GREEN, True), - AnsiFore.LIGHTYELLOW_EX: (winterm.fore, WinColor.YELLOW, True), - AnsiFore.LIGHTBLUE_EX: (winterm.fore, WinColor.BLUE, True), - AnsiFore.LIGHTMAGENTA_EX: (winterm.fore, WinColor.MAGENTA, True), - AnsiFore.LIGHTCYAN_EX: (winterm.fore, WinColor.CYAN, True), - AnsiFore.LIGHTWHITE_EX: (winterm.fore, WinColor.GREY, True), - AnsiBack.BLACK: (winterm.back, WinColor.BLACK), - AnsiBack.RED: (winterm.back, WinColor.RED), - AnsiBack.GREEN: (winterm.back, WinColor.GREEN), - AnsiBack.YELLOW: (winterm.back, WinColor.YELLOW), - AnsiBack.BLUE: (winterm.back, WinColor.BLUE), - AnsiBack.MAGENTA: (winterm.back, WinColor.MAGENTA), - AnsiBack.CYAN: (winterm.back, WinColor.CYAN), - AnsiBack.WHITE: (winterm.back, WinColor.GREY), - AnsiBack.RESET: (winterm.back, ), - AnsiBack.LIGHTBLACK_EX: (winterm.back, WinColor.BLACK, True), - AnsiBack.LIGHTRED_EX: (winterm.back, WinColor.RED, True), - AnsiBack.LIGHTGREEN_EX: (winterm.back, WinColor.GREEN, True), - AnsiBack.LIGHTYELLOW_EX: (winterm.back, WinColor.YELLOW, True), - AnsiBack.LIGHTBLUE_EX: (winterm.back, WinColor.BLUE, True), - AnsiBack.LIGHTMAGENTA_EX: (winterm.back, WinColor.MAGENTA, True), - AnsiBack.LIGHTCYAN_EX: (winterm.back, WinColor.CYAN, True), - AnsiBack.LIGHTWHITE_EX: (winterm.back, WinColor.GREY, True), - } - return dict() - - def write(self, text): - if self.strip or self.convert: - self.write_and_convert(text) - else: - self.wrapped.write(text) - self.wrapped.flush() - if self.autoreset: - self.reset_all() - - - def reset_all(self): - if self.convert: - self.call_win32('m', (0,)) - elif not self.strip and not self.stream.closed: - self.wrapped.write(Style.RESET_ALL) - - - def write_and_convert(self, text): - ''' - Write the given text to our wrapped stream, stripping any ANSI - sequences from the text, and optionally converting them into win32 - calls. - ''' - cursor = 0 - text = self.convert_osc(text) - for match in self.ANSI_CSI_RE.finditer(text): - start, end = match.span() - self.write_plain_text(text, cursor, start) - self.convert_ansi(*match.groups()) - cursor = end - self.write_plain_text(text, cursor, len(text)) - - - def write_plain_text(self, text, start, end): - if start < end: - self.wrapped.write(text[start:end]) - self.wrapped.flush() - - - def convert_ansi(self, paramstring, command): - if self.convert: - params = self.extract_params(command, paramstring) - self.call_win32(command, params) - - - def extract_params(self, command, paramstring): - if command in 'Hf': - params = tuple(int(p) if len(p) != 0 else 1 for p in paramstring.split(';')) - while len(params) < 2: - # defaults: - params = params + (1,) - else: - params = tuple(int(p) for p in paramstring.split(';') if len(p) != 0) - if len(params) == 0: - # defaults: - if command in 'JKm': - params = (0,) - elif command in 'ABCD': - params = (1,) - - return params - - - def call_win32(self, command, params): - if command == 'm': - for param in params: - if param in self.win32_calls: - func_args = self.win32_calls[param] - func = func_args[0] - args = func_args[1:] - kwargs = dict(on_stderr=self.on_stderr) - func(*args, **kwargs) - elif command in 'J': - winterm.erase_screen(params[0], on_stderr=self.on_stderr) - elif command in 'K': - winterm.erase_line(params[0], on_stderr=self.on_stderr) - elif command in 'Hf': # cursor position - absolute - winterm.set_cursor_position(params, on_stderr=self.on_stderr) - elif command in 'ABCD': # cursor position - relative - n = params[0] - # A - up, B - down, C - forward, D - back - x, y = {'A': (0, -n), 'B': (0, n), 'C': (n, 0), 'D': (-n, 0)}[command] - winterm.cursor_adjust(x, y, on_stderr=self.on_stderr) - - - def convert_osc(self, text): - for match in self.ANSI_OSC_RE.finditer(text): - start, end = match.span() - text = text[:start] + text[end:] - paramstring, command = match.groups() - if command == BEL: - if paramstring.count(";") == 1: - params = paramstring.split(";") - # 0 - change title and icon (we will only change title) - # 1 - change icon (we don't support this) - # 2 - change title - if params[0] in '02': - winterm.set_title(params[1]) - return text diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/initialise.py b/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/initialise.py deleted file mode 100644 index 430d066..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/initialise.py +++ /dev/null @@ -1,80 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. -import atexit -import contextlib -import sys - -from .ansitowin32 import AnsiToWin32 - - -orig_stdout = None -orig_stderr = None - -wrapped_stdout = None -wrapped_stderr = None - -atexit_done = False - - -def reset_all(): - if AnsiToWin32 is not None: # Issue #74: objects might become None at exit - AnsiToWin32(orig_stdout).reset_all() - - -def init(autoreset=False, convert=None, strip=None, wrap=True): - - if not wrap and any([autoreset, convert, strip]): - raise ValueError('wrap=False conflicts with any other arg=True') - - global wrapped_stdout, wrapped_stderr - global orig_stdout, orig_stderr - - orig_stdout = sys.stdout - orig_stderr = sys.stderr - - if sys.stdout is None: - wrapped_stdout = None - else: - sys.stdout = wrapped_stdout = \ - wrap_stream(orig_stdout, convert, strip, autoreset, wrap) - if sys.stderr is None: - wrapped_stderr = None - else: - sys.stderr = wrapped_stderr = \ - wrap_stream(orig_stderr, convert, strip, autoreset, wrap) - - global atexit_done - if not atexit_done: - atexit.register(reset_all) - atexit_done = True - - -def deinit(): - if orig_stdout is not None: - sys.stdout = orig_stdout - if orig_stderr is not None: - sys.stderr = orig_stderr - - -@contextlib.contextmanager -def colorama_text(*args, **kwargs): - init(*args, **kwargs) - try: - yield - finally: - deinit() - - -def reinit(): - if wrapped_stdout is not None: - sys.stdout = wrapped_stdout - if wrapped_stderr is not None: - sys.stderr = wrapped_stderr - - -def wrap_stream(stream, convert, strip, autoreset, wrap): - if wrap: - wrapper = AnsiToWin32(stream, - convert=convert, strip=strip, autoreset=autoreset) - if wrapper.should_wrap(): - stream = wrapper.stream - return stream diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/win32.py b/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/win32.py deleted file mode 100644 index c2d8360..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/win32.py +++ /dev/null @@ -1,152 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. - -# from winbase.h -STDOUT = -11 -STDERR = -12 - -try: - import ctypes - from ctypes import LibraryLoader - windll = LibraryLoader(ctypes.WinDLL) - from ctypes import wintypes -except (AttributeError, ImportError): - windll = None - SetConsoleTextAttribute = lambda *_: None - winapi_test = lambda *_: None -else: - from ctypes import byref, Structure, c_char, POINTER - - COORD = wintypes._COORD - - class CONSOLE_SCREEN_BUFFER_INFO(Structure): - """struct in wincon.h.""" - _fields_ = [ - ("dwSize", COORD), - ("dwCursorPosition", COORD), - ("wAttributes", wintypes.WORD), - ("srWindow", wintypes.SMALL_RECT), - ("dwMaximumWindowSize", COORD), - ] - def __str__(self): - return '(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)' % ( - self.dwSize.Y, self.dwSize.X - , self.dwCursorPosition.Y, self.dwCursorPosition.X - , self.wAttributes - , self.srWindow.Top, self.srWindow.Left, self.srWindow.Bottom, self.srWindow.Right - , self.dwMaximumWindowSize.Y, self.dwMaximumWindowSize.X - ) - - _GetStdHandle = windll.kernel32.GetStdHandle - _GetStdHandle.argtypes = [ - wintypes.DWORD, - ] - _GetStdHandle.restype = wintypes.HANDLE - - _GetConsoleScreenBufferInfo = windll.kernel32.GetConsoleScreenBufferInfo - _GetConsoleScreenBufferInfo.argtypes = [ - wintypes.HANDLE, - POINTER(CONSOLE_SCREEN_BUFFER_INFO), - ] - _GetConsoleScreenBufferInfo.restype = wintypes.BOOL - - _SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute - _SetConsoleTextAttribute.argtypes = [ - wintypes.HANDLE, - wintypes.WORD, - ] - _SetConsoleTextAttribute.restype = wintypes.BOOL - - _SetConsoleCursorPosition = windll.kernel32.SetConsoleCursorPosition - _SetConsoleCursorPosition.argtypes = [ - wintypes.HANDLE, - COORD, - ] - _SetConsoleCursorPosition.restype = wintypes.BOOL - - _FillConsoleOutputCharacterA = windll.kernel32.FillConsoleOutputCharacterA - _FillConsoleOutputCharacterA.argtypes = [ - wintypes.HANDLE, - c_char, - wintypes.DWORD, - COORD, - POINTER(wintypes.DWORD), - ] - _FillConsoleOutputCharacterA.restype = wintypes.BOOL - - _FillConsoleOutputAttribute = windll.kernel32.FillConsoleOutputAttribute - _FillConsoleOutputAttribute.argtypes = [ - wintypes.HANDLE, - wintypes.WORD, - wintypes.DWORD, - COORD, - POINTER(wintypes.DWORD), - ] - _FillConsoleOutputAttribute.restype = wintypes.BOOL - - _SetConsoleTitleW = windll.kernel32.SetConsoleTitleW - _SetConsoleTitleW.argtypes = [ - wintypes.LPCWSTR - ] - _SetConsoleTitleW.restype = wintypes.BOOL - - def _winapi_test(handle): - csbi = CONSOLE_SCREEN_BUFFER_INFO() - success = _GetConsoleScreenBufferInfo( - handle, byref(csbi)) - return bool(success) - - def winapi_test(): - return any(_winapi_test(h) for h in - (_GetStdHandle(STDOUT), _GetStdHandle(STDERR))) - - def GetConsoleScreenBufferInfo(stream_id=STDOUT): - handle = _GetStdHandle(stream_id) - csbi = CONSOLE_SCREEN_BUFFER_INFO() - success = _GetConsoleScreenBufferInfo( - handle, byref(csbi)) - return csbi - - def SetConsoleTextAttribute(stream_id, attrs): - handle = _GetStdHandle(stream_id) - return _SetConsoleTextAttribute(handle, attrs) - - def SetConsoleCursorPosition(stream_id, position, adjust=True): - position = COORD(*position) - # If the position is out of range, do nothing. - if position.Y <= 0 or position.X <= 0: - return - # Adjust for Windows' SetConsoleCursorPosition: - # 1. being 0-based, while ANSI is 1-based. - # 2. expecting (x,y), while ANSI uses (y,x). - adjusted_position = COORD(position.Y - 1, position.X - 1) - if adjust: - # Adjust for viewport's scroll position - sr = GetConsoleScreenBufferInfo(STDOUT).srWindow - adjusted_position.Y += sr.Top - adjusted_position.X += sr.Left - # Resume normal processing - handle = _GetStdHandle(stream_id) - return _SetConsoleCursorPosition(handle, adjusted_position) - - def FillConsoleOutputCharacter(stream_id, char, length, start): - handle = _GetStdHandle(stream_id) - char = c_char(char.encode()) - length = wintypes.DWORD(length) - num_written = wintypes.DWORD(0) - # Note that this is hard-coded for ANSI (vs wide) bytes. - success = _FillConsoleOutputCharacterA( - handle, char, length, start, byref(num_written)) - return num_written.value - - def FillConsoleOutputAttribute(stream_id, attr, length, start): - ''' FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )''' - handle = _GetStdHandle(stream_id) - attribute = wintypes.WORD(attr) - length = wintypes.DWORD(length) - num_written = wintypes.DWORD(0) - # Note that this is hard-coded for ANSI (vs wide) bytes. - return _FillConsoleOutputAttribute( - handle, attribute, length, start, byref(num_written)) - - def SetConsoleTitle(title): - return _SetConsoleTitleW(title) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/winterm.py b/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/winterm.py deleted file mode 100644 index 0fdb4ec..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/winterm.py +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. -from . import win32 - - -# from wincon.h -class WinColor(object): - BLACK = 0 - BLUE = 1 - GREEN = 2 - CYAN = 3 - RED = 4 - MAGENTA = 5 - YELLOW = 6 - GREY = 7 - -# from wincon.h -class WinStyle(object): - NORMAL = 0x00 # dim text, dim background - BRIGHT = 0x08 # bright text, dim background - BRIGHT_BACKGROUND = 0x80 # dim text, bright background - -class WinTerm(object): - - def __init__(self): - self._default = win32.GetConsoleScreenBufferInfo(win32.STDOUT).wAttributes - self.set_attrs(self._default) - self._default_fore = self._fore - self._default_back = self._back - self._default_style = self._style - # In order to emulate LIGHT_EX in windows, we borrow the BRIGHT style. - # So that LIGHT_EX colors and BRIGHT style do not clobber each other, - # we track them separately, since LIGHT_EX is overwritten by Fore/Back - # and BRIGHT is overwritten by Style codes. - self._light = 0 - - def get_attrs(self): - return self._fore + self._back * 16 + (self._style | self._light) - - def set_attrs(self, value): - self._fore = value & 7 - self._back = (value >> 4) & 7 - self._style = value & (WinStyle.BRIGHT | WinStyle.BRIGHT_BACKGROUND) - - def reset_all(self, on_stderr=None): - self.set_attrs(self._default) - self.set_console(attrs=self._default) - self._light = 0 - - def fore(self, fore=None, light=False, on_stderr=False): - if fore is None: - fore = self._default_fore - self._fore = fore - # Emulate LIGHT_EX with BRIGHT Style - if light: - self._light |= WinStyle.BRIGHT - else: - self._light &= ~WinStyle.BRIGHT - self.set_console(on_stderr=on_stderr) - - def back(self, back=None, light=False, on_stderr=False): - if back is None: - back = self._default_back - self._back = back - # Emulate LIGHT_EX with BRIGHT_BACKGROUND Style - if light: - self._light |= WinStyle.BRIGHT_BACKGROUND - else: - self._light &= ~WinStyle.BRIGHT_BACKGROUND - self.set_console(on_stderr=on_stderr) - - def style(self, style=None, on_stderr=False): - if style is None: - style = self._default_style - self._style = style - self.set_console(on_stderr=on_stderr) - - def set_console(self, attrs=None, on_stderr=False): - if attrs is None: - attrs = self.get_attrs() - handle = win32.STDOUT - if on_stderr: - handle = win32.STDERR - win32.SetConsoleTextAttribute(handle, attrs) - - def get_position(self, handle): - position = win32.GetConsoleScreenBufferInfo(handle).dwCursorPosition - # Because Windows coordinates are 0-based, - # and win32.SetConsoleCursorPosition expects 1-based. - position.X += 1 - position.Y += 1 - return position - - def set_cursor_position(self, position=None, on_stderr=False): - if position is None: - # I'm not currently tracking the position, so there is no default. - # position = self.get_position() - return - handle = win32.STDOUT - if on_stderr: - handle = win32.STDERR - win32.SetConsoleCursorPosition(handle, position) - - def cursor_adjust(self, x, y, on_stderr=False): - handle = win32.STDOUT - if on_stderr: - handle = win32.STDERR - position = self.get_position(handle) - adjusted_position = (position.Y + y, position.X + x) - win32.SetConsoleCursorPosition(handle, adjusted_position, adjust=False) - - def erase_screen(self, mode=0, on_stderr=False): - # 0 should clear from the cursor to the end of the screen. - # 1 should clear from the cursor to the beginning of the screen. - # 2 should clear the entire screen, and move cursor to (1,1) - handle = win32.STDOUT - if on_stderr: - handle = win32.STDERR - csbi = win32.GetConsoleScreenBufferInfo(handle) - # get the number of character cells in the current buffer - cells_in_screen = csbi.dwSize.X * csbi.dwSize.Y - # get number of character cells before current cursor position - cells_before_cursor = csbi.dwSize.X * csbi.dwCursorPosition.Y + csbi.dwCursorPosition.X - if mode == 0: - from_coord = csbi.dwCursorPosition - cells_to_erase = cells_in_screen - cells_before_cursor - elif mode == 1: - from_coord = win32.COORD(0, 0) - cells_to_erase = cells_before_cursor - elif mode == 2: - from_coord = win32.COORD(0, 0) - cells_to_erase = cells_in_screen - else: - # invalid mode - return - # fill the entire screen with blanks - win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) - # now set the buffer's attributes accordingly - win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) - if mode == 2: - # put the cursor where needed - win32.SetConsoleCursorPosition(handle, (1, 1)) - - def erase_line(self, mode=0, on_stderr=False): - # 0 should clear from the cursor to the end of the line. - # 1 should clear from the cursor to the beginning of the line. - # 2 should clear the entire line. - handle = win32.STDOUT - if on_stderr: - handle = win32.STDERR - csbi = win32.GetConsoleScreenBufferInfo(handle) - if mode == 0: - from_coord = csbi.dwCursorPosition - cells_to_erase = csbi.dwSize.X - csbi.dwCursorPosition.X - elif mode == 1: - from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) - cells_to_erase = csbi.dwCursorPosition.X - elif mode == 2: - from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) - cells_to_erase = csbi.dwSize.X - else: - # invalid mode - return - # fill the entire screen with blanks - win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) - # now set the buffer's attributes accordingly - win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) - - def set_title(self, title): - win32.SetConsoleTitle(title) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__init__.py deleted file mode 100644 index 1154948..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2019 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -import logging - -__version__ = '0.3.3' - -class DistlibException(Exception): - pass - -try: - from logging import NullHandler -except ImportError: # pragma: no cover - class NullHandler(logging.Handler): - def handle(self, record): pass - def emit(self, record): pass - def createLock(self): self.lock = None - -logger = logging.getLogger(__name__) -logger.addHandler(NullHandler()) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index aae963c699a64e5552f0eebf4f82046e26a9c780..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1067 zcmah|&2G~`5T14Xm!ySI5aI!P@qxHfPe=$=f(nqT2&o5zFDutOP24)R*>y@=acf_K zTYKzl@ECjL#F-l>X6*h%1&OtGG?V#uzS(al>FVkLXnp%09c()QKR8%kAq88sO+iM1 z5(OlnoJ70@)l=>{C>NcxUeY@qQPwM9?k28)k5I0=fZoXm0sIl#R{@~|gae=O?k6an z4M4aEFuW8=ANv;rbkE>Y2x8fVDEvu`Fgf)$#+&2KjDzJRDA=NHR>&YELP6rR2OT?l zlbfc<_qLBSted zzN80;P28Yq;u7~8X;2@bmd$Y~Yh7h%Oguiq@+cl&W;Bx&~t@^D=Lw9M>nB2@r+kV%6|k(DpEToxH;a9i^EGYbl2Nb=S7OrYaOGInV6ks~jajADokBVw zsP$)UYis2Hq7A2OOZ|?!bRxH!+7$DDY;6r*JdPG#Kw&0?Rg)Lw_H zDfkMqy;Ms>nz}`m9Y#X4-1oT#nZ~ri9YQ?ebj$d3neh%ViG1B-5UZv=HmhtNvU$Yj zcAh$qC2JpmlZKO_;II8H8rq$n8+HU^{$2uPfbbYh7s@ zTn~utPqEpd8mQaGtj`5e+d-<-HRfME+3;oemw3e;nh`hVxX!5Oh>=(k&%A;71L-^C AEdT%j diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-39.pyc deleted file mode 100644 index 1241f707f2fe4324396cbe525feaa2fe4b5e26ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31832 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 Z&ZRehG<8EmJDx5~Ox#l}PHdSN`#%%Sp?&}W diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-39.pyc deleted file mode 100644 index 6670bd9c8662b4feef0d2bb392d038f1cdeb7551..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42491 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-39.pyc deleted file mode 100644 index 0008b1e832e22c66041e6371e8cc19bfc44f6070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17300 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 Tf<(Z1bBKX@7KjCglWqMs(e`5h diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-39.pyc deleted file mode 100644 index 5b0c7cba5863cdb64c243307eebc79d1de4d3fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38264 zcmch=3veaZc^=q(-?+E{E-)Aj=D}eT9C82>gBcDfih_pZa9-pv6gVD2CUrIBoeOjW zxS0C@PB&%-oeNp3QS3w^WlH5doM^W&DrHxcy|%1%B^$3xv9n&sYu7r?#_J@#i8qeD zcC_W%*xuUOT9#$*_x-24Z(lrUx;7P{`rOl}PoF-0&VT;*f4Vj>P&DxOQSmTQ?xMt-xEto-IGIr+_3@_tEj zg-YRdqje->IDMN7ron$HFIEblFQ}{qtqOz44_8Z&Nc>{LzSUsxl(Qp zSB9G-m67Iw%7Nx+Wwd#)a)}jy8`~jx`^sJRtYy8poRt zRvv6x6|4DBL>1}DzkDnfbvh;gOzjkv^`{(zi3vTebKOo?U64U_K0)%Ub^xe&JWn5I3IPM z$N71jAGF7CKIWXq`3pEdWRK%~T+T1x{IGol=SQUeMVueCkKz27T)%|#2khfGKQ8B& zasHrf;oOq*D>#41p1}EpoWF?khwT$MKOyHYIWIX^?itP{`w{z5`{X+*d(xhICtbPf zTwQ&+@-k{aWi0|(;JkdP?s|>-!sWY* z&YD+mx26Vz{Dx|*w(G5+fXrG=xlT|-Zlk61CFIYp)x4Eft?2}%D0ddcL3Vw^*>L#N z_8i>ba@@t*8fqwW6&!eJe*W5Z$F3`9(R-=ZvKuJu^PIb0)!Rhv{B;NI zxL(l5ikFpYtDx}d>#s;|Djk&AX;oj?V2AZ9L}%B~ub{74yX91ERGLZ!g-b7pK5DYEW7FQg*x~9-So#I=zLWg9+rWrD)bt!)O1>2Fs6%mLlrMrz3nKMo$Y_kQOI9Y?Yo=7V5_Z~=!x%C zSrMHrvTYZ=!N?x^GfWl|De8I_c#?~Ute*YMleu!tBdU>W}v>%aQuuC`^M`=$Fwu|%zHpMuO;$8I0V$J|2K*j{;oUThH6>0M#JJX zMzd>im|W{tt9_?sEo@q~mQ`=r&fOWgX%=H%Yg&NAS!;g9u>dhvd&%;UP1aJ<_N?`S z)j-p%!N=$}cRx%wJ@*HAH~baOzlSyC)tgRx!wa&DjkfCmAO|j8zVgDSUzx97ox61T z4Rstfg8{Z)U8^nLsx3P%<~Gd*l3Q%l0Uz%fY8sW^Z=YUiH=WZ9b$8`XZPjtS(^#F} z>6WtuFc3(odUsodwnfKvPtV+TTDMPQxnd@~m3HgNnNOT{>z;Eedd%sy`r2s#Tgz^% z(|j4$ZL~47ZRO6aZ3agOV0d3y9nr7~^tn^$kXuG#m^#bF7+KfkjjbnV&d%Jml+$o(uH)+2SSVXkN+)+8)VGB;*ycII%Wda70PIexlkTAI{T$vr zGe<-u^FSm3NT>%!FsPihMs3llt~fQ@QBwuQ_Xu)&{i`fbN}R8y4NMrJC%;m2Yo4dn zle~7|0)}A6hz5gPv{i>Vv-;$jvr~OR#&sG?K^oX8NG+`enZ>s41nH)`jOOIQZjfs^ zci4XVma`dQea{sT)yXM5Pd$U=JPy}FVx%)>LH=_{nJ=1yJW>VxrathG@95b~Z^!1Q z3PGVNkXNk+#cH+Lwl^9M@}+8ZeWTV8)L9Mk)vDcItXAdeJKpYz9p_K(IRAL!4Y=Ht zyvAwdK90lXXrt?e!l+`|E(lMf@H`Ip?<47jaPU`Y@Kzb{RoP13$=JC=Mx|g+*#)}~ zJVc*ewEM9Jigw8!z;C}jXb<7HWS8w>{0`V7_5u73Iz!HYGk7mmDchs=L6i*JWA-8Z zj@aY&Vf-GjkJv}?J8B=ZAHeTH`?&oee#dOfeh9yZ>__l>7}WoyJ&8UX zv9o}@$AkPUdinb=hHGsBP!le=rM9vn>|mV&rmVM?u?$ygo-THJuy459rgDCM#;d8B zW#2DIX2Cz}XP86k*VmZGHKYsvR2sj|@-oxA&ik2}J1dPT6K8Ao68I7IGKMzD+s;yL zqv0*4a2EYB&*LHvm$O#~aj9};8CBCudFgw`J?1ku(=68=)~Hb}2q8(;-U6MHHzqx~ z+NyhXP+GjX&S{Izf+6L;zW7BB2Z&@6zW*Z~}YzuI>71DHf znj~g3eiqwH{Iwj%CT1gn5n2@9X6c9V5*{@JidAFV!7)zt%|17B`gQ^RHdL zb_!i-H^Fh(cu3gbDYj?bym_+WEY}t{Pu{$_Ut{$pYqPy!MLi6;4a>O;!U0I=oqVg^ z0uH`*wL55YKrXqeFi+|!OpqF2!le}CLQXH=ta;#Ol%jMKWPd=o!<=9zkVN$f-XOQi z@{HFgF+&|wR;@0fhAW~`A!p{&rA*HB%OOP1M3s7260X`9|Ig!O+1LVvtQy5x%L`On0o8Zj%a zO-sL-b!Vl%xMHo;ZaY?cQKrl84%?NfoVtd71zD%L25vJA6d&ZkfngSd>}4tI^J?xb zAifs33mK&#ryLhcBru%>QX@XoJfnW_CeGavBt|9!T$}|Y&7iGkD#6_xFG9~M%_+U*uUe0(s4c6=sF1cdnSmldIja=*YFTkL4M~T_Uq;a zn7T-aYXLlebFCr57*Hdb$c+WzGRZW?w_IJa7Qqdp#*%6`(W?fDr87AN94{j1 zv_4d$co_F>h99!wAIE%b%%7Q?!~RmVV!sJ z!~51XVQ#xG!0xlr=oRJwSO@0X-qr3KUM9mA&3J~q(@qF42{46|@Z<4}7rQGgSz#B9 z_n?N}DS!Xvco-s7h*4sPcZ*Y@oP{9)v*AVrw)^tRM$hJygLKa&GsYE@Y*x!Ie=mNY zjDI{@vU^wU0p>LB<8hJq6Gw3MiUd0b^k;U2NVLv!d94}{9H#l(F(EpnTE|cW60J!@ z8P){TFW1i*9WI8H|6B3M{HI?D1Z>wzPAVbM2GoYLLs@GYc-*#DH^9}z>&3-7Afn@v zY}7U#MbhuJ*SfPb2dc!;QY%b8izFmdYMBMEGntMPp;G;vjS%{N0++O;nI~z&0imIY z|1P>s)b5$EJZ>eHl?i(b8OUqEK3gdd>V-~fH4Unsw#}_fC%v7qLD{#m%wbxx$U{a` z7rdO8@1)5)t`;ECWpG!YoxYW_nJeCgoCiq`_b*X$%laGf6ut;FM)nbs5=O{fY%3?E z^ouA3Rsi26tlr{E8+rjCJZA}n7G=;xbU8Yrh#fdFl4rXkJg+(9tf*l8LZpG2>en)2 z-&)(P-=*p;D3G7$f)6tK9BhPpr;aO!Y^X^ZZ79EhQmfGQK&=Ig>#Bz_ZfXKaP`pD$ zQq`+1yTXSBkOV#8z^S~Z(vPu{>8X}f?&_L?0#r|OZ)FI%hsUas9xO@vbV|e*ak$r!bW&UCj;ZFzrpP+QBqOJ%9D?_) zjGF8K7$AnHZl%?E0tiF}2iuz0H7o|I zMTmVKQJ|3+=SP%3dVP;lV4XVvg&-%~rV6sQ1C<3h$m*97p|r9P)}5m;xJo-xm$w-1JsPf0)Iij=#s z^fLENb2RYX0ekOJ>44} zXeXiT`>x%;Rc@7l9EMg)oT9CAr;IiVaz3;=fZsuH2$Ue#8SE4~eRgRHdO>?&yR3CN zxITOd8i@O*UH)2jD+BrQY{u|L-ZeMRna0+zY53!K@&S8TKlydzGq9g+4S#O9Rn)&{ zj59{-m)L*wbd+!4-jKeIgnj*{cW`?Qc{79e+!|pmXfeOKbwKVpAn&}!vG5Lc4%{>Q zjc`Pa?Q!TOQ}ACWukI5aG-QDTB&!i3P{E%N3__|UH8in|R>UN6CvJ>a67-=KOhzzWG#Z;A!N4x= zqJqUKV(44eOY@(4#ae?7K8Y{E_hZ@BfxdbK5%fn}2XMb29_T||Yl4esV%nMr*WE-H zB~L^vZ9>r71W?GtC%a7kv_;mQuNgJlU9&xG4Y}(yj@NJqXN08$;L;1~7Vw9Nby(&P zqQX?Fl4X~k&_BEIS;@u4h}ZfLY>~|yrav1k@Wplu@8S{TRlRmhzM*qjYR{Yl{jW9L z=Vp@4%=sB;@t*aqN8H&MC4oc4AhtjlYRj~G%>q$RrRL_o_W}OiH%|)>%?-KxP?Z@#c{&7#Ox`Q!ObhFE&2iCZ@8&_y+k9LevkT zIYs8_{XuQ1ITc>k-DRx|D_jRd+GA^ zDu05kJT=HI!yL2bsx{W)d}#hrF(>SP_qpWG)ej>HvTK{@VbB-bm4p19nreZlt94dt zG7+va4YR7IUgKS!Q+=M-|1%~cOgzP$%cPAY$cd%T6?3!N3^D}3z-$JYT4T8#6@gY5AL zjvUU4=13}q``H3&|7i~DP|8ef)j#o3;I;?fkeklnxQN505C@SdWrG`rjQccJ7)dKg zI>^m2pnV8KC?Dr+!hv+AnVZJi-py+P7)kK z@IRU0mbI3GwCC(8Zv#BGHOZROXjfJW3Dgozkkgja0OKqA8SA1}yEnR;e)i6Va17GJ zh5Xt}FP#0@(_#&1S)aP}u`aHkgNZ|$rX4uvuGCNuCOG?Jin>ODwU}uo4%R^bbzb`# zlk-t64VGG<7Rg>W`vg#!dkmF~LS&UApaBR0B>ZQ-D_ke;>|yR`I*nzlpTbEewGGIi zNG&}yfKAA)=5#saw6Ea~7*$bHxS#6esyWol9X7xuWxT$7#{JZG5m%tFhmkc~?I*N# zGUp6C4=Pab|2T$+Pp?rX!xU@1c>-iC;Ubpmty&|xD3VQ5Q!=H=e^-V{fF-B87FlW* zBVtHFh)Vx1H?q=h*e=K;K~Y4pxNpnQ@3mqUrOW%HVRA+C060Hrp-fK6_ar6DE@*Y} z7BuUECP{V_VMjzCcW$Z_q}SSOL7^Es!l;9+A$9*t=KgcmExM2rVT%S!pgyMy951xX z1!?FzgLKWdgFKl7I1^0uX=E+f`R}on7=H#C_B2Q}ZE0D^;7)WpTHTQOiTq-!^rLx+ zP)y$mBS&SBKyIoG$c26Y5KK$PIN|tMgzolg)D1w1tmea9bq2Oz3sS4Zsv zd~V>vzg&hq>nDcqq*3EG`hO6=C-~b*R}VtG7_b+#unZX*Gjy$HPA_~jthktgore7+dv!FI|H3Ttm;x{@Ep$9uOpYP9u^ZVs0Y^Q zKBY4K9H0?!;#6(F)U(LnEs15MI9D- z^W754tS;if&5G${_U5I8E#@Y0n>ND0tfBBuB$GE$x`g&%t5{r#han!do|#>YEH#2t zdW?nsQL@4{OZ@bb(*}N5`DG0aip;My2?kjG6|C>~QtF%d5!B}&77M55n?;l4Mw%p* zMkPp6=kenYx#C_Yo?vWEeSs~+%}gCpq^gRnlCqcx)|^8w=uZGsf`iV`gHc^z-CIlq zE&eU!Dg)unR%I;JSJ?sBlQ`WzTy4 z2;2N~&mc*oEFdUd1?XnBZbfVIR*BH9&KRMl3q zPU9t3vN#?IJFSa^GlJ5f1#}*Drmop3N--6t`45i66 zcsPRR!yTky@U?N2_Ikwo!N9$-2(GGovpRuSQjZ{+o62EfXtRIB3I zdk=0gU_t9BgdUm*O1h<{nA^kULRQaDuoEfNFf#rlJ38LL-{B`@m-PL3<3g3s(ogE)I5}t?m@6 z&`%>RgJDZifazq>!`Y}Vn8mOrn6;D*W^H>I0?>#EKnFB?*x{8D+AW?l*1x-cOvLMf zIrZOQFy_^Ng*3sF=i%NB^B;WjAtl4`Yr8?--Doy}A{8f9gj86HEk0QvOgs&EzMU29DT#1Vgym`abD82hNT-C0rT;P9~ zT`VAju4GF6g`6z=|LB;0i0||AYp>2lsQ!*1y4|Rr^-j7LtAgS49JK_OWg>VKf`fpL zrrv}Ly7<^EZM3vg53PXG9<5fOoD0xqZVH&-N0}GM z@m#-Tn+RIi8iILo67z9%`6NP-N#f`g1g)B%+A@LWb9LWW%kV3erY?q7_62*vn^Y@EbGlM?o> zOGSb#5L46D64f>KAicKXDJq3TVhj2p5rkoH<(;&KbcB6%*VI4b4gZMA&oB{MBO@Y% z_BJbKspoSm>2?!7yloM4#mFECr;Bw~SeL7tk{)T$sE9t|10{5altXIkTHp5E+7Ey+9xyPrTFRnnG+0hgP?;TB{ zq_-&)B%3NuqOm>u^wh3CeQal+o=)@$9r7PKN9QjznCRMPPfon~{3Kpx;yDBW_Gm*% z>e4ubc0GlR2u8pPqT!^FB-&4Lmor4`pH^q!K9{8p09PSFVn)*bEtv}lWBbHaXjKcv zoKLsvT;*baj|4f)SE%!&vKzI!29-s+MUh%21R-`9GLT+`Le6DnW~+R4s7T<^y|@x& z#YhQD=qFHJ*A+(a@A7oVA|&aj>xxSnX=JI37{tQz2MA~})%TBn_O03}A90i?9({cJ z^z0{}eg6E+!;e&N+~}Nov&UeaXDc{lSig%*=o16;{XIB}0!`C55d`)=qtL!YX#`#{ zA*rRDvGxX3(U3Ca7i3g^;q4;7h47b>1pE?7=GNeGL76~)Apt-&O<4xAibSYEQUQ6& zp`@_gXAjteUj#XYyaOW(l-2NVT!KLc2E1b)C5RzjXIv7DHt?Xt1dsUtE}md*Die_v zvjt-pTsK1Z(MG)`)-S83r`KzPHG#~pXMZodM{NO7lWeQ5tO=|EI87j!jd8rrw8+r5 z1OBp!$Pf5_X>$rxiV_#-foMP>*wuhSsGm00Jn)Q34VxKPD1Xk8RRTd zw+K^QO7ADXY*o7Tn}Ae$DP83@1> zOBLHxq<`?I6maCC>)Nr^-{$F$Gx>q!w`55CV|Bl5}TKRn5Uq(`)m)w&*qX9A?@GPS-f)ksLD3GS!=7)#r3x1J)&y6 zdW75b{BSH7W_+0aNX=>Sl|zRod-&NgjOq_ib|re~JbdKOqaesDhx$(kLM8>yAX_C4 z4d6NlZzMpW;ELlzNPOA(w+Hm9l5q;O#TCtZqFolie=9AWGSo0YQ|qAp?RaWg~{l0lDiawt9%e zC`IQv1^{|6IQW{VAz!247*Iqc5C5*_vgJ+13G^62my~+eTMLN*Xb4_~!*LrlK znxct#tu|V&)kH8?ovsHS;10Ym6@&222ez`Vo__U{v_a7{#V|#2lS4!%BA$r?t>t#x zmd+uMcyGwz*L0LQjcJJc2)j!6e%hajlxi?`x0l-+=oz*&fa7i`dvmErf6S+G5Qf}Q zBpwJC?V+$Pn(s&mv@EzOL^aXvt-Y{1l?gJ-a77LZFCx8yLIo%>)W1Li-J`jXfF=PX zuElv&(Fox9o+A&OrZL4X6u=%z?+98QEPoyBByjrwqG+$DeL8v?e8d=M+JNCg{XeK2 zWLh9DbKfHquo%HA@`Cz!PQ2}|A=#mW$Y`Z=oPeo|KJ@l+v@cOok_nGSt zOG;t`h0PRYa4g*}%hlmHHzL;$gh5o_z^leIct6cF$r%53DyCH%igw|xy4va81TefS z+{-}km=K;!6KY(@XNV+#JB!#FWrql@zoy{}9y?(;u@wtumCy^_CpuP%Z350cWUrM)awUpr|X^B+bMmvt7}i3 z=`x!iQDxt~;mX|9sMb6E-vE@IdZ$NG7W88eh-D`XlMP9Y3rAH6iB+$%N*|ptMTSNo z{6fvH!rk6;vGK^QIzssox1q3n-Jm})D%dVX@CFc8ki8C^bqf>>Xy_Iq4wu&?GYBtw zk2s`?2;9Y6P>>04EPM!irqTd1^{dQ@9N0zoBnxj4-IFR9#WBz!n&qeqrRA$Z-u0VWe?4;%XkM@>t#oM}`9)&zLm{CqXCyY>sb@IRvgF97RH2CFCTY z(>paxCk=I&z-EXo+;(><&p~)Baz)UNr2aKtKs;H)n94mzbD+vbqoMpfhmzF9KvWwC z5^Ln)eFidlUyntTi=+>SEEMXsx~f}_+mC*U%K=M=vIxX=5Fx~?L!ApZxJaFg64?tu z7EB>pI@^6*LjH_b+{T_>P@>Wu$XG3HgCxl!V}6izutkrtJ;Yp#Rw&6qb!gl)UpH(_ zamKg@%+V@8VYu68P>cVc!6C9^CR8q_p*R5j5q$q|IM8f_ut4p(j+60YtaTzsk?{H>lD5b_tW3W+~AG#;dgSG_G z3c9n2eP%0xJN$Du7AC>0Z``d;)^FI)Jl(nb%+uAUpX$_9lbbJf?$le8PoC{mYfby< zr=~j1+G5+iTYdh9{rJ?4g`TPAf=T0$spb;o1nWpr@L8sRDF)q3Z3w|yv;;yzOd-J+ zQg?{oPldZiEXKa$&&RhyG8>8NRc(iR3}B6@-^Jr1$lhbrg0U(cQzH5i-}iM6B>N3> z?eso_wdajJFV2^y5GOC*LWVD{;(%KIRDY( zgktWvvr57sif`NOfzg}0U^HEO1mF`7Q52CPqPy_gu+G;#`rpR`Du@FkuA`|EerDZ3 z66Gwzi3W3%(0q`OB1gZ64=ONG+=HZw7Dy}7l0*zr>|+Xo1ZE$1COQC16J-b}NA!ba z-z-6Yc$L;k2n>rJcGCf&62A)_zK8md2>??FV{B85jk_XuCXk|k1nU(uZRF4bU|1iI&0-z2=1aj#K? zXApgeprMVe=(CXkkt6m1-A{m2~%Y9kOZE`DN$qgyF-oZv#w@tMwXP2O`OXKXWoIMSY zEih(P{Z%=C6qd0*>cj7+XhowF0Hp``bf(m|q(;UrY!y7pzI|8%4A?5%&jR!dz!b&M zONadJrBH#!z+|nA!;;7#1!GS?9VP&`KMjEcTF*u)P5omg|2-2%`zcisCA2`EeYCI>i=Y|UWHv?Rt1#t7U<&+aT5mqWS4)Qusee`j4T5}G9Tnp zROwLLOjcSSV65Tcj1u_EAy@=qAp5cm$+mkKFKQYI*#gykYrrAs2&}iJ|J(lGL5wu4 zyF{hX=!2^kpXaAu7c!4}*w_pV7>M_3=92N|3T&ZJcT!4S%>rI${R_+iwj--6LgxYX zZwmx#*O|0>o6;_PsBx}+qS0=@z5_nYv#?v1Hn$^2VSN@}%d@a&K85muO<2RW0Leaf zQ&=6`?q}$swq}Y26MopA%ff;wzqDYIIf;6W@Xa_62E}xZ^*>vOVi0R0?f;7yrM)Oo zCZRkWS}M8O2k|9^NlPG1Z%e|m*oK7Y4}@TYp9J3RDxO7CCtx2zbvJ^MRN79Sa&_$1 zLC0MaVN`-3fsmm=hKK%2TYSWzBO>vrp_fz-B{A}W1XmR;2XI%IMnk-9f`afXSa^!Q zg<7j8+!gsrb&&NQWD>6c&FvoIRdGJO#vHArVNi;oY;G@rCXew>SsHJ!Rxb)y*d*5Y zR|NbsxM&m@|3tus%5bRo$0^~8$#KET`2k%*byU=#IhlqFXv#mf4^o#&>tP|Nha}f1 zFyFxgV@w{Y>$5PH0M>y)XFYQ@wN3Xw>^ljZJL_SyFyeiiVZXviujb*Ge-qGzs1z}$ z&~QTN&Jmv9O~FS$4G8aIXapm}oI1itgv|HADnpBn)ggNTb^7G$V0g8U8X^gw9_GfhV1fF*k?jK=L>jxlXFFvkMpw%&Y;%^Nh5Src!*m7=b&^v_CV8$xwVCVCl^7dg+ z9o*%^gMa%-XAt=Ttj*(Cn@17K+|a9**K7nFZw=_}u)JgN^DoiZ1alHc4IUe~>tEuo z2XNOfVNHX7_aE&HuO7EYZ!yZ?+jzSN?SmMjVUCfk?!1IUe;s3qu;?=oEIbST4UdI) z&-LDc=REYIfIj^8Z%;5RnyuLRnAsb70yE{7lI&jMDd!STc^FT*5kBQe?^6*)71&l$ivaUNKQn}m$ju(@%Up(MhI5eYGXX5HbN-*(+P9icQO<_bU6gaofPfis|_ zNw9Tqyzz!L|LUbz5qsu=`gz!|fdqOHjuu!@j0^Hww~W_@knO+QZ+1-mcqP3;W->Zm9l1AcJ5- zd4%4_kBTS>66&HY#Arf0>=*S$tlV?fKdNnuT0GQ4B5x>u_=kyR(pcfb7|cQ01YMYH z5(V0CaLoY1SljD@rg1s3{VuKP2I&edSRp>diOY1~`lHec^y+v&aefg8 zm=ikKHq~}@#A>$gV!LBSu}2HOhnW*ew~L04@}&XRhAQ*wrilQ0Mezoc(2_XBGDFSs?%!s@2?$EiC)1Hz z_IR%JNdTU>F#j`NEyObiEj@h(lr|&oMP)3s{ywP;-HMIAQCP_sAW`hPSs>3#&%#sW&BvaD z)5STsT%7CS&Zy8KhbENj6=cLI01}3lGJsRTles56Y+3}&meNsZ$U)o%PX>2maAl)# z889K_rs04L?Wd^GuqPGy9PMvd{&Y*kRV)fFZN#x~=|DcCzFBd&G!x9uV1HG*CvgJ- z7%$cT!5W+aB~$!+$VG}3(WyMdn+aVzN&PCyK90w@gUA@zmyym%gBWs{Cil?|aNv>= zKvi}EA+dAn`)Fe7(4IETjE_BxgCc>VNsk{_O|nbWQEMd;bwPR~sy|}cA2azACI@&y zgwrn1Lk2|;$P9CQ3H8sJbQu{@hKsd|I{lXkXIy_Ydorjc_x)UM@MvKG|05FRokmE; zXyJjvLxoQkQ;PR2;^_I~Z1B&021(Ks`e9)ivX?9ZGsILWf*!Xz=a%Up7_Vpy>uXJq z@R8arN>DG3HMN8a9Ou1veI= zj$@-&+7$L{&I+3YiGt^K8w7sIx&liOyk*3&L6VDo*-kaU4{)ROaC-M|4!naNA;<2% zX3!URdfw-@f)*{;VOt<(Y7V=Oy$6s`XSrnl33E>{Crj`Ib8VCb`PzcZc~aD_NyuCn zrh>*I-4847YjS!C@aL9L!zd2IAzKu)rhoWS)Rz$EV-Kw!-!{T7kBc~@5nxR6iolkD zI@AB1cvN1~DvZRQO9)CL0DxoQW^JMuL%5RO)k}DrUQ>SDQW&BAy!8U23&m6cV<+Y$ z+7w2%0_ct|o+xtI@WQ+3+Rg9qlxrXgevd5=L566Ff$w0qvYdVw zd#$(jRdouvs&T-NqfJ^R#)MDdz9BgN3>zH_F_mD*2X;+HQeWJ|Y>>T-r{c>v(aZ+7 zy2GGAaf5-sjcL$I9x8lpFbWC|pI|mH4HiUYDtl6J`A2+|mnZV~3R2p~FaQe8{FiCq z1j3&Xo{T9>NnTl4a&V%jN29PP7M@vhL7vyYv_2y2N>{k(WB@}45P$-lI^Dd&O=a0+wJPy}FlH@PAj1c0P2>Apu z%m@96z@Hi>NYi8CB0|xP)`D<5a%__!akboHJlaA+zOz9s41oXt;_9!fn=Q=%`MW{FE4W|?M}e>0PkWu$89jzC+NY-z4TBD-(tBBiYl^r*t(_v9hgF}g#@;{ zz;#9!<`653J>970LJ7iV)Vl~Wk=zpS1R^9ec=8apgh1WAoR#G)Tjh5)P-nGI0(6EE za#Q4)*DnD&CH(}!6%*R?SX+-}-C_$VhSEc4Pq?V`$%az$4IPBVbE}eWbfZKSB7l`2 z)8MWvP>xXT62>=zF8&5*NQ70v0}>th4U`3lW{kht13}rj%g^n&5?u(abdQISt*Ofa;>B@+F&S@UO@?7&P!5?>+Uu+Q3Z z&3&ZC%~XbTA_Wa<=KDEdtRkdcO0x7hun@y^%B*HNKjI@2a*#Z z=p5eZi|huaSRf+oJf&E+h|``w)R8}T5V6<205?S2S-h~k46`k@Ig#7v z&2aV0Vhvx2FBXeMGdS7d5Ew?8(;?8yV8_W5FB@Ob{uv0Iz$>QwuJvF)c_-!sLy3hi zsD+-rH{alRbvNMHOZ4Gv3$K2WKuKObDAo~nsTF#P4xZ2vg^!8&#mlVwtGKk6OW03G zP+;W70BrvFj*06s=E>3H$i?{U8cu*`LN^C7NAb%$R*ciqt!bz|Xr{ukN`VuGsbyd} zDAJiniEZffI@n3sQYQ2{No?DZReX^^zSNZj6}>iPS#k+SiVj(pvJQoR=&k};09+aW zkgr}w#t>anDNR#e`TLoye{9zv5T}Eg=jXw&?)O@7A~?x{+gJ6#N&8kb-a`J1ie-!J zL-G%G>uf_GBT(6)9QFIET z0obWj&|;@T&$00iwe!Gz@i-(^6q46UfXEE7$+u+#(Kyh?pdBB@s-V>vU4_A}=6J7m zae;S=d`AIpdvRm*$CU2d>@=Fz2>L^M2T)45NMavKLJ(YSb6O3-eZs=8X<^$CjpSZL znIO3clU-%Oewgf60cd*fixNqxe{?s9caa$yivNh%2&6njD;SZ2=t}^r+-O3(Hp;gF z)<^jb61{tCCehWm(12ne-wVHj^V2L4)nk|RvQiLtRp`5ae2=b*0Z4lo_ppvpPcO2! z$B@VZ60Hb&Sp@opJ5@EcUh4KSt!|>8^h_A0XgC*GDt+969T#!of9v*;e-mK@ew1$V?%Z1M!80ByPKK?e2``IO`t-iBIa zCv^?nh0ndIFF`c@5Wbe#>kNX*Fm!0cUt@$hX0-S*DEes9!&z>}l|3vqfA z@;?8u{~c_->#(L{ef>|k9n@SXyA0tf3e*xy!)%-I>lZQusdrE)1-$YLYe zX~k>)c(l8J^q~lR7Lp$iINjYx2%F@~_rN6FpS|h%L*vGI9P$yABpZP*)!_@k_?{ft z2RjEAA*%zl5wHcR5$Ack-!9>|pd(GeN*s`{+?fdRCWw#1Y7xoin>s?tKO@Nh71}U% zNbZ!|k{nyeCCv5U3}Rs(7ujKr*Vb|jQKXFmYtQ5kjyMCB5cYd1rZszW1k-vy5}|?7 z7uf8GfW`NMuMwJt9)m-OzDSgaf`JElFcj+fBNMpBnHD;#<qRg;#QIJO0yyo9*o(CT72lGauja7M zX0acpd=3S85g$X57QlLQm)H9l@wR|(3&LKDBC-R+b<8k)_-q(~@y&RIUa)PeS5;2l zNwX%5Ok)%U=)ZhKN#iuyH6*$P8BG0-eNwe2?41=vSZL)q?uD|ZtMX0=OPY5}&J3Ro zsjpkx9}9)Ro?0;eA7#f;J5s^Zf2Mcm?xWh*g_=&*ok4qW)_&Gl zp9vx8+c5-Phc^sAveUD~G*9`Fz$k7g0ZySq_5U9*!bhFatpp^EO9>SUJ7LKRUqSfb zy#cDY1EAD(A@xk&#zd%j<_JIP)5!75e|&o6ixoHS01**ZEZd*Q2}pKAx`#{HV<6e7P4FZ9hkXFw5`lpl?685EPwB5;-b_d{3X?`w zMYNH^%sqqxMc1ED9RXt!I;R;u;)WgMB9Jd>g*%|W!6_}Fl2H(*1-r__{o>fJi6qk! z-qJIH7HV9LiZ<=M?Q^px8u3#Ye$J;O6FE{W$JIO5hi&SlE~c|4-z4}@SOmld(T7)~(_ z5NlyxLr_>R1jG$|7zlI$#rg<9z)$=^E>3o2kA7&;H-@tABd$RAbAt=?JVsSBrd-Y1 zl}4ugr*I*%Bz~5c1R7+PE$L57!O0O$-O-5Y{Yq+Za71Kh$fAHt0h$Ou zD?=lE3}6yWDt4>eg8n1cmS!ix`Eg*swo-tRaAuZgfK@`2)zt-0Ua<83(b#Q%1vX>r zVqC|Ht~~+N5kLEi7&RjG4k{x;Yf(ONIc?p%8NJWVo7h|cil8PwCm#n-h7adgTDl$3 z%j)J$d2`$rE-tXN@gu|a6t%68^#a5qZq67EVGvHomLFjam_~=8_ zLi}5^^fx3TB^q}Rfz6a60{DZI(00MyN@nWhhv?9f^T*kY=0qY2h-E^2wC6;|eTgz+ z(@ZuAuM>P0mA=2>Bqv5VB7EYk1g9m;DphpRTz2~+VM57P_4hG$kFuyJyHBX}CkEll zJofa;lEk?hEee*TMniKyM2kTmmXgo?N;i_fYKzg8)3n-iNRHd7{n}c$9H~s5AP$3cur$WB5**-lGLr;HVne z1BLdscBKc0j-%BWhyD?yIQ=Q^1-<>|KbMF+1~4O4oqdH4CH5 zm%S3cCJ=r1fOkP##=8*7kf{#9l*Nsupi!f_1z$ISlZfP?Im3s(z77mOh{yw6Umaq^ z8lJ>>x8DOkE^94ZYl3ARZd`?LA9P@fMjQa0MzEDF&Ly@2caPvWaDiVX$gGZTmE^et z@@cZSP_H206?n_;0~L5|YtSxs2Jw{{Mm1n$(B9e3fOimY)X(yJDU8Vg_DejAof=CQ zjLrbsMXbXm)O>ShYZ%WSL;Qh>kEx9yR^XD1RS6|{>u{uo^+@3(YX>+=c)~C6D+%r| zMAu;{!AK^q|Gu;`5Vn%rJ_Pglu$GZqZ*>l=4&fM28C#=U2RoykgD{#yLvh>07~;cr z*s&6E6?pncoEz>SrUX|ng>TPXA-XEhVvC2R&m$O>>sw=;vE&@!-rIOa8u1)s98FNm zLwsw%L+^}?VMbEwC7F@2Xh!f+x0f)2t@WRynFU*y9lcLjJk&XaXFbaK#++aStm-k$ z*D>7xv(hKbx$YD0*CoRmnmUKDQI>2gR{Jv6SBxx#)!QNHF?tG?q#mY=esZCA2fwwm zn>Hmd;x4W~458KJ2}rbuoAcUnXCl0r{3SyqUpA=qe1bZb1iJVwq;GVN;dUL^rJqtn zWJh8#J!nu&;|#tU>Vp5o1}d}D*6hMYy@99!y!eOq#cj*0N8O95G8`7UEs&$>;z#+c z1oa#XAL4O}M?|I{xUdR><>#vLZ6t{t(bq^dqbGl8zc*TNg%hX9P11SJElCrinB#AK zCnoed!xtFz7Sg&%thxlG9_ib1|H#sFA z2GN4h{v8p>sWN0Ij_Y6C{IFgn<|2M6+U5|IEvK~Icl z#1@HXtxFe+$jqoYqqq+@Z=S@4Sa`C#RCnx?7!jfYj#OftBGD`2V&L5s-x9Y3N7-6y zvv-l-YGG5ZNDUdXRh`jD>D|P(XgMH#dj3_eteuSY}54*<1>F4MlHm_ zZ3Ukn6E7w-H+)flJR$swJY2FX{fQy-k3fIP@kK8IhT&9->c{mTMj=>ZMEVocoRSc) zcz$8|#mCEL{4(K=D_ni-fDuUOvc$Ubi!1}4 z2M@EN__JuH(x1TEGNpQZ-+#+TEZ||7ytdu04D^hu zc0H@{HFEGy2P<32x#2I?JXzcGY~T$fl|EoSz9M@|6oxEN?b0>xkrlrjv>RVse>@_`nD>2!k&|fJ`odL$#Q6hanydbqyDwQ`9r0buA z!eKu_d>H|PfrMW3j??VUS*gsHatuYPgWk*?jvsR>oomFTU#`k5;+8DKKVlvam;VtXvMMdu{?R5Ap=BTt)hmhctZeG2icWaag!XvyQeu`B2Xsz*a z<{o77HWQ1raMuN>P9q$#42}12;hG+%Q;Zt8>?oXIZ@y#D)GRe~!CZ~}E zIc)z24<~KS{ACvZCX?S`!WbwWB65y*USvWurTPITzsRec$Gs*P`-C>z_C~{bj-%<` zKthlv!0La!VGlqMfOkGK3ZR`N=%$JQPU^EEtPPeQEdP-4L&l5cGv&+WS>*ll3*|@4 W$I72gL2%1pp=462Kh5QG>HiPwAJs+x diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-39.pyc deleted file mode 100644 index b7884d38db3d5e81b38f8d0dd5070ebebfa2ce05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10203 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 KTU`l^?;iQ*V_>7W*6=wh2bPAa>&XjN{ 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-39.pyc deleted file mode 100644 index ade3962769fec42c9b460b884985cec5e7ef56f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20366 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__init__.py deleted file mode 100644 index f7dbf4c..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -"""Modules copied from Python 3 standard libraries, for internal use only. - -Individual classes and functions are found in d2._backport.misc. Intended -usage is to always import things missing from 3.1 from that module: the -built-in/stdlib objects will be used if found. -""" diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 601d50060e724222f4694f6f5cc685dcb42a2c87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 zcmYjOv2NTj4Ao^x;37-Dfa?K`g!ZNeMUgc_iUQrb2(m@TyvULv(s%Wz^b`6U{fw;r zgl?Tm-vL1hP#~#C>OCr4UpGeW$FJ@FW@F6nHTmDPX71JbN{?v1nYj6Cwin@zUObjK zCuHc#L>Qs3WrQz_3?;)3SVE4WMo84wPzm`h^rZr2!J0#YnGs4(i*1^R9O*!D)@qjm zv(D6J=;z!Cm8@AsZJxD88RC2E+t58vrHUPiI}7ljQ**@F%p9H&h(QX3bPNjvjVlsl zp!~$34XnYL?asbC2QmbK@ucTYk=V2|CAp>SSfVO`((bVnh9ji}Ew1d9On+u&o6p5A9T}c xkvsdrF$vyIDp-}Vn`m-gQL$7PiDkvUuETjxnZ$cLEiYFe&w@U!fA~k;`~&jhpc?=H diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/misc.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/misc.cpython-39.pyc deleted file mode 100644 index 61f17d48a827a3765b4708870797b828598325e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1114 zcmZWn&5qMB5VoDPO@Fm3@guPuA|zId1Pu}=q!j{INO0+el@Pf^sqMBYNgUa3X{vHz z_a(TXUBrdg;L02L%86It0^_tRR^VtRGoBgGd^3~u`yB-5j!00t9Zo7y#s}~sAkM&uTwa#$Vc!LV^ z0IfaVidx`x2wq;b+IeB-W$nBZbs(b6I%g7Lsz~(Im@~aR$;v@q!A*11t#yoKVXz5A+UM{TN7H1Gd4^W4P=v@}6wahTKF@ zn=>+)8Z5qo7`4hOo}}<{gYofVY8<}OvIU_v`?UyXBIn^aRkL@=oO2y&u5?)NiH;SQ zOD1j7Hoixcf9Ka#n!SrR<_t{+;){T+8~Wj?IiFhAf}V5v`{)J zD3@KZ!%L1B&;J6IHcHwz4uDkMR9x%-C9);eiH<LQz8#H=-kondE)|I zV7PBGtXms&is#-9;2$uvgCL{z0biAzYJXfoUwzmUrR6=p5Zb@1g0}2I3e%{K#sQOQ zZl@1QrOfpy*LHRwYo6DZw3wRqNmcUaQVMBY4WjYlxJYsy$F_ksz-s?ux3KO2sR1yA zJJ O*n@wM3|s=$_wXOBxC_Go diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-39.pyc deleted file mode 100644 index 09ab566f257dfdf4c40ae938ca3d56ec5168b991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21688 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 SoN>pcKgj`6!3bG8|Gxkc8bMJ2 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-39.pyc deleted file mode 100644 index 5382bd8bcb032cd782bdfe8307f1e8f4e4dfd1a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15978 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 DiSCi6 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/misc.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/misc.py deleted file mode 100644 index cfb318d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/misc.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Backports for individual classes and functions.""" - -import os -import sys - -__all__ = ['cache_from_source', 'callable', 'fsencode'] - - -try: - from imp import cache_from_source -except ImportError: - def cache_from_source(py_file, debug=__debug__): - ext = debug and 'c' or 'o' - return py_file + ext - - -try: - callable = callable -except NameError: - from collections import Callable - - def callable(obj): - return isinstance(obj, Callable) - - -try: - fsencode = os.fsencode -except AttributeError: - def fsencode(filename): - if isinstance(filename, bytes): - return filename - elif isinstance(filename, str): - return filename.encode(sys.getfilesystemencoding()) - else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/shutil.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/shutil.py deleted file mode 100644 index 10ed362..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/shutil.py +++ /dev/null @@ -1,764 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Utility functions for copying and archiving files and directory trees. - -XXX The functions here don't copy the resource fork or other metadata on Mac. - -""" - -import os -import sys -import stat -from os.path import abspath -import fnmatch -try: - from collections.abc import Callable -except ImportError: - from collections import Callable -import errno -from . import tarfile - -try: - import bz2 - _BZ2_SUPPORTED = True -except ImportError: - _BZ2_SUPPORTED = False - -try: - from pwd import getpwnam -except ImportError: - getpwnam = None - -try: - from grp import getgrnam -except ImportError: - getgrnam = None - -__all__ = ["copyfileobj", "copyfile", "copymode", "copystat", "copy", "copy2", - "copytree", "move", "rmtree", "Error", "SpecialFileError", - "ExecError", "make_archive", "get_archive_formats", - "register_archive_format", "unregister_archive_format", - "get_unpack_formats", "register_unpack_format", - "unregister_unpack_format", "unpack_archive", "ignore_patterns"] - -class Error(EnvironmentError): - pass - -class SpecialFileError(EnvironmentError): - """Raised when trying to do a kind of operation (e.g. copying) which is - not supported on a special file (e.g. a named pipe)""" - -class ExecError(EnvironmentError): - """Raised when a command could not be executed""" - -class ReadError(EnvironmentError): - """Raised when an archive cannot be read""" - -class RegistryError(Exception): - """Raised when a registry operation with the archiving - and unpacking registries fails""" - - -try: - WindowsError -except NameError: - WindowsError = None - -def copyfileobj(fsrc, fdst, length=16*1024): - """copy data from file-like object fsrc to file-like object fdst""" - while 1: - buf = fsrc.read(length) - if not buf: - break - fdst.write(buf) - -def _samefile(src, dst): - # Macintosh, Unix. - if hasattr(os.path, 'samefile'): - try: - return os.path.samefile(src, dst) - except OSError: - return False - - # All other platforms: check for same pathname. - return (os.path.normcase(os.path.abspath(src)) == - os.path.normcase(os.path.abspath(dst))) - -def copyfile(src, dst): - """Copy data from src to dst""" - if _samefile(src, dst): - raise Error("`%s` and `%s` are the same file" % (src, dst)) - - for fn in [src, dst]: - try: - st = os.stat(fn) - except OSError: - # File most likely does not exist - pass - else: - # XXX What about other special files? (sockets, devices...) - if stat.S_ISFIFO(st.st_mode): - raise SpecialFileError("`%s` is a named pipe" % fn) - - with open(src, 'rb') as fsrc: - with open(dst, 'wb') as fdst: - copyfileobj(fsrc, fdst) - -def copymode(src, dst): - """Copy mode bits from src to dst""" - if hasattr(os, 'chmod'): - st = os.stat(src) - mode = stat.S_IMODE(st.st_mode) - os.chmod(dst, mode) - -def copystat(src, dst): - """Copy all stat info (mode bits, atime, mtime, flags) from src to dst""" - st = os.stat(src) - mode = stat.S_IMODE(st.st_mode) - if hasattr(os, 'utime'): - os.utime(dst, (st.st_atime, st.st_mtime)) - if hasattr(os, 'chmod'): - os.chmod(dst, mode) - if hasattr(os, 'chflags') and hasattr(st, 'st_flags'): - try: - os.chflags(dst, st.st_flags) - except OSError as why: - if (not hasattr(errno, 'EOPNOTSUPP') or - why.errno != errno.EOPNOTSUPP): - raise - -def copy(src, dst): - """Copy data and mode bits ("cp src dst"). - - The destination may be a directory. - - """ - if os.path.isdir(dst): - dst = os.path.join(dst, os.path.basename(src)) - copyfile(src, dst) - copymode(src, dst) - -def copy2(src, dst): - """Copy data and all stat info ("cp -p src dst"). - - The destination may be a directory. - - """ - if os.path.isdir(dst): - dst = os.path.join(dst, os.path.basename(src)) - copyfile(src, dst) - copystat(src, dst) - -def ignore_patterns(*patterns): - """Function that can be used as copytree() ignore parameter. - - Patterns is a sequence of glob-style patterns - that are used to exclude files""" - def _ignore_patterns(path, names): - ignored_names = [] - for pattern in patterns: - ignored_names.extend(fnmatch.filter(names, pattern)) - return set(ignored_names) - return _ignore_patterns - -def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, - ignore_dangling_symlinks=False): - """Recursively copy a directory tree. - - The destination directory must not already exist. - If exception(s) occur, an Error is raised with a list of reasons. - - If the optional symlinks flag is true, symbolic links in the - source tree result in symbolic links in the destination tree; if - it is false, the contents of the files pointed to by symbolic - links are copied. If the file pointed by the symlink doesn't - exist, an exception will be added in the list of errors raised in - an Error exception at the end of the copy process. - - You can set the optional ignore_dangling_symlinks flag to true if you - want to silence this exception. Notice that this has no effect on - platforms that don't support os.symlink. - - The optional ignore argument is a callable. If given, it - is called with the `src` parameter, which is the directory - being visited by copytree(), and `names` which is the list of - `src` contents, as returned by os.listdir(): - - callable(src, names) -> ignored_names - - Since copytree() is called recursively, the callable will be - called once for each directory that is copied. It returns a - list of names relative to the `src` directory that should - not be copied. - - The optional copy_function argument is a callable that will be used - to copy each file. It will be called with the source path and the - destination path as arguments. By default, copy2() is used, but any - function that supports the same signature (like copy()) can be used. - - """ - names = os.listdir(src) - if ignore is not None: - ignored_names = ignore(src, names) - else: - ignored_names = set() - - os.makedirs(dst) - errors = [] - for name in names: - if name in ignored_names: - continue - srcname = os.path.join(src, name) - dstname = os.path.join(dst, name) - try: - if os.path.islink(srcname): - linkto = os.readlink(srcname) - if symlinks: - os.symlink(linkto, dstname) - else: - # ignore dangling symlink if the flag is on - if not os.path.exists(linkto) and ignore_dangling_symlinks: - continue - # otherwise let the copy occurs. copy2 will raise an error - copy_function(srcname, dstname) - elif os.path.isdir(srcname): - copytree(srcname, dstname, symlinks, ignore, copy_function) - else: - # Will raise a SpecialFileError for unsupported file types - copy_function(srcname, dstname) - # catch the Error from the recursive copytree so that we can - # continue with other files - except Error as err: - errors.extend(err.args[0]) - except EnvironmentError as why: - errors.append((srcname, dstname, str(why))) - try: - copystat(src, dst) - except OSError as why: - if WindowsError is not None and isinstance(why, WindowsError): - # Copying file access times may fail on Windows - pass - else: - errors.extend((src, dst, str(why))) - if errors: - raise Error(errors) - -def rmtree(path, ignore_errors=False, onerror=None): - """Recursively delete a directory tree. - - If ignore_errors is set, errors are ignored; otherwise, if onerror - is set, it is called to handle the error with arguments (func, - path, exc_info) where func is os.listdir, os.remove, or os.rmdir; - path is the argument to that function that caused it to fail; and - exc_info is a tuple returned by sys.exc_info(). If ignore_errors - is false and onerror is None, an exception is raised. - - """ - if ignore_errors: - def onerror(*args): - pass - elif onerror is None: - def onerror(*args): - raise - try: - if os.path.islink(path): - # symlinks to directories are forbidden, see bug #1669 - raise OSError("Cannot call rmtree on a symbolic link") - except OSError: - onerror(os.path.islink, path, sys.exc_info()) - # can't continue even if onerror hook returns - return - names = [] - try: - names = os.listdir(path) - except os.error: - onerror(os.listdir, path, sys.exc_info()) - for name in names: - fullname = os.path.join(path, name) - try: - mode = os.lstat(fullname).st_mode - except os.error: - mode = 0 - if stat.S_ISDIR(mode): - rmtree(fullname, ignore_errors, onerror) - else: - try: - os.remove(fullname) - except os.error: - onerror(os.remove, fullname, sys.exc_info()) - try: - os.rmdir(path) - except os.error: - onerror(os.rmdir, path, sys.exc_info()) - - -def _basename(path): - # A basename() variant which first strips the trailing slash, if present. - # Thus we always get the last component of the path, even for directories. - return os.path.basename(path.rstrip(os.path.sep)) - -def move(src, dst): - """Recursively move a file or directory to another location. This is - similar to the Unix "mv" command. - - If the destination is a directory or a symlink to a directory, the source - is moved inside the directory. The destination path must not already - exist. - - If the destination already exists but is not a directory, it may be - overwritten depending on os.rename() semantics. - - If the destination is on our current filesystem, then rename() is used. - Otherwise, src is copied to the destination and then removed. - A lot more could be done here... A look at a mv.c shows a lot of - the issues this implementation glosses over. - - """ - real_dst = dst - if os.path.isdir(dst): - if _samefile(src, dst): - # We might be on a case insensitive filesystem, - # perform the rename anyway. - os.rename(src, dst) - return - - real_dst = os.path.join(dst, _basename(src)) - if os.path.exists(real_dst): - raise Error("Destination path '%s' already exists" % real_dst) - try: - os.rename(src, real_dst) - except OSError: - if os.path.isdir(src): - if _destinsrc(src, dst): - raise Error("Cannot move a directory '%s' into itself '%s'." % (src, dst)) - copytree(src, real_dst, symlinks=True) - rmtree(src) - else: - copy2(src, real_dst) - os.unlink(src) - -def _destinsrc(src, dst): - src = abspath(src) - dst = abspath(dst) - if not src.endswith(os.path.sep): - src += os.path.sep - if not dst.endswith(os.path.sep): - dst += os.path.sep - return dst.startswith(src) - -def _get_gid(name): - """Returns a gid, given a group name.""" - if getgrnam is None or name is None: - return None - try: - result = getgrnam(name) - except KeyError: - result = None - if result is not None: - return result[2] - return None - -def _get_uid(name): - """Returns an uid, given a user name.""" - if getpwnam is None or name is None: - return None - try: - result = getpwnam(name) - except KeyError: - result = None - if result is not None: - return result[2] - return None - -def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0, - owner=None, group=None, logger=None): - """Create a (possibly compressed) tar file from all the files under - 'base_dir'. - - 'compress' must be "gzip" (the default), "bzip2", or None. - - 'owner' and 'group' can be used to define an owner and a group for the - archive that is being built. If not provided, the current owner and group - will be used. - - The output tar file will be named 'base_name' + ".tar", possibly plus - the appropriate compression extension (".gz", or ".bz2"). - - Returns the output filename. - """ - tar_compression = {'gzip': 'gz', None: ''} - compress_ext = {'gzip': '.gz'} - - if _BZ2_SUPPORTED: - tar_compression['bzip2'] = 'bz2' - compress_ext['bzip2'] = '.bz2' - - # flags for compression program, each element of list will be an argument - if compress is not None and compress not in compress_ext: - raise ValueError("bad value for 'compress', or compression format not " - "supported : {0}".format(compress)) - - archive_name = base_name + '.tar' + compress_ext.get(compress, '') - archive_dir = os.path.dirname(archive_name) - - if not os.path.exists(archive_dir): - if logger is not None: - logger.info("creating %s", archive_dir) - if not dry_run: - os.makedirs(archive_dir) - - # creating the tarball - if logger is not None: - logger.info('Creating tar archive') - - uid = _get_uid(owner) - gid = _get_gid(group) - - def _set_uid_gid(tarinfo): - if gid is not None: - tarinfo.gid = gid - tarinfo.gname = group - if uid is not None: - tarinfo.uid = uid - tarinfo.uname = owner - return tarinfo - - if not dry_run: - tar = tarfile.open(archive_name, 'w|%s' % tar_compression[compress]) - try: - tar.add(base_dir, filter=_set_uid_gid) - finally: - tar.close() - - return archive_name - -def _call_external_zip(base_dir, zip_filename, verbose=False, dry_run=False): - # XXX see if we want to keep an external call here - if verbose: - zipoptions = "-r" - else: - zipoptions = "-rq" - from distutils.errors import DistutilsExecError - from distutils.spawn import spawn - try: - spawn(["zip", zipoptions, zip_filename, base_dir], dry_run=dry_run) - except DistutilsExecError: - # XXX really should distinguish between "couldn't find - # external 'zip' command" and "zip failed". - raise ExecError("unable to create zip file '%s': " - "could neither import the 'zipfile' module nor " - "find a standalone zip utility") % zip_filename - -def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): - """Create a zip file from all the files under 'base_dir'. - - The output zip file will be named 'base_name' + ".zip". Uses either the - "zipfile" Python module (if available) or the InfoZIP "zip" utility - (if installed and found on the default search path). If neither tool is - available, raises ExecError. Returns the name of the output zip - file. - """ - zip_filename = base_name + ".zip" - archive_dir = os.path.dirname(base_name) - - if not os.path.exists(archive_dir): - if logger is not None: - logger.info("creating %s", archive_dir) - if not dry_run: - os.makedirs(archive_dir) - - # If zipfile module is not available, try spawning an external 'zip' - # command. - try: - import zipfile - except ImportError: - zipfile = None - - if zipfile is None: - _call_external_zip(base_dir, zip_filename, verbose, dry_run) - else: - if logger is not None: - logger.info("creating '%s' and adding '%s' to it", - zip_filename, base_dir) - - if not dry_run: - zip = zipfile.ZipFile(zip_filename, "w", - compression=zipfile.ZIP_DEFLATED) - - for dirpath, dirnames, filenames in os.walk(base_dir): - for name in filenames: - path = os.path.normpath(os.path.join(dirpath, name)) - if os.path.isfile(path): - zip.write(path, path) - if logger is not None: - logger.info("adding '%s'", path) - zip.close() - - return zip_filename - -_ARCHIVE_FORMATS = { - 'gztar': (_make_tarball, [('compress', 'gzip')], "gzip'ed tar-file"), - 'bztar': (_make_tarball, [('compress', 'bzip2')], "bzip2'ed tar-file"), - 'tar': (_make_tarball, [('compress', None)], "uncompressed tar file"), - 'zip': (_make_zipfile, [], "ZIP file"), - } - -if _BZ2_SUPPORTED: - _ARCHIVE_FORMATS['bztar'] = (_make_tarball, [('compress', 'bzip2')], - "bzip2'ed tar-file") - -def get_archive_formats(): - """Returns a list of supported formats for archiving and unarchiving. - - Each element of the returned sequence is a tuple (name, description) - """ - formats = [(name, registry[2]) for name, registry in - _ARCHIVE_FORMATS.items()] - formats.sort() - return formats - -def register_archive_format(name, function, extra_args=None, description=''): - """Registers an archive format. - - name is the name of the format. function is the callable that will be - used to create archives. If provided, extra_args is a sequence of - (name, value) tuples that will be passed as arguments to the callable. - description can be provided to describe the format, and will be returned - by the get_archive_formats() function. - """ - if extra_args is None: - extra_args = [] - if not isinstance(function, Callable): - raise TypeError('The %s object is not callable' % function) - if not isinstance(extra_args, (tuple, list)): - raise TypeError('extra_args needs to be a sequence') - for element in extra_args: - if not isinstance(element, (tuple, list)) or len(element) !=2: - raise TypeError('extra_args elements are : (arg_name, value)') - - _ARCHIVE_FORMATS[name] = (function, extra_args, description) - -def unregister_archive_format(name): - del _ARCHIVE_FORMATS[name] - -def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, - dry_run=0, owner=None, group=None, logger=None): - """Create an archive file (eg. zip or tar). - - 'base_name' is the name of the file to create, minus any format-specific - extension; 'format' is the archive format: one of "zip", "tar", "bztar" - or "gztar". - - 'root_dir' is a directory that will be the root directory of the - archive; ie. we typically chdir into 'root_dir' before creating the - archive. 'base_dir' is the directory where we start archiving from; - ie. 'base_dir' will be the common prefix of all files and - directories in the archive. 'root_dir' and 'base_dir' both default - to the current directory. Returns the name of the archive file. - - 'owner' and 'group' are used when creating a tar archive. By default, - uses the current owner and group. - """ - save_cwd = os.getcwd() - if root_dir is not None: - if logger is not None: - logger.debug("changing into '%s'", root_dir) - base_name = os.path.abspath(base_name) - if not dry_run: - os.chdir(root_dir) - - if base_dir is None: - base_dir = os.curdir - - kwargs = {'dry_run': dry_run, 'logger': logger} - - try: - format_info = _ARCHIVE_FORMATS[format] - except KeyError: - raise ValueError("unknown archive format '%s'" % format) - - func = format_info[0] - for arg, val in format_info[1]: - kwargs[arg] = val - - if format != 'zip': - kwargs['owner'] = owner - kwargs['group'] = group - - try: - filename = func(base_name, base_dir, **kwargs) - finally: - if root_dir is not None: - if logger is not None: - logger.debug("changing back to '%s'", save_cwd) - os.chdir(save_cwd) - - return filename - - -def get_unpack_formats(): - """Returns a list of supported formats for unpacking. - - Each element of the returned sequence is a tuple - (name, extensions, description) - """ - formats = [(name, info[0], info[3]) for name, info in - _UNPACK_FORMATS.items()] - formats.sort() - return formats - -def _check_unpack_options(extensions, function, extra_args): - """Checks what gets registered as an unpacker.""" - # first make sure no other unpacker is registered for this extension - existing_extensions = {} - for name, info in _UNPACK_FORMATS.items(): - for ext in info[0]: - existing_extensions[ext] = name - - for extension in extensions: - if extension in existing_extensions: - msg = '%s is already registered for "%s"' - raise RegistryError(msg % (extension, - existing_extensions[extension])) - - if not isinstance(function, Callable): - raise TypeError('The registered function must be a callable') - - -def register_unpack_format(name, extensions, function, extra_args=None, - description=''): - """Registers an unpack format. - - `name` is the name of the format. `extensions` is a list of extensions - corresponding to the format. - - `function` is the callable that will be - used to unpack archives. The callable will receive archives to unpack. - If it's unable to handle an archive, it needs to raise a ReadError - exception. - - If provided, `extra_args` is a sequence of - (name, value) tuples that will be passed as arguments to the callable. - description can be provided to describe the format, and will be returned - by the get_unpack_formats() function. - """ - if extra_args is None: - extra_args = [] - _check_unpack_options(extensions, function, extra_args) - _UNPACK_FORMATS[name] = extensions, function, extra_args, description - -def unregister_unpack_format(name): - """Removes the pack format from the registry.""" - del _UNPACK_FORMATS[name] - -def _ensure_directory(path): - """Ensure that the parent directory of `path` exists""" - dirname = os.path.dirname(path) - if not os.path.isdir(dirname): - os.makedirs(dirname) - -def _unpack_zipfile(filename, extract_dir): - """Unpack zip `filename` to `extract_dir` - """ - try: - import zipfile - except ImportError: - raise ReadError('zlib not supported, cannot unpack this archive.') - - if not zipfile.is_zipfile(filename): - raise ReadError("%s is not a zip file" % filename) - - zip = zipfile.ZipFile(filename) - try: - for info in zip.infolist(): - name = info.filename - - # don't extract absolute paths or ones with .. in them - if name.startswith('/') or '..' in name: - continue - - target = os.path.join(extract_dir, *name.split('/')) - if not target: - continue - - _ensure_directory(target) - if not name.endswith('/'): - # file - data = zip.read(info.filename) - f = open(target, 'wb') - try: - f.write(data) - finally: - f.close() - del data - finally: - zip.close() - -def _unpack_tarfile(filename, extract_dir): - """Unpack tar/tar.gz/tar.bz2 `filename` to `extract_dir` - """ - try: - tarobj = tarfile.open(filename) - except tarfile.TarError: - raise ReadError( - "%s is not a compressed or uncompressed tar file" % filename) - try: - tarobj.extractall(extract_dir) - finally: - tarobj.close() - -_UNPACK_FORMATS = { - 'gztar': (['.tar.gz', '.tgz'], _unpack_tarfile, [], "gzip'ed tar-file"), - 'tar': (['.tar'], _unpack_tarfile, [], "uncompressed tar file"), - 'zip': (['.zip'], _unpack_zipfile, [], "ZIP file") - } - -if _BZ2_SUPPORTED: - _UNPACK_FORMATS['bztar'] = (['.bz2'], _unpack_tarfile, [], - "bzip2'ed tar-file") - -def _find_unpack_format(filename): - for name, info in _UNPACK_FORMATS.items(): - for extension in info[0]: - if filename.endswith(extension): - return name - return None - -def unpack_archive(filename, extract_dir=None, format=None): - """Unpack an archive. - - `filename` is the name of the archive. - - `extract_dir` is the name of the target directory, where the archive - is unpacked. If not provided, the current working directory is used. - - `format` is the archive format: one of "zip", "tar", or "gztar". Or any - other registered format. If not provided, unpack_archive will use the - filename extension and see if an unpacker was registered for that - extension. - - In case none is found, a ValueError is raised. - """ - if extract_dir is None: - extract_dir = os.getcwd() - - if format is not None: - try: - format_info = _UNPACK_FORMATS[format] - except KeyError: - raise ValueError("Unknown unpack format '{0}'".format(format)) - - func = format_info[1] - func(filename, extract_dir, **dict(format_info[2])) - else: - # we need to look at the registered unpackers supported extensions - format = _find_unpack_format(filename) - if format is None: - raise ReadError("Unknown archive format '{0}'".format(filename)) - - func = _UNPACK_FORMATS[format][1] - kwargs = dict(_UNPACK_FORMATS[format][2]) - func(filename, extract_dir, **kwargs) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg deleted file mode 100644 index 1746bd0..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg +++ /dev/null @@ -1,84 +0,0 @@ -[posix_prefix] -# Configuration directories. Some of these come straight out of the -# configure script. They are for implementing the other variables, not to -# be used directly in [resource_locations]. -confdir = /etc -datadir = /usr/share -libdir = /usr/lib -statedir = /var -# User resource directory -local = ~/.local/{distribution.name} - -stdlib = {base}/lib/python{py_version_short} -platstdlib = {platbase}/lib/python{py_version_short} -purelib = {base}/lib/python{py_version_short}/site-packages -platlib = {platbase}/lib/python{py_version_short}/site-packages -include = {base}/include/python{py_version_short}{abiflags} -platinclude = {platbase}/include/python{py_version_short}{abiflags} -data = {base} - -[posix_home] -stdlib = {base}/lib/python -platstdlib = {base}/lib/python -purelib = {base}/lib/python -platlib = {base}/lib/python -include = {base}/include/python -platinclude = {base}/include/python -scripts = {base}/bin -data = {base} - -[nt] -stdlib = {base}/Lib -platstdlib = {base}/Lib -purelib = {base}/Lib/site-packages -platlib = {base}/Lib/site-packages -include = {base}/Include -platinclude = {base}/Include -scripts = {base}/Scripts -data = {base} - -[os2] -stdlib = {base}/Lib -platstdlib = {base}/Lib -purelib = {base}/Lib/site-packages -platlib = {base}/Lib/site-packages -include = {base}/Include -platinclude = {base}/Include -scripts = {base}/Scripts -data = {base} - -[os2_home] -stdlib = {userbase}/lib/python{py_version_short} -platstdlib = {userbase}/lib/python{py_version_short} -purelib = {userbase}/lib/python{py_version_short}/site-packages -platlib = {userbase}/lib/python{py_version_short}/site-packages -include = {userbase}/include/python{py_version_short} -scripts = {userbase}/bin -data = {userbase} - -[nt_user] -stdlib = {userbase}/Python{py_version_nodot} -platstdlib = {userbase}/Python{py_version_nodot} -purelib = {userbase}/Python{py_version_nodot}/site-packages -platlib = {userbase}/Python{py_version_nodot}/site-packages -include = {userbase}/Python{py_version_nodot}/Include -scripts = {userbase}/Scripts -data = {userbase} - -[posix_user] -stdlib = {userbase}/lib/python{py_version_short} -platstdlib = {userbase}/lib/python{py_version_short} -purelib = {userbase}/lib/python{py_version_short}/site-packages -platlib = {userbase}/lib/python{py_version_short}/site-packages -include = {userbase}/include/python{py_version_short} -scripts = {userbase}/bin -data = {userbase} - -[osx_framework_user] -stdlib = {userbase}/lib/python -platstdlib = {userbase}/lib/python -purelib = {userbase}/lib/python/site-packages -platlib = {userbase}/lib/python/site-packages -include = {userbase}/include -scripts = {userbase}/bin -data = {userbase} diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.py deleted file mode 100644 index b470a37..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.py +++ /dev/null @@ -1,786 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Access to Python's configuration information.""" - -import codecs -import os -import re -import sys -from os.path import pardir, realpath -try: - import configparser -except ImportError: - import ConfigParser as configparser - - -__all__ = [ - 'get_config_h_filename', - 'get_config_var', - 'get_config_vars', - 'get_makefile_filename', - 'get_path', - 'get_path_names', - 'get_paths', - 'get_platform', - 'get_python_version', - 'get_scheme_names', - 'parse_config_h', -] - - -def _safe_realpath(path): - try: - return realpath(path) - except OSError: - return path - - -if sys.executable: - _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable)) -else: - # sys.executable can be empty if argv[0] has been changed and Python is - # unable to retrieve the real program name - _PROJECT_BASE = _safe_realpath(os.getcwd()) - -if os.name == "nt" and "pcbuild" in _PROJECT_BASE[-8:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir)) -# PC/VS7.1 -if os.name == "nt" and "\\pc\\v" in _PROJECT_BASE[-10:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) -# PC/AMD64 -if os.name == "nt" and "\\pcbuild\\amd64" in _PROJECT_BASE[-14:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) - - -def is_python_build(): - for fn in ("Setup.dist", "Setup.local"): - if os.path.isfile(os.path.join(_PROJECT_BASE, "Modules", fn)): - return True - return False - -_PYTHON_BUILD = is_python_build() - -_cfg_read = False - -def _ensure_cfg_read(): - global _cfg_read - if not _cfg_read: - from ..resources import finder - backport_package = __name__.rsplit('.', 1)[0] - _finder = finder(backport_package) - _cfgfile = _finder.find('sysconfig.cfg') - assert _cfgfile, 'sysconfig.cfg exists' - with _cfgfile.as_stream() as s: - _SCHEMES.readfp(s) - if _PYTHON_BUILD: - for scheme in ('posix_prefix', 'posix_home'): - _SCHEMES.set(scheme, 'include', '{srcdir}/Include') - _SCHEMES.set(scheme, 'platinclude', '{projectbase}/.') - - _cfg_read = True - - -_SCHEMES = configparser.RawConfigParser() -_VAR_REPL = re.compile(r'\{([^{]*?)\}') - -def _expand_globals(config): - _ensure_cfg_read() - if config.has_section('globals'): - globals = config.items('globals') - else: - globals = tuple() - - sections = config.sections() - for section in sections: - if section == 'globals': - continue - for option, value in globals: - if config.has_option(section, option): - continue - config.set(section, option, value) - config.remove_section('globals') - - # now expanding local variables defined in the cfg file - # - for section in config.sections(): - variables = dict(config.items(section)) - - def _replacer(matchobj): - name = matchobj.group(1) - if name in variables: - return variables[name] - return matchobj.group(0) - - for option, value in config.items(section): - config.set(section, option, _VAR_REPL.sub(_replacer, value)) - -#_expand_globals(_SCHEMES) - -_PY_VERSION = '%s.%s.%s' % sys.version_info[:3] -_PY_VERSION_SHORT = '%s.%s' % sys.version_info[:2] -_PY_VERSION_SHORT_NO_DOT = '%s%s' % sys.version_info[:2] -_PREFIX = os.path.normpath(sys.prefix) -_EXEC_PREFIX = os.path.normpath(sys.exec_prefix) -_CONFIG_VARS = None -_USER_BASE = None - - -def _subst_vars(path, local_vars): - """In the string `path`, replace tokens like {some.thing} with the - corresponding value from the map `local_vars`. - - If there is no corresponding value, leave the token unchanged. - """ - def _replacer(matchobj): - name = matchobj.group(1) - if name in local_vars: - return local_vars[name] - elif name in os.environ: - return os.environ[name] - return matchobj.group(0) - return _VAR_REPL.sub(_replacer, path) - - -def _extend_dict(target_dict, other_dict): - target_keys = target_dict.keys() - for key, value in other_dict.items(): - if key in target_keys: - continue - target_dict[key] = value - - -def _expand_vars(scheme, vars): - res = {} - if vars is None: - vars = {} - _extend_dict(vars, get_config_vars()) - - for key, value in _SCHEMES.items(scheme): - if os.name in ('posix', 'nt'): - value = os.path.expanduser(value) - res[key] = os.path.normpath(_subst_vars(value, vars)) - return res - - -def format_value(value, vars): - def _replacer(matchobj): - name = matchobj.group(1) - if name in vars: - return vars[name] - return matchobj.group(0) - return _VAR_REPL.sub(_replacer, value) - - -def _get_default_scheme(): - if os.name == 'posix': - # the default scheme for posix is posix_prefix - return 'posix_prefix' - return os.name - - -def _getuserbase(): - env_base = os.environ.get("PYTHONUSERBASE", None) - - def joinuser(*args): - return os.path.expanduser(os.path.join(*args)) - - # what about 'os2emx', 'riscos' ? - if os.name == "nt": - base = os.environ.get("APPDATA") or "~" - if env_base: - return env_base - else: - return joinuser(base, "Python") - - if sys.platform == "darwin": - framework = get_config_var("PYTHONFRAMEWORK") - if framework: - if env_base: - return env_base - else: - return joinuser("~", "Library", framework, "%d.%d" % - sys.version_info[:2]) - - if env_base: - return env_base - else: - return joinuser("~", ".local") - - -def _parse_makefile(filename, vars=None): - """Parse a Makefile-style file. - - A dictionary containing name/value pairs is returned. If an - optional dictionary is passed in as the second argument, it is - used instead of a new dictionary. - """ - # Regexes needed for parsing Makefile (and similar syntaxes, - # like old-style Setup files). - _variable_rx = re.compile(r"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)") - _findvar1_rx = re.compile(r"\$\(([A-Za-z][A-Za-z0-9_]*)\)") - _findvar2_rx = re.compile(r"\${([A-Za-z][A-Za-z0-9_]*)}") - - if vars is None: - vars = {} - done = {} - notdone = {} - - with codecs.open(filename, encoding='utf-8', errors="surrogateescape") as f: - lines = f.readlines() - - for line in lines: - if line.startswith('#') or line.strip() == '': - continue - m = _variable_rx.match(line) - if m: - n, v = m.group(1, 2) - v = v.strip() - # `$$' is a literal `$' in make - tmpv = v.replace('$$', '') - - if "$" in tmpv: - notdone[n] = v - else: - try: - v = int(v) - except ValueError: - # insert literal `$' - done[n] = v.replace('$$', '$') - else: - done[n] = v - - # do variable interpolation here - variables = list(notdone.keys()) - - # Variables with a 'PY_' prefix in the makefile. These need to - # be made available without that prefix through sysconfig. - # Special care is needed to ensure that variable expansion works, even - # if the expansion uses the name without a prefix. - renamed_variables = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS') - - while len(variables) > 0: - for name in tuple(variables): - value = notdone[name] - m = _findvar1_rx.search(value) or _findvar2_rx.search(value) - if m is not None: - n = m.group(1) - found = True - if n in done: - item = str(done[n]) - elif n in notdone: - # get it on a subsequent round - found = False - elif n in os.environ: - # do it like make: fall back to environment - item = os.environ[n] - - elif n in renamed_variables: - if (name.startswith('PY_') and - name[3:] in renamed_variables): - item = "" - - elif 'PY_' + n in notdone: - found = False - - else: - item = str(done['PY_' + n]) - - else: - done[n] = item = "" - - if found: - after = value[m.end():] - value = value[:m.start()] + item + after - if "$" in after: - notdone[name] = value - else: - try: - value = int(value) - except ValueError: - done[name] = value.strip() - else: - done[name] = value - variables.remove(name) - - if (name.startswith('PY_') and - name[3:] in renamed_variables): - - name = name[3:] - if name not in done: - done[name] = value - - else: - # bogus variable reference (e.g. "prefix=$/opt/python"); - # just drop it since we can't deal - done[name] = value - variables.remove(name) - - # strip spurious spaces - for k, v in done.items(): - if isinstance(v, str): - done[k] = v.strip() - - # save the results in the global dictionary - vars.update(done) - return vars - - -def get_makefile_filename(): - """Return the path of the Makefile.""" - if _PYTHON_BUILD: - return os.path.join(_PROJECT_BASE, "Makefile") - if hasattr(sys, 'abiflags'): - config_dir_name = 'config-%s%s' % (_PY_VERSION_SHORT, sys.abiflags) - else: - config_dir_name = 'config' - return os.path.join(get_path('stdlib'), config_dir_name, 'Makefile') - - -def _init_posix(vars): - """Initialize the module as appropriate for POSIX systems.""" - # load the installed Makefile: - makefile = get_makefile_filename() - try: - _parse_makefile(makefile, vars) - except IOError as e: - msg = "invalid Python installation: unable to open %s" % makefile - if hasattr(e, "strerror"): - msg = msg + " (%s)" % e.strerror - raise IOError(msg) - # load the installed pyconfig.h: - config_h = get_config_h_filename() - try: - with open(config_h) as f: - parse_config_h(f, vars) - except IOError as e: - msg = "invalid Python installation: unable to open %s" % config_h - if hasattr(e, "strerror"): - msg = msg + " (%s)" % e.strerror - raise IOError(msg) - # On AIX, there are wrong paths to the linker scripts in the Makefile - # -- these paths are relative to the Python source, but when installed - # the scripts are in another directory. - if _PYTHON_BUILD: - vars['LDSHARED'] = vars['BLDSHARED'] - - -def _init_non_posix(vars): - """Initialize the module as appropriate for NT""" - # set basic install directories - vars['LIBDEST'] = get_path('stdlib') - vars['BINLIBDEST'] = get_path('platstdlib') - vars['INCLUDEPY'] = get_path('include') - vars['SO'] = '.pyd' - vars['EXE'] = '.exe' - vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT - vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable)) - -# -# public APIs -# - - -def parse_config_h(fp, vars=None): - """Parse a config.h-style file. - - A dictionary containing name/value pairs is returned. If an - optional dictionary is passed in as the second argument, it is - used instead of a new dictionary. - """ - if vars is None: - vars = {} - define_rx = re.compile("#define ([A-Z][A-Za-z0-9_]+) (.*)\n") - undef_rx = re.compile("/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n") - - while True: - line = fp.readline() - if not line: - break - m = define_rx.match(line) - if m: - n, v = m.group(1, 2) - try: - v = int(v) - except ValueError: - pass - vars[n] = v - else: - m = undef_rx.match(line) - if m: - vars[m.group(1)] = 0 - return vars - - -def get_config_h_filename(): - """Return the path of pyconfig.h.""" - if _PYTHON_BUILD: - if os.name == "nt": - inc_dir = os.path.join(_PROJECT_BASE, "PC") - else: - inc_dir = _PROJECT_BASE - else: - inc_dir = get_path('platinclude') - return os.path.join(inc_dir, 'pyconfig.h') - - -def get_scheme_names(): - """Return a tuple containing the schemes names.""" - return tuple(sorted(_SCHEMES.sections())) - - -def get_path_names(): - """Return a tuple containing the paths names.""" - # xxx see if we want a static list - return _SCHEMES.options('posix_prefix') - - -def get_paths(scheme=_get_default_scheme(), vars=None, expand=True): - """Return a mapping containing an install scheme. - - ``scheme`` is the install scheme name. If not provided, it will - return the default scheme for the current platform. - """ - _ensure_cfg_read() - if expand: - return _expand_vars(scheme, vars) - else: - return dict(_SCHEMES.items(scheme)) - - -def get_path(name, scheme=_get_default_scheme(), vars=None, expand=True): - """Return a path corresponding to the scheme. - - ``scheme`` is the install scheme name. - """ - return get_paths(scheme, vars, expand)[name] - - -def get_config_vars(*args): - """With no arguments, return a dictionary of all configuration - variables relevant for the current platform. - - On Unix, this means every variable defined in Python's installed Makefile; - On Windows and Mac OS it's a much smaller set. - - With arguments, return a list of values that result from looking up - each argument in the configuration variable dictionary. - """ - global _CONFIG_VARS - if _CONFIG_VARS is None: - _CONFIG_VARS = {} - # Normalized versions of prefix and exec_prefix are handy to have; - # in fact, these are the standard versions used most places in the - # distutils2 module. - _CONFIG_VARS['prefix'] = _PREFIX - _CONFIG_VARS['exec_prefix'] = _EXEC_PREFIX - _CONFIG_VARS['py_version'] = _PY_VERSION - _CONFIG_VARS['py_version_short'] = _PY_VERSION_SHORT - _CONFIG_VARS['py_version_nodot'] = _PY_VERSION[0] + _PY_VERSION[2] - _CONFIG_VARS['base'] = _PREFIX - _CONFIG_VARS['platbase'] = _EXEC_PREFIX - _CONFIG_VARS['projectbase'] = _PROJECT_BASE - try: - _CONFIG_VARS['abiflags'] = sys.abiflags - except AttributeError: - # sys.abiflags may not be defined on all platforms. - _CONFIG_VARS['abiflags'] = '' - - if os.name in ('nt', 'os2'): - _init_non_posix(_CONFIG_VARS) - if os.name == 'posix': - _init_posix(_CONFIG_VARS) - # Setting 'userbase' is done below the call to the - # init function to enable using 'get_config_var' in - # the init-function. - if sys.version >= '2.6': - _CONFIG_VARS['userbase'] = _getuserbase() - - if 'srcdir' not in _CONFIG_VARS: - _CONFIG_VARS['srcdir'] = _PROJECT_BASE - else: - _CONFIG_VARS['srcdir'] = _safe_realpath(_CONFIG_VARS['srcdir']) - - # Convert srcdir into an absolute path if it appears necessary. - # Normally it is relative to the build directory. However, during - # testing, for example, we might be running a non-installed python - # from a different directory. - if _PYTHON_BUILD and os.name == "posix": - base = _PROJECT_BASE - try: - cwd = os.getcwd() - except OSError: - cwd = None - if (not os.path.isabs(_CONFIG_VARS['srcdir']) and - base != cwd): - # srcdir is relative and we are not in the same directory - # as the executable. Assume executable is in the build - # directory and make srcdir absolute. - srcdir = os.path.join(base, _CONFIG_VARS['srcdir']) - _CONFIG_VARS['srcdir'] = os.path.normpath(srcdir) - - if sys.platform == 'darwin': - kernel_version = os.uname()[2] # Kernel version (8.4.3) - major_version = int(kernel_version.split('.')[0]) - - if major_version < 8: - # On Mac OS X before 10.4, check if -arch and -isysroot - # are in CFLAGS or LDFLAGS and remove them if they are. - # This is needed when building extensions on a 10.3 system - # using a universal build of python. - for key in ('LDFLAGS', 'BASECFLAGS', - # a number of derived variables. These need to be - # patched up as well. - 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - flags = _CONFIG_VARS[key] - flags = re.sub(r'-arch\s+\w+\s', ' ', flags) - flags = re.sub('-isysroot [^ \t]*', ' ', flags) - _CONFIG_VARS[key] = flags - else: - # Allow the user to override the architecture flags using - # an environment variable. - # NOTE: This name was introduced by Apple in OSX 10.5 and - # is used by several scripting languages distributed with - # that OS release. - if 'ARCHFLAGS' in os.environ: - arch = os.environ['ARCHFLAGS'] - for key in ('LDFLAGS', 'BASECFLAGS', - # a number of derived variables. These need to be - # patched up as well. - 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - - flags = _CONFIG_VARS[key] - flags = re.sub(r'-arch\s+\w+\s', ' ', flags) - flags = flags + ' ' + arch - _CONFIG_VARS[key] = flags - - # If we're on OSX 10.5 or later and the user tries to - # compiles an extension using an SDK that is not present - # on the current machine it is better to not use an SDK - # than to fail. - # - # The major usecase for this is users using a Python.org - # binary installer on OSX 10.6: that installer uses - # the 10.4u SDK, but that SDK is not installed by default - # when you install Xcode. - # - CFLAGS = _CONFIG_VARS.get('CFLAGS', '') - m = re.search(r'-isysroot\s+(\S+)', CFLAGS) - if m is not None: - sdk = m.group(1) - if not os.path.exists(sdk): - for key in ('LDFLAGS', 'BASECFLAGS', - # a number of derived variables. These need to be - # patched up as well. - 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - - flags = _CONFIG_VARS[key] - flags = re.sub(r'-isysroot\s+\S+(\s|$)', ' ', flags) - _CONFIG_VARS[key] = flags - - if args: - vals = [] - for name in args: - vals.append(_CONFIG_VARS.get(name)) - return vals - else: - return _CONFIG_VARS - - -def get_config_var(name): - """Return the value of a single variable using the dictionary returned by - 'get_config_vars()'. - - Equivalent to get_config_vars().get(name) - """ - return get_config_vars().get(name) - - -def get_platform(): - """Return a string that identifies the current platform. - - This is used mainly to distinguish platform-specific build directories and - platform-specific built distributions. Typically includes the OS name - and version and the architecture (as supplied by 'os.uname()'), - although the exact information included depends on the OS; eg. for IRIX - the architecture isn't particularly important (IRIX only runs on SGI - hardware), but for Linux the kernel version isn't particularly - important. - - Examples of returned values: - linux-i586 - linux-alpha (?) - solaris-2.6-sun4u - irix-5.3 - irix64-6.2 - - Windows will return one of: - win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) - win-ia64 (64bit Windows on Itanium) - win32 (all others - specifically, sys.platform is returned) - - For other non-POSIX platforms, currently just returns 'sys.platform'. - """ - if os.name == 'nt': - # sniff sys.version for architecture. - prefix = " bit (" - i = sys.version.find(prefix) - if i == -1: - return sys.platform - j = sys.version.find(")", i) - look = sys.version[i+len(prefix):j].lower() - if look == 'amd64': - return 'win-amd64' - if look == 'itanium': - return 'win-ia64' - return sys.platform - - if os.name != "posix" or not hasattr(os, 'uname'): - # XXX what about the architecture? NT is Intel or Alpha, - # Mac OS is M68k or PPC, etc. - return sys.platform - - # Try to distinguish various flavours of Unix - osname, host, release, version, machine = os.uname() - - # Convert the OS name to lowercase, remove '/' characters - # (to accommodate BSD/OS), and translate spaces (for "Power Macintosh") - osname = osname.lower().replace('/', '') - machine = machine.replace(' ', '_') - machine = machine.replace('/', '-') - - if osname[:5] == "linux": - # At least on Linux/Intel, 'machine' is the processor -- - # i386, etc. - # XXX what about Alpha, SPARC, etc? - return "%s-%s" % (osname, machine) - elif osname[:5] == "sunos": - if release[0] >= "5": # SunOS 5 == Solaris 2 - osname = "solaris" - release = "%d.%s" % (int(release[0]) - 3, release[2:]) - # fall through to standard osname-release-machine representation - elif osname[:4] == "irix": # could be "irix64"! - return "%s-%s" % (osname, release) - elif osname[:3] == "aix": - return "%s-%s.%s" % (osname, version, release) - elif osname[:6] == "cygwin": - osname = "cygwin" - rel_re = re.compile(r'[\d.]+') - m = rel_re.match(release) - if m: - release = m.group() - elif osname[:6] == "darwin": - # - # For our purposes, we'll assume that the system version from - # distutils' perspective is what MACOSX_DEPLOYMENT_TARGET is set - # to. This makes the compatibility story a bit more sane because the - # machine is going to compile and link as if it were - # MACOSX_DEPLOYMENT_TARGET. - cfgvars = get_config_vars() - macver = cfgvars.get('MACOSX_DEPLOYMENT_TARGET') - - if True: - # Always calculate the release of the running machine, - # needed to determine if we can build fat binaries or not. - - macrelease = macver - # Get the system version. Reading this plist is a documented - # way to get the system version (see the documentation for - # the Gestalt Manager) - try: - f = open('/System/Library/CoreServices/SystemVersion.plist') - except IOError: - # We're on a plain darwin box, fall back to the default - # behaviour. - pass - else: - try: - m = re.search(r'ProductUserVisibleVersion\s*' - r'(.*?)', f.read()) - finally: - f.close() - if m is not None: - macrelease = '.'.join(m.group(1).split('.')[:2]) - # else: fall back to the default behaviour - - if not macver: - macver = macrelease - - if macver: - release = macver - osname = "macosx" - - if ((macrelease + '.') >= '10.4.' and - '-arch' in get_config_vars().get('CFLAGS', '').strip()): - # The universal build will build fat binaries, but not on - # systems before 10.4 - # - # Try to detect 4-way universal builds, those have machine-type - # 'universal' instead of 'fat'. - - machine = 'fat' - cflags = get_config_vars().get('CFLAGS') - - archs = re.findall(r'-arch\s+(\S+)', cflags) - archs = tuple(sorted(set(archs))) - - if len(archs) == 1: - machine = archs[0] - elif archs == ('i386', 'ppc'): - machine = 'fat' - elif archs == ('i386', 'x86_64'): - machine = 'intel' - elif archs == ('i386', 'ppc', 'x86_64'): - machine = 'fat3' - elif archs == ('ppc64', 'x86_64'): - machine = 'fat64' - elif archs == ('i386', 'ppc', 'ppc64', 'x86_64'): - machine = 'universal' - else: - raise ValueError( - "Don't know machine value for archs=%r" % (archs,)) - - elif machine == 'i386': - # On OSX the machine type returned by uname is always the - # 32-bit variant, even if the executable architecture is - # the 64-bit variant - if sys.maxsize >= 2**32: - machine = 'x86_64' - - elif machine in ('PowerPC', 'Power_Macintosh'): - # Pick a sane name for the PPC architecture. - # See 'i386' case - if sys.maxsize >= 2**32: - machine = 'ppc64' - else: - machine = 'ppc' - - return "%s-%s-%s" % (osname, release, machine) - - -def get_python_version(): - return _PY_VERSION_SHORT - - -def _print_dict(title, data): - for index, (key, value) in enumerate(sorted(data.items())): - if index == 0: - print('%s: ' % (title)) - print('\t%s = "%s"' % (key, value)) - - -def _main(): - """Display all information sysconfig detains.""" - print('Platform: "%s"' % get_platform()) - print('Python version: "%s"' % get_python_version()) - print('Current installation scheme: "%s"' % _get_default_scheme()) - print() - _print_dict('Paths', get_paths()) - print() - _print_dict('Variables', get_config_vars()) - - -if __name__ == '__main__': - _main() diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/tarfile.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/tarfile.py deleted file mode 100644 index d66d856..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/tarfile.py +++ /dev/null @@ -1,2607 +0,0 @@ -#------------------------------------------------------------------- -# tarfile.py -#------------------------------------------------------------------- -# Copyright (C) 2002 Lars Gustaebel -# All rights reserved. -# -# Permission is hereby granted, free of charge, to any person -# obtaining a copy of this software and associated documentation -# files (the "Software"), to deal in the Software without -# restriction, including without limitation the rights to use, -# copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following -# conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -from __future__ import print_function - -"""Read from and write to tar format archives. -""" - -__version__ = "$Revision$" - -version = "0.9.0" -__author__ = "Lars Gust\u00e4bel (lars@gustaebel.de)" -__date__ = "$Date: 2011-02-25 17:42:01 +0200 (Fri, 25 Feb 2011) $" -__cvsid__ = "$Id: tarfile.py 88586 2011-02-25 15:42:01Z marc-andre.lemburg $" -__credits__ = "Gustavo Niemeyer, Niels Gust\u00e4bel, Richard Townsend." - -#--------- -# Imports -#--------- -import sys -import os -import stat -import errno -import time -import struct -import copy -import re - -try: - import grp, pwd -except ImportError: - grp = pwd = None - -# os.symlink on Windows prior to 6.0 raises NotImplementedError -symlink_exception = (AttributeError, NotImplementedError) -try: - # WindowsError (1314) will be raised if the caller does not hold the - # SeCreateSymbolicLinkPrivilege privilege - symlink_exception += (WindowsError,) -except NameError: - pass - -# from tarfile import * -__all__ = ["TarFile", "TarInfo", "is_tarfile", "TarError"] - -if sys.version_info[0] < 3: - import __builtin__ as builtins -else: - import builtins - -_open = builtins.open # Since 'open' is TarFile.open - -#--------------------------------------------------------- -# tar constants -#--------------------------------------------------------- -NUL = b"\0" # the null character -BLOCKSIZE = 512 # length of processing blocks -RECORDSIZE = BLOCKSIZE * 20 # length of records -GNU_MAGIC = b"ustar \0" # magic gnu tar string -POSIX_MAGIC = b"ustar\x0000" # magic posix tar string - -LENGTH_NAME = 100 # maximum length of a filename -LENGTH_LINK = 100 # maximum length of a linkname -LENGTH_PREFIX = 155 # maximum length of the prefix field - -REGTYPE = b"0" # regular file -AREGTYPE = b"\0" # regular file -LNKTYPE = b"1" # link (inside tarfile) -SYMTYPE = b"2" # symbolic link -CHRTYPE = b"3" # character special device -BLKTYPE = b"4" # block special device -DIRTYPE = b"5" # directory -FIFOTYPE = b"6" # fifo special device -CONTTYPE = b"7" # contiguous file - -GNUTYPE_LONGNAME = b"L" # GNU tar longname -GNUTYPE_LONGLINK = b"K" # GNU tar longlink -GNUTYPE_SPARSE = b"S" # GNU tar sparse file - -XHDTYPE = b"x" # POSIX.1-2001 extended header -XGLTYPE = b"g" # POSIX.1-2001 global header -SOLARIS_XHDTYPE = b"X" # Solaris extended header - -USTAR_FORMAT = 0 # POSIX.1-1988 (ustar) format -GNU_FORMAT = 1 # GNU tar format -PAX_FORMAT = 2 # POSIX.1-2001 (pax) format -DEFAULT_FORMAT = GNU_FORMAT - -#--------------------------------------------------------- -# tarfile constants -#--------------------------------------------------------- -# File types that tarfile supports: -SUPPORTED_TYPES = (REGTYPE, AREGTYPE, LNKTYPE, - SYMTYPE, DIRTYPE, FIFOTYPE, - CONTTYPE, CHRTYPE, BLKTYPE, - GNUTYPE_LONGNAME, GNUTYPE_LONGLINK, - GNUTYPE_SPARSE) - -# File types that will be treated as a regular file. -REGULAR_TYPES = (REGTYPE, AREGTYPE, - CONTTYPE, GNUTYPE_SPARSE) - -# File types that are part of the GNU tar format. -GNU_TYPES = (GNUTYPE_LONGNAME, GNUTYPE_LONGLINK, - GNUTYPE_SPARSE) - -# Fields from a pax header that override a TarInfo attribute. -PAX_FIELDS = ("path", "linkpath", "size", "mtime", - "uid", "gid", "uname", "gname") - -# Fields from a pax header that are affected by hdrcharset. -PAX_NAME_FIELDS = set(("path", "linkpath", "uname", "gname")) - -# Fields in a pax header that are numbers, all other fields -# are treated as strings. -PAX_NUMBER_FIELDS = { - "atime": float, - "ctime": float, - "mtime": float, - "uid": int, - "gid": int, - "size": int -} - -#--------------------------------------------------------- -# Bits used in the mode field, values in octal. -#--------------------------------------------------------- -S_IFLNK = 0o120000 # symbolic link -S_IFREG = 0o100000 # regular file -S_IFBLK = 0o060000 # block device -S_IFDIR = 0o040000 # directory -S_IFCHR = 0o020000 # character device -S_IFIFO = 0o010000 # fifo - -TSUID = 0o4000 # set UID on execution -TSGID = 0o2000 # set GID on execution -TSVTX = 0o1000 # reserved - -TUREAD = 0o400 # read by owner -TUWRITE = 0o200 # write by owner -TUEXEC = 0o100 # execute/search by owner -TGREAD = 0o040 # read by group -TGWRITE = 0o020 # write by group -TGEXEC = 0o010 # execute/search by group -TOREAD = 0o004 # read by other -TOWRITE = 0o002 # write by other -TOEXEC = 0o001 # execute/search by other - -#--------------------------------------------------------- -# initialization -#--------------------------------------------------------- -if os.name in ("nt", "ce"): - ENCODING = "utf-8" -else: - ENCODING = sys.getfilesystemencoding() - -#--------------------------------------------------------- -# Some useful functions -#--------------------------------------------------------- - -def stn(s, length, encoding, errors): - """Convert a string to a null-terminated bytes object. - """ - s = s.encode(encoding, errors) - return s[:length] + (length - len(s)) * NUL - -def nts(s, encoding, errors): - """Convert a null-terminated bytes object to a string. - """ - p = s.find(b"\0") - if p != -1: - s = s[:p] - return s.decode(encoding, errors) - -def nti(s): - """Convert a number field to a python number. - """ - # There are two possible encodings for a number field, see - # itn() below. - if s[0] != chr(0o200): - try: - n = int(nts(s, "ascii", "strict") or "0", 8) - except ValueError: - raise InvalidHeaderError("invalid header") - else: - n = 0 - for i in range(len(s) - 1): - n <<= 8 - n += ord(s[i + 1]) - return n - -def itn(n, digits=8, format=DEFAULT_FORMAT): - """Convert a python number to a number field. - """ - # POSIX 1003.1-1988 requires numbers to be encoded as a string of - # octal digits followed by a null-byte, this allows values up to - # (8**(digits-1))-1. GNU tar allows storing numbers greater than - # that if necessary. A leading 0o200 byte indicates this particular - # encoding, the following digits-1 bytes are a big-endian - # representation. This allows values up to (256**(digits-1))-1. - if 0 <= n < 8 ** (digits - 1): - s = ("%0*o" % (digits - 1, n)).encode("ascii") + NUL - else: - if format != GNU_FORMAT or n >= 256 ** (digits - 1): - raise ValueError("overflow in number field") - - if n < 0: - # XXX We mimic GNU tar's behaviour with negative numbers, - # this could raise OverflowError. - n = struct.unpack("L", struct.pack("l", n))[0] - - s = bytearray() - for i in range(digits - 1): - s.insert(0, n & 0o377) - n >>= 8 - s.insert(0, 0o200) - return s - -def calc_chksums(buf): - """Calculate the checksum for a member's header by summing up all - characters except for the chksum field which is treated as if - it was filled with spaces. According to the GNU tar sources, - some tars (Sun and NeXT) calculate chksum with signed char, - which will be different if there are chars in the buffer with - the high bit set. So we calculate two checksums, unsigned and - signed. - """ - unsigned_chksum = 256 + sum(struct.unpack("148B", buf[:148]) + struct.unpack("356B", buf[156:512])) - signed_chksum = 256 + sum(struct.unpack("148b", buf[:148]) + struct.unpack("356b", buf[156:512])) - return unsigned_chksum, signed_chksum - -def copyfileobj(src, dst, length=None): - """Copy length bytes from fileobj src to fileobj dst. - If length is None, copy the entire content. - """ - if length == 0: - return - if length is None: - while True: - buf = src.read(16*1024) - if not buf: - break - dst.write(buf) - return - - BUFSIZE = 16 * 1024 - blocks, remainder = divmod(length, BUFSIZE) - for b in range(blocks): - buf = src.read(BUFSIZE) - if len(buf) < BUFSIZE: - raise IOError("end of file reached") - dst.write(buf) - - if remainder != 0: - buf = src.read(remainder) - if len(buf) < remainder: - raise IOError("end of file reached") - dst.write(buf) - return - -filemode_table = ( - ((S_IFLNK, "l"), - (S_IFREG, "-"), - (S_IFBLK, "b"), - (S_IFDIR, "d"), - (S_IFCHR, "c"), - (S_IFIFO, "p")), - - ((TUREAD, "r"),), - ((TUWRITE, "w"),), - ((TUEXEC|TSUID, "s"), - (TSUID, "S"), - (TUEXEC, "x")), - - ((TGREAD, "r"),), - ((TGWRITE, "w"),), - ((TGEXEC|TSGID, "s"), - (TSGID, "S"), - (TGEXEC, "x")), - - ((TOREAD, "r"),), - ((TOWRITE, "w"),), - ((TOEXEC|TSVTX, "t"), - (TSVTX, "T"), - (TOEXEC, "x")) -) - -def filemode(mode): - """Convert a file's mode to a string of the form - -rwxrwxrwx. - Used by TarFile.list() - """ - perm = [] - for table in filemode_table: - for bit, char in table: - if mode & bit == bit: - perm.append(char) - break - else: - perm.append("-") - return "".join(perm) - -class TarError(Exception): - """Base exception.""" - pass -class ExtractError(TarError): - """General exception for extract errors.""" - pass -class ReadError(TarError): - """Exception for unreadable tar archives.""" - pass -class CompressionError(TarError): - """Exception for unavailable compression methods.""" - pass -class StreamError(TarError): - """Exception for unsupported operations on stream-like TarFiles.""" - pass -class HeaderError(TarError): - """Base exception for header errors.""" - pass -class EmptyHeaderError(HeaderError): - """Exception for empty headers.""" - pass -class TruncatedHeaderError(HeaderError): - """Exception for truncated headers.""" - pass -class EOFHeaderError(HeaderError): - """Exception for end of file headers.""" - pass -class InvalidHeaderError(HeaderError): - """Exception for invalid headers.""" - pass -class SubsequentHeaderError(HeaderError): - """Exception for missing and invalid extended headers.""" - pass - -#--------------------------- -# internal stream interface -#--------------------------- -class _LowLevelFile(object): - """Low-level file object. Supports reading and writing. - It is used instead of a regular file object for streaming - access. - """ - - def __init__(self, name, mode): - mode = { - "r": os.O_RDONLY, - "w": os.O_WRONLY | os.O_CREAT | os.O_TRUNC, - }[mode] - if hasattr(os, "O_BINARY"): - mode |= os.O_BINARY - self.fd = os.open(name, mode, 0o666) - - def close(self): - os.close(self.fd) - - def read(self, size): - return os.read(self.fd, size) - - def write(self, s): - os.write(self.fd, s) - -class _Stream(object): - """Class that serves as an adapter between TarFile and - a stream-like object. The stream-like object only - needs to have a read() or write() method and is accessed - blockwise. Use of gzip or bzip2 compression is possible. - A stream-like object could be for example: sys.stdin, - sys.stdout, a socket, a tape device etc. - - _Stream is intended to be used only internally. - """ - - def __init__(self, name, mode, comptype, fileobj, bufsize): - """Construct a _Stream object. - """ - self._extfileobj = True - if fileobj is None: - fileobj = _LowLevelFile(name, mode) - self._extfileobj = False - - if comptype == '*': - # Enable transparent compression detection for the - # stream interface - fileobj = _StreamProxy(fileobj) - comptype = fileobj.getcomptype() - - self.name = name or "" - self.mode = mode - self.comptype = comptype - self.fileobj = fileobj - self.bufsize = bufsize - self.buf = b"" - self.pos = 0 - self.closed = False - - try: - if comptype == "gz": - try: - import zlib - except ImportError: - raise CompressionError("zlib module is not available") - self.zlib = zlib - self.crc = zlib.crc32(b"") - if mode == "r": - self._init_read_gz() - else: - self._init_write_gz() - - if comptype == "bz2": - try: - import bz2 - except ImportError: - raise CompressionError("bz2 module is not available") - if mode == "r": - self.dbuf = b"" - self.cmp = bz2.BZ2Decompressor() - else: - self.cmp = bz2.BZ2Compressor() - except: - if not self._extfileobj: - self.fileobj.close() - self.closed = True - raise - - def __del__(self): - if hasattr(self, "closed") and not self.closed: - self.close() - - def _init_write_gz(self): - """Initialize for writing with gzip compression. - """ - self.cmp = self.zlib.compressobj(9, self.zlib.DEFLATED, - -self.zlib.MAX_WBITS, - self.zlib.DEF_MEM_LEVEL, - 0) - timestamp = struct.pack(" self.bufsize: - self.fileobj.write(self.buf[:self.bufsize]) - self.buf = self.buf[self.bufsize:] - - def close(self): - """Close the _Stream object. No operation should be - done on it afterwards. - """ - if self.closed: - return - - if self.mode == "w" and self.comptype != "tar": - self.buf += self.cmp.flush() - - if self.mode == "w" and self.buf: - self.fileobj.write(self.buf) - self.buf = b"" - if self.comptype == "gz": - # The native zlib crc is an unsigned 32-bit integer, but - # the Python wrapper implicitly casts that to a signed C - # long. So, on a 32-bit box self.crc may "look negative", - # while the same crc on a 64-bit box may "look positive". - # To avoid irksome warnings from the `struct` module, force - # it to look positive on all boxes. - self.fileobj.write(struct.pack("= 0: - blocks, remainder = divmod(pos - self.pos, self.bufsize) - for i in range(blocks): - self.read(self.bufsize) - self.read(remainder) - else: - raise StreamError("seeking backwards is not allowed") - return self.pos - - def read(self, size=None): - """Return the next size number of bytes from the stream. - If size is not defined, return all bytes of the stream - up to EOF. - """ - if size is None: - t = [] - while True: - buf = self._read(self.bufsize) - if not buf: - break - t.append(buf) - buf = "".join(t) - else: - buf = self._read(size) - self.pos += len(buf) - return buf - - def _read(self, size): - """Return size bytes from the stream. - """ - if self.comptype == "tar": - return self.__read(size) - - c = len(self.dbuf) - while c < size: - buf = self.__read(self.bufsize) - if not buf: - break - try: - buf = self.cmp.decompress(buf) - except IOError: - raise ReadError("invalid compressed data") - self.dbuf += buf - c += len(buf) - buf = self.dbuf[:size] - self.dbuf = self.dbuf[size:] - return buf - - def __read(self, size): - """Return size bytes from stream. If internal buffer is empty, - read another block from the stream. - """ - c = len(self.buf) - while c < size: - buf = self.fileobj.read(self.bufsize) - if not buf: - break - self.buf += buf - c += len(buf) - buf = self.buf[:size] - self.buf = self.buf[size:] - return buf -# class _Stream - -class _StreamProxy(object): - """Small proxy class that enables transparent compression - detection for the Stream interface (mode 'r|*'). - """ - - def __init__(self, fileobj): - self.fileobj = fileobj - self.buf = self.fileobj.read(BLOCKSIZE) - - def read(self, size): - self.read = self.fileobj.read - return self.buf - - def getcomptype(self): - if self.buf.startswith(b"\037\213\010"): - return "gz" - if self.buf.startswith(b"BZh91"): - return "bz2" - return "tar" - - def close(self): - self.fileobj.close() -# class StreamProxy - -class _BZ2Proxy(object): - """Small proxy class that enables external file object - support for "r:bz2" and "w:bz2" modes. This is actually - a workaround for a limitation in bz2 module's BZ2File - class which (unlike gzip.GzipFile) has no support for - a file object argument. - """ - - blocksize = 16 * 1024 - - def __init__(self, fileobj, mode): - self.fileobj = fileobj - self.mode = mode - self.name = getattr(self.fileobj, "name", None) - self.init() - - def init(self): - import bz2 - self.pos = 0 - if self.mode == "r": - self.bz2obj = bz2.BZ2Decompressor() - self.fileobj.seek(0) - self.buf = b"" - else: - self.bz2obj = bz2.BZ2Compressor() - - def read(self, size): - x = len(self.buf) - while x < size: - raw = self.fileobj.read(self.blocksize) - if not raw: - break - data = self.bz2obj.decompress(raw) - self.buf += data - x += len(data) - - buf = self.buf[:size] - self.buf = self.buf[size:] - self.pos += len(buf) - return buf - - def seek(self, pos): - if pos < self.pos: - self.init() - self.read(pos - self.pos) - - def tell(self): - return self.pos - - def write(self, data): - self.pos += len(data) - raw = self.bz2obj.compress(data) - self.fileobj.write(raw) - - def close(self): - if self.mode == "w": - raw = self.bz2obj.flush() - self.fileobj.write(raw) -# class _BZ2Proxy - -#------------------------ -# Extraction file object -#------------------------ -class _FileInFile(object): - """A thin wrapper around an existing file object that - provides a part of its data as an individual file - object. - """ - - def __init__(self, fileobj, offset, size, blockinfo=None): - self.fileobj = fileobj - self.offset = offset - self.size = size - self.position = 0 - - if blockinfo is None: - blockinfo = [(0, size)] - - # Construct a map with data and zero blocks. - self.map_index = 0 - self.map = [] - lastpos = 0 - realpos = self.offset - for offset, size in blockinfo: - if offset > lastpos: - self.map.append((False, lastpos, offset, None)) - self.map.append((True, offset, offset + size, realpos)) - realpos += size - lastpos = offset + size - if lastpos < self.size: - self.map.append((False, lastpos, self.size, None)) - - def seekable(self): - if not hasattr(self.fileobj, "seekable"): - # XXX gzip.GzipFile and bz2.BZ2File - return True - return self.fileobj.seekable() - - def tell(self): - """Return the current file position. - """ - return self.position - - def seek(self, position): - """Seek to a position in the file. - """ - self.position = position - - def read(self, size=None): - """Read data from the file. - """ - if size is None: - size = self.size - self.position - else: - size = min(size, self.size - self.position) - - buf = b"" - while size > 0: - while True: - data, start, stop, offset = self.map[self.map_index] - if start <= self.position < stop: - break - else: - self.map_index += 1 - if self.map_index == len(self.map): - self.map_index = 0 - length = min(size, stop - self.position) - if data: - self.fileobj.seek(offset + (self.position - start)) - buf += self.fileobj.read(length) - else: - buf += NUL * length - size -= length - self.position += length - return buf -#class _FileInFile - - -class ExFileObject(object): - """File-like object for reading an archive member. - Is returned by TarFile.extractfile(). - """ - blocksize = 1024 - - def __init__(self, tarfile, tarinfo): - self.fileobj = _FileInFile(tarfile.fileobj, - tarinfo.offset_data, - tarinfo.size, - tarinfo.sparse) - self.name = tarinfo.name - self.mode = "r" - self.closed = False - self.size = tarinfo.size - - self.position = 0 - self.buffer = b"" - - def readable(self): - return True - - def writable(self): - return False - - def seekable(self): - return self.fileobj.seekable() - - def read(self, size=None): - """Read at most size bytes from the file. If size is not - present or None, read all data until EOF is reached. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - buf = b"" - if self.buffer: - if size is None: - buf = self.buffer - self.buffer = b"" - else: - buf = self.buffer[:size] - self.buffer = self.buffer[size:] - - if size is None: - buf += self.fileobj.read() - else: - buf += self.fileobj.read(size - len(buf)) - - self.position += len(buf) - return buf - - # XXX TextIOWrapper uses the read1() method. - read1 = read - - def readline(self, size=-1): - """Read one entire line from the file. If size is present - and non-negative, return a string with at most that - size, which may be an incomplete line. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - pos = self.buffer.find(b"\n") + 1 - if pos == 0: - # no newline found. - while True: - buf = self.fileobj.read(self.blocksize) - self.buffer += buf - if not buf or b"\n" in buf: - pos = self.buffer.find(b"\n") + 1 - if pos == 0: - # no newline found. - pos = len(self.buffer) - break - - if size != -1: - pos = min(size, pos) - - buf = self.buffer[:pos] - self.buffer = self.buffer[pos:] - self.position += len(buf) - return buf - - def readlines(self): - """Return a list with all remaining lines. - """ - result = [] - while True: - line = self.readline() - if not line: break - result.append(line) - return result - - def tell(self): - """Return the current file position. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - return self.position - - def seek(self, pos, whence=os.SEEK_SET): - """Seek to a position in the file. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - if whence == os.SEEK_SET: - self.position = min(max(pos, 0), self.size) - elif whence == os.SEEK_CUR: - if pos < 0: - self.position = max(self.position + pos, 0) - else: - self.position = min(self.position + pos, self.size) - elif whence == os.SEEK_END: - self.position = max(min(self.size + pos, self.size), 0) - else: - raise ValueError("Invalid argument") - - self.buffer = b"" - self.fileobj.seek(self.position) - - def close(self): - """Close the file object. - """ - self.closed = True - - def __iter__(self): - """Get an iterator over the file's lines. - """ - while True: - line = self.readline() - if not line: - break - yield line -#class ExFileObject - -#------------------ -# Exported Classes -#------------------ -class TarInfo(object): - """Informational class which holds the details about an - archive member given by a tar header block. - TarInfo objects are returned by TarFile.getmember(), - TarFile.getmembers() and TarFile.gettarinfo() and are - usually created internally. - """ - - __slots__ = ("name", "mode", "uid", "gid", "size", "mtime", - "chksum", "type", "linkname", "uname", "gname", - "devmajor", "devminor", - "offset", "offset_data", "pax_headers", "sparse", - "tarfile", "_sparse_structs", "_link_target") - - def __init__(self, name=""): - """Construct a TarInfo object. name is the optional name - of the member. - """ - self.name = name # member name - self.mode = 0o644 # file permissions - self.uid = 0 # user id - self.gid = 0 # group id - self.size = 0 # file size - self.mtime = 0 # modification time - self.chksum = 0 # header checksum - self.type = REGTYPE # member type - self.linkname = "" # link name - self.uname = "" # user name - self.gname = "" # group name - self.devmajor = 0 # device major number - self.devminor = 0 # device minor number - - self.offset = 0 # the tar header starts here - self.offset_data = 0 # the file's data starts here - - self.sparse = None # sparse member information - self.pax_headers = {} # pax header information - - # In pax headers the "name" and "linkname" field are called - # "path" and "linkpath". - def _getpath(self): - return self.name - def _setpath(self, name): - self.name = name - path = property(_getpath, _setpath) - - def _getlinkpath(self): - return self.linkname - def _setlinkpath(self, linkname): - self.linkname = linkname - linkpath = property(_getlinkpath, _setlinkpath) - - def __repr__(self): - return "<%s %r at %#x>" % (self.__class__.__name__,self.name,id(self)) - - def get_info(self): - """Return the TarInfo's attributes as a dictionary. - """ - info = { - "name": self.name, - "mode": self.mode & 0o7777, - "uid": self.uid, - "gid": self.gid, - "size": self.size, - "mtime": self.mtime, - "chksum": self.chksum, - "type": self.type, - "linkname": self.linkname, - "uname": self.uname, - "gname": self.gname, - "devmajor": self.devmajor, - "devminor": self.devminor - } - - if info["type"] == DIRTYPE and not info["name"].endswith("/"): - info["name"] += "/" - - return info - - def tobuf(self, format=DEFAULT_FORMAT, encoding=ENCODING, errors="surrogateescape"): - """Return a tar header as a string of 512 byte blocks. - """ - info = self.get_info() - - if format == USTAR_FORMAT: - return self.create_ustar_header(info, encoding, errors) - elif format == GNU_FORMAT: - return self.create_gnu_header(info, encoding, errors) - elif format == PAX_FORMAT: - return self.create_pax_header(info, encoding) - else: - raise ValueError("invalid format") - - def create_ustar_header(self, info, encoding, errors): - """Return the object as a ustar header block. - """ - info["magic"] = POSIX_MAGIC - - if len(info["linkname"]) > LENGTH_LINK: - raise ValueError("linkname is too long") - - if len(info["name"]) > LENGTH_NAME: - info["prefix"], info["name"] = self._posix_split_name(info["name"]) - - return self._create_header(info, USTAR_FORMAT, encoding, errors) - - def create_gnu_header(self, info, encoding, errors): - """Return the object as a GNU header block sequence. - """ - info["magic"] = GNU_MAGIC - - buf = b"" - if len(info["linkname"]) > LENGTH_LINK: - buf += self._create_gnu_long_header(info["linkname"], GNUTYPE_LONGLINK, encoding, errors) - - if len(info["name"]) > LENGTH_NAME: - buf += self._create_gnu_long_header(info["name"], GNUTYPE_LONGNAME, encoding, errors) - - return buf + self._create_header(info, GNU_FORMAT, encoding, errors) - - def create_pax_header(self, info, encoding): - """Return the object as a ustar header block. If it cannot be - represented this way, prepend a pax extended header sequence - with supplement information. - """ - info["magic"] = POSIX_MAGIC - pax_headers = self.pax_headers.copy() - - # Test string fields for values that exceed the field length or cannot - # be represented in ASCII encoding. - for name, hname, length in ( - ("name", "path", LENGTH_NAME), ("linkname", "linkpath", LENGTH_LINK), - ("uname", "uname", 32), ("gname", "gname", 32)): - - if hname in pax_headers: - # The pax header has priority. - continue - - # Try to encode the string as ASCII. - try: - info[name].encode("ascii", "strict") - except UnicodeEncodeError: - pax_headers[hname] = info[name] - continue - - if len(info[name]) > length: - pax_headers[hname] = info[name] - - # Test number fields for values that exceed the field limit or values - # that like to be stored as float. - for name, digits in (("uid", 8), ("gid", 8), ("size", 12), ("mtime", 12)): - if name in pax_headers: - # The pax header has priority. Avoid overflow. - info[name] = 0 - continue - - val = info[name] - if not 0 <= val < 8 ** (digits - 1) or isinstance(val, float): - pax_headers[name] = str(val) - info[name] = 0 - - # Create a pax extended header if necessary. - if pax_headers: - buf = self._create_pax_generic_header(pax_headers, XHDTYPE, encoding) - else: - buf = b"" - - return buf + self._create_header(info, USTAR_FORMAT, "ascii", "replace") - - @classmethod - def create_pax_global_header(cls, pax_headers): - """Return the object as a pax global header block sequence. - """ - return cls._create_pax_generic_header(pax_headers, XGLTYPE, "utf8") - - def _posix_split_name(self, name): - """Split a name longer than 100 chars into a prefix - and a name part. - """ - prefix = name[:LENGTH_PREFIX + 1] - while prefix and prefix[-1] != "/": - prefix = prefix[:-1] - - name = name[len(prefix):] - prefix = prefix[:-1] - - if not prefix or len(name) > LENGTH_NAME: - raise ValueError("name is too long") - return prefix, name - - @staticmethod - def _create_header(info, format, encoding, errors): - """Return a header block. info is a dictionary with file - information, format must be one of the *_FORMAT constants. - """ - parts = [ - stn(info.get("name", ""), 100, encoding, errors), - itn(info.get("mode", 0) & 0o7777, 8, format), - itn(info.get("uid", 0), 8, format), - itn(info.get("gid", 0), 8, format), - itn(info.get("size", 0), 12, format), - itn(info.get("mtime", 0), 12, format), - b" ", # checksum field - info.get("type", REGTYPE), - stn(info.get("linkname", ""), 100, encoding, errors), - info.get("magic", POSIX_MAGIC), - stn(info.get("uname", ""), 32, encoding, errors), - stn(info.get("gname", ""), 32, encoding, errors), - itn(info.get("devmajor", 0), 8, format), - itn(info.get("devminor", 0), 8, format), - stn(info.get("prefix", ""), 155, encoding, errors) - ] - - buf = struct.pack("%ds" % BLOCKSIZE, b"".join(parts)) - chksum = calc_chksums(buf[-BLOCKSIZE:])[0] - buf = buf[:-364] + ("%06o\0" % chksum).encode("ascii") + buf[-357:] - return buf - - @staticmethod - def _create_payload(payload): - """Return the string payload filled with zero bytes - up to the next 512 byte border. - """ - blocks, remainder = divmod(len(payload), BLOCKSIZE) - if remainder > 0: - payload += (BLOCKSIZE - remainder) * NUL - return payload - - @classmethod - def _create_gnu_long_header(cls, name, type, encoding, errors): - """Return a GNUTYPE_LONGNAME or GNUTYPE_LONGLINK sequence - for name. - """ - name = name.encode(encoding, errors) + NUL - - info = {} - info["name"] = "././@LongLink" - info["type"] = type - info["size"] = len(name) - info["magic"] = GNU_MAGIC - - # create extended header + name blocks. - return cls._create_header(info, USTAR_FORMAT, encoding, errors) + \ - cls._create_payload(name) - - @classmethod - def _create_pax_generic_header(cls, pax_headers, type, encoding): - """Return a POSIX.1-2008 extended or global header sequence - that contains a list of keyword, value pairs. The values - must be strings. - """ - # Check if one of the fields contains surrogate characters and thereby - # forces hdrcharset=BINARY, see _proc_pax() for more information. - binary = False - for keyword, value in pax_headers.items(): - try: - value.encode("utf8", "strict") - except UnicodeEncodeError: - binary = True - break - - records = b"" - if binary: - # Put the hdrcharset field at the beginning of the header. - records += b"21 hdrcharset=BINARY\n" - - for keyword, value in pax_headers.items(): - keyword = keyword.encode("utf8") - if binary: - # Try to restore the original byte representation of `value'. - # Needless to say, that the encoding must match the string. - value = value.encode(encoding, "surrogateescape") - else: - value = value.encode("utf8") - - l = len(keyword) + len(value) + 3 # ' ' + '=' + '\n' - n = p = 0 - while True: - n = l + len(str(p)) - if n == p: - break - p = n - records += bytes(str(p), "ascii") + b" " + keyword + b"=" + value + b"\n" - - # We use a hardcoded "././@PaxHeader" name like star does - # instead of the one that POSIX recommends. - info = {} - info["name"] = "././@PaxHeader" - info["type"] = type - info["size"] = len(records) - info["magic"] = POSIX_MAGIC - - # Create pax header + record blocks. - return cls._create_header(info, USTAR_FORMAT, "ascii", "replace") + \ - cls._create_payload(records) - - @classmethod - def frombuf(cls, buf, encoding, errors): - """Construct a TarInfo object from a 512 byte bytes object. - """ - if len(buf) == 0: - raise EmptyHeaderError("empty header") - if len(buf) != BLOCKSIZE: - raise TruncatedHeaderError("truncated header") - if buf.count(NUL) == BLOCKSIZE: - raise EOFHeaderError("end of file header") - - chksum = nti(buf[148:156]) - if chksum not in calc_chksums(buf): - raise InvalidHeaderError("bad checksum") - - obj = cls() - obj.name = nts(buf[0:100], encoding, errors) - obj.mode = nti(buf[100:108]) - obj.uid = nti(buf[108:116]) - obj.gid = nti(buf[116:124]) - obj.size = nti(buf[124:136]) - obj.mtime = nti(buf[136:148]) - obj.chksum = chksum - obj.type = buf[156:157] - obj.linkname = nts(buf[157:257], encoding, errors) - obj.uname = nts(buf[265:297], encoding, errors) - obj.gname = nts(buf[297:329], encoding, errors) - obj.devmajor = nti(buf[329:337]) - obj.devminor = nti(buf[337:345]) - prefix = nts(buf[345:500], encoding, errors) - - # Old V7 tar format represents a directory as a regular - # file with a trailing slash. - if obj.type == AREGTYPE and obj.name.endswith("/"): - obj.type = DIRTYPE - - # The old GNU sparse format occupies some of the unused - # space in the buffer for up to 4 sparse structures. - # Save the them for later processing in _proc_sparse(). - if obj.type == GNUTYPE_SPARSE: - pos = 386 - structs = [] - for i in range(4): - try: - offset = nti(buf[pos:pos + 12]) - numbytes = nti(buf[pos + 12:pos + 24]) - except ValueError: - break - structs.append((offset, numbytes)) - pos += 24 - isextended = bool(buf[482]) - origsize = nti(buf[483:495]) - obj._sparse_structs = (structs, isextended, origsize) - - # Remove redundant slashes from directories. - if obj.isdir(): - obj.name = obj.name.rstrip("/") - - # Reconstruct a ustar longname. - if prefix and obj.type not in GNU_TYPES: - obj.name = prefix + "/" + obj.name - return obj - - @classmethod - def fromtarfile(cls, tarfile): - """Return the next TarInfo object from TarFile object - tarfile. - """ - buf = tarfile.fileobj.read(BLOCKSIZE) - obj = cls.frombuf(buf, tarfile.encoding, tarfile.errors) - obj.offset = tarfile.fileobj.tell() - BLOCKSIZE - return obj._proc_member(tarfile) - - #-------------------------------------------------------------------------- - # The following are methods that are called depending on the type of a - # member. The entry point is _proc_member() which can be overridden in a - # subclass to add custom _proc_*() methods. A _proc_*() method MUST - # implement the following - # operations: - # 1. Set self.offset_data to the position where the data blocks begin, - # if there is data that follows. - # 2. Set tarfile.offset to the position where the next member's header will - # begin. - # 3. Return self or another valid TarInfo object. - def _proc_member(self, tarfile): - """Choose the right processing method depending on - the type and call it. - """ - if self.type in (GNUTYPE_LONGNAME, GNUTYPE_LONGLINK): - return self._proc_gnulong(tarfile) - elif self.type == GNUTYPE_SPARSE: - return self._proc_sparse(tarfile) - elif self.type in (XHDTYPE, XGLTYPE, SOLARIS_XHDTYPE): - return self._proc_pax(tarfile) - else: - return self._proc_builtin(tarfile) - - def _proc_builtin(self, tarfile): - """Process a builtin type or an unknown type which - will be treated as a regular file. - """ - self.offset_data = tarfile.fileobj.tell() - offset = self.offset_data - if self.isreg() or self.type not in SUPPORTED_TYPES: - # Skip the following data blocks. - offset += self._block(self.size) - tarfile.offset = offset - - # Patch the TarInfo object with saved global - # header information. - self._apply_pax_info(tarfile.pax_headers, tarfile.encoding, tarfile.errors) - - return self - - def _proc_gnulong(self, tarfile): - """Process the blocks that hold a GNU longname - or longlink member. - """ - buf = tarfile.fileobj.read(self._block(self.size)) - - # Fetch the next header and process it. - try: - next = self.fromtarfile(tarfile) - except HeaderError: - raise SubsequentHeaderError("missing or bad subsequent header") - - # Patch the TarInfo object from the next header with - # the longname information. - next.offset = self.offset - if self.type == GNUTYPE_LONGNAME: - next.name = nts(buf, tarfile.encoding, tarfile.errors) - elif self.type == GNUTYPE_LONGLINK: - next.linkname = nts(buf, tarfile.encoding, tarfile.errors) - - return next - - def _proc_sparse(self, tarfile): - """Process a GNU sparse header plus extra headers. - """ - # We already collected some sparse structures in frombuf(). - structs, isextended, origsize = self._sparse_structs - del self._sparse_structs - - # Collect sparse structures from extended header blocks. - while isextended: - buf = tarfile.fileobj.read(BLOCKSIZE) - pos = 0 - for i in range(21): - try: - offset = nti(buf[pos:pos + 12]) - numbytes = nti(buf[pos + 12:pos + 24]) - except ValueError: - break - if offset and numbytes: - structs.append((offset, numbytes)) - pos += 24 - isextended = bool(buf[504]) - self.sparse = structs - - self.offset_data = tarfile.fileobj.tell() - tarfile.offset = self.offset_data + self._block(self.size) - self.size = origsize - return self - - def _proc_pax(self, tarfile): - """Process an extended or global header as described in - POSIX.1-2008. - """ - # Read the header information. - buf = tarfile.fileobj.read(self._block(self.size)) - - # A pax header stores supplemental information for either - # the following file (extended) or all following files - # (global). - if self.type == XGLTYPE: - pax_headers = tarfile.pax_headers - else: - pax_headers = tarfile.pax_headers.copy() - - # Check if the pax header contains a hdrcharset field. This tells us - # the encoding of the path, linkpath, uname and gname fields. Normally, - # these fields are UTF-8 encoded but since POSIX.1-2008 tar - # implementations are allowed to store them as raw binary strings if - # the translation to UTF-8 fails. - match = re.search(br"\d+ hdrcharset=([^\n]+)\n", buf) - if match is not None: - pax_headers["hdrcharset"] = match.group(1).decode("utf8") - - # For the time being, we don't care about anything other than "BINARY". - # The only other value that is currently allowed by the standard is - # "ISO-IR 10646 2000 UTF-8" in other words UTF-8. - hdrcharset = pax_headers.get("hdrcharset") - if hdrcharset == "BINARY": - encoding = tarfile.encoding - else: - encoding = "utf8" - - # Parse pax header information. A record looks like that: - # "%d %s=%s\n" % (length, keyword, value). length is the size - # of the complete record including the length field itself and - # the newline. keyword and value are both UTF-8 encoded strings. - regex = re.compile(br"(\d+) ([^=]+)=") - pos = 0 - while True: - match = regex.match(buf, pos) - if not match: - break - - length, keyword = match.groups() - length = int(length) - value = buf[match.end(2) + 1:match.start(1) + length - 1] - - # Normally, we could just use "utf8" as the encoding and "strict" - # as the error handler, but we better not take the risk. For - # example, GNU tar <= 1.23 is known to store filenames it cannot - # translate to UTF-8 as raw strings (unfortunately without a - # hdrcharset=BINARY header). - # We first try the strict standard encoding, and if that fails we - # fall back on the user's encoding and error handler. - keyword = self._decode_pax_field(keyword, "utf8", "utf8", - tarfile.errors) - if keyword in PAX_NAME_FIELDS: - value = self._decode_pax_field(value, encoding, tarfile.encoding, - tarfile.errors) - else: - value = self._decode_pax_field(value, "utf8", "utf8", - tarfile.errors) - - pax_headers[keyword] = value - pos += length - - # Fetch the next header. - try: - next = self.fromtarfile(tarfile) - except HeaderError: - raise SubsequentHeaderError("missing or bad subsequent header") - - # Process GNU sparse information. - if "GNU.sparse.map" in pax_headers: - # GNU extended sparse format version 0.1. - self._proc_gnusparse_01(next, pax_headers) - - elif "GNU.sparse.size" in pax_headers: - # GNU extended sparse format version 0.0. - self._proc_gnusparse_00(next, pax_headers, buf) - - elif pax_headers.get("GNU.sparse.major") == "1" and pax_headers.get("GNU.sparse.minor") == "0": - # GNU extended sparse format version 1.0. - self._proc_gnusparse_10(next, pax_headers, tarfile) - - if self.type in (XHDTYPE, SOLARIS_XHDTYPE): - # Patch the TarInfo object with the extended header info. - next._apply_pax_info(pax_headers, tarfile.encoding, tarfile.errors) - next.offset = self.offset - - if "size" in pax_headers: - # If the extended header replaces the size field, - # we need to recalculate the offset where the next - # header starts. - offset = next.offset_data - if next.isreg() or next.type not in SUPPORTED_TYPES: - offset += next._block(next.size) - tarfile.offset = offset - - return next - - def _proc_gnusparse_00(self, next, pax_headers, buf): - """Process a GNU tar extended sparse header, version 0.0. - """ - offsets = [] - for match in re.finditer(br"\d+ GNU.sparse.offset=(\d+)\n", buf): - offsets.append(int(match.group(1))) - numbytes = [] - for match in re.finditer(br"\d+ GNU.sparse.numbytes=(\d+)\n", buf): - numbytes.append(int(match.group(1))) - next.sparse = list(zip(offsets, numbytes)) - - def _proc_gnusparse_01(self, next, pax_headers): - """Process a GNU tar extended sparse header, version 0.1. - """ - sparse = [int(x) for x in pax_headers["GNU.sparse.map"].split(",")] - next.sparse = list(zip(sparse[::2], sparse[1::2])) - - def _proc_gnusparse_10(self, next, pax_headers, tarfile): - """Process a GNU tar extended sparse header, version 1.0. - """ - fields = None - sparse = [] - buf = tarfile.fileobj.read(BLOCKSIZE) - fields, buf = buf.split(b"\n", 1) - fields = int(fields) - while len(sparse) < fields * 2: - if b"\n" not in buf: - buf += tarfile.fileobj.read(BLOCKSIZE) - number, buf = buf.split(b"\n", 1) - sparse.append(int(number)) - next.offset_data = tarfile.fileobj.tell() - next.sparse = list(zip(sparse[::2], sparse[1::2])) - - def _apply_pax_info(self, pax_headers, encoding, errors): - """Replace fields with supplemental information from a previous - pax extended or global header. - """ - for keyword, value in pax_headers.items(): - if keyword == "GNU.sparse.name": - setattr(self, "path", value) - elif keyword == "GNU.sparse.size": - setattr(self, "size", int(value)) - elif keyword == "GNU.sparse.realsize": - setattr(self, "size", int(value)) - elif keyword in PAX_FIELDS: - if keyword in PAX_NUMBER_FIELDS: - try: - value = PAX_NUMBER_FIELDS[keyword](value) - except ValueError: - value = 0 - if keyword == "path": - value = value.rstrip("/") - setattr(self, keyword, value) - - self.pax_headers = pax_headers.copy() - - def _decode_pax_field(self, value, encoding, fallback_encoding, fallback_errors): - """Decode a single field from a pax record. - """ - try: - return value.decode(encoding, "strict") - except UnicodeDecodeError: - return value.decode(fallback_encoding, fallback_errors) - - def _block(self, count): - """Round up a byte count by BLOCKSIZE and return it, - e.g. _block(834) => 1024. - """ - blocks, remainder = divmod(count, BLOCKSIZE) - if remainder: - blocks += 1 - return blocks * BLOCKSIZE - - def isreg(self): - return self.type in REGULAR_TYPES - def isfile(self): - return self.isreg() - def isdir(self): - return self.type == DIRTYPE - def issym(self): - return self.type == SYMTYPE - def islnk(self): - return self.type == LNKTYPE - def ischr(self): - return self.type == CHRTYPE - def isblk(self): - return self.type == BLKTYPE - def isfifo(self): - return self.type == FIFOTYPE - def issparse(self): - return self.sparse is not None - def isdev(self): - return self.type in (CHRTYPE, BLKTYPE, FIFOTYPE) -# class TarInfo - -class TarFile(object): - """The TarFile Class provides an interface to tar archives. - """ - - debug = 0 # May be set from 0 (no msgs) to 3 (all msgs) - - dereference = False # If true, add content of linked file to the - # tar file, else the link. - - ignore_zeros = False # If true, skips empty or invalid blocks and - # continues processing. - - errorlevel = 1 # If 0, fatal errors only appear in debug - # messages (if debug >= 0). If > 0, errors - # are passed to the caller as exceptions. - - format = DEFAULT_FORMAT # The format to use when creating an archive. - - encoding = ENCODING # Encoding for 8-bit character strings. - - errors = None # Error handler for unicode conversion. - - tarinfo = TarInfo # The default TarInfo class to use. - - fileobject = ExFileObject # The default ExFileObject class to use. - - def __init__(self, name=None, mode="r", fileobj=None, format=None, - tarinfo=None, dereference=None, ignore_zeros=None, encoding=None, - errors="surrogateescape", pax_headers=None, debug=None, errorlevel=None): - """Open an (uncompressed) tar archive `name'. `mode' is either 'r' to - read from an existing archive, 'a' to append data to an existing - file or 'w' to create a new file overwriting an existing one. `mode' - defaults to 'r'. - If `fileobj' is given, it is used for reading or writing data. If it - can be determined, `mode' is overridden by `fileobj's mode. - `fileobj' is not closed, when TarFile is closed. - """ - if len(mode) > 1 or mode not in "raw": - raise ValueError("mode must be 'r', 'a' or 'w'") - self.mode = mode - self._mode = {"r": "rb", "a": "r+b", "w": "wb"}[mode] - - if not fileobj: - if self.mode == "a" and not os.path.exists(name): - # Create nonexistent files in append mode. - self.mode = "w" - self._mode = "wb" - fileobj = bltn_open(name, self._mode) - self._extfileobj = False - else: - if name is None and hasattr(fileobj, "name"): - name = fileobj.name - if hasattr(fileobj, "mode"): - self._mode = fileobj.mode - self._extfileobj = True - self.name = os.path.abspath(name) if name else None - self.fileobj = fileobj - - # Init attributes. - if format is not None: - self.format = format - if tarinfo is not None: - self.tarinfo = tarinfo - if dereference is not None: - self.dereference = dereference - if ignore_zeros is not None: - self.ignore_zeros = ignore_zeros - if encoding is not None: - self.encoding = encoding - self.errors = errors - - if pax_headers is not None and self.format == PAX_FORMAT: - self.pax_headers = pax_headers - else: - self.pax_headers = {} - - if debug is not None: - self.debug = debug - if errorlevel is not None: - self.errorlevel = errorlevel - - # Init datastructures. - self.closed = False - self.members = [] # list of members as TarInfo objects - self._loaded = False # flag if all members have been read - self.offset = self.fileobj.tell() - # current position in the archive file - self.inodes = {} # dictionary caching the inodes of - # archive members already added - - try: - if self.mode == "r": - self.firstmember = None - self.firstmember = self.next() - - if self.mode == "a": - # Move to the end of the archive, - # before the first empty block. - while True: - self.fileobj.seek(self.offset) - try: - tarinfo = self.tarinfo.fromtarfile(self) - self.members.append(tarinfo) - except EOFHeaderError: - self.fileobj.seek(self.offset) - break - except HeaderError as e: - raise ReadError(str(e)) - - if self.mode in "aw": - self._loaded = True - - if self.pax_headers: - buf = self.tarinfo.create_pax_global_header(self.pax_headers.copy()) - self.fileobj.write(buf) - self.offset += len(buf) - except: - if not self._extfileobj: - self.fileobj.close() - self.closed = True - raise - - #-------------------------------------------------------------------------- - # Below are the classmethods which act as alternate constructors to the - # TarFile class. The open() method is the only one that is needed for - # public use; it is the "super"-constructor and is able to select an - # adequate "sub"-constructor for a particular compression using the mapping - # from OPEN_METH. - # - # This concept allows one to subclass TarFile without losing the comfort of - # the super-constructor. A sub-constructor is registered and made available - # by adding it to the mapping in OPEN_METH. - - @classmethod - def open(cls, name=None, mode="r", fileobj=None, bufsize=RECORDSIZE, **kwargs): - """Open a tar archive for reading, writing or appending. Return - an appropriate TarFile class. - - mode: - 'r' or 'r:*' open for reading with transparent compression - 'r:' open for reading exclusively uncompressed - 'r:gz' open for reading with gzip compression - 'r:bz2' open for reading with bzip2 compression - 'a' or 'a:' open for appending, creating the file if necessary - 'w' or 'w:' open for writing without compression - 'w:gz' open for writing with gzip compression - 'w:bz2' open for writing with bzip2 compression - - 'r|*' open a stream of tar blocks with transparent compression - 'r|' open an uncompressed stream of tar blocks for reading - 'r|gz' open a gzip compressed stream of tar blocks - 'r|bz2' open a bzip2 compressed stream of tar blocks - 'w|' open an uncompressed stream for writing - 'w|gz' open a gzip compressed stream for writing - 'w|bz2' open a bzip2 compressed stream for writing - """ - - if not name and not fileobj: - raise ValueError("nothing to open") - - if mode in ("r", "r:*"): - # Find out which *open() is appropriate for opening the file. - for comptype in cls.OPEN_METH: - func = getattr(cls, cls.OPEN_METH[comptype]) - if fileobj is not None: - saved_pos = fileobj.tell() - try: - return func(name, "r", fileobj, **kwargs) - except (ReadError, CompressionError) as e: - if fileobj is not None: - fileobj.seek(saved_pos) - continue - raise ReadError("file could not be opened successfully") - - elif ":" in mode: - filemode, comptype = mode.split(":", 1) - filemode = filemode or "r" - comptype = comptype or "tar" - - # Select the *open() function according to - # given compression. - if comptype in cls.OPEN_METH: - func = getattr(cls, cls.OPEN_METH[comptype]) - else: - raise CompressionError("unknown compression type %r" % comptype) - return func(name, filemode, fileobj, **kwargs) - - elif "|" in mode: - filemode, comptype = mode.split("|", 1) - filemode = filemode or "r" - comptype = comptype or "tar" - - if filemode not in "rw": - raise ValueError("mode must be 'r' or 'w'") - - stream = _Stream(name, filemode, comptype, fileobj, bufsize) - try: - t = cls(name, filemode, stream, **kwargs) - except: - stream.close() - raise - t._extfileobj = False - return t - - elif mode in "aw": - return cls.taropen(name, mode, fileobj, **kwargs) - - raise ValueError("undiscernible mode") - - @classmethod - def taropen(cls, name, mode="r", fileobj=None, **kwargs): - """Open uncompressed tar archive name for reading or writing. - """ - if len(mode) > 1 or mode not in "raw": - raise ValueError("mode must be 'r', 'a' or 'w'") - return cls(name, mode, fileobj, **kwargs) - - @classmethod - def gzopen(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs): - """Open gzip compressed tar archive name for reading or writing. - Appending is not allowed. - """ - if len(mode) > 1 or mode not in "rw": - raise ValueError("mode must be 'r' or 'w'") - - try: - import gzip - gzip.GzipFile - except (ImportError, AttributeError): - raise CompressionError("gzip module is not available") - - extfileobj = fileobj is not None - try: - fileobj = gzip.GzipFile(name, mode + "b", compresslevel, fileobj) - t = cls.taropen(name, mode, fileobj, **kwargs) - except IOError: - if not extfileobj and fileobj is not None: - fileobj.close() - if fileobj is None: - raise - raise ReadError("not a gzip file") - except: - if not extfileobj and fileobj is not None: - fileobj.close() - raise - t._extfileobj = extfileobj - return t - - @classmethod - def bz2open(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs): - """Open bzip2 compressed tar archive name for reading or writing. - Appending is not allowed. - """ - if len(mode) > 1 or mode not in "rw": - raise ValueError("mode must be 'r' or 'w'.") - - try: - import bz2 - except ImportError: - raise CompressionError("bz2 module is not available") - - if fileobj is not None: - fileobj = _BZ2Proxy(fileobj, mode) - else: - fileobj = bz2.BZ2File(name, mode, compresslevel=compresslevel) - - try: - t = cls.taropen(name, mode, fileobj, **kwargs) - except (IOError, EOFError): - fileobj.close() - raise ReadError("not a bzip2 file") - t._extfileobj = False - return t - - # All *open() methods are registered here. - OPEN_METH = { - "tar": "taropen", # uncompressed tar - "gz": "gzopen", # gzip compressed tar - "bz2": "bz2open" # bzip2 compressed tar - } - - #-------------------------------------------------------------------------- - # The public methods which TarFile provides: - - def close(self): - """Close the TarFile. In write-mode, two finishing zero blocks are - appended to the archive. - """ - if self.closed: - return - - if self.mode in "aw": - self.fileobj.write(NUL * (BLOCKSIZE * 2)) - self.offset += (BLOCKSIZE * 2) - # fill up the end with zero-blocks - # (like option -b20 for tar does) - blocks, remainder = divmod(self.offset, RECORDSIZE) - if remainder > 0: - self.fileobj.write(NUL * (RECORDSIZE - remainder)) - - if not self._extfileobj: - self.fileobj.close() - self.closed = True - - def getmember(self, name): - """Return a TarInfo object for member `name'. If `name' can not be - found in the archive, KeyError is raised. If a member occurs more - than once in the archive, its last occurrence is assumed to be the - most up-to-date version. - """ - tarinfo = self._getmember(name) - if tarinfo is None: - raise KeyError("filename %r not found" % name) - return tarinfo - - def getmembers(self): - """Return the members of the archive as a list of TarInfo objects. The - list has the same order as the members in the archive. - """ - self._check() - if not self._loaded: # if we want to obtain a list of - self._load() # all members, we first have to - # scan the whole archive. - return self.members - - def getnames(self): - """Return the members of the archive as a list of their names. It has - the same order as the list returned by getmembers(). - """ - return [tarinfo.name for tarinfo in self.getmembers()] - - def gettarinfo(self, name=None, arcname=None, fileobj=None): - """Create a TarInfo object for either the file `name' or the file - object `fileobj' (using os.fstat on its file descriptor). You can - modify some of the TarInfo's attributes before you add it using - addfile(). If given, `arcname' specifies an alternative name for the - file in the archive. - """ - self._check("aw") - - # When fileobj is given, replace name by - # fileobj's real name. - if fileobj is not None: - name = fileobj.name - - # Building the name of the member in the archive. - # Backward slashes are converted to forward slashes, - # Absolute paths are turned to relative paths. - if arcname is None: - arcname = name - drv, arcname = os.path.splitdrive(arcname) - arcname = arcname.replace(os.sep, "/") - arcname = arcname.lstrip("/") - - # Now, fill the TarInfo object with - # information specific for the file. - tarinfo = self.tarinfo() - tarinfo.tarfile = self - - # Use os.stat or os.lstat, depending on platform - # and if symlinks shall be resolved. - if fileobj is None: - if hasattr(os, "lstat") and not self.dereference: - statres = os.lstat(name) - else: - statres = os.stat(name) - else: - statres = os.fstat(fileobj.fileno()) - linkname = "" - - stmd = statres.st_mode - if stat.S_ISREG(stmd): - inode = (statres.st_ino, statres.st_dev) - if not self.dereference and statres.st_nlink > 1 and \ - inode in self.inodes and arcname != self.inodes[inode]: - # Is it a hardlink to an already - # archived file? - type = LNKTYPE - linkname = self.inodes[inode] - else: - # The inode is added only if its valid. - # For win32 it is always 0. - type = REGTYPE - if inode[0]: - self.inodes[inode] = arcname - elif stat.S_ISDIR(stmd): - type = DIRTYPE - elif stat.S_ISFIFO(stmd): - type = FIFOTYPE - elif stat.S_ISLNK(stmd): - type = SYMTYPE - linkname = os.readlink(name) - elif stat.S_ISCHR(stmd): - type = CHRTYPE - elif stat.S_ISBLK(stmd): - type = BLKTYPE - else: - return None - - # Fill the TarInfo object with all - # information we can get. - tarinfo.name = arcname - tarinfo.mode = stmd - tarinfo.uid = statres.st_uid - tarinfo.gid = statres.st_gid - if type == REGTYPE: - tarinfo.size = statres.st_size - else: - tarinfo.size = 0 - tarinfo.mtime = statres.st_mtime - tarinfo.type = type - tarinfo.linkname = linkname - if pwd: - try: - tarinfo.uname = pwd.getpwuid(tarinfo.uid)[0] - except KeyError: - pass - if grp: - try: - tarinfo.gname = grp.getgrgid(tarinfo.gid)[0] - except KeyError: - pass - - if type in (CHRTYPE, BLKTYPE): - if hasattr(os, "major") and hasattr(os, "minor"): - tarinfo.devmajor = os.major(statres.st_rdev) - tarinfo.devminor = os.minor(statres.st_rdev) - return tarinfo - - def list(self, verbose=True): - """Print a table of contents to sys.stdout. If `verbose' is False, only - the names of the members are printed. If it is True, an `ls -l'-like - output is produced. - """ - self._check() - - for tarinfo in self: - if verbose: - print(filemode(tarinfo.mode), end=' ') - print("%s/%s" % (tarinfo.uname or tarinfo.uid, - tarinfo.gname or tarinfo.gid), end=' ') - if tarinfo.ischr() or tarinfo.isblk(): - print("%10s" % ("%d,%d" \ - % (tarinfo.devmajor, tarinfo.devminor)), end=' ') - else: - print("%10d" % tarinfo.size, end=' ') - print("%d-%02d-%02d %02d:%02d:%02d" \ - % time.localtime(tarinfo.mtime)[:6], end=' ') - - print(tarinfo.name + ("/" if tarinfo.isdir() else ""), end=' ') - - if verbose: - if tarinfo.issym(): - print("->", tarinfo.linkname, end=' ') - if tarinfo.islnk(): - print("link to", tarinfo.linkname, end=' ') - print() - - def add(self, name, arcname=None, recursive=True, exclude=None, filter=None): - """Add the file `name' to the archive. `name' may be any type of file - (directory, fifo, symbolic link, etc.). If given, `arcname' - specifies an alternative name for the file in the archive. - Directories are added recursively by default. This can be avoided by - setting `recursive' to False. `exclude' is a function that should - return True for each filename to be excluded. `filter' is a function - that expects a TarInfo object argument and returns the changed - TarInfo object, if it returns None the TarInfo object will be - excluded from the archive. - """ - self._check("aw") - - if arcname is None: - arcname = name - - # Exclude pathnames. - if exclude is not None: - import warnings - warnings.warn("use the filter argument instead", - DeprecationWarning, 2) - if exclude(name): - self._dbg(2, "tarfile: Excluded %r" % name) - return - - # Skip if somebody tries to archive the archive... - if self.name is not None and os.path.abspath(name) == self.name: - self._dbg(2, "tarfile: Skipped %r" % name) - return - - self._dbg(1, name) - - # Create a TarInfo object from the file. - tarinfo = self.gettarinfo(name, arcname) - - if tarinfo is None: - self._dbg(1, "tarfile: Unsupported type %r" % name) - return - - # Change or exclude the TarInfo object. - if filter is not None: - tarinfo = filter(tarinfo) - if tarinfo is None: - self._dbg(2, "tarfile: Excluded %r" % name) - return - - # Append the tar header and data to the archive. - if tarinfo.isreg(): - f = bltn_open(name, "rb") - self.addfile(tarinfo, f) - f.close() - - elif tarinfo.isdir(): - self.addfile(tarinfo) - if recursive: - for f in os.listdir(name): - self.add(os.path.join(name, f), os.path.join(arcname, f), - recursive, exclude, filter=filter) - - else: - self.addfile(tarinfo) - - def addfile(self, tarinfo, fileobj=None): - """Add the TarInfo object `tarinfo' to the archive. If `fileobj' is - given, tarinfo.size bytes are read from it and added to the archive. - You can create TarInfo objects using gettarinfo(). - On Windows platforms, `fileobj' should always be opened with mode - 'rb' to avoid irritation about the file size. - """ - self._check("aw") - - tarinfo = copy.copy(tarinfo) - - buf = tarinfo.tobuf(self.format, self.encoding, self.errors) - self.fileobj.write(buf) - self.offset += len(buf) - - # If there's data to follow, append it. - if fileobj is not None: - copyfileobj(fileobj, self.fileobj, tarinfo.size) - blocks, remainder = divmod(tarinfo.size, BLOCKSIZE) - if remainder > 0: - self.fileobj.write(NUL * (BLOCKSIZE - remainder)) - blocks += 1 - self.offset += blocks * BLOCKSIZE - - self.members.append(tarinfo) - - def extractall(self, path=".", members=None): - """Extract all members from the archive to the current working - directory and set owner, modification time and permissions on - directories afterwards. `path' specifies a different directory - to extract to. `members' is optional and must be a subset of the - list returned by getmembers(). - """ - directories = [] - - if members is None: - members = self - - for tarinfo in members: - if tarinfo.isdir(): - # Extract directories with a safe mode. - directories.append(tarinfo) - tarinfo = copy.copy(tarinfo) - tarinfo.mode = 0o700 - # Do not set_attrs directories, as we will do that further down - self.extract(tarinfo, path, set_attrs=not tarinfo.isdir()) - - # Reverse sort directories. - directories.sort(key=lambda a: a.name) - directories.reverse() - - # Set correct owner, mtime and filemode on directories. - for tarinfo in directories: - dirpath = os.path.join(path, tarinfo.name) - try: - self.chown(tarinfo, dirpath) - self.utime(tarinfo, dirpath) - self.chmod(tarinfo, dirpath) - except ExtractError as e: - if self.errorlevel > 1: - raise - else: - self._dbg(1, "tarfile: %s" % e) - - def extract(self, member, path="", set_attrs=True): - """Extract a member from the archive to the current working directory, - using its full name. Its file information is extracted as accurately - as possible. `member' may be a filename or a TarInfo object. You can - specify a different directory using `path'. File attributes (owner, - mtime, mode) are set unless `set_attrs' is False. - """ - self._check("r") - - if isinstance(member, str): - tarinfo = self.getmember(member) - else: - tarinfo = member - - # Prepare the link target for makelink(). - if tarinfo.islnk(): - tarinfo._link_target = os.path.join(path, tarinfo.linkname) - - try: - self._extract_member(tarinfo, os.path.join(path, tarinfo.name), - set_attrs=set_attrs) - except EnvironmentError as e: - if self.errorlevel > 0: - raise - else: - if e.filename is None: - self._dbg(1, "tarfile: %s" % e.strerror) - else: - self._dbg(1, "tarfile: %s %r" % (e.strerror, e.filename)) - except ExtractError as e: - if self.errorlevel > 1: - raise - else: - self._dbg(1, "tarfile: %s" % e) - - def extractfile(self, member): - """Extract a member from the archive as a file object. `member' may be - a filename or a TarInfo object. If `member' is a regular file, a - file-like object is returned. If `member' is a link, a file-like - object is constructed from the link's target. If `member' is none of - the above, None is returned. - The file-like object is read-only and provides the following - methods: read(), readline(), readlines(), seek() and tell() - """ - self._check("r") - - if isinstance(member, str): - tarinfo = self.getmember(member) - else: - tarinfo = member - - if tarinfo.isreg(): - return self.fileobject(self, tarinfo) - - elif tarinfo.type not in SUPPORTED_TYPES: - # If a member's type is unknown, it is treated as a - # regular file. - return self.fileobject(self, tarinfo) - - elif tarinfo.islnk() or tarinfo.issym(): - if isinstance(self.fileobj, _Stream): - # A small but ugly workaround for the case that someone tries - # to extract a (sym)link as a file-object from a non-seekable - # stream of tar blocks. - raise StreamError("cannot extract (sym)link as file object") - else: - # A (sym)link's file object is its target's file object. - return self.extractfile(self._find_link_target(tarinfo)) - else: - # If there's no data associated with the member (directory, chrdev, - # blkdev, etc.), return None instead of a file object. - return None - - def _extract_member(self, tarinfo, targetpath, set_attrs=True): - """Extract the TarInfo object tarinfo to a physical - file called targetpath. - """ - # Fetch the TarInfo object for the given name - # and build the destination pathname, replacing - # forward slashes to platform specific separators. - targetpath = targetpath.rstrip("/") - targetpath = targetpath.replace("/", os.sep) - - # Create all upper directories. - upperdirs = os.path.dirname(targetpath) - if upperdirs and not os.path.exists(upperdirs): - # Create directories that are not part of the archive with - # default permissions. - os.makedirs(upperdirs) - - if tarinfo.islnk() or tarinfo.issym(): - self._dbg(1, "%s -> %s" % (tarinfo.name, tarinfo.linkname)) - else: - self._dbg(1, tarinfo.name) - - if tarinfo.isreg(): - self.makefile(tarinfo, targetpath) - elif tarinfo.isdir(): - self.makedir(tarinfo, targetpath) - elif tarinfo.isfifo(): - self.makefifo(tarinfo, targetpath) - elif tarinfo.ischr() or tarinfo.isblk(): - self.makedev(tarinfo, targetpath) - elif tarinfo.islnk() or tarinfo.issym(): - self.makelink(tarinfo, targetpath) - elif tarinfo.type not in SUPPORTED_TYPES: - self.makeunknown(tarinfo, targetpath) - else: - self.makefile(tarinfo, targetpath) - - if set_attrs: - self.chown(tarinfo, targetpath) - if not tarinfo.issym(): - self.chmod(tarinfo, targetpath) - self.utime(tarinfo, targetpath) - - #-------------------------------------------------------------------------- - # Below are the different file methods. They are called via - # _extract_member() when extract() is called. They can be replaced in a - # subclass to implement other functionality. - - def makedir(self, tarinfo, targetpath): - """Make a directory called targetpath. - """ - try: - # Use a safe mode for the directory, the real mode is set - # later in _extract_member(). - os.mkdir(targetpath, 0o700) - except EnvironmentError as e: - if e.errno != errno.EEXIST: - raise - - def makefile(self, tarinfo, targetpath): - """Make a file called targetpath. - """ - source = self.fileobj - source.seek(tarinfo.offset_data) - target = bltn_open(targetpath, "wb") - if tarinfo.sparse is not None: - for offset, size in tarinfo.sparse: - target.seek(offset) - copyfileobj(source, target, size) - else: - copyfileobj(source, target, tarinfo.size) - target.seek(tarinfo.size) - target.truncate() - target.close() - - def makeunknown(self, tarinfo, targetpath): - """Make a file from a TarInfo object with an unknown type - at targetpath. - """ - self.makefile(tarinfo, targetpath) - self._dbg(1, "tarfile: Unknown file type %r, " \ - "extracted as regular file." % tarinfo.type) - - def makefifo(self, tarinfo, targetpath): - """Make a fifo called targetpath. - """ - if hasattr(os, "mkfifo"): - os.mkfifo(targetpath) - else: - raise ExtractError("fifo not supported by system") - - def makedev(self, tarinfo, targetpath): - """Make a character or block device called targetpath. - """ - if not hasattr(os, "mknod") or not hasattr(os, "makedev"): - raise ExtractError("special devices not supported by system") - - mode = tarinfo.mode - if tarinfo.isblk(): - mode |= stat.S_IFBLK - else: - mode |= stat.S_IFCHR - - os.mknod(targetpath, mode, - os.makedev(tarinfo.devmajor, tarinfo.devminor)) - - def makelink(self, tarinfo, targetpath): - """Make a (symbolic) link called targetpath. If it cannot be created - (platform limitation), we try to make a copy of the referenced file - instead of a link. - """ - try: - # For systems that support symbolic and hard links. - if tarinfo.issym(): - os.symlink(tarinfo.linkname, targetpath) - else: - # See extract(). - if os.path.exists(tarinfo._link_target): - os.link(tarinfo._link_target, targetpath) - else: - self._extract_member(self._find_link_target(tarinfo), - targetpath) - except symlink_exception: - if tarinfo.issym(): - linkpath = os.path.join(os.path.dirname(tarinfo.name), - tarinfo.linkname) - else: - linkpath = tarinfo.linkname - else: - try: - self._extract_member(self._find_link_target(tarinfo), - targetpath) - except KeyError: - raise ExtractError("unable to resolve link inside archive") - - def chown(self, tarinfo, targetpath): - """Set owner of targetpath according to tarinfo. - """ - if pwd and hasattr(os, "geteuid") and os.geteuid() == 0: - # We have to be root to do so. - try: - g = grp.getgrnam(tarinfo.gname)[2] - except KeyError: - g = tarinfo.gid - try: - u = pwd.getpwnam(tarinfo.uname)[2] - except KeyError: - u = tarinfo.uid - try: - if tarinfo.issym() and hasattr(os, "lchown"): - os.lchown(targetpath, u, g) - else: - if sys.platform != "os2emx": - os.chown(targetpath, u, g) - except EnvironmentError as e: - raise ExtractError("could not change owner") - - def chmod(self, tarinfo, targetpath): - """Set file permissions of targetpath according to tarinfo. - """ - if hasattr(os, 'chmod'): - try: - os.chmod(targetpath, tarinfo.mode) - except EnvironmentError as e: - raise ExtractError("could not change mode") - - def utime(self, tarinfo, targetpath): - """Set modification time of targetpath according to tarinfo. - """ - if not hasattr(os, 'utime'): - return - try: - os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime)) - except EnvironmentError as e: - raise ExtractError("could not change modification time") - - #-------------------------------------------------------------------------- - def next(self): - """Return the next member of the archive as a TarInfo object, when - TarFile is opened for reading. Return None if there is no more - available. - """ - self._check("ra") - if self.firstmember is not None: - m = self.firstmember - self.firstmember = None - return m - - # Read the next block. - self.fileobj.seek(self.offset) - tarinfo = None - while True: - try: - tarinfo = self.tarinfo.fromtarfile(self) - except EOFHeaderError as e: - if self.ignore_zeros: - self._dbg(2, "0x%X: %s" % (self.offset, e)) - self.offset += BLOCKSIZE - continue - except InvalidHeaderError as e: - if self.ignore_zeros: - self._dbg(2, "0x%X: %s" % (self.offset, e)) - self.offset += BLOCKSIZE - continue - elif self.offset == 0: - raise ReadError(str(e)) - except EmptyHeaderError: - if self.offset == 0: - raise ReadError("empty file") - except TruncatedHeaderError as e: - if self.offset == 0: - raise ReadError(str(e)) - except SubsequentHeaderError as e: - raise ReadError(str(e)) - break - - if tarinfo is not None: - self.members.append(tarinfo) - else: - self._loaded = True - - return tarinfo - - #-------------------------------------------------------------------------- - # Little helper methods: - - def _getmember(self, name, tarinfo=None, normalize=False): - """Find an archive member by name from bottom to top. - If tarinfo is given, it is used as the starting point. - """ - # Ensure that all members have been loaded. - members = self.getmembers() - - # Limit the member search list up to tarinfo. - if tarinfo is not None: - members = members[:members.index(tarinfo)] - - if normalize: - name = os.path.normpath(name) - - for member in reversed(members): - if normalize: - member_name = os.path.normpath(member.name) - else: - member_name = member.name - - if name == member_name: - return member - - def _load(self): - """Read through the entire archive file and look for readable - members. - """ - while True: - tarinfo = self.next() - if tarinfo is None: - break - self._loaded = True - - def _check(self, mode=None): - """Check if TarFile is still open, and if the operation's mode - corresponds to TarFile's mode. - """ - if self.closed: - raise IOError("%s is closed" % self.__class__.__name__) - if mode is not None and self.mode not in mode: - raise IOError("bad operation for mode %r" % self.mode) - - def _find_link_target(self, tarinfo): - """Find the target member of a symlink or hardlink member in the - archive. - """ - if tarinfo.issym(): - # Always search the entire archive. - linkname = os.path.dirname(tarinfo.name) + "/" + tarinfo.linkname - limit = None - else: - # Search the archive before the link, because a hard link is - # just a reference to an already archived file. - linkname = tarinfo.linkname - limit = tarinfo - - member = self._getmember(linkname, tarinfo=limit, normalize=True) - if member is None: - raise KeyError("linkname %r not found" % linkname) - return member - - def __iter__(self): - """Provide an iterator object. - """ - if self._loaded: - return iter(self.members) - else: - return TarIter(self) - - def _dbg(self, level, msg): - """Write debugging output to sys.stderr. - """ - if level <= self.debug: - print(msg, file=sys.stderr) - - def __enter__(self): - self._check() - return self - - def __exit__(self, type, value, traceback): - if type is None: - self.close() - else: - # An exception occurred. We must not call close() because - # it would try to write end-of-archive blocks and padding. - if not self._extfileobj: - self.fileobj.close() - self.closed = True -# class TarFile - -class TarIter(object): - """Iterator Class. - - for tarinfo in TarFile(...): - suite... - """ - - def __init__(self, tarfile): - """Construct a TarIter object. - """ - self.tarfile = tarfile - self.index = 0 - def __iter__(self): - """Return iterator object. - """ - return self - - def __next__(self): - """Return the next item using TarFile's next() method. - When all members have been read, set TarFile as _loaded. - """ - # Fix for SF #1100429: Under rare circumstances it can - # happen that getmembers() is called during iteration, - # which will cause TarIter to stop prematurely. - if not self.tarfile._loaded: - tarinfo = self.tarfile.next() - if not tarinfo: - self.tarfile._loaded = True - raise StopIteration - else: - try: - tarinfo = self.tarfile.members[self.index] - except IndexError: - raise StopIteration - self.index += 1 - return tarinfo - - next = __next__ # for Python 2.x - -#-------------------- -# exported functions -#-------------------- -def is_tarfile(name): - """Return True if name points to a tar archive that we - are able to handle, else return False. - """ - try: - t = open(name) - t.close() - return True - except TarError: - return False - -bltn_open = open -open = TarFile.open diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/compat.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/compat.py deleted file mode 100644 index e594106..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/compat.py +++ /dev/null @@ -1,1122 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013-2017 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from __future__ import absolute_import - -import os -import re -import sys - -try: - import ssl -except ImportError: # pragma: no cover - ssl = None - -if sys.version_info[0] < 3: # pragma: no cover - from StringIO import StringIO - string_types = basestring, - text_type = unicode - from types import FileType as file_type - import __builtin__ as builtins - import ConfigParser as configparser - from ._backport import shutil - from urlparse import urlparse, urlunparse, urljoin, urlsplit, urlunsplit - from urllib import (urlretrieve, quote as _quote, unquote, url2pathname, - pathname2url, ContentTooShortError, splittype) - - def quote(s): - if isinstance(s, unicode): - s = s.encode('utf-8') - return _quote(s) - - import urllib2 - from urllib2 import (Request, urlopen, URLError, HTTPError, - HTTPBasicAuthHandler, HTTPPasswordMgr, - HTTPHandler, HTTPRedirectHandler, - build_opener) - if ssl: - from urllib2 import HTTPSHandler - import httplib - import xmlrpclib - import Queue as queue - from HTMLParser import HTMLParser - import htmlentitydefs - raw_input = raw_input - from itertools import ifilter as filter - from itertools import ifilterfalse as filterfalse - - # Leaving this around for now, in case it needs resurrecting in some way - # _userprog = None - # def splituser(host): - # """splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.""" - # global _userprog - # if _userprog is None: - # import re - # _userprog = re.compile('^(.*)@(.*)$') - - # match = _userprog.match(host) - # if match: return match.group(1, 2) - # return None, host - -else: # pragma: no cover - from io import StringIO - string_types = str, - text_type = str - from io import TextIOWrapper as file_type - import builtins - import configparser - import shutil - from urllib.parse import (urlparse, urlunparse, urljoin, quote, - unquote, urlsplit, urlunsplit, splittype) - from urllib.request import (urlopen, urlretrieve, Request, url2pathname, - pathname2url, - HTTPBasicAuthHandler, HTTPPasswordMgr, - HTTPHandler, HTTPRedirectHandler, - build_opener) - if ssl: - from urllib.request import HTTPSHandler - from urllib.error import HTTPError, URLError, ContentTooShortError - import http.client as httplib - import urllib.request as urllib2 - import xmlrpc.client as xmlrpclib - import queue - from html.parser import HTMLParser - import html.entities as htmlentitydefs - raw_input = input - from itertools import filterfalse - filter = filter - - -try: - from ssl import match_hostname, CertificateError -except ImportError: # pragma: no cover - class CertificateError(ValueError): - pass - - - def _dnsname_match(dn, hostname, max_wildcards=1): - """Matching according to RFC 6125, section 6.4.3 - - http://tools.ietf.org/html/rfc6125#section-6.4.3 - """ - pats = [] - if not dn: - return False - - parts = dn.split('.') - leftmost, remainder = parts[0], parts[1:] - - wildcards = leftmost.count('*') - if wildcards > max_wildcards: - # Issue #17980: avoid denials of service by refusing more - # than one wildcard per fragment. A survey of established - # policy among SSL implementations showed it to be a - # reasonable choice. - raise CertificateError( - "too many wildcards in certificate DNS name: " + repr(dn)) - - # speed up common case w/o wildcards - if not wildcards: - return dn.lower() == hostname.lower() - - # RFC 6125, section 6.4.3, subitem 1. - # The client SHOULD NOT attempt to match a presented identifier in which - # the wildcard character comprises a label other than the left-most label. - if leftmost == '*': - # When '*' is a fragment by itself, it matches a non-empty dotless - # fragment. - pats.append('[^.]+') - elif leftmost.startswith('xn--') or hostname.startswith('xn--'): - # RFC 6125, section 6.4.3, subitem 3. - # The client SHOULD NOT attempt to match a presented identifier - # where the wildcard character is embedded within an A-label or - # U-label of an internationalized domain name. - pats.append(re.escape(leftmost)) - else: - # Otherwise, '*' matches any dotless string, e.g. www* - pats.append(re.escape(leftmost).replace(r'\*', '[^.]*')) - - # add the remaining fragments, ignore any wildcards - for frag in remainder: - pats.append(re.escape(frag)) - - pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE) - return pat.match(hostname) - - - def match_hostname(cert, hostname): - """Verify that *cert* (in decoded format as returned by - SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 - rules are followed, but IP addresses are not accepted for *hostname*. - - CertificateError is raised on failure. On success, the function - returns nothing. - """ - if not cert: - raise ValueError("empty or no certificate, match_hostname needs a " - "SSL socket or SSL context with either " - "CERT_OPTIONAL or CERT_REQUIRED") - dnsnames = [] - san = cert.get('subjectAltName', ()) - for key, value in san: - if key == 'DNS': - if _dnsname_match(value, hostname): - return - dnsnames.append(value) - if not dnsnames: - # The subject is only checked when there is no dNSName entry - # in subjectAltName - for sub in cert.get('subject', ()): - for key, value in sub: - # XXX according to RFC 2818, the most specific Common Name - # must be used. - if key == 'commonName': - if _dnsname_match(value, hostname): - return - dnsnames.append(value) - if len(dnsnames) > 1: - raise CertificateError("hostname %r " - "doesn't match either of %s" - % (hostname, ', '.join(map(repr, dnsnames)))) - elif len(dnsnames) == 1: - raise CertificateError("hostname %r " - "doesn't match %r" - % (hostname, dnsnames[0])) - else: - raise CertificateError("no appropriate commonName or " - "subjectAltName fields were found") - - -try: - from types import SimpleNamespace as Container -except ImportError: # pragma: no cover - class Container(object): - """ - A generic container for when multiple values need to be returned - """ - def __init__(self, **kwargs): - self.__dict__.update(kwargs) - - -try: - from shutil import which -except ImportError: # pragma: no cover - # Implementation from Python 3.3 - def which(cmd, mode=os.F_OK | os.X_OK, path=None): - """Given a command, mode, and a PATH string, return the path which - conforms to the given mode on the PATH, or None if there is no such - file. - - `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result - of os.environ.get("PATH"), or can be overridden with a custom search - path. - - """ - # Check that a given file can be accessed with the correct mode. - # Additionally check that `file` is not a directory, as on Windows - # directories pass the os.access check. - def _access_check(fn, mode): - return (os.path.exists(fn) and os.access(fn, mode) - and not os.path.isdir(fn)) - - # If we're given a path with a directory part, look it up directly rather - # than referring to PATH directories. This includes checking relative to the - # current directory, e.g. ./script - if os.path.dirname(cmd): - if _access_check(cmd, mode): - return cmd - return None - - if path is None: - path = os.environ.get("PATH", os.defpath) - if not path: - return None - path = path.split(os.pathsep) - - if sys.platform == "win32": - # The current directory takes precedence on Windows. - if not os.curdir in path: - path.insert(0, os.curdir) - - # PATHEXT is necessary to check on Windows. - pathext = os.environ.get("PATHEXT", "").split(os.pathsep) - # See if the given file matches any of the expected path extensions. - # This will allow us to short circuit when given "python.exe". - # If it does match, only test that one, otherwise we have to try - # others. - if any(cmd.lower().endswith(ext.lower()) for ext in pathext): - files = [cmd] - else: - files = [cmd + ext for ext in pathext] - else: - # On other platforms you don't have things like PATHEXT to tell you - # what file suffixes are executable, so just pass on cmd as-is. - files = [cmd] - - seen = set() - for dir in path: - normdir = os.path.normcase(dir) - if not normdir in seen: - seen.add(normdir) - for thefile in files: - name = os.path.join(dir, thefile) - if _access_check(name, mode): - return name - return None - - -# ZipFile is a context manager in 2.7, but not in 2.6 - -from zipfile import ZipFile as BaseZipFile - -if hasattr(BaseZipFile, '__enter__'): # pragma: no cover - ZipFile = BaseZipFile -else: # pragma: no cover - from zipfile import ZipExtFile as BaseZipExtFile - - class ZipExtFile(BaseZipExtFile): - def __init__(self, base): - self.__dict__.update(base.__dict__) - - def __enter__(self): - return self - - def __exit__(self, *exc_info): - self.close() - # return None, so if an exception occurred, it will propagate - - class ZipFile(BaseZipFile): - def __enter__(self): - return self - - def __exit__(self, *exc_info): - self.close() - # return None, so if an exception occurred, it will propagate - - def open(self, *args, **kwargs): - base = BaseZipFile.open(self, *args, **kwargs) - return ZipExtFile(base) - -try: - from platform import python_implementation -except ImportError: # pragma: no cover - def python_implementation(): - """Return a string identifying the Python implementation.""" - if 'PyPy' in sys.version: - return 'PyPy' - if os.name == 'java': - return 'Jython' - if sys.version.startswith('IronPython'): - return 'IronPython' - return 'CPython' - -try: - import sysconfig -except ImportError: # pragma: no cover - from ._backport import sysconfig - -try: - callable = callable -except NameError: # pragma: no cover - from collections.abc import Callable - - def callable(obj): - return isinstance(obj, Callable) - - -try: - fsencode = os.fsencode - fsdecode = os.fsdecode -except AttributeError: # pragma: no cover - # Issue #99: on some systems (e.g. containerised), - # sys.getfilesystemencoding() returns None, and we need a real value, - # so fall back to utf-8. From the CPython 2.7 docs relating to Unix and - # sys.getfilesystemencoding(): the return value is "the user’s preference - # according to the result of nl_langinfo(CODESET), or None if the - # nl_langinfo(CODESET) failed." - _fsencoding = sys.getfilesystemencoding() or 'utf-8' - if _fsencoding == 'mbcs': - _fserrors = 'strict' - else: - _fserrors = 'surrogateescape' - - def fsencode(filename): - if isinstance(filename, bytes): - return filename - elif isinstance(filename, text_type): - return filename.encode(_fsencoding, _fserrors) - else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) - - def fsdecode(filename): - if isinstance(filename, text_type): - return filename - elif isinstance(filename, bytes): - return filename.decode(_fsencoding, _fserrors) - else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) - -try: - from tokenize import detect_encoding -except ImportError: # pragma: no cover - from codecs import BOM_UTF8, lookup - import re - - cookie_re = re.compile(r"coding[:=]\s*([-\w.]+)") - - def _get_normal_name(orig_enc): - """Imitates get_normal_name in tokenizer.c.""" - # Only care about the first 12 characters. - enc = orig_enc[:12].lower().replace("_", "-") - if enc == "utf-8" or enc.startswith("utf-8-"): - return "utf-8" - if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or \ - enc.startswith(("latin-1-", "iso-8859-1-", "iso-latin-1-")): - return "iso-8859-1" - return orig_enc - - def detect_encoding(readline): - """ - The detect_encoding() function is used to detect the encoding that should - be used to decode a Python source file. It requires one argument, readline, - in the same way as the tokenize() generator. - - It will call readline a maximum of twice, and return the encoding used - (as a string) and a list of any lines (left as bytes) it has read in. - - It detects the encoding from the presence of a utf-8 bom or an encoding - cookie as specified in pep-0263. If both a bom and a cookie are present, - but disagree, a SyntaxError will be raised. If the encoding cookie is an - invalid charset, raise a SyntaxError. Note that if a utf-8 bom is found, - 'utf-8-sig' is returned. - - If no encoding is specified, then the default of 'utf-8' will be returned. - """ - try: - filename = readline.__self__.name - except AttributeError: - filename = None - bom_found = False - encoding = None - default = 'utf-8' - def read_or_stop(): - try: - return readline() - except StopIteration: - return b'' - - def find_cookie(line): - try: - # Decode as UTF-8. Either the line is an encoding declaration, - # in which case it should be pure ASCII, or it must be UTF-8 - # per default encoding. - line_string = line.decode('utf-8') - except UnicodeDecodeError: - msg = "invalid or missing encoding declaration" - if filename is not None: - msg = '{} for {!r}'.format(msg, filename) - raise SyntaxError(msg) - - matches = cookie_re.findall(line_string) - if not matches: - return None - encoding = _get_normal_name(matches[0]) - try: - codec = lookup(encoding) - except LookupError: - # This behaviour mimics the Python interpreter - if filename is None: - msg = "unknown encoding: " + encoding - else: - msg = "unknown encoding for {!r}: {}".format(filename, - encoding) - raise SyntaxError(msg) - - if bom_found: - if codec.name != 'utf-8': - # This behaviour mimics the Python interpreter - if filename is None: - msg = 'encoding problem: utf-8' - else: - msg = 'encoding problem for {!r}: utf-8'.format(filename) - raise SyntaxError(msg) - encoding += '-sig' - return encoding - - first = read_or_stop() - if first.startswith(BOM_UTF8): - bom_found = True - first = first[3:] - default = 'utf-8-sig' - if not first: - return default, [] - - encoding = find_cookie(first) - if encoding: - return encoding, [first] - - second = read_or_stop() - if not second: - return default, [first] - - encoding = find_cookie(second) - if encoding: - return encoding, [first, second] - - return default, [first, second] - -# For converting & <-> & etc. -try: - from html import escape -except ImportError: - from cgi import escape -if sys.version_info[:2] < (3, 4): - unescape = HTMLParser().unescape -else: - from html import unescape - -try: - from collections import ChainMap -except ImportError: # pragma: no cover - from collections import MutableMapping - - try: - from reprlib import recursive_repr as _recursive_repr - except ImportError: - def _recursive_repr(fillvalue='...'): - ''' - Decorator to make a repr function return fillvalue for a recursive - call - ''' - - def decorating_function(user_function): - repr_running = set() - - def wrapper(self): - key = id(self), get_ident() - if key in repr_running: - return fillvalue - repr_running.add(key) - try: - result = user_function(self) - finally: - repr_running.discard(key) - return result - - # Can't use functools.wraps() here because of bootstrap issues - wrapper.__module__ = getattr(user_function, '__module__') - wrapper.__doc__ = getattr(user_function, '__doc__') - wrapper.__name__ = getattr(user_function, '__name__') - wrapper.__annotations__ = getattr(user_function, '__annotations__', {}) - return wrapper - - return decorating_function - - class ChainMap(MutableMapping): - ''' A ChainMap groups multiple dicts (or other mappings) together - to create a single, updateable view. - - The underlying mappings are stored in a list. That list is public and can - accessed or updated using the *maps* attribute. There is no other state. - - Lookups search the underlying mappings successively until a key is found. - In contrast, writes, updates, and deletions only operate on the first - mapping. - - ''' - - def __init__(self, *maps): - '''Initialize a ChainMap by setting *maps* to the given mappings. - If no mappings are provided, a single empty dictionary is used. - - ''' - self.maps = list(maps) or [{}] # always at least one map - - def __missing__(self, key): - raise KeyError(key) - - def __getitem__(self, key): - for mapping in self.maps: - try: - return mapping[key] # can't use 'key in mapping' with defaultdict - except KeyError: - pass - return self.__missing__(key) # support subclasses that define __missing__ - - def get(self, key, default=None): - return self[key] if key in self else default - - def __len__(self): - return len(set().union(*self.maps)) # reuses stored hash values if possible - - def __iter__(self): - return iter(set().union(*self.maps)) - - def __contains__(self, key): - return any(key in m for m in self.maps) - - def __bool__(self): - return any(self.maps) - - @_recursive_repr() - def __repr__(self): - return '{0.__class__.__name__}({1})'.format( - self, ', '.join(map(repr, self.maps))) - - @classmethod - def fromkeys(cls, iterable, *args): - 'Create a ChainMap with a single dict created from the iterable.' - return cls(dict.fromkeys(iterable, *args)) - - def copy(self): - 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]' - return self.__class__(self.maps[0].copy(), *self.maps[1:]) - - __copy__ = copy - - def new_child(self): # like Django's Context.push() - 'New ChainMap with a new dict followed by all previous maps.' - return self.__class__({}, *self.maps) - - @property - def parents(self): # like Django's Context.pop() - 'New ChainMap from maps[1:].' - return self.__class__(*self.maps[1:]) - - def __setitem__(self, key, value): - self.maps[0][key] = value - - def __delitem__(self, key): - try: - del self.maps[0][key] - except KeyError: - raise KeyError('Key not found in the first mapping: {!r}'.format(key)) - - def popitem(self): - 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' - try: - return self.maps[0].popitem() - except KeyError: - raise KeyError('No keys found in the first mapping.') - - def pop(self, key, *args): - 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].' - try: - return self.maps[0].pop(key, *args) - except KeyError: - raise KeyError('Key not found in the first mapping: {!r}'.format(key)) - - def clear(self): - 'Clear maps[0], leaving maps[1:] intact.' - self.maps[0].clear() - -try: - from importlib.util import cache_from_source # Python >= 3.4 -except ImportError: # pragma: no cover - try: - from imp import cache_from_source - except ImportError: # pragma: no cover - def cache_from_source(path, debug_override=None): - assert path.endswith('.py') - if debug_override is None: - debug_override = __debug__ - if debug_override: - suffix = 'c' - else: - suffix = 'o' - return path + suffix - -try: - from collections import OrderedDict -except ImportError: # pragma: no cover -## {{{ http://code.activestate.com/recipes/576693/ (r9) -# Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy. -# Passes Python2.7's test suite and incorporates all the latest updates. - try: - from thread import get_ident as _get_ident - except ImportError: - from dummy_thread import get_ident as _get_ident - - try: - from _abcoll import KeysView, ValuesView, ItemsView - except ImportError: - pass - - - class OrderedDict(dict): - 'Dictionary that remembers insertion order' - # An inherited dict maps keys to values. - # The inherited dict provides __getitem__, __len__, __contains__, and get. - # The remaining methods are order-aware. - # Big-O running times for all methods are the same as for regular dictionaries. - - # The internal self.__map dictionary maps keys to links in a doubly linked list. - # The circular doubly linked list starts and ends with a sentinel element. - # The sentinel element never gets deleted (this simplifies the algorithm). - # Each link is stored as a list of length three: [PREV, NEXT, KEY]. - - def __init__(self, *args, **kwds): - '''Initialize an ordered dictionary. Signature is the same as for - regular dictionaries, but keyword arguments are not recommended - because their insertion order is arbitrary. - - ''' - if len(args) > 1: - raise TypeError('expected at most 1 arguments, got %d' % len(args)) - try: - self.__root - except AttributeError: - self.__root = root = [] # sentinel node - root[:] = [root, root, None] - self.__map = {} - self.__update(*args, **kwds) - - def __setitem__(self, key, value, dict_setitem=dict.__setitem__): - 'od.__setitem__(i, y) <==> od[i]=y' - # Setting a new item creates a new link which goes at the end of the linked - # list, and the inherited dictionary is updated with the new key/value pair. - if key not in self: - root = self.__root - last = root[0] - last[1] = root[0] = self.__map[key] = [last, root, key] - dict_setitem(self, key, value) - - def __delitem__(self, key, dict_delitem=dict.__delitem__): - 'od.__delitem__(y) <==> del od[y]' - # Deleting an existing item uses self.__map to find the link which is - # then removed by updating the links in the predecessor and successor nodes. - dict_delitem(self, key) - link_prev, link_next, key = self.__map.pop(key) - link_prev[1] = link_next - link_next[0] = link_prev - - def __iter__(self): - 'od.__iter__() <==> iter(od)' - root = self.__root - curr = root[1] - while curr is not root: - yield curr[2] - curr = curr[1] - - def __reversed__(self): - 'od.__reversed__() <==> reversed(od)' - root = self.__root - curr = root[0] - while curr is not root: - yield curr[2] - curr = curr[0] - - def clear(self): - 'od.clear() -> None. Remove all items from od.' - try: - for node in self.__map.itervalues(): - del node[:] - root = self.__root - root[:] = [root, root, None] - self.__map.clear() - except AttributeError: - pass - dict.clear(self) - - def popitem(self, last=True): - '''od.popitem() -> (k, v), return and remove a (key, value) pair. - Pairs are returned in LIFO order if last is true or FIFO order if false. - - ''' - if not self: - raise KeyError('dictionary is empty') - root = self.__root - if last: - link = root[0] - link_prev = link[0] - link_prev[1] = root - root[0] = link_prev - else: - link = root[1] - link_next = link[1] - root[1] = link_next - link_next[0] = root - key = link[2] - del self.__map[key] - value = dict.pop(self, key) - return key, value - - # -- the following methods do not depend on the internal structure -- - - def keys(self): - 'od.keys() -> list of keys in od' - return list(self) - - def values(self): - 'od.values() -> list of values in od' - return [self[key] for key in self] - - def items(self): - 'od.items() -> list of (key, value) pairs in od' - return [(key, self[key]) for key in self] - - def iterkeys(self): - 'od.iterkeys() -> an iterator over the keys in od' - return iter(self) - - def itervalues(self): - 'od.itervalues -> an iterator over the values in od' - for k in self: - yield self[k] - - def iteritems(self): - 'od.iteritems -> an iterator over the (key, value) items in od' - for k in self: - yield (k, self[k]) - - def update(*args, **kwds): - '''od.update(E, **F) -> None. Update od from dict/iterable E and F. - - If E is a dict instance, does: for k in E: od[k] = E[k] - If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] - Or if E is an iterable of items, does: for k, v in E: od[k] = v - In either case, this is followed by: for k, v in F.items(): od[k] = v - - ''' - if len(args) > 2: - raise TypeError('update() takes at most 2 positional ' - 'arguments (%d given)' % (len(args),)) - elif not args: - raise TypeError('update() takes at least 1 argument (0 given)') - self = args[0] - # Make progressively weaker assumptions about "other" - other = () - if len(args) == 2: - other = args[1] - if isinstance(other, dict): - for key in other: - self[key] = other[key] - elif hasattr(other, 'keys'): - for key in other.keys(): - self[key] = other[key] - else: - for key, value in other: - self[key] = value - for key, value in kwds.items(): - self[key] = value - - __update = update # let subclasses override update without breaking __init__ - - __marker = object() - - def pop(self, key, default=__marker): - '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. - If key is not found, d is returned if given, otherwise KeyError is raised. - - ''' - if key in self: - result = self[key] - del self[key] - return result - if default is self.__marker: - raise KeyError(key) - return default - - def setdefault(self, key, default=None): - 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' - if key in self: - return self[key] - self[key] = default - return default - - def __repr__(self, _repr_running=None): - 'od.__repr__() <==> repr(od)' - if not _repr_running: _repr_running = {} - call_key = id(self), _get_ident() - if call_key in _repr_running: - return '...' - _repr_running[call_key] = 1 - try: - if not self: - return '%s()' % (self.__class__.__name__,) - return '%s(%r)' % (self.__class__.__name__, self.items()) - finally: - del _repr_running[call_key] - - def __reduce__(self): - 'Return state information for pickling' - items = [[k, self[k]] for k in self] - inst_dict = vars(self).copy() - for k in vars(OrderedDict()): - inst_dict.pop(k, None) - if inst_dict: - return (self.__class__, (items,), inst_dict) - return self.__class__, (items,) - - def copy(self): - 'od.copy() -> a shallow copy of od' - return self.__class__(self) - - @classmethod - def fromkeys(cls, iterable, value=None): - '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S - and values equal to v (which defaults to None). - - ''' - d = cls() - for key in iterable: - d[key] = value - return d - - def __eq__(self, other): - '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive - while comparison to a regular mapping is order-insensitive. - - ''' - if isinstance(other, OrderedDict): - return len(self)==len(other) and self.items() == other.items() - return dict.__eq__(self, other) - - def __ne__(self, other): - return not self == other - - # -- the following methods are only used in Python 2.7 -- - - def viewkeys(self): - "od.viewkeys() -> a set-like object providing a view on od's keys" - return KeysView(self) - - def viewvalues(self): - "od.viewvalues() -> an object providing a view on od's values" - return ValuesView(self) - - def viewitems(self): - "od.viewitems() -> a set-like object providing a view on od's items" - return ItemsView(self) - -try: - from logging.config import BaseConfigurator, valid_ident -except ImportError: # pragma: no cover - IDENTIFIER = re.compile('^[a-z_][a-z0-9_]*$', re.I) - - - def valid_ident(s): - m = IDENTIFIER.match(s) - if not m: - raise ValueError('Not a valid Python identifier: %r' % s) - return True - - - # The ConvertingXXX classes are wrappers around standard Python containers, - # and they serve to convert any suitable values in the container. The - # conversion converts base dicts, lists and tuples to their wrapped - # equivalents, whereas strings which match a conversion format are converted - # appropriately. - # - # Each wrapper should have a configurator attribute holding the actual - # configurator to use for conversion. - - class ConvertingDict(dict): - """A converting dictionary wrapper.""" - - def __getitem__(self, key): - value = dict.__getitem__(self, key) - result = self.configurator.convert(value) - #If the converted value is different, save for next time - if value is not result: - self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - def get(self, key, default=None): - value = dict.get(self, key, default) - result = self.configurator.convert(value) - #If the converted value is different, save for next time - if value is not result: - self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - def pop(self, key, default=None): - value = dict.pop(self, key, default) - result = self.configurator.convert(value) - if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - class ConvertingList(list): - """A converting list wrapper.""" - def __getitem__(self, key): - value = list.__getitem__(self, key) - result = self.configurator.convert(value) - #If the converted value is different, save for next time - if value is not result: - self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - def pop(self, idx=-1): - value = list.pop(self, idx) - result = self.configurator.convert(value) - if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - return result - - class ConvertingTuple(tuple): - """A converting tuple wrapper.""" - def __getitem__(self, key): - value = tuple.__getitem__(self, key) - result = self.configurator.convert(value) - if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - class BaseConfigurator(object): - """ - The configurator base class which defines some useful defaults. - """ - - CONVERT_PATTERN = re.compile(r'^(?P[a-z]+)://(?P.*)$') - - WORD_PATTERN = re.compile(r'^\s*(\w+)\s*') - DOT_PATTERN = re.compile(r'^\.\s*(\w+)\s*') - INDEX_PATTERN = re.compile(r'^\[\s*(\w+)\s*\]\s*') - DIGIT_PATTERN = re.compile(r'^\d+$') - - value_converters = { - 'ext' : 'ext_convert', - 'cfg' : 'cfg_convert', - } - - # We might want to use a different one, e.g. importlib - importer = staticmethod(__import__) - - def __init__(self, config): - self.config = ConvertingDict(config) - self.config.configurator = self - - def resolve(self, s): - """ - Resolve strings to objects using standard import and attribute - syntax. - """ - name = s.split('.') - used = name.pop(0) - try: - found = self.importer(used) - for frag in name: - used += '.' + frag - try: - found = getattr(found, frag) - except AttributeError: - self.importer(used) - found = getattr(found, frag) - return found - except ImportError: - e, tb = sys.exc_info()[1:] - v = ValueError('Cannot resolve %r: %s' % (s, e)) - v.__cause__, v.__traceback__ = e, tb - raise v - - def ext_convert(self, value): - """Default converter for the ext:// protocol.""" - return self.resolve(value) - - def cfg_convert(self, value): - """Default converter for the cfg:// protocol.""" - rest = value - m = self.WORD_PATTERN.match(rest) - if m is None: - raise ValueError("Unable to convert %r" % value) - else: - rest = rest[m.end():] - d = self.config[m.groups()[0]] - #print d, rest - while rest: - m = self.DOT_PATTERN.match(rest) - if m: - d = d[m.groups()[0]] - else: - m = self.INDEX_PATTERN.match(rest) - if m: - idx = m.groups()[0] - if not self.DIGIT_PATTERN.match(idx): - d = d[idx] - else: - try: - n = int(idx) # try as number first (most likely) - d = d[n] - except TypeError: - d = d[idx] - if m: - rest = rest[m.end():] - else: - raise ValueError('Unable to convert ' - '%r at %r' % (value, rest)) - #rest should be empty - return d - - def convert(self, value): - """ - Convert values to an appropriate type. dicts, lists and tuples are - replaced by their converting alternatives. Strings are checked to - see if they have a conversion format and are converted if they do. - """ - if not isinstance(value, ConvertingDict) and isinstance(value, dict): - value = ConvertingDict(value) - value.configurator = self - elif not isinstance(value, ConvertingList) and isinstance(value, list): - value = ConvertingList(value) - value.configurator = self - elif not isinstance(value, ConvertingTuple) and\ - isinstance(value, tuple): - value = ConvertingTuple(value) - value.configurator = self - elif isinstance(value, string_types): - m = self.CONVERT_PATTERN.match(value) - if m: - d = m.groupdict() - prefix = d['prefix'] - converter = self.value_converters.get(prefix, None) - if converter: - suffix = d['suffix'] - converter = getattr(self, converter) - value = converter(suffix) - return value - - def configure_custom(self, config): - """Configure an object with a user-supplied factory.""" - c = config.pop('()') - if not callable(c): - c = self.resolve(c) - props = config.pop('.', None) - # Check for valid identifiers - kwargs = dict([(k, config[k]) for k in config if valid_ident(k)]) - result = c(**kwargs) - if props: - for name, value in props.items(): - setattr(result, name, value) - return result - - def as_tuple(self, value): - """Utility function which converts lists to tuples.""" - if isinstance(value, list): - value = tuple(value) - return value diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/database.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/database.py deleted file mode 100644 index 0a90c30..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/database.py +++ /dev/null @@ -1,1339 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2017 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""PEP 376 implementation.""" - -from __future__ import unicode_literals - -import base64 -import codecs -import contextlib -import hashlib -import logging -import os -import posixpath -import sys -import zipimport - -from . import DistlibException, resources -from .compat import StringIO -from .version import get_scheme, UnsupportedVersionError -from .metadata import (Metadata, METADATA_FILENAME, WHEEL_METADATA_FILENAME, - LEGACY_METADATA_FILENAME) -from .util import (parse_requirement, cached_property, parse_name_and_version, - read_exports, write_exports, CSVReader, CSVWriter) - - -__all__ = ['Distribution', 'BaseInstalledDistribution', - 'InstalledDistribution', 'EggInfoDistribution', - 'DistributionPath'] - - -logger = logging.getLogger(__name__) - -EXPORTS_FILENAME = 'pydist-exports.json' -COMMANDS_FILENAME = 'pydist-commands.json' - -DIST_FILES = ('INSTALLER', METADATA_FILENAME, 'RECORD', 'REQUESTED', - 'RESOURCES', EXPORTS_FILENAME, 'SHARED') - -DISTINFO_EXT = '.dist-info' - - -class _Cache(object): - """ - A simple cache mapping names and .dist-info paths to distributions - """ - def __init__(self): - """ - Initialise an instance. There is normally one for each DistributionPath. - """ - self.name = {} - self.path = {} - self.generated = False - - def clear(self): - """ - Clear the cache, setting it to its initial state. - """ - self.name.clear() - self.path.clear() - self.generated = False - - def add(self, dist): - """ - Add a distribution to the cache. - :param dist: The distribution to add. - """ - if dist.path not in self.path: - self.path[dist.path] = dist - self.name.setdefault(dist.key, []).append(dist) - - -class DistributionPath(object): - """ - Represents a set of distributions installed on a path (typically sys.path). - """ - def __init__(self, path=None, include_egg=False): - """ - Create an instance from a path, optionally including legacy (distutils/ - setuptools/distribute) distributions. - :param path: The path to use, as a list of directories. If not specified, - sys.path is used. - :param include_egg: If True, this instance will look for and return legacy - distributions as well as those based on PEP 376. - """ - if path is None: - path = sys.path - self.path = path - self._include_dist = True - self._include_egg = include_egg - - self._cache = _Cache() - self._cache_egg = _Cache() - self._cache_enabled = True - self._scheme = get_scheme('default') - - def _get_cache_enabled(self): - return self._cache_enabled - - def _set_cache_enabled(self, value): - self._cache_enabled = value - - cache_enabled = property(_get_cache_enabled, _set_cache_enabled) - - def clear_cache(self): - """ - Clears the internal cache. - """ - self._cache.clear() - self._cache_egg.clear() - - - def _yield_distributions(self): - """ - Yield .dist-info and/or .egg(-info) distributions. - """ - # We need to check if we've seen some resources already, because on - # some Linux systems (e.g. some Debian/Ubuntu variants) there are - # symlinks which alias other files in the environment. - seen = set() - for path in self.path: - finder = resources.finder_for_path(path) - if finder is None: - continue - r = finder.find('') - if not r or not r.is_container: - continue - rset = sorted(r.resources) - for entry in rset: - r = finder.find(entry) - if not r or r.path in seen: - continue - if self._include_dist and entry.endswith(DISTINFO_EXT): - possible_filenames = [METADATA_FILENAME, - WHEEL_METADATA_FILENAME, - LEGACY_METADATA_FILENAME] - for metadata_filename in possible_filenames: - metadata_path = posixpath.join(entry, metadata_filename) - pydist = finder.find(metadata_path) - if pydist: - break - else: - continue - - with contextlib.closing(pydist.as_stream()) as stream: - metadata = Metadata(fileobj=stream, scheme='legacy') - logger.debug('Found %s', r.path) - seen.add(r.path) - yield new_dist_class(r.path, metadata=metadata, - env=self) - elif self._include_egg and entry.endswith(('.egg-info', - '.egg')): - logger.debug('Found %s', r.path) - seen.add(r.path) - yield old_dist_class(r.path, self) - - def _generate_cache(self): - """ - Scan the path for distributions and populate the cache with - those that are found. - """ - gen_dist = not self._cache.generated - gen_egg = self._include_egg and not self._cache_egg.generated - if gen_dist or gen_egg: - for dist in self._yield_distributions(): - if isinstance(dist, InstalledDistribution): - self._cache.add(dist) - else: - self._cache_egg.add(dist) - - if gen_dist: - self._cache.generated = True - if gen_egg: - self._cache_egg.generated = True - - @classmethod - def distinfo_dirname(cls, name, version): - """ - The *name* and *version* parameters are converted into their - filename-escaped form, i.e. any ``'-'`` characters are replaced - with ``'_'`` other than the one in ``'dist-info'`` and the one - separating the name from the version number. - - :parameter name: is converted to a standard distribution name by replacing - any runs of non- alphanumeric characters with a single - ``'-'``. - :type name: string - :parameter version: is converted to a standard version string. Spaces - become dots, and all other non-alphanumeric characters - (except dots) become dashes, with runs of multiple - dashes condensed to a single dash. - :type version: string - :returns: directory name - :rtype: string""" - name = name.replace('-', '_') - return '-'.join([name, version]) + DISTINFO_EXT - - def get_distributions(self): - """ - Provides an iterator that looks for distributions and returns - :class:`InstalledDistribution` or - :class:`EggInfoDistribution` instances for each one of them. - - :rtype: iterator of :class:`InstalledDistribution` and - :class:`EggInfoDistribution` instances - """ - if not self._cache_enabled: - for dist in self._yield_distributions(): - yield dist - else: - self._generate_cache() - - for dist in self._cache.path.values(): - yield dist - - if self._include_egg: - for dist in self._cache_egg.path.values(): - yield dist - - def get_distribution(self, name): - """ - Looks for a named distribution on the path. - - This function only returns the first result found, as no more than one - value is expected. If nothing is found, ``None`` is returned. - - :rtype: :class:`InstalledDistribution`, :class:`EggInfoDistribution` - or ``None`` - """ - result = None - name = name.lower() - if not self._cache_enabled: - for dist in self._yield_distributions(): - if dist.key == name: - result = dist - break - else: - self._generate_cache() - - if name in self._cache.name: - result = self._cache.name[name][0] - elif self._include_egg and name in self._cache_egg.name: - result = self._cache_egg.name[name][0] - return result - - def provides_distribution(self, name, version=None): - """ - Iterates over all distributions to find which distributions provide *name*. - If a *version* is provided, it will be used to filter the results. - - This function only returns the first result found, since no more than - one values are expected. If the directory is not found, returns ``None``. - - :parameter version: a version specifier that indicates the version - required, conforming to the format in ``PEP-345`` - - :type name: string - :type version: string - """ - matcher = None - if version is not None: - try: - matcher = self._scheme.matcher('%s (%s)' % (name, version)) - except ValueError: - raise DistlibException('invalid name or version: %r, %r' % - (name, version)) - - for dist in self.get_distributions(): - # We hit a problem on Travis where enum34 was installed and doesn't - # have a provides attribute ... - if not hasattr(dist, 'provides'): - logger.debug('No "provides": %s', dist) - else: - provided = dist.provides - - for p in provided: - p_name, p_ver = parse_name_and_version(p) - if matcher is None: - if p_name == name: - yield dist - break - else: - if p_name == name and matcher.match(p_ver): - yield dist - break - - def get_file_path(self, name, relative_path): - """ - Return the path to a resource file. - """ - dist = self.get_distribution(name) - if dist is None: - raise LookupError('no distribution named %r found' % name) - return dist.get_resource_path(relative_path) - - def get_exported_entries(self, category, name=None): - """ - Return all of the exported entries in a particular category. - - :param category: The category to search for entries. - :param name: If specified, only entries with that name are returned. - """ - for dist in self.get_distributions(): - r = dist.exports - if category in r: - d = r[category] - if name is not None: - if name in d: - yield d[name] - else: - for v in d.values(): - yield v - - -class Distribution(object): - """ - A base class for distributions, whether installed or from indexes. - Either way, it must have some metadata, so that's all that's needed - for construction. - """ - - build_time_dependency = False - """ - Set to True if it's known to be only a build-time dependency (i.e. - not needed after installation). - """ - - requested = False - """A boolean that indicates whether the ``REQUESTED`` metadata file is - present (in other words, whether the package was installed by user - request or it was installed as a dependency).""" - - def __init__(self, metadata): - """ - Initialise an instance. - :param metadata: The instance of :class:`Metadata` describing this - distribution. - """ - self.metadata = metadata - self.name = metadata.name - self.key = self.name.lower() # for case-insensitive comparisons - self.version = metadata.version - self.locator = None - self.digest = None - self.extras = None # additional features requested - self.context = None # environment marker overrides - self.download_urls = set() - self.digests = {} - - @property - def source_url(self): - """ - The source archive download URL for this distribution. - """ - return self.metadata.source_url - - download_url = source_url # Backward compatibility - - @property - def name_and_version(self): - """ - A utility property which displays the name and version in parentheses. - """ - return '%s (%s)' % (self.name, self.version) - - @property - def provides(self): - """ - A set of distribution names and versions provided by this distribution. - :return: A set of "name (version)" strings. - """ - plist = self.metadata.provides - s = '%s (%s)' % (self.name, self.version) - if s not in plist: - plist.append(s) - return plist - - def _get_requirements(self, req_attr): - md = self.metadata - logger.debug('Getting requirements from metadata %r', md.todict()) - reqts = getattr(md, req_attr) - return set(md.get_requirements(reqts, extras=self.extras, - env=self.context)) - - @property - def run_requires(self): - return self._get_requirements('run_requires') - - @property - def meta_requires(self): - return self._get_requirements('meta_requires') - - @property - def build_requires(self): - return self._get_requirements('build_requires') - - @property - def test_requires(self): - return self._get_requirements('test_requires') - - @property - def dev_requires(self): - return self._get_requirements('dev_requires') - - def matches_requirement(self, req): - """ - Say if this instance matches (fulfills) a requirement. - :param req: The requirement to match. - :rtype req: str - :return: True if it matches, else False. - """ - # Requirement may contain extras - parse to lose those - # from what's passed to the matcher - r = parse_requirement(req) - scheme = get_scheme(self.metadata.scheme) - try: - matcher = scheme.matcher(r.requirement) - except UnsupportedVersionError: - # XXX compat-mode if cannot read the version - logger.warning('could not read version %r - using name only', - req) - name = req.split()[0] - matcher = scheme.matcher(name) - - name = matcher.key # case-insensitive - - result = False - for p in self.provides: - p_name, p_ver = parse_name_and_version(p) - if p_name != name: - continue - try: - result = matcher.match(p_ver) - break - except UnsupportedVersionError: - pass - return result - - def __repr__(self): - """ - Return a textual representation of this instance, - """ - if self.source_url: - suffix = ' [%s]' % self.source_url - else: - suffix = '' - return '' % (self.name, self.version, suffix) - - def __eq__(self, other): - """ - See if this distribution is the same as another. - :param other: The distribution to compare with. To be equal to one - another. distributions must have the same type, name, - version and source_url. - :return: True if it is the same, else False. - """ - if type(other) is not type(self): - result = False - else: - result = (self.name == other.name and - self.version == other.version and - self.source_url == other.source_url) - return result - - def __hash__(self): - """ - Compute hash in a way which matches the equality test. - """ - return hash(self.name) + hash(self.version) + hash(self.source_url) - - -class BaseInstalledDistribution(Distribution): - """ - This is the base class for installed distributions (whether PEP 376 or - legacy). - """ - - hasher = None - - def __init__(self, metadata, path, env=None): - """ - Initialise an instance. - :param metadata: An instance of :class:`Metadata` which describes the - distribution. This will normally have been initialised - from a metadata file in the ``path``. - :param path: The path of the ``.dist-info`` or ``.egg-info`` - directory for the distribution. - :param env: This is normally the :class:`DistributionPath` - instance where this distribution was found. - """ - super(BaseInstalledDistribution, self).__init__(metadata) - self.path = path - self.dist_path = env - - def get_hash(self, data, hasher=None): - """ - Get the hash of some data, using a particular hash algorithm, if - specified. - - :param data: The data to be hashed. - :type data: bytes - :param hasher: The name of a hash implementation, supported by hashlib, - or ``None``. Examples of valid values are ``'sha1'``, - ``'sha224'``, ``'sha384'``, '``sha256'``, ``'md5'`` and - ``'sha512'``. If no hasher is specified, the ``hasher`` - attribute of the :class:`InstalledDistribution` instance - is used. If the hasher is determined to be ``None``, MD5 - is used as the hashing algorithm. - :returns: The hash of the data. If a hasher was explicitly specified, - the returned hash will be prefixed with the specified hasher - followed by '='. - :rtype: str - """ - if hasher is None: - hasher = self.hasher - if hasher is None: - hasher = hashlib.md5 - prefix = '' - else: - hasher = getattr(hashlib, hasher) - prefix = '%s=' % self.hasher - digest = hasher(data).digest() - digest = base64.urlsafe_b64encode(digest).rstrip(b'=').decode('ascii') - return '%s%s' % (prefix, digest) - - -class InstalledDistribution(BaseInstalledDistribution): - """ - Created with the *path* of the ``.dist-info`` directory provided to the - constructor. It reads the metadata contained in ``pydist.json`` when it is - instantiated., or uses a passed in Metadata instance (useful for when - dry-run mode is being used). - """ - - hasher = 'sha256' - - def __init__(self, path, metadata=None, env=None): - self.modules = [] - self.finder = finder = resources.finder_for_path(path) - if finder is None: - raise ValueError('finder unavailable for %s' % path) - if env and env._cache_enabled and path in env._cache.path: - metadata = env._cache.path[path].metadata - elif metadata is None: - r = finder.find(METADATA_FILENAME) - # Temporary - for Wheel 0.23 support - if r is None: - r = finder.find(WHEEL_METADATA_FILENAME) - # Temporary - for legacy support - if r is None: - r = finder.find(LEGACY_METADATA_FILENAME) - if r is None: - raise ValueError('no %s found in %s' % (METADATA_FILENAME, - path)) - with contextlib.closing(r.as_stream()) as stream: - metadata = Metadata(fileobj=stream, scheme='legacy') - - super(InstalledDistribution, self).__init__(metadata, path, env) - - if env and env._cache_enabled: - env._cache.add(self) - - r = finder.find('REQUESTED') - self.requested = r is not None - p = os.path.join(path, 'top_level.txt') - if os.path.exists(p): - with open(p, 'rb') as f: - data = f.read().decode('utf-8') - self.modules = data.splitlines() - - def __repr__(self): - return '' % ( - self.name, self.version, self.path) - - def __str__(self): - return "%s %s" % (self.name, self.version) - - def _get_records(self): - """ - Get the list of installed files for the distribution - :return: A list of tuples of path, hash and size. Note that hash and - size might be ``None`` for some entries. The path is exactly - as stored in the file (which is as in PEP 376). - """ - results = [] - r = self.get_distinfo_resource('RECORD') - with contextlib.closing(r.as_stream()) as stream: - with CSVReader(stream=stream) as record_reader: - # Base location is parent dir of .dist-info dir - #base_location = os.path.dirname(self.path) - #base_location = os.path.abspath(base_location) - for row in record_reader: - missing = [None for i in range(len(row), 3)] - path, checksum, size = row + missing - #if not os.path.isabs(path): - # path = path.replace('/', os.sep) - # path = os.path.join(base_location, path) - results.append((path, checksum, size)) - return results - - @cached_property - def exports(self): - """ - Return the information exported by this distribution. - :return: A dictionary of exports, mapping an export category to a dict - of :class:`ExportEntry` instances describing the individual - export entries, and keyed by name. - """ - result = {} - r = self.get_distinfo_resource(EXPORTS_FILENAME) - if r: - result = self.read_exports() - return result - - def read_exports(self): - """ - Read exports data from a file in .ini format. - - :return: A dictionary of exports, mapping an export category to a list - of :class:`ExportEntry` instances describing the individual - export entries. - """ - result = {} - r = self.get_distinfo_resource(EXPORTS_FILENAME) - if r: - with contextlib.closing(r.as_stream()) as stream: - result = read_exports(stream) - return result - - def write_exports(self, exports): - """ - Write a dictionary of exports to a file in .ini format. - :param exports: A dictionary of exports, mapping an export category to - a list of :class:`ExportEntry` instances describing the - individual export entries. - """ - rf = self.get_distinfo_file(EXPORTS_FILENAME) - with open(rf, 'w') as f: - write_exports(exports, f) - - def get_resource_path(self, relative_path): - """ - NOTE: This API may change in the future. - - Return the absolute path to a resource file with the given relative - path. - - :param relative_path: The path, relative to .dist-info, of the resource - of interest. - :return: The absolute path where the resource is to be found. - """ - r = self.get_distinfo_resource('RESOURCES') - with contextlib.closing(r.as_stream()) as stream: - with CSVReader(stream=stream) as resources_reader: - for relative, destination in resources_reader: - if relative == relative_path: - return destination - raise KeyError('no resource file with relative path %r ' - 'is installed' % relative_path) - - def list_installed_files(self): - """ - Iterates over the ``RECORD`` entries and returns a tuple - ``(path, hash, size)`` for each line. - - :returns: iterator of (path, hash, size) - """ - for result in self._get_records(): - yield result - - def write_installed_files(self, paths, prefix, dry_run=False): - """ - Writes the ``RECORD`` file, using the ``paths`` iterable passed in. Any - existing ``RECORD`` file is silently overwritten. - - prefix is used to determine when to write absolute paths. - """ - prefix = os.path.join(prefix, '') - base = os.path.dirname(self.path) - base_under_prefix = base.startswith(prefix) - base = os.path.join(base, '') - record_path = self.get_distinfo_file('RECORD') - logger.info('creating %s', record_path) - if dry_run: - return None - with CSVWriter(record_path) as writer: - for path in paths: - if os.path.isdir(path) or path.endswith(('.pyc', '.pyo')): - # do not put size and hash, as in PEP-376 - hash_value = size = '' - else: - size = '%d' % os.path.getsize(path) - with open(path, 'rb') as fp: - hash_value = self.get_hash(fp.read()) - if path.startswith(base) or (base_under_prefix and - path.startswith(prefix)): - path = os.path.relpath(path, base) - writer.writerow((path, hash_value, size)) - - # add the RECORD file itself - if record_path.startswith(base): - record_path = os.path.relpath(record_path, base) - writer.writerow((record_path, '', '')) - return record_path - - def check_installed_files(self): - """ - Checks that the hashes and sizes of the files in ``RECORD`` are - matched by the files themselves. Returns a (possibly empty) list of - mismatches. Each entry in the mismatch list will be a tuple consisting - of the path, 'exists', 'size' or 'hash' according to what didn't match - (existence is checked first, then size, then hash), the expected - value and the actual value. - """ - mismatches = [] - base = os.path.dirname(self.path) - record_path = self.get_distinfo_file('RECORD') - for path, hash_value, size in self.list_installed_files(): - if not os.path.isabs(path): - path = os.path.join(base, path) - if path == record_path: - continue - if not os.path.exists(path): - mismatches.append((path, 'exists', True, False)) - elif os.path.isfile(path): - actual_size = str(os.path.getsize(path)) - if size and actual_size != size: - mismatches.append((path, 'size', size, actual_size)) - elif hash_value: - if '=' in hash_value: - hasher = hash_value.split('=', 1)[0] - else: - hasher = None - - with open(path, 'rb') as f: - actual_hash = self.get_hash(f.read(), hasher) - if actual_hash != hash_value: - mismatches.append((path, 'hash', hash_value, actual_hash)) - return mismatches - - @cached_property - def shared_locations(self): - """ - A dictionary of shared locations whose keys are in the set 'prefix', - 'purelib', 'platlib', 'scripts', 'headers', 'data' and 'namespace'. - The corresponding value is the absolute path of that category for - this distribution, and takes into account any paths selected by the - user at installation time (e.g. via command-line arguments). In the - case of the 'namespace' key, this would be a list of absolute paths - for the roots of namespace packages in this distribution. - - The first time this property is accessed, the relevant information is - read from the SHARED file in the .dist-info directory. - """ - result = {} - shared_path = os.path.join(self.path, 'SHARED') - if os.path.isfile(shared_path): - with codecs.open(shared_path, 'r', encoding='utf-8') as f: - lines = f.read().splitlines() - for line in lines: - key, value = line.split('=', 1) - if key == 'namespace': - result.setdefault(key, []).append(value) - else: - result[key] = value - return result - - def write_shared_locations(self, paths, dry_run=False): - """ - Write shared location information to the SHARED file in .dist-info. - :param paths: A dictionary as described in the documentation for - :meth:`shared_locations`. - :param dry_run: If True, the action is logged but no file is actually - written. - :return: The path of the file written to. - """ - shared_path = os.path.join(self.path, 'SHARED') - logger.info('creating %s', shared_path) - if dry_run: - return None - lines = [] - for key in ('prefix', 'lib', 'headers', 'scripts', 'data'): - path = paths[key] - if os.path.isdir(paths[key]): - lines.append('%s=%s' % (key, path)) - for ns in paths.get('namespace', ()): - lines.append('namespace=%s' % ns) - - with codecs.open(shared_path, 'w', encoding='utf-8') as f: - f.write('\n'.join(lines)) - return shared_path - - def get_distinfo_resource(self, path): - if path not in DIST_FILES: - raise DistlibException('invalid path for a dist-info file: ' - '%r at %r' % (path, self.path)) - finder = resources.finder_for_path(self.path) - if finder is None: - raise DistlibException('Unable to get a finder for %s' % self.path) - return finder.find(path) - - def get_distinfo_file(self, path): - """ - Returns a path located under the ``.dist-info`` directory. Returns a - string representing the path. - - :parameter path: a ``'/'``-separated path relative to the - ``.dist-info`` directory or an absolute path; - If *path* is an absolute path and doesn't start - with the ``.dist-info`` directory path, - a :class:`DistlibException` is raised - :type path: str - :rtype: str - """ - # Check if it is an absolute path # XXX use relpath, add tests - if path.find(os.sep) >= 0: - # it's an absolute path? - distinfo_dirname, path = path.split(os.sep)[-2:] - if distinfo_dirname != self.path.split(os.sep)[-1]: - raise DistlibException( - 'dist-info file %r does not belong to the %r %s ' - 'distribution' % (path, self.name, self.version)) - - # The file must be relative - if path not in DIST_FILES: - raise DistlibException('invalid path for a dist-info file: ' - '%r at %r' % (path, self.path)) - - return os.path.join(self.path, path) - - def list_distinfo_files(self): - """ - Iterates over the ``RECORD`` entries and returns paths for each line if - the path is pointing to a file located in the ``.dist-info`` directory - or one of its subdirectories. - - :returns: iterator of paths - """ - base = os.path.dirname(self.path) - for path, checksum, size in self._get_records(): - # XXX add separator or use real relpath algo - if not os.path.isabs(path): - path = os.path.join(base, path) - if path.startswith(self.path): - yield path - - def __eq__(self, other): - return (isinstance(other, InstalledDistribution) and - self.path == other.path) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - __hash__ = object.__hash__ - - -class EggInfoDistribution(BaseInstalledDistribution): - """Created with the *path* of the ``.egg-info`` directory or file provided - to the constructor. It reads the metadata contained in the file itself, or - if the given path happens to be a directory, the metadata is read from the - file ``PKG-INFO`` under that directory.""" - - requested = True # as we have no way of knowing, assume it was - shared_locations = {} - - def __init__(self, path, env=None): - def set_name_and_version(s, n, v): - s.name = n - s.key = n.lower() # for case-insensitive comparisons - s.version = v - - self.path = path - self.dist_path = env - if env and env._cache_enabled and path in env._cache_egg.path: - metadata = env._cache_egg.path[path].metadata - set_name_and_version(self, metadata.name, metadata.version) - else: - metadata = self._get_metadata(path) - - # Need to be set before caching - set_name_and_version(self, metadata.name, metadata.version) - - if env and env._cache_enabled: - env._cache_egg.add(self) - super(EggInfoDistribution, self).__init__(metadata, path, env) - - def _get_metadata(self, path): - requires = None - - def parse_requires_data(data): - """Create a list of dependencies from a requires.txt file. - - *data*: the contents of a setuptools-produced requires.txt file. - """ - reqs = [] - lines = data.splitlines() - for line in lines: - line = line.strip() - if line.startswith('['): - logger.warning('Unexpected line: quitting requirement scan: %r', - line) - break - r = parse_requirement(line) - if not r: - logger.warning('Not recognised as a requirement: %r', line) - continue - if r.extras: - logger.warning('extra requirements in requires.txt are ' - 'not supported') - if not r.constraints: - reqs.append(r.name) - else: - cons = ', '.join('%s%s' % c for c in r.constraints) - reqs.append('%s (%s)' % (r.name, cons)) - return reqs - - def parse_requires_path(req_path): - """Create a list of dependencies from a requires.txt file. - - *req_path*: the path to a setuptools-produced requires.txt file. - """ - - reqs = [] - try: - with codecs.open(req_path, 'r', 'utf-8') as fp: - reqs = parse_requires_data(fp.read()) - except IOError: - pass - return reqs - - tl_path = tl_data = None - if path.endswith('.egg'): - if os.path.isdir(path): - p = os.path.join(path, 'EGG-INFO') - meta_path = os.path.join(p, 'PKG-INFO') - metadata = Metadata(path=meta_path, scheme='legacy') - req_path = os.path.join(p, 'requires.txt') - tl_path = os.path.join(p, 'top_level.txt') - requires = parse_requires_path(req_path) - else: - # FIXME handle the case where zipfile is not available - zipf = zipimport.zipimporter(path) - fileobj = StringIO( - zipf.get_data('EGG-INFO/PKG-INFO').decode('utf8')) - metadata = Metadata(fileobj=fileobj, scheme='legacy') - try: - data = zipf.get_data('EGG-INFO/requires.txt') - tl_data = zipf.get_data('EGG-INFO/top_level.txt').decode('utf-8') - requires = parse_requires_data(data.decode('utf-8')) - except IOError: - requires = None - elif path.endswith('.egg-info'): - if os.path.isdir(path): - req_path = os.path.join(path, 'requires.txt') - requires = parse_requires_path(req_path) - path = os.path.join(path, 'PKG-INFO') - tl_path = os.path.join(path, 'top_level.txt') - metadata = Metadata(path=path, scheme='legacy') - else: - raise DistlibException('path must end with .egg-info or .egg, ' - 'got %r' % path) - - if requires: - metadata.add_requirements(requires) - # look for top-level modules in top_level.txt, if present - if tl_data is None: - if tl_path is not None and os.path.exists(tl_path): - with open(tl_path, 'rb') as f: - tl_data = f.read().decode('utf-8') - if not tl_data: - tl_data = [] - else: - tl_data = tl_data.splitlines() - self.modules = tl_data - return metadata - - def __repr__(self): - return '' % ( - self.name, self.version, self.path) - - def __str__(self): - return "%s %s" % (self.name, self.version) - - def check_installed_files(self): - """ - Checks that the hashes and sizes of the files in ``RECORD`` are - matched by the files themselves. Returns a (possibly empty) list of - mismatches. Each entry in the mismatch list will be a tuple consisting - of the path, 'exists', 'size' or 'hash' according to what didn't match - (existence is checked first, then size, then hash), the expected - value and the actual value. - """ - mismatches = [] - record_path = os.path.join(self.path, 'installed-files.txt') - if os.path.exists(record_path): - for path, _, _ in self.list_installed_files(): - if path == record_path: - continue - if not os.path.exists(path): - mismatches.append((path, 'exists', True, False)) - return mismatches - - def list_installed_files(self): - """ - Iterates over the ``installed-files.txt`` entries and returns a tuple - ``(path, hash, size)`` for each line. - - :returns: a list of (path, hash, size) - """ - - def _md5(path): - f = open(path, 'rb') - try: - content = f.read() - finally: - f.close() - return hashlib.md5(content).hexdigest() - - def _size(path): - return os.stat(path).st_size - - record_path = os.path.join(self.path, 'installed-files.txt') - result = [] - if os.path.exists(record_path): - with codecs.open(record_path, 'r', encoding='utf-8') as f: - for line in f: - line = line.strip() - p = os.path.normpath(os.path.join(self.path, line)) - # "./" is present as a marker between installed files - # and installation metadata files - if not os.path.exists(p): - logger.warning('Non-existent file: %s', p) - if p.endswith(('.pyc', '.pyo')): - continue - #otherwise fall through and fail - if not os.path.isdir(p): - result.append((p, _md5(p), _size(p))) - result.append((record_path, None, None)) - return result - - def list_distinfo_files(self, absolute=False): - """ - Iterates over the ``installed-files.txt`` entries and returns paths for - each line if the path is pointing to a file located in the - ``.egg-info`` directory or one of its subdirectories. - - :parameter absolute: If *absolute* is ``True``, each returned path is - transformed into a local absolute path. Otherwise the - raw value from ``installed-files.txt`` is returned. - :type absolute: boolean - :returns: iterator of paths - """ - record_path = os.path.join(self.path, 'installed-files.txt') - if os.path.exists(record_path): - skip = True - with codecs.open(record_path, 'r', encoding='utf-8') as f: - for line in f: - line = line.strip() - if line == './': - skip = False - continue - if not skip: - p = os.path.normpath(os.path.join(self.path, line)) - if p.startswith(self.path): - if absolute: - yield p - else: - yield line - - def __eq__(self, other): - return (isinstance(other, EggInfoDistribution) and - self.path == other.path) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - __hash__ = object.__hash__ - -new_dist_class = InstalledDistribution -old_dist_class = EggInfoDistribution - - -class DependencyGraph(object): - """ - Represents a dependency graph between distributions. - - The dependency relationships are stored in an ``adjacency_list`` that maps - distributions to a list of ``(other, label)`` tuples where ``other`` - is a distribution and the edge is labeled with ``label`` (i.e. the version - specifier, if such was provided). Also, for more efficient traversal, for - every distribution ``x``, a list of predecessors is kept in - ``reverse_list[x]``. An edge from distribution ``a`` to - distribution ``b`` means that ``a`` depends on ``b``. If any missing - dependencies are found, they are stored in ``missing``, which is a - dictionary that maps distributions to a list of requirements that were not - provided by any other distributions. - """ - - def __init__(self): - self.adjacency_list = {} - self.reverse_list = {} - self.missing = {} - - def add_distribution(self, distribution): - """Add the *distribution* to the graph. - - :type distribution: :class:`distutils2.database.InstalledDistribution` - or :class:`distutils2.database.EggInfoDistribution` - """ - self.adjacency_list[distribution] = [] - self.reverse_list[distribution] = [] - #self.missing[distribution] = [] - - def add_edge(self, x, y, label=None): - """Add an edge from distribution *x* to distribution *y* with the given - *label*. - - :type x: :class:`distutils2.database.InstalledDistribution` or - :class:`distutils2.database.EggInfoDistribution` - :type y: :class:`distutils2.database.InstalledDistribution` or - :class:`distutils2.database.EggInfoDistribution` - :type label: ``str`` or ``None`` - """ - self.adjacency_list[x].append((y, label)) - # multiple edges are allowed, so be careful - if x not in self.reverse_list[y]: - self.reverse_list[y].append(x) - - def add_missing(self, distribution, requirement): - """ - Add a missing *requirement* for the given *distribution*. - - :type distribution: :class:`distutils2.database.InstalledDistribution` - or :class:`distutils2.database.EggInfoDistribution` - :type requirement: ``str`` - """ - logger.debug('%s missing %r', distribution, requirement) - self.missing.setdefault(distribution, []).append(requirement) - - def _repr_dist(self, dist): - return '%s %s' % (dist.name, dist.version) - - def repr_node(self, dist, level=1): - """Prints only a subgraph""" - output = [self._repr_dist(dist)] - for other, label in self.adjacency_list[dist]: - dist = self._repr_dist(other) - if label is not None: - dist = '%s [%s]' % (dist, label) - output.append(' ' * level + str(dist)) - suboutput = self.repr_node(other, level + 1) - subs = suboutput.split('\n') - output.extend(subs[1:]) - return '\n'.join(output) - - def to_dot(self, f, skip_disconnected=True): - """Writes a DOT output for the graph to the provided file *f*. - - If *skip_disconnected* is set to ``True``, then all distributions - that are not dependent on any other distribution are skipped. - - :type f: has to support ``file``-like operations - :type skip_disconnected: ``bool`` - """ - disconnected = [] - - f.write("digraph dependencies {\n") - for dist, adjs in self.adjacency_list.items(): - if len(adjs) == 0 and not skip_disconnected: - disconnected.append(dist) - for other, label in adjs: - if not label is None: - f.write('"%s" -> "%s" [label="%s"]\n' % - (dist.name, other.name, label)) - else: - f.write('"%s" -> "%s"\n' % (dist.name, other.name)) - if not skip_disconnected and len(disconnected) > 0: - f.write('subgraph disconnected {\n') - f.write('label = "Disconnected"\n') - f.write('bgcolor = red\n') - - for dist in disconnected: - f.write('"%s"' % dist.name) - f.write('\n') - f.write('}\n') - f.write('}\n') - - def topological_sort(self): - """ - Perform a topological sort of the graph. - :return: A tuple, the first element of which is a topologically sorted - list of distributions, and the second element of which is a - list of distributions that cannot be sorted because they have - circular dependencies and so form a cycle. - """ - result = [] - # Make a shallow copy of the adjacency list - alist = {} - for k, v in self.adjacency_list.items(): - alist[k] = v[:] - while True: - # See what we can remove in this run - to_remove = [] - for k, v in list(alist.items())[:]: - if not v: - to_remove.append(k) - del alist[k] - if not to_remove: - # What's left in alist (if anything) is a cycle. - break - # Remove from the adjacency list of others - for k, v in alist.items(): - alist[k] = [(d, r) for d, r in v if d not in to_remove] - logger.debug('Moving to result: %s', - ['%s (%s)' % (d.name, d.version) for d in to_remove]) - result.extend(to_remove) - return result, list(alist.keys()) - - def __repr__(self): - """Representation of the graph""" - output = [] - for dist, adjs in self.adjacency_list.items(): - output.append(self.repr_node(dist)) - return '\n'.join(output) - - -def make_graph(dists, scheme='default'): - """Makes a dependency graph from the given distributions. - - :parameter dists: a list of distributions - :type dists: list of :class:`distutils2.database.InstalledDistribution` and - :class:`distutils2.database.EggInfoDistribution` instances - :rtype: a :class:`DependencyGraph` instance - """ - scheme = get_scheme(scheme) - graph = DependencyGraph() - provided = {} # maps names to lists of (version, dist) tuples - - # first, build the graph and find out what's provided - for dist in dists: - graph.add_distribution(dist) - - for p in dist.provides: - name, version = parse_name_and_version(p) - logger.debug('Add to provided: %s, %s, %s', name, version, dist) - provided.setdefault(name, []).append((version, dist)) - - # now make the edges - for dist in dists: - requires = (dist.run_requires | dist.meta_requires | - dist.build_requires | dist.dev_requires) - for req in requires: - try: - matcher = scheme.matcher(req) - except UnsupportedVersionError: - # XXX compat-mode if cannot read the version - logger.warning('could not read version %r - using name only', - req) - name = req.split()[0] - matcher = scheme.matcher(name) - - name = matcher.key # case-insensitive - - matched = False - if name in provided: - for version, provider in provided[name]: - try: - match = matcher.match(version) - except UnsupportedVersionError: - match = False - - if match: - graph.add_edge(dist, provider, req) - matched = True - break - if not matched: - graph.add_missing(dist, req) - return graph - - -def get_dependent_dists(dists, dist): - """Recursively generate a list of distributions from *dists* that are - dependent on *dist*. - - :param dists: a list of distributions - :param dist: a distribution, member of *dists* for which we are interested - """ - if dist not in dists: - raise DistlibException('given distribution %r is not a member ' - 'of the list' % dist.name) - graph = make_graph(dists) - - dep = [dist] # dependent distributions - todo = graph.reverse_list[dist] # list of nodes we should inspect - - while todo: - d = todo.pop() - dep.append(d) - for succ in graph.reverse_list[d]: - if succ not in dep: - todo.append(succ) - - dep.pop(0) # remove dist from dep, was there to prevent infinite loops - return dep - - -def get_required_dists(dists, dist): - """Recursively generate a list of distributions from *dists* that are - required by *dist*. - - :param dists: a list of distributions - :param dist: a distribution, member of *dists* for which we are interested - """ - if dist not in dists: - raise DistlibException('given distribution %r is not a member ' - 'of the list' % dist.name) - graph = make_graph(dists) - - req = [] # required distributions - todo = graph.adjacency_list[dist] # list of nodes we should inspect - - while todo: - d = todo.pop()[0] - req.append(d) - for pred in graph.adjacency_list[d]: - if pred not in req: - todo.append(pred) - - return req - - -def make_dist(name, version, **kwargs): - """ - A convenience method for making a dist given just a name and version. - """ - summary = kwargs.pop('summary', 'Placeholder for summary') - md = Metadata(**kwargs) - md.name = name - md.version = version - md.summary = summary or 'Placeholder for summary' - return Distribution(md) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/index.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/index.py deleted file mode 100644 index b1fbbf8..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/index.py +++ /dev/null @@ -1,509 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -import hashlib -import logging -import os -import shutil -import subprocess -import tempfile -try: - from threading import Thread -except ImportError: - from dummy_threading import Thread - -from . import DistlibException -from .compat import (HTTPBasicAuthHandler, Request, HTTPPasswordMgr, - urlparse, build_opener, string_types) -from .util import zip_dir, ServerProxy - -logger = logging.getLogger(__name__) - -DEFAULT_INDEX = 'https://pypi.org/pypi' -DEFAULT_REALM = 'pypi' - -class PackageIndex(object): - """ - This class represents a package index compatible with PyPI, the Python - Package Index. - """ - - boundary = b'----------ThIs_Is_tHe_distlib_index_bouNdaRY_$' - - def __init__(self, url=None): - """ - Initialise an instance. - - :param url: The URL of the index. If not specified, the URL for PyPI is - used. - """ - self.url = url or DEFAULT_INDEX - self.read_configuration() - scheme, netloc, path, params, query, frag = urlparse(self.url) - if params or query or frag or scheme not in ('http', 'https'): - raise DistlibException('invalid repository: %s' % self.url) - self.password_handler = None - self.ssl_verifier = None - self.gpg = None - self.gpg_home = None - with open(os.devnull, 'w') as sink: - # Use gpg by default rather than gpg2, as gpg2 insists on - # prompting for passwords - for s in ('gpg', 'gpg2'): - try: - rc = subprocess.check_call([s, '--version'], stdout=sink, - stderr=sink) - if rc == 0: - self.gpg = s - break - except OSError: - pass - - def _get_pypirc_command(self): - """ - Get the distutils command for interacting with PyPI configurations. - :return: the command. - """ - from .util import _get_pypirc_command as cmd - return cmd() - - def read_configuration(self): - """ - Read the PyPI access configuration as supported by distutils. This populates - ``username``, ``password``, ``realm`` and ``url`` attributes from the - configuration. - """ - from .util import _load_pypirc - cfg = _load_pypirc(self) - self.username = cfg.get('username') - self.password = cfg.get('password') - self.realm = cfg.get('realm', 'pypi') - self.url = cfg.get('repository', self.url) - - def save_configuration(self): - """ - Save the PyPI access configuration. You must have set ``username`` and - ``password`` attributes before calling this method. - """ - self.check_credentials() - from .util import _store_pypirc - _store_pypirc(self) - - def check_credentials(self): - """ - Check that ``username`` and ``password`` have been set, and raise an - exception if not. - """ - if self.username is None or self.password is None: - raise DistlibException('username and password must be set') - pm = HTTPPasswordMgr() - _, netloc, _, _, _, _ = urlparse(self.url) - pm.add_password(self.realm, netloc, self.username, self.password) - self.password_handler = HTTPBasicAuthHandler(pm) - - def register(self, metadata): - """ - Register a distribution on PyPI, using the provided metadata. - - :param metadata: A :class:`Metadata` instance defining at least a name - and version number for the distribution to be - registered. - :return: The HTTP response received from PyPI upon submission of the - request. - """ - self.check_credentials() - metadata.validate() - d = metadata.todict() - d[':action'] = 'verify' - request = self.encode_request(d.items(), []) - response = self.send_request(request) - d[':action'] = 'submit' - request = self.encode_request(d.items(), []) - return self.send_request(request) - - def _reader(self, name, stream, outbuf): - """ - Thread runner for reading lines of from a subprocess into a buffer. - - :param name: The logical name of the stream (used for logging only). - :param stream: The stream to read from. This will typically a pipe - connected to the output stream of a subprocess. - :param outbuf: The list to append the read lines to. - """ - while True: - s = stream.readline() - if not s: - break - s = s.decode('utf-8').rstrip() - outbuf.append(s) - logger.debug('%s: %s' % (name, s)) - stream.close() - - def get_sign_command(self, filename, signer, sign_password, - keystore=None): - """ - Return a suitable command for signing a file. - - :param filename: The pathname to the file to be signed. - :param signer: The identifier of the signer of the file. - :param sign_password: The passphrase for the signer's - private key used for signing. - :param keystore: The path to a directory which contains the keys - used in verification. If not specified, the - instance's ``gpg_home`` attribute is used instead. - :return: The signing command as a list suitable to be - passed to :class:`subprocess.Popen`. - """ - cmd = [self.gpg, '--status-fd', '2', '--no-tty'] - if keystore is None: - keystore = self.gpg_home - if keystore: - cmd.extend(['--homedir', keystore]) - if sign_password is not None: - cmd.extend(['--batch', '--passphrase-fd', '0']) - td = tempfile.mkdtemp() - sf = os.path.join(td, os.path.basename(filename) + '.asc') - cmd.extend(['--detach-sign', '--armor', '--local-user', - signer, '--output', sf, filename]) - logger.debug('invoking: %s', ' '.join(cmd)) - return cmd, sf - - def run_command(self, cmd, input_data=None): - """ - Run a command in a child process , passing it any input data specified. - - :param cmd: The command to run. - :param input_data: If specified, this must be a byte string containing - data to be sent to the child process. - :return: A tuple consisting of the subprocess' exit code, a list of - lines read from the subprocess' ``stdout``, and a list of - lines read from the subprocess' ``stderr``. - """ - kwargs = { - 'stdout': subprocess.PIPE, - 'stderr': subprocess.PIPE, - } - if input_data is not None: - kwargs['stdin'] = subprocess.PIPE - stdout = [] - stderr = [] - p = subprocess.Popen(cmd, **kwargs) - # We don't use communicate() here because we may need to - # get clever with interacting with the command - t1 = Thread(target=self._reader, args=('stdout', p.stdout, stdout)) - t1.start() - t2 = Thread(target=self._reader, args=('stderr', p.stderr, stderr)) - t2.start() - if input_data is not None: - p.stdin.write(input_data) - p.stdin.close() - - p.wait() - t1.join() - t2.join() - return p.returncode, stdout, stderr - - def sign_file(self, filename, signer, sign_password, keystore=None): - """ - Sign a file. - - :param filename: The pathname to the file to be signed. - :param signer: The identifier of the signer of the file. - :param sign_password: The passphrase for the signer's - private key used for signing. - :param keystore: The path to a directory which contains the keys - used in signing. If not specified, the instance's - ``gpg_home`` attribute is used instead. - :return: The absolute pathname of the file where the signature is - stored. - """ - cmd, sig_file = self.get_sign_command(filename, signer, sign_password, - keystore) - rc, stdout, stderr = self.run_command(cmd, - sign_password.encode('utf-8')) - if rc != 0: - raise DistlibException('sign command failed with error ' - 'code %s' % rc) - return sig_file - - def upload_file(self, metadata, filename, signer=None, sign_password=None, - filetype='sdist', pyversion='source', keystore=None): - """ - Upload a release file to the index. - - :param metadata: A :class:`Metadata` instance defining at least a name - and version number for the file to be uploaded. - :param filename: The pathname of the file to be uploaded. - :param signer: The identifier of the signer of the file. - :param sign_password: The passphrase for the signer's - private key used for signing. - :param filetype: The type of the file being uploaded. This is the - distutils command which produced that file, e.g. - ``sdist`` or ``bdist_wheel``. - :param pyversion: The version of Python which the release relates - to. For code compatible with any Python, this would - be ``source``, otherwise it would be e.g. ``3.2``. - :param keystore: The path to a directory which contains the keys - used in signing. If not specified, the instance's - ``gpg_home`` attribute is used instead. - :return: The HTTP response received from PyPI upon submission of the - request. - """ - self.check_credentials() - if not os.path.exists(filename): - raise DistlibException('not found: %s' % filename) - metadata.validate() - d = metadata.todict() - sig_file = None - if signer: - if not self.gpg: - logger.warning('no signing program available - not signed') - else: - sig_file = self.sign_file(filename, signer, sign_password, - keystore) - with open(filename, 'rb') as f: - file_data = f.read() - md5_digest = hashlib.md5(file_data).hexdigest() - sha256_digest = hashlib.sha256(file_data).hexdigest() - d.update({ - ':action': 'file_upload', - 'protocol_version': '1', - 'filetype': filetype, - 'pyversion': pyversion, - 'md5_digest': md5_digest, - 'sha256_digest': sha256_digest, - }) - files = [('content', os.path.basename(filename), file_data)] - if sig_file: - with open(sig_file, 'rb') as f: - sig_data = f.read() - files.append(('gpg_signature', os.path.basename(sig_file), - sig_data)) - shutil.rmtree(os.path.dirname(sig_file)) - request = self.encode_request(d.items(), files) - return self.send_request(request) - - def upload_documentation(self, metadata, doc_dir): - """ - Upload documentation to the index. - - :param metadata: A :class:`Metadata` instance defining at least a name - and version number for the documentation to be - uploaded. - :param doc_dir: The pathname of the directory which contains the - documentation. This should be the directory that - contains the ``index.html`` for the documentation. - :return: The HTTP response received from PyPI upon submission of the - request. - """ - self.check_credentials() - if not os.path.isdir(doc_dir): - raise DistlibException('not a directory: %r' % doc_dir) - fn = os.path.join(doc_dir, 'index.html') - if not os.path.exists(fn): - raise DistlibException('not found: %r' % fn) - metadata.validate() - name, version = metadata.name, metadata.version - zip_data = zip_dir(doc_dir).getvalue() - fields = [(':action', 'doc_upload'), - ('name', name), ('version', version)] - files = [('content', name, zip_data)] - request = self.encode_request(fields, files) - return self.send_request(request) - - def get_verify_command(self, signature_filename, data_filename, - keystore=None): - """ - Return a suitable command for verifying a file. - - :param signature_filename: The pathname to the file containing the - signature. - :param data_filename: The pathname to the file containing the - signed data. - :param keystore: The path to a directory which contains the keys - used in verification. If not specified, the - instance's ``gpg_home`` attribute is used instead. - :return: The verifying command as a list suitable to be - passed to :class:`subprocess.Popen`. - """ - cmd = [self.gpg, '--status-fd', '2', '--no-tty'] - if keystore is None: - keystore = self.gpg_home - if keystore: - cmd.extend(['--homedir', keystore]) - cmd.extend(['--verify', signature_filename, data_filename]) - logger.debug('invoking: %s', ' '.join(cmd)) - return cmd - - def verify_signature(self, signature_filename, data_filename, - keystore=None): - """ - Verify a signature for a file. - - :param signature_filename: The pathname to the file containing the - signature. - :param data_filename: The pathname to the file containing the - signed data. - :param keystore: The path to a directory which contains the keys - used in verification. If not specified, the - instance's ``gpg_home`` attribute is used instead. - :return: True if the signature was verified, else False. - """ - if not self.gpg: - raise DistlibException('verification unavailable because gpg ' - 'unavailable') - cmd = self.get_verify_command(signature_filename, data_filename, - keystore) - rc, stdout, stderr = self.run_command(cmd) - if rc not in (0, 1): - raise DistlibException('verify command failed with error ' - 'code %s' % rc) - return rc == 0 - - def download_file(self, url, destfile, digest=None, reporthook=None): - """ - This is a convenience method for downloading a file from an URL. - Normally, this will be a file from the index, though currently - no check is made for this (i.e. a file can be downloaded from - anywhere). - - The method is just like the :func:`urlretrieve` function in the - standard library, except that it allows digest computation to be - done during download and checking that the downloaded data - matched any expected value. - - :param url: The URL of the file to be downloaded (assumed to be - available via an HTTP GET request). - :param destfile: The pathname where the downloaded file is to be - saved. - :param digest: If specified, this must be a (hasher, value) - tuple, where hasher is the algorithm used (e.g. - ``'md5'``) and ``value`` is the expected value. - :param reporthook: The same as for :func:`urlretrieve` in the - standard library. - """ - if digest is None: - digester = None - logger.debug('No digest specified') - else: - if isinstance(digest, (list, tuple)): - hasher, digest = digest - else: - hasher = 'md5' - digester = getattr(hashlib, hasher)() - logger.debug('Digest specified: %s' % digest) - # The following code is equivalent to urlretrieve. - # We need to do it this way so that we can compute the - # digest of the file as we go. - with open(destfile, 'wb') as dfp: - # addinfourl is not a context manager on 2.x - # so we have to use try/finally - sfp = self.send_request(Request(url)) - try: - headers = sfp.info() - blocksize = 8192 - size = -1 - read = 0 - blocknum = 0 - if "content-length" in headers: - size = int(headers["Content-Length"]) - if reporthook: - reporthook(blocknum, blocksize, size) - while True: - block = sfp.read(blocksize) - if not block: - break - read += len(block) - dfp.write(block) - if digester: - digester.update(block) - blocknum += 1 - if reporthook: - reporthook(blocknum, blocksize, size) - finally: - sfp.close() - - # check that we got the whole file, if we can - if size >= 0 and read < size: - raise DistlibException( - 'retrieval incomplete: got only %d out of %d bytes' - % (read, size)) - # if we have a digest, it must match. - if digester: - actual = digester.hexdigest() - if digest != actual: - raise DistlibException('%s digest mismatch for %s: expected ' - '%s, got %s' % (hasher, destfile, - digest, actual)) - logger.debug('Digest verified: %s', digest) - - def send_request(self, req): - """ - Send a standard library :class:`Request` to PyPI and return its - response. - - :param req: The request to send. - :return: The HTTP response from PyPI (a standard library HTTPResponse). - """ - handlers = [] - if self.password_handler: - handlers.append(self.password_handler) - if self.ssl_verifier: - handlers.append(self.ssl_verifier) - opener = build_opener(*handlers) - return opener.open(req) - - def encode_request(self, fields, files): - """ - Encode fields and files for posting to an HTTP server. - - :param fields: The fields to send as a list of (fieldname, value) - tuples. - :param files: The files to send as a list of (fieldname, filename, - file_bytes) tuple. - """ - # Adapted from packaging, which in turn was adapted from - # http://code.activestate.com/recipes/146306 - - parts = [] - boundary = self.boundary - for k, values in fields: - if not isinstance(values, (list, tuple)): - values = [values] - - for v in values: - parts.extend(( - b'--' + boundary, - ('Content-Disposition: form-data; name="%s"' % - k).encode('utf-8'), - b'', - v.encode('utf-8'))) - for key, filename, value in files: - parts.extend(( - b'--' + boundary, - ('Content-Disposition: form-data; name="%s"; filename="%s"' % - (key, filename)).encode('utf-8'), - b'', - value)) - - parts.extend((b'--' + boundary + b'--', b'')) - - body = b'\r\n'.join(parts) - ct = b'multipart/form-data; boundary=' + boundary - headers = { - 'Content-type': ct, - 'Content-length': str(len(body)) - } - return Request(self.url, body, headers) - - def search(self, terms, operator=None): - if isinstance(terms, string_types): - terms = {'name': terms} - rpc_proxy = ServerProxy(self.url, timeout=3.0) - try: - return rpc_proxy.search(terms, operator or 'and') - finally: - rpc_proxy('close')() diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/locators.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/locators.py deleted file mode 100644 index 0c7d639..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/locators.py +++ /dev/null @@ -1,1300 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2015 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# - -import gzip -from io import BytesIO -import json -import logging -import os -import posixpath -import re -try: - import threading -except ImportError: # pragma: no cover - import dummy_threading as threading -import zlib - -from . import DistlibException -from .compat import (urljoin, urlparse, urlunparse, url2pathname, pathname2url, - queue, quote, unescape, build_opener, - HTTPRedirectHandler as BaseRedirectHandler, text_type, - Request, HTTPError, URLError) -from .database import Distribution, DistributionPath, make_dist -from .metadata import Metadata, MetadataInvalidError -from .util import (cached_property, ensure_slash, split_filename, get_project_data, - parse_requirement, parse_name_and_version, ServerProxy, - normalize_name) -from .version import get_scheme, UnsupportedVersionError -from .wheel import Wheel, is_compatible - -logger = logging.getLogger(__name__) - -HASHER_HASH = re.compile(r'^(\w+)=([a-f0-9]+)') -CHARSET = re.compile(r';\s*charset\s*=\s*(.*)\s*$', re.I) -HTML_CONTENT_TYPE = re.compile('text/html|application/x(ht)?ml') -DEFAULT_INDEX = 'https://pypi.org/pypi' - -def get_all_distribution_names(url=None): - """ - Return all distribution names known by an index. - :param url: The URL of the index. - :return: A list of all known distribution names. - """ - if url is None: - url = DEFAULT_INDEX - client = ServerProxy(url, timeout=3.0) - try: - return client.list_packages() - finally: - client('close')() - -class RedirectHandler(BaseRedirectHandler): - """ - A class to work around a bug in some Python 3.2.x releases. - """ - # There's a bug in the base version for some 3.2.x - # (e.g. 3.2.2 on Ubuntu Oneiric). If a Location header - # returns e.g. /abc, it bails because it says the scheme '' - # is bogus, when actually it should use the request's - # URL for the scheme. See Python issue #13696. - def http_error_302(self, req, fp, code, msg, headers): - # Some servers (incorrectly) return multiple Location headers - # (so probably same goes for URI). Use first header. - newurl = None - for key in ('location', 'uri'): - if key in headers: - newurl = headers[key] - break - if newurl is None: # pragma: no cover - return - urlparts = urlparse(newurl) - if urlparts.scheme == '': - newurl = urljoin(req.get_full_url(), newurl) - if hasattr(headers, 'replace_header'): - headers.replace_header(key, newurl) - else: - headers[key] = newurl - return BaseRedirectHandler.http_error_302(self, req, fp, code, msg, - headers) - - http_error_301 = http_error_303 = http_error_307 = http_error_302 - -class Locator(object): - """ - A base class for locators - things that locate distributions. - """ - source_extensions = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz') - binary_extensions = ('.egg', '.exe', '.whl') - excluded_extensions = ('.pdf',) - - # A list of tags indicating which wheels you want to match. The default - # value of None matches against the tags compatible with the running - # Python. If you want to match other values, set wheel_tags on a locator - # instance to a list of tuples (pyver, abi, arch) which you want to match. - wheel_tags = None - - downloadable_extensions = source_extensions + ('.whl',) - - def __init__(self, scheme='default'): - """ - Initialise an instance. - :param scheme: Because locators look for most recent versions, they - need to know the version scheme to use. This specifies - the current PEP-recommended scheme - use ``'legacy'`` - if you need to support existing distributions on PyPI. - """ - self._cache = {} - self.scheme = scheme - # Because of bugs in some of the handlers on some of the platforms, - # we use our own opener rather than just using urlopen. - self.opener = build_opener(RedirectHandler()) - # If get_project() is called from locate(), the matcher instance - # is set from the requirement passed to locate(). See issue #18 for - # why this can be useful to know. - self.matcher = None - self.errors = queue.Queue() - - def get_errors(self): - """ - Return any errors which have occurred. - """ - result = [] - while not self.errors.empty(): # pragma: no cover - try: - e = self.errors.get(False) - result.append(e) - except self.errors.Empty: - continue - self.errors.task_done() - return result - - def clear_errors(self): - """ - Clear any errors which may have been logged. - """ - # Just get the errors and throw them away - self.get_errors() - - def clear_cache(self): - self._cache.clear() - - def _get_scheme(self): - return self._scheme - - def _set_scheme(self, value): - self._scheme = value - - scheme = property(_get_scheme, _set_scheme) - - def _get_project(self, name): - """ - For a given project, get a dictionary mapping available versions to Distribution - instances. - - This should be implemented in subclasses. - - If called from a locate() request, self.matcher will be set to a - matcher for the requirement to satisfy, otherwise it will be None. - """ - raise NotImplementedError('Please implement in the subclass') - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - raise NotImplementedError('Please implement in the subclass') - - def get_project(self, name): - """ - For a given project, get a dictionary mapping available versions to Distribution - instances. - - This calls _get_project to do all the work, and just implements a caching layer on top. - """ - if self._cache is None: # pragma: no cover - result = self._get_project(name) - elif name in self._cache: - result = self._cache[name] - else: - self.clear_errors() - result = self._get_project(name) - self._cache[name] = result - return result - - def score_url(self, url): - """ - Give an url a score which can be used to choose preferred URLs - for a given project release. - """ - t = urlparse(url) - basename = posixpath.basename(t.path) - compatible = True - is_wheel = basename.endswith('.whl') - is_downloadable = basename.endswith(self.downloadable_extensions) - if is_wheel: - compatible = is_compatible(Wheel(basename), self.wheel_tags) - return (t.scheme == 'https', 'pypi.org' in t.netloc, - is_downloadable, is_wheel, compatible, basename) - - def prefer_url(self, url1, url2): - """ - Choose one of two URLs where both are candidates for distribution - archives for the same version of a distribution (for example, - .tar.gz vs. zip). - - The current implementation favours https:// URLs over http://, archives - from PyPI over those from other locations, wheel compatibility (if a - wheel) and then the archive name. - """ - result = url2 - if url1: - s1 = self.score_url(url1) - s2 = self.score_url(url2) - if s1 > s2: - result = url1 - if result != url2: - logger.debug('Not replacing %r with %r', url1, url2) - else: - logger.debug('Replacing %r with %r', url1, url2) - return result - - def split_filename(self, filename, project_name): - """ - Attempt to split a filename in project name, version and Python version. - """ - return split_filename(filename, project_name) - - def convert_url_to_download_info(self, url, project_name): - """ - See if a URL is a candidate for a download URL for a project (the URL - has typically been scraped from an HTML page). - - If it is, a dictionary is returned with keys "name", "version", - "filename" and "url"; otherwise, None is returned. - """ - def same_project(name1, name2): - return normalize_name(name1) == normalize_name(name2) - - result = None - scheme, netloc, path, params, query, frag = urlparse(url) - if frag.lower().startswith('egg='): # pragma: no cover - logger.debug('%s: version hint in fragment: %r', - project_name, frag) - m = HASHER_HASH.match(frag) - if m: - algo, digest = m.groups() - else: - algo, digest = None, None - origpath = path - if path and path[-1] == '/': # pragma: no cover - path = path[:-1] - if path.endswith('.whl'): - try: - wheel = Wheel(path) - if not is_compatible(wheel, self.wheel_tags): - logger.debug('Wheel not compatible: %s', path) - else: - if project_name is None: - include = True - else: - include = same_project(wheel.name, project_name) - if include: - result = { - 'name': wheel.name, - 'version': wheel.version, - 'filename': wheel.filename, - 'url': urlunparse((scheme, netloc, origpath, - params, query, '')), - 'python-version': ', '.join( - ['.'.join(list(v[2:])) for v in wheel.pyver]), - } - except Exception as e: # pragma: no cover - logger.warning('invalid path for wheel: %s', path) - elif not path.endswith(self.downloadable_extensions): # pragma: no cover - logger.debug('Not downloadable: %s', path) - else: # downloadable extension - path = filename = posixpath.basename(path) - for ext in self.downloadable_extensions: - if path.endswith(ext): - path = path[:-len(ext)] - t = self.split_filename(path, project_name) - if not t: # pragma: no cover - logger.debug('No match for project/version: %s', path) - else: - name, version, pyver = t - if not project_name or same_project(project_name, name): - result = { - 'name': name, - 'version': version, - 'filename': filename, - 'url': urlunparse((scheme, netloc, origpath, - params, query, '')), - #'packagetype': 'sdist', - } - if pyver: # pragma: no cover - result['python-version'] = pyver - break - if result and algo: - result['%s_digest' % algo] = digest - return result - - def _get_digest(self, info): - """ - Get a digest from a dictionary by looking at a "digests" dictionary - or keys of the form 'algo_digest'. - - Returns a 2-tuple (algo, digest) if found, else None. Currently - looks only for SHA256, then MD5. - """ - result = None - if 'digests' in info: - digests = info['digests'] - for algo in ('sha256', 'md5'): - if algo in digests: - result = (algo, digests[algo]) - break - if not result: - for algo in ('sha256', 'md5'): - key = '%s_digest' % algo - if key in info: - result = (algo, info[key]) - break - return result - - def _update_version_data(self, result, info): - """ - Update a result dictionary (the final result from _get_project) with a - dictionary for a specific version, which typically holds information - gleaned from a filename or URL for an archive for the distribution. - """ - name = info.pop('name') - version = info.pop('version') - if version in result: - dist = result[version] - md = dist.metadata - else: - dist = make_dist(name, version, scheme=self.scheme) - md = dist.metadata - dist.digest = digest = self._get_digest(info) - url = info['url'] - result['digests'][url] = digest - if md.source_url != info['url']: - md.source_url = self.prefer_url(md.source_url, url) - result['urls'].setdefault(version, set()).add(url) - dist.locator = self - result[version] = dist - - def locate(self, requirement, prereleases=False): - """ - Find the most recent distribution which matches the given - requirement. - - :param requirement: A requirement of the form 'foo (1.0)' or perhaps - 'foo (>= 1.0, < 2.0, != 1.3)' - :param prereleases: If ``True``, allow pre-release versions - to be located. Otherwise, pre-release versions - are not returned. - :return: A :class:`Distribution` instance, or ``None`` if no such - distribution could be located. - """ - result = None - r = parse_requirement(requirement) - if r is None: # pragma: no cover - raise DistlibException('Not a valid requirement: %r' % requirement) - scheme = get_scheme(self.scheme) - self.matcher = matcher = scheme.matcher(r.requirement) - logger.debug('matcher: %s (%s)', matcher, type(matcher).__name__) - versions = self.get_project(r.name) - if len(versions) > 2: # urls and digests keys are present - # sometimes, versions are invalid - slist = [] - vcls = matcher.version_class - for k in versions: - if k in ('urls', 'digests'): - continue - try: - if not matcher.match(k): - pass # logger.debug('%s did not match %r', matcher, k) - else: - if prereleases or not vcls(k).is_prerelease: - slist.append(k) - # else: - # logger.debug('skipping pre-release ' - # 'version %s of %s', k, matcher.name) - except Exception: # pragma: no cover - logger.warning('error matching %s with %r', matcher, k) - pass # slist.append(k) - if len(slist) > 1: - slist = sorted(slist, key=scheme.key) - if slist: - logger.debug('sorted list: %s', slist) - version = slist[-1] - result = versions[version] - if result: - if r.extras: - result.extras = r.extras - result.download_urls = versions.get('urls', {}).get(version, set()) - d = {} - sd = versions.get('digests', {}) - for url in result.download_urls: - if url in sd: # pragma: no cover - d[url] = sd[url] - result.digests = d - self.matcher = None - return result - - -class PyPIRPCLocator(Locator): - """ - This locator uses XML-RPC to locate distributions. It therefore - cannot be used with simple mirrors (that only mirror file content). - """ - def __init__(self, url, **kwargs): - """ - Initialise an instance. - - :param url: The URL to use for XML-RPC. - :param kwargs: Passed to the superclass constructor. - """ - super(PyPIRPCLocator, self).__init__(**kwargs) - self.base_url = url - self.client = ServerProxy(url, timeout=3.0) - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - return set(self.client.list_packages()) - - def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - versions = self.client.package_releases(name, True) - for v in versions: - urls = self.client.release_urls(name, v) - data = self.client.release_data(name, v) - metadata = Metadata(scheme=self.scheme) - metadata.name = data['name'] - metadata.version = data['version'] - metadata.license = data.get('license') - metadata.keywords = data.get('keywords', []) - metadata.summary = data.get('summary') - dist = Distribution(metadata) - if urls: - info = urls[0] - metadata.source_url = info['url'] - dist.digest = self._get_digest(info) - dist.locator = self - result[v] = dist - for info in urls: - url = info['url'] - digest = self._get_digest(info) - result['urls'].setdefault(v, set()).add(url) - result['digests'][url] = digest - return result - -class PyPIJSONLocator(Locator): - """ - This locator uses PyPI's JSON interface. It's very limited in functionality - and probably not worth using. - """ - def __init__(self, url, **kwargs): - super(PyPIJSONLocator, self).__init__(**kwargs) - self.base_url = ensure_slash(url) - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - raise NotImplementedError('Not available from this locator') - - def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - url = urljoin(self.base_url, '%s/json' % quote(name)) - try: - resp = self.opener.open(url) - data = resp.read().decode() # for now - d = json.loads(data) - md = Metadata(scheme=self.scheme) - data = d['info'] - md.name = data['name'] - md.version = data['version'] - md.license = data.get('license') - md.keywords = data.get('keywords', []) - md.summary = data.get('summary') - dist = Distribution(md) - dist.locator = self - urls = d['urls'] - result[md.version] = dist - for info in d['urls']: - url = info['url'] - dist.download_urls.add(url) - dist.digests[url] = self._get_digest(info) - result['urls'].setdefault(md.version, set()).add(url) - result['digests'][url] = self._get_digest(info) - # Now get other releases - for version, infos in d['releases'].items(): - if version == md.version: - continue # already done - omd = Metadata(scheme=self.scheme) - omd.name = md.name - omd.version = version - odist = Distribution(omd) - odist.locator = self - result[version] = odist - for info in infos: - url = info['url'] - odist.download_urls.add(url) - odist.digests[url] = self._get_digest(info) - result['urls'].setdefault(version, set()).add(url) - result['digests'][url] = self._get_digest(info) -# for info in urls: -# md.source_url = info['url'] -# dist.digest = self._get_digest(info) -# dist.locator = self -# for info in urls: -# url = info['url'] -# result['urls'].setdefault(md.version, set()).add(url) -# result['digests'][url] = self._get_digest(info) - except Exception as e: - self.errors.put(text_type(e)) - logger.exception('JSON fetch failed: %s', e) - return result - - -class Page(object): - """ - This class represents a scraped HTML page. - """ - # The following slightly hairy-looking regex just looks for the contents of - # an anchor link, which has an attribute "href" either immediately preceded - # or immediately followed by a "rel" attribute. The attribute values can be - # declared with double quotes, single quotes or no quotes - which leads to - # the length of the expression. - _href = re.compile(""" -(rel\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*))\\s+)? -href\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*)) -(\\s+rel\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*)))? -""", re.I | re.S | re.X) - _base = re.compile(r"""]+)""", re.I | re.S) - - def __init__(self, data, url): - """ - Initialise an instance with the Unicode page contents and the URL they - came from. - """ - self.data = data - self.base_url = self.url = url - m = self._base.search(self.data) - if m: - self.base_url = m.group(1) - - _clean_re = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I) - - @cached_property - def links(self): - """ - Return the URLs of all the links on a page together with information - about their "rel" attribute, for determining which ones to treat as - downloads and which ones to queue for further scraping. - """ - def clean(url): - "Tidy up an URL." - scheme, netloc, path, params, query, frag = urlparse(url) - return urlunparse((scheme, netloc, quote(path), - params, query, frag)) - - result = set() - for match in self._href.finditer(self.data): - d = match.groupdict('') - rel = (d['rel1'] or d['rel2'] or d['rel3'] or - d['rel4'] or d['rel5'] or d['rel6']) - url = d['url1'] or d['url2'] or d['url3'] - url = urljoin(self.base_url, url) - url = unescape(url) - url = self._clean_re.sub(lambda m: '%%%2x' % ord(m.group(0)), url) - result.add((url, rel)) - # We sort the result, hoping to bring the most recent versions - # to the front - result = sorted(result, key=lambda t: t[0], reverse=True) - return result - - -class SimpleScrapingLocator(Locator): - """ - A locator which scrapes HTML pages to locate downloads for a distribution. - This runs multiple threads to do the I/O; performance is at least as good - as pip's PackageFinder, which works in an analogous fashion. - """ - - # These are used to deal with various Content-Encoding schemes. - decoders = { - 'deflate': zlib.decompress, - 'gzip': lambda b: gzip.GzipFile(fileobj=BytesIO(b)).read(), - 'none': lambda b: b, - } - - def __init__(self, url, timeout=None, num_workers=10, **kwargs): - """ - Initialise an instance. - :param url: The root URL to use for scraping. - :param timeout: The timeout, in seconds, to be applied to requests. - This defaults to ``None`` (no timeout specified). - :param num_workers: The number of worker threads you want to do I/O, - This defaults to 10. - :param kwargs: Passed to the superclass. - """ - super(SimpleScrapingLocator, self).__init__(**kwargs) - self.base_url = ensure_slash(url) - self.timeout = timeout - self._page_cache = {} - self._seen = set() - self._to_fetch = queue.Queue() - self._bad_hosts = set() - self.skip_externals = False - self.num_workers = num_workers - self._lock = threading.RLock() - # See issue #45: we need to be resilient when the locator is used - # in a thread, e.g. with concurrent.futures. We can't use self._lock - # as it is for coordinating our internal threads - the ones created - # in _prepare_threads. - self._gplock = threading.RLock() - self.platform_check = False # See issue #112 - - def _prepare_threads(self): - """ - Threads are created only when get_project is called, and terminate - before it returns. They are there primarily to parallelise I/O (i.e. - fetching web pages). - """ - self._threads = [] - for i in range(self.num_workers): - t = threading.Thread(target=self._fetch) - t.setDaemon(True) - t.start() - self._threads.append(t) - - def _wait_threads(self): - """ - Tell all the threads to terminate (by sending a sentinel value) and - wait for them to do so. - """ - # Note that you need two loops, since you can't say which - # thread will get each sentinel - for t in self._threads: - self._to_fetch.put(None) # sentinel - for t in self._threads: - t.join() - self._threads = [] - - def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - with self._gplock: - self.result = result - self.project_name = name - url = urljoin(self.base_url, '%s/' % quote(name)) - self._seen.clear() - self._page_cache.clear() - self._prepare_threads() - try: - logger.debug('Queueing %s', url) - self._to_fetch.put(url) - self._to_fetch.join() - finally: - self._wait_threads() - del self.result - return result - - platform_dependent = re.compile(r'\b(linux_(i\d86|x86_64|arm\w+)|' - r'win(32|_amd64)|macosx_?\d+)\b', re.I) - - def _is_platform_dependent(self, url): - """ - Does an URL refer to a platform-specific download? - """ - return self.platform_dependent.search(url) - - def _process_download(self, url): - """ - See if an URL is a suitable download for a project. - - If it is, register information in the result dictionary (for - _get_project) about the specific version it's for. - - Note that the return value isn't actually used other than as a boolean - value. - """ - if self.platform_check and self._is_platform_dependent(url): - info = None - else: - info = self.convert_url_to_download_info(url, self.project_name) - logger.debug('process_download: %s -> %s', url, info) - if info: - with self._lock: # needed because self.result is shared - self._update_version_data(self.result, info) - return info - - def _should_queue(self, link, referrer, rel): - """ - Determine whether a link URL from a referring page and with a - particular "rel" attribute should be queued for scraping. - """ - scheme, netloc, path, _, _, _ = urlparse(link) - if path.endswith(self.source_extensions + self.binary_extensions + - self.excluded_extensions): - result = False - elif self.skip_externals and not link.startswith(self.base_url): - result = False - elif not referrer.startswith(self.base_url): - result = False - elif rel not in ('homepage', 'download'): - result = False - elif scheme not in ('http', 'https', 'ftp'): - result = False - elif self._is_platform_dependent(link): - result = False - else: - host = netloc.split(':', 1)[0] - if host.lower() == 'localhost': - result = False - else: - result = True - logger.debug('should_queue: %s (%s) from %s -> %s', link, rel, - referrer, result) - return result - - def _fetch(self): - """ - Get a URL to fetch from the work queue, get the HTML page, examine its - links for download candidates and candidates for further scraping. - - This is a handy method to run in a thread. - """ - while True: - url = self._to_fetch.get() - try: - if url: - page = self.get_page(url) - if page is None: # e.g. after an error - continue - for link, rel in page.links: - if link not in self._seen: - try: - self._seen.add(link) - if (not self._process_download(link) and - self._should_queue(link, url, rel)): - logger.debug('Queueing %s from %s', link, url) - self._to_fetch.put(link) - except MetadataInvalidError: # e.g. invalid versions - pass - except Exception as e: # pragma: no cover - self.errors.put(text_type(e)) - finally: - # always do this, to avoid hangs :-) - self._to_fetch.task_done() - if not url: - #logger.debug('Sentinel seen, quitting.') - break - - def get_page(self, url): - """ - Get the HTML for an URL, possibly from an in-memory cache. - - XXX TODO Note: this cache is never actually cleared. It's assumed that - the data won't get stale over the lifetime of a locator instance (not - necessarily true for the default_locator). - """ - # http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api - scheme, netloc, path, _, _, _ = urlparse(url) - if scheme == 'file' and os.path.isdir(url2pathname(path)): - url = urljoin(ensure_slash(url), 'index.html') - - if url in self._page_cache: - result = self._page_cache[url] - logger.debug('Returning %s from cache: %s', url, result) - else: - host = netloc.split(':', 1)[0] - result = None - if host in self._bad_hosts: - logger.debug('Skipping %s due to bad host %s', url, host) - else: - req = Request(url, headers={'Accept-encoding': 'identity'}) - try: - logger.debug('Fetching %s', url) - resp = self.opener.open(req, timeout=self.timeout) - logger.debug('Fetched %s', url) - headers = resp.info() - content_type = headers.get('Content-Type', '') - if HTML_CONTENT_TYPE.match(content_type): - final_url = resp.geturl() - data = resp.read() - encoding = headers.get('Content-Encoding') - if encoding: - decoder = self.decoders[encoding] # fail if not found - data = decoder(data) - encoding = 'utf-8' - m = CHARSET.search(content_type) - if m: - encoding = m.group(1) - try: - data = data.decode(encoding) - except UnicodeError: # pragma: no cover - data = data.decode('latin-1') # fallback - result = Page(data, final_url) - self._page_cache[final_url] = result - except HTTPError as e: - if e.code != 404: - logger.exception('Fetch failed: %s: %s', url, e) - except URLError as e: # pragma: no cover - logger.exception('Fetch failed: %s: %s', url, e) - with self._lock: - self._bad_hosts.add(host) - except Exception as e: # pragma: no cover - logger.exception('Fetch failed: %s: %s', url, e) - finally: - self._page_cache[url] = result # even if None (failure) - return result - - _distname_re = re.compile(']*>([^<]+)<') - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - result = set() - page = self.get_page(self.base_url) - if not page: - raise DistlibException('Unable to get %s' % self.base_url) - for match in self._distname_re.finditer(page.data): - result.add(match.group(1)) - return result - -class DirectoryLocator(Locator): - """ - This class locates distributions in a directory tree. - """ - - def __init__(self, path, **kwargs): - """ - Initialise an instance. - :param path: The root of the directory tree to search. - :param kwargs: Passed to the superclass constructor, - except for: - * recursive - if True (the default), subdirectories are - recursed into. If False, only the top-level directory - is searched, - """ - self.recursive = kwargs.pop('recursive', True) - super(DirectoryLocator, self).__init__(**kwargs) - path = os.path.abspath(path) - if not os.path.isdir(path): # pragma: no cover - raise DistlibException('Not a directory: %r' % path) - self.base_dir = path - - def should_include(self, filename, parent): - """ - Should a filename be considered as a candidate for a distribution - archive? As well as the filename, the directory which contains it - is provided, though not used by the current implementation. - """ - return filename.endswith(self.downloadable_extensions) - - def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - for root, dirs, files in os.walk(self.base_dir): - for fn in files: - if self.should_include(fn, root): - fn = os.path.join(root, fn) - url = urlunparse(('file', '', - pathname2url(os.path.abspath(fn)), - '', '', '')) - info = self.convert_url_to_download_info(url, name) - if info: - self._update_version_data(result, info) - if not self.recursive: - break - return result - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - result = set() - for root, dirs, files in os.walk(self.base_dir): - for fn in files: - if self.should_include(fn, root): - fn = os.path.join(root, fn) - url = urlunparse(('file', '', - pathname2url(os.path.abspath(fn)), - '', '', '')) - info = self.convert_url_to_download_info(url, None) - if info: - result.add(info['name']) - if not self.recursive: - break - return result - -class JSONLocator(Locator): - """ - This locator uses special extended metadata (not available on PyPI) and is - the basis of performant dependency resolution in distlib. Other locators - require archive downloads before dependencies can be determined! As you - might imagine, that can be slow. - """ - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - raise NotImplementedError('Not available from this locator') - - def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - data = get_project_data(name) - if data: - for info in data.get('files', []): - if info['ptype'] != 'sdist' or info['pyversion'] != 'source': - continue - # We don't store summary in project metadata as it makes - # the data bigger for no benefit during dependency - # resolution - dist = make_dist(data['name'], info['version'], - summary=data.get('summary', - 'Placeholder for summary'), - scheme=self.scheme) - md = dist.metadata - md.source_url = info['url'] - # TODO SHA256 digest - if 'digest' in info and info['digest']: - dist.digest = ('md5', info['digest']) - md.dependencies = info.get('requirements', {}) - dist.exports = info.get('exports', {}) - result[dist.version] = dist - result['urls'].setdefault(dist.version, set()).add(info['url']) - return result - -class DistPathLocator(Locator): - """ - This locator finds installed distributions in a path. It can be useful for - adding to an :class:`AggregatingLocator`. - """ - def __init__(self, distpath, **kwargs): - """ - Initialise an instance. - - :param distpath: A :class:`DistributionPath` instance to search. - """ - super(DistPathLocator, self).__init__(**kwargs) - assert isinstance(distpath, DistributionPath) - self.distpath = distpath - - def _get_project(self, name): - dist = self.distpath.get_distribution(name) - if dist is None: - result = {'urls': {}, 'digests': {}} - else: - result = { - dist.version: dist, - 'urls': {dist.version: set([dist.source_url])}, - 'digests': {dist.version: set([None])} - } - return result - - -class AggregatingLocator(Locator): - """ - This class allows you to chain and/or merge a list of locators. - """ - def __init__(self, *locators, **kwargs): - """ - Initialise an instance. - - :param locators: The list of locators to search. - :param kwargs: Passed to the superclass constructor, - except for: - * merge - if False (the default), the first successful - search from any of the locators is returned. If True, - the results from all locators are merged (this can be - slow). - """ - self.merge = kwargs.pop('merge', False) - self.locators = locators - super(AggregatingLocator, self).__init__(**kwargs) - - def clear_cache(self): - super(AggregatingLocator, self).clear_cache() - for locator in self.locators: - locator.clear_cache() - - def _set_scheme(self, value): - self._scheme = value - for locator in self.locators: - locator.scheme = value - - scheme = property(Locator.scheme.fget, _set_scheme) - - def _get_project(self, name): - result = {} - for locator in self.locators: - d = locator.get_project(name) - if d: - if self.merge: - files = result.get('urls', {}) - digests = result.get('digests', {}) - # next line could overwrite result['urls'], result['digests'] - result.update(d) - df = result.get('urls') - if files and df: - for k, v in files.items(): - if k in df: - df[k] |= v - else: - df[k] = v - dd = result.get('digests') - if digests and dd: - dd.update(digests) - else: - # See issue #18. If any dists are found and we're looking - # for specific constraints, we only return something if - # a match is found. For example, if a DirectoryLocator - # returns just foo (1.0) while we're looking for - # foo (>= 2.0), we'll pretend there was nothing there so - # that subsequent locators can be queried. Otherwise we - # would just return foo (1.0) which would then lead to a - # failure to find foo (>= 2.0), because other locators - # weren't searched. Note that this only matters when - # merge=False. - if self.matcher is None: - found = True - else: - found = False - for k in d: - if self.matcher.match(k): - found = True - break - if found: - result = d - break - return result - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - result = set() - for locator in self.locators: - try: - result |= locator.get_distribution_names() - except NotImplementedError: - pass - return result - - -# We use a legacy scheme simply because most of the dists on PyPI use legacy -# versions which don't conform to PEP 426 / PEP 440. -default_locator = AggregatingLocator( - JSONLocator(), - SimpleScrapingLocator('https://pypi.org/simple/', - timeout=3.0), - scheme='legacy') - -locate = default_locator.locate - - -class DependencyFinder(object): - """ - Locate dependencies for distributions. - """ - - def __init__(self, locator=None): - """ - Initialise an instance, using the specified locator - to locate distributions. - """ - self.locator = locator or default_locator - self.scheme = get_scheme(self.locator.scheme) - - def add_distribution(self, dist): - """ - Add a distribution to the finder. This will update internal information - about who provides what. - :param dist: The distribution to add. - """ - logger.debug('adding distribution %s', dist) - name = dist.key - self.dists_by_name[name] = dist - self.dists[(name, dist.version)] = dist - for p in dist.provides: - name, version = parse_name_and_version(p) - logger.debug('Add to provided: %s, %s, %s', name, version, dist) - self.provided.setdefault(name, set()).add((version, dist)) - - def remove_distribution(self, dist): - """ - Remove a distribution from the finder. This will update internal - information about who provides what. - :param dist: The distribution to remove. - """ - logger.debug('removing distribution %s', dist) - name = dist.key - del self.dists_by_name[name] - del self.dists[(name, dist.version)] - for p in dist.provides: - name, version = parse_name_and_version(p) - logger.debug('Remove from provided: %s, %s, %s', name, version, dist) - s = self.provided[name] - s.remove((version, dist)) - if not s: - del self.provided[name] - - def get_matcher(self, reqt): - """ - Get a version matcher for a requirement. - :param reqt: The requirement - :type reqt: str - :return: A version matcher (an instance of - :class:`distlib.version.Matcher`). - """ - try: - matcher = self.scheme.matcher(reqt) - except UnsupportedVersionError: # pragma: no cover - # XXX compat-mode if cannot read the version - name = reqt.split()[0] - matcher = self.scheme.matcher(name) - return matcher - - def find_providers(self, reqt): - """ - Find the distributions which can fulfill a requirement. - - :param reqt: The requirement. - :type reqt: str - :return: A set of distribution which can fulfill the requirement. - """ - matcher = self.get_matcher(reqt) - name = matcher.key # case-insensitive - result = set() - provided = self.provided - if name in provided: - for version, provider in provided[name]: - try: - match = matcher.match(version) - except UnsupportedVersionError: - match = False - - if match: - result.add(provider) - break - return result - - def try_to_replace(self, provider, other, problems): - """ - Attempt to replace one provider with another. This is typically used - when resolving dependencies from multiple sources, e.g. A requires - (B >= 1.0) while C requires (B >= 1.1). - - For successful replacement, ``provider`` must meet all the requirements - which ``other`` fulfills. - - :param provider: The provider we are trying to replace with. - :param other: The provider we're trying to replace. - :param problems: If False is returned, this will contain what - problems prevented replacement. This is currently - a tuple of the literal string 'cantreplace', - ``provider``, ``other`` and the set of requirements - that ``provider`` couldn't fulfill. - :return: True if we can replace ``other`` with ``provider``, else - False. - """ - rlist = self.reqts[other] - unmatched = set() - for s in rlist: - matcher = self.get_matcher(s) - if not matcher.match(provider.version): - unmatched.add(s) - if unmatched: - # can't replace other with provider - problems.add(('cantreplace', provider, other, - frozenset(unmatched))) - result = False - else: - # can replace other with provider - self.remove_distribution(other) - del self.reqts[other] - for s in rlist: - self.reqts.setdefault(provider, set()).add(s) - self.add_distribution(provider) - result = True - return result - - def find(self, requirement, meta_extras=None, prereleases=False): - """ - Find a distribution and all distributions it depends on. - - :param requirement: The requirement specifying the distribution to - find, or a Distribution instance. - :param meta_extras: A list of meta extras such as :test:, :build: and - so on. - :param prereleases: If ``True``, allow pre-release versions to be - returned - otherwise, don't return prereleases - unless they're all that's available. - - Return a set of :class:`Distribution` instances and a set of - problems. - - The distributions returned should be such that they have the - :attr:`required` attribute set to ``True`` if they were - from the ``requirement`` passed to ``find()``, and they have the - :attr:`build_time_dependency` attribute set to ``True`` unless they - are post-installation dependencies of the ``requirement``. - - The problems should be a tuple consisting of the string - ``'unsatisfied'`` and the requirement which couldn't be satisfied - by any distribution known to the locator. - """ - - self.provided = {} - self.dists = {} - self.dists_by_name = {} - self.reqts = {} - - meta_extras = set(meta_extras or []) - if ':*:' in meta_extras: - meta_extras.remove(':*:') - # :meta: and :run: are implicitly included - meta_extras |= set([':test:', ':build:', ':dev:']) - - if isinstance(requirement, Distribution): - dist = odist = requirement - logger.debug('passed %s as requirement', odist) - else: - dist = odist = self.locator.locate(requirement, - prereleases=prereleases) - if dist is None: - raise DistlibException('Unable to locate %r' % requirement) - logger.debug('located %s', odist) - dist.requested = True - problems = set() - todo = set([dist]) - install_dists = set([odist]) - while todo: - dist = todo.pop() - name = dist.key # case-insensitive - if name not in self.dists_by_name: - self.add_distribution(dist) - else: - #import pdb; pdb.set_trace() - other = self.dists_by_name[name] - if other != dist: - self.try_to_replace(dist, other, problems) - - ireqts = dist.run_requires | dist.meta_requires - sreqts = dist.build_requires - ereqts = set() - if meta_extras and dist in install_dists: - for key in ('test', 'build', 'dev'): - e = ':%s:' % key - if e in meta_extras: - ereqts |= getattr(dist, '%s_requires' % key) - all_reqts = ireqts | sreqts | ereqts - for r in all_reqts: - providers = self.find_providers(r) - if not providers: - logger.debug('No providers found for %r', r) - provider = self.locator.locate(r, prereleases=prereleases) - # If no provider is found and we didn't consider - # prereleases, consider them now. - if provider is None and not prereleases: - provider = self.locator.locate(r, prereleases=True) - if provider is None: - logger.debug('Cannot satisfy %r', r) - problems.add(('unsatisfied', r)) - else: - n, v = provider.key, provider.version - if (n, v) not in self.dists: - todo.add(provider) - providers.add(provider) - if r in ireqts and dist in install_dists: - install_dists.add(provider) - logger.debug('Adding %s to install_dists', - provider.name_and_version) - for p in providers: - name = p.key - if name not in self.dists_by_name: - self.reqts.setdefault(p, set()).add(r) - else: - other = self.dists_by_name[name] - if other != p: - # see if other can be replaced by p - self.try_to_replace(p, other, problems) - - dists = set(self.dists.values()) - for dist in dists: - dist.build_time_dependency = dist not in install_dists - if dist.build_time_dependency: - logger.debug('%s is a build-time dependency only.', - dist.name_and_version) - logger.debug('find done for %s', odist) - return dists, problems diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/manifest.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/manifest.py deleted file mode 100644 index ca0fe44..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/manifest.py +++ /dev/null @@ -1,393 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2013 Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -""" -Class representing the list of files in a distribution. - -Equivalent to distutils.filelist, but fixes some problems. -""" -import fnmatch -import logging -import os -import re -import sys - -from . import DistlibException -from .compat import fsdecode -from .util import convert_path - - -__all__ = ['Manifest'] - -logger = logging.getLogger(__name__) - -# a \ followed by some spaces + EOL -_COLLAPSE_PATTERN = re.compile('\\\\w*\n', re.M) -_COMMENTED_LINE = re.compile('#.*?(?=\n)|\n(?=$)', re.M | re.S) - -# -# Due to the different results returned by fnmatch.translate, we need -# to do slightly different processing for Python 2.7 and 3.2 ... this needed -# to be brought in for Python 3.6 onwards. -# -_PYTHON_VERSION = sys.version_info[:2] - -class Manifest(object): - """A list of files built by on exploring the filesystem and filtered by - applying various patterns to what we find there. - """ - - def __init__(self, base=None): - """ - Initialise an instance. - - :param base: The base directory to explore under. - """ - self.base = os.path.abspath(os.path.normpath(base or os.getcwd())) - self.prefix = self.base + os.sep - self.allfiles = None - self.files = set() - - # - # Public API - # - - def findall(self): - """Find all files under the base and set ``allfiles`` to the absolute - pathnames of files found. - """ - from stat import S_ISREG, S_ISDIR, S_ISLNK - - self.allfiles = allfiles = [] - root = self.base - stack = [root] - pop = stack.pop - push = stack.append - - while stack: - root = pop() - names = os.listdir(root) - - for name in names: - fullname = os.path.join(root, name) - - # Avoid excess stat calls -- just one will do, thank you! - stat = os.stat(fullname) - mode = stat.st_mode - if S_ISREG(mode): - allfiles.append(fsdecode(fullname)) - elif S_ISDIR(mode) and not S_ISLNK(mode): - push(fullname) - - def add(self, item): - """ - Add a file to the manifest. - - :param item: The pathname to add. This can be relative to the base. - """ - if not item.startswith(self.prefix): - item = os.path.join(self.base, item) - self.files.add(os.path.normpath(item)) - - def add_many(self, items): - """ - Add a list of files to the manifest. - - :param items: The pathnames to add. These can be relative to the base. - """ - for item in items: - self.add(item) - - def sorted(self, wantdirs=False): - """ - Return sorted files in directory order - """ - - def add_dir(dirs, d): - dirs.add(d) - logger.debug('add_dir added %s', d) - if d != self.base: - parent, _ = os.path.split(d) - assert parent not in ('', '/') - add_dir(dirs, parent) - - result = set(self.files) # make a copy! - if wantdirs: - dirs = set() - for f in result: - add_dir(dirs, os.path.dirname(f)) - result |= dirs - return [os.path.join(*path_tuple) for path_tuple in - sorted(os.path.split(path) for path in result)] - - def clear(self): - """Clear all collected files.""" - self.files = set() - self.allfiles = [] - - def process_directive(self, directive): - """ - Process a directive which either adds some files from ``allfiles`` to - ``files``, or removes some files from ``files``. - - :param directive: The directive to process. This should be in a format - compatible with distutils ``MANIFEST.in`` files: - - http://docs.python.org/distutils/sourcedist.html#commands - """ - # Parse the line: split it up, make sure the right number of words - # is there, and return the relevant words. 'action' is always - # defined: it's the first word of the line. Which of the other - # three are defined depends on the action; it'll be either - # patterns, (dir and patterns), or (dirpattern). - action, patterns, thedir, dirpattern = self._parse_directive(directive) - - # OK, now we know that the action is valid and we have the - # right number of words on the line for that action -- so we - # can proceed with minimal error-checking. - if action == 'include': - for pattern in patterns: - if not self._include_pattern(pattern, anchor=True): - logger.warning('no files found matching %r', pattern) - - elif action == 'exclude': - for pattern in patterns: - found = self._exclude_pattern(pattern, anchor=True) - #if not found: - # logger.warning('no previously-included files ' - # 'found matching %r', pattern) - - elif action == 'global-include': - for pattern in patterns: - if not self._include_pattern(pattern, anchor=False): - logger.warning('no files found matching %r ' - 'anywhere in distribution', pattern) - - elif action == 'global-exclude': - for pattern in patterns: - found = self._exclude_pattern(pattern, anchor=False) - #if not found: - # logger.warning('no previously-included files ' - # 'matching %r found anywhere in ' - # 'distribution', pattern) - - elif action == 'recursive-include': - for pattern in patterns: - if not self._include_pattern(pattern, prefix=thedir): - logger.warning('no files found matching %r ' - 'under directory %r', pattern, thedir) - - elif action == 'recursive-exclude': - for pattern in patterns: - found = self._exclude_pattern(pattern, prefix=thedir) - #if not found: - # logger.warning('no previously-included files ' - # 'matching %r found under directory %r', - # pattern, thedir) - - elif action == 'graft': - if not self._include_pattern(None, prefix=dirpattern): - logger.warning('no directories found matching %r', - dirpattern) - - elif action == 'prune': - if not self._exclude_pattern(None, prefix=dirpattern): - logger.warning('no previously-included directories found ' - 'matching %r', dirpattern) - else: # pragma: no cover - # This should never happen, as it should be caught in - # _parse_template_line - raise DistlibException( - 'invalid action %r' % action) - - # - # Private API - # - - def _parse_directive(self, directive): - """ - Validate a directive. - :param directive: The directive to validate. - :return: A tuple of action, patterns, thedir, dir_patterns - """ - words = directive.split() - if len(words) == 1 and words[0] not in ('include', 'exclude', - 'global-include', - 'global-exclude', - 'recursive-include', - 'recursive-exclude', - 'graft', 'prune'): - # no action given, let's use the default 'include' - words.insert(0, 'include') - - action = words[0] - patterns = thedir = dir_pattern = None - - if action in ('include', 'exclude', - 'global-include', 'global-exclude'): - if len(words) < 2: - raise DistlibException( - '%r expects ...' % action) - - patterns = [convert_path(word) for word in words[1:]] - - elif action in ('recursive-include', 'recursive-exclude'): - if len(words) < 3: - raise DistlibException( - '%r expects

    ...' % action) - - thedir = convert_path(words[1]) - patterns = [convert_path(word) for word in words[2:]] - - elif action in ('graft', 'prune'): - if len(words) != 2: - raise DistlibException( - '%r expects a single ' % action) - - dir_pattern = convert_path(words[1]) - - else: - raise DistlibException('unknown action %r' % action) - - return action, patterns, thedir, dir_pattern - - def _include_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): - """Select strings (presumably filenames) from 'self.files' that - match 'pattern', a Unix-style wildcard (glob) pattern. - - Patterns are not quite the same as implemented by the 'fnmatch' - module: '*' and '?' match non-special characters, where "special" - is platform-dependent: slash on Unix; colon, slash, and backslash on - DOS/Windows; and colon on Mac OS. - - If 'anchor' is true (the default), then the pattern match is more - stringent: "*.py" will match "foo.py" but not "foo/bar.py". If - 'anchor' is false, both of these will match. - - If 'prefix' is supplied, then only filenames starting with 'prefix' - (itself a pattern) and ending with 'pattern', with anything in between - them, will match. 'anchor' is ignored in this case. - - If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and - 'pattern' is assumed to be either a string containing a regex or a - regex object -- no translation is done, the regex is just compiled - and used as-is. - - Selected strings will be added to self.files. - - Return True if files are found. - """ - # XXX docstring lying about what the special chars are? - found = False - pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) - - # delayed loading of allfiles list - if self.allfiles is None: - self.findall() - - for name in self.allfiles: - if pattern_re.search(name): - self.files.add(name) - found = True - return found - - def _exclude_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): - """Remove strings (presumably filenames) from 'files' that match - 'pattern'. - - Other parameters are the same as for 'include_pattern()', above. - The list 'self.files' is modified in place. Return True if files are - found. - - This API is public to allow e.g. exclusion of SCM subdirs, e.g. when - packaging source distributions - """ - found = False - pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) - for f in list(self.files): - if pattern_re.search(f): - self.files.remove(f) - found = True - return found - - def _translate_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): - """Translate a shell-like wildcard pattern to a compiled regular - expression. - - Return the compiled regex. If 'is_regex' true, - then 'pattern' is directly compiled to a regex (if it's a string) - or just returned as-is (assumes it's a regex object). - """ - if is_regex: - if isinstance(pattern, str): - return re.compile(pattern) - else: - return pattern - - if _PYTHON_VERSION > (3, 2): - # ditch start and end characters - start, _, end = self._glob_to_re('_').partition('_') - - if pattern: - pattern_re = self._glob_to_re(pattern) - if _PYTHON_VERSION > (3, 2): - assert pattern_re.startswith(start) and pattern_re.endswith(end) - else: - pattern_re = '' - - base = re.escape(os.path.join(self.base, '')) - if prefix is not None: - # ditch end of pattern character - if _PYTHON_VERSION <= (3, 2): - empty_pattern = self._glob_to_re('') - prefix_re = self._glob_to_re(prefix)[:-len(empty_pattern)] - else: - prefix_re = self._glob_to_re(prefix) - assert prefix_re.startswith(start) and prefix_re.endswith(end) - prefix_re = prefix_re[len(start): len(prefix_re) - len(end)] - sep = os.sep - if os.sep == '\\': - sep = r'\\' - if _PYTHON_VERSION <= (3, 2): - pattern_re = '^' + base + sep.join((prefix_re, - '.*' + pattern_re)) - else: - pattern_re = pattern_re[len(start): len(pattern_re) - len(end)] - pattern_re = r'%s%s%s%s.*%s%s' % (start, base, prefix_re, sep, - pattern_re, end) - else: # no prefix -- respect anchor flag - if anchor: - if _PYTHON_VERSION <= (3, 2): - pattern_re = '^' + base + pattern_re - else: - pattern_re = r'%s%s%s' % (start, base, pattern_re[len(start):]) - - return re.compile(pattern_re) - - def _glob_to_re(self, pattern): - """Translate a shell-like glob pattern to a regular expression. - - Return a string containing the regex. Differs from - 'fnmatch.translate()' in that '*' does not match "special characters" - (which are platform-specific). - """ - pattern_re = fnmatch.translate(pattern) - - # '?' and '*' in the glob pattern become '.' and '.*' in the RE, which - # IMHO is wrong -- '?' and '*' aren't supposed to match slash in Unix, - # and by extension they shouldn't match such "special characters" under - # any OS. So change all non-escaped dots in the RE to match any - # character except the special characters (currently: just os.sep). - sep = os.sep - if os.sep == '\\': - # we're using a regex to manipulate a regex, so we need - # to escape the backslash twice - sep = r'\\\\' - escaped = r'\1[^%s]' % sep - pattern_re = re.sub(r'((? y, - '!=': lambda x, y: x != y, - '<': lambda x, y: x < y, - '<=': lambda x, y: x == y or x < y, - '>': lambda x, y: x > y, - '>=': lambda x, y: x == y or x > y, - 'and': lambda x, y: x and y, - 'or': lambda x, y: x or y, - 'in': lambda x, y: x in y, - 'not in': lambda x, y: x not in y, - } - - def evaluate(self, expr, context): - """ - Evaluate a marker expression returned by the :func:`parse_requirement` - function in the specified context. - """ - if isinstance(expr, string_types): - if expr[0] in '\'"': - result = expr[1:-1] - else: - if expr not in context: - raise SyntaxError('unknown variable: %s' % expr) - result = context[expr] - else: - assert isinstance(expr, dict) - op = expr['op'] - if op not in self.operations: - raise NotImplementedError('op not implemented: %s' % op) - elhs = expr['lhs'] - erhs = expr['rhs'] - if _is_literal(expr['lhs']) and _is_literal(expr['rhs']): - raise SyntaxError('invalid comparison: %s %s %s' % (elhs, op, erhs)) - - lhs = self.evaluate(elhs, context) - rhs = self.evaluate(erhs, context) - if ((elhs == 'python_version' or erhs == 'python_version') and - op in ('<', '<=', '>', '>=', '===', '==', '!=', '~=')): - lhs = NV(lhs) - rhs = NV(rhs) - elif elhs == 'python_version' and op in ('in', 'not in'): - lhs = NV(lhs) - rhs = _get_versions(rhs) - result = self.operations[op](lhs, rhs) - return result - -def default_context(): - def format_full_version(info): - version = '%s.%s.%s' % (info.major, info.minor, info.micro) - kind = info.releaselevel - if kind != 'final': - version += kind[0] + str(info.serial) - return version - - if hasattr(sys, 'implementation'): - implementation_version = format_full_version(sys.implementation.version) - implementation_name = sys.implementation.name - else: - implementation_version = '0' - implementation_name = '' - - result = { - 'implementation_name': implementation_name, - 'implementation_version': implementation_version, - 'os_name': os.name, - 'platform_machine': platform.machine(), - 'platform_python_implementation': platform.python_implementation(), - 'platform_release': platform.release(), - 'platform_system': platform.system(), - 'platform_version': platform.version(), - 'platform_in_venv': str(in_venv()), - 'python_full_version': platform.python_version(), - 'python_version': platform.python_version()[:3], - 'sys_platform': sys.platform, - } - return result - -DEFAULT_CONTEXT = default_context() -del default_context - -evaluator = Evaluator() - -def interpret(marker, execution_context=None): - """ - Interpret a marker and return a result depending on environment. - - :param marker: The marker to interpret. - :type marker: str - :param execution_context: The context used for name lookup. - :type execution_context: mapping - """ - try: - expr, rest = parse_marker(marker) - except Exception as e: - raise SyntaxError('Unable to interpret marker syntax: %s: %s' % (marker, e)) - if rest and rest[0] != '#': - raise SyntaxError('unexpected trailing data in marker: %s: %s' % (marker, rest)) - context = dict(DEFAULT_CONTEXT) - if execution_context: - context.update(execution_context) - return evaluator.evaluate(expr, context) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/metadata.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/metadata.py deleted file mode 100644 index 6a26b0a..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/metadata.py +++ /dev/null @@ -1,1058 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Implementation of the Metadata for Python packages PEPs. - -Supports all metadata formats (1.0, 1.1, 1.2, 1.3/2.1 and withdrawn 2.0). -""" -from __future__ import unicode_literals - -import codecs -from email import message_from_file -import json -import logging -import re - - -from . import DistlibException, __version__ -from .compat import StringIO, string_types, text_type -from .markers import interpret -from .util import extract_by_key, get_extras -from .version import get_scheme, PEP440_VERSION_RE - -logger = logging.getLogger(__name__) - - -class MetadataMissingError(DistlibException): - """A required metadata is missing""" - - -class MetadataConflictError(DistlibException): - """Attempt to read or write metadata fields that are conflictual.""" - - -class MetadataUnrecognizedVersionError(DistlibException): - """Unknown metadata version number.""" - - -class MetadataInvalidError(DistlibException): - """A metadata value is invalid""" - -# public API of this module -__all__ = ['Metadata', 'PKG_INFO_ENCODING', 'PKG_INFO_PREFERRED_VERSION'] - -# Encoding used for the PKG-INFO files -PKG_INFO_ENCODING = 'utf-8' - -# preferred version. Hopefully will be changed -# to 1.2 once PEP 345 is supported everywhere -PKG_INFO_PREFERRED_VERSION = '1.1' - -_LINE_PREFIX_1_2 = re.compile('\n \\|') -_LINE_PREFIX_PRE_1_2 = re.compile('\n ') -_241_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'License') - -_314_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'License', 'Classifier', 'Download-URL', 'Obsoletes', - 'Provides', 'Requires') - -_314_MARKERS = ('Obsoletes', 'Provides', 'Requires', 'Classifier', - 'Download-URL') - -_345_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'Maintainer', 'Maintainer-email', 'License', - 'Classifier', 'Download-URL', 'Obsoletes-Dist', - 'Project-URL', 'Provides-Dist', 'Requires-Dist', - 'Requires-Python', 'Requires-External') - -_345_MARKERS = ('Provides-Dist', 'Requires-Dist', 'Requires-Python', - 'Obsoletes-Dist', 'Requires-External', 'Maintainer', - 'Maintainer-email', 'Project-URL') - -_426_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'Maintainer', 'Maintainer-email', 'License', - 'Classifier', 'Download-URL', 'Obsoletes-Dist', - 'Project-URL', 'Provides-Dist', 'Requires-Dist', - 'Requires-Python', 'Requires-External', 'Private-Version', - 'Obsoleted-By', 'Setup-Requires-Dist', 'Extension', - 'Provides-Extra') - -_426_MARKERS = ('Private-Version', 'Provides-Extra', 'Obsoleted-By', - 'Setup-Requires-Dist', 'Extension') - -# See issue #106: Sometimes 'Requires' and 'Provides' occur wrongly in -# the metadata. Include them in the tuple literal below to allow them -# (for now). -# Ditto for Obsoletes - see issue #140. -_566_FIELDS = _426_FIELDS + ('Description-Content-Type', - 'Requires', 'Provides', 'Obsoletes') - -_566_MARKERS = ('Description-Content-Type',) - -_ALL_FIELDS = set() -_ALL_FIELDS.update(_241_FIELDS) -_ALL_FIELDS.update(_314_FIELDS) -_ALL_FIELDS.update(_345_FIELDS) -_ALL_FIELDS.update(_426_FIELDS) -_ALL_FIELDS.update(_566_FIELDS) - -EXTRA_RE = re.compile(r'''extra\s*==\s*("([^"]+)"|'([^']+)')''') - - -def _version2fieldlist(version): - if version == '1.0': - return _241_FIELDS - elif version == '1.1': - return _314_FIELDS - elif version == '1.2': - return _345_FIELDS - elif version in ('1.3', '2.1'): - # avoid adding field names if already there - return _345_FIELDS + tuple(f for f in _566_FIELDS if f not in _345_FIELDS) - elif version == '2.0': - return _426_FIELDS - raise MetadataUnrecognizedVersionError(version) - - -def _best_version(fields): - """Detect the best version depending on the fields used.""" - def _has_marker(keys, markers): - for marker in markers: - if marker in keys: - return True - return False - - keys = [] - for key, value in fields.items(): - if value in ([], 'UNKNOWN', None): - continue - keys.append(key) - - possible_versions = ['1.0', '1.1', '1.2', '1.3', '2.0', '2.1'] - - # first let's try to see if a field is not part of one of the version - for key in keys: - if key not in _241_FIELDS and '1.0' in possible_versions: - possible_versions.remove('1.0') - logger.debug('Removed 1.0 due to %s', key) - if key not in _314_FIELDS and '1.1' in possible_versions: - possible_versions.remove('1.1') - logger.debug('Removed 1.1 due to %s', key) - if key not in _345_FIELDS and '1.2' in possible_versions: - possible_versions.remove('1.2') - logger.debug('Removed 1.2 due to %s', key) - if key not in _566_FIELDS and '1.3' in possible_versions: - possible_versions.remove('1.3') - logger.debug('Removed 1.3 due to %s', key) - if key not in _566_FIELDS and '2.1' in possible_versions: - if key != 'Description': # In 2.1, description allowed after headers - possible_versions.remove('2.1') - logger.debug('Removed 2.1 due to %s', key) - if key not in _426_FIELDS and '2.0' in possible_versions: - possible_versions.remove('2.0') - logger.debug('Removed 2.0 due to %s', key) - - # possible_version contains qualified versions - if len(possible_versions) == 1: - return possible_versions[0] # found ! - elif len(possible_versions) == 0: - logger.debug('Out of options - unknown metadata set: %s', fields) - raise MetadataConflictError('Unknown metadata set') - - # let's see if one unique marker is found - is_1_1 = '1.1' in possible_versions and _has_marker(keys, _314_MARKERS) - is_1_2 = '1.2' in possible_versions and _has_marker(keys, _345_MARKERS) - is_2_1 = '2.1' in possible_versions and _has_marker(keys, _566_MARKERS) - is_2_0 = '2.0' in possible_versions and _has_marker(keys, _426_MARKERS) - if int(is_1_1) + int(is_1_2) + int(is_2_1) + int(is_2_0) > 1: - raise MetadataConflictError('You used incompatible 1.1/1.2/2.0/2.1 fields') - - # we have the choice, 1.0, or 1.2, or 2.0 - # - 1.0 has a broken Summary field but works with all tools - # - 1.1 is to avoid - # - 1.2 fixes Summary but has little adoption - # - 2.0 adds more features and is very new - if not is_1_1 and not is_1_2 and not is_2_1 and not is_2_0: - # we couldn't find any specific marker - if PKG_INFO_PREFERRED_VERSION in possible_versions: - return PKG_INFO_PREFERRED_VERSION - if is_1_1: - return '1.1' - if is_1_2: - return '1.2' - if is_2_1: - return '2.1' - - return '2.0' - -# This follows the rules about transforming keys as described in -# https://www.python.org/dev/peps/pep-0566/#id17 -_ATTR2FIELD = { - name.lower().replace("-", "_"): name for name in _ALL_FIELDS -} -_FIELD2ATTR = {field: attr for attr, field in _ATTR2FIELD.items()} - -_PREDICATE_FIELDS = ('Requires-Dist', 'Obsoletes-Dist', 'Provides-Dist') -_VERSIONS_FIELDS = ('Requires-Python',) -_VERSION_FIELDS = ('Version',) -_LISTFIELDS = ('Platform', 'Classifier', 'Obsoletes', - 'Requires', 'Provides', 'Obsoletes-Dist', - 'Provides-Dist', 'Requires-Dist', 'Requires-External', - 'Project-URL', 'Supported-Platform', 'Setup-Requires-Dist', - 'Provides-Extra', 'Extension') -_LISTTUPLEFIELDS = ('Project-URL',) - -_ELEMENTSFIELD = ('Keywords',) - -_UNICODEFIELDS = ('Author', 'Maintainer', 'Summary', 'Description') - -_MISSING = object() - -_FILESAFE = re.compile('[^A-Za-z0-9.]+') - - -def _get_name_and_version(name, version, for_filename=False): - """Return the distribution name with version. - - If for_filename is true, return a filename-escaped form.""" - if for_filename: - # For both name and version any runs of non-alphanumeric or '.' - # characters are replaced with a single '-'. Additionally any - # spaces in the version string become '.' - name = _FILESAFE.sub('-', name) - version = _FILESAFE.sub('-', version.replace(' ', '.')) - return '%s-%s' % (name, version) - - -class LegacyMetadata(object): - """The legacy metadata of a release. - - Supports versions 1.0, 1.1, 1.2, 2.0 and 1.3/2.1 (auto-detected). You can - instantiate the class with one of these arguments (or none): - - *path*, the path to a metadata file - - *fileobj* give a file-like object with metadata as content - - *mapping* is a dict-like object - - *scheme* is a version scheme name - """ - # TODO document the mapping API and UNKNOWN default key - - def __init__(self, path=None, fileobj=None, mapping=None, - scheme='default'): - if [path, fileobj, mapping].count(None) < 2: - raise TypeError('path, fileobj and mapping are exclusive') - self._fields = {} - self.requires_files = [] - self._dependencies = None - self.scheme = scheme - if path is not None: - self.read(path) - elif fileobj is not None: - self.read_file(fileobj) - elif mapping is not None: - self.update(mapping) - self.set_metadata_version() - - def set_metadata_version(self): - self._fields['Metadata-Version'] = _best_version(self._fields) - - def _write_field(self, fileobj, name, value): - fileobj.write('%s: %s\n' % (name, value)) - - def __getitem__(self, name): - return self.get(name) - - def __setitem__(self, name, value): - return self.set(name, value) - - def __delitem__(self, name): - field_name = self._convert_name(name) - try: - del self._fields[field_name] - except KeyError: - raise KeyError(name) - - def __contains__(self, name): - return (name in self._fields or - self._convert_name(name) in self._fields) - - def _convert_name(self, name): - if name in _ALL_FIELDS: - return name - name = name.replace('-', '_').lower() - return _ATTR2FIELD.get(name, name) - - def _default_value(self, name): - if name in _LISTFIELDS or name in _ELEMENTSFIELD: - return [] - return 'UNKNOWN' - - def _remove_line_prefix(self, value): - if self.metadata_version in ('1.0', '1.1'): - return _LINE_PREFIX_PRE_1_2.sub('\n', value) - else: - return _LINE_PREFIX_1_2.sub('\n', value) - - def __getattr__(self, name): - if name in _ATTR2FIELD: - return self[name] - raise AttributeError(name) - - # - # Public API - # - -# dependencies = property(_get_dependencies, _set_dependencies) - - def get_fullname(self, filesafe=False): - """Return the distribution name with version. - - If filesafe is true, return a filename-escaped form.""" - return _get_name_and_version(self['Name'], self['Version'], filesafe) - - def is_field(self, name): - """return True if name is a valid metadata key""" - name = self._convert_name(name) - return name in _ALL_FIELDS - - def is_multi_field(self, name): - name = self._convert_name(name) - return name in _LISTFIELDS - - def read(self, filepath): - """Read the metadata values from a file path.""" - fp = codecs.open(filepath, 'r', encoding='utf-8') - try: - self.read_file(fp) - finally: - fp.close() - - def read_file(self, fileob): - """Read the metadata values from a file object.""" - msg = message_from_file(fileob) - self._fields['Metadata-Version'] = msg['metadata-version'] - - # When reading, get all the fields we can - for field in _ALL_FIELDS: - if field not in msg: - continue - if field in _LISTFIELDS: - # we can have multiple lines - values = msg.get_all(field) - if field in _LISTTUPLEFIELDS and values is not None: - values = [tuple(value.split(',')) for value in values] - self.set(field, values) - else: - # single line - value = msg[field] - if value is not None and value != 'UNKNOWN': - self.set(field, value) - - # PEP 566 specifies that the body be used for the description, if - # available - body = msg.get_payload() - self["Description"] = body if body else self["Description"] - # logger.debug('Attempting to set metadata for %s', self) - # self.set_metadata_version() - - def write(self, filepath, skip_unknown=False): - """Write the metadata fields to filepath.""" - fp = codecs.open(filepath, 'w', encoding='utf-8') - try: - self.write_file(fp, skip_unknown) - finally: - fp.close() - - def write_file(self, fileobject, skip_unknown=False): - """Write the PKG-INFO format data to a file object.""" - self.set_metadata_version() - - for field in _version2fieldlist(self['Metadata-Version']): - values = self.get(field) - if skip_unknown and values in ('UNKNOWN', [], ['UNKNOWN']): - continue - if field in _ELEMENTSFIELD: - self._write_field(fileobject, field, ','.join(values)) - continue - if field not in _LISTFIELDS: - if field == 'Description': - if self.metadata_version in ('1.0', '1.1'): - values = values.replace('\n', '\n ') - else: - values = values.replace('\n', '\n |') - values = [values] - - if field in _LISTTUPLEFIELDS: - values = [','.join(value) for value in values] - - for value in values: - self._write_field(fileobject, field, value) - - def update(self, other=None, **kwargs): - """Set metadata values from the given iterable `other` and kwargs. - - Behavior is like `dict.update`: If `other` has a ``keys`` method, - they are looped over and ``self[key]`` is assigned ``other[key]``. - Else, ``other`` is an iterable of ``(key, value)`` iterables. - - Keys that don't match a metadata field or that have an empty value are - dropped. - """ - def _set(key, value): - if key in _ATTR2FIELD and value: - self.set(self._convert_name(key), value) - - if not other: - # other is None or empty container - pass - elif hasattr(other, 'keys'): - for k in other.keys(): - _set(k, other[k]) - else: - for k, v in other: - _set(k, v) - - if kwargs: - for k, v in kwargs.items(): - _set(k, v) - - def set(self, name, value): - """Control then set a metadata field.""" - name = self._convert_name(name) - - if ((name in _ELEMENTSFIELD or name == 'Platform') and - not isinstance(value, (list, tuple))): - if isinstance(value, string_types): - value = [v.strip() for v in value.split(',')] - else: - value = [] - elif (name in _LISTFIELDS and - not isinstance(value, (list, tuple))): - if isinstance(value, string_types): - value = [value] - else: - value = [] - - if logger.isEnabledFor(logging.WARNING): - project_name = self['Name'] - - scheme = get_scheme(self.scheme) - if name in _PREDICATE_FIELDS and value is not None: - for v in value: - # check that the values are valid - if not scheme.is_valid_matcher(v.split(';')[0]): - logger.warning( - "'%s': '%s' is not valid (field '%s')", - project_name, v, name) - # FIXME this rejects UNKNOWN, is that right? - elif name in _VERSIONS_FIELDS and value is not None: - if not scheme.is_valid_constraint_list(value): - logger.warning("'%s': '%s' is not a valid version (field '%s')", - project_name, value, name) - elif name in _VERSION_FIELDS and value is not None: - if not scheme.is_valid_version(value): - logger.warning("'%s': '%s' is not a valid version (field '%s')", - project_name, value, name) - - if name in _UNICODEFIELDS: - if name == 'Description': - value = self._remove_line_prefix(value) - - self._fields[name] = value - - def get(self, name, default=_MISSING): - """Get a metadata field.""" - name = self._convert_name(name) - if name not in self._fields: - if default is _MISSING: - default = self._default_value(name) - return default - if name in _UNICODEFIELDS: - value = self._fields[name] - return value - elif name in _LISTFIELDS: - value = self._fields[name] - if value is None: - return [] - res = [] - for val in value: - if name not in _LISTTUPLEFIELDS: - res.append(val) - else: - # That's for Project-URL - res.append((val[0], val[1])) - return res - - elif name in _ELEMENTSFIELD: - value = self._fields[name] - if isinstance(value, string_types): - return value.split(',') - return self._fields[name] - - def check(self, strict=False): - """Check if the metadata is compliant. If strict is True then raise if - no Name or Version are provided""" - self.set_metadata_version() - - # XXX should check the versions (if the file was loaded) - missing, warnings = [], [] - - for attr in ('Name', 'Version'): # required by PEP 345 - if attr not in self: - missing.append(attr) - - if strict and missing != []: - msg = 'missing required metadata: %s' % ', '.join(missing) - raise MetadataMissingError(msg) - - for attr in ('Home-page', 'Author'): - if attr not in self: - missing.append(attr) - - # checking metadata 1.2 (XXX needs to check 1.1, 1.0) - if self['Metadata-Version'] != '1.2': - return missing, warnings - - scheme = get_scheme(self.scheme) - - def are_valid_constraints(value): - for v in value: - if not scheme.is_valid_matcher(v.split(';')[0]): - return False - return True - - for fields, controller in ((_PREDICATE_FIELDS, are_valid_constraints), - (_VERSIONS_FIELDS, - scheme.is_valid_constraint_list), - (_VERSION_FIELDS, - scheme.is_valid_version)): - for field in fields: - value = self.get(field, None) - if value is not None and not controller(value): - warnings.append("Wrong value for '%s': %s" % (field, value)) - - return missing, warnings - - def todict(self, skip_missing=False): - """Return fields as a dict. - - Field names will be converted to use the underscore-lowercase style - instead of hyphen-mixed case (i.e. home_page instead of Home-page). - This is as per https://www.python.org/dev/peps/pep-0566/#id17. - """ - self.set_metadata_version() - - fields = _version2fieldlist(self['Metadata-Version']) - - data = {} - - for field_name in fields: - if not skip_missing or field_name in self._fields: - key = _FIELD2ATTR[field_name] - if key != 'project_url': - data[key] = self[field_name] - else: - data[key] = [','.join(u) for u in self[field_name]] - - return data - - def add_requirements(self, requirements): - if self['Metadata-Version'] == '1.1': - # we can't have 1.1 metadata *and* Setuptools requires - for field in ('Obsoletes', 'Requires', 'Provides'): - if field in self: - del self[field] - self['Requires-Dist'] += requirements - - # Mapping API - # TODO could add iter* variants - - def keys(self): - return list(_version2fieldlist(self['Metadata-Version'])) - - def __iter__(self): - for key in self.keys(): - yield key - - def values(self): - return [self[key] for key in self.keys()] - - def items(self): - return [(key, self[key]) for key in self.keys()] - - def __repr__(self): - return '<%s %s %s>' % (self.__class__.__name__, self.name, - self.version) - - -METADATA_FILENAME = 'pydist.json' -WHEEL_METADATA_FILENAME = 'metadata.json' -LEGACY_METADATA_FILENAME = 'METADATA' - - -class Metadata(object): - """ - The metadata of a release. This implementation uses 2.0 (JSON) - metadata where possible. If not possible, it wraps a LegacyMetadata - instance which handles the key-value metadata format. - """ - - METADATA_VERSION_MATCHER = re.compile(r'^\d+(\.\d+)*$') - - NAME_MATCHER = re.compile('^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$', re.I) - - VERSION_MATCHER = PEP440_VERSION_RE - - SUMMARY_MATCHER = re.compile('.{1,2047}') - - METADATA_VERSION = '2.0' - - GENERATOR = 'distlib (%s)' % __version__ - - MANDATORY_KEYS = { - 'name': (), - 'version': (), - 'summary': ('legacy',), - } - - INDEX_KEYS = ('name version license summary description author ' - 'author_email keywords platform home_page classifiers ' - 'download_url') - - DEPENDENCY_KEYS = ('extras run_requires test_requires build_requires ' - 'dev_requires provides meta_requires obsoleted_by ' - 'supports_environments') - - SYNTAX_VALIDATORS = { - 'metadata_version': (METADATA_VERSION_MATCHER, ()), - 'name': (NAME_MATCHER, ('legacy',)), - 'version': (VERSION_MATCHER, ('legacy',)), - 'summary': (SUMMARY_MATCHER, ('legacy',)), - } - - __slots__ = ('_legacy', '_data', 'scheme') - - def __init__(self, path=None, fileobj=None, mapping=None, - scheme='default'): - if [path, fileobj, mapping].count(None) < 2: - raise TypeError('path, fileobj and mapping are exclusive') - self._legacy = None - self._data = None - self.scheme = scheme - #import pdb; pdb.set_trace() - if mapping is not None: - try: - self._validate_mapping(mapping, scheme) - self._data = mapping - except MetadataUnrecognizedVersionError: - self._legacy = LegacyMetadata(mapping=mapping, scheme=scheme) - self.validate() - else: - data = None - if path: - with open(path, 'rb') as f: - data = f.read() - elif fileobj: - data = fileobj.read() - if data is None: - # Initialised with no args - to be added - self._data = { - 'metadata_version': self.METADATA_VERSION, - 'generator': self.GENERATOR, - } - else: - if not isinstance(data, text_type): - data = data.decode('utf-8') - try: - self._data = json.loads(data) - self._validate_mapping(self._data, scheme) - except ValueError: - # Note: MetadataUnrecognizedVersionError does not - # inherit from ValueError (it's a DistlibException, - # which should not inherit from ValueError). - # The ValueError comes from the json.load - if that - # succeeds and we get a validation error, we want - # that to propagate - self._legacy = LegacyMetadata(fileobj=StringIO(data), - scheme=scheme) - self.validate() - - common_keys = set(('name', 'version', 'license', 'keywords', 'summary')) - - none_list = (None, list) - none_dict = (None, dict) - - mapped_keys = { - 'run_requires': ('Requires-Dist', list), - 'build_requires': ('Setup-Requires-Dist', list), - 'dev_requires': none_list, - 'test_requires': none_list, - 'meta_requires': none_list, - 'extras': ('Provides-Extra', list), - 'modules': none_list, - 'namespaces': none_list, - 'exports': none_dict, - 'commands': none_dict, - 'classifiers': ('Classifier', list), - 'source_url': ('Download-URL', None), - 'metadata_version': ('Metadata-Version', None), - } - - del none_list, none_dict - - def __getattribute__(self, key): - common = object.__getattribute__(self, 'common_keys') - mapped = object.__getattribute__(self, 'mapped_keys') - if key in mapped: - lk, maker = mapped[key] - if self._legacy: - if lk is None: - result = None if maker is None else maker() - else: - result = self._legacy.get(lk) - else: - value = None if maker is None else maker() - if key not in ('commands', 'exports', 'modules', 'namespaces', - 'classifiers'): - result = self._data.get(key, value) - else: - # special cases for PEP 459 - sentinel = object() - result = sentinel - d = self._data.get('extensions') - if d: - if key == 'commands': - result = d.get('python.commands', value) - elif key == 'classifiers': - d = d.get('python.details') - if d: - result = d.get(key, value) - else: - d = d.get('python.exports') - if not d: - d = self._data.get('python.exports') - if d: - result = d.get(key, value) - if result is sentinel: - result = value - elif key not in common: - result = object.__getattribute__(self, key) - elif self._legacy: - result = self._legacy.get(key) - else: - result = self._data.get(key) - return result - - def _validate_value(self, key, value, scheme=None): - if key in self.SYNTAX_VALIDATORS: - pattern, exclusions = self.SYNTAX_VALIDATORS[key] - if (scheme or self.scheme) not in exclusions: - m = pattern.match(value) - if not m: - raise MetadataInvalidError("'%s' is an invalid value for " - "the '%s' property" % (value, - key)) - - def __setattr__(self, key, value): - self._validate_value(key, value) - common = object.__getattribute__(self, 'common_keys') - mapped = object.__getattribute__(self, 'mapped_keys') - if key in mapped: - lk, _ = mapped[key] - if self._legacy: - if lk is None: - raise NotImplementedError - self._legacy[lk] = value - elif key not in ('commands', 'exports', 'modules', 'namespaces', - 'classifiers'): - self._data[key] = value - else: - # special cases for PEP 459 - d = self._data.setdefault('extensions', {}) - if key == 'commands': - d['python.commands'] = value - elif key == 'classifiers': - d = d.setdefault('python.details', {}) - d[key] = value - else: - d = d.setdefault('python.exports', {}) - d[key] = value - elif key not in common: - object.__setattr__(self, key, value) - else: - if key == 'keywords': - if isinstance(value, string_types): - value = value.strip() - if value: - value = value.split() - else: - value = [] - if self._legacy: - self._legacy[key] = value - else: - self._data[key] = value - - @property - def name_and_version(self): - return _get_name_and_version(self.name, self.version, True) - - @property - def provides(self): - if self._legacy: - result = self._legacy['Provides-Dist'] - else: - result = self._data.setdefault('provides', []) - s = '%s (%s)' % (self.name, self.version) - if s not in result: - result.append(s) - return result - - @provides.setter - def provides(self, value): - if self._legacy: - self._legacy['Provides-Dist'] = value - else: - self._data['provides'] = value - - def get_requirements(self, reqts, extras=None, env=None): - """ - Base method to get dependencies, given a set of extras - to satisfy and an optional environment context. - :param reqts: A list of sometimes-wanted dependencies, - perhaps dependent on extras and environment. - :param extras: A list of optional components being requested. - :param env: An optional environment for marker evaluation. - """ - if self._legacy: - result = reqts - else: - result = [] - extras = get_extras(extras or [], self.extras) - for d in reqts: - if 'extra' not in d and 'environment' not in d: - # unconditional - include = True - else: - if 'extra' not in d: - # Not extra-dependent - only environment-dependent - include = True - else: - include = d.get('extra') in extras - if include: - # Not excluded because of extras, check environment - marker = d.get('environment') - if marker: - include = interpret(marker, env) - if include: - result.extend(d['requires']) - for key in ('build', 'dev', 'test'): - e = ':%s:' % key - if e in extras: - extras.remove(e) - # A recursive call, but it should terminate since 'test' - # has been removed from the extras - reqts = self._data.get('%s_requires' % key, []) - result.extend(self.get_requirements(reqts, extras=extras, - env=env)) - return result - - @property - def dictionary(self): - if self._legacy: - return self._from_legacy() - return self._data - - @property - def dependencies(self): - if self._legacy: - raise NotImplementedError - else: - return extract_by_key(self._data, self.DEPENDENCY_KEYS) - - @dependencies.setter - def dependencies(self, value): - if self._legacy: - raise NotImplementedError - else: - self._data.update(value) - - def _validate_mapping(self, mapping, scheme): - if mapping.get('metadata_version') != self.METADATA_VERSION: - raise MetadataUnrecognizedVersionError() - missing = [] - for key, exclusions in self.MANDATORY_KEYS.items(): - if key not in mapping: - if scheme not in exclusions: - missing.append(key) - if missing: - msg = 'Missing metadata items: %s' % ', '.join(missing) - raise MetadataMissingError(msg) - for k, v in mapping.items(): - self._validate_value(k, v, scheme) - - def validate(self): - if self._legacy: - missing, warnings = self._legacy.check(True) - if missing or warnings: - logger.warning('Metadata: missing: %s, warnings: %s', - missing, warnings) - else: - self._validate_mapping(self._data, self.scheme) - - def todict(self): - if self._legacy: - return self._legacy.todict(True) - else: - result = extract_by_key(self._data, self.INDEX_KEYS) - return result - - def _from_legacy(self): - assert self._legacy and not self._data - result = { - 'metadata_version': self.METADATA_VERSION, - 'generator': self.GENERATOR, - } - lmd = self._legacy.todict(True) # skip missing ones - for k in ('name', 'version', 'license', 'summary', 'description', - 'classifier'): - if k in lmd: - if k == 'classifier': - nk = 'classifiers' - else: - nk = k - result[nk] = lmd[k] - kw = lmd.get('Keywords', []) - if kw == ['']: - kw = [] - result['keywords'] = kw - keys = (('requires_dist', 'run_requires'), - ('setup_requires_dist', 'build_requires')) - for ok, nk in keys: - if ok in lmd and lmd[ok]: - result[nk] = [{'requires': lmd[ok]}] - result['provides'] = self.provides - author = {} - maintainer = {} - return result - - LEGACY_MAPPING = { - 'name': 'Name', - 'version': 'Version', - ('extensions', 'python.details', 'license'): 'License', - 'summary': 'Summary', - 'description': 'Description', - ('extensions', 'python.project', 'project_urls', 'Home'): 'Home-page', - ('extensions', 'python.project', 'contacts', 0, 'name'): 'Author', - ('extensions', 'python.project', 'contacts', 0, 'email'): 'Author-email', - 'source_url': 'Download-URL', - ('extensions', 'python.details', 'classifiers'): 'Classifier', - } - - def _to_legacy(self): - def process_entries(entries): - reqts = set() - for e in entries: - extra = e.get('extra') - env = e.get('environment') - rlist = e['requires'] - for r in rlist: - if not env and not extra: - reqts.add(r) - else: - marker = '' - if extra: - marker = 'extra == "%s"' % extra - if env: - if marker: - marker = '(%s) and %s' % (env, marker) - else: - marker = env - reqts.add(';'.join((r, marker))) - return reqts - - assert self._data and not self._legacy - result = LegacyMetadata() - nmd = self._data - # import pdb; pdb.set_trace() - for nk, ok in self.LEGACY_MAPPING.items(): - if not isinstance(nk, tuple): - if nk in nmd: - result[ok] = nmd[nk] - else: - d = nmd - found = True - for k in nk: - try: - d = d[k] - except (KeyError, IndexError): - found = False - break - if found: - result[ok] = d - r1 = process_entries(self.run_requires + self.meta_requires) - r2 = process_entries(self.build_requires + self.dev_requires) - if self.extras: - result['Provides-Extra'] = sorted(self.extras) - result['Requires-Dist'] = sorted(r1) - result['Setup-Requires-Dist'] = sorted(r2) - # TODO: any other fields wanted - return result - - def write(self, path=None, fileobj=None, legacy=False, skip_unknown=True): - if [path, fileobj].count(None) != 1: - raise ValueError('Exactly one of path and fileobj is needed') - self.validate() - if legacy: - if self._legacy: - legacy_md = self._legacy - else: - legacy_md = self._to_legacy() - if path: - legacy_md.write(path, skip_unknown=skip_unknown) - else: - legacy_md.write_file(fileobj, skip_unknown=skip_unknown) - else: - if self._legacy: - d = self._from_legacy() - else: - d = self._data - if fileobj: - json.dump(d, fileobj, ensure_ascii=True, indent=2, - sort_keys=True) - else: - with codecs.open(path, 'w', 'utf-8') as f: - json.dump(d, f, ensure_ascii=True, indent=2, - sort_keys=True) - - def add_requirements(self, requirements): - if self._legacy: - self._legacy.add_requirements(requirements) - else: - run_requires = self._data.setdefault('run_requires', []) - always = None - for entry in run_requires: - if 'environment' not in entry and 'extra' not in entry: - always = entry - break - if always is None: - always = { 'requires': requirements } - run_requires.insert(0, always) - else: - rset = set(always['requires']) | set(requirements) - always['requires'] = sorted(rset) - - def __repr__(self): - name = self.name or '(no name)' - version = self.version or 'no version' - return '<%s %s %s (%s)>' % (self.__class__.__name__, - self.metadata_version, name, version) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/resources.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/resources.py deleted file mode 100644 index fef52aa..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/resources.py +++ /dev/null @@ -1,358 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013-2017 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from __future__ import unicode_literals - -import bisect -import io -import logging -import os -import pkgutil -import sys -import types -import zipimport - -from . import DistlibException -from .util import cached_property, get_cache_base, Cache - -logger = logging.getLogger(__name__) - - -cache = None # created when needed - - -class ResourceCache(Cache): - def __init__(self, base=None): - if base is None: - # Use native string to avoid issues on 2.x: see Python #20140. - base = os.path.join(get_cache_base(), str('resource-cache')) - super(ResourceCache, self).__init__(base) - - def is_stale(self, resource, path): - """ - Is the cache stale for the given resource? - - :param resource: The :class:`Resource` being cached. - :param path: The path of the resource in the cache. - :return: True if the cache is stale. - """ - # Cache invalidation is a hard problem :-) - return True - - def get(self, resource): - """ - Get a resource into the cache, - - :param resource: A :class:`Resource` instance. - :return: The pathname of the resource in the cache. - """ - prefix, path = resource.finder.get_cache_info(resource) - if prefix is None: - result = path - else: - result = os.path.join(self.base, self.prefix_to_dir(prefix), path) - dirname = os.path.dirname(result) - if not os.path.isdir(dirname): - os.makedirs(dirname) - if not os.path.exists(result): - stale = True - else: - stale = self.is_stale(resource, path) - if stale: - # write the bytes of the resource to the cache location - with open(result, 'wb') as f: - f.write(resource.bytes) - return result - - -class ResourceBase(object): - def __init__(self, finder, name): - self.finder = finder - self.name = name - - -class Resource(ResourceBase): - """ - A class representing an in-package resource, such as a data file. This is - not normally instantiated by user code, but rather by a - :class:`ResourceFinder` which manages the resource. - """ - is_container = False # Backwards compatibility - - def as_stream(self): - """ - Get the resource as a stream. - - This is not a property to make it obvious that it returns a new stream - each time. - """ - return self.finder.get_stream(self) - - @cached_property - def file_path(self): - global cache - if cache is None: - cache = ResourceCache() - return cache.get(self) - - @cached_property - def bytes(self): - return self.finder.get_bytes(self) - - @cached_property - def size(self): - return self.finder.get_size(self) - - -class ResourceContainer(ResourceBase): - is_container = True # Backwards compatibility - - @cached_property - def resources(self): - return self.finder.get_resources(self) - - -class ResourceFinder(object): - """ - Resource finder for file system resources. - """ - - if sys.platform.startswith('java'): - skipped_extensions = ('.pyc', '.pyo', '.class') - else: - skipped_extensions = ('.pyc', '.pyo') - - def __init__(self, module): - self.module = module - self.loader = getattr(module, '__loader__', None) - self.base = os.path.dirname(getattr(module, '__file__', '')) - - def _adjust_path(self, path): - return os.path.realpath(path) - - def _make_path(self, resource_name): - # Issue #50: need to preserve type of path on Python 2.x - # like os.path._get_sep - if isinstance(resource_name, bytes): # should only happen on 2.x - sep = b'/' - else: - sep = '/' - parts = resource_name.split(sep) - parts.insert(0, self.base) - result = os.path.join(*parts) - return self._adjust_path(result) - - def _find(self, path): - return os.path.exists(path) - - def get_cache_info(self, resource): - return None, resource.path - - def find(self, resource_name): - path = self._make_path(resource_name) - if not self._find(path): - result = None - else: - if self._is_directory(path): - result = ResourceContainer(self, resource_name) - else: - result = Resource(self, resource_name) - result.path = path - return result - - def get_stream(self, resource): - return open(resource.path, 'rb') - - def get_bytes(self, resource): - with open(resource.path, 'rb') as f: - return f.read() - - def get_size(self, resource): - return os.path.getsize(resource.path) - - def get_resources(self, resource): - def allowed(f): - return (f != '__pycache__' and not - f.endswith(self.skipped_extensions)) - return set([f for f in os.listdir(resource.path) if allowed(f)]) - - def is_container(self, resource): - return self._is_directory(resource.path) - - _is_directory = staticmethod(os.path.isdir) - - def iterator(self, resource_name): - resource = self.find(resource_name) - if resource is not None: - todo = [resource] - while todo: - resource = todo.pop(0) - yield resource - if resource.is_container: - rname = resource.name - for name in resource.resources: - if not rname: - new_name = name - else: - new_name = '/'.join([rname, name]) - child = self.find(new_name) - if child.is_container: - todo.append(child) - else: - yield child - - -class ZipResourceFinder(ResourceFinder): - """ - Resource finder for resources in .zip files. - """ - def __init__(self, module): - super(ZipResourceFinder, self).__init__(module) - archive = self.loader.archive - self.prefix_len = 1 + len(archive) - # PyPy doesn't have a _files attr on zipimporter, and you can't set one - if hasattr(self.loader, '_files'): - self._files = self.loader._files - else: - self._files = zipimport._zip_directory_cache[archive] - self.index = sorted(self._files) - - def _adjust_path(self, path): - return path - - def _find(self, path): - path = path[self.prefix_len:] - if path in self._files: - result = True - else: - if path and path[-1] != os.sep: - path = path + os.sep - i = bisect.bisect(self.index, path) - try: - result = self.index[i].startswith(path) - except IndexError: - result = False - if not result: - logger.debug('_find failed: %r %r', path, self.loader.prefix) - else: - logger.debug('_find worked: %r %r', path, self.loader.prefix) - return result - - def get_cache_info(self, resource): - prefix = self.loader.archive - path = resource.path[1 + len(prefix):] - return prefix, path - - def get_bytes(self, resource): - return self.loader.get_data(resource.path) - - def get_stream(self, resource): - return io.BytesIO(self.get_bytes(resource)) - - def get_size(self, resource): - path = resource.path[self.prefix_len:] - return self._files[path][3] - - def get_resources(self, resource): - path = resource.path[self.prefix_len:] - if path and path[-1] != os.sep: - path += os.sep - plen = len(path) - result = set() - i = bisect.bisect(self.index, path) - while i < len(self.index): - if not self.index[i].startswith(path): - break - s = self.index[i][plen:] - result.add(s.split(os.sep, 1)[0]) # only immediate children - i += 1 - return result - - def _is_directory(self, path): - path = path[self.prefix_len:] - if path and path[-1] != os.sep: - path += os.sep - i = bisect.bisect(self.index, path) - try: - result = self.index[i].startswith(path) - except IndexError: - result = False - return result - - -_finder_registry = { - type(None): ResourceFinder, - zipimport.zipimporter: ZipResourceFinder -} - -try: - # In Python 3.6, _frozen_importlib -> _frozen_importlib_external - try: - import _frozen_importlib_external as _fi - except ImportError: - import _frozen_importlib as _fi - _finder_registry[_fi.SourceFileLoader] = ResourceFinder - _finder_registry[_fi.FileFinder] = ResourceFinder - # See issue #146 - _finder_registry[_fi.SourcelessFileLoader] = ResourceFinder - del _fi -except (ImportError, AttributeError): - pass - - -def register_finder(loader, finder_maker): - _finder_registry[type(loader)] = finder_maker - - -_finder_cache = {} - - -def finder(package): - """ - Return a resource finder for a package. - :param package: The name of the package. - :return: A :class:`ResourceFinder` instance for the package. - """ - if package in _finder_cache: - result = _finder_cache[package] - else: - if package not in sys.modules: - __import__(package) - module = sys.modules[package] - path = getattr(module, '__path__', None) - if path is None: - raise DistlibException('You cannot get a finder for a module, ' - 'only for a package') - loader = getattr(module, '__loader__', None) - finder_maker = _finder_registry.get(type(loader)) - if finder_maker is None: - raise DistlibException('Unable to locate finder for %r' % package) - result = finder_maker(module) - _finder_cache[package] = result - return result - - -_dummy_module = types.ModuleType(str('__dummy__')) - - -def finder_for_path(path): - """ - Return a resource finder for a path, which should represent a container. - - :param path: The path. - :return: A :class:`ResourceFinder` instance for the path. - """ - result = None - # calls any path hooks, gets importer into cache - pkgutil.get_importer(path) - loader = sys.path_importer_cache.get(path) - finder = _finder_registry.get(type(loader)) - if finder: - module = _dummy_module - module.__file__ = os.path.join(path, '') - module.__loader__ = loader - result = finder(module) - return result diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/scripts.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/scripts.py deleted file mode 100644 index 913912c..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/scripts.py +++ /dev/null @@ -1,429 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013-2015 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from io import BytesIO -import logging -import os -import re -import struct -import sys - -from .compat import sysconfig, detect_encoding, ZipFile -from .resources import finder -from .util import (FileOperator, get_export_entry, convert_path, - get_executable, get_platform, in_venv) - -logger = logging.getLogger(__name__) - -_DEFAULT_MANIFEST = ''' - - - - - - - - - - - - -'''.strip() - -# check if Python is called on the first line with this expression -FIRST_LINE_RE = re.compile(b'^#!.*pythonw?[0-9.]*([ \t].*)?$') -SCRIPT_TEMPLATE = r'''# -*- coding: utf-8 -*- -import re -import sys -from %(module)s import %(import_name)s -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(%(func)s()) -''' - - -def enquote_executable(executable): - if ' ' in executable: - # make sure we quote only the executable in case of env - # for example /usr/bin/env "/dir with spaces/bin/jython" - # instead of "/usr/bin/env /dir with spaces/bin/jython" - # otherwise whole - if executable.startswith('/usr/bin/env '): - env, _executable = executable.split(' ', 1) - if ' ' in _executable and not _executable.startswith('"'): - executable = '%s "%s"' % (env, _executable) - else: - if not executable.startswith('"'): - executable = '"%s"' % executable - return executable - -# Keep the old name around (for now), as there is at least one project using it! -_enquote_executable = enquote_executable - -class ScriptMaker(object): - """ - A class to copy or create scripts from source scripts or callable - specifications. - """ - script_template = SCRIPT_TEMPLATE - - executable = None # for shebangs - - def __init__(self, source_dir, target_dir, add_launchers=True, - dry_run=False, fileop=None): - self.source_dir = source_dir - self.target_dir = target_dir - self.add_launchers = add_launchers - self.force = False - self.clobber = False - # It only makes sense to set mode bits on POSIX. - self.set_mode = (os.name == 'posix') or (os.name == 'java' and - os._name == 'posix') - self.variants = set(('', 'X.Y')) - self._fileop = fileop or FileOperator(dry_run) - - self._is_nt = os.name == 'nt' or ( - os.name == 'java' and os._name == 'nt') - self.version_info = sys.version_info - - def _get_alternate_executable(self, executable, options): - if options.get('gui', False) and self._is_nt: # pragma: no cover - dn, fn = os.path.split(executable) - fn = fn.replace('python', 'pythonw') - executable = os.path.join(dn, fn) - return executable - - if sys.platform.startswith('java'): # pragma: no cover - def _is_shell(self, executable): - """ - Determine if the specified executable is a script - (contains a #! line) - """ - try: - with open(executable) as fp: - return fp.read(2) == '#!' - except (OSError, IOError): - logger.warning('Failed to open %s', executable) - return False - - def _fix_jython_executable(self, executable): - if self._is_shell(executable): - # Workaround for Jython is not needed on Linux systems. - import java - - if java.lang.System.getProperty('os.name') == 'Linux': - return executable - elif executable.lower().endswith('jython.exe'): - # Use wrapper exe for Jython on Windows - return executable - return '/usr/bin/env %s' % executable - - def _build_shebang(self, executable, post_interp): - """ - Build a shebang line. In the simple case (on Windows, or a shebang line - which is not too long or contains spaces) use a simple formulation for - the shebang. Otherwise, use /bin/sh as the executable, with a contrived - shebang which allows the script to run either under Python or sh, using - suitable quoting. Thanks to Harald Nordgren for his input. - - See also: http://www.in-ulm.de/~mascheck/various/shebang/#length - https://hg.mozilla.org/mozilla-central/file/tip/mach - """ - if os.name != 'posix': - simple_shebang = True - else: - # Add 3 for '#!' prefix and newline suffix. - shebang_length = len(executable) + len(post_interp) + 3 - if sys.platform == 'darwin': - max_shebang_length = 512 - else: - max_shebang_length = 127 - simple_shebang = ((b' ' not in executable) and - (shebang_length <= max_shebang_length)) - - if simple_shebang: - result = b'#!' + executable + post_interp + b'\n' - else: - result = b'#!/bin/sh\n' - result += b"'''exec' " + executable + post_interp + b' "$0" "$@"\n' - result += b"' '''" - return result - - def _get_shebang(self, encoding, post_interp=b'', options=None): - enquote = True - if self.executable: - executable = self.executable - enquote = False # assume this will be taken care of - elif not sysconfig.is_python_build(): - executable = get_executable() - elif in_venv(): # pragma: no cover - executable = os.path.join(sysconfig.get_path('scripts'), - 'python%s' % sysconfig.get_config_var('EXE')) - else: # pragma: no cover - executable = os.path.join( - sysconfig.get_config_var('BINDIR'), - 'python%s%s' % (sysconfig.get_config_var('VERSION'), - sysconfig.get_config_var('EXE'))) - if not os.path.isfile(executable): - # for Python builds from source on Windows, no Python executables with - # a version suffix are created, so we use python.exe - executable = os.path.join(sysconfig.get_config_var('BINDIR'), - 'python%s' % (sysconfig.get_config_var('EXE'))) - if options: - executable = self._get_alternate_executable(executable, options) - - if sys.platform.startswith('java'): # pragma: no cover - executable = self._fix_jython_executable(executable) - - # Normalise case for Windows - COMMENTED OUT - # executable = os.path.normcase(executable) - # N.B. The normalising operation above has been commented out: See - # issue #124. Although paths in Windows are generally case-insensitive, - # they aren't always. For example, a path containing a ẞ (which is a - # LATIN CAPITAL LETTER SHARP S - U+1E9E) is normcased to ß (which is a - # LATIN SMALL LETTER SHARP S' - U+00DF). The two are not considered by - # Windows as equivalent in path names. - - # If the user didn't specify an executable, it may be necessary to - # cater for executable paths with spaces (not uncommon on Windows) - if enquote: - executable = enquote_executable(executable) - # Issue #51: don't use fsencode, since we later try to - # check that the shebang is decodable using utf-8. - executable = executable.encode('utf-8') - # in case of IronPython, play safe and enable frames support - if (sys.platform == 'cli' and '-X:Frames' not in post_interp - and '-X:FullFrames' not in post_interp): # pragma: no cover - post_interp += b' -X:Frames' - shebang = self._build_shebang(executable, post_interp) - # Python parser starts to read a script using UTF-8 until - # it gets a #coding:xxx cookie. The shebang has to be the - # first line of a file, the #coding:xxx cookie cannot be - # written before. So the shebang has to be decodable from - # UTF-8. - try: - shebang.decode('utf-8') - except UnicodeDecodeError: # pragma: no cover - raise ValueError( - 'The shebang (%r) is not decodable from utf-8' % shebang) - # If the script is encoded to a custom encoding (use a - # #coding:xxx cookie), the shebang has to be decodable from - # the script encoding too. - if encoding != 'utf-8': - try: - shebang.decode(encoding) - except UnicodeDecodeError: # pragma: no cover - raise ValueError( - 'The shebang (%r) is not decodable ' - 'from the script encoding (%r)' % (shebang, encoding)) - return shebang - - def _get_script_text(self, entry): - return self.script_template % dict(module=entry.prefix, - import_name=entry.suffix.split('.')[0], - func=entry.suffix) - - manifest = _DEFAULT_MANIFEST - - def get_manifest(self, exename): - base = os.path.basename(exename) - return self.manifest % base - - def _write_script(self, names, shebang, script_bytes, filenames, ext): - use_launcher = self.add_launchers and self._is_nt - linesep = os.linesep.encode('utf-8') - if not shebang.endswith(linesep): - shebang += linesep - if not use_launcher: - script_bytes = shebang + script_bytes - else: # pragma: no cover - if ext == 'py': - launcher = self._get_launcher('t') - else: - launcher = self._get_launcher('w') - stream = BytesIO() - with ZipFile(stream, 'w') as zf: - zf.writestr('__main__.py', script_bytes) - zip_data = stream.getvalue() - script_bytes = launcher + shebang + zip_data - for name in names: - outname = os.path.join(self.target_dir, name) - if use_launcher: # pragma: no cover - n, e = os.path.splitext(outname) - if e.startswith('.py'): - outname = n - outname = '%s.exe' % outname - try: - self._fileop.write_binary_file(outname, script_bytes) - except Exception: - # Failed writing an executable - it might be in use. - logger.warning('Failed to write executable - trying to ' - 'use .deleteme logic') - dfname = '%s.deleteme' % outname - if os.path.exists(dfname): - os.remove(dfname) # Not allowed to fail here - os.rename(outname, dfname) # nor here - self._fileop.write_binary_file(outname, script_bytes) - logger.debug('Able to replace executable using ' - '.deleteme logic') - try: - os.remove(dfname) - except Exception: - pass # still in use - ignore error - else: - if self._is_nt and not outname.endswith('.' + ext): # pragma: no cover - outname = '%s.%s' % (outname, ext) - if os.path.exists(outname) and not self.clobber: - logger.warning('Skipping existing file %s', outname) - continue - self._fileop.write_binary_file(outname, script_bytes) - if self.set_mode: - self._fileop.set_executable_mode([outname]) - filenames.append(outname) - - variant_separator = '-' - - def get_script_filenames(self, name): - result = set() - if '' in self.variants: - result.add(name) - if 'X' in self.variants: - result.add('%s%s' % (name, self.version_info[0])) - if 'X.Y' in self.variants: - result.add('%s%s%s.%s' % (name, self.variant_separator, - self.version_info[0], self.version_info[1])) - return result - - def _make_script(self, entry, filenames, options=None): - post_interp = b'' - if options: - args = options.get('interpreter_args', []) - if args: - args = ' %s' % ' '.join(args) - post_interp = args.encode('utf-8') - shebang = self._get_shebang('utf-8', post_interp, options=options) - script = self._get_script_text(entry).encode('utf-8') - scriptnames = self.get_script_filenames(entry.name) - if options and options.get('gui', False): - ext = 'pyw' - else: - ext = 'py' - self._write_script(scriptnames, shebang, script, filenames, ext) - - def _copy_script(self, script, filenames): - adjust = False - script = os.path.join(self.source_dir, convert_path(script)) - outname = os.path.join(self.target_dir, os.path.basename(script)) - if not self.force and not self._fileop.newer(script, outname): - logger.debug('not copying %s (up-to-date)', script) - return - - # Always open the file, but ignore failures in dry-run mode -- - # that way, we'll get accurate feedback if we can read the - # script. - try: - f = open(script, 'rb') - except IOError: # pragma: no cover - if not self.dry_run: - raise - f = None - else: - first_line = f.readline() - if not first_line: # pragma: no cover - logger.warning('%s is an empty file (skipping)', script) - return - - match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n')) - if match: - adjust = True - post_interp = match.group(1) or b'' - - if not adjust: - if f: - f.close() - self._fileop.copy_file(script, outname) - if self.set_mode: - self._fileop.set_executable_mode([outname]) - filenames.append(outname) - else: - logger.info('copying and adjusting %s -> %s', script, - self.target_dir) - if not self._fileop.dry_run: - encoding, lines = detect_encoding(f.readline) - f.seek(0) - shebang = self._get_shebang(encoding, post_interp) - if b'pythonw' in first_line: # pragma: no cover - ext = 'pyw' - else: - ext = 'py' - n = os.path.basename(outname) - self._write_script([n], shebang, f.read(), filenames, ext) - if f: - f.close() - - @property - def dry_run(self): - return self._fileop.dry_run - - @dry_run.setter - def dry_run(self, value): - self._fileop.dry_run = value - - if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): # pragma: no cover - # Executable launcher support. - # Launchers are from https://bitbucket.org/vinay.sajip/simple_launcher/ - - def _get_launcher(self, kind): - if struct.calcsize('P') == 8: # 64-bit - bits = '64' - else: - bits = '32' - platform_suffix = '-arm' if get_platform() == 'win-arm64' else '' - name = '%s%s%s.exe' % (kind, bits, platform_suffix) - # Issue 31: don't hardcode an absolute package name, but - # determine it relative to the current package - distlib_package = __name__.rsplit('.', 1)[0] - resource = finder(distlib_package).find(name) - if not resource: - msg = ('Unable to find resource %s in package %s' % (name, - distlib_package)) - raise ValueError(msg) - return resource.bytes - - # Public API follows - - def make(self, specification, options=None): - """ - Make a script. - - :param specification: The specification, which is either a valid export - entry specification (to make a script from a - callable) or a filename (to make a script by - copying from a source location). - :param options: A dictionary of options controlling script generation. - :return: A list of all absolute pathnames written to. - """ - filenames = [] - entry = get_export_entry(specification) - if entry is None: - self._copy_script(specification, filenames) - else: - self._make_script(entry, filenames, options=options) - return filenames - - def make_multiple(self, specifications, options=None): - """ - Take a list of specifications and make scripts from them, - :param specifications: A list of specifications. - :return: A list of all absolute pathnames written to, - """ - filenames = [] - for specification in specifications: - filenames.extend(self.make(specification, options)) - return filenames diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/util.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/util.py deleted file mode 100644 index 80bfc86..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/util.py +++ /dev/null @@ -1,1969 +0,0 @@ -# -# Copyright (C) 2012-2021 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -import codecs -from collections import deque -import contextlib -import csv -from glob import iglob as std_iglob -import io -import json -import logging -import os -import py_compile -import re -import socket -try: - import ssl -except ImportError: # pragma: no cover - ssl = None -import subprocess -import sys -import tarfile -import tempfile -import textwrap - -try: - import threading -except ImportError: # pragma: no cover - import dummy_threading as threading -import time - -from . import DistlibException -from .compat import (string_types, text_type, shutil, raw_input, StringIO, - cache_from_source, urlopen, urljoin, httplib, xmlrpclib, - splittype, HTTPHandler, BaseConfigurator, valid_ident, - Container, configparser, URLError, ZipFile, fsdecode, - unquote, urlparse) - -logger = logging.getLogger(__name__) - -# -# Requirement parsing code as per PEP 508 -# - -IDENTIFIER = re.compile(r'^([\w\.-]+)\s*') -VERSION_IDENTIFIER = re.compile(r'^([\w\.*+-]+)\s*') -COMPARE_OP = re.compile(r'^(<=?|>=?|={2,3}|[~!]=)\s*') -MARKER_OP = re.compile(r'^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*') -OR = re.compile(r'^or\b\s*') -AND = re.compile(r'^and\b\s*') -NON_SPACE = re.compile(r'(\S+)\s*') -STRING_CHUNK = re.compile(r'([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)') - - -def parse_marker(marker_string): - """ - Parse a marker string and return a dictionary containing a marker expression. - - The dictionary will contain keys "op", "lhs" and "rhs" for non-terminals in - the expression grammar, or strings. A string contained in quotes is to be - interpreted as a literal string, and a string not contained in quotes is a - variable (such as os_name). - """ - def marker_var(remaining): - # either identifier, or literal string - m = IDENTIFIER.match(remaining) - if m: - result = m.groups()[0] - remaining = remaining[m.end():] - elif not remaining: - raise SyntaxError('unexpected end of input') - else: - q = remaining[0] - if q not in '\'"': - raise SyntaxError('invalid expression: %s' % remaining) - oq = '\'"'.replace(q, '') - remaining = remaining[1:] - parts = [q] - while remaining: - # either a string chunk, or oq, or q to terminate - if remaining[0] == q: - break - elif remaining[0] == oq: - parts.append(oq) - remaining = remaining[1:] - else: - m = STRING_CHUNK.match(remaining) - if not m: - raise SyntaxError('error in string literal: %s' % remaining) - parts.append(m.groups()[0]) - remaining = remaining[m.end():] - else: - s = ''.join(parts) - raise SyntaxError('unterminated string: %s' % s) - parts.append(q) - result = ''.join(parts) - remaining = remaining[1:].lstrip() # skip past closing quote - return result, remaining - - def marker_expr(remaining): - if remaining and remaining[0] == '(': - result, remaining = marker(remaining[1:].lstrip()) - if remaining[0] != ')': - raise SyntaxError('unterminated parenthesis: %s' % remaining) - remaining = remaining[1:].lstrip() - else: - lhs, remaining = marker_var(remaining) - while remaining: - m = MARKER_OP.match(remaining) - if not m: - break - op = m.groups()[0] - remaining = remaining[m.end():] - rhs, remaining = marker_var(remaining) - lhs = {'op': op, 'lhs': lhs, 'rhs': rhs} - result = lhs - return result, remaining - - def marker_and(remaining): - lhs, remaining = marker_expr(remaining) - while remaining: - m = AND.match(remaining) - if not m: - break - remaining = remaining[m.end():] - rhs, remaining = marker_expr(remaining) - lhs = {'op': 'and', 'lhs': lhs, 'rhs': rhs} - return lhs, remaining - - def marker(remaining): - lhs, remaining = marker_and(remaining) - while remaining: - m = OR.match(remaining) - if not m: - break - remaining = remaining[m.end():] - rhs, remaining = marker_and(remaining) - lhs = {'op': 'or', 'lhs': lhs, 'rhs': rhs} - return lhs, remaining - - return marker(marker_string) - - -def parse_requirement(req): - """ - Parse a requirement passed in as a string. Return a Container - whose attributes contain the various parts of the requirement. - """ - remaining = req.strip() - if not remaining or remaining.startswith('#'): - return None - m = IDENTIFIER.match(remaining) - if not m: - raise SyntaxError('name expected: %s' % remaining) - distname = m.groups()[0] - remaining = remaining[m.end():] - extras = mark_expr = versions = uri = None - if remaining and remaining[0] == '[': - i = remaining.find(']', 1) - if i < 0: - raise SyntaxError('unterminated extra: %s' % remaining) - s = remaining[1:i] - remaining = remaining[i + 1:].lstrip() - extras = [] - while s: - m = IDENTIFIER.match(s) - if not m: - raise SyntaxError('malformed extra: %s' % s) - extras.append(m.groups()[0]) - s = s[m.end():] - if not s: - break - if s[0] != ',': - raise SyntaxError('comma expected in extras: %s' % s) - s = s[1:].lstrip() - if not extras: - extras = None - if remaining: - if remaining[0] == '@': - # it's a URI - remaining = remaining[1:].lstrip() - m = NON_SPACE.match(remaining) - if not m: - raise SyntaxError('invalid URI: %s' % remaining) - uri = m.groups()[0] - t = urlparse(uri) - # there are issues with Python and URL parsing, so this test - # is a bit crude. See bpo-20271, bpo-23505. Python doesn't - # always parse invalid URLs correctly - it should raise - # exceptions for malformed URLs - if not (t.scheme and t.netloc): - raise SyntaxError('Invalid URL: %s' % uri) - remaining = remaining[m.end():].lstrip() - else: - - def get_versions(ver_remaining): - """ - Return a list of operator, version tuples if any are - specified, else None. - """ - m = COMPARE_OP.match(ver_remaining) - versions = None - if m: - versions = [] - while True: - op = m.groups()[0] - ver_remaining = ver_remaining[m.end():] - m = VERSION_IDENTIFIER.match(ver_remaining) - if not m: - raise SyntaxError('invalid version: %s' % ver_remaining) - v = m.groups()[0] - versions.append((op, v)) - ver_remaining = ver_remaining[m.end():] - if not ver_remaining or ver_remaining[0] != ',': - break - ver_remaining = ver_remaining[1:].lstrip() - # Some packages have a trailing comma which would break things - # See issue #148 - if not ver_remaining: - break - m = COMPARE_OP.match(ver_remaining) - if not m: - raise SyntaxError('invalid constraint: %s' % ver_remaining) - if not versions: - versions = None - return versions, ver_remaining - - if remaining[0] != '(': - versions, remaining = get_versions(remaining) - else: - i = remaining.find(')', 1) - if i < 0: - raise SyntaxError('unterminated parenthesis: %s' % remaining) - s = remaining[1:i] - remaining = remaining[i + 1:].lstrip() - # As a special diversion from PEP 508, allow a version number - # a.b.c in parentheses as a synonym for ~= a.b.c (because this - # is allowed in earlier PEPs) - if COMPARE_OP.match(s): - versions, _ = get_versions(s) - else: - m = VERSION_IDENTIFIER.match(s) - if not m: - raise SyntaxError('invalid constraint: %s' % s) - v = m.groups()[0] - s = s[m.end():].lstrip() - if s: - raise SyntaxError('invalid constraint: %s' % s) - versions = [('~=', v)] - - if remaining: - if remaining[0] != ';': - raise SyntaxError('invalid requirement: %s' % remaining) - remaining = remaining[1:].lstrip() - - mark_expr, remaining = parse_marker(remaining) - - if remaining and remaining[0] != '#': - raise SyntaxError('unexpected trailing data: %s' % remaining) - - if not versions: - rs = distname - else: - rs = '%s %s' % (distname, ', '.join(['%s %s' % con for con in versions])) - return Container(name=distname, extras=extras, constraints=versions, - marker=mark_expr, url=uri, requirement=rs) - - -def get_resources_dests(resources_root, rules): - """Find destinations for resources files""" - - def get_rel_path(root, path): - # normalizes and returns a lstripped-/-separated path - root = root.replace(os.path.sep, '/') - path = path.replace(os.path.sep, '/') - assert path.startswith(root) - return path[len(root):].lstrip('/') - - destinations = {} - for base, suffix, dest in rules: - prefix = os.path.join(resources_root, base) - for abs_base in iglob(prefix): - abs_glob = os.path.join(abs_base, suffix) - for abs_path in iglob(abs_glob): - resource_file = get_rel_path(resources_root, abs_path) - if dest is None: # remove the entry if it was here - destinations.pop(resource_file, None) - else: - rel_path = get_rel_path(abs_base, abs_path) - rel_dest = dest.replace(os.path.sep, '/').rstrip('/') - destinations[resource_file] = rel_dest + '/' + rel_path - return destinations - - -def in_venv(): - if hasattr(sys, 'real_prefix'): - # virtualenv venvs - result = True - else: - # PEP 405 venvs - result = sys.prefix != getattr(sys, 'base_prefix', sys.prefix) - return result - - -def get_executable(): -# The __PYVENV_LAUNCHER__ dance is apparently no longer needed, as -# changes to the stub launcher mean that sys.executable always points -# to the stub on OS X -# if sys.platform == 'darwin' and ('__PYVENV_LAUNCHER__' -# in os.environ): -# result = os.environ['__PYVENV_LAUNCHER__'] -# else: -# result = sys.executable -# return result - # Avoid normcasing: see issue #143 - # result = os.path.normcase(sys.executable) - result = sys.executable - if not isinstance(result, text_type): - result = fsdecode(result) - return result - - -def proceed(prompt, allowed_chars, error_prompt=None, default=None): - p = prompt - while True: - s = raw_input(p) - p = prompt - if not s and default: - s = default - if s: - c = s[0].lower() - if c in allowed_chars: - break - if error_prompt: - p = '%c: %s\n%s' % (c, error_prompt, prompt) - return c - - -def extract_by_key(d, keys): - if isinstance(keys, string_types): - keys = keys.split() - result = {} - for key in keys: - if key in d: - result[key] = d[key] - return result - -def read_exports(stream): - if sys.version_info[0] >= 3: - # needs to be a text stream - stream = codecs.getreader('utf-8')(stream) - # Try to load as JSON, falling back on legacy format - data = stream.read() - stream = StringIO(data) - try: - jdata = json.load(stream) - result = jdata['extensions']['python.exports']['exports'] - for group, entries in result.items(): - for k, v in entries.items(): - s = '%s = %s' % (k, v) - entry = get_export_entry(s) - assert entry is not None - entries[k] = entry - return result - except Exception: - stream.seek(0, 0) - - def read_stream(cp, stream): - if hasattr(cp, 'read_file'): - cp.read_file(stream) - else: - cp.readfp(stream) - - cp = configparser.ConfigParser() - try: - read_stream(cp, stream) - except configparser.MissingSectionHeaderError: - stream.close() - data = textwrap.dedent(data) - stream = StringIO(data) - read_stream(cp, stream) - - result = {} - for key in cp.sections(): - result[key] = entries = {} - for name, value in cp.items(key): - s = '%s = %s' % (name, value) - entry = get_export_entry(s) - assert entry is not None - #entry.dist = self - entries[name] = entry - return result - - -def write_exports(exports, stream): - if sys.version_info[0] >= 3: - # needs to be a text stream - stream = codecs.getwriter('utf-8')(stream) - cp = configparser.ConfigParser() - for k, v in exports.items(): - # TODO check k, v for valid values - cp.add_section(k) - for entry in v.values(): - if entry.suffix is None: - s = entry.prefix - else: - s = '%s:%s' % (entry.prefix, entry.suffix) - if entry.flags: - s = '%s [%s]' % (s, ', '.join(entry.flags)) - cp.set(k, entry.name, s) - cp.write(stream) - - -@contextlib.contextmanager -def tempdir(): - td = tempfile.mkdtemp() - try: - yield td - finally: - shutil.rmtree(td) - -@contextlib.contextmanager -def chdir(d): - cwd = os.getcwd() - try: - os.chdir(d) - yield - finally: - os.chdir(cwd) - - -@contextlib.contextmanager -def socket_timeout(seconds=15): - cto = socket.getdefaulttimeout() - try: - socket.setdefaulttimeout(seconds) - yield - finally: - socket.setdefaulttimeout(cto) - - -class cached_property(object): - def __init__(self, func): - self.func = func - #for attr in ('__name__', '__module__', '__doc__'): - # setattr(self, attr, getattr(func, attr, None)) - - def __get__(self, obj, cls=None): - if obj is None: - return self - value = self.func(obj) - object.__setattr__(obj, self.func.__name__, value) - #obj.__dict__[self.func.__name__] = value = self.func(obj) - return value - -def convert_path(pathname): - """Return 'pathname' as a name that will work on the native filesystem. - - The path is split on '/' and put back together again using the current - directory separator. Needed because filenames in the setup script are - always supplied in Unix style, and have to be converted to the local - convention before we can actually use them in the filesystem. Raises - ValueError on non-Unix-ish systems if 'pathname' either starts or - ends with a slash. - """ - if os.sep == '/': - return pathname - if not pathname: - return pathname - if pathname[0] == '/': - raise ValueError("path '%s' cannot be absolute" % pathname) - if pathname[-1] == '/': - raise ValueError("path '%s' cannot end with '/'" % pathname) - - paths = pathname.split('/') - while os.curdir in paths: - paths.remove(os.curdir) - if not paths: - return os.curdir - return os.path.join(*paths) - - -class FileOperator(object): - def __init__(self, dry_run=False): - self.dry_run = dry_run - self.ensured = set() - self._init_record() - - def _init_record(self): - self.record = False - self.files_written = set() - self.dirs_created = set() - - def record_as_written(self, path): - if self.record: - self.files_written.add(path) - - def newer(self, source, target): - """Tell if the target is newer than the source. - - Returns true if 'source' exists and is more recently modified than - 'target', or if 'source' exists and 'target' doesn't. - - Returns false if both exist and 'target' is the same age or younger - than 'source'. Raise PackagingFileError if 'source' does not exist. - - Note that this test is not very accurate: files created in the same - second will have the same "age". - """ - if not os.path.exists(source): - raise DistlibException("file '%r' does not exist" % - os.path.abspath(source)) - if not os.path.exists(target): - return True - - return os.stat(source).st_mtime > os.stat(target).st_mtime - - def copy_file(self, infile, outfile, check=True): - """Copy a file respecting dry-run and force flags. - """ - self.ensure_dir(os.path.dirname(outfile)) - logger.info('Copying %s to %s', infile, outfile) - if not self.dry_run: - msg = None - if check: - if os.path.islink(outfile): - msg = '%s is a symlink' % outfile - elif os.path.exists(outfile) and not os.path.isfile(outfile): - msg = '%s is a non-regular file' % outfile - if msg: - raise ValueError(msg + ' which would be overwritten') - shutil.copyfile(infile, outfile) - self.record_as_written(outfile) - - def copy_stream(self, instream, outfile, encoding=None): - assert not os.path.isdir(outfile) - self.ensure_dir(os.path.dirname(outfile)) - logger.info('Copying stream %s to %s', instream, outfile) - if not self.dry_run: - if encoding is None: - outstream = open(outfile, 'wb') - else: - outstream = codecs.open(outfile, 'w', encoding=encoding) - try: - shutil.copyfileobj(instream, outstream) - finally: - outstream.close() - self.record_as_written(outfile) - - def write_binary_file(self, path, data): - self.ensure_dir(os.path.dirname(path)) - if not self.dry_run: - if os.path.exists(path): - os.remove(path) - with open(path, 'wb') as f: - f.write(data) - self.record_as_written(path) - - def write_text_file(self, path, data, encoding): - self.write_binary_file(path, data.encode(encoding)) - - def set_mode(self, bits, mask, files): - if os.name == 'posix' or (os.name == 'java' and os._name == 'posix'): - # Set the executable bits (owner, group, and world) on - # all the files specified. - for f in files: - if self.dry_run: - logger.info("changing mode of %s", f) - else: - mode = (os.stat(f).st_mode | bits) & mask - logger.info("changing mode of %s to %o", f, mode) - os.chmod(f, mode) - - set_executable_mode = lambda s, f: s.set_mode(0o555, 0o7777, f) - - def ensure_dir(self, path): - path = os.path.abspath(path) - if path not in self.ensured and not os.path.exists(path): - self.ensured.add(path) - d, f = os.path.split(path) - self.ensure_dir(d) - logger.info('Creating %s' % path) - if not self.dry_run: - os.mkdir(path) - if self.record: - self.dirs_created.add(path) - - def byte_compile(self, path, optimize=False, force=False, prefix=None, hashed_invalidation=False): - dpath = cache_from_source(path, not optimize) - logger.info('Byte-compiling %s to %s', path, dpath) - if not self.dry_run: - if force or self.newer(path, dpath): - if not prefix: - diagpath = None - else: - assert path.startswith(prefix) - diagpath = path[len(prefix):] - compile_kwargs = {} - if hashed_invalidation and hasattr(py_compile, 'PycInvalidationMode'): - compile_kwargs['invalidation_mode'] = py_compile.PycInvalidationMode.CHECKED_HASH - py_compile.compile(path, dpath, diagpath, True, **compile_kwargs) # raise error - self.record_as_written(dpath) - return dpath - - def ensure_removed(self, path): - if os.path.exists(path): - if os.path.isdir(path) and not os.path.islink(path): - logger.debug('Removing directory tree at %s', path) - if not self.dry_run: - shutil.rmtree(path) - if self.record: - if path in self.dirs_created: - self.dirs_created.remove(path) - else: - if os.path.islink(path): - s = 'link' - else: - s = 'file' - logger.debug('Removing %s %s', s, path) - if not self.dry_run: - os.remove(path) - if self.record: - if path in self.files_written: - self.files_written.remove(path) - - def is_writable(self, path): - result = False - while not result: - if os.path.exists(path): - result = os.access(path, os.W_OK) - break - parent = os.path.dirname(path) - if parent == path: - break - path = parent - return result - - def commit(self): - """ - Commit recorded changes, turn off recording, return - changes. - """ - assert self.record - result = self.files_written, self.dirs_created - self._init_record() - return result - - def rollback(self): - if not self.dry_run: - for f in list(self.files_written): - if os.path.exists(f): - os.remove(f) - # dirs should all be empty now, except perhaps for - # __pycache__ subdirs - # reverse so that subdirs appear before their parents - dirs = sorted(self.dirs_created, reverse=True) - for d in dirs: - flist = os.listdir(d) - if flist: - assert flist == ['__pycache__'] - sd = os.path.join(d, flist[0]) - os.rmdir(sd) - os.rmdir(d) # should fail if non-empty - self._init_record() - -def resolve(module_name, dotted_path): - if module_name in sys.modules: - mod = sys.modules[module_name] - else: - mod = __import__(module_name) - if dotted_path is None: - result = mod - else: - parts = dotted_path.split('.') - result = getattr(mod, parts.pop(0)) - for p in parts: - result = getattr(result, p) - return result - - -class ExportEntry(object): - def __init__(self, name, prefix, suffix, flags): - self.name = name - self.prefix = prefix - self.suffix = suffix - self.flags = flags - - @cached_property - def value(self): - return resolve(self.prefix, self.suffix) - - def __repr__(self): # pragma: no cover - return '' % (self.name, self.prefix, - self.suffix, self.flags) - - def __eq__(self, other): - if not isinstance(other, ExportEntry): - result = False - else: - result = (self.name == other.name and - self.prefix == other.prefix and - self.suffix == other.suffix and - self.flags == other.flags) - return result - - __hash__ = object.__hash__ - - -ENTRY_RE = re.compile(r'''(?P(\w|[-.+])+) - \s*=\s*(?P(\w+)([:\.]\w+)*) - \s*(\[\s*(?P[\w-]+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])? - ''', re.VERBOSE) - -def get_export_entry(specification): - m = ENTRY_RE.search(specification) - if not m: - result = None - if '[' in specification or ']' in specification: - raise DistlibException("Invalid specification " - "'%s'" % specification) - else: - d = m.groupdict() - name = d['name'] - path = d['callable'] - colons = path.count(':') - if colons == 0: - prefix, suffix = path, None - else: - if colons != 1: - raise DistlibException("Invalid specification " - "'%s'" % specification) - prefix, suffix = path.split(':') - flags = d['flags'] - if flags is None: - if '[' in specification or ']' in specification: - raise DistlibException("Invalid specification " - "'%s'" % specification) - flags = [] - else: - flags = [f.strip() for f in flags.split(',')] - result = ExportEntry(name, prefix, suffix, flags) - return result - - -def get_cache_base(suffix=None): - """ - Return the default base location for distlib caches. If the directory does - not exist, it is created. Use the suffix provided for the base directory, - and default to '.distlib' if it isn't provided. - - On Windows, if LOCALAPPDATA is defined in the environment, then it is - assumed to be a directory, and will be the parent directory of the result. - On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home - directory - using os.expanduser('~') - will be the parent directory of - the result. - - The result is just the directory '.distlib' in the parent directory as - determined above, or with the name specified with ``suffix``. - """ - if suffix is None: - suffix = '.distlib' - if os.name == 'nt' and 'LOCALAPPDATA' in os.environ: - result = os.path.expandvars('$localappdata') - else: - # Assume posix, or old Windows - result = os.path.expanduser('~') - # we use 'isdir' instead of 'exists', because we want to - # fail if there's a file with that name - if os.path.isdir(result): - usable = os.access(result, os.W_OK) - if not usable: - logger.warning('Directory exists but is not writable: %s', result) - else: - try: - os.makedirs(result) - usable = True - except OSError: - logger.warning('Unable to create %s', result, exc_info=True) - usable = False - if not usable: - result = tempfile.mkdtemp() - logger.warning('Default location unusable, using %s', result) - return os.path.join(result, suffix) - - -def path_to_cache_dir(path): - """ - Convert an absolute path to a directory name for use in a cache. - - The algorithm used is: - - #. On Windows, any ``':'`` in the drive is replaced with ``'---'``. - #. Any occurrence of ``os.sep`` is replaced with ``'--'``. - #. ``'.cache'`` is appended. - """ - d, p = os.path.splitdrive(os.path.abspath(path)) - if d: - d = d.replace(':', '---') - p = p.replace(os.sep, '--') - return d + p + '.cache' - - -def ensure_slash(s): - if not s.endswith('/'): - return s + '/' - return s - - -def parse_credentials(netloc): - username = password = None - if '@' in netloc: - prefix, netloc = netloc.rsplit('@', 1) - if ':' not in prefix: - username = prefix - else: - username, password = prefix.split(':', 1) - if username: - username = unquote(username) - if password: - password = unquote(password) - return username, password, netloc - - -def get_process_umask(): - result = os.umask(0o22) - os.umask(result) - return result - -def is_string_sequence(seq): - result = True - i = None - for i, s in enumerate(seq): - if not isinstance(s, string_types): - result = False - break - assert i is not None - return result - -PROJECT_NAME_AND_VERSION = re.compile('([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-' - '([a-z0-9_.+-]+)', re.I) -PYTHON_VERSION = re.compile(r'-py(\d\.?\d?)') - - -def split_filename(filename, project_name=None): - """ - Extract name, version, python version from a filename (no extension) - - Return name, version, pyver or None - """ - result = None - pyver = None - filename = unquote(filename).replace(' ', '-') - m = PYTHON_VERSION.search(filename) - if m: - pyver = m.group(1) - filename = filename[:m.start()] - if project_name and len(filename) > len(project_name) + 1: - m = re.match(re.escape(project_name) + r'\b', filename) - if m: - n = m.end() - result = filename[:n], filename[n + 1:], pyver - if result is None: - m = PROJECT_NAME_AND_VERSION.match(filename) - if m: - result = m.group(1), m.group(3), pyver - return result - -# Allow spaces in name because of legacy dists like "Twisted Core" -NAME_VERSION_RE = re.compile(r'(?P[\w .-]+)\s*' - r'\(\s*(?P[^\s)]+)\)$') - -def parse_name_and_version(p): - """ - A utility method used to get name and version from a string. - - From e.g. a Provides-Dist value. - - :param p: A value in a form 'foo (1.0)' - :return: The name and version as a tuple. - """ - m = NAME_VERSION_RE.match(p) - if not m: - raise DistlibException('Ill-formed name/version string: \'%s\'' % p) - d = m.groupdict() - return d['name'].strip().lower(), d['ver'] - -def get_extras(requested, available): - result = set() - requested = set(requested or []) - available = set(available or []) - if '*' in requested: - requested.remove('*') - result |= available - for r in requested: - if r == '-': - result.add(r) - elif r.startswith('-'): - unwanted = r[1:] - if unwanted not in available: - logger.warning('undeclared extra: %s' % unwanted) - if unwanted in result: - result.remove(unwanted) - else: - if r not in available: - logger.warning('undeclared extra: %s' % r) - result.add(r) - return result -# -# Extended metadata functionality -# - -def _get_external_data(url): - result = {} - try: - # urlopen might fail if it runs into redirections, - # because of Python issue #13696. Fixed in locators - # using a custom redirect handler. - resp = urlopen(url) - headers = resp.info() - ct = headers.get('Content-Type') - if not ct.startswith('application/json'): - logger.debug('Unexpected response for JSON request: %s', ct) - else: - reader = codecs.getreader('utf-8')(resp) - #data = reader.read().decode('utf-8') - #result = json.loads(data) - result = json.load(reader) - except Exception as e: - logger.exception('Failed to get external data for %s: %s', url, e) - return result - -_external_data_base_url = 'https://www.red-dove.com/pypi/projects/' - -def get_project_data(name): - url = '%s/%s/project.json' % (name[0].upper(), name) - url = urljoin(_external_data_base_url, url) - result = _get_external_data(url) - return result - -def get_package_data(name, version): - url = '%s/%s/package-%s.json' % (name[0].upper(), name, version) - url = urljoin(_external_data_base_url, url) - return _get_external_data(url) - - -class Cache(object): - """ - A class implementing a cache for resources that need to live in the file system - e.g. shared libraries. This class was moved from resources to here because it - could be used by other modules, e.g. the wheel module. - """ - - def __init__(self, base): - """ - Initialise an instance. - - :param base: The base directory where the cache should be located. - """ - # we use 'isdir' instead of 'exists', because we want to - # fail if there's a file with that name - if not os.path.isdir(base): # pragma: no cover - os.makedirs(base) - if (os.stat(base).st_mode & 0o77) != 0: - logger.warning('Directory \'%s\' is not private', base) - self.base = os.path.abspath(os.path.normpath(base)) - - def prefix_to_dir(self, prefix): - """ - Converts a resource prefix to a directory name in the cache. - """ - return path_to_cache_dir(prefix) - - def clear(self): - """ - Clear the cache. - """ - not_removed = [] - for fn in os.listdir(self.base): - fn = os.path.join(self.base, fn) - try: - if os.path.islink(fn) or os.path.isfile(fn): - os.remove(fn) - elif os.path.isdir(fn): - shutil.rmtree(fn) - except Exception: - not_removed.append(fn) - return not_removed - - -class EventMixin(object): - """ - A very simple publish/subscribe system. - """ - def __init__(self): - self._subscribers = {} - - def add(self, event, subscriber, append=True): - """ - Add a subscriber for an event. - - :param event: The name of an event. - :param subscriber: The subscriber to be added (and called when the - event is published). - :param append: Whether to append or prepend the subscriber to an - existing subscriber list for the event. - """ - subs = self._subscribers - if event not in subs: - subs[event] = deque([subscriber]) - else: - sq = subs[event] - if append: - sq.append(subscriber) - else: - sq.appendleft(subscriber) - - def remove(self, event, subscriber): - """ - Remove a subscriber for an event. - - :param event: The name of an event. - :param subscriber: The subscriber to be removed. - """ - subs = self._subscribers - if event not in subs: - raise ValueError('No subscribers: %r' % event) - subs[event].remove(subscriber) - - def get_subscribers(self, event): - """ - Return an iterator for the subscribers for an event. - :param event: The event to return subscribers for. - """ - return iter(self._subscribers.get(event, ())) - - def publish(self, event, *args, **kwargs): - """ - Publish a event and return a list of values returned by its - subscribers. - - :param event: The event to publish. - :param args: The positional arguments to pass to the event's - subscribers. - :param kwargs: The keyword arguments to pass to the event's - subscribers. - """ - result = [] - for subscriber in self.get_subscribers(event): - try: - value = subscriber(event, *args, **kwargs) - except Exception: - logger.exception('Exception during event publication') - value = None - result.append(value) - logger.debug('publish %s: args = %s, kwargs = %s, result = %s', - event, args, kwargs, result) - return result - -# -# Simple sequencing -# -class Sequencer(object): - def __init__(self): - self._preds = {} - self._succs = {} - self._nodes = set() # nodes with no preds/succs - - def add_node(self, node): - self._nodes.add(node) - - def remove_node(self, node, edges=False): - if node in self._nodes: - self._nodes.remove(node) - if edges: - for p in set(self._preds.get(node, ())): - self.remove(p, node) - for s in set(self._succs.get(node, ())): - self.remove(node, s) - # Remove empties - for k, v in list(self._preds.items()): - if not v: - del self._preds[k] - for k, v in list(self._succs.items()): - if not v: - del self._succs[k] - - def add(self, pred, succ): - assert pred != succ - self._preds.setdefault(succ, set()).add(pred) - self._succs.setdefault(pred, set()).add(succ) - - def remove(self, pred, succ): - assert pred != succ - try: - preds = self._preds[succ] - succs = self._succs[pred] - except KeyError: # pragma: no cover - raise ValueError('%r not a successor of anything' % succ) - try: - preds.remove(pred) - succs.remove(succ) - except KeyError: # pragma: no cover - raise ValueError('%r not a successor of %r' % (succ, pred)) - - def is_step(self, step): - return (step in self._preds or step in self._succs or - step in self._nodes) - - def get_steps(self, final): - if not self.is_step(final): - raise ValueError('Unknown: %r' % final) - result = [] - todo = [] - seen = set() - todo.append(final) - while todo: - step = todo.pop(0) - if step in seen: - # if a step was already seen, - # move it to the end (so it will appear earlier - # when reversed on return) ... but not for the - # final step, as that would be confusing for - # users - if step != final: - result.remove(step) - result.append(step) - else: - seen.add(step) - result.append(step) - preds = self._preds.get(step, ()) - todo.extend(preds) - return reversed(result) - - @property - def strong_connections(self): - #http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm - index_counter = [0] - stack = [] - lowlinks = {} - index = {} - result = [] - - graph = self._succs - - def strongconnect(node): - # set the depth index for this node to the smallest unused index - index[node] = index_counter[0] - lowlinks[node] = index_counter[0] - index_counter[0] += 1 - stack.append(node) - - # Consider successors - try: - successors = graph[node] - except Exception: - successors = [] - for successor in successors: - if successor not in lowlinks: - # Successor has not yet been visited - strongconnect(successor) - lowlinks[node] = min(lowlinks[node],lowlinks[successor]) - elif successor in stack: - # the successor is in the stack and hence in the current - # strongly connected component (SCC) - lowlinks[node] = min(lowlinks[node],index[successor]) - - # If `node` is a root node, pop the stack and generate an SCC - if lowlinks[node] == index[node]: - connected_component = [] - - while True: - successor = stack.pop() - connected_component.append(successor) - if successor == node: break - component = tuple(connected_component) - # storing the result - result.append(component) - - for node in graph: - if node not in lowlinks: - strongconnect(node) - - return result - - @property - def dot(self): - result = ['digraph G {'] - for succ in self._preds: - preds = self._preds[succ] - for pred in preds: - result.append(' %s -> %s;' % (pred, succ)) - for node in self._nodes: - result.append(' %s;' % node) - result.append('}') - return '\n'.join(result) - -# -# Unarchiving functionality for zip, tar, tgz, tbz, whl -# - -ARCHIVE_EXTENSIONS = ('.tar.gz', '.tar.bz2', '.tar', '.zip', - '.tgz', '.tbz', '.whl') - -def unarchive(archive_filename, dest_dir, format=None, check=True): - - def check_path(path): - if not isinstance(path, text_type): - path = path.decode('utf-8') - p = os.path.abspath(os.path.join(dest_dir, path)) - if not p.startswith(dest_dir) or p[plen] != os.sep: - raise ValueError('path outside destination: %r' % p) - - dest_dir = os.path.abspath(dest_dir) - plen = len(dest_dir) - archive = None - if format is None: - if archive_filename.endswith(('.zip', '.whl')): - format = 'zip' - elif archive_filename.endswith(('.tar.gz', '.tgz')): - format = 'tgz' - mode = 'r:gz' - elif archive_filename.endswith(('.tar.bz2', '.tbz')): - format = 'tbz' - mode = 'r:bz2' - elif archive_filename.endswith('.tar'): - format = 'tar' - mode = 'r' - else: # pragma: no cover - raise ValueError('Unknown format for %r' % archive_filename) - try: - if format == 'zip': - archive = ZipFile(archive_filename, 'r') - if check: - names = archive.namelist() - for name in names: - check_path(name) - else: - archive = tarfile.open(archive_filename, mode) - if check: - names = archive.getnames() - for name in names: - check_path(name) - if format != 'zip' and sys.version_info[0] < 3: - # See Python issue 17153. If the dest path contains Unicode, - # tarfile extraction fails on Python 2.x if a member path name - # contains non-ASCII characters - it leads to an implicit - # bytes -> unicode conversion using ASCII to decode. - for tarinfo in archive.getmembers(): - if not isinstance(tarinfo.name, text_type): - tarinfo.name = tarinfo.name.decode('utf-8') - archive.extractall(dest_dir) - - finally: - if archive: - archive.close() - - -def zip_dir(directory): - """zip a directory tree into a BytesIO object""" - result = io.BytesIO() - dlen = len(directory) - with ZipFile(result, "w") as zf: - for root, dirs, files in os.walk(directory): - for name in files: - full = os.path.join(root, name) - rel = root[dlen:] - dest = os.path.join(rel, name) - zf.write(full, dest) - return result - -# -# Simple progress bar -# - -UNITS = ('', 'K', 'M', 'G','T','P') - - -class Progress(object): - unknown = 'UNKNOWN' - - def __init__(self, minval=0, maxval=100): - assert maxval is None or maxval >= minval - self.min = self.cur = minval - self.max = maxval - self.started = None - self.elapsed = 0 - self.done = False - - def update(self, curval): - assert self.min <= curval - assert self.max is None or curval <= self.max - self.cur = curval - now = time.time() - if self.started is None: - self.started = now - else: - self.elapsed = now - self.started - - def increment(self, incr): - assert incr >= 0 - self.update(self.cur + incr) - - def start(self): - self.update(self.min) - return self - - def stop(self): - if self.max is not None: - self.update(self.max) - self.done = True - - @property - def maximum(self): - return self.unknown if self.max is None else self.max - - @property - def percentage(self): - if self.done: - result = '100 %' - elif self.max is None: - result = ' ?? %' - else: - v = 100.0 * (self.cur - self.min) / (self.max - self.min) - result = '%3d %%' % v - return result - - def format_duration(self, duration): - if (duration <= 0) and self.max is None or self.cur == self.min: - result = '??:??:??' - #elif duration < 1: - # result = '--:--:--' - else: - result = time.strftime('%H:%M:%S', time.gmtime(duration)) - return result - - @property - def ETA(self): - if self.done: - prefix = 'Done' - t = self.elapsed - #import pdb; pdb.set_trace() - else: - prefix = 'ETA ' - if self.max is None: - t = -1 - elif self.elapsed == 0 or (self.cur == self.min): - t = 0 - else: - #import pdb; pdb.set_trace() - t = float(self.max - self.min) - t /= self.cur - self.min - t = (t - 1) * self.elapsed - return '%s: %s' % (prefix, self.format_duration(t)) - - @property - def speed(self): - if self.elapsed == 0: - result = 0.0 - else: - result = (self.cur - self.min) / self.elapsed - for unit in UNITS: - if result < 1000: - break - result /= 1000.0 - return '%d %sB/s' % (result, unit) - -# -# Glob functionality -# - -RICH_GLOB = re.compile(r'\{([^}]*)\}') -_CHECK_RECURSIVE_GLOB = re.compile(r'[^/\\,{]\*\*|\*\*[^/\\,}]') -_CHECK_MISMATCH_SET = re.compile(r'^[^{]*\}|\{[^}]*$') - - -def iglob(path_glob): - """Extended globbing function that supports ** and {opt1,opt2,opt3}.""" - if _CHECK_RECURSIVE_GLOB.search(path_glob): - msg = """invalid glob %r: recursive glob "**" must be used alone""" - raise ValueError(msg % path_glob) - if _CHECK_MISMATCH_SET.search(path_glob): - msg = """invalid glob %r: mismatching set marker '{' or '}'""" - raise ValueError(msg % path_glob) - return _iglob(path_glob) - - -def _iglob(path_glob): - rich_path_glob = RICH_GLOB.split(path_glob, 1) - if len(rich_path_glob) > 1: - assert len(rich_path_glob) == 3, rich_path_glob - prefix, set, suffix = rich_path_glob - for item in set.split(','): - for path in _iglob(''.join((prefix, item, suffix))): - yield path - else: - if '**' not in path_glob: - for item in std_iglob(path_glob): - yield item - else: - prefix, radical = path_glob.split('**', 1) - if prefix == '': - prefix = '.' - if radical == '': - radical = '*' - else: - # we support both - radical = radical.lstrip('/') - radical = radical.lstrip('\\') - for path, dir, files in os.walk(prefix): - path = os.path.normpath(path) - for fn in _iglob(os.path.join(path, radical)): - yield fn - -if ssl: - from .compat import (HTTPSHandler as BaseHTTPSHandler, match_hostname, - CertificateError) - - -# -# HTTPSConnection which verifies certificates/matches domains -# - - class HTTPSConnection(httplib.HTTPSConnection): - ca_certs = None # set this to the path to the certs file (.pem) - check_domain = True # only used if ca_certs is not None - - # noinspection PyPropertyAccess - def connect(self): - sock = socket.create_connection((self.host, self.port), self.timeout) - if getattr(self, '_tunnel_host', False): - self.sock = sock - self._tunnel() - - if not hasattr(ssl, 'SSLContext'): - # For 2.x - if self.ca_certs: - cert_reqs = ssl.CERT_REQUIRED - else: - cert_reqs = ssl.CERT_NONE - self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, - cert_reqs=cert_reqs, - ssl_version=ssl.PROTOCOL_SSLv23, - ca_certs=self.ca_certs) - else: # pragma: no cover - context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) - if hasattr(ssl, 'OP_NO_SSLv2'): - context.options |= ssl.OP_NO_SSLv2 - if self.cert_file: - context.load_cert_chain(self.cert_file, self.key_file) - kwargs = {} - if self.ca_certs: - context.verify_mode = ssl.CERT_REQUIRED - context.load_verify_locations(cafile=self.ca_certs) - if getattr(ssl, 'HAS_SNI', False): - kwargs['server_hostname'] = self.host - self.sock = context.wrap_socket(sock, **kwargs) - if self.ca_certs and self.check_domain: - try: - match_hostname(self.sock.getpeercert(), self.host) - logger.debug('Host verified: %s', self.host) - except CertificateError: # pragma: no cover - self.sock.shutdown(socket.SHUT_RDWR) - self.sock.close() - raise - - class HTTPSHandler(BaseHTTPSHandler): - def __init__(self, ca_certs, check_domain=True): - BaseHTTPSHandler.__init__(self) - self.ca_certs = ca_certs - self.check_domain = check_domain - - def _conn_maker(self, *args, **kwargs): - """ - This is called to create a connection instance. Normally you'd - pass a connection class to do_open, but it doesn't actually check for - a class, and just expects a callable. As long as we behave just as a - constructor would have, we should be OK. If it ever changes so that - we *must* pass a class, we'll create an UnsafeHTTPSConnection class - which just sets check_domain to False in the class definition, and - choose which one to pass to do_open. - """ - result = HTTPSConnection(*args, **kwargs) - if self.ca_certs: - result.ca_certs = self.ca_certs - result.check_domain = self.check_domain - return result - - def https_open(self, req): - try: - return self.do_open(self._conn_maker, req) - except URLError as e: - if 'certificate verify failed' in str(e.reason): - raise CertificateError('Unable to verify server certificate ' - 'for %s' % req.host) - else: - raise - - # - # To prevent against mixing HTTP traffic with HTTPS (examples: A Man-In-The- - # Middle proxy using HTTP listens on port 443, or an index mistakenly serves - # HTML containing a http://xyz link when it should be https://xyz), - # you can use the following handler class, which does not allow HTTP traffic. - # - # It works by inheriting from HTTPHandler - so build_opener won't add a - # handler for HTTP itself. - # - class HTTPSOnlyHandler(HTTPSHandler, HTTPHandler): - def http_open(self, req): - raise URLError('Unexpected HTTP request on what should be a secure ' - 'connection: %s' % req) - -# -# XML-RPC with timeouts -# - -_ver_info = sys.version_info[:2] - -if _ver_info == (2, 6): - class HTTP(httplib.HTTP): - def __init__(self, host='', port=None, **kwargs): - if port == 0: # 0 means use port 0, not the default port - port = None - self._setup(self._connection_class(host, port, **kwargs)) - - - if ssl: - class HTTPS(httplib.HTTPS): - def __init__(self, host='', port=None, **kwargs): - if port == 0: # 0 means use port 0, not the default port - port = None - self._setup(self._connection_class(host, port, **kwargs)) - - -class Transport(xmlrpclib.Transport): - def __init__(self, timeout, use_datetime=0): - self.timeout = timeout - xmlrpclib.Transport.__init__(self, use_datetime) - - def make_connection(self, host): - h, eh, x509 = self.get_host_info(host) - if _ver_info == (2, 6): - result = HTTP(h, timeout=self.timeout) - else: - if not self._connection or host != self._connection[0]: - self._extra_headers = eh - self._connection = host, httplib.HTTPConnection(h) - result = self._connection[1] - return result - -if ssl: - class SafeTransport(xmlrpclib.SafeTransport): - def __init__(self, timeout, use_datetime=0): - self.timeout = timeout - xmlrpclib.SafeTransport.__init__(self, use_datetime) - - def make_connection(self, host): - h, eh, kwargs = self.get_host_info(host) - if not kwargs: - kwargs = {} - kwargs['timeout'] = self.timeout - if _ver_info == (2, 6): - result = HTTPS(host, None, **kwargs) - else: - if not self._connection or host != self._connection[0]: - self._extra_headers = eh - self._connection = host, httplib.HTTPSConnection(h, None, - **kwargs) - result = self._connection[1] - return result - - -class ServerProxy(xmlrpclib.ServerProxy): - def __init__(self, uri, **kwargs): - self.timeout = timeout = kwargs.pop('timeout', None) - # The above classes only come into play if a timeout - # is specified - if timeout is not None: - # scheme = splittype(uri) # deprecated as of Python 3.8 - scheme = urlparse(uri)[0] - use_datetime = kwargs.get('use_datetime', 0) - if scheme == 'https': - tcls = SafeTransport - else: - tcls = Transport - kwargs['transport'] = t = tcls(timeout, use_datetime=use_datetime) - self.transport = t - xmlrpclib.ServerProxy.__init__(self, uri, **kwargs) - -# -# CSV functionality. This is provided because on 2.x, the csv module can't -# handle Unicode. However, we need to deal with Unicode in e.g. RECORD files. -# - -def _csv_open(fn, mode, **kwargs): - if sys.version_info[0] < 3: - mode += 'b' - else: - kwargs['newline'] = '' - # Python 3 determines encoding from locale. Force 'utf-8' - # file encoding to match other forced utf-8 encoding - kwargs['encoding'] = 'utf-8' - return open(fn, mode, **kwargs) - - -class CSVBase(object): - defaults = { - 'delimiter': str(','), # The strs are used because we need native - 'quotechar': str('"'), # str in the csv API (2.x won't take - 'lineterminator': str('\n') # Unicode) - } - - def __enter__(self): - return self - - def __exit__(self, *exc_info): - self.stream.close() - - -class CSVReader(CSVBase): - def __init__(self, **kwargs): - if 'stream' in kwargs: - stream = kwargs['stream'] - if sys.version_info[0] >= 3: - # needs to be a text stream - stream = codecs.getreader('utf-8')(stream) - self.stream = stream - else: - self.stream = _csv_open(kwargs['path'], 'r') - self.reader = csv.reader(self.stream, **self.defaults) - - def __iter__(self): - return self - - def next(self): - result = next(self.reader) - if sys.version_info[0] < 3: - for i, item in enumerate(result): - if not isinstance(item, text_type): - result[i] = item.decode('utf-8') - return result - - __next__ = next - -class CSVWriter(CSVBase): - def __init__(self, fn, **kwargs): - self.stream = _csv_open(fn, 'w') - self.writer = csv.writer(self.stream, **self.defaults) - - def writerow(self, row): - if sys.version_info[0] < 3: - r = [] - for item in row: - if isinstance(item, text_type): - item = item.encode('utf-8') - r.append(item) - row = r - self.writer.writerow(row) - -# -# Configurator functionality -# - -class Configurator(BaseConfigurator): - - value_converters = dict(BaseConfigurator.value_converters) - value_converters['inc'] = 'inc_convert' - - def __init__(self, config, base=None): - super(Configurator, self).__init__(config) - self.base = base or os.getcwd() - - def configure_custom(self, config): - def convert(o): - if isinstance(o, (list, tuple)): - result = type(o)([convert(i) for i in o]) - elif isinstance(o, dict): - if '()' in o: - result = self.configure_custom(o) - else: - result = {} - for k in o: - result[k] = convert(o[k]) - else: - result = self.convert(o) - return result - - c = config.pop('()') - if not callable(c): - c = self.resolve(c) - props = config.pop('.', None) - # Check for valid identifiers - args = config.pop('[]', ()) - if args: - args = tuple([convert(o) for o in args]) - items = [(k, convert(config[k])) for k in config if valid_ident(k)] - kwargs = dict(items) - result = c(*args, **kwargs) - if props: - for n, v in props.items(): - setattr(result, n, convert(v)) - return result - - def __getitem__(self, key): - result = self.config[key] - if isinstance(result, dict) and '()' in result: - self.config[key] = result = self.configure_custom(result) - return result - - def inc_convert(self, value): - """Default converter for the inc:// protocol.""" - if not os.path.isabs(value): - value = os.path.join(self.base, value) - with codecs.open(value, 'r', encoding='utf-8') as f: - result = json.load(f) - return result - - -class SubprocessMixin(object): - """ - Mixin for running subprocesses and capturing their output - """ - def __init__(self, verbose=False, progress=None): - self.verbose = verbose - self.progress = progress - - def reader(self, stream, context): - """ - Read lines from a subprocess' output stream and either pass to a progress - callable (if specified) or write progress information to sys.stderr. - """ - progress = self.progress - verbose = self.verbose - while True: - s = stream.readline() - if not s: - break - if progress is not None: - progress(s, context) - else: - if not verbose: - sys.stderr.write('.') - else: - sys.stderr.write(s.decode('utf-8')) - sys.stderr.flush() - stream.close() - - def run_command(self, cmd, **kwargs): - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=subprocess.PIPE, **kwargs) - t1 = threading.Thread(target=self.reader, args=(p.stdout, 'stdout')) - t1.start() - t2 = threading.Thread(target=self.reader, args=(p.stderr, 'stderr')) - t2.start() - p.wait() - t1.join() - t2.join() - if self.progress is not None: - self.progress('done.', 'main') - elif self.verbose: - sys.stderr.write('done.\n') - return p - - -def normalize_name(name): - """Normalize a python package name a la PEP 503""" - # https://www.python.org/dev/peps/pep-0503/#normalized-names - return re.sub('[-_.]+', '-', name).lower() - -# def _get_pypirc_command(): - # """ - # Get the distutils command for interacting with PyPI configurations. - # :return: the command. - # """ - # from distutils.core import Distribution - # from distutils.config import PyPIRCCommand - # d = Distribution() - # return PyPIRCCommand(d) - -class PyPIRCFile(object): - - DEFAULT_REPOSITORY = 'https://upload.pypi.org/legacy/' - DEFAULT_REALM = 'pypi' - - def __init__(self, fn=None, url=None): - if fn is None: - fn = os.path.join(os.path.expanduser('~'), '.pypirc') - self.filename = fn - self.url = url - - def read(self): - result = {} - - if os.path.exists(self.filename): - repository = self.url or self.DEFAULT_REPOSITORY - - config = configparser.RawConfigParser() - config.read(self.filename) - sections = config.sections() - if 'distutils' in sections: - # let's get the list of servers - index_servers = config.get('distutils', 'index-servers') - _servers = [server.strip() for server in - index_servers.split('\n') - if server.strip() != ''] - if _servers == []: - # nothing set, let's try to get the default pypi - if 'pypi' in sections: - _servers = ['pypi'] - else: - for server in _servers: - result = {'server': server} - result['username'] = config.get(server, 'username') - - # optional params - for key, default in (('repository', self.DEFAULT_REPOSITORY), - ('realm', self.DEFAULT_REALM), - ('password', None)): - if config.has_option(server, key): - result[key] = config.get(server, key) - else: - result[key] = default - - # work around people having "repository" for the "pypi" - # section of their config set to the HTTP (rather than - # HTTPS) URL - if (server == 'pypi' and - repository in (self.DEFAULT_REPOSITORY, 'pypi')): - result['repository'] = self.DEFAULT_REPOSITORY - elif (result['server'] != repository and - result['repository'] != repository): - result = {} - elif 'server-login' in sections: - # old format - server = 'server-login' - if config.has_option(server, 'repository'): - repository = config.get(server, 'repository') - else: - repository = self.DEFAULT_REPOSITORY - result = { - 'username': config.get(server, 'username'), - 'password': config.get(server, 'password'), - 'repository': repository, - 'server': server, - 'realm': self.DEFAULT_REALM - } - return result - - def update(self, username, password): - # import pdb; pdb.set_trace() - config = configparser.RawConfigParser() - fn = self.filename - config.read(fn) - if not config.has_section('pypi'): - config.add_section('pypi') - config.set('pypi', 'username', username) - config.set('pypi', 'password', password) - with open(fn, 'w') as f: - config.write(f) - -def _load_pypirc(index): - """ - Read the PyPI access configuration as supported by distutils. - """ - return PyPIRCFile(url=index.url).read() - -def _store_pypirc(index): - PyPIRCFile().update(index.username, index.password) - -# -# get_platform()/get_host_platform() copied from Python 3.10.a0 source, with some minor -# tweaks -# - -def get_host_platform(): - """Return a string that identifies the current platform. This is used mainly to - distinguish platform-specific build directories and platform-specific built - distributions. Typically includes the OS name and version and the - architecture (as supplied by 'os.uname()'), although the exact information - included depends on the OS; eg. on Linux, the kernel version isn't - particularly important. - - Examples of returned values: - linux-i586 - linux-alpha (?) - solaris-2.6-sun4u - - Windows will return one of: - win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) - win32 (all others - specifically, sys.platform is returned) - - For other non-POSIX platforms, currently just returns 'sys.platform'. - - """ - if os.name == 'nt': - if 'amd64' in sys.version.lower(): - return 'win-amd64' - if '(arm)' in sys.version.lower(): - return 'win-arm32' - if '(arm64)' in sys.version.lower(): - return 'win-arm64' - return sys.platform - - # Set for cross builds explicitly - if "_PYTHON_HOST_PLATFORM" in os.environ: - return os.environ["_PYTHON_HOST_PLATFORM"] - - if os.name != 'posix' or not hasattr(os, 'uname'): - # XXX what about the architecture? NT is Intel or Alpha, - # Mac OS is M68k or PPC, etc. - return sys.platform - - # Try to distinguish various flavours of Unix - - (osname, host, release, version, machine) = os.uname() - - # Convert the OS name to lowercase, remove '/' characters, and translate - # spaces (for "Power Macintosh") - osname = osname.lower().replace('/', '') - machine = machine.replace(' ', '_').replace('/', '-') - - if osname[:5] == 'linux': - # At least on Linux/Intel, 'machine' is the processor -- - # i386, etc. - # XXX what about Alpha, SPARC, etc? - return "%s-%s" % (osname, machine) - - elif osname[:5] == 'sunos': - if release[0] >= '5': # SunOS 5 == Solaris 2 - osname = 'solaris' - release = '%d.%s' % (int(release[0]) - 3, release[2:]) - # We can't use 'platform.architecture()[0]' because a - # bootstrap problem. We use a dict to get an error - # if some suspicious happens. - bitness = {2147483647:'32bit', 9223372036854775807:'64bit'} - machine += '.%s' % bitness[sys.maxsize] - # fall through to standard osname-release-machine representation - elif osname[:3] == 'aix': - from _aix_support import aix_platform - return aix_platform() - elif osname[:6] == 'cygwin': - osname = 'cygwin' - rel_re = re.compile (r'[\d.]+', re.ASCII) - m = rel_re.match(release) - if m: - release = m.group() - elif osname[:6] == 'darwin': - import _osx_support, distutils.sysconfig - osname, release, machine = _osx_support.get_platform_osx( - distutils.sysconfig.get_config_vars(), - osname, release, machine) - - return '%s-%s-%s' % (osname, release, machine) - - -_TARGET_TO_PLAT = { - 'x86' : 'win32', - 'x64' : 'win-amd64', - 'arm' : 'win-arm32', -} - - -def get_platform(): - if os.name != 'nt': - return get_host_platform() - cross_compilation_target = os.environ.get('VSCMD_ARG_TGT_ARCH') - if cross_compilation_target not in _TARGET_TO_PLAT: - return get_host_platform() - return _TARGET_TO_PLAT[cross_compilation_target] diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/version.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/version.py deleted file mode 100644 index c7c8bb6..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/version.py +++ /dev/null @@ -1,739 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2017 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -""" -Implementation of a flexible versioning scheme providing support for PEP-440, -setuptools-compatible and semantic versioning. -""" - -import logging -import re - -from .compat import string_types -from .util import parse_requirement - -__all__ = ['NormalizedVersion', 'NormalizedMatcher', - 'LegacyVersion', 'LegacyMatcher', - 'SemanticVersion', 'SemanticMatcher', - 'UnsupportedVersionError', 'get_scheme'] - -logger = logging.getLogger(__name__) - - -class UnsupportedVersionError(ValueError): - """This is an unsupported version.""" - pass - - -class Version(object): - def __init__(self, s): - self._string = s = s.strip() - self._parts = parts = self.parse(s) - assert isinstance(parts, tuple) - assert len(parts) > 0 - - def parse(self, s): - raise NotImplementedError('please implement in a subclass') - - def _check_compatible(self, other): - if type(self) != type(other): - raise TypeError('cannot compare %r and %r' % (self, other)) - - def __eq__(self, other): - self._check_compatible(other) - return self._parts == other._parts - - def __ne__(self, other): - return not self.__eq__(other) - - def __lt__(self, other): - self._check_compatible(other) - return self._parts < other._parts - - def __gt__(self, other): - return not (self.__lt__(other) or self.__eq__(other)) - - def __le__(self, other): - return self.__lt__(other) or self.__eq__(other) - - def __ge__(self, other): - return self.__gt__(other) or self.__eq__(other) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - def __hash__(self): - return hash(self._parts) - - def __repr__(self): - return "%s('%s')" % (self.__class__.__name__, self._string) - - def __str__(self): - return self._string - - @property - def is_prerelease(self): - raise NotImplementedError('Please implement in subclasses.') - - -class Matcher(object): - version_class = None - - # value is either a callable or the name of a method - _operators = { - '<': lambda v, c, p: v < c, - '>': lambda v, c, p: v > c, - '<=': lambda v, c, p: v == c or v < c, - '>=': lambda v, c, p: v == c or v > c, - '==': lambda v, c, p: v == c, - '===': lambda v, c, p: v == c, - # by default, compatible => >=. - '~=': lambda v, c, p: v == c or v > c, - '!=': lambda v, c, p: v != c, - } - - # this is a method only to support alternative implementations - # via overriding - def parse_requirement(self, s): - return parse_requirement(s) - - def __init__(self, s): - if self.version_class is None: - raise ValueError('Please specify a version class') - self._string = s = s.strip() - r = self.parse_requirement(s) - if not r: - raise ValueError('Not valid: %r' % s) - self.name = r.name - self.key = self.name.lower() # for case-insensitive comparisons - clist = [] - if r.constraints: - # import pdb; pdb.set_trace() - for op, s in r.constraints: - if s.endswith('.*'): - if op not in ('==', '!='): - raise ValueError('\'.*\' not allowed for ' - '%r constraints' % op) - # Could be a partial version (e.g. for '2.*') which - # won't parse as a version, so keep it as a string - vn, prefix = s[:-2], True - # Just to check that vn is a valid version - self.version_class(vn) - else: - # Should parse as a version, so we can create an - # instance for the comparison - vn, prefix = self.version_class(s), False - clist.append((op, vn, prefix)) - self._parts = tuple(clist) - - def match(self, version): - """ - Check if the provided version matches the constraints. - - :param version: The version to match against this instance. - :type version: String or :class:`Version` instance. - """ - if isinstance(version, string_types): - version = self.version_class(version) - for operator, constraint, prefix in self._parts: - f = self._operators.get(operator) - if isinstance(f, string_types): - f = getattr(self, f) - if not f: - msg = ('%r not implemented ' - 'for %s' % (operator, self.__class__.__name__)) - raise NotImplementedError(msg) - if not f(version, constraint, prefix): - return False - return True - - @property - def exact_version(self): - result = None - if len(self._parts) == 1 and self._parts[0][0] in ('==', '==='): - result = self._parts[0][1] - return result - - def _check_compatible(self, other): - if type(self) != type(other) or self.name != other.name: - raise TypeError('cannot compare %s and %s' % (self, other)) - - def __eq__(self, other): - self._check_compatible(other) - return self.key == other.key and self._parts == other._parts - - def __ne__(self, other): - return not self.__eq__(other) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - def __hash__(self): - return hash(self.key) + hash(self._parts) - - def __repr__(self): - return "%s(%r)" % (self.__class__.__name__, self._string) - - def __str__(self): - return self._string - - -PEP440_VERSION_RE = re.compile(r'^v?(\d+!)?(\d+(\.\d+)*)((a|b|c|rc)(\d+))?' - r'(\.(post)(\d+))?(\.(dev)(\d+))?' - r'(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$') - - -def _pep_440_key(s): - s = s.strip() - m = PEP440_VERSION_RE.match(s) - if not m: - raise UnsupportedVersionError('Not a valid version: %s' % s) - groups = m.groups() - nums = tuple(int(v) for v in groups[1].split('.')) - while len(nums) > 1 and nums[-1] == 0: - nums = nums[:-1] - - if not groups[0]: - epoch = 0 - else: - epoch = int(groups[0][:-1]) - pre = groups[4:6] - post = groups[7:9] - dev = groups[10:12] - local = groups[13] - if pre == (None, None): - pre = () - else: - pre = pre[0], int(pre[1]) - if post == (None, None): - post = () - else: - post = post[0], int(post[1]) - if dev == (None, None): - dev = () - else: - dev = dev[0], int(dev[1]) - if local is None: - local = () - else: - parts = [] - for part in local.split('.'): - # to ensure that numeric compares as > lexicographic, avoid - # comparing them directly, but encode a tuple which ensures - # correct sorting - if part.isdigit(): - part = (1, int(part)) - else: - part = (0, part) - parts.append(part) - local = tuple(parts) - if not pre: - # either before pre-release, or final release and after - if not post and dev: - # before pre-release - pre = ('a', -1) # to sort before a0 - else: - pre = ('z',) # to sort after all pre-releases - # now look at the state of post and dev. - if not post: - post = ('_',) # sort before 'a' - if not dev: - dev = ('final',) - - #print('%s -> %s' % (s, m.groups())) - return epoch, nums, pre, post, dev, local - - -_normalized_key = _pep_440_key - - -class NormalizedVersion(Version): - """A rational version. - - Good: - 1.2 # equivalent to "1.2.0" - 1.2.0 - 1.2a1 - 1.2.3a2 - 1.2.3b1 - 1.2.3c1 - 1.2.3.4 - TODO: fill this out - - Bad: - 1 # minimum two numbers - 1.2a # release level must have a release serial - 1.2.3b - """ - def parse(self, s): - result = _normalized_key(s) - # _normalized_key loses trailing zeroes in the release - # clause, since that's needed to ensure that X.Y == X.Y.0 == X.Y.0.0 - # However, PEP 440 prefix matching needs it: for example, - # (~= 1.4.5.0) matches differently to (~= 1.4.5.0.0). - m = PEP440_VERSION_RE.match(s) # must succeed - groups = m.groups() - self._release_clause = tuple(int(v) for v in groups[1].split('.')) - return result - - PREREL_TAGS = set(['a', 'b', 'c', 'rc', 'dev']) - - @property - def is_prerelease(self): - return any(t[0] in self.PREREL_TAGS for t in self._parts if t) - - -def _match_prefix(x, y): - x = str(x) - y = str(y) - if x == y: - return True - if not x.startswith(y): - return False - n = len(y) - return x[n] == '.' - - -class NormalizedMatcher(Matcher): - version_class = NormalizedVersion - - # value is either a callable or the name of a method - _operators = { - '~=': '_match_compatible', - '<': '_match_lt', - '>': '_match_gt', - '<=': '_match_le', - '>=': '_match_ge', - '==': '_match_eq', - '===': '_match_arbitrary', - '!=': '_match_ne', - } - - def _adjust_local(self, version, constraint, prefix): - if prefix: - strip_local = '+' not in constraint and version._parts[-1] - else: - # both constraint and version are - # NormalizedVersion instances. - # If constraint does not have a local component, - # ensure the version doesn't, either. - strip_local = not constraint._parts[-1] and version._parts[-1] - if strip_local: - s = version._string.split('+', 1)[0] - version = self.version_class(s) - return version, constraint - - def _match_lt(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if version >= constraint: - return False - release_clause = constraint._release_clause - pfx = '.'.join([str(i) for i in release_clause]) - return not _match_prefix(version, pfx) - - def _match_gt(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if version <= constraint: - return False - release_clause = constraint._release_clause - pfx = '.'.join([str(i) for i in release_clause]) - return not _match_prefix(version, pfx) - - def _match_le(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - return version <= constraint - - def _match_ge(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - return version >= constraint - - def _match_eq(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if not prefix: - result = (version == constraint) - else: - result = _match_prefix(version, constraint) - return result - - def _match_arbitrary(self, version, constraint, prefix): - return str(version) == str(constraint) - - def _match_ne(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if not prefix: - result = (version != constraint) - else: - result = not _match_prefix(version, constraint) - return result - - def _match_compatible(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if version == constraint: - return True - if version < constraint: - return False -# if not prefix: -# return True - release_clause = constraint._release_clause - if len(release_clause) > 1: - release_clause = release_clause[:-1] - pfx = '.'.join([str(i) for i in release_clause]) - return _match_prefix(version, pfx) - -_REPLACEMENTS = ( - (re.compile('[.+-]$'), ''), # remove trailing puncts - (re.compile(r'^[.](\d)'), r'0.\1'), # .N -> 0.N at start - (re.compile('^[.-]'), ''), # remove leading puncts - (re.compile(r'^\((.*)\)$'), r'\1'), # remove parentheses - (re.compile(r'^v(ersion)?\s*(\d+)'), r'\2'), # remove leading v(ersion) - (re.compile(r'^r(ev)?\s*(\d+)'), r'\2'), # remove leading v(ersion) - (re.compile('[.]{2,}'), '.'), # multiple runs of '.' - (re.compile(r'\b(alfa|apha)\b'), 'alpha'), # misspelt alpha - (re.compile(r'\b(pre-alpha|prealpha)\b'), - 'pre.alpha'), # standardise - (re.compile(r'\(beta\)$'), 'beta'), # remove parentheses -) - -_SUFFIX_REPLACEMENTS = ( - (re.compile('^[:~._+-]+'), ''), # remove leading puncts - (re.compile('[,*")([\\]]'), ''), # remove unwanted chars - (re.compile('[~:+_ -]'), '.'), # replace illegal chars - (re.compile('[.]{2,}'), '.'), # multiple runs of '.' - (re.compile(r'\.$'), ''), # trailing '.' -) - -_NUMERIC_PREFIX = re.compile(r'(\d+(\.\d+)*)') - - -def _suggest_semantic_version(s): - """ - Try to suggest a semantic form for a version for which - _suggest_normalized_version couldn't come up with anything. - """ - result = s.strip().lower() - for pat, repl in _REPLACEMENTS: - result = pat.sub(repl, result) - if not result: - result = '0.0.0' - - # Now look for numeric prefix, and separate it out from - # the rest. - #import pdb; pdb.set_trace() - m = _NUMERIC_PREFIX.match(result) - if not m: - prefix = '0.0.0' - suffix = result - else: - prefix = m.groups()[0].split('.') - prefix = [int(i) for i in prefix] - while len(prefix) < 3: - prefix.append(0) - if len(prefix) == 3: - suffix = result[m.end():] - else: - suffix = '.'.join([str(i) for i in prefix[3:]]) + result[m.end():] - prefix = prefix[:3] - prefix = '.'.join([str(i) for i in prefix]) - suffix = suffix.strip() - if suffix: - #import pdb; pdb.set_trace() - # massage the suffix. - for pat, repl in _SUFFIX_REPLACEMENTS: - suffix = pat.sub(repl, suffix) - - if not suffix: - result = prefix - else: - sep = '-' if 'dev' in suffix else '+' - result = prefix + sep + suffix - if not is_semver(result): - result = None - return result - - -def _suggest_normalized_version(s): - """Suggest a normalized version close to the given version string. - - If you have a version string that isn't rational (i.e. NormalizedVersion - doesn't like it) then you might be able to get an equivalent (or close) - rational version from this function. - - This does a number of simple normalizations to the given string, based - on observation of versions currently in use on PyPI. Given a dump of - those version during PyCon 2009, 4287 of them: - - 2312 (53.93%) match NormalizedVersion without change - with the automatic suggestion - - 3474 (81.04%) match when using this suggestion method - - @param s {str} An irrational version string. - @returns A rational version string, or None, if couldn't determine one. - """ - try: - _normalized_key(s) - return s # already rational - except UnsupportedVersionError: - pass - - rs = s.lower() - - # part of this could use maketrans - for orig, repl in (('-alpha', 'a'), ('-beta', 'b'), ('alpha', 'a'), - ('beta', 'b'), ('rc', 'c'), ('-final', ''), - ('-pre', 'c'), - ('-release', ''), ('.release', ''), ('-stable', ''), - ('+', '.'), ('_', '.'), (' ', ''), ('.final', ''), - ('final', '')): - rs = rs.replace(orig, repl) - - # if something ends with dev or pre, we add a 0 - rs = re.sub(r"pre$", r"pre0", rs) - rs = re.sub(r"dev$", r"dev0", rs) - - # if we have something like "b-2" or "a.2" at the end of the - # version, that is probably beta, alpha, etc - # let's remove the dash or dot - rs = re.sub(r"([abc]|rc)[\-\.](\d+)$", r"\1\2", rs) - - # 1.0-dev-r371 -> 1.0.dev371 - # 0.1-dev-r79 -> 0.1.dev79 - rs = re.sub(r"[\-\.](dev)[\-\.]?r?(\d+)$", r".\1\2", rs) - - # Clean: 2.0.a.3, 2.0.b1, 0.9.0~c1 - rs = re.sub(r"[.~]?([abc])\.?", r"\1", rs) - - # Clean: v0.3, v1.0 - if rs.startswith('v'): - rs = rs[1:] - - # Clean leading '0's on numbers. - #TODO: unintended side-effect on, e.g., "2003.05.09" - # PyPI stats: 77 (~2%) better - rs = re.sub(r"\b0+(\d+)(?!\d)", r"\1", rs) - - # Clean a/b/c with no version. E.g. "1.0a" -> "1.0a0". Setuptools infers - # zero. - # PyPI stats: 245 (7.56%) better - rs = re.sub(r"(\d+[abc])$", r"\g<1>0", rs) - - # the 'dev-rNNN' tag is a dev tag - rs = re.sub(r"\.?(dev-r|dev\.r)\.?(\d+)$", r".dev\2", rs) - - # clean the - when used as a pre delimiter - rs = re.sub(r"-(a|b|c)(\d+)$", r"\1\2", rs) - - # a terminal "dev" or "devel" can be changed into ".dev0" - rs = re.sub(r"[\.\-](dev|devel)$", r".dev0", rs) - - # a terminal "dev" can be changed into ".dev0" - rs = re.sub(r"(?![\.\-])dev$", r".dev0", rs) - - # a terminal "final" or "stable" can be removed - rs = re.sub(r"(final|stable)$", "", rs) - - # The 'r' and the '-' tags are post release tags - # 0.4a1.r10 -> 0.4a1.post10 - # 0.9.33-17222 -> 0.9.33.post17222 - # 0.9.33-r17222 -> 0.9.33.post17222 - rs = re.sub(r"\.?(r|-|-r)\.?(\d+)$", r".post\2", rs) - - # Clean 'r' instead of 'dev' usage: - # 0.9.33+r17222 -> 0.9.33.dev17222 - # 1.0dev123 -> 1.0.dev123 - # 1.0.git123 -> 1.0.dev123 - # 1.0.bzr123 -> 1.0.dev123 - # 0.1a0dev.123 -> 0.1a0.dev123 - # PyPI stats: ~150 (~4%) better - rs = re.sub(r"\.?(dev|git|bzr)\.?(\d+)$", r".dev\2", rs) - - # Clean '.pre' (normalized from '-pre' above) instead of 'c' usage: - # 0.2.pre1 -> 0.2c1 - # 0.2-c1 -> 0.2c1 - # 1.0preview123 -> 1.0c123 - # PyPI stats: ~21 (0.62%) better - rs = re.sub(r"\.?(pre|preview|-c)(\d+)$", r"c\g<2>", rs) - - # Tcl/Tk uses "px" for their post release markers - rs = re.sub(r"p(\d+)$", r".post\1", rs) - - try: - _normalized_key(rs) - except UnsupportedVersionError: - rs = None - return rs - -# -# Legacy version processing (distribute-compatible) -# - -_VERSION_PART = re.compile(r'([a-z]+|\d+|[\.-])', re.I) -_VERSION_REPLACE = { - 'pre': 'c', - 'preview': 'c', - '-': 'final-', - 'rc': 'c', - 'dev': '@', - '': None, - '.': None, -} - - -def _legacy_key(s): - def get_parts(s): - result = [] - for p in _VERSION_PART.split(s.lower()): - p = _VERSION_REPLACE.get(p, p) - if p: - if '0' <= p[:1] <= '9': - p = p.zfill(8) - else: - p = '*' + p - result.append(p) - result.append('*final') - return result - - result = [] - for p in get_parts(s): - if p.startswith('*'): - if p < '*final': - while result and result[-1] == '*final-': - result.pop() - while result and result[-1] == '00000000': - result.pop() - result.append(p) - return tuple(result) - - -class LegacyVersion(Version): - def parse(self, s): - return _legacy_key(s) - - @property - def is_prerelease(self): - result = False - for x in self._parts: - if (isinstance(x, string_types) and x.startswith('*') and - x < '*final'): - result = True - break - return result - - -class LegacyMatcher(Matcher): - version_class = LegacyVersion - - _operators = dict(Matcher._operators) - _operators['~='] = '_match_compatible' - - numeric_re = re.compile(r'^(\d+(\.\d+)*)') - - def _match_compatible(self, version, constraint, prefix): - if version < constraint: - return False - m = self.numeric_re.match(str(constraint)) - if not m: - logger.warning('Cannot compute compatible match for version %s ' - ' and constraint %s', version, constraint) - return True - s = m.groups()[0] - if '.' in s: - s = s.rsplit('.', 1)[0] - return _match_prefix(version, s) - -# -# Semantic versioning -# - -_SEMVER_RE = re.compile(r'^(\d+)\.(\d+)\.(\d+)' - r'(-[a-z0-9]+(\.[a-z0-9-]+)*)?' - r'(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$', re.I) - - -def is_semver(s): - return _SEMVER_RE.match(s) - - -def _semantic_key(s): - def make_tuple(s, absent): - if s is None: - result = (absent,) - else: - parts = s[1:].split('.') - # We can't compare ints and strings on Python 3, so fudge it - # by zero-filling numeric values so simulate a numeric comparison - result = tuple([p.zfill(8) if p.isdigit() else p for p in parts]) - return result - - m = is_semver(s) - if not m: - raise UnsupportedVersionError(s) - groups = m.groups() - major, minor, patch = [int(i) for i in groups[:3]] - # choose the '|' and '*' so that versions sort correctly - pre, build = make_tuple(groups[3], '|'), make_tuple(groups[5], '*') - return (major, minor, patch), pre, build - - -class SemanticVersion(Version): - def parse(self, s): - return _semantic_key(s) - - @property - def is_prerelease(self): - return self._parts[1][0] != '|' - - -class SemanticMatcher(Matcher): - version_class = SemanticVersion - - -class VersionScheme(object): - def __init__(self, key, matcher, suggester=None): - self.key = key - self.matcher = matcher - self.suggester = suggester - - def is_valid_version(self, s): - try: - self.matcher.version_class(s) - result = True - except UnsupportedVersionError: - result = False - return result - - def is_valid_matcher(self, s): - try: - self.matcher(s) - result = True - except UnsupportedVersionError: - result = False - return result - - def is_valid_constraint_list(self, s): - """ - Used for processing some metadata fields - """ - # See issue #140. Be tolerant of a single trailing comma. - if s.endswith(','): - s = s[:-1] - return self.is_valid_matcher('dummy_name (%s)' % s) - - def suggest(self, s): - if self.suggester is None: - result = None - else: - result = self.suggester(s) - return result - -_SCHEMES = { - 'normalized': VersionScheme(_normalized_key, NormalizedMatcher, - _suggest_normalized_version), - 'legacy': VersionScheme(_legacy_key, LegacyMatcher, lambda self, s: s), - 'semantic': VersionScheme(_semantic_key, SemanticMatcher, - _suggest_semantic_version), -} - -_SCHEMES['default'] = _SCHEMES['normalized'] - - -def get_scheme(name): - if name not in _SCHEMES: - raise ValueError('unknown scheme name: %r' % name) - return _SCHEMES[name] diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/wheel.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/wheel.py deleted file mode 100644 index 48abfde..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/wheel.py +++ /dev/null @@ -1,1053 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013-2020 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from __future__ import unicode_literals - -import base64 -import codecs -import datetime -from email import message_from_file -import hashlib -import imp -import json -import logging -import os -import posixpath -import re -import shutil -import sys -import tempfile -import zipfile - -from . import __version__, DistlibException -from .compat import sysconfig, ZipFile, fsdecode, text_type, filter -from .database import InstalledDistribution -from .metadata import (Metadata, METADATA_FILENAME, WHEEL_METADATA_FILENAME, - LEGACY_METADATA_FILENAME) -from .util import (FileOperator, convert_path, CSVReader, CSVWriter, Cache, - cached_property, get_cache_base, read_exports, tempdir, - get_platform) -from .version import NormalizedVersion, UnsupportedVersionError - -logger = logging.getLogger(__name__) - -cache = None # created when needed - -if hasattr(sys, 'pypy_version_info'): # pragma: no cover - IMP_PREFIX = 'pp' -elif sys.platform.startswith('java'): # pragma: no cover - IMP_PREFIX = 'jy' -elif sys.platform == 'cli': # pragma: no cover - IMP_PREFIX = 'ip' -else: - IMP_PREFIX = 'cp' - -VER_SUFFIX = sysconfig.get_config_var('py_version_nodot') -if not VER_SUFFIX: # pragma: no cover - VER_SUFFIX = '%s%s' % sys.version_info[:2] -PYVER = 'py' + VER_SUFFIX -IMPVER = IMP_PREFIX + VER_SUFFIX - -ARCH = get_platform().replace('-', '_').replace('.', '_') - -ABI = sysconfig.get_config_var('SOABI') -if ABI and ABI.startswith('cpython-'): - ABI = ABI.replace('cpython-', 'cp').split('-')[0] -else: - def _derive_abi(): - parts = ['cp', VER_SUFFIX] - if sysconfig.get_config_var('Py_DEBUG'): - parts.append('d') - if sysconfig.get_config_var('WITH_PYMALLOC'): - parts.append('m') - if sysconfig.get_config_var('Py_UNICODE_SIZE') == 4: - parts.append('u') - return ''.join(parts) - ABI = _derive_abi() - del _derive_abi - -FILENAME_RE = re.compile(r''' -(?P[^-]+) --(?P\d+[^-]*) -(-(?P\d+[^-]*))? --(?P\w+\d+(\.\w+\d+)*) --(?P\w+) --(?P\w+(\.\w+)*) -\.whl$ -''', re.IGNORECASE | re.VERBOSE) - -NAME_VERSION_RE = re.compile(r''' -(?P[^-]+) --(?P\d+[^-]*) -(-(?P\d+[^-]*))?$ -''', re.IGNORECASE | re.VERBOSE) - -SHEBANG_RE = re.compile(br'\s*#![^\r\n]*') -SHEBANG_DETAIL_RE = re.compile(br'^(\s*#!("[^"]+"|\S+))\s+(.*)$') -SHEBANG_PYTHON = b'#!python' -SHEBANG_PYTHONW = b'#!pythonw' - -if os.sep == '/': - to_posix = lambda o: o -else: - to_posix = lambda o: o.replace(os.sep, '/') - - -class Mounter(object): - def __init__(self): - self.impure_wheels = {} - self.libs = {} - - def add(self, pathname, extensions): - self.impure_wheels[pathname] = extensions - self.libs.update(extensions) - - def remove(self, pathname): - extensions = self.impure_wheels.pop(pathname) - for k, v in extensions: - if k in self.libs: - del self.libs[k] - - def find_module(self, fullname, path=None): - if fullname in self.libs: - result = self - else: - result = None - return result - - def load_module(self, fullname): - if fullname in sys.modules: - result = sys.modules[fullname] - else: - if fullname not in self.libs: - raise ImportError('unable to find extension for %s' % fullname) - result = imp.load_dynamic(fullname, self.libs[fullname]) - result.__loader__ = self - parts = fullname.rsplit('.', 1) - if len(parts) > 1: - result.__package__ = parts[0] - return result - -_hook = Mounter() - - -class Wheel(object): - """ - Class to build and install from Wheel files (PEP 427). - """ - - wheel_version = (1, 1) - hash_kind = 'sha256' - - def __init__(self, filename=None, sign=False, verify=False): - """ - Initialise an instance using a (valid) filename. - """ - self.sign = sign - self.should_verify = verify - self.buildver = '' - self.pyver = [PYVER] - self.abi = ['none'] - self.arch = ['any'] - self.dirname = os.getcwd() - if filename is None: - self.name = 'dummy' - self.version = '0.1' - self._filename = self.filename - else: - m = NAME_VERSION_RE.match(filename) - if m: - info = m.groupdict('') - self.name = info['nm'] - # Reinstate the local version separator - self.version = info['vn'].replace('_', '-') - self.buildver = info['bn'] - self._filename = self.filename - else: - dirname, filename = os.path.split(filename) - m = FILENAME_RE.match(filename) - if not m: - raise DistlibException('Invalid name or ' - 'filename: %r' % filename) - if dirname: - self.dirname = os.path.abspath(dirname) - self._filename = filename - info = m.groupdict('') - self.name = info['nm'] - self.version = info['vn'] - self.buildver = info['bn'] - self.pyver = info['py'].split('.') - self.abi = info['bi'].split('.') - self.arch = info['ar'].split('.') - - @property - def filename(self): - """ - Build and return a filename from the various components. - """ - if self.buildver: - buildver = '-' + self.buildver - else: - buildver = '' - pyver = '.'.join(self.pyver) - abi = '.'.join(self.abi) - arch = '.'.join(self.arch) - # replace - with _ as a local version separator - version = self.version.replace('-', '_') - return '%s-%s%s-%s-%s-%s.whl' % (self.name, version, buildver, - pyver, abi, arch) - - @property - def exists(self): - path = os.path.join(self.dirname, self.filename) - return os.path.isfile(path) - - @property - def tags(self): - for pyver in self.pyver: - for abi in self.abi: - for arch in self.arch: - yield pyver, abi, arch - - @cached_property - def metadata(self): - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - wrapper = codecs.getreader('utf-8') - with ZipFile(pathname, 'r') as zf: - wheel_metadata = self.get_wheel_metadata(zf) - wv = wheel_metadata['Wheel-Version'].split('.', 1) - file_version = tuple([int(i) for i in wv]) - # if file_version < (1, 1): - # fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME, - # LEGACY_METADATA_FILENAME] - # else: - # fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME] - fns = [WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME] - result = None - for fn in fns: - try: - metadata_filename = posixpath.join(info_dir, fn) - with zf.open(metadata_filename) as bf: - wf = wrapper(bf) - result = Metadata(fileobj=wf) - if result: - break - except KeyError: - pass - if not result: - raise ValueError('Invalid wheel, because metadata is ' - 'missing: looked in %s' % ', '.join(fns)) - return result - - def get_wheel_metadata(self, zf): - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - metadata_filename = posixpath.join(info_dir, 'WHEEL') - with zf.open(metadata_filename) as bf: - wf = codecs.getreader('utf-8')(bf) - message = message_from_file(wf) - return dict(message) - - @cached_property - def info(self): - pathname = os.path.join(self.dirname, self.filename) - with ZipFile(pathname, 'r') as zf: - result = self.get_wheel_metadata(zf) - return result - - def process_shebang(self, data): - m = SHEBANG_RE.match(data) - if m: - end = m.end() - shebang, data_after_shebang = data[:end], data[end:] - # Preserve any arguments after the interpreter - if b'pythonw' in shebang.lower(): - shebang_python = SHEBANG_PYTHONW - else: - shebang_python = SHEBANG_PYTHON - m = SHEBANG_DETAIL_RE.match(shebang) - if m: - args = b' ' + m.groups()[-1] - else: - args = b'' - shebang = shebang_python + args - data = shebang + data_after_shebang - else: - cr = data.find(b'\r') - lf = data.find(b'\n') - if cr < 0 or cr > lf: - term = b'\n' - else: - if data[cr:cr + 2] == b'\r\n': - term = b'\r\n' - else: - term = b'\r' - data = SHEBANG_PYTHON + term + data - return data - - def get_hash(self, data, hash_kind=None): - if hash_kind is None: - hash_kind = self.hash_kind - try: - hasher = getattr(hashlib, hash_kind) - except AttributeError: - raise DistlibException('Unsupported hash algorithm: %r' % hash_kind) - result = hasher(data).digest() - result = base64.urlsafe_b64encode(result).rstrip(b'=').decode('ascii') - return hash_kind, result - - def write_record(self, records, record_path, base): - records = list(records) # make a copy, as mutated - p = to_posix(os.path.relpath(record_path, base)) - records.append((p, '', '')) - with CSVWriter(record_path) as writer: - for row in records: - writer.writerow(row) - - def write_records(self, info, libdir, archive_paths): - records = [] - distinfo, info_dir = info - hasher = getattr(hashlib, self.hash_kind) - for ap, p in archive_paths: - with open(p, 'rb') as f: - data = f.read() - digest = '%s=%s' % self.get_hash(data) - size = os.path.getsize(p) - records.append((ap, digest, size)) - - p = os.path.join(distinfo, 'RECORD') - self.write_record(records, p, libdir) - ap = to_posix(os.path.join(info_dir, 'RECORD')) - archive_paths.append((ap, p)) - - def build_zip(self, pathname, archive_paths): - with ZipFile(pathname, 'w', zipfile.ZIP_DEFLATED) as zf: - for ap, p in archive_paths: - logger.debug('Wrote %s to %s in wheel', p, ap) - zf.write(p, ap) - - def build(self, paths, tags=None, wheel_version=None): - """ - Build a wheel from files in specified paths, and use any specified tags - when determining the name of the wheel. - """ - if tags is None: - tags = {} - - libkey = list(filter(lambda o: o in paths, ('purelib', 'platlib')))[0] - if libkey == 'platlib': - is_pure = 'false' - default_pyver = [IMPVER] - default_abi = [ABI] - default_arch = [ARCH] - else: - is_pure = 'true' - default_pyver = [PYVER] - default_abi = ['none'] - default_arch = ['any'] - - self.pyver = tags.get('pyver', default_pyver) - self.abi = tags.get('abi', default_abi) - self.arch = tags.get('arch', default_arch) - - libdir = paths[libkey] - - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver - - archive_paths = [] - - # First, stuff which is not in site-packages - for key in ('data', 'headers', 'scripts'): - if key not in paths: - continue - path = paths[key] - if os.path.isdir(path): - for root, dirs, files in os.walk(path): - for fn in files: - p = fsdecode(os.path.join(root, fn)) - rp = os.path.relpath(p, path) - ap = to_posix(os.path.join(data_dir, key, rp)) - archive_paths.append((ap, p)) - if key == 'scripts' and not p.endswith('.exe'): - with open(p, 'rb') as f: - data = f.read() - data = self.process_shebang(data) - with open(p, 'wb') as f: - f.write(data) - - # Now, stuff which is in site-packages, other than the - # distinfo stuff. - path = libdir - distinfo = None - for root, dirs, files in os.walk(path): - if root == path: - # At the top level only, save distinfo for later - # and skip it for now - for i, dn in enumerate(dirs): - dn = fsdecode(dn) - if dn.endswith('.dist-info'): - distinfo = os.path.join(root, dn) - del dirs[i] - break - assert distinfo, '.dist-info directory expected, not found' - - for fn in files: - # comment out next suite to leave .pyc files in - if fsdecode(fn).endswith(('.pyc', '.pyo')): - continue - p = os.path.join(root, fn) - rp = to_posix(os.path.relpath(p, path)) - archive_paths.append((rp, p)) - - # Now distinfo. Assumed to be flat, i.e. os.listdir is enough. - files = os.listdir(distinfo) - for fn in files: - if fn not in ('RECORD', 'INSTALLER', 'SHARED', 'WHEEL'): - p = fsdecode(os.path.join(distinfo, fn)) - ap = to_posix(os.path.join(info_dir, fn)) - archive_paths.append((ap, p)) - - wheel_metadata = [ - 'Wheel-Version: %d.%d' % (wheel_version or self.wheel_version), - 'Generator: distlib %s' % __version__, - 'Root-Is-Purelib: %s' % is_pure, - ] - for pyver, abi, arch in self.tags: - wheel_metadata.append('Tag: %s-%s-%s' % (pyver, abi, arch)) - p = os.path.join(distinfo, 'WHEEL') - with open(p, 'w') as f: - f.write('\n'.join(wheel_metadata)) - ap = to_posix(os.path.join(info_dir, 'WHEEL')) - archive_paths.append((ap, p)) - - # sort the entries by archive path. Not needed by any spec, but it - # keeps the archive listing and RECORD tidier than they would otherwise - # be. Use the number of path segments to keep directory entries together, - # and keep the dist-info stuff at the end. - def sorter(t): - ap = t[0] - n = ap.count('/') - if '.dist-info' in ap: - n += 10000 - return (n, ap) - archive_paths = sorted(archive_paths, key=sorter) - - # Now, at last, RECORD. - # Paths in here are archive paths - nothing else makes sense. - self.write_records((distinfo, info_dir), libdir, archive_paths) - # Now, ready to build the zip file - pathname = os.path.join(self.dirname, self.filename) - self.build_zip(pathname, archive_paths) - return pathname - - def skip_entry(self, arcname): - """ - Determine whether an archive entry should be skipped when verifying - or installing. - """ - # The signature file won't be in RECORD, - # and we don't currently don't do anything with it - # We also skip directories, as they won't be in RECORD - # either. See: - # - # https://github.com/pypa/wheel/issues/294 - # https://github.com/pypa/wheel/issues/287 - # https://github.com/pypa/wheel/pull/289 - # - return arcname.endswith(('/', '/RECORD.jws')) - - def install(self, paths, maker, **kwargs): - """ - Install a wheel to the specified paths. If kwarg ``warner`` is - specified, it should be a callable, which will be called with two - tuples indicating the wheel version of this software and the wheel - version in the file, if there is a discrepancy in the versions. - This can be used to issue any warnings to raise any exceptions. - If kwarg ``lib_only`` is True, only the purelib/platlib files are - installed, and the headers, scripts, data and dist-info metadata are - not written. If kwarg ``bytecode_hashed_invalidation`` is True, written - bytecode will try to use file-hash based invalidation (PEP-552) on - supported interpreter versions (CPython 2.7+). - - The return value is a :class:`InstalledDistribution` instance unless - ``options.lib_only`` is True, in which case the return value is ``None``. - """ - - dry_run = maker.dry_run - warner = kwargs.get('warner') - lib_only = kwargs.get('lib_only', False) - bc_hashed_invalidation = kwargs.get('bytecode_hashed_invalidation', False) - - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver - - metadata_name = posixpath.join(info_dir, LEGACY_METADATA_FILENAME) - wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') - record_name = posixpath.join(info_dir, 'RECORD') - - wrapper = codecs.getreader('utf-8') - - with ZipFile(pathname, 'r') as zf: - with zf.open(wheel_metadata_name) as bwf: - wf = wrapper(bwf) - message = message_from_file(wf) - wv = message['Wheel-Version'].split('.', 1) - file_version = tuple([int(i) for i in wv]) - if (file_version != self.wheel_version) and warner: - warner(self.wheel_version, file_version) - - if message['Root-Is-Purelib'] == 'true': - libdir = paths['purelib'] - else: - libdir = paths['platlib'] - - records = {} - with zf.open(record_name) as bf: - with CSVReader(stream=bf) as reader: - for row in reader: - p = row[0] - records[p] = row - - data_pfx = posixpath.join(data_dir, '') - info_pfx = posixpath.join(info_dir, '') - script_pfx = posixpath.join(data_dir, 'scripts', '') - - # make a new instance rather than a copy of maker's, - # as we mutate it - fileop = FileOperator(dry_run=dry_run) - fileop.record = True # so we can rollback if needed - - bc = not sys.dont_write_bytecode # Double negatives. Lovely! - - outfiles = [] # for RECORD writing - - # for script copying/shebang processing - workdir = tempfile.mkdtemp() - # set target dir later - # we default add_launchers to False, as the - # Python Launcher should be used instead - maker.source_dir = workdir - maker.target_dir = None - try: - for zinfo in zf.infolist(): - arcname = zinfo.filename - if isinstance(arcname, text_type): - u_arcname = arcname - else: - u_arcname = arcname.decode('utf-8') - if self.skip_entry(u_arcname): - continue - row = records[u_arcname] - if row[2] and str(zinfo.file_size) != row[2]: - raise DistlibException('size mismatch for ' - '%s' % u_arcname) - if row[1]: - kind, value = row[1].split('=', 1) - with zf.open(arcname) as bf: - data = bf.read() - _, digest = self.get_hash(data, kind) - if digest != value: - raise DistlibException('digest mismatch for ' - '%s' % arcname) - - if lib_only and u_arcname.startswith((info_pfx, data_pfx)): - logger.debug('lib_only: skipping %s', u_arcname) - continue - is_script = (u_arcname.startswith(script_pfx) - and not u_arcname.endswith('.exe')) - - if u_arcname.startswith(data_pfx): - _, where, rp = u_arcname.split('/', 2) - outfile = os.path.join(paths[where], convert_path(rp)) - else: - # meant for site-packages. - if u_arcname in (wheel_metadata_name, record_name): - continue - outfile = os.path.join(libdir, convert_path(u_arcname)) - if not is_script: - with zf.open(arcname) as bf: - fileop.copy_stream(bf, outfile) - # Issue #147: permission bits aren't preserved. Using - # zf.extract(zinfo, libdir) should have worked, but didn't, - # see https://www.thetopsites.net/article/53834422.shtml - # So ... manually preserve permission bits as given in zinfo - if os.name == 'posix': - # just set the normal permission bits - os.chmod(outfile, (zinfo.external_attr >> 16) & 0x1FF) - outfiles.append(outfile) - # Double check the digest of the written file - if not dry_run and row[1]: - with open(outfile, 'rb') as bf: - data = bf.read() - _, newdigest = self.get_hash(data, kind) - if newdigest != digest: - raise DistlibException('digest mismatch ' - 'on write for ' - '%s' % outfile) - if bc and outfile.endswith('.py'): - try: - pyc = fileop.byte_compile(outfile, - hashed_invalidation=bc_hashed_invalidation) - outfiles.append(pyc) - except Exception: - # Don't give up if byte-compilation fails, - # but log it and perhaps warn the user - logger.warning('Byte-compilation failed', - exc_info=True) - else: - fn = os.path.basename(convert_path(arcname)) - workname = os.path.join(workdir, fn) - with zf.open(arcname) as bf: - fileop.copy_stream(bf, workname) - - dn, fn = os.path.split(outfile) - maker.target_dir = dn - filenames = maker.make(fn) - fileop.set_executable_mode(filenames) - outfiles.extend(filenames) - - if lib_only: - logger.debug('lib_only: returning None') - dist = None - else: - # Generate scripts - - # Try to get pydist.json so we can see if there are - # any commands to generate. If this fails (e.g. because - # of a legacy wheel), log a warning but don't give up. - commands = None - file_version = self.info['Wheel-Version'] - if file_version == '1.0': - # Use legacy info - ep = posixpath.join(info_dir, 'entry_points.txt') - try: - with zf.open(ep) as bwf: - epdata = read_exports(bwf) - commands = {} - for key in ('console', 'gui'): - k = '%s_scripts' % key - if k in epdata: - commands['wrap_%s' % key] = d = {} - for v in epdata[k].values(): - s = '%s:%s' % (v.prefix, v.suffix) - if v.flags: - s += ' [%s]' % ','.join(v.flags) - d[v.name] = s - except Exception: - logger.warning('Unable to read legacy script ' - 'metadata, so cannot generate ' - 'scripts') - else: - try: - with zf.open(metadata_name) as bwf: - wf = wrapper(bwf) - commands = json.load(wf).get('extensions') - if commands: - commands = commands.get('python.commands') - except Exception: - logger.warning('Unable to read JSON metadata, so ' - 'cannot generate scripts') - if commands: - console_scripts = commands.get('wrap_console', {}) - gui_scripts = commands.get('wrap_gui', {}) - if console_scripts or gui_scripts: - script_dir = paths.get('scripts', '') - if not os.path.isdir(script_dir): - raise ValueError('Valid script path not ' - 'specified') - maker.target_dir = script_dir - for k, v in console_scripts.items(): - script = '%s = %s' % (k, v) - filenames = maker.make(script) - fileop.set_executable_mode(filenames) - - if gui_scripts: - options = {'gui': True } - for k, v in gui_scripts.items(): - script = '%s = %s' % (k, v) - filenames = maker.make(script, options) - fileop.set_executable_mode(filenames) - - p = os.path.join(libdir, info_dir) - dist = InstalledDistribution(p) - - # Write SHARED - paths = dict(paths) # don't change passed in dict - del paths['purelib'] - del paths['platlib'] - paths['lib'] = libdir - p = dist.write_shared_locations(paths, dry_run) - if p: - outfiles.append(p) - - # Write RECORD - dist.write_installed_files(outfiles, paths['prefix'], - dry_run) - return dist - except Exception: # pragma: no cover - logger.exception('installation failed.') - fileop.rollback() - raise - finally: - shutil.rmtree(workdir) - - def _get_dylib_cache(self): - global cache - if cache is None: - # Use native string to avoid issues on 2.x: see Python #20140. - base = os.path.join(get_cache_base(), str('dylib-cache'), - '%s.%s' % sys.version_info[:2]) - cache = Cache(base) - return cache - - def _get_extensions(self): - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - arcname = posixpath.join(info_dir, 'EXTENSIONS') - wrapper = codecs.getreader('utf-8') - result = [] - with ZipFile(pathname, 'r') as zf: - try: - with zf.open(arcname) as bf: - wf = wrapper(bf) - extensions = json.load(wf) - cache = self._get_dylib_cache() - prefix = cache.prefix_to_dir(pathname) - cache_base = os.path.join(cache.base, prefix) - if not os.path.isdir(cache_base): - os.makedirs(cache_base) - for name, relpath in extensions.items(): - dest = os.path.join(cache_base, convert_path(relpath)) - if not os.path.exists(dest): - extract = True - else: - file_time = os.stat(dest).st_mtime - file_time = datetime.datetime.fromtimestamp(file_time) - info = zf.getinfo(relpath) - wheel_time = datetime.datetime(*info.date_time) - extract = wheel_time > file_time - if extract: - zf.extract(relpath, cache_base) - result.append((name, dest)) - except KeyError: - pass - return result - - def is_compatible(self): - """ - Determine if a wheel is compatible with the running system. - """ - return is_compatible(self) - - def is_mountable(self): - """ - Determine if a wheel is asserted as mountable by its metadata. - """ - return True # for now - metadata details TBD - - def mount(self, append=False): - pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) - if not self.is_compatible(): - msg = 'Wheel %s not compatible with this Python.' % pathname - raise DistlibException(msg) - if not self.is_mountable(): - msg = 'Wheel %s is marked as not mountable.' % pathname - raise DistlibException(msg) - if pathname in sys.path: - logger.debug('%s already in path', pathname) - else: - if append: - sys.path.append(pathname) - else: - sys.path.insert(0, pathname) - extensions = self._get_extensions() - if extensions: - if _hook not in sys.meta_path: - sys.meta_path.append(_hook) - _hook.add(pathname, extensions) - - def unmount(self): - pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) - if pathname not in sys.path: - logger.debug('%s not in path', pathname) - else: - sys.path.remove(pathname) - if pathname in _hook.impure_wheels: - _hook.remove(pathname) - if not _hook.impure_wheels: - if _hook in sys.meta_path: - sys.meta_path.remove(_hook) - - def verify(self): - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver - - metadata_name = posixpath.join(info_dir, LEGACY_METADATA_FILENAME) - wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') - record_name = posixpath.join(info_dir, 'RECORD') - - wrapper = codecs.getreader('utf-8') - - with ZipFile(pathname, 'r') as zf: - with zf.open(wheel_metadata_name) as bwf: - wf = wrapper(bwf) - message = message_from_file(wf) - wv = message['Wheel-Version'].split('.', 1) - file_version = tuple([int(i) for i in wv]) - # TODO version verification - - records = {} - with zf.open(record_name) as bf: - with CSVReader(stream=bf) as reader: - for row in reader: - p = row[0] - records[p] = row - - for zinfo in zf.infolist(): - arcname = zinfo.filename - if isinstance(arcname, text_type): - u_arcname = arcname - else: - u_arcname = arcname.decode('utf-8') - # See issue #115: some wheels have .. in their entries, but - # in the filename ... e.g. __main__..py ! So the check is - # updated to look for .. in the directory portions - p = u_arcname.split('/') - if '..' in p: - raise DistlibException('invalid entry in ' - 'wheel: %r' % u_arcname) - - if self.skip_entry(u_arcname): - continue - row = records[u_arcname] - if row[2] and str(zinfo.file_size) != row[2]: - raise DistlibException('size mismatch for ' - '%s' % u_arcname) - if row[1]: - kind, value = row[1].split('=', 1) - with zf.open(arcname) as bf: - data = bf.read() - _, digest = self.get_hash(data, kind) - if digest != value: - raise DistlibException('digest mismatch for ' - '%s' % arcname) - - def update(self, modifier, dest_dir=None, **kwargs): - """ - Update the contents of a wheel in a generic way. The modifier should - be a callable which expects a dictionary argument: its keys are - archive-entry paths, and its values are absolute filesystem paths - where the contents the corresponding archive entries can be found. The - modifier is free to change the contents of the files pointed to, add - new entries and remove entries, before returning. This method will - extract the entire contents of the wheel to a temporary location, call - the modifier, and then use the passed (and possibly updated) - dictionary to write a new wheel. If ``dest_dir`` is specified, the new - wheel is written there -- otherwise, the original wheel is overwritten. - - The modifier should return True if it updated the wheel, else False. - This method returns the same value the modifier returns. - """ - - def get_version(path_map, info_dir): - version = path = None - key = '%s/%s' % (info_dir, LEGACY_METADATA_FILENAME) - if key not in path_map: - key = '%s/PKG-INFO' % info_dir - if key in path_map: - path = path_map[key] - version = Metadata(path=path).version - return version, path - - def update_version(version, path): - updated = None - try: - v = NormalizedVersion(version) - i = version.find('-') - if i < 0: - updated = '%s+1' % version - else: - parts = [int(s) for s in version[i + 1:].split('.')] - parts[-1] += 1 - updated = '%s+%s' % (version[:i], - '.'.join(str(i) for i in parts)) - except UnsupportedVersionError: - logger.debug('Cannot update non-compliant (PEP-440) ' - 'version %r', version) - if updated: - md = Metadata(path=path) - md.version = updated - legacy = path.endswith(LEGACY_METADATA_FILENAME) - md.write(path=path, legacy=legacy) - logger.debug('Version updated from %r to %r', version, - updated) - - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - record_name = posixpath.join(info_dir, 'RECORD') - with tempdir() as workdir: - with ZipFile(pathname, 'r') as zf: - path_map = {} - for zinfo in zf.infolist(): - arcname = zinfo.filename - if isinstance(arcname, text_type): - u_arcname = arcname - else: - u_arcname = arcname.decode('utf-8') - if u_arcname == record_name: - continue - if '..' in u_arcname: - raise DistlibException('invalid entry in ' - 'wheel: %r' % u_arcname) - zf.extract(zinfo, workdir) - path = os.path.join(workdir, convert_path(u_arcname)) - path_map[u_arcname] = path - - # Remember the version. - original_version, _ = get_version(path_map, info_dir) - # Files extracted. Call the modifier. - modified = modifier(path_map, **kwargs) - if modified: - # Something changed - need to build a new wheel. - current_version, path = get_version(path_map, info_dir) - if current_version and (current_version == original_version): - # Add or update local version to signify changes. - update_version(current_version, path) - # Decide where the new wheel goes. - if dest_dir is None: - fd, newpath = tempfile.mkstemp(suffix='.whl', - prefix='wheel-update-', - dir=workdir) - os.close(fd) - else: - if not os.path.isdir(dest_dir): - raise DistlibException('Not a directory: %r' % dest_dir) - newpath = os.path.join(dest_dir, self.filename) - archive_paths = list(path_map.items()) - distinfo = os.path.join(workdir, info_dir) - info = distinfo, info_dir - self.write_records(info, workdir, archive_paths) - self.build_zip(newpath, archive_paths) - if dest_dir is None: - shutil.copyfile(newpath, pathname) - return modified - -def _get_glibc_version(): - import platform - ver = platform.libc_ver() - result = [] - if ver[0] == 'glibc': - for s in ver[1].split('.'): - result.append(int(s) if s.isdigit() else 0) - result = tuple(result) - return result - -def compatible_tags(): - """ - Return (pyver, abi, arch) tuples compatible with this Python. - """ - versions = [VER_SUFFIX] - major = VER_SUFFIX[0] - for minor in range(sys.version_info[1] - 1, - 1, -1): - versions.append(''.join([major, str(minor)])) - - abis = [] - for suffix, _, _ in imp.get_suffixes(): - if suffix.startswith('.abi'): - abis.append(suffix.split('.', 2)[1]) - abis.sort() - if ABI != 'none': - abis.insert(0, ABI) - abis.append('none') - result = [] - - arches = [ARCH] - if sys.platform == 'darwin': - m = re.match(r'(\w+)_(\d+)_(\d+)_(\w+)$', ARCH) - if m: - name, major, minor, arch = m.groups() - minor = int(minor) - matches = [arch] - if arch in ('i386', 'ppc'): - matches.append('fat') - if arch in ('i386', 'ppc', 'x86_64'): - matches.append('fat3') - if arch in ('ppc64', 'x86_64'): - matches.append('fat64') - if arch in ('i386', 'x86_64'): - matches.append('intel') - if arch in ('i386', 'x86_64', 'intel', 'ppc', 'ppc64'): - matches.append('universal') - while minor >= 0: - for match in matches: - s = '%s_%s_%s_%s' % (name, major, minor, match) - if s != ARCH: # already there - arches.append(s) - minor -= 1 - - # Most specific - our Python version, ABI and arch - for abi in abis: - for arch in arches: - result.append((''.join((IMP_PREFIX, versions[0])), abi, arch)) - # manylinux - if abi != 'none' and sys.platform.startswith('linux'): - arch = arch.replace('linux_', '') - parts = _get_glibc_version() - if len(parts) == 2: - if parts >= (2, 5): - result.append((''.join((IMP_PREFIX, versions[0])), abi, - 'manylinux1_%s' % arch)) - if parts >= (2, 12): - result.append((''.join((IMP_PREFIX, versions[0])), abi, - 'manylinux2010_%s' % arch)) - if parts >= (2, 17): - result.append((''.join((IMP_PREFIX, versions[0])), abi, - 'manylinux2014_%s' % arch)) - result.append((''.join((IMP_PREFIX, versions[0])), abi, - 'manylinux_%s_%s_%s' % (parts[0], parts[1], - arch))) - - # where no ABI / arch dependency, but IMP_PREFIX dependency - for i, version in enumerate(versions): - result.append((''.join((IMP_PREFIX, version)), 'none', 'any')) - if i == 0: - result.append((''.join((IMP_PREFIX, version[0])), 'none', 'any')) - - # no IMP_PREFIX, ABI or arch dependency - for i, version in enumerate(versions): - result.append((''.join(('py', version)), 'none', 'any')) - if i == 0: - result.append((''.join(('py', version[0])), 'none', 'any')) - - return set(result) - - -COMPATIBLE_TAGS = compatible_tags() - -del compatible_tags - - -def is_compatible(wheel, tags=None): - if not isinstance(wheel, Wheel): - wheel = Wheel(wheel) # assume it's a filename - result = False - if tags is None: - tags = COMPATIBLE_TAGS - for ver, abi, arch in tags: - if ver in wheel.pyver and abi in wheel.abi and arch in wheel.arch: - result = True - break - return result diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/distro.py b/.venv/lib/python3.9/site-packages/pip/_vendor/distro.py deleted file mode 100644 index 7892741..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/distro.py +++ /dev/null @@ -1,1386 +0,0 @@ -# Copyright 2015,2016,2017 Nir Cohen -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -The ``distro`` package (``distro`` stands for Linux Distribution) provides -information about the Linux distribution it runs on, such as a reliable -machine-readable distro ID, or version information. - -It is the recommended replacement for Python's original -:py:func:`platform.linux_distribution` function, but it provides much more -functionality. An alternative implementation became necessary because Python -3.5 deprecated this function, and Python 3.8 removed it altogether. Its -predecessor function :py:func:`platform.dist` was already deprecated since -Python 2.6 and removed in Python 3.8. Still, there are many cases in which -access to OS distribution information is needed. See `Python issue 1322 -`_ for more information. -""" - -import argparse -import json -import logging -import os -import re -import shlex -import subprocess -import sys -import warnings - -__version__ = "1.6.0" - -# Use `if False` to avoid an ImportError on Python 2. After dropping Python 2 -# support, can use typing.TYPE_CHECKING instead. See: -# https://docs.python.org/3/library/typing.html#typing.TYPE_CHECKING -if False: # pragma: nocover - from typing import ( - Any, - Callable, - Dict, - Iterable, - Optional, - Sequence, - TextIO, - Tuple, - Type, - TypedDict, - Union, - ) - - VersionDict = TypedDict( - "VersionDict", {"major": str, "minor": str, "build_number": str} - ) - InfoDict = TypedDict( - "InfoDict", - { - "id": str, - "version": str, - "version_parts": VersionDict, - "like": str, - "codename": str, - }, - ) - - -_UNIXCONFDIR = os.environ.get("UNIXCONFDIR", "/etc") -_UNIXUSRLIBDIR = os.environ.get("UNIXUSRLIBDIR", "/usr/lib") -_OS_RELEASE_BASENAME = "os-release" - -#: Translation table for normalizing the "ID" attribute defined in os-release -#: files, for use by the :func:`distro.id` method. -#: -#: * Key: Value as defined in the os-release file, translated to lower case, -#: with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_OS_ID = { - "ol": "oracle", # Oracle Linux -} - -#: Translation table for normalizing the "Distributor ID" attribute returned by -#: the lsb_release command, for use by the :func:`distro.id` method. -#: -#: * Key: Value as returned by the lsb_release command, translated to lower -#: case, with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_LSB_ID = { - "enterpriseenterpriseas": "oracle", # Oracle Enterprise Linux 4 - "enterpriseenterpriseserver": "oracle", # Oracle Linux 5 - "redhatenterpriseworkstation": "rhel", # RHEL 6, 7 Workstation - "redhatenterpriseserver": "rhel", # RHEL 6, 7 Server - "redhatenterprisecomputenode": "rhel", # RHEL 6 ComputeNode -} - -#: Translation table for normalizing the distro ID derived from the file name -#: of distro release files, for use by the :func:`distro.id` method. -#: -#: * Key: Value as derived from the file name of a distro release file, -#: translated to lower case, with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_DISTRO_ID = { - "redhat": "rhel", # RHEL 6.x, 7.x -} - -# Pattern for content of distro release file (reversed) -_DISTRO_RELEASE_CONTENT_REVERSED_PATTERN = re.compile( - r"(?:[^)]*\)(.*)\()? *(?:STL )?([\d.+\-a-z]*\d) *(?:esaeler *)?(.+)" -) - -# Pattern for base file name of distro release file -_DISTRO_RELEASE_BASENAME_PATTERN = re.compile(r"(\w+)[-_](release|version)$") - -# Base file names to be ignored when searching for distro release file -_DISTRO_RELEASE_IGNORE_BASENAMES = ( - "debian_version", - "lsb-release", - "oem-release", - _OS_RELEASE_BASENAME, - "system-release", - "plesk-release", - "iredmail-release", -) - - -def linux_distribution(full_distribution_name=True): - # type: (bool) -> Tuple[str, str, str] - """ - .. deprecated:: 1.6.0 - - :func:`distro.linux_distribution()` is deprecated. It should only be - used as a compatibility shim with Python's - :py:func:`platform.linux_distribution()`. Please use :func:`distro.id`, - :func:`distro.version` and :func:`distro.name` instead. - - Return information about the current OS distribution as a tuple - ``(id_name, version, codename)`` with items as follows: - - * ``id_name``: If *full_distribution_name* is false, the result of - :func:`distro.id`. Otherwise, the result of :func:`distro.name`. - - * ``version``: The result of :func:`distro.version`. - - * ``codename``: The result of :func:`distro.codename`. - - The interface of this function is compatible with the original - :py:func:`platform.linux_distribution` function, supporting a subset of - its parameters. - - The data it returns may not exactly be the same, because it uses more data - sources than the original function, and that may lead to different data if - the OS distribution is not consistent across multiple data sources it - provides (there are indeed such distributions ...). - - Another reason for differences is the fact that the :func:`distro.id` - method normalizes the distro ID string to a reliable machine-readable value - for a number of popular OS distributions. - """ - warnings.warn( - "distro.linux_distribution() is deprecated. It should only be used as a " - "compatibility shim with Python's platform.linux_distribution(). Please use " - "distro.id(), distro.version() and distro.name() instead.", - DeprecationWarning, - stacklevel=2, - ) - return _distro.linux_distribution(full_distribution_name) - - -def id(): - # type: () -> str - """ - Return the distro ID of the current distribution, as a - machine-readable string. - - For a number of OS distributions, the returned distro ID value is - *reliable*, in the sense that it is documented and that it does not change - across releases of the distribution. - - This package maintains the following reliable distro ID values: - - ============== ========================================= - Distro ID Distribution - ============== ========================================= - "ubuntu" Ubuntu - "debian" Debian - "rhel" RedHat Enterprise Linux - "centos" CentOS - "fedora" Fedora - "sles" SUSE Linux Enterprise Server - "opensuse" openSUSE - "amazon" Amazon Linux - "arch" Arch Linux - "cloudlinux" CloudLinux OS - "exherbo" Exherbo Linux - "gentoo" GenToo Linux - "ibm_powerkvm" IBM PowerKVM - "kvmibm" KVM for IBM z Systems - "linuxmint" Linux Mint - "mageia" Mageia - "mandriva" Mandriva Linux - "parallels" Parallels - "pidora" Pidora - "raspbian" Raspbian - "oracle" Oracle Linux (and Oracle Enterprise Linux) - "scientific" Scientific Linux - "slackware" Slackware - "xenserver" XenServer - "openbsd" OpenBSD - "netbsd" NetBSD - "freebsd" FreeBSD - "midnightbsd" MidnightBSD - ============== ========================================= - - If you have a need to get distros for reliable IDs added into this set, - or if you find that the :func:`distro.id` function returns a different - distro ID for one of the listed distros, please create an issue in the - `distro issue tracker`_. - - **Lookup hierarchy and transformations:** - - First, the ID is obtained from the following sources, in the specified - order. The first available and non-empty value is used: - - * the value of the "ID" attribute of the os-release file, - - * the value of the "Distributor ID" attribute returned by the lsb_release - command, - - * the first part of the file name of the distro release file, - - The so determined ID value then passes the following transformations, - before it is returned by this method: - - * it is translated to lower case, - - * blanks (which should not be there anyway) are translated to underscores, - - * a normalization of the ID is performed, based upon - `normalization tables`_. The purpose of this normalization is to ensure - that the ID is as reliable as possible, even across incompatible changes - in the OS distributions. A common reason for an incompatible change is - the addition of an os-release file, or the addition of the lsb_release - command, with ID values that differ from what was previously determined - from the distro release file name. - """ - return _distro.id() - - -def name(pretty=False): - # type: (bool) -> str - """ - Return the name of the current OS distribution, as a human-readable - string. - - If *pretty* is false, the name is returned without version or codename. - (e.g. "CentOS Linux") - - If *pretty* is true, the version and codename are appended. - (e.g. "CentOS Linux 7.1.1503 (Core)") - - **Lookup hierarchy:** - - The name is obtained from the following sources, in the specified order. - The first available and non-empty value is used: - - * If *pretty* is false: - - - the value of the "NAME" attribute of the os-release file, - - - the value of the "Distributor ID" attribute returned by the lsb_release - command, - - - the value of the "" field of the distro release file. - - * If *pretty* is true: - - - the value of the "PRETTY_NAME" attribute of the os-release file, - - - the value of the "Description" attribute returned by the lsb_release - command, - - - the value of the "" field of the distro release file, appended - with the value of the pretty version ("" and "" - fields) of the distro release file, if available. - """ - return _distro.name(pretty) - - -def version(pretty=False, best=False): - # type: (bool, bool) -> str - """ - Return the version of the current OS distribution, as a human-readable - string. - - If *pretty* is false, the version is returned without codename (e.g. - "7.0"). - - If *pretty* is true, the codename in parenthesis is appended, if the - codename is non-empty (e.g. "7.0 (Maipo)"). - - Some distributions provide version numbers with different precisions in - the different sources of distribution information. Examining the different - sources in a fixed priority order does not always yield the most precise - version (e.g. for Debian 8.2, or CentOS 7.1). - - The *best* parameter can be used to control the approach for the returned - version: - - If *best* is false, the first non-empty version number in priority order of - the examined sources is returned. - - If *best* is true, the most precise version number out of all examined - sources is returned. - - **Lookup hierarchy:** - - In all cases, the version number is obtained from the following sources. - If *best* is false, this order represents the priority order: - - * the value of the "VERSION_ID" attribute of the os-release file, - * the value of the "Release" attribute returned by the lsb_release - command, - * the version number parsed from the "" field of the first line - of the distro release file, - * the version number parsed from the "PRETTY_NAME" attribute of the - os-release file, if it follows the format of the distro release files. - * the version number parsed from the "Description" attribute returned by - the lsb_release command, if it follows the format of the distro release - files. - """ - return _distro.version(pretty, best) - - -def version_parts(best=False): - # type: (bool) -> Tuple[str, str, str] - """ - Return the version of the current OS distribution as a tuple - ``(major, minor, build_number)`` with items as follows: - - * ``major``: The result of :func:`distro.major_version`. - - * ``minor``: The result of :func:`distro.minor_version`. - - * ``build_number``: The result of :func:`distro.build_number`. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.version_parts(best) - - -def major_version(best=False): - # type: (bool) -> str - """ - Return the major version of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The major version is the first - part of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.major_version(best) - - -def minor_version(best=False): - # type: (bool) -> str - """ - Return the minor version of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The minor version is the second - part of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.minor_version(best) - - -def build_number(best=False): - # type: (bool) -> str - """ - Return the build number of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The build number is the third part - of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.build_number(best) - - -def like(): - # type: () -> str - """ - Return a space-separated list of distro IDs of distributions that are - closely related to the current OS distribution in regards to packaging - and programming interfaces, for example distributions the current - distribution is a derivative from. - - **Lookup hierarchy:** - - This information item is only provided by the os-release file. - For details, see the description of the "ID_LIKE" attribute in the - `os-release man page - `_. - """ - return _distro.like() - - -def codename(): - # type: () -> str - """ - Return the codename for the release of the current OS distribution, - as a string. - - If the distribution does not have a codename, an empty string is returned. - - Note that the returned codename is not always really a codename. For - example, openSUSE returns "x86_64". This function does not handle such - cases in any special way and just returns the string it finds, if any. - - **Lookup hierarchy:** - - * the codename within the "VERSION" attribute of the os-release file, if - provided, - - * the value of the "Codename" attribute returned by the lsb_release - command, - - * the value of the "" field of the distro release file. - """ - return _distro.codename() - - -def info(pretty=False, best=False): - # type: (bool, bool) -> InfoDict - """ - Return certain machine-readable information items about the current OS - distribution in a dictionary, as shown in the following example: - - .. sourcecode:: python - - { - 'id': 'rhel', - 'version': '7.0', - 'version_parts': { - 'major': '7', - 'minor': '0', - 'build_number': '' - }, - 'like': 'fedora', - 'codename': 'Maipo' - } - - The dictionary structure and keys are always the same, regardless of which - information items are available in the underlying data sources. The values - for the various keys are as follows: - - * ``id``: The result of :func:`distro.id`. - - * ``version``: The result of :func:`distro.version`. - - * ``version_parts -> major``: The result of :func:`distro.major_version`. - - * ``version_parts -> minor``: The result of :func:`distro.minor_version`. - - * ``version_parts -> build_number``: The result of - :func:`distro.build_number`. - - * ``like``: The result of :func:`distro.like`. - - * ``codename``: The result of :func:`distro.codename`. - - For a description of the *pretty* and *best* parameters, see the - :func:`distro.version` method. - """ - return _distro.info(pretty, best) - - -def os_release_info(): - # type: () -> Dict[str, str] - """ - Return a dictionary containing key-value pairs for the information items - from the os-release file data source of the current OS distribution. - - See `os-release file`_ for details about these information items. - """ - return _distro.os_release_info() - - -def lsb_release_info(): - # type: () -> Dict[str, str] - """ - Return a dictionary containing key-value pairs for the information items - from the lsb_release command data source of the current OS distribution. - - See `lsb_release command output`_ for details about these information - items. - """ - return _distro.lsb_release_info() - - -def distro_release_info(): - # type: () -> Dict[str, str] - """ - Return a dictionary containing key-value pairs for the information items - from the distro release file data source of the current OS distribution. - - See `distro release file`_ for details about these information items. - """ - return _distro.distro_release_info() - - -def uname_info(): - # type: () -> Dict[str, str] - """ - Return a dictionary containing key-value pairs for the information items - from the distro release file data source of the current OS distribution. - """ - return _distro.uname_info() - - -def os_release_attr(attribute): - # type: (str) -> str - """ - Return a single named information item from the os-release file data source - of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `os-release file`_ for details about these information items. - """ - return _distro.os_release_attr(attribute) - - -def lsb_release_attr(attribute): - # type: (str) -> str - """ - Return a single named information item from the lsb_release command output - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `lsb_release command output`_ for details about these information - items. - """ - return _distro.lsb_release_attr(attribute) - - -def distro_release_attr(attribute): - # type: (str) -> str - """ - Return a single named information item from the distro release file - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `distro release file`_ for details about these information items. - """ - return _distro.distro_release_attr(attribute) - - -def uname_attr(attribute): - # type: (str) -> str - """ - Return a single named information item from the distro release file - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - """ - return _distro.uname_attr(attribute) - - -try: - from functools import cached_property -except ImportError: - # Python < 3.8 - class cached_property(object): # type: ignore - """A version of @property which caches the value. On access, it calls the - underlying function and sets the value in `__dict__` so future accesses - will not re-call the property. - """ - - def __init__(self, f): - # type: (Callable[[Any], Any]) -> None - self._fname = f.__name__ - self._f = f - - def __get__(self, obj, owner): - # type: (Any, Type[Any]) -> Any - assert obj is not None, "call {} on an instance".format(self._fname) - ret = obj.__dict__[self._fname] = self._f(obj) - return ret - - -class LinuxDistribution(object): - """ - Provides information about a OS distribution. - - This package creates a private module-global instance of this class with - default initialization arguments, that is used by the - `consolidated accessor functions`_ and `single source accessor functions`_. - By using default initialization arguments, that module-global instance - returns data about the current OS distribution (i.e. the distro this - package runs on). - - Normally, it is not necessary to create additional instances of this class. - However, in situations where control is needed over the exact data sources - that are used, instances of this class can be created with a specific - distro release file, or a specific os-release file, or without invoking the - lsb_release command. - """ - - def __init__( - self, - include_lsb=True, - os_release_file="", - distro_release_file="", - include_uname=True, - root_dir=None, - ): - # type: (bool, str, str, bool, Optional[str]) -> None - """ - The initialization method of this class gathers information from the - available data sources, and stores that in private instance attributes. - Subsequent access to the information items uses these private instance - attributes, so that the data sources are read only once. - - Parameters: - - * ``include_lsb`` (bool): Controls whether the - `lsb_release command output`_ is included as a data source. - - If the lsb_release command is not available in the program execution - path, the data source for the lsb_release command will be empty. - - * ``os_release_file`` (string): The path name of the - `os-release file`_ that is to be used as a data source. - - An empty string (the default) will cause the default path name to - be used (see `os-release file`_ for details). - - If the specified or defaulted os-release file does not exist, the - data source for the os-release file will be empty. - - * ``distro_release_file`` (string): The path name of the - `distro release file`_ that is to be used as a data source. - - An empty string (the default) will cause a default search algorithm - to be used (see `distro release file`_ for details). - - If the specified distro release file does not exist, or if no default - distro release file can be found, the data source for the distro - release file will be empty. - - * ``include_uname`` (bool): Controls whether uname command output is - included as a data source. If the uname command is not available in - the program execution path the data source for the uname command will - be empty. - - * ``root_dir`` (string): The absolute path to the root directory to use - to find distro-related information files. - - Public instance attributes: - - * ``os_release_file`` (string): The path name of the - `os-release file`_ that is actually used as a data source. The - empty string if no distro release file is used as a data source. - - * ``distro_release_file`` (string): The path name of the - `distro release file`_ that is actually used as a data source. The - empty string if no distro release file is used as a data source. - - * ``include_lsb`` (bool): The result of the ``include_lsb`` parameter. - This controls whether the lsb information will be loaded. - - * ``include_uname`` (bool): The result of the ``include_uname`` - parameter. This controls whether the uname information will - be loaded. - - Raises: - - * :py:exc:`IOError`: Some I/O issue with an os-release file or distro - release file. - - * :py:exc:`subprocess.CalledProcessError`: The lsb_release command had - some issue (other than not being available in the program execution - path). - - * :py:exc:`UnicodeError`: A data source has unexpected characters or - uses an unexpected encoding. - """ - self.root_dir = root_dir - self.etc_dir = os.path.join(root_dir, "etc") if root_dir else _UNIXCONFDIR - self.usr_lib_dir = ( - os.path.join(root_dir, "usr/lib") if root_dir else _UNIXUSRLIBDIR - ) - - if os_release_file: - self.os_release_file = os_release_file - else: - etc_dir_os_release_file = os.path.join(self.etc_dir, _OS_RELEASE_BASENAME) - usr_lib_os_release_file = os.path.join( - self.usr_lib_dir, _OS_RELEASE_BASENAME - ) - - # NOTE: The idea is to respect order **and** have it set - # at all times for API backwards compatibility. - if os.path.isfile(etc_dir_os_release_file) or not os.path.isfile( - usr_lib_os_release_file - ): - self.os_release_file = etc_dir_os_release_file - else: - self.os_release_file = usr_lib_os_release_file - - self.distro_release_file = distro_release_file or "" # updated later - self.include_lsb = include_lsb - self.include_uname = include_uname - - def __repr__(self): - # type: () -> str - """Return repr of all info""" - return ( - "LinuxDistribution(" - "os_release_file={self.os_release_file!r}, " - "distro_release_file={self.distro_release_file!r}, " - "include_lsb={self.include_lsb!r}, " - "include_uname={self.include_uname!r}, " - "_os_release_info={self._os_release_info!r}, " - "_lsb_release_info={self._lsb_release_info!r}, " - "_distro_release_info={self._distro_release_info!r}, " - "_uname_info={self._uname_info!r})".format(self=self) - ) - - def linux_distribution(self, full_distribution_name=True): - # type: (bool) -> Tuple[str, str, str] - """ - Return information about the OS distribution that is compatible - with Python's :func:`platform.linux_distribution`, supporting a subset - of its parameters. - - For details, see :func:`distro.linux_distribution`. - """ - return ( - self.name() if full_distribution_name else self.id(), - self.version(), - self.codename(), - ) - - def id(self): - # type: () -> str - """Return the distro ID of the OS distribution, as a string. - - For details, see :func:`distro.id`. - """ - - def normalize(distro_id, table): - # type: (str, Dict[str, str]) -> str - distro_id = distro_id.lower().replace(" ", "_") - return table.get(distro_id, distro_id) - - distro_id = self.os_release_attr("id") - if distro_id: - return normalize(distro_id, NORMALIZED_OS_ID) - - distro_id = self.lsb_release_attr("distributor_id") - if distro_id: - return normalize(distro_id, NORMALIZED_LSB_ID) - - distro_id = self.distro_release_attr("id") - if distro_id: - return normalize(distro_id, NORMALIZED_DISTRO_ID) - - distro_id = self.uname_attr("id") - if distro_id: - return normalize(distro_id, NORMALIZED_DISTRO_ID) - - return "" - - def name(self, pretty=False): - # type: (bool) -> str - """ - Return the name of the OS distribution, as a string. - - For details, see :func:`distro.name`. - """ - name = ( - self.os_release_attr("name") - or self.lsb_release_attr("distributor_id") - or self.distro_release_attr("name") - or self.uname_attr("name") - ) - if pretty: - name = self.os_release_attr("pretty_name") or self.lsb_release_attr( - "description" - ) - if not name: - name = self.distro_release_attr("name") or self.uname_attr("name") - version = self.version(pretty=True) - if version: - name = name + " " + version - return name or "" - - def version(self, pretty=False, best=False): - # type: (bool, bool) -> str - """ - Return the version of the OS distribution, as a string. - - For details, see :func:`distro.version`. - """ - versions = [ - self.os_release_attr("version_id"), - self.lsb_release_attr("release"), - self.distro_release_attr("version_id"), - self._parse_distro_release_content(self.os_release_attr("pretty_name")).get( - "version_id", "" - ), - self._parse_distro_release_content( - self.lsb_release_attr("description") - ).get("version_id", ""), - self.uname_attr("release"), - ] - version = "" - if best: - # This algorithm uses the last version in priority order that has - # the best precision. If the versions are not in conflict, that - # does not matter; otherwise, using the last one instead of the - # first one might be considered a surprise. - for v in versions: - if v.count(".") > version.count(".") or version == "": - version = v - else: - for v in versions: - if v != "": - version = v - break - if pretty and version and self.codename(): - version = "{0} ({1})".format(version, self.codename()) - return version - - def version_parts(self, best=False): - # type: (bool) -> Tuple[str, str, str] - """ - Return the version of the OS distribution, as a tuple of version - numbers. - - For details, see :func:`distro.version_parts`. - """ - version_str = self.version(best=best) - if version_str: - version_regex = re.compile(r"(\d+)\.?(\d+)?\.?(\d+)?") - matches = version_regex.match(version_str) - if matches: - major, minor, build_number = matches.groups() - return major, minor or "", build_number or "" - return "", "", "" - - def major_version(self, best=False): - # type: (bool) -> str - """ - Return the major version number of the current distribution. - - For details, see :func:`distro.major_version`. - """ - return self.version_parts(best)[0] - - def minor_version(self, best=False): - # type: (bool) -> str - """ - Return the minor version number of the current distribution. - - For details, see :func:`distro.minor_version`. - """ - return self.version_parts(best)[1] - - def build_number(self, best=False): - # type: (bool) -> str - """ - Return the build number of the current distribution. - - For details, see :func:`distro.build_number`. - """ - return self.version_parts(best)[2] - - def like(self): - # type: () -> str - """ - Return the IDs of distributions that are like the OS distribution. - - For details, see :func:`distro.like`. - """ - return self.os_release_attr("id_like") or "" - - def codename(self): - # type: () -> str - """ - Return the codename of the OS distribution. - - For details, see :func:`distro.codename`. - """ - try: - # Handle os_release specially since distros might purposefully set - # this to empty string to have no codename - return self._os_release_info["codename"] - except KeyError: - return ( - self.lsb_release_attr("codename") - or self.distro_release_attr("codename") - or "" - ) - - def info(self, pretty=False, best=False): - # type: (bool, bool) -> InfoDict - """ - Return certain machine-readable information about the OS - distribution. - - For details, see :func:`distro.info`. - """ - return dict( - id=self.id(), - version=self.version(pretty, best), - version_parts=dict( - major=self.major_version(best), - minor=self.minor_version(best), - build_number=self.build_number(best), - ), - like=self.like(), - codename=self.codename(), - ) - - def os_release_info(self): - # type: () -> Dict[str, str] - """ - Return a dictionary containing key-value pairs for the information - items from the os-release file data source of the OS distribution. - - For details, see :func:`distro.os_release_info`. - """ - return self._os_release_info - - def lsb_release_info(self): - # type: () -> Dict[str, str] - """ - Return a dictionary containing key-value pairs for the information - items from the lsb_release command data source of the OS - distribution. - - For details, see :func:`distro.lsb_release_info`. - """ - return self._lsb_release_info - - def distro_release_info(self): - # type: () -> Dict[str, str] - """ - Return a dictionary containing key-value pairs for the information - items from the distro release file data source of the OS - distribution. - - For details, see :func:`distro.distro_release_info`. - """ - return self._distro_release_info - - def uname_info(self): - # type: () -> Dict[str, str] - """ - Return a dictionary containing key-value pairs for the information - items from the uname command data source of the OS distribution. - - For details, see :func:`distro.uname_info`. - """ - return self._uname_info - - def os_release_attr(self, attribute): - # type: (str) -> str - """ - Return a single named information item from the os-release file data - source of the OS distribution. - - For details, see :func:`distro.os_release_attr`. - """ - return self._os_release_info.get(attribute, "") - - def lsb_release_attr(self, attribute): - # type: (str) -> str - """ - Return a single named information item from the lsb_release command - output data source of the OS distribution. - - For details, see :func:`distro.lsb_release_attr`. - """ - return self._lsb_release_info.get(attribute, "") - - def distro_release_attr(self, attribute): - # type: (str) -> str - """ - Return a single named information item from the distro release file - data source of the OS distribution. - - For details, see :func:`distro.distro_release_attr`. - """ - return self._distro_release_info.get(attribute, "") - - def uname_attr(self, attribute): - # type: (str) -> str - """ - Return a single named information item from the uname command - output data source of the OS distribution. - - For details, see :func:`distro.uname_attr`. - """ - return self._uname_info.get(attribute, "") - - @cached_property - def _os_release_info(self): - # type: () -> Dict[str, str] - """ - Get the information items from the specified os-release file. - - Returns: - A dictionary containing all information items. - """ - if os.path.isfile(self.os_release_file): - with open(self.os_release_file) as release_file: - return self._parse_os_release_content(release_file) - return {} - - @staticmethod - def _parse_os_release_content(lines): - # type: (TextIO) -> Dict[str, str] - """ - Parse the lines of an os-release file. - - Parameters: - - * lines: Iterable through the lines in the os-release file. - Each line must be a unicode string or a UTF-8 encoded byte - string. - - Returns: - A dictionary containing all information items. - """ - props = {} - lexer = shlex.shlex(lines, posix=True) - lexer.whitespace_split = True - - # The shlex module defines its `wordchars` variable using literals, - # making it dependent on the encoding of the Python source file. - # In Python 2.6 and 2.7, the shlex source file is encoded in - # 'iso-8859-1', and the `wordchars` variable is defined as a byte - # string. This causes a UnicodeDecodeError to be raised when the - # parsed content is a unicode object. The following fix resolves that - # (... but it should be fixed in shlex...): - if sys.version_info[0] == 2 and isinstance(lexer.wordchars, bytes): - lexer.wordchars = lexer.wordchars.decode("iso-8859-1") - - tokens = list(lexer) - for token in tokens: - # At this point, all shell-like parsing has been done (i.e. - # comments processed, quotes and backslash escape sequences - # processed, multi-line values assembled, trailing newlines - # stripped, etc.), so the tokens are now either: - # * variable assignments: var=value - # * commands or their arguments (not allowed in os-release) - if "=" in token: - k, v = token.split("=", 1) - props[k.lower()] = v - else: - # Ignore any tokens that are not variable assignments - pass - - if "version_codename" in props: - # os-release added a version_codename field. Use that in - # preference to anything else Note that some distros purposefully - # do not have code names. They should be setting - # version_codename="" - props["codename"] = props["version_codename"] - elif "ubuntu_codename" in props: - # Same as above but a non-standard field name used on older Ubuntus - props["codename"] = props["ubuntu_codename"] - elif "version" in props: - # If there is no version_codename, parse it from the version - match = re.search(r"(\(\D+\))|,(\s+)?\D+", props["version"]) - if match: - codename = match.group() - codename = codename.strip("()") - codename = codename.strip(",") - codename = codename.strip() - # codename appears within paranthese. - props["codename"] = codename - - return props - - @cached_property - def _lsb_release_info(self): - # type: () -> Dict[str, str] - """ - Get the information items from the lsb_release command output. - - Returns: - A dictionary containing all information items. - """ - if not self.include_lsb: - return {} - with open(os.devnull, "wb") as devnull: - try: - cmd = ("lsb_release", "-a") - stdout = subprocess.check_output(cmd, stderr=devnull) - # Command not found or lsb_release returned error - except (OSError, subprocess.CalledProcessError): - return {} - content = self._to_str(stdout).splitlines() - return self._parse_lsb_release_content(content) - - @staticmethod - def _parse_lsb_release_content(lines): - # type: (Iterable[str]) -> Dict[str, str] - """ - Parse the output of the lsb_release command. - - Parameters: - - * lines: Iterable through the lines of the lsb_release output. - Each line must be a unicode string or a UTF-8 encoded byte - string. - - Returns: - A dictionary containing all information items. - """ - props = {} - for line in lines: - kv = line.strip("\n").split(":", 1) - if len(kv) != 2: - # Ignore lines without colon. - continue - k, v = kv - props.update({k.replace(" ", "_").lower(): v.strip()}) - return props - - @cached_property - def _uname_info(self): - # type: () -> Dict[str, str] - with open(os.devnull, "wb") as devnull: - try: - cmd = ("uname", "-rs") - stdout = subprocess.check_output(cmd, stderr=devnull) - except OSError: - return {} - content = self._to_str(stdout).splitlines() - return self._parse_uname_content(content) - - @staticmethod - def _parse_uname_content(lines): - # type: (Sequence[str]) -> Dict[str, str] - props = {} - match = re.search(r"^([^\s]+)\s+([\d\.]+)", lines[0].strip()) - if match: - name, version = match.groups() - - # This is to prevent the Linux kernel version from - # appearing as the 'best' version on otherwise - # identifiable distributions. - if name == "Linux": - return {} - props["id"] = name.lower() - props["name"] = name - props["release"] = version - return props - - @staticmethod - def _to_str(text): - # type: (Union[bytes, str]) -> str - encoding = sys.getfilesystemencoding() - encoding = "utf-8" if encoding == "ascii" else encoding - - if sys.version_info[0] >= 3: - if isinstance(text, bytes): - return text.decode(encoding) - else: - if isinstance(text, unicode): # noqa - return text.encode(encoding) - - return text - - @cached_property - def _distro_release_info(self): - # type: () -> Dict[str, str] - """ - Get the information items from the specified distro release file. - - Returns: - A dictionary containing all information items. - """ - if self.distro_release_file: - # If it was specified, we use it and parse what we can, even if - # its file name or content does not match the expected pattern. - distro_info = self._parse_distro_release_file(self.distro_release_file) - basename = os.path.basename(self.distro_release_file) - # The file name pattern for user-specified distro release files - # is somewhat more tolerant (compared to when searching for the - # file), because we want to use what was specified as best as - # possible. - match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) - if "name" in distro_info and "cloudlinux" in distro_info["name"].lower(): - distro_info["id"] = "cloudlinux" - elif match: - distro_info["id"] = match.group(1) - return distro_info - else: - try: - basenames = os.listdir(self.etc_dir) - # We sort for repeatability in cases where there are multiple - # distro specific files; e.g. CentOS, Oracle, Enterprise all - # containing `redhat-release` on top of their own. - basenames.sort() - except OSError: - # This may occur when /etc is not readable but we can't be - # sure about the *-release files. Check common entries of - # /etc for information. If they turn out to not be there the - # error is handled in `_parse_distro_release_file()`. - basenames = [ - "SuSE-release", - "arch-release", - "base-release", - "centos-release", - "fedora-release", - "gentoo-release", - "mageia-release", - "mandrake-release", - "mandriva-release", - "mandrivalinux-release", - "manjaro-release", - "oracle-release", - "redhat-release", - "sl-release", - "slackware-version", - ] - for basename in basenames: - if basename in _DISTRO_RELEASE_IGNORE_BASENAMES: - continue - match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) - if match: - filepath = os.path.join(self.etc_dir, basename) - distro_info = self._parse_distro_release_file(filepath) - if "name" in distro_info: - # The name is always present if the pattern matches - self.distro_release_file = filepath - distro_info["id"] = match.group(1) - if "cloudlinux" in distro_info["name"].lower(): - distro_info["id"] = "cloudlinux" - return distro_info - return {} - - def _parse_distro_release_file(self, filepath): - # type: (str) -> Dict[str, str] - """ - Parse a distro release file. - - Parameters: - - * filepath: Path name of the distro release file. - - Returns: - A dictionary containing all information items. - """ - try: - with open(filepath) as fp: - # Only parse the first line. For instance, on SLES there - # are multiple lines. We don't want them... - return self._parse_distro_release_content(fp.readline()) - except (OSError, IOError): - # Ignore not being able to read a specific, seemingly version - # related file. - # See https://github.com/python-distro/distro/issues/162 - return {} - - @staticmethod - def _parse_distro_release_content(line): - # type: (str) -> Dict[str, str] - """ - Parse a line from a distro release file. - - Parameters: - * line: Line from the distro release file. Must be a unicode string - or a UTF-8 encoded byte string. - - Returns: - A dictionary containing all information items. - """ - matches = _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match(line.strip()[::-1]) - distro_info = {} - if matches: - # regexp ensures non-None - distro_info["name"] = matches.group(3)[::-1] - if matches.group(2): - distro_info["version_id"] = matches.group(2)[::-1] - if matches.group(1): - distro_info["codename"] = matches.group(1)[::-1] - elif line: - distro_info["name"] = line.strip() - return distro_info - - -_distro = LinuxDistribution() - - -def main(): - # type: () -> None - logger = logging.getLogger(__name__) - logger.setLevel(logging.DEBUG) - logger.addHandler(logging.StreamHandler(sys.stdout)) - - parser = argparse.ArgumentParser(description="OS distro info tool") - parser.add_argument( - "--json", "-j", help="Output in machine readable format", action="store_true" - ) - - parser.add_argument( - "--root-dir", - "-r", - type=str, - dest="root_dir", - help="Path to the root filesystem directory (defaults to /)", - ) - - args = parser.parse_args() - - if args.root_dir: - dist = LinuxDistribution( - include_lsb=False, include_uname=False, root_dir=args.root_dir - ) - else: - dist = _distro - - if args.json: - logger.info(json.dumps(dist.info(), indent=4, sort_keys=True)) - else: - logger.info("Name: %s", dist.name(pretty=True)) - distribution_version = dist.version(pretty=True) - logger.info("Version: %s", distribution_version) - distribution_codename = dist.codename() - logger.info("Codename: %s", distribution_codename) - - -if __name__ == "__main__": - main() diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__init__.py deleted file mode 100644 index d1d82f1..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -""" -HTML parsing library based on the `WHATWG HTML specification -`_. The parser is designed to be compatible with -existing HTML found in the wild and implements well-defined error recovery that -is largely compatible with modern desktop web browsers. - -Example usage:: - - from pip._vendor import html5lib - with open("my_document.html", "rb") as f: - tree = html5lib.parse(f) - -For convenience, this module re-exports the following names: - -* :func:`~.html5parser.parse` -* :func:`~.html5parser.parseFragment` -* :class:`~.html5parser.HTMLParser` -* :func:`~.treebuilders.getTreeBuilder` -* :func:`~.treewalkers.getTreeWalker` -* :func:`~.serializer.serialize` -""" - -from __future__ import absolute_import, division, unicode_literals - -from .html5parser import HTMLParser, parse, parseFragment -from .treebuilders import getTreeBuilder -from .treewalkers import getTreeWalker -from .serializer import serialize - -__all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder", - "getTreeWalker", "serialize"] - -# this has to be at the top level, see how setup.py parses this -#: Distribution version number. -__version__ = "1.1" diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 48b41098f64ea68ef7dd7dba2badd88f315abf9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1313 zcmaJ>%Wm676r~=PWXf_8dSs2r7JF_PnKEGOASPP6GKDktSs9LQNVlk;pY7uh159f(62XK`51#8Mt* zM`1k|D|wt9kD@v%7k`ejN9AGmxQu^|)=Tyg3FEitKmAA=W-M1V5j;1{>`Bfnlte4y zc0jflZ@)di_<;mZ+d#o9UNFbCieK%VYwRXXyB%{~ooG|1J152KEltQd-u1v>2)CpJ z%WH+GPLmu+p=E;@xd75}w~OJLTjwPNmP)s(Bz)lSxF`wpd)Ww(pqwQg2ys?I#XTYz zqYW`o=qo_+4z>pAQsY@`*3%Yc=L8zSMMt7*wCUN}zHS;v2wXBBCCXNX{ zmC=$kyh-R4s1nIgiZ+h;SYKe$f|HMf=myl&Q@N+5E?TcO@jj=|$f?Os*MwP8ZGyLl zbq0WZeT$NWY(1^kar_233ayZhgDT(|289u!@)o5TID>1?Z$o`5ErjlT?i7Jh}M(-5zDO>tphrgp+Q*but!oWXYW%31i8uHni27w{q@c$ diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-39.pyc deleted file mode 100644 index e7d3e51c71d2651b33d6957ebf1ada629505a66c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13782 zcmeHuYj9h~l_o9#f)GVLt?1!LhVf%L z?f%(f)l}v?r-2KSmNzr=d#OTqqwnd{r@wRh>&JzX>(({6@b}lhXg=_$=5k%9FU$Yd z;LF$X$^Bm>mdjFlT)j%W((7(__j=kr3e~xLyzO4j>)PuqkLB(0_13r7<5^w1-}1Gu zvFh6!EPwl2YfXEj)iAy;qoIAhtS1~`UxWij)#h-3dk=>l zoWl_*6RF8Wq)Z!GDD}kHp0E*i^ccISudv~u5jGf&uu;<^M-fiwj-G_n%s4ZKVd?j< z8LMiJgxH=)grfz0L?W?@84(#;kv1ogBC?A}!U?vB$)-lk)~dp2D=UnKNQQ?Km0=SN zJFTL-q>S#kJF0U4M0F>SqB4x5H8(|N@6kAi7EF!CBNbmn6A{8Ens7{w1-K>_;*sK6 zEEKQU6N_-P#G+0}#M-2An*(O7%_N1fm=m7-a1CqxT)7a*i&N3vew^r1JSmhGU0)DhhD%?dOD$S4>YHbvLG-b3l z04{|km|CnhE(xYq15=Y=Y7$KDLYH0WHJf#5vqY7;(5VY5(5z%LbcvW=n}fPUOlQQ{ z9$g})*AUYsVmc!x^+?3@8e)2geX2VVrBg&ng%NhH9&wzjN7zkzEyi?-k1jci2B=GF z(rYoM$9Twk%ppcS#xBrf901fPR%JFl#sS9bm z&fKEcV%3ls8jK;MVMrb`Y8Vo*`i| zYOoj*7NZs|hKv@Y78{0)4a12IBVLVFBOyEGiN!=bvCs^2gqu;KN`fUA&V zjsz|NL&nE6IHF7^XoIF9g`K@t(3Amb%B=`NXU3&Wyt?}enoK*$oM1CesoAWVVair! z#f;WqYh_Q15-sA$D(fjq~!K#H!363h*=!1&|k`v@O&ah0Rwgg4wW&(uLpHAlDJsB`tS1`gO>s0* zrO)WD$^^w;k&s4K9X*OnY0-FfW?=is!-*!U{y`0sZZzTSt)dCJQB72XD-e^EACnA( zK4L^63%4rBf|b?NpO= zu7#_S7|_Cum{vO@YSJm1Gn)h2F2-5gRof5Bk!sFJH5w_8Lem*T%~=fsnjDvAIGbxt zj!To{BII@H6y0%(?l?u4PSL|WQWlmr>ufVSPM0?8Y%`moM>u|T$w1tyjs2xdo4H1s zs>{ga8fK1w&MuI842~b&ae?l*z>qc@Y%`l-NK=h)by^3EFq>i2Of}>Y+^E58M0lHQ z$Riz@VMtRAHkHjVq^X8Oasfk{YSf~|kfs_nRE@aQ%m-!G6X)d@>$3x9T-qG3!5f!0 z$7?pnrOj~(FAR)FX!RJUuBO%?C2-o%?5N0zHy4?8G2qYm1Bq0f& zKu8$87f#fMBiEvU8RV@8M9h#}QBkPaV}|59gPKb4n@;eX@)T>fIo>hb*gK{?15u}@ zJj$EAqsMxMit3Cr<<`v9XfpCBOr4p{l*eKc)+^hAR=ER0R$V9pi3(7lWQr(c%wtrF zNt;p7l8v}iV&#DlPr5+uco&si9p#-DBOH|n(5SP32VzkkQ7r0^WGo?T5>&&jG%2I8 zjI5C|T1`fmGI~vqE~!P+R3uw6gCDB*Ive=~2Rv1uT2KWrl-80lq&$R^8zM zby`=DahS4QSJNflqD@iKSTXqO0H_NMrx4d4ItT z3*7~}J8js#VrXuR#*5FxG_);9x-hK0jYCR78Fw9Xz3lGyKJ1#HYty=1-cI*TxJ&Mx zfsz-Os=fAF$aAvP-_o7!O||Sx=enOt9!RC~E%{U~-;zn~&v)cf_LC{QBmZ=!qtDKE zrgFKKolmARPqy@=_qFu>RlYl$3GIxv`LWY`qF(Z9gwoJc1w4@w#lVK5Z#OUWB!~;3{}_ za6lJ41@AVOBk>kJp_(0d^#Pr33v#60QntCCQ0(Q;sn5#u2V4cOrR;JIdHWxt_9%J! zck&eR?q-kKL;*I<3A}0W-Lj{G0)_#6j2s0)1wKZsv?i4q=*7F3e5$mzH~Dl&4#K_W*OxfsQpf#5xe%9|DYUev7s&Vvd+J{*e~6eMs=%%DV$Lkt{o z=(fW&G$L+UKZ2>x6zczcz2%`8WJ!i~1komCEf72C9xbp+yRa*2Htq)y_KBWiOg z{C!0))PoNn?uAGKlNnPV&~L$N|Ig{OUgY{0Dn} zsQ%*JUtCguvG_Ny|IK^9Jg5Hh{4W>PUk(52xnC`QP*gv7;e%QAgYzG}tA6nQe?6l9 z?cu+hQ2%c3*UzfIKK$!f)L$?DW=#Ff(ciqS{&w`YKmP5Z-@g6f;SXO|Km6+t-}vy& z508F$?86J{-w*%&p?`SkAKv`kv%fp2{_gPAQT6KB)#uc!&tE;HUOjwuO1(OL^Ro;g8=@Kc4ycy!wan zKg_FtSp4KC>L*7(nN&ZSDP2-a@0S)oJ^bmbpH6&wM*Vc=(>YZf9~Q@p;y9J&#fcYH zapEO$;-|=77blJ*J0VV-RmI6+ak3~*9zy9waq?wkuZWWq;^eG2c^+Rbijz=qa$cNV z5T`~}acWGQdJft1;uJKVdQF@Md~!N>7~-r_QP3^fTi02(qF${bOV=iqlYh z`W10{LY$rzr!R=p?}^jUdwO1+UJw%yofs1n&^z(Gn1J4iBVyuBF>w^76Jp|`Dkg`; zWKm4MASPcFldp)$2{Abm_? zT%JUBL0o=UT)reO!_3PIV&O+(0o4m<#g$QUrGRJo=1U9{q87^iX;9 zaC!7)eECUv^fhEh%A-F+_EvfH?eggH^61I(=;`w4B&w#$qcg~6%cB>{qwlKau{Xk4+$(ERRhgn=X%?MfPra?EUiCeEHyrT0S^gK8QyLXUYd>kzFbugthN2mgj!1 zmgkO^=kaZRv3wc5Uw*xO`7LBe%L^FE!ol*wi^vX_7mkz{epX)id3oWj^1>BVEtaob zEMHkDUs+Vki_er7N6U+cP&!;*d==SG%ZpIGc(lAYjcm5Oc(J^=pk5m}d~M`SWaHOH z-d3*_Ph2aWLN;-&IE8HbT5(3bHoACiY(%|2T)aL!c76CqD2-nqK6`!mUG@4i!`Gkv zse1j{BiEmO1KH27KYJ9}`1O(b>m!Tm^fzdT3p;a z@ISGZfQXlo@V}9NLAVG1H0A!=2zM33elq;YkJV4kE+^O5)K8CpdJ2SE;nmCHIHH#b z6|>_{(`bb!A$w{@^5mZ)$Yn%0D~a$6S@5!$ge?{R`&Y2uWibW$8o~YhXzd21RUxPw z&{B5&W^kGcG8Y* z`5$dJzm8ANMv`*1E0(L>o$}za1^aRQ9PSp{ofnmMAAWvTZ~0NGx7Jt<_#v8~e)NWX zjkV5NkG#R!U~NRc*4kukM&4-MWNksd&iazI75RE=o3$PJ1`9uFL%z}SVf%VpY27z6 z`?I-J-c0vk%Q?92d$@t(3#iC_ks7xH-=M^~M&b*UlE0%P zok{0AI3N8{Bir-gIiZ1yt694yAx}K^G9VbJ`C+cC=^@=aK^+z4p$Gy z6uT+!9>>`??>*+GUrjzt&+F_5aU${HAow6Z^)7!p?xQ2!!z|lew|mfsd#FtA{=wS` z;q*TI2r<{xnapIe`KEoTu5_m9sdT=(iG>Dl>(1xZzx8J{8)TwYyqc1A#yb zKW!OozLAP1sK|GxNJCQwKF#5742Uw8rG{KSY3Fm)Maln^{2e1sH&n7|3NYBEHTmqL zy&MoYOa5n6m%OB@w8qi58v6~M*_7Rxa_spX8s+FB%Z1}4-B!Q}e{{Q1au43N(haLx zcJiT+TH=q&$7yfTjCXx>8sfiMAM;BwbJr1Zn_<8_u7L1VH^T~)^N z;noPPG4Jbl54u%#@b2oYs)j;mHj_`nlS%6U+?UBWS(s(1+@MEoQu*{cc-!hGxcMXB zCs}k!X=?V#S+ko^`AbUJ!(T(GRM*gJ zIg)fCvNr>XM)%;CZxm0pCM$p-5Xc)G*gYr|aL=B1jROdJFR=GN40)JI6v-qA`#OFP zKv$Z$yDxx!hTQ$@0bjk{jXJ-D8#^#io!z~hfk+xRC1_30sSRILf`zskG-1KQO_^*) zee_!oHT4k>FDZBPCEVawn3h+AOBZQ9siuD7ZCpujMq8GnQC9Au>i4HJR~c|?xP#wtHB*N@)NgO;Ue;`6RR)ai@bZLmo=8#a?zzIoJ1}Iw76^b zR>&VWcw1e|+(u99GH@JT=Xi#Ed0)PM+)vKLy>@+}9?rgZ$j?q&-O`ViYYM*cH3ffR z4V>ree-!JvZyQ~AEx#-s-0?YQ5>emZbXTsqp|l-Ns<644wsU#?Ti=$hlK1(mro#^~ z(2@t+kkU=HcC{uQc+4JaZm3bNTo+h*yPtagF5cmkl-~9Y^o8rC58KyQpH{v*t3Ki< z#~!x#Q4cFucINnhMtzQM(dizX{E4>+m~~z^`Ijy&$-{%&R{GXi$5wcjScpD6`R+u4 zc25Uf;PS1M7jWA@kX5^LiMt8|;_uJXtN_cIhQ4*`stDh~On`p}tjf;I)gqV;-#g-d%ynqgc0YgDAVhK0u{aF_T8!Ej5EEVg|Rb1id!Q z7531k!AM{ji=F`Kbt-$XlHnm`>LrG}1<-mEpyL*>Sfj{bpUPvwc*PL=9A z@pd!ald_*6n;xR%VM-pM7|LSBbmo1N3+JS zGW5Bu_BKkkQ*t{c^p=esXE#&nUP|c22fvr#>wJ4ZeYGfg z97)NS-FG0>ndiaX2&a<&0qLCw;bm7YjARR54*1>Rs{j~lyVvLSuJ>$I+<)}B*Mklk WJpM2FHz8e%e_sEZ26uy}!SgSaThYJ( diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-39.pyc deleted file mode 100644 index 2f64fbf34fe8dfd336fe90372b7680a9f830851b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21641 zcmcJ1d5|2}d0$_1?(BiZ0$6|`I0ONLLtz&nNRbo+Lm)uHBuy?6VtFk|4QHo&7qdIZ z?(3cfFq)Mdf>Ek$N2bb3N>L^8LSo{;<&qqyDo&*;+(b$FkCft4VwJ75bNGl;VJ?cK zqDV+g^(EFFb!)aXp zubPJ88m?J2YUZ3-v*xUtJ!hLNv#L%lF_)0MT}{?fbE#T-E-lYaH8Yn%8>gC`%i^A> z4%KpVx!UmDu+%53Bel`FQRGu@x;j?dF}I^OJ~v+5Ik&SmF*hOQ8IvIb$4yg z+#b{LCfy-7_om^EKW1DtubOjvQ8FwgJEM|)C>fEGiKyf@kF7@Cu|?~udB&LA@9vnp z-P^Nt;4M?__ilH`_ZsfbWlR0YyM5yhcjq*m~DEOB?Er!%W~^4vN8*6|Z20Ll=W!rC6?3ym}BOo2pu^%+H`ab>>Ro`At@^B0DfLGzhtdqH?EsuLSBMQQs(Ggw?b?Bc<5l|wd;o3i@rC4V;37W@7R3Bzj&#% zNezz2?=|j$uoVty~E%HtP3Jf9jZz@usla z<cbYo~%~#>z4zt*ClMyCkOwvrGLYmlY zXEI4JNioT=2_A3q@uq%6lbbh(m<%%+Wg>ko_Q3ETapaHK__ z{FThqaDM98BU7heeP!zP&rW^rwKC@2_eWAWjmv)miD%52t}$o1=A7+Xt_`-~fWakj zPq;}pg?rLXyBXY5Zq^;bJ?-Y)VcaudtfRPR-7&D49pT8C=E8!fJQu707~T2}{R}3M zUudYj#&bU(Tr357w~?**Wv_Twfbo^@vq6dTWxzUtGDc7 z1M38$V@)>JXty=MYywOj!N54FMv59jo-2o&x(CJG#TFb{rz)T{Og0u4d@l&i%9geI zp0|7sZTt}=hB=1SI_5b3vs>58wted*iuJD-F!RT-W~}rYV8K-qdV!4`)(Uy$oRk4x zy3Cb5(B<7;8;#kadPbMG$aA#sXp4gK$)eXD!|S@GL7teW5U^zj zIL5Qx9Y|v36Xx!lmX)=(K%8y+Fqeo%>=n%ADHZ^CUF%K3TP?{6iS>1gx9tMo%1$B# z-})kYce(kW!(vm5kmg8|7_UN<$i z^i#Duis4`4BspWlY~B8`FX=-KZb}C=NYX?A4Pc-)&|(8fea$pk?zm>cfH(_uw~doV zkRW+WxpmTLTQSNfHRpK%gK79DOAx{8ZWr_sajW~$By`+TP#S=?I*yuGa7Cn@Gjl+7 zkoLa8m31+zZ&_*dC3h2ee+L;-^dhK~%Oj?*JCXx_uP54$rfJ~4p?<9mN?5j|yW^h{ zen2kZplwpU+K%uFr)^_fljtS= z$TMY&t#*nW1)L|by1#9y-;j0&s0<)r3)kLAv~5ysp^w@q6%~@*4c7eSA(YBah7QlG zLRuq_?D~lEY9%?tge!%XS__Bf<>-8}?s}KQoPKy#bEN3Wa~}h+(2x{5+jtISHVC=< z@X~o){@q9nlWZ!B|J{IK)*{;)vvPoB8YO8fY4N#rU^}RG8N*CrhzD1_RP&0(Fk39v z8g8@7e6CnrZI-H0O{!RQ8|7kA@zv@ROpY-TOeBrSW+=|EXVyYXBE;T_3T}=+h9qq| z$#f!}N@wtIr&Efxee5AVMShB1D29S97=gKDUA6psByTS{ONpzNn|QrD?zz}KqZ z9i-YICDcB}+KsdexCWW47V5InTk^nyFK7X(ZIVv`gKf1IWZh)j-i_xs%wVW(ESMEw z_}k_eff+%r|5F>2 zR0%E?EVTzcL-TUazRH$TFZfwpn)%)J#OyOqKS?b`%XHhZyVm_@OLYo!I0*BldOm(1 zq^sa!zLbwt%e*K%N2S$aRTvJlP(AB@P=eH@NcmyziP_on&w2hzqYfP_#iF!|9>Y}0 zb?2cIhStJLn7UZbs%OZTnOa2LnwFCxToBVo5ek?Z6FZGhusl8 zXJJbib9cOH&JDTa?oO2C+zEFV?!)eWu|Jq|Ba!7{)Exz9x?RoSwKsm}ylSjfT#tfv z3^XmXY7skD+Vep}#B6TBY-8E0S6ZH$j^%Yo&*ds4@O)5O#!%&w^7^`W@uO6C^I&Rt zCq;jS{7SV{#)F96kj5KIdF3Ea-ZkZWt4+XylS4P0xQ#rtZ#~^ItQxhtR8%WDmyU4)L^<(ll}jk?oyD zwo3*nH-T2k1xoy=-N;b1LOzT9&@}_hpKL$%`+!8qYw@ zJsLNU=3j|1@wGyJ>QsKFp=ubf1x+Y|(E{YMylyQU$ib+0HGQa1SMssdq32b)F+fzO z66AqgJq6e=RI1)oV}1#He>5-RjTDh*6HKK@ed-yAT3SOCu2QuNU)XKX1%{n`tqC;^ zuZX*fS_X#TR>~!uOP%R*XX0f}=krf4z0DqZ<|{AL;K2}&g}Cy#lSI-_`6$t-A;=046ed3Ml1 zAj*%ZK{pc3U}5UvFa`b<;AAf36sa$Rfk8Z{2GbO1kIN7=V=`4rlXRMt#dX{&YTEjFf$hJCxk z^PMNR><$k_iuc@$4eSxHz`SOQ@DFu;4~2i|HJx&Z;liCy3wMSIemz;w!6cAyojt}R zg?^_Ez6|c0mvBX9VH_C2I%_W=lB#c2pI2?UMqx zAQuiDZXu4KSFLp-6}E8?lswr6tM$lpUeHu^KYvdZQ$CuMZu_+k6%QV z$Z~zKOly0OrF?FP#~q4HJr0KoZ45QAUeRm*h$|)AG@wP?l4r#4+_Jb1&me&kH@LXv zgqp-ct!suq8Q5Y5p>c|5G*!fS(XhyorV3W8k*CT7!yr}}GgwVf-39V|fN;@-@egOl zTB%Yk%~!o?^yH3pP6eI=@L}XHUG(abfusXvwtUfZr#p@GUV+78(#k~=W~lI1I-JKGkr7`D?CDD91cifGz~Sv z{p7yEZU9A@C_@e`{Ff3;Li1%wlW39JNK>}K{u)ae^%B#z1*(Ic6Rk7#bldV@cL9$e zOACYREIaBOP;)FdK|>r>AU6po+E?6E+jhVdmreC$H;wcgb;mU7yLC&Bg&Z7&RIuf3 zIrR=^nTsqM*2XY}-fK{~zz>EY_(ploS-%@O%gq7y!!xRk6$|a3)2B8$z`MgtjPJpg zfAe<@qh$?eRTV`y%;DL>2>ea1w@_+UaYzGVJY+Q56O_U!ghdDtHH=HF5Ph}693)Mc zLmSFf6f47&mTA4%Xeh%x%$fwb$J!v+*HHCiT>fz+27sQlCIEK)TREHHCmJ~57CAGI zryNnj#uM+>EjdUB1N)GJ93+8Dkc0CMpbG~y9|6?#rbbp_5Z6Y+MVV==j?0m3&D_{g zsjor&bf@SwT!F13C?vr|OZ7!h@4|^4L^2`%Fi!YV$F%s2a_cFacd#1zJWOt@syWx%7OgqA0XRVk#eJ8)sv%hWqM`dU3wC z0yl&}yx4)b--V;VJU%!Dn2x_(!8>cEpnMS`TRfaLo2SXDiWqJX;ICr7cM;$eI}BT^ z%@(jdZSA&Te?l$^Q~C&u$Rkjy|3A>-#JMsNKK{!hL+M5E0W8R9jZr$|aS6_2zi8AK z9FW76H4}OqY^fxMiFF6q;Q(SVJNgG{W?Vh!QZ5k%U7LHrC1GXtUvhyhyNNp_9vBXH z!(ixO=25(EXQ*H`e`fWZFD`4FG?&=Tg$J?omEbuYi z?v%EZ8!#s6p6ztUEQ$JJdi96BwQj0Y3x108v%UJm)i!6}PGZiPc81v1`hIlk(FTCy zUo>;N*E+ht2%|k`XLE(-fca)Xe_rPpgz{c(()}+wSf@J$izA&U{|HZB9I4a&g^{+{ z8LR|hrA`eC8k{%}V+Biulp~e;5vp$&8?IOYi1%8UO>C{?tCtTSKXDl@1(I9Gv{oKOZkpDf0IF%z z+9yATlfnFi0EcajZT4pl`>n()hyB++F#{voDA%N$Kj$qzemPA4ly^mVpiD-63h#ue z7`&HZ1yJnO&!ME}{1O?(rm2e6AaE7WR7F0k z{yLMt!KAC-NlpyGGzoqgm(M4N9Vvh%pB};g5UlK@*}KzDdQbM4m=4Qm()UMu?rB{9 z(@6U4nLEXbX~L?ht(b|(ikXCslCfMS?3&t+nP!X@td<#fhdYjY)}=_lOVOpMo<}ls zBXE3ko|r9@p~rvBJGcY^>d1(G1StmK)=~~ipen5#Ey;@f!!#;9;KemV#&!rpj&pE zPp?ZuRTe74;^!Mge6mzyJZFt0U{ui(E~Q*h|G3>cK-Rd$P=9Ol zQU}f)9&iCf_X4&XR98UM*9cQbggEiqMP?;!6`kdDks1Ux=4?3B$qLNMclchxW340=Y2L39J);nObIbmmdh!UPl>2KegQ= zviDfv-0%xVTF2HE-oos|*LRlrRSZhHyatFZh*HOR6R4<&#N@@4O#j%0D zFR>QmLU?!Wfx4j6lg9hO+OI+V#0-{_8!6YhX8L%JW|7{e^*@&Pn1~y#x5f}Wm8fQF z*>zh$G7gXoUHMNMBml)1MAU;yah3k-#8U1p(|-i`IlMt-d=w&BG8lvMu;Z$Qntj4g zlE@u;%Upe=?QD!wOoJer*x0Fat3N<~g8T-%lvvv3CPmez5IMZD8(7cQDefibhaA=# zt!2;FwV=%x^;+GOt`%iNy+m{Xlz=D!I0*!+HLsPV;rqS^;ZWQGdlk5nU#dO^u2Bx) zeS?n?WCYPq(S%%>3^QaX(ame;WFwo`D_=KBI4Nx+MGz{!{deZmN!>4Z!z;(QRJ^lLRwlsBcc-`z(zZL|m4ng2}=JwQo+2W9`1l=K`j za1?@q92++EP8yf&@036aqND^1fCCPhhP`kMclzjQ6k=ak1uzC2jCSkD_MDRw>tpF# zWTg%ZCD4FE!a`kZ+4jeYijk!n_G+;o-AxwShU46|q3fOtVDW*ztZPmGtL#yq75NIb zoW0a;7i3K2U1(Tf$431Dlt90B6N0FawRAbiHX%rzgx17)pidhFu3hKCx>GaSoI~8a zZrw<0Y@GMv9E98#Q6*^GIuK(Ql^DofuD1Rih8wPtKkP@WUt{L4vDXF@i9!%LY7CE& zFc%KN^AZm?0NHRv4X7Jy9VX@E_p@lSveTqE!Y3&_mYq3wayKTw}mLXCu)s|Yo} zj12vjE+kt(0@e&1cF->o_2VFgySS1N+bEeCbv!G8osIzu{z+jk<_4^F6vMP;xNf^? z+C2QvA!Hgg=mD!;ZwcCFI&CwoQGXRMq7DjX2}YCyd(**bD1&VdWp3(%T!o?5^+yrq zjkrwNdQB^Ngo4sThnvTNzb5F2&T{ z8Oe*7RK9@@>Jt32agQ0Y3c;UEY_Osms3j=jOe4Nij3;+HCVC6EaCCWJ!@B zzzi^n;`6iT9u9L+?!E_$Pe0!Kbf)`s|B2o@Je_%5BciaY4yOujC=MDq$x0z)9>y(9 z%{OX~Rmup=*DAXb)+0DPz<+)f&36zrDJdC=B)CWJkDV0GaeEvnN=-|LDLM|q6`*^; zFCpH(t>?Q2AlBB0q1+YjiC`!tVA61GWkwtxjEjK-4BRhVB@y|**e0n>jF4+muyN30 zY(Wfou5B+N&<0%QxgaB41~n9~Tc5&*0T6rz!X0R82QP>m4sT)t-Mab6o!f!EfNDnl zBg{?!4SjcmdD-i0%yl<>Bqr$d{0KqG-iJegLR_wdX$Ul;z|gxeLYS0~7L01*Bz z8r)AHkhd7Zx@p)-Ti_H{>z?hog5K`G=>{g3khf~ufEP4 z42sx+E@9v{aji5r07Nt>7uu0WiNJz9(-_h^Dzgc5=C7nKOKU<*y9c?3-_B0>r! zj9tNi(HAc0D7dOhU`y_nqnd|+kkv8-pEU`_m2M+`V{uPElM>Hi(8#uUHyZUwy`j`y1WrFCVC&;5J^7hkq zZRvP;*vZ5$@m(xmTYoEP6AFFS>d$S82M!nR8@f`Fq9?*T0R2LlUo5d6}RqYQ); z+6Yrey>`s<9L1g>q@I?0VM*5=y)pNoARN9BG*+I(1jLr9o-xBw4Weg$sceD8-!u_r|qI0FY?IXhyofAe~#s@HV6IOkG)C7Oc zL)wy0(3q{?dK!Uq5*%4VJhBcfrP{$rQ+U1xlo7NMF=3hki9ElhSx20Ni4{XNC76`~ zBl%f{P!fq!b=Mf(EPXms0o2ZTjC^T9%LQI%F!7g8=buHBKCR>&B3|{NRgd4yafr^4 zB?cP8mHzj*;~jL0ee3tLlrEYi3ZFsDtHI1y}TJ|A1vfQGgdg9Zn2}%)v{PQEXkt)%SvOP+*`bV81`X{c9c^tWI;XD`^!vrD^zf!Q#^ z2iF>-BpN|S6 z{1U-H4rtIn+Tod6QQh8ILXm<Z@9J9-3IsO*=e=4I3z#|3*8eCn&;UVQ?i zFoq#B<5NRANifRxoV;^tN+g4m$Mo$^efzYc0yTRM>Oc299EN&^(DAd48ow|Ov-**m zb~vH)5P$p%LIWSKyR)T5{3e2Q5MCYb?r(B|u{LO=Dd~F{UlSGq3r`G>_;3VMg!1@U z1r!NRrLMAYXxZ~t2t%M~XfJzL!lZ82Lykg;zlqkrLKL9c!T>)3EkXo{{%<&N(>Rgo zm`3Fs@(dt@saa%7NNoFJ{u7}Lzp(nv>qu2qt~AN}+w{{Qo^Xa8^9+fz4z5 z^1?+JtSeE3RENc)#MsB9tb=t)T(_`HzluEV(uhw4Hk&GhI7bH*?jUKng)bQVP*~dI zhd|WN>Gp^P!e@xEdNV3ax2L1HzkM3*Cj)#bqWdtYjuB!TY0Sq#92ome4vd2juhnmh z(^i(irqUiGkZ>ibU8@)gB(+kT`FsGOo`UVI2mmJ6o0hiLv9dx9JB>r^18B+ z(IELRs8;_KNtgrRVVYGHMDcjqV)Yr8?>MV_uug+RI8>Ne;h<5pSD3-KSm#w~u?Ckl zKN-{kKxhn+4BKjM>id|{|KN<|u%P5|*T>FD zv$wvJj~unb0_J6Rw4M|Z+&w_rL)s-Rb9Cs!5kj*z5&@kLV$cOSJQlaA@55SX>WvBE zGx784)9eY;$gFT^xZY%aMA&dg@9)KE(M1HH_faYGOSn_y8~@SzV%0mt55a)`>c^;# zt>yUH7qV|X=v(af5t9Mr<8J<#n?`0!YeCjwloCW9oVJKh5@w67%zx}w;yt&9>{eDf zqi*L^{wI^|aEq%P0~|EB#K+a!zFZEZzSr{HCkTau{{Sl^uOzqI0Kdf7ZssD8>kOg^ zs5imxZulnxd~rcXFyfs~h_?t*0Icw*$Pf8hHZHV4M60DTSM7*NI;VU)F(hTC4am z2fWb+e}sohP^@p%K-vKTqxYjVVsYWxehMFbCv+`W*v70;dN6L^og3x|DWp3?v^ojr zd(Rx1iz?= zRjZ?nWV^8hnP;TzCt&$Xl0ON4(|A^}q~eIA2c;Yz&y`45Ce2 z9=-++B*0ilGw$sFktods9%7&0V$xNL7}gufT3uof(_GyQ;|ns(i4GTLR-27Lf|dsP z06E7_k{r37flt6D%t=Ho>Z6FlRGLrV3;d3UhY$Dz{>dpu@KsbAc?f3Y8Ri7iF}Qp9 z%@1<8(3Zh}h=7crTel66bnn@WfKPQAvl!G3?`9e0K@q1E&rQW+NI1Web3ync*V3~- z;dmlTQdN4J%#Mc*mjF%f05rNo(B%;2m$pTjDx2 zTP-GjO%tU%c_n`iZANakGS`Ba z1qydGR%6|rKju4lG>->hHJk+eNr@H$y|nPQ&OM$0EbJ>sJ39;xeH?AY>pj=X@w$a>*6JimS<=;=-?Mk$X|qkLz3U>{ZPUGhY@KZ(&dZsq(3osM7m_gVBmFYTDwA?JhjolCoBc3G+FuIkW}*31pn0X1|gr$1ZWJ#(X-t@h8{_==Po zRwGZP)JXNFCo?lQt4$B5#z!yX`%>c>cerw**{HXi>TGRkxuG4mplWAo&052DM_P7m zuA!>4^_o-Fm3njBa`U{msK?W8PE}90s_ww6wW{i>I#Qc+@Vs=Us#$opX3sY+TYQJ* z4mX!8bJfF(6vPGwHs%lT4Tdp?UL8r1X9bDoiTXl80jyEsiWwEyp-#`7T z2anmyE$3lJS1U`%o1NCR>UjEc22H-)hhz?av44aH|20)Qm8zy@ER~u`D{CgB-v6Vi zc}rzf_No4vED8TqY9^=pQ~}4l`e{{E15a5qeX67eai^e$)G&_yYD8_qv8YDXW*i69 z7PS?}lG>)W<2a~xsGT?tsa@&@9Ea6zbt8@=>LztFj+<0j-Gbw&8dH04+^lX@&%tqv zx=r1V<5qQt8pm;)+N++6<92nYn!s^~npFF6+^P1fAHZ>!x=TF|#~al1)eCUkt?pJY z#PLS;BK2Y%Z&EK&FU9d@bwIrg$Fe%8UXJ4}>K=73j$`VOI*j8Ubwu5VvxQE_Fi9;rKkIR29ePt9iA6;|tWHs^NII zI;l?K_(D}zOE|tr*{Xr#i`B9^jpIv{R!tmVsvOnA@qjv`&f@qo^_V(`<3ZI{KZN7U z)rvZg<2~vv>W6W>S3RzN1jj?_3H2n7ht*T+tvDW0Z&N>t<9+Jw>c?cc)xnL`UxD5sSD~oI6k1>t9}y4SE~1^pThCMA5CRbGp_=Ze!v|hPzBSqHdqic zCRLtZtToGX^-8l@b}FZ;IIrkxxiMcBR;aaW_ClG(CX2-~{_QO{tM&QGxt7*o1F1{y zm&^Az>I!u%R!vEqRh%;GHd*WE$|tIJ4xs!hb_-j6Z#7V7K^HwdjlKHUpZfhkqYptY_f@6_p7E(yFE2)z?9P@IoPw`&C z>351NsVCE`0~b>eu_@3YJ#}=vq_?0_H*Xs1=9eqFS=DZ_+MKH_SC7^!3+^Cj;v8+X zG-VBhm8v+EhuKMPPWsBto6K%0N(?+~LDuOVtiCV{!C7-=XUDT{mUPoQaa-?_SD!jt z(F@H>mfJr&EA*e8y_8zh`xYBZ)qN*w&Be2olhvxT+@eRg%;nMDgBk7u37>{*Y9 z`zFs+?KAu8wG;c6&w(`d^Cn-suL=1+0TF$wvQTaATdpndn?)|wK-JDt{RPZC>w&AP zCzsFZF|_9n{540Aq|&2SK9jfdRzZ&KZ86YJ`kypMZQ%doImtyS+dPiMNiC$FG-OJx zrZ1-SgCI`kWLDqptKR_)6OnJiI$futtQwv@}d@$ zVqNmt)yJGfjra~tmD_a4iEK3gxy9o|;(b~-v}UhfO1oJH`q0f1e^cWHoyT2IQNE^C zZB_M6xFNs-B3Z7fH!(|Qxv}i_A*lm9mn^-9*=`RK5?lZZH9b4~LR>XVNK$>pOaY|d z4FGf@y=0z)#ti=T=2k_V_=GjWVW~siXGpy%=W$#wVmrZ3-r!4)n>OW;QKVqlxhP*1C%IeRnfsJdh zzobe*`7f)%Q`QBmd5|@zq2T^Ms^Q4}5&!-LOT!k3JQw z3|g&cHu|b|$w8Z*w9favK4l-srkueG*12aau#SA!)*Y$y1*e4XE-35esY75uTy4YE z_Iu=NJ9_O6DLcJCwUSdiPG#`EFT~!rQ|)>h4C&Ef$fHRg*zbn+H$_p+x9m9w2BF6d z&2qH{KG5aYKKJO+qesdOEpVUnZNu`33KUHl`H?FCxvI|9mMV4Th6PyhFJa#4Y7<(m z!Z%Eok2z&nsg1I#K`2A1m&aZ@R<6y1!z5S8G{@%4cEj=S8wDu>PWWR|q=UNShsMZ9 zV=pm$C^qH~j)mMd_UQR>s!Lz11+BeI7vnNTqnpy>IJ9rA)$7%TN_~Rn^fI;E#C$_f z*sZ0iuFXw|Equ=HXD{5_JZ3wWGWxkFr|)DP1@iG3FnKNY#Z;=c{->yXeSIYL4;eiD z`fvZ1CPQ5&M_nFbax;@3X7Y1LYG3#klCL8f-*cJDv36yhwJ^D|Zt)DsmGv~wkX%{M z@C?b7^(@bjTv^ZY49S)CJkO9^S?}W+k}K;4o*}ui-p?~6SJsO>Lvm$(fM-aqte1F( zPu`czIDxdX}cWnvWc?*Q={cfG^&0~TN->?jQp{w(Rm`NnRm=|kpX^{MjZ)t#WYd|FH3XS` z8)`+#^+LLoZr>7D+g)0AG-h$dU<*@;j^2J5vrMck_^Uo`IKS z&1d8e{3por*R5FQ*{L+nS=uWnQaNq!HcwUdR2tH!q;k*(l>Xj(MD}DAqwLnRBK4U*Wkaqoe1N^u^+DSWUBeI0D zRB5$D%>#)EDQVAp^=Dep0{VzExH{zLxJbRQ|AKY;Nb);yuhhO3d52A2gc|a1MGs!I z(3ZRdZQ)7s9gyUkAjuy$l3bx0l*?2|!}*&mC2#Zd4SVV<-eT1lha z&`Nft5B)Ss-O~IU?+U#XUO|JIoF1*Z_klg>Y!oM1QWZFpc?bXMY;e}LHLV%0x(Juhw>U)v2 zZ?Y>($Yi8@r>I)9Ue?|kRu#!Ba$m%{JN$4wbmA82TzFxWt;Rc`Y|+#?BH;8fp3%56 z@=qioE$mRj>3zJs4~bin)*%kV@Q1r)vC^D9RXx|7rC^26P@RW38-iSgW8nDLnR?ZB z3$Lu6Ge#$kKuyh}%Se3DIN-@dHrE}5L|wYqadhnjB28`{A{((6{VL>lGtlU8qeS#g zp%c6&oqMoqFF1>CzvyKu-=ypu^dyv#nm>WMnr}gpN@vq0>n6%Ys|eY+B|QZBI089` zG&2HeC--qyf)u3e8?i{vC!t39#898yhgtn$<(-|=W)cnJ-jCm5~ltR z&oMD=k5vDsDA8o|Qf+l_m;PC_qp;eKcR(x$j1BVeKjc~gwBQt+NvRhIRm%$IL1~( z<|HzvU||=6KhH9TlrN?WknM$R$r@QN=1TxW9(tp_Jq`i#q_izYd&XoaED6*mV~8uM z)f7XE=vl_Q(#m=mL7S=R@r;P%5X|}qkUQDl7Vh21_ELhT1f=a7G6ZbM9{Path2n4l*(-`b_5g}q*J>N81-2uk1=22-U=n{j<8+VI7^C?$ zAyBu`NFRdd*i5tT2w(-fkyWc4GUnrf9fhyaeBNj1h9c*0;WXh zCC_7^N=?eNA&j;oss`9gXD+fccO#!bH7U**f}#@L9S3Q=ijH0k{Du-LkM^Rn(2JoJ z^);_ALo3RKB*?)AdYzFRD;C1&S&<(c0_5NT0t2wNK8})k)WxtuKdd8YG)NRkjX=(r zyU<%|AaZv=N;@cBLg~-PN)JZzr4T6cy@f$3b5AVqP$X~ors2rlXbtjKH3Ir>Lg?a_ zHEW+n*fe!?JZB=vizJiK>J-l0?GelT-nmnD<7~aE7OHB^I%v%L+k=1vjI9a!0uylA zCl(scgsv?tIuj?LAWv1DP@}ff2M(@TFK=&9QUimYIX*A_EG7#fWkiXMsTychiZ+LaTYW zvBU`?Cfk#^pMbSKgL`L*<%2j0#V$?7Jc0&kD~*sUuDo!Ae2hm2{=w;M3lY)hs3^5<)Nz>U zce1$&r7jQ?n^1yr?_!p2$og?S_#lzBA14M`1qSdDO!7^?@C>*jmJs$Qx`3sdG_rIe9JZ^L&PlTECC5q>oI;{>E(?(R5IMf9Z_#LPlTA+$Wrnz~u_B(1w6B1R!M zBvNAJN15fik(x01I7xjQPU1qu*l#3sNbD`?(M%U%5wx;5ZI7dR^k5(?gpy;5!38?= zhQfPsWͥWcvz_Mg=jGMq5?wiumw-VeIKZ*{&bo%soF=P&R*r{?FVMU)i)SAa! zAk4uNm&t^VLRp<)7?Ik-E8==|>%bMf@bm0IQpI#&9%0&TFm}NU&x!Lw4?nGUuhAon z_L^`6dMV2u0}9hH4e*>oHiuCK-{pk>7UAo=ys6dxp!diTIZj2nl$$cXCu7uJpGBe_ zMxgv8p2a&WpmkEZTtjEQ54HW5cxN%D?RD0kZk?5&P^_yms4fs5jFzyg8Wb29`a+x* zVg%=D9#5qa(-Mmm(XI3f;AyyXsHNLx3Sb&XNcJ6S9qY|!t=y)P3E6ox4bj&RtQwo4Yeq}RC- zM%4DDWvhn zhRj1SFF7{y0CIL88=+U96_p)6@AJnxr2e?d#^|3!OCko(TiHnz>hN`MF_tFHpXnHH zi2~mlMu8F-@5Wi~u1I#7M=Zvqu_Q&xKfyP5vxa^I5AGz5w&5hOhF}T7OYqhFc%1jb zcXdS0dK2OQm3->x$N(_iI?~K}=-F8xLKnS+ofVpn5fOEJuWm|EFxE-mms0;kQc8&0 zO-lV7h)sRr6QJ25CHewy zfnqA}c?)aSgmD=5qUPARLL`hulhM5?Wa|4u0dl0$Tr@&NtjUcf$*csQ=Apfr}=1*M1RVIR&W9ccPRD!y3PF$mxlq0sm)L*R+)fdKM~ zxPkABc_DxT$2u6U$lEss_0U(3iY+6c`e7Rtr}Q;KU?Ym_pC^e#K>Y&GKEi|w+W5TP zjGhnU>5q|6VGK=z?UA@yB$fs<2!Wxih_Dc4y-D?7@mh3C+z@39DBzP&zRUC-2Hp?g zc^HakU_-@9U~n(s(vX`O)OaSyX9k|aeBt~0Bc=M8JngPwF|tcso3{Gjui7?4apYq;Op1_ogeGiQbCSH5n;=BUr?Q zu>6>xL`+vO)7u|j<)Ev?RwZ5Xl{dZf`hQLjc!10ztyA`k*~V>1%+*GZNg0a*}f1z~m}W)yfA`!`mFozl5CA(DY1 z3BHa=w|?6}*NuW7kq$ClqfFlhwq9=^qi3i6BKnGpAR<0Sq_ZZk(pd@G#=0tlnsfL& zjKAjhgRkJ2?@>TRXxq)zxP+en1Jd?8bTzIG1px|UD8TDO6fg=Dm0S)cN-L}gJd{F! zJDebuRN)x8yNF2-&@uO;G^JJXG*v%kQPDmGNyh;BD2&Q86&i;| z*@!F@(bi3>eH2w)j!Lx=#7fLWe@0Ct&TX}Ok|_FSyjYw00=-G}M|fS7L^2F_HK*`t z&&21V&QRH7&U?aC;4BlG6c>Vg*JAh|^bG$`#!5v^3F8iI3!cXS;E#KBGZ?zq3TxZF zAzDK{4%Yhgj|>Uz8#4C@-;%_DGwqa2#9$N5J6sJO&;|egU`fDN1<}fHm3d+ zd}b_C8fSF()*iI%;<$edRcX@fDvrXxL6#xt&B&zg?qrS4v@j0CHA#RFkG;u@MLeAn zpqJb5tVdP~@9vy$oC%VjoFBUU;8Cn`NlFNkpUy(}E<_~ide&>EI5M&5F5 ztPtoXF?zWe`d2}_4gCxOLFi{(0~~%0RX&GsxCWog#d-F2_Wh=`NV^cE{lGcoqM&gH2$pv#XqFhC# zN;h{Cp(MvacJ4^fxmc9!M-cD6rmpJ{+r7K*|7X)j{}Q?&I*suftQ%vx2%M#hOQ^yO zXLRfAkK^evcDC=Dbv0so`p4a9+`FsyCj^+dWw!#2Da5t0Y~>;(9M(Dmk4_eL;{$k- zlVy8(2%pS?AA>a0JO0cQaBsw%vVNIU_61Lr*(gVGQm{Wwp@o`$33mpt(5cih^|p8Y zPoQiO0`D(kWup^xy|UPaE7>-RyTKN|MPtx4^5*EY-63fqr@ZuR1E+A04^2&*DHt+U zN~9cZ;qmO6b^Dq%re9C`KEz}k$=aS^sg%F;goaYE<}EU}O-!sN3(^Z|?+NBF#xn=g zBVm1EAB3GOaEM8fiG)Q3Vr5<)M&gbJ6$GA#@qbS<%X^rJ#%65cDth+>UY3!Y6>@nD;sEU1Q{H66^!c>?P1MA7B`3M*f&Evg zgIfu#pbi>P8T*TP&LI1{afeoQ#{L}cFxHCsM<tkjL& z#X4L68Wswd`X5O>dhm_u^I2@s;6IUB$%r(=DMh{S#r?2vHu-I%m^uAN_ zS2t0F2*Zs|O&>K}btmX9D^+CyzwtiB4;9uSyG0g*k%=&W>eqSq6HJ6B|1Hk2DBsL2 z4fsO1u)SHemg}`S%&`jjb9^-9Fn4DHrQtH{NUW~RcL^JkA>Hk=O7~uWEp5nwA>R?s zk!3N<4C<)IfI3_Tzo7_-0kPu)M;*vs27pjwPuquJ~$Y0mVEmr zoRDw1?Fbzn@@@&Uzp%Ggmiv48d~8Cp5)ZVnsR(9~dFQeuzL?%+Wz+fGw)GL5aX~#7 z$`@IS)s{Woq&3{qZZhcP;L~F~4c{ybdmM@JG!V^s@SO^2H+Y3>YG_o60cDhwKTl*e zFY4zXJ)T`gt^)a)xkdjw z(4u`?r@|5lhdg1p<>o*?Rk1W23>BTaPu(;Ua!y1yeG>18XrH*M(!}ZYX{6soiC-bI z@4-o^k%(+!In+!Bqvkq1PiUpYEaM)$+Z(`K5e4D|BMv7;sl&i~49^oSO4jBp z1|!*D1IimgFL0+KXio<43vED1ggN>a&WY?`BqI=qFPSW?A3r94A$Q2dJssJj_9U7!hPA!*SV ztScEFoDg(kx`x<6!Y!{ zL(_Q1;O~*gJqOOLZxcr_%BgW4_ce~_KE@q>18)pV#&|qlQk6XEfVFbY0Hnj0VE1Ft4FrWMSJPVU)25k#GF3jdxIp*f`l9d4y}f$y^&m_S=?}W1LCvZY)~2JSLu+1)0(>i7%8wPLYR<-_-%-q zYKavK2hNaiJd!g>!gzjc?-d3h%Y2oPO}Mfr#UvIkgzlzlNb*CZ9jo&>Rj4Lmh>fY% zYuRpZsvW^g4Ap22a=Wfo1QJ!|VzA5++jKxzfDygTHY9hRl*F0DzB$Wl94lx=(utU) zgmnA7jR&MtgIV6RlH5LTr@y33lR&NnfTWYU_0PLdewzKmPEKLRATIPPt!H!WqvVqD zj{Of}9f4ZHefl1cs99|8>h0Di#xmC6tP;i|w*+dCQ;<3|q>p1_N+5wKp^#5TGTABi z-%+9=Cu66dRC&Z`3y2Zk!L7i%)wq&5gKY~{|9K2NoW5{+eg$e5^)rr|#b&A8eQMxo z*3P%cq)K_qJH5AHUk*eMkKkEBwn_EQPxhZI`uBOx7BSXyvVg0SY@m8X+BS%`P4;e^ z5^Ay#=8{;4}V7pc9@sc_@#C;9b5L!JPfQH+|Qf4EPifco(+f7X1dtz{aYs~jzS62Y3@@5Hn`A-y!}tbl zNn$DzStL4RADciP@^%t5dzAJqRh+p+Z17z0KPTzKyaPq%$aXV0NrCCGRh;~Bj}UG> z%3TC`x{>gXZwm?79YDe) z*M|hIRPd1qZREQ@*M)|Epo*K|9{Qr2{{mO~e;|nye%R~M_^gNxNv!-A=Wk@W)k5W3oV+Y^&;e|wI^CL($pfA`Y_YOPp%hT3?tNR0}%CxQyK>Cnl*_Rz1U1B$4fxeT5}^lgq>=Bji$X zHj`RabU{#0a{U#)sqN1P^}0c}45m>KBb)x8$l9As!d4-zx-r<-P{9{^k!ds`K!vS3 ze)ymRH@&Ha-w^Di)?V~5Ch@VKJ(VXWuYJX%oifj{k#Arcd-<^2PE@rbAA31(|E?!k zNjpvtG$o@d)=b@H{F>3IPsj3MATnghxbn15f{D2S*x$!W;CB{+65YP!`LW!Ck=*_l z48=sUe1-BNQ=uQ!MM1a72ooZc-%8Zn8F4mGRO|&Ww%|psi62I)JWPo!h!v3xCc4nQ zNPAaY=fgVXl9>q>Z10M^oStsvRqgb|L>#%HSSh37M*WMMCME%q>qcbKA$*H5J_XL* zkW5zib0Ya3oEU)k!k5gn9Q#%c_OTQ@ZP zHS(pw98ESaiiRi-qUUCd15m!FdBq=>|pvW7M$863lj=w)qnDbXp zLQ2V0AUx-lC+VnNOz1Hzhb?^rsnav`NSUz~?%wA)gfi(MI`>VYDo3@8-0dCQ5r0Cw zzd(G5w>upRP!*Ba-DUmlwwqpuxiNX30wad%6GN-zKjPuNxCvll9mI1XCfA9 zOjr$3kGD6SlBT@SX^ZF$hK#4t^JbG+&Myx3?NfBH5S9@7;5n~6`jA%(Hm8wuvdi0I zDZ$H;}!~Ix7 zocx_Tl^P&Kwgwb8a1nLszd;gbRpKBSc`Nf?5P3sX!Nf2^eDsv!Uq{KkBz`!wkPe(U zA%5g4l;Z{#60}RKH17`3-q6604tKKfT_lg}-G+UJW#%5P44ZAp{ zvj{u)+0Otj94dbXPdK6gvIB0>&^6wYFmO1?)n_jPHkg8|zZokD0UrSxB7Fv^UEAHQ zJ)@@ee4{^L=Zkxxy&$Ta)k=7@H+$keDq;+fx-4N6fYgbSK_u>0u{pX+kx+mLphSv% zgC%=nh)<6YL;G=J1c<+Qp|?d~R=16I{8B{{x-sOy+z4a7_jg0iHZx~dVg;OGXT*m8 zV~iYy>NC@kjBltI8OHh)pp}NWBNZL-z8i$UF%^)ZT}FL`hPR|PfVUg!mLZK^{RHbkFL>y zh{480B+XjC4YV%w3t2j{9kZFB7vi?eOo22sxE1Y3EW0;Fv431b$oR3Svkh$)mBgPv zEP>_NbF(e8$2(%3`oUOf+*kSX|IXz0Ai0BQe~aW%atUMPhD#Vt<R78O0Zw* z=PF*AGVlpBTY~v(-P|D`H+z}u?~wQsGCK4pmep8HaT#13Q~a@#`C3&QUr79=5N9G9 z1y~{)%Y28xuA7035x3L@lK(bjOIlfo$VAkvvAAFwCsxWt3EBzV-jw|&UMTeOLh7FN z^%YVS>Tth^1Pp`;9bjc)8ZkY3uEc&Y_Ke~)Cwqv{L!!5D=9HMVo8HV#vATR^i08-^ zRl_+^rkq*w`?2x^{!GfNmcJub4tp_oQNk39ITf9eCPPsiTu98dT-zD(qP@w$QPg-6 zk=W5$(6Gy}e;Lo*JG??kXSOi+pLg@4C1rwq9 zpeF`auc3soDd@_T!1!N@mFO-wy0wwohxSjhZBcH2C+SmG&j(R`YixW8IRFlfBWJoND0N zMRe$B7jYD!o5Q#2q4c<-n+I!Flnm?~1PU0DqHR=E)GI4v!FGstluM>F*sL{O>Yd8{y>}A}9=5B~0v4hF$dXR~z8Zm}@ z0$>37h7p^N>~TPo!~md&VdBki6jS7-aiU)rH}nR;KPQ(*XV8V60pYmY(!r;U^e3gk zb-68AVuA&nAl!GyZ7~gu`qRCs^Do+MLDZ$E+u{Y3MQ0>9R}4pCU-}|Z_NDsh;hSh- zRbg7;*N~+J3fJIKFi86{qTqYzQFO&_Z*+X$qX7NIdiZucimsjARZxUdzo$n*c+C(U z-$joi*}x9lqFSB*gcam>uS0Z(_b5Vhwgr5IFE`w6|QvM&l|4 zPX2N{n&U^23ZfgiEly4iRfm8Y#`%0+(ln178$(gF#crTaFh&UAn(PUZc`fWMCWsr z4<~^|7lU-mi+T7MKFye}43-(lN`g>LmC=N*0sU?OrVaWbcGD|J6OZ##jq`|n2{fuVkGt8=_gKS@xxFE zb2T4$AoT>7C>ZZH#mz^=YdGWG!-4_c}fulB&te`4K7W+j7Q zSXTd`)3=g&(!%i3uJar%FRZ43VDsaM1IFAq{Si#yN6Z~7cezHy(tjD`8@Hi#5L3ndLSzg;6Lh zpuZ0f+}vEFWjk(8W8P8KaEaI^zspj=P!0x?_V9)bw6F$DrEk^ihgnv0?R0X?<Z6vKgTi_1Tks!8?EGQ8P5PLe>X7wDV!%Mj-!PQlP>)Q_AGa_LF?Do& z$}P;!+L*&XJL?u_XO|kPRp)tWc9zTRy(fLMvxt|?&gwBXl}*yenand;U~-y?d~S

    5LW0RHdx(jhr77K()}_`eN#_-v%GwXnUg6Xzp^n+kUq z%7wAQX8hlYJgjE|Pq*W2bKzzjHx+i_$@B2+M%2FpC3Xepn+rqI!m05x!8PAB#UHbc)7MbIeP{}7!5tytUabFyYwrNxC3*IdfmXbslg8DOWw{j&oy;{XZ>>x zyXjPHr)kDg2bibCWRS@alVK(!Og1qYWwIFwKwh(#TTT-zT`Eg@3vcCS9gR`5t;{pS z8(CGGbMz8V^NkZH(H8ln2sMN*q=s8KVEE@C=x8P-Z2^~JeF}J!>sGdK?F#Oc(glo^ J=F{2C{{`SF==T5s diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-39.pyc deleted file mode 100644 index 161195237bc8e1db0f4a654db971ea6e5b2f6fc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4813 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 IHszlGA3$tS{Qv*} diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-39.pyc deleted file mode 100644 index 59eb7ea7fba4dfa20b089fccbfb90986936acbbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66351 zcmb?^2Y3|MwLfBKb|uk`aknE^z_x?|cib?DVvAxx*pN8RO0$v{R=Z-0fQ_99BUCZA z0fDh`aFK)x?!6~~((F*)%S+jp^5XRBH0LFx{eP$2*;yeHzwi6=@tbq+om z1z%aoY3FX|9_KU8XPpLTgLAL5areC| z{Z6B^$!T($offCnY1{2z83^Tv0#5ts!<@}k!!>lD8)|n$Tinq7Zs-9w^q?Es%Aswj zZ@U}na6>!X&`vk>kQ>^?p@&iS5jV8k4Lw>lyn5Wmyp;uRk3YxvsPB8+&|_}saX0jY z8+y_Wb-JN0H`MKh_PU`SH`MEf`rJ@I`ZOASDs=m_&%KxB=TmOl({AV)H}tF

    |! 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 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-39.pyc deleted file mode 100644 index 51be0b2629806100ac6f6f0126489998a35729de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91022 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 XblX+v4Tj-l{U7OE0XM4)U7h~}4vcWC diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-39.pyc deleted file mode 100644 index 27713b99ca9b996035013ab59755af30303e2e13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10824 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 NUdX(oy`%l$e*lF@^xyyh diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_ihatexml.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_ihatexml.py deleted file mode 100644 index 3ff803c..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_ihatexml.py +++ /dev/null @@ -1,289 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import re -import warnings - -from .constants import DataLossWarning - -baseChar = """ -[#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6] | [#x00D8-#x00F6] | -[#x00F8-#x00FF] | [#x0100-#x0131] | [#x0134-#x013E] | [#x0141-#x0148] | -[#x014A-#x017E] | [#x0180-#x01C3] | [#x01CD-#x01F0] | [#x01F4-#x01F5] | -[#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1] | #x0386 | -[#x0388-#x038A] | #x038C | [#x038E-#x03A1] | [#x03A3-#x03CE] | -[#x03D0-#x03D6] | #x03DA | #x03DC | #x03DE | #x03E0 | [#x03E2-#x03F3] | -[#x0401-#x040C] | [#x040E-#x044F] | [#x0451-#x045C] | [#x045E-#x0481] | -[#x0490-#x04C4] | [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB] | -[#x04EE-#x04F5] | [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559 | -[#x0561-#x0586] | [#x05D0-#x05EA] | [#x05F0-#x05F2] | [#x0621-#x063A] | -[#x0641-#x064A] | [#x0671-#x06B7] | [#x06BA-#x06BE] | [#x06C0-#x06CE] | -[#x06D0-#x06D3] | #x06D5 | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D | -[#x0958-#x0961] | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8] | -[#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD] | -[#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A] | [#x0A0F-#x0A10] | -[#x0A13-#x0A28] | [#x0A2A-#x0A30] | [#x0A32-#x0A33] | [#x0A35-#x0A36] | -[#x0A38-#x0A39] | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74] | -[#x0A85-#x0A8B] | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8] | -[#x0AAA-#x0AB0] | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD | #x0AE0 | -[#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28] | [#x0B2A-#x0B30] | -[#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D | [#x0B5C-#x0B5D] | -[#x0B5F-#x0B61] | [#x0B85-#x0B8A] | [#x0B8E-#x0B90] | [#x0B92-#x0B95] | -[#x0B99-#x0B9A] | #x0B9C | [#x0B9E-#x0B9F] | [#x0BA3-#x0BA4] | -[#x0BA8-#x0BAA] | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9] | [#x0C05-#x0C0C] | -[#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33] | [#x0C35-#x0C39] | -[#x0C60-#x0C61] | [#x0C85-#x0C8C] | [#x0C8E-#x0C90] | [#x0C92-#x0CA8] | -[#x0CAA-#x0CB3] | [#x0CB5-#x0CB9] | #x0CDE | [#x0CE0-#x0CE1] | -[#x0D05-#x0D0C] | [#x0D0E-#x0D10] | [#x0D12-#x0D28] | [#x0D2A-#x0D39] | -[#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30 | [#x0E32-#x0E33] | -[#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84 | [#x0E87-#x0E88] | #x0E8A | -#x0E8D | [#x0E94-#x0E97] | [#x0E99-#x0E9F] | [#x0EA1-#x0EA3] | #x0EA5 | -#x0EA7 | [#x0EAA-#x0EAB] | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3] | -#x0EBD | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69] | -[#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103] | -[#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112] | #x113C | -#x113E | #x1140 | #x114C | #x114E | #x1150 | [#x1154-#x1155] | #x1159 | -[#x115F-#x1161] | #x1163 | #x1165 | #x1167 | #x1169 | [#x116D-#x116E] | -[#x1172-#x1173] | #x1175 | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF] | -[#x11B7-#x11B8] | #x11BA | [#x11BC-#x11C2] | #x11EB | #x11F0 | #x11F9 | -[#x1E00-#x1E9B] | [#x1EA0-#x1EF9] | [#x1F00-#x1F15] | [#x1F18-#x1F1D] | -[#x1F20-#x1F45] | [#x1F48-#x1F4D] | [#x1F50-#x1F57] | #x1F59 | #x1F5B | -#x1F5D | [#x1F5F-#x1F7D] | [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | -[#x1FC2-#x1FC4] | [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB] | -[#x1FE0-#x1FEC] | [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126 | -[#x212A-#x212B] | #x212E | [#x2180-#x2182] | [#x3041-#x3094] | -[#x30A1-#x30FA] | [#x3105-#x312C] | [#xAC00-#xD7A3]""" - -ideographic = """[#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]""" - -combiningCharacter = """ -[#x0300-#x0345] | [#x0360-#x0361] | [#x0483-#x0486] | [#x0591-#x05A1] | -[#x05A3-#x05B9] | [#x05BB-#x05BD] | #x05BF | [#x05C1-#x05C2] | #x05C4 | -[#x064B-#x0652] | #x0670 | [#x06D6-#x06DC] | [#x06DD-#x06DF] | -[#x06E0-#x06E4] | [#x06E7-#x06E8] | [#x06EA-#x06ED] | [#x0901-#x0903] | -#x093C | [#x093E-#x094C] | #x094D | [#x0951-#x0954] | [#x0962-#x0963] | -[#x0981-#x0983] | #x09BC | #x09BE | #x09BF | [#x09C0-#x09C4] | -[#x09C7-#x09C8] | [#x09CB-#x09CD] | #x09D7 | [#x09E2-#x09E3] | #x0A02 | -#x0A3C | #x0A3E | #x0A3F | [#x0A40-#x0A42] | [#x0A47-#x0A48] | -[#x0A4B-#x0A4D] | [#x0A70-#x0A71] | [#x0A81-#x0A83] | #x0ABC | -[#x0ABE-#x0AC5] | [#x0AC7-#x0AC9] | [#x0ACB-#x0ACD] | [#x0B01-#x0B03] | -#x0B3C | [#x0B3E-#x0B43] | [#x0B47-#x0B48] | [#x0B4B-#x0B4D] | -[#x0B56-#x0B57] | [#x0B82-#x0B83] | [#x0BBE-#x0BC2] | [#x0BC6-#x0BC8] | -[#x0BCA-#x0BCD] | #x0BD7 | [#x0C01-#x0C03] | [#x0C3E-#x0C44] | -[#x0C46-#x0C48] | [#x0C4A-#x0C4D] | [#x0C55-#x0C56] | [#x0C82-#x0C83] | -[#x0CBE-#x0CC4] | [#x0CC6-#x0CC8] | [#x0CCA-#x0CCD] | [#x0CD5-#x0CD6] | -[#x0D02-#x0D03] | [#x0D3E-#x0D43] | [#x0D46-#x0D48] | [#x0D4A-#x0D4D] | -#x0D57 | #x0E31 | [#x0E34-#x0E3A] | [#x0E47-#x0E4E] | #x0EB1 | -[#x0EB4-#x0EB9] | [#x0EBB-#x0EBC] | [#x0EC8-#x0ECD] | [#x0F18-#x0F19] | -#x0F35 | #x0F37 | #x0F39 | #x0F3E | #x0F3F | [#x0F71-#x0F84] | -[#x0F86-#x0F8B] | [#x0F90-#x0F95] | #x0F97 | [#x0F99-#x0FAD] | -[#x0FB1-#x0FB7] | #x0FB9 | [#x20D0-#x20DC] | #x20E1 | [#x302A-#x302F] | -#x3099 | #x309A""" - -digit = """ -[#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9] | [#x0966-#x096F] | -[#x09E6-#x09EF] | [#x0A66-#x0A6F] | [#x0AE6-#x0AEF] | [#x0B66-#x0B6F] | -[#x0BE7-#x0BEF] | [#x0C66-#x0C6F] | [#x0CE6-#x0CEF] | [#x0D66-#x0D6F] | -[#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29]""" - -extender = """ -#x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46 | #x0EC6 | #x3005 | -#[#x3031-#x3035] | [#x309D-#x309E] | [#x30FC-#x30FE]""" - -letter = " | ".join([baseChar, ideographic]) - -# Without the -name = " | ".join([letter, digit, ".", "-", "_", combiningCharacter, - extender]) -nameFirst = " | ".join([letter, "_"]) - -reChar = re.compile(r"#x([\d|A-F]{4,4})") -reCharRange = re.compile(r"\[#x([\d|A-F]{4,4})-#x([\d|A-F]{4,4})\]") - - -def charStringToList(chars): - charRanges = [item.strip() for item in chars.split(" | ")] - rv = [] - for item in charRanges: - foundMatch = False - for regexp in (reChar, reCharRange): - match = regexp.match(item) - if match is not None: - rv.append([hexToInt(item) for item in match.groups()]) - if len(rv[-1]) == 1: - rv[-1] = rv[-1] * 2 - foundMatch = True - break - if not foundMatch: - assert len(item) == 1 - - rv.append([ord(item)] * 2) - rv = normaliseCharList(rv) - return rv - - -def normaliseCharList(charList): - charList = sorted(charList) - for item in charList: - assert item[1] >= item[0] - rv = [] - i = 0 - while i < len(charList): - j = 1 - rv.append(charList[i]) - while i + j < len(charList) and charList[i + j][0] <= rv[-1][1] + 1: - rv[-1][1] = charList[i + j][1] - j += 1 - i += j - return rv - - -# We don't really support characters above the BMP :( -max_unicode = int("FFFF", 16) - - -def missingRanges(charList): - rv = [] - if charList[0] != 0: - rv.append([0, charList[0][0] - 1]) - for i, item in enumerate(charList[:-1]): - rv.append([item[1] + 1, charList[i + 1][0] - 1]) - if charList[-1][1] != max_unicode: - rv.append([charList[-1][1] + 1, max_unicode]) - return rv - - -def listToRegexpStr(charList): - rv = [] - for item in charList: - if item[0] == item[1]: - rv.append(escapeRegexp(chr(item[0]))) - else: - rv.append(escapeRegexp(chr(item[0])) + "-" + - escapeRegexp(chr(item[1]))) - return "[%s]" % "".join(rv) - - -def hexToInt(hex_str): - return int(hex_str, 16) - - -def escapeRegexp(string): - specialCharacters = (".", "^", "$", "*", "+", "?", "{", "}", - "[", "]", "|", "(", ")", "-") - for char in specialCharacters: - string = string.replace(char, "\\" + char) - - return string - -# output from the above -nonXmlNameBMPRegexp = re.compile('[\x00-,/:-@\\[-\\^`\\{-\xb6\xb8-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u02cf\u02d2-\u02ff\u0346-\u035f\u0362-\u0385\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482\u0487-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u0590\u05a2\u05ba\u05be\u05c0\u05c3\u05c5-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u063f\u0653-\u065f\u066a-\u066f\u06b8-\u06b9\u06bf\u06cf\u06d4\u06e9\u06ee-\u06ef\u06fa-\u0900\u0904\u093a-\u093b\u094e-\u0950\u0955-\u0957\u0964-\u0965\u0970-\u0980\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09bd\u09c5-\u09c6\u09c9-\u09ca\u09ce-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09f2-\u0a01\u0a03-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a58\u0a5d\u0a5f-\u0a65\u0a75-\u0a80\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0adf\u0ae1-\u0ae5\u0af0-\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3b\u0b44-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b62-\u0b65\u0b70-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bd6\u0bd8-\u0be6\u0bf0-\u0c00\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c3d\u0c45\u0c49\u0c4e-\u0c54\u0c57-\u0c5f\u0c62-\u0c65\u0c70-\u0c81\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbd\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce2-\u0ce5\u0cf0-\u0d01\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d3d\u0d44-\u0d45\u0d49\u0d4e-\u0d56\u0d58-\u0d5f\u0d62-\u0d65\u0d70-\u0e00\u0e2f\u0e3b-\u0e3f\u0e4f\u0e5a-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eba\u0ebe-\u0ebf\u0ec5\u0ec7\u0ece-\u0ecf\u0eda-\u0f17\u0f1a-\u0f1f\u0f2a-\u0f34\u0f36\u0f38\u0f3a-\u0f3d\u0f48\u0f6a-\u0f70\u0f85\u0f8c-\u0f8f\u0f96\u0f98\u0fae-\u0fb0\u0fb8\u0fba-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u20cf\u20dd-\u20e0\u20e2-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3004\u3006\u3008-\u3020\u3030\u3036-\u3040\u3095-\u3098\u309b-\u309c\u309f-\u30a0\u30fb\u30ff-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') # noqa - -nonXmlNameFirstBMPRegexp = re.compile('[\x00-@\\[-\\^`\\{-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u0385\u0387\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u0640\u064b-\u0670\u06b8-\u06b9\u06bf\u06cf\u06d4\u06d6-\u06e4\u06e7-\u0904\u093a-\u093c\u093e-\u0957\u0962-\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09db\u09de\u09e2-\u09ef\u09f2-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a58\u0a5d\u0a5f-\u0a71\u0a75-\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abc\u0abe-\u0adf\u0ae1-\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3c\u0b3e-\u0b5b\u0b5e\u0b62-\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c5f\u0c62-\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cdd\u0cdf\u0ce2-\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d5f\u0d62-\u0e00\u0e2f\u0e31\u0e34-\u0e3f\u0e46-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eb1\u0eb4-\u0ebc\u0ebe-\u0ebf\u0ec5-\u0f3f\u0f48\u0f6a-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3006\u3008-\u3020\u302a-\u3040\u3095-\u30a0\u30fb-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') # noqa - -# Simpler things -nonPubidCharRegexp = re.compile("[^\x20\x0D\x0Aa-zA-Z0-9\\-'()+,./:=?;!*#@$_%]") - - -class InfosetFilter(object): - replacementRegexp = re.compile(r"U[\dA-F]{5,5}") - - def __init__(self, - dropXmlnsLocalName=False, - dropXmlnsAttrNs=False, - preventDoubleDashComments=False, - preventDashAtCommentEnd=False, - replaceFormFeedCharacters=True, - preventSingleQuotePubid=False): - - self.dropXmlnsLocalName = dropXmlnsLocalName - self.dropXmlnsAttrNs = dropXmlnsAttrNs - - self.preventDoubleDashComments = preventDoubleDashComments - self.preventDashAtCommentEnd = preventDashAtCommentEnd - - self.replaceFormFeedCharacters = replaceFormFeedCharacters - - self.preventSingleQuotePubid = preventSingleQuotePubid - - self.replaceCache = {} - - def coerceAttribute(self, name, namespace=None): - if self.dropXmlnsLocalName and name.startswith("xmlns:"): - warnings.warn("Attributes cannot begin with xmlns", DataLossWarning) - return None - elif (self.dropXmlnsAttrNs and - namespace == "http://www.w3.org/2000/xmlns/"): - warnings.warn("Attributes cannot be in the xml namespace", DataLossWarning) - return None - else: - return self.toXmlName(name) - - def coerceElement(self, name): - return self.toXmlName(name) - - def coerceComment(self, data): - if self.preventDoubleDashComments: - while "--" in data: - warnings.warn("Comments cannot contain adjacent dashes", DataLossWarning) - data = data.replace("--", "- -") - if data.endswith("-"): - warnings.warn("Comments cannot end in a dash", DataLossWarning) - data += " " - return data - - def coerceCharacters(self, data): - if self.replaceFormFeedCharacters: - for _ in range(data.count("\x0C")): - warnings.warn("Text cannot contain U+000C", DataLossWarning) - data = data.replace("\x0C", " ") - # Other non-xml characters - return data - - def coercePubid(self, data): - dataOutput = data - for char in nonPubidCharRegexp.findall(data): - warnings.warn("Coercing non-XML pubid", DataLossWarning) - replacement = self.getReplacementCharacter(char) - dataOutput = dataOutput.replace(char, replacement) - if self.preventSingleQuotePubid and dataOutput.find("'") >= 0: - warnings.warn("Pubid cannot contain single quote", DataLossWarning) - dataOutput = dataOutput.replace("'", self.getReplacementCharacter("'")) - return dataOutput - - def toXmlName(self, name): - nameFirst = name[0] - nameRest = name[1:] - m = nonXmlNameFirstBMPRegexp.match(nameFirst) - if m: - warnings.warn("Coercing non-XML name: %s" % name, DataLossWarning) - nameFirstOutput = self.getReplacementCharacter(nameFirst) - else: - nameFirstOutput = nameFirst - - nameRestOutput = nameRest - replaceChars = set(nonXmlNameBMPRegexp.findall(nameRest)) - for char in replaceChars: - warnings.warn("Coercing non-XML name: %s" % name, DataLossWarning) - replacement = self.getReplacementCharacter(char) - nameRestOutput = nameRestOutput.replace(char, replacement) - return nameFirstOutput + nameRestOutput - - def getReplacementCharacter(self, char): - if char in self.replaceCache: - replacement = self.replaceCache[char] - else: - replacement = self.escapeChar(char) - return replacement - - def fromXmlName(self, name): - for item in set(self.replacementRegexp.findall(name)): - name = name.replace(item, self.unescapeChar(item)) - return name - - def escapeChar(self, char): - replacement = "U%05X" % ord(char) - self.replaceCache[char] = replacement - return replacement - - def unescapeChar(self, charcode): - return chr(int(charcode[1:], 16)) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_inputstream.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_inputstream.py deleted file mode 100644 index e0bb376..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_inputstream.py +++ /dev/null @@ -1,918 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from pip._vendor.six import text_type -from pip._vendor.six.moves import http_client, urllib - -import codecs -import re -from io import BytesIO, StringIO - -from pip._vendor import webencodings - -from .constants import EOF, spaceCharacters, asciiLetters, asciiUppercase -from .constants import _ReparseException -from . import _utils - -# Non-unicode versions of constants for use in the pre-parser -spaceCharactersBytes = frozenset([item.encode("ascii") for item in spaceCharacters]) -asciiLettersBytes = frozenset([item.encode("ascii") for item in asciiLetters]) -asciiUppercaseBytes = frozenset([item.encode("ascii") for item in asciiUppercase]) -spacesAngleBrackets = spaceCharactersBytes | frozenset([b">", b"<"]) - - -invalid_unicode_no_surrogate = "[\u0001-\u0008\u000B\u000E-\u001F\u007F-\u009F\uFDD0-\uFDEF\uFFFE\uFFFF\U0001FFFE\U0001FFFF\U0002FFFE\U0002FFFF\U0003FFFE\U0003FFFF\U0004FFFE\U0004FFFF\U0005FFFE\U0005FFFF\U0006FFFE\U0006FFFF\U0007FFFE\U0007FFFF\U0008FFFE\U0008FFFF\U0009FFFE\U0009FFFF\U000AFFFE\U000AFFFF\U000BFFFE\U000BFFFF\U000CFFFE\U000CFFFF\U000DFFFE\U000DFFFF\U000EFFFE\U000EFFFF\U000FFFFE\U000FFFFF\U0010FFFE\U0010FFFF]" # noqa - -if _utils.supports_lone_surrogates: - # Use one extra step of indirection and create surrogates with - # eval. Not using this indirection would introduce an illegal - # unicode literal on platforms not supporting such lone - # surrogates. - assert invalid_unicode_no_surrogate[-1] == "]" and invalid_unicode_no_surrogate.count("]") == 1 - invalid_unicode_re = re.compile(invalid_unicode_no_surrogate[:-1] + - eval('"\\uD800-\\uDFFF"') + # pylint:disable=eval-used - "]") -else: - invalid_unicode_re = re.compile(invalid_unicode_no_surrogate) - -non_bmp_invalid_codepoints = {0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, - 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, - 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE, - 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, - 0xBFFFE, 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE, - 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, - 0x10FFFE, 0x10FFFF} - -ascii_punctuation_re = re.compile("[\u0009-\u000D\u0020-\u002F\u003A-\u0040\u005C\u005B-\u0060\u007B-\u007E]") - -# Cache for charsUntil() -charsUntilRegEx = {} - - -class BufferedStream(object): - """Buffering for streams that do not have buffering of their own - - The buffer is implemented as a list of chunks on the assumption that - joining many strings will be slow since it is O(n**2) - """ - - def __init__(self, stream): - self.stream = stream - self.buffer = [] - self.position = [-1, 0] # chunk number, offset - - def tell(self): - pos = 0 - for chunk in self.buffer[:self.position[0]]: - pos += len(chunk) - pos += self.position[1] - return pos - - def seek(self, pos): - assert pos <= self._bufferedBytes() - offset = pos - i = 0 - while len(self.buffer[i]) < offset: - offset -= len(self.buffer[i]) - i += 1 - self.position = [i, offset] - - def read(self, bytes): - if not self.buffer: - return self._readStream(bytes) - elif (self.position[0] == len(self.buffer) and - self.position[1] == len(self.buffer[-1])): - return self._readStream(bytes) - else: - return self._readFromBuffer(bytes) - - def _bufferedBytes(self): - return sum([len(item) for item in self.buffer]) - - def _readStream(self, bytes): - data = self.stream.read(bytes) - self.buffer.append(data) - self.position[0] += 1 - self.position[1] = len(data) - return data - - def _readFromBuffer(self, bytes): - remainingBytes = bytes - rv = [] - bufferIndex = self.position[0] - bufferOffset = self.position[1] - while bufferIndex < len(self.buffer) and remainingBytes != 0: - assert remainingBytes > 0 - bufferedData = self.buffer[bufferIndex] - - if remainingBytes <= len(bufferedData) - bufferOffset: - bytesToRead = remainingBytes - self.position = [bufferIndex, bufferOffset + bytesToRead] - else: - bytesToRead = len(bufferedData) - bufferOffset - self.position = [bufferIndex, len(bufferedData)] - bufferIndex += 1 - rv.append(bufferedData[bufferOffset:bufferOffset + bytesToRead]) - remainingBytes -= bytesToRead - - bufferOffset = 0 - - if remainingBytes: - rv.append(self._readStream(remainingBytes)) - - return b"".join(rv) - - -def HTMLInputStream(source, **kwargs): - # Work around Python bug #20007: read(0) closes the connection. - # http://bugs.python.org/issue20007 - if (isinstance(source, http_client.HTTPResponse) or - # Also check for addinfourl wrapping HTTPResponse - (isinstance(source, urllib.response.addbase) and - isinstance(source.fp, http_client.HTTPResponse))): - isUnicode = False - elif hasattr(source, "read"): - isUnicode = isinstance(source.read(0), text_type) - else: - isUnicode = isinstance(source, text_type) - - if isUnicode: - encodings = [x for x in kwargs if x.endswith("_encoding")] - if encodings: - raise TypeError("Cannot set an encoding with a unicode input, set %r" % encodings) - - return HTMLUnicodeInputStream(source, **kwargs) - else: - return HTMLBinaryInputStream(source, **kwargs) - - -class HTMLUnicodeInputStream(object): - """Provides a unicode stream of characters to the HTMLTokenizer. - - This class takes care of character encoding and removing or replacing - incorrect byte-sequences and also provides column and line tracking. - - """ - - _defaultChunkSize = 10240 - - def __init__(self, source): - """Initialises the HTMLInputStream. - - HTMLInputStream(source, [encoding]) -> Normalized stream from source - for use by html5lib. - - source can be either a file-object, local filename or a string. - - The optional encoding parameter must be a string that indicates - the encoding. If specified, that encoding will be used, - regardless of any BOM or later declaration (such as in a meta - element) - - """ - - if not _utils.supports_lone_surrogates: - # Such platforms will have already checked for such - # surrogate errors, so no need to do this checking. - self.reportCharacterErrors = None - elif len("\U0010FFFF") == 1: - self.reportCharacterErrors = self.characterErrorsUCS4 - else: - self.reportCharacterErrors = self.characterErrorsUCS2 - - # List of where new lines occur - self.newLines = [0] - - self.charEncoding = (lookupEncoding("utf-8"), "certain") - self.dataStream = self.openStream(source) - - self.reset() - - def reset(self): - self.chunk = "" - self.chunkSize = 0 - self.chunkOffset = 0 - self.errors = [] - - # number of (complete) lines in previous chunks - self.prevNumLines = 0 - # number of columns in the last line of the previous chunk - self.prevNumCols = 0 - - # Deal with CR LF and surrogates split over chunk boundaries - self._bufferedCharacter = None - - def openStream(self, source): - """Produces a file object from source. - - source can be either a file object, local filename or a string. - - """ - # Already a file object - if hasattr(source, 'read'): - stream = source - else: - stream = StringIO(source) - - return stream - - def _position(self, offset): - chunk = self.chunk - nLines = chunk.count('\n', 0, offset) - positionLine = self.prevNumLines + nLines - lastLinePos = chunk.rfind('\n', 0, offset) - if lastLinePos == -1: - positionColumn = self.prevNumCols + offset - else: - positionColumn = offset - (lastLinePos + 1) - return (positionLine, positionColumn) - - def position(self): - """Returns (line, col) of the current position in the stream.""" - line, col = self._position(self.chunkOffset) - return (line + 1, col) - - def char(self): - """ Read one character from the stream or queue if available. Return - EOF when EOF is reached. - """ - # Read a new chunk from the input stream if necessary - if self.chunkOffset >= self.chunkSize: - if not self.readChunk(): - return EOF - - chunkOffset = self.chunkOffset - char = self.chunk[chunkOffset] - self.chunkOffset = chunkOffset + 1 - - return char - - def readChunk(self, chunkSize=None): - if chunkSize is None: - chunkSize = self._defaultChunkSize - - self.prevNumLines, self.prevNumCols = self._position(self.chunkSize) - - self.chunk = "" - self.chunkSize = 0 - self.chunkOffset = 0 - - data = self.dataStream.read(chunkSize) - - # Deal with CR LF and surrogates broken across chunks - if self._bufferedCharacter: - data = self._bufferedCharacter + data - self._bufferedCharacter = None - elif not data: - # We have no more data, bye-bye stream - return False - - if len(data) > 1: - lastv = ord(data[-1]) - if lastv == 0x0D or 0xD800 <= lastv <= 0xDBFF: - self._bufferedCharacter = data[-1] - data = data[:-1] - - if self.reportCharacterErrors: - self.reportCharacterErrors(data) - - # Replace invalid characters - data = data.replace("\r\n", "\n") - data = data.replace("\r", "\n") - - self.chunk = data - self.chunkSize = len(data) - - return True - - def characterErrorsUCS4(self, data): - for _ in range(len(invalid_unicode_re.findall(data))): - self.errors.append("invalid-codepoint") - - def characterErrorsUCS2(self, data): - # Someone picked the wrong compile option - # You lose - skip = False - for match in invalid_unicode_re.finditer(data): - if skip: - continue - codepoint = ord(match.group()) - pos = match.start() - # Pretty sure there should be endianness issues here - if _utils.isSurrogatePair(data[pos:pos + 2]): - # We have a surrogate pair! - char_val = _utils.surrogatePairToCodepoint(data[pos:pos + 2]) - if char_val in non_bmp_invalid_codepoints: - self.errors.append("invalid-codepoint") - skip = True - elif (codepoint >= 0xD800 and codepoint <= 0xDFFF and - pos == len(data) - 1): - self.errors.append("invalid-codepoint") - else: - skip = False - self.errors.append("invalid-codepoint") - - def charsUntil(self, characters, opposite=False): - """ Returns a string of characters from the stream up to but not - including any character in 'characters' or EOF. 'characters' must be - a container that supports the 'in' method and iteration over its - characters. - """ - - # Use a cache of regexps to find the required characters - try: - chars = charsUntilRegEx[(characters, opposite)] - except KeyError: - if __debug__: - for c in characters: - assert(ord(c) < 128) - regex = "".join(["\\x%02x" % ord(c) for c in characters]) - if not opposite: - regex = "^%s" % regex - chars = charsUntilRegEx[(characters, opposite)] = re.compile("[%s]+" % regex) - - rv = [] - - while True: - # Find the longest matching prefix - m = chars.match(self.chunk, self.chunkOffset) - if m is None: - # If nothing matched, and it wasn't because we ran out of chunk, - # then stop - if self.chunkOffset != self.chunkSize: - break - else: - end = m.end() - # If not the whole chunk matched, return everything - # up to the part that didn't match - if end != self.chunkSize: - rv.append(self.chunk[self.chunkOffset:end]) - self.chunkOffset = end - break - # If the whole remainder of the chunk matched, - # use it all and read the next chunk - rv.append(self.chunk[self.chunkOffset:]) - if not self.readChunk(): - # Reached EOF - break - - r = "".join(rv) - return r - - def unget(self, char): - # Only one character is allowed to be ungotten at once - it must - # be consumed again before any further call to unget - if char is not EOF: - if self.chunkOffset == 0: - # unget is called quite rarely, so it's a good idea to do - # more work here if it saves a bit of work in the frequently - # called char and charsUntil. - # So, just prepend the ungotten character onto the current - # chunk: - self.chunk = char + self.chunk - self.chunkSize += 1 - else: - self.chunkOffset -= 1 - assert self.chunk[self.chunkOffset] == char - - -class HTMLBinaryInputStream(HTMLUnicodeInputStream): - """Provides a unicode stream of characters to the HTMLTokenizer. - - This class takes care of character encoding and removing or replacing - incorrect byte-sequences and also provides column and line tracking. - - """ - - def __init__(self, source, override_encoding=None, transport_encoding=None, - same_origin_parent_encoding=None, likely_encoding=None, - default_encoding="windows-1252", useChardet=True): - """Initialises the HTMLInputStream. - - HTMLInputStream(source, [encoding]) -> Normalized stream from source - for use by html5lib. - - source can be either a file-object, local filename or a string. - - The optional encoding parameter must be a string that indicates - the encoding. If specified, that encoding will be used, - regardless of any BOM or later declaration (such as in a meta - element) - - """ - # Raw Stream - for unicode objects this will encode to utf-8 and set - # self.charEncoding as appropriate - self.rawStream = self.openStream(source) - - HTMLUnicodeInputStream.__init__(self, self.rawStream) - - # Encoding Information - # Number of bytes to use when looking for a meta element with - # encoding information - self.numBytesMeta = 1024 - # Number of bytes to use when using detecting encoding using chardet - self.numBytesChardet = 100 - # Things from args - self.override_encoding = override_encoding - self.transport_encoding = transport_encoding - self.same_origin_parent_encoding = same_origin_parent_encoding - self.likely_encoding = likely_encoding - self.default_encoding = default_encoding - - # Determine encoding - self.charEncoding = self.determineEncoding(useChardet) - assert self.charEncoding[0] is not None - - # Call superclass - self.reset() - - def reset(self): - self.dataStream = self.charEncoding[0].codec_info.streamreader(self.rawStream, 'replace') - HTMLUnicodeInputStream.reset(self) - - def openStream(self, source): - """Produces a file object from source. - - source can be either a file object, local filename or a string. - - """ - # Already a file object - if hasattr(source, 'read'): - stream = source - else: - stream = BytesIO(source) - - try: - stream.seek(stream.tell()) - except Exception: - stream = BufferedStream(stream) - - return stream - - def determineEncoding(self, chardet=True): - # BOMs take precedence over everything - # This will also read past the BOM if present - charEncoding = self.detectBOM(), "certain" - if charEncoding[0] is not None: - return charEncoding - - # If we've been overridden, we've been overridden - charEncoding = lookupEncoding(self.override_encoding), "certain" - if charEncoding[0] is not None: - return charEncoding - - # Now check the transport layer - charEncoding = lookupEncoding(self.transport_encoding), "certain" - if charEncoding[0] is not None: - return charEncoding - - # Look for meta elements with encoding information - charEncoding = self.detectEncodingMeta(), "tentative" - if charEncoding[0] is not None: - return charEncoding - - # Parent document encoding - charEncoding = lookupEncoding(self.same_origin_parent_encoding), "tentative" - if charEncoding[0] is not None and not charEncoding[0].name.startswith("utf-16"): - return charEncoding - - # "likely" encoding - charEncoding = lookupEncoding(self.likely_encoding), "tentative" - if charEncoding[0] is not None: - return charEncoding - - # Guess with chardet, if available - if chardet: - try: - from pip._vendor.chardet.universaldetector import UniversalDetector - except ImportError: - pass - else: - buffers = [] - detector = UniversalDetector() - while not detector.done: - buffer = self.rawStream.read(self.numBytesChardet) - assert isinstance(buffer, bytes) - if not buffer: - break - buffers.append(buffer) - detector.feed(buffer) - detector.close() - encoding = lookupEncoding(detector.result['encoding']) - self.rawStream.seek(0) - if encoding is not None: - return encoding, "tentative" - - # Try the default encoding - charEncoding = lookupEncoding(self.default_encoding), "tentative" - if charEncoding[0] is not None: - return charEncoding - - # Fallback to html5lib's default if even that hasn't worked - return lookupEncoding("windows-1252"), "tentative" - - def changeEncoding(self, newEncoding): - assert self.charEncoding[1] != "certain" - newEncoding = lookupEncoding(newEncoding) - if newEncoding is None: - return - if newEncoding.name in ("utf-16be", "utf-16le"): - newEncoding = lookupEncoding("utf-8") - assert newEncoding is not None - elif newEncoding == self.charEncoding[0]: - self.charEncoding = (self.charEncoding[0], "certain") - else: - self.rawStream.seek(0) - self.charEncoding = (newEncoding, "certain") - self.reset() - raise _ReparseException("Encoding changed from %s to %s" % (self.charEncoding[0], newEncoding)) - - def detectBOM(self): - """Attempts to detect at BOM at the start of the stream. If - an encoding can be determined from the BOM return the name of the - encoding otherwise return None""" - bomDict = { - codecs.BOM_UTF8: 'utf-8', - codecs.BOM_UTF16_LE: 'utf-16le', codecs.BOM_UTF16_BE: 'utf-16be', - codecs.BOM_UTF32_LE: 'utf-32le', codecs.BOM_UTF32_BE: 'utf-32be' - } - - # Go to beginning of file and read in 4 bytes - string = self.rawStream.read(4) - assert isinstance(string, bytes) - - # Try detecting the BOM using bytes from the string - encoding = bomDict.get(string[:3]) # UTF-8 - seek = 3 - if not encoding: - # Need to detect UTF-32 before UTF-16 - encoding = bomDict.get(string) # UTF-32 - seek = 4 - if not encoding: - encoding = bomDict.get(string[:2]) # UTF-16 - seek = 2 - - # Set the read position past the BOM if one was found, otherwise - # set it to the start of the stream - if encoding: - self.rawStream.seek(seek) - return lookupEncoding(encoding) - else: - self.rawStream.seek(0) - return None - - def detectEncodingMeta(self): - """Report the encoding declared by the meta element - """ - buffer = self.rawStream.read(self.numBytesMeta) - assert isinstance(buffer, bytes) - parser = EncodingParser(buffer) - self.rawStream.seek(0) - encoding = parser.getEncoding() - - if encoding is not None and encoding.name in ("utf-16be", "utf-16le"): - encoding = lookupEncoding("utf-8") - - return encoding - - -class EncodingBytes(bytes): - """String-like object with an associated position and various extra methods - If the position is ever greater than the string length then an exception is - raised""" - def __new__(self, value): - assert isinstance(value, bytes) - return bytes.__new__(self, value.lower()) - - def __init__(self, value): - # pylint:disable=unused-argument - self._position = -1 - - def __iter__(self): - return self - - def __next__(self): - p = self._position = self._position + 1 - if p >= len(self): - raise StopIteration - elif p < 0: - raise TypeError - return self[p:p + 1] - - def next(self): - # Py2 compat - return self.__next__() - - def previous(self): - p = self._position - if p >= len(self): - raise StopIteration - elif p < 0: - raise TypeError - self._position = p = p - 1 - return self[p:p + 1] - - def setPosition(self, position): - if self._position >= len(self): - raise StopIteration - self._position = position - - def getPosition(self): - if self._position >= len(self): - raise StopIteration - if self._position >= 0: - return self._position - else: - return None - - position = property(getPosition, setPosition) - - def getCurrentByte(self): - return self[self.position:self.position + 1] - - currentByte = property(getCurrentByte) - - def skip(self, chars=spaceCharactersBytes): - """Skip past a list of characters""" - p = self.position # use property for the error-checking - while p < len(self): - c = self[p:p + 1] - if c not in chars: - self._position = p - return c - p += 1 - self._position = p - return None - - def skipUntil(self, chars): - p = self.position - while p < len(self): - c = self[p:p + 1] - if c in chars: - self._position = p - return c - p += 1 - self._position = p - return None - - def matchBytes(self, bytes): - """Look for a sequence of bytes at the start of a string. If the bytes - are found return True and advance the position to the byte after the - match. Otherwise return False and leave the position alone""" - rv = self.startswith(bytes, self.position) - if rv: - self.position += len(bytes) - return rv - - def jumpTo(self, bytes): - """Look for the next sequence of bytes matching a given sequence. If - a match is found advance the position to the last byte of the match""" - try: - self._position = self.index(bytes, self.position) + len(bytes) - 1 - except ValueError: - raise StopIteration - return True - - -class EncodingParser(object): - """Mini parser for detecting character encoding from meta elements""" - - def __init__(self, data): - """string - the data to work on for encoding detection""" - self.data = EncodingBytes(data) - self.encoding = None - - def getEncoding(self): - if b"") - - def handleMeta(self): - if self.data.currentByte not in spaceCharactersBytes: - # if we have ") - - def getAttribute(self): - """Return a name,value pair for the next attribute in the stream, - if one is found, or None""" - data = self.data - # Step 1 (skip chars) - c = data.skip(spaceCharactersBytes | frozenset([b"/"])) - assert c is None or len(c) == 1 - # Step 2 - if c in (b">", None): - return None - # Step 3 - attrName = [] - attrValue = [] - # Step 4 attribute name - while True: - if c == b"=" and attrName: - break - elif c in spaceCharactersBytes: - # Step 6! - c = data.skip() - break - elif c in (b"/", b">"): - return b"".join(attrName), b"" - elif c in asciiUppercaseBytes: - attrName.append(c.lower()) - elif c is None: - return None - else: - attrName.append(c) - # Step 5 - c = next(data) - # Step 7 - if c != b"=": - data.previous() - return b"".join(attrName), b"" - # Step 8 - next(data) - # Step 9 - c = data.skip() - # Step 10 - if c in (b"'", b'"'): - # 10.1 - quoteChar = c - while True: - # 10.2 - c = next(data) - # 10.3 - if c == quoteChar: - next(data) - return b"".join(attrName), b"".join(attrValue) - # 10.4 - elif c in asciiUppercaseBytes: - attrValue.append(c.lower()) - # 10.5 - else: - attrValue.append(c) - elif c == b">": - return b"".join(attrName), b"" - elif c in asciiUppercaseBytes: - attrValue.append(c.lower()) - elif c is None: - return None - else: - attrValue.append(c) - # Step 11 - while True: - c = next(data) - if c in spacesAngleBrackets: - return b"".join(attrName), b"".join(attrValue) - elif c in asciiUppercaseBytes: - attrValue.append(c.lower()) - elif c is None: - return None - else: - attrValue.append(c) - - -class ContentAttrParser(object): - def __init__(self, data): - assert isinstance(data, bytes) - self.data = data - - def parse(self): - try: - # Check if the attr name is charset - # otherwise return - self.data.jumpTo(b"charset") - self.data.position += 1 - self.data.skip() - if not self.data.currentByte == b"=": - # If there is no = sign keep looking for attrs - return None - self.data.position += 1 - self.data.skip() - # Look for an encoding between matching quote marks - if self.data.currentByte in (b'"', b"'"): - quoteMark = self.data.currentByte - self.data.position += 1 - oldPosition = self.data.position - if self.data.jumpTo(quoteMark): - return self.data[oldPosition:self.data.position] - else: - return None - else: - # Unquoted value - oldPosition = self.data.position - try: - self.data.skipUntil(spaceCharactersBytes) - return self.data[oldPosition:self.data.position] - except StopIteration: - # Return the whole remaining value - return self.data[oldPosition:] - except StopIteration: - return None - - -def lookupEncoding(encoding): - """Return the python codec name corresponding to an encoding or None if the - string doesn't correspond to a valid encoding.""" - if isinstance(encoding, bytes): - try: - encoding = encoding.decode("ascii") - except UnicodeDecodeError: - return None - - if encoding is not None: - try: - return webencodings.lookup(encoding) - except AttributeError: - return None - else: - return None diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_tokenizer.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_tokenizer.py deleted file mode 100644 index 5f00253..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_tokenizer.py +++ /dev/null @@ -1,1735 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from pip._vendor.six import unichr as chr - -from collections import deque, OrderedDict -from sys import version_info - -from .constants import spaceCharacters -from .constants import entities -from .constants import asciiLetters, asciiUpper2Lower -from .constants import digits, hexDigits, EOF -from .constants import tokenTypes, tagTokenTypes -from .constants import replacementCharacters - -from ._inputstream import HTMLInputStream - -from ._trie import Trie - -entitiesTrie = Trie(entities) - -if version_info >= (3, 7): - attributeMap = dict -else: - attributeMap = OrderedDict - - -class HTMLTokenizer(object): - """ This class takes care of tokenizing HTML. - - * self.currentToken - Holds the token that is currently being processed. - - * self.state - Holds a reference to the method to be invoked... XXX - - * self.stream - Points to HTMLInputStream object. - """ - - def __init__(self, stream, parser=None, **kwargs): - - self.stream = HTMLInputStream(stream, **kwargs) - self.parser = parser - - # Setup the initial tokenizer state - self.escapeFlag = False - self.lastFourChars = [] - self.state = self.dataState - self.escape = False - - # The current token being created - self.currentToken = None - super(HTMLTokenizer, self).__init__() - - def __iter__(self): - """ This is where the magic happens. - - We do our usually processing through the states and when we have a token - to return we yield the token which pauses processing until the next token - is requested. - """ - self.tokenQueue = deque([]) - # Start processing. When EOF is reached self.state will return False - # instead of True and the loop will terminate. - while self.state(): - while self.stream.errors: - yield {"type": tokenTypes["ParseError"], "data": self.stream.errors.pop(0)} - while self.tokenQueue: - yield self.tokenQueue.popleft() - - def consumeNumberEntity(self, isHex): - """This function returns either U+FFFD or the character based on the - decimal or hexadecimal representation. It also discards ";" if present. - If not present self.tokenQueue.append({"type": tokenTypes["ParseError"]}) is invoked. - """ - - allowed = digits - radix = 10 - if isHex: - allowed = hexDigits - radix = 16 - - charStack = [] - - # Consume all the characters that are in range while making sure we - # don't hit an EOF. - c = self.stream.char() - while c in allowed and c is not EOF: - charStack.append(c) - c = self.stream.char() - - # Convert the set of characters consumed to an int. - charAsInt = int("".join(charStack), radix) - - # Certain characters get replaced with others - if charAsInt in replacementCharacters: - char = replacementCharacters[charAsInt] - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "illegal-codepoint-for-numeric-entity", - "datavars": {"charAsInt": charAsInt}}) - elif ((0xD800 <= charAsInt <= 0xDFFF) or - (charAsInt > 0x10FFFF)): - char = "\uFFFD" - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "illegal-codepoint-for-numeric-entity", - "datavars": {"charAsInt": charAsInt}}) - else: - # Should speed up this check somehow (e.g. move the set to a constant) - if ((0x0001 <= charAsInt <= 0x0008) or - (0x000E <= charAsInt <= 0x001F) or - (0x007F <= charAsInt <= 0x009F) or - (0xFDD0 <= charAsInt <= 0xFDEF) or - charAsInt in frozenset([0x000B, 0xFFFE, 0xFFFF, 0x1FFFE, - 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, - 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, - 0x5FFFF, 0x6FFFE, 0x6FFFF, 0x7FFFE, - 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, - 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, - 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE, - 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, - 0xFFFFF, 0x10FFFE, 0x10FFFF])): - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": - "illegal-codepoint-for-numeric-entity", - "datavars": {"charAsInt": charAsInt}}) - try: - # Try/except needed as UCS-2 Python builds' unichar only works - # within the BMP. - char = chr(charAsInt) - except ValueError: - v = charAsInt - 0x10000 - char = chr(0xD800 | (v >> 10)) + chr(0xDC00 | (v & 0x3FF)) - - # Discard the ; if present. Otherwise, put it back on the queue and - # invoke parseError on parser. - if c != ";": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "numeric-entity-without-semicolon"}) - self.stream.unget(c) - - return char - - def consumeEntity(self, allowedChar=None, fromAttribute=False): - # Initialise to the default output for when no entity is matched - output = "&" - - charStack = [self.stream.char()] - if (charStack[0] in spaceCharacters or charStack[0] in (EOF, "<", "&") or - (allowedChar is not None and allowedChar == charStack[0])): - self.stream.unget(charStack[0]) - - elif charStack[0] == "#": - # Read the next character to see if it's hex or decimal - hex = False - charStack.append(self.stream.char()) - if charStack[-1] in ("x", "X"): - hex = True - charStack.append(self.stream.char()) - - # charStack[-1] should be the first digit - if (hex and charStack[-1] in hexDigits) \ - or (not hex and charStack[-1] in digits): - # At least one digit found, so consume the whole number - self.stream.unget(charStack[-1]) - output = self.consumeNumberEntity(hex) - else: - # No digits found - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "expected-numeric-entity"}) - self.stream.unget(charStack.pop()) - output = "&" + "".join(charStack) - - else: - # At this point in the process might have named entity. Entities - # are stored in the global variable "entities". - # - # Consume characters and compare to these to a substring of the - # entity names in the list until the substring no longer matches. - while (charStack[-1] is not EOF): - if not entitiesTrie.has_keys_with_prefix("".join(charStack)): - break - charStack.append(self.stream.char()) - - # At this point we have a string that starts with some characters - # that may match an entity - # Try to find the longest entity the string will match to take care - # of ¬i for instance. - try: - entityName = entitiesTrie.longest_prefix("".join(charStack[:-1])) - entityLength = len(entityName) - except KeyError: - entityName = None - - if entityName is not None: - if entityName[-1] != ";": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "named-entity-without-semicolon"}) - if (entityName[-1] != ";" and fromAttribute and - (charStack[entityLength] in asciiLetters or - charStack[entityLength] in digits or - charStack[entityLength] == "=")): - self.stream.unget(charStack.pop()) - output = "&" + "".join(charStack) - else: - output = entities[entityName] - self.stream.unget(charStack.pop()) - output += "".join(charStack[entityLength:]) - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-named-entity"}) - self.stream.unget(charStack.pop()) - output = "&" + "".join(charStack) - - if fromAttribute: - self.currentToken["data"][-1][1] += output - else: - if output in spaceCharacters: - tokenType = "SpaceCharacters" - else: - tokenType = "Characters" - self.tokenQueue.append({"type": tokenTypes[tokenType], "data": output}) - - def processEntityInAttribute(self, allowedChar): - """This method replaces the need for "entityInAttributeValueState". - """ - self.consumeEntity(allowedChar=allowedChar, fromAttribute=True) - - def emitCurrentToken(self): - """This method is a generic handler for emitting the tags. It also sets - the state to "data" because that's what's needed after a token has been - emitted. - """ - token = self.currentToken - # Add token to the queue to be yielded - if (token["type"] in tagTokenTypes): - token["name"] = token["name"].translate(asciiUpper2Lower) - if token["type"] == tokenTypes["StartTag"]: - raw = token["data"] - data = attributeMap(raw) - if len(raw) > len(data): - # we had some duplicated attribute, fix so first wins - data.update(raw[::-1]) - token["data"] = data - - if token["type"] == tokenTypes["EndTag"]: - if token["data"]: - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "attributes-in-end-tag"}) - if token["selfClosing"]: - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "self-closing-flag-on-end-tag"}) - self.tokenQueue.append(token) - self.state = self.dataState - - # Below are the various tokenizer states worked out. - def dataState(self): - data = self.stream.char() - if data == "&": - self.state = self.entityDataState - elif data == "<": - self.state = self.tagOpenState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\u0000"}) - elif data is EOF: - # Tokenization ends. - return False - elif data in spaceCharacters: - # Directly after emitting a token you switch back to the "data - # state". At that point spaceCharacters are important so they are - # emitted separately. - self.tokenQueue.append({"type": tokenTypes["SpaceCharacters"], "data": - data + self.stream.charsUntil(spaceCharacters, True)}) - # No need to update lastFourChars here, since the first space will - # have already been appended to lastFourChars and will have broken - # any sequences - else: - chars = self.stream.charsUntil(("&", "<", "\u0000")) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + chars}) - return True - - def entityDataState(self): - self.consumeEntity() - self.state = self.dataState - return True - - def rcdataState(self): - data = self.stream.char() - if data == "&": - self.state = self.characterReferenceInRcdata - elif data == "<": - self.state = self.rcdataLessThanSignState - elif data == EOF: - # Tokenization ends. - return False - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - elif data in spaceCharacters: - # Directly after emitting a token you switch back to the "data - # state". At that point spaceCharacters are important so they are - # emitted separately. - self.tokenQueue.append({"type": tokenTypes["SpaceCharacters"], "data": - data + self.stream.charsUntil(spaceCharacters, True)}) - # No need to update lastFourChars here, since the first space will - # have already been appended to lastFourChars and will have broken - # any sequences - else: - chars = self.stream.charsUntil(("&", "<", "\u0000")) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + chars}) - return True - - def characterReferenceInRcdata(self): - self.consumeEntity() - self.state = self.rcdataState - return True - - def rawtextState(self): - data = self.stream.char() - if data == "<": - self.state = self.rawtextLessThanSignState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - elif data == EOF: - # Tokenization ends. - return False - else: - chars = self.stream.charsUntil(("<", "\u0000")) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + chars}) - return True - - def scriptDataState(self): - data = self.stream.char() - if data == "<": - self.state = self.scriptDataLessThanSignState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - elif data == EOF: - # Tokenization ends. - return False - else: - chars = self.stream.charsUntil(("<", "\u0000")) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + chars}) - return True - - def plaintextState(self): - data = self.stream.char() - if data == EOF: - # Tokenization ends. - return False - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + self.stream.charsUntil("\u0000")}) - return True - - def tagOpenState(self): - data = self.stream.char() - if data == "!": - self.state = self.markupDeclarationOpenState - elif data == "/": - self.state = self.closeTagOpenState - elif data in asciiLetters: - self.currentToken = {"type": tokenTypes["StartTag"], - "name": data, "data": [], - "selfClosing": False, - "selfClosingAcknowledged": False} - self.state = self.tagNameState - elif data == ">": - # XXX In theory it could be something besides a tag name. But - # do we really care? - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-tag-name-but-got-right-bracket"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<>"}) - self.state = self.dataState - elif data == "?": - # XXX In theory it could be something besides a tag name. But - # do we really care? - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-tag-name-but-got-question-mark"}) - self.stream.unget(data) - self.state = self.bogusCommentState - else: - # XXX - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-tag-name"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.stream.unget(data) - self.state = self.dataState - return True - - def closeTagOpenState(self): - data = self.stream.char() - if data in asciiLetters: - self.currentToken = {"type": tokenTypes["EndTag"], "name": data, - "data": [], "selfClosing": False} - self.state = self.tagNameState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-closing-tag-but-got-right-bracket"}) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-closing-tag-but-got-eof"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "": - self.emitCurrentToken() - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-tag-name"}) - self.state = self.dataState - elif data == "/": - self.state = self.selfClosingStartTagState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["name"] += "\uFFFD" - else: - self.currentToken["name"] += data - # (Don't use charsUntil here, because tag names are - # very short and it's faster to not do anything fancy) - return True - - def rcdataLessThanSignState(self): - data = self.stream.char() - if data == "/": - self.temporaryBuffer = "" - self.state = self.rcdataEndTagOpenState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.stream.unget(data) - self.state = self.rcdataState - return True - - def rcdataEndTagOpenState(self): - data = self.stream.char() - if data in asciiLetters: - self.temporaryBuffer += data - self.state = self.rcdataEndTagNameState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.emitCurrentToken() - self.state = self.dataState - elif data in asciiLetters: - self.temporaryBuffer += data - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.emitCurrentToken() - self.state = self.dataState - elif data in asciiLetters: - self.temporaryBuffer += data - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.emitCurrentToken() - self.state = self.dataState - elif data in asciiLetters: - self.temporaryBuffer += data - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": ">"}) - self.state = self.scriptDataState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - self.state = self.scriptDataEscapedState - elif data == EOF: - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.state = self.scriptDataEscapedState - return True - - def scriptDataEscapedLessThanSignState(self): - data = self.stream.char() - if data == "/": - self.temporaryBuffer = "" - self.state = self.scriptDataEscapedEndTagOpenState - elif data in asciiLetters: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<" + data}) - self.temporaryBuffer = data - self.state = self.scriptDataDoubleEscapeStartState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.stream.unget(data) - self.state = self.scriptDataEscapedState - return True - - def scriptDataEscapedEndTagOpenState(self): - data = self.stream.char() - if data in asciiLetters: - self.temporaryBuffer = data - self.state = self.scriptDataEscapedEndTagNameState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.emitCurrentToken() - self.state = self.dataState - elif data in asciiLetters: - self.temporaryBuffer += data - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": ""))): - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - if self.temporaryBuffer.lower() == "script": - self.state = self.scriptDataDoubleEscapedState - else: - self.state = self.scriptDataEscapedState - elif data in asciiLetters: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.temporaryBuffer += data - else: - self.stream.unget(data) - self.state = self.scriptDataEscapedState - return True - - def scriptDataDoubleEscapedState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - self.state = self.scriptDataDoubleEscapedDashState - elif data == "<": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.state = self.scriptDataDoubleEscapedLessThanSignState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - elif data == EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-script-in-script"}) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - return True - - def scriptDataDoubleEscapedDashState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - self.state = self.scriptDataDoubleEscapedDashDashState - elif data == "<": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.state = self.scriptDataDoubleEscapedLessThanSignState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - self.state = self.scriptDataDoubleEscapedState - elif data == EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-script-in-script"}) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.state = self.scriptDataDoubleEscapedState - return True - - def scriptDataDoubleEscapedDashDashState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - elif data == "<": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.state = self.scriptDataDoubleEscapedLessThanSignState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": ">"}) - self.state = self.scriptDataState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - self.state = self.scriptDataDoubleEscapedState - elif data == EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-script-in-script"}) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.state = self.scriptDataDoubleEscapedState - return True - - def scriptDataDoubleEscapedLessThanSignState(self): - data = self.stream.char() - if data == "/": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "/"}) - self.temporaryBuffer = "" - self.state = self.scriptDataDoubleEscapeEndState - else: - self.stream.unget(data) - self.state = self.scriptDataDoubleEscapedState - return True - - def scriptDataDoubleEscapeEndState(self): - data = self.stream.char() - if data in (spaceCharacters | frozenset(("/", ">"))): - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - if self.temporaryBuffer.lower() == "script": - self.state = self.scriptDataEscapedState - else: - self.state = self.scriptDataDoubleEscapedState - elif data in asciiLetters: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.temporaryBuffer += data - else: - self.stream.unget(data) - self.state = self.scriptDataDoubleEscapedState - return True - - def beforeAttributeNameState(self): - data = self.stream.char() - if data in spaceCharacters: - self.stream.charsUntil(spaceCharacters, True) - elif data in asciiLetters: - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - elif data == ">": - self.emitCurrentToken() - elif data == "/": - self.state = self.selfClosingStartTagState - elif data in ("'", '"', "=", "<"): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "invalid-character-in-attribute-name"}) - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"].append(["\uFFFD", ""]) - self.state = self.attributeNameState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-attribute-name-but-got-eof"}) - self.state = self.dataState - else: - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - return True - - def attributeNameState(self): - data = self.stream.char() - leavingThisState = True - emitToken = False - if data == "=": - self.state = self.beforeAttributeValueState - elif data in asciiLetters: - self.currentToken["data"][-1][0] += data +\ - self.stream.charsUntil(asciiLetters, True) - leavingThisState = False - elif data == ">": - # XXX If we emit here the attributes are converted to a dict - # without being checked and when the code below runs we error - # because data is a dict not a list - emitToken = True - elif data in spaceCharacters: - self.state = self.afterAttributeNameState - elif data == "/": - self.state = self.selfClosingStartTagState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"][-1][0] += "\uFFFD" - leavingThisState = False - elif data in ("'", '"', "<"): - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": - "invalid-character-in-attribute-name"}) - self.currentToken["data"][-1][0] += data - leavingThisState = False - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "eof-in-attribute-name"}) - self.state = self.dataState - else: - self.currentToken["data"][-1][0] += data - leavingThisState = False - - if leavingThisState: - # Attributes are not dropped at this stage. That happens when the - # start tag token is emitted so values can still be safely appended - # to attributes, but we do want to report the parse error in time. - self.currentToken["data"][-1][0] = ( - self.currentToken["data"][-1][0].translate(asciiUpper2Lower)) - for name, _ in self.currentToken["data"][:-1]: - if self.currentToken["data"][-1][0] == name: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "duplicate-attribute"}) - break - # XXX Fix for above XXX - if emitToken: - self.emitCurrentToken() - return True - - def afterAttributeNameState(self): - data = self.stream.char() - if data in spaceCharacters: - self.stream.charsUntil(spaceCharacters, True) - elif data == "=": - self.state = self.beforeAttributeValueState - elif data == ">": - self.emitCurrentToken() - elif data in asciiLetters: - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - elif data == "/": - self.state = self.selfClosingStartTagState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"].append(["\uFFFD", ""]) - self.state = self.attributeNameState - elif data in ("'", '"', "<"): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "invalid-character-after-attribute-name"}) - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-end-of-tag-but-got-eof"}) - self.state = self.dataState - else: - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - return True - - def beforeAttributeValueState(self): - data = self.stream.char() - if data in spaceCharacters: - self.stream.charsUntil(spaceCharacters, True) - elif data == "\"": - self.state = self.attributeValueDoubleQuotedState - elif data == "&": - self.state = self.attributeValueUnQuotedState - self.stream.unget(data) - elif data == "'": - self.state = self.attributeValueSingleQuotedState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-attribute-value-but-got-right-bracket"}) - self.emitCurrentToken() - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"][-1][1] += "\uFFFD" - self.state = self.attributeValueUnQuotedState - elif data in ("=", "<", "`"): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "equals-in-unquoted-attribute-value"}) - self.currentToken["data"][-1][1] += data - self.state = self.attributeValueUnQuotedState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-attribute-value-but-got-eof"}) - self.state = self.dataState - else: - self.currentToken["data"][-1][1] += data - self.state = self.attributeValueUnQuotedState - return True - - def attributeValueDoubleQuotedState(self): - data = self.stream.char() - if data == "\"": - self.state = self.afterAttributeValueState - elif data == "&": - self.processEntityInAttribute('"') - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"][-1][1] += "\uFFFD" - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-attribute-value-double-quote"}) - self.state = self.dataState - else: - self.currentToken["data"][-1][1] += data +\ - self.stream.charsUntil(("\"", "&", "\u0000")) - return True - - def attributeValueSingleQuotedState(self): - data = self.stream.char() - if data == "'": - self.state = self.afterAttributeValueState - elif data == "&": - self.processEntityInAttribute("'") - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"][-1][1] += "\uFFFD" - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-attribute-value-single-quote"}) - self.state = self.dataState - else: - self.currentToken["data"][-1][1] += data +\ - self.stream.charsUntil(("'", "&", "\u0000")) - return True - - def attributeValueUnQuotedState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeAttributeNameState - elif data == "&": - self.processEntityInAttribute(">") - elif data == ">": - self.emitCurrentToken() - elif data in ('"', "'", "=", "<", "`"): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-character-in-unquoted-attribute-value"}) - self.currentToken["data"][-1][1] += data - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"][-1][1] += "\uFFFD" - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-attribute-value-no-quotes"}) - self.state = self.dataState - else: - self.currentToken["data"][-1][1] += data + self.stream.charsUntil( - frozenset(("&", ">", '"', "'", "=", "<", "`", "\u0000")) | spaceCharacters) - return True - - def afterAttributeValueState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeAttributeNameState - elif data == ">": - self.emitCurrentToken() - elif data == "/": - self.state = self.selfClosingStartTagState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-EOF-after-attribute-value"}) - self.stream.unget(data) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-character-after-attribute-value"}) - self.stream.unget(data) - self.state = self.beforeAttributeNameState - return True - - def selfClosingStartTagState(self): - data = self.stream.char() - if data == ">": - self.currentToken["selfClosing"] = True - self.emitCurrentToken() - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": - "unexpected-EOF-after-solidus-in-tag"}) - self.stream.unget(data) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-character-after-solidus-in-tag"}) - self.stream.unget(data) - self.state = self.beforeAttributeNameState - return True - - def bogusCommentState(self): - # Make a new comment token and give it as value all the characters - # until the first > or EOF (charsUntil checks for EOF automatically) - # and emit it. - data = self.stream.charsUntil(">") - data = data.replace("\u0000", "\uFFFD") - self.tokenQueue.append( - {"type": tokenTypes["Comment"], "data": data}) - - # Eat the character directly after the bogus comment which is either a - # ">" or an EOF. - self.stream.char() - self.state = self.dataState - return True - - def markupDeclarationOpenState(self): - charStack = [self.stream.char()] - if charStack[-1] == "-": - charStack.append(self.stream.char()) - if charStack[-1] == "-": - self.currentToken = {"type": tokenTypes["Comment"], "data": ""} - self.state = self.commentStartState - return True - elif charStack[-1] in ('d', 'D'): - matched = True - for expected in (('o', 'O'), ('c', 'C'), ('t', 'T'), - ('y', 'Y'), ('p', 'P'), ('e', 'E')): - charStack.append(self.stream.char()) - if charStack[-1] not in expected: - matched = False - break - if matched: - self.currentToken = {"type": tokenTypes["Doctype"], - "name": "", - "publicId": None, "systemId": None, - "correct": True} - self.state = self.doctypeState - return True - elif (charStack[-1] == "[" and - self.parser is not None and - self.parser.tree.openElements and - self.parser.tree.openElements[-1].namespace != self.parser.tree.defaultNamespace): - matched = True - for expected in ["C", "D", "A", "T", "A", "["]: - charStack.append(self.stream.char()) - if charStack[-1] != expected: - matched = False - break - if matched: - self.state = self.cdataSectionState - return True - - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-dashes-or-doctype"}) - - while charStack: - self.stream.unget(charStack.pop()) - self.state = self.bogusCommentState - return True - - def commentStartState(self): - data = self.stream.char() - if data == "-": - self.state = self.commentStartDashState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "incorrect-comment"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-comment"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["data"] += data - self.state = self.commentState - return True - - def commentStartDashState(self): - data = self.stream.char() - if data == "-": - self.state = self.commentEndState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "-\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "incorrect-comment"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-comment"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["data"] += "-" + data - self.state = self.commentState - return True - - def commentState(self): - data = self.stream.char() - if data == "-": - self.state = self.commentEndDashState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "\uFFFD" - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "eof-in-comment"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["data"] += data + \ - self.stream.charsUntil(("-", "\u0000")) - return True - - def commentEndDashState(self): - data = self.stream.char() - if data == "-": - self.state = self.commentEndState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "-\uFFFD" - self.state = self.commentState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-comment-end-dash"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["data"] += "-" + data - self.state = self.commentState - return True - - def commentEndState(self): - data = self.stream.char() - if data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "--\uFFFD" - self.state = self.commentState - elif data == "!": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-bang-after-double-dash-in-comment"}) - self.state = self.commentEndBangState - elif data == "-": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-dash-after-double-dash-in-comment"}) - self.currentToken["data"] += data - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-comment-double-dash"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - # XXX - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-comment"}) - self.currentToken["data"] += "--" + data - self.state = self.commentState - return True - - def commentEndBangState(self): - data = self.stream.char() - if data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == "-": - self.currentToken["data"] += "--!" - self.state = self.commentEndDashState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "--!\uFFFD" - self.state = self.commentState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-comment-end-bang-state"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["data"] += "--!" + data - self.state = self.commentState - return True - - def doctypeState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeDoctypeNameState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-doctype-name-but-got-eof"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "need-space-after-doctype"}) - self.stream.unget(data) - self.state = self.beforeDoctypeNameState - return True - - def beforeDoctypeNameState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-doctype-name-but-got-right-bracket"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["name"] = "\uFFFD" - self.state = self.doctypeNameState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-doctype-name-but-got-eof"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["name"] = data - self.state = self.doctypeNameState - return True - - def doctypeNameState(self): - data = self.stream.char() - if data in spaceCharacters: - self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower) - self.state = self.afterDoctypeNameState - elif data == ">": - self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["name"] += "\uFFFD" - self.state = self.doctypeNameState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype-name"}) - self.currentToken["correct"] = False - self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["name"] += data - return True - - def afterDoctypeNameState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.currentToken["correct"] = False - self.stream.unget(data) - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - if data in ("p", "P"): - matched = True - for expected in (("u", "U"), ("b", "B"), ("l", "L"), - ("i", "I"), ("c", "C")): - data = self.stream.char() - if data not in expected: - matched = False - break - if matched: - self.state = self.afterDoctypePublicKeywordState - return True - elif data in ("s", "S"): - matched = True - for expected in (("y", "Y"), ("s", "S"), ("t", "T"), - ("e", "E"), ("m", "M")): - data = self.stream.char() - if data not in expected: - matched = False - break - if matched: - self.state = self.afterDoctypeSystemKeywordState - return True - - # All the characters read before the current 'data' will be - # [a-zA-Z], so they're garbage in the bogus doctype and can be - # discarded; only the latest character might be '>' or EOF - # and needs to be ungetted - self.stream.unget(data) - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-space-or-right-bracket-in-doctype", "datavars": - {"data": data}}) - self.currentToken["correct"] = False - self.state = self.bogusDoctypeState - - return True - - def afterDoctypePublicKeywordState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeDoctypePublicIdentifierState - elif data in ("'", '"'): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.stream.unget(data) - self.state = self.beforeDoctypePublicIdentifierState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.stream.unget(data) - self.state = self.beforeDoctypePublicIdentifierState - return True - - def beforeDoctypePublicIdentifierState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == "\"": - self.currentToken["publicId"] = "" - self.state = self.doctypePublicIdentifierDoubleQuotedState - elif data == "'": - self.currentToken["publicId"] = "" - self.state = self.doctypePublicIdentifierSingleQuotedState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-end-of-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["correct"] = False - self.state = self.bogusDoctypeState - return True - - def doctypePublicIdentifierDoubleQuotedState(self): - data = self.stream.char() - if data == "\"": - self.state = self.afterDoctypePublicIdentifierState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["publicId"] += "\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-end-of-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["publicId"] += data - return True - - def doctypePublicIdentifierSingleQuotedState(self): - data = self.stream.char() - if data == "'": - self.state = self.afterDoctypePublicIdentifierState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["publicId"] += "\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-end-of-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["publicId"] += data - return True - - def afterDoctypePublicIdentifierState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.betweenDoctypePublicAndSystemIdentifiersState - elif data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == '"': - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierDoubleQuotedState - elif data == "'": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierSingleQuotedState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["correct"] = False - self.state = self.bogusDoctypeState - return True - - def betweenDoctypePublicAndSystemIdentifiersState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == '"': - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierDoubleQuotedState - elif data == "'": - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierSingleQuotedState - elif data == EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["correct"] = False - self.state = self.bogusDoctypeState - return True - - def afterDoctypeSystemKeywordState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeDoctypeSystemIdentifierState - elif data in ("'", '"'): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.stream.unget(data) - self.state = self.beforeDoctypeSystemIdentifierState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.stream.unget(data) - self.state = self.beforeDoctypeSystemIdentifierState - return True - - def beforeDoctypeSystemIdentifierState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == "\"": - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierDoubleQuotedState - elif data == "'": - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierSingleQuotedState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["correct"] = False - self.state = self.bogusDoctypeState - return True - - def doctypeSystemIdentifierDoubleQuotedState(self): - data = self.stream.char() - if data == "\"": - self.state = self.afterDoctypeSystemIdentifierState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["systemId"] += "\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-end-of-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["systemId"] += data - return True - - def doctypeSystemIdentifierSingleQuotedState(self): - data = self.stream.char() - if data == "'": - self.state = self.afterDoctypeSystemIdentifierState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["systemId"] += "\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-end-of-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["systemId"] += data - return True - - def afterDoctypeSystemIdentifierState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.state = self.bogusDoctypeState - return True - - def bogusDoctypeState(self): - data = self.stream.char() - if data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - # XXX EMIT - self.stream.unget(data) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - pass - return True - - def cdataSectionState(self): - data = [] - while True: - data.append(self.stream.charsUntil("]")) - data.append(self.stream.charsUntil(">")) - char = self.stream.char() - if char == EOF: - break - else: - assert char == ">" - if data[-1][-2:] == "]]": - data[-1] = data[-1][:-2] - break - else: - data.append(char) - - data = "".join(data) # pylint:disable=redefined-variable-type - # Deal with null here rather than in the parser - nullCount = data.count("\u0000") - if nullCount > 0: - for _ in range(nullCount): - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - data = data.replace("\u0000", "\uFFFD") - if data: - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": data}) - self.state = self.dataState - return True diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__init__.py deleted file mode 100644 index 07bad5d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from .py import Trie - -__all__ = ["Trie"] diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 76a6b7b2414bd55fb6a7cac07b6d94120b5a23c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmYjMJ5B>J6kK~ZA4Nn^aEV1CE)WG0LY#mGs%@T}_$BM$pKR|!j=~YR2FGwql`BwT zr^-lg-WzG2G{cw6MV0aO)9!WNzeSvbX7QXS++-4!Aga=&Bbs(p*Ii92K}D?^J?SR- zZg!-bipgu$PLJ7NwRO7W>tNLo5u|q3$21pmltEgPt_CAFRv;)D(Q_4!r2LT7ym^U! zn#D^yOACPQ5C@L{zQpl$p(azJ?r^fD830!b;Jfmr&x!s<)?1BiEkpmo_lS{243Qb! zMhNIf^bkJ{IBz!?0$Yt}MyBMNxkK!&xm!K3kdxgyzIo?649rQ#AiIS1tdCmV7c;~h bmH|j3Bf!cX()>|dF(`a0bwUYxO)uy_gs)|& diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-39.pyc deleted file mode 100644 index 3c57db094617161caa859a8553e0076913b3841b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1607 zcmZ`(O>Z1E7=G=U-JRWhG)+QFP#Yo+h&`|qsp0^NB0dTTA#zD1V5G{L9ecCW&R1-2 znq5sUB&a=eZedxDe;_lG*+^u+M%4}klNb{=H)&(*>PEA@CZe>!WNhy`c zQmb^FnLcx!AL6P?i^GJL&wu`P$9#qj1rd`FamgZ2EM_ zvMYP|-+2Z;L;(U@bpC-()$INkLt}NE*sWn~)K-$k#%zsBy=8IM>?M5ea7-h-DrOry z7A&jbj9>6eIOWeVDHG6})~op$+lK}Zll(lW`9q+QzPFdKxeaOa7M3+E<~^*&P{X6u zQ&zJJcn+6L`!)NGANl+60x&B*V`FX2)6|ap-0{J-V<#_|Ygby0(i7dm9sV)lxXe{J zOwIUd{8%X)T4iilsF4*$>0_mZJt;(`%S0Iy4vtlE9A@b-tfqEc77qrWh6Z)`xQde} z@u4zdl~$p^C|T-oZ1e0B3Ko=}P*BbW)zo!&jIv3YSGz>zFDx*-NBJE*QByP6$;t$E z-5tCR>-(-{CY920MDFvX>7QVOnq{~A1b&9Mth!>sjuqeW%%n-Egz(ipwvUf}j=%G8wz^tpXutg4+W#|U z><^lpZ80Wy@Y@FO0q^pG=!!wqjX3c{5f74X62?)H4l3OW#<5C@>Y&!GbM`G$ zsj56-s-o+&s9RIj?^&z%94E3?Ozz;f_dzu4a>cqraV4Ix zZlod=qld{VMW3jOs-jO-P1Vs?R8uw7>J#3rsx@^9oSIs}6)u}94(kb!Wuq}+b`QV( z4#WX7QZnIB`3d`)&G?Ml8&0Tb#((A$K4CI)@qBegvqZ(9sY+aB0@+=GSyeHpOSgJ- z#bsNnvS8TjAQSdebIKi5IX)9VFwPzc+W3rbwS=z&($c!D>}iug8Z6QN)bqn<%&cPm z_o&k!4s-{I_8({aTDy+Z)^$oiE3GyM+DLa;%8?oNw6&e~fi4d^MZVJ+9l8Fn{H*0ChevR)rIH9jhI=^OL;XqcDI0;JgLV%NvCHQ+QSYp~T< zmu6B9*#_Cq*LhW>e2u64c=g;>{uL(VzYr$0n*w2<9l%?rhUqhIUZqZ$*U|Y1mR?le zkg_){T?VI0`3j_Lh(msSd7<{j>bbBXh|Z}-z_5Kp+Cp_pm<@=`_4AEhNog%yZWP6c=VhQS2oWz6h4dj3$LhXHoe1t$~I$am!R zessdk1N8BaVk)MQOGpl(ASTf)j@dMxCS`NUoryUI$<3zeBz7rD&v3qRlN4vt-eiN} zWR7!xoup4IOWq0RSX1H)HccM6dDWT3lO$A^n0B|KEpr)`8@fxYYObO4k=4%EQ8bLR zk8{^IRA$U;MDSR!5GY7CrCODFpr#|Eck@FpilG<%+$UkL=eeN>z2MitBQIF;2c=G3 zGi?__v%=zaB-yI= 0xD800 and ord(data[0]) <= 0xDBFF and - ord(data[1]) >= 0xDC00 and ord(data[1]) <= 0xDFFF) - - -def surrogatePairToCodepoint(data): - char_val = (0x10000 + (ord(data[0]) - 0xD800) * 0x400 + - (ord(data[1]) - 0xDC00)) - return char_val - -# Module Factory Factory (no, this isn't Java, I know) -# Here to stop this being duplicated all over the place. - - -def moduleFactoryFactory(factory): - moduleCache = {} - - def moduleFactory(baseModule, *args, **kwargs): - if isinstance(ModuleType.__name__, type("")): - name = "_%s_factory" % baseModule.__name__ - else: - name = b"_%s_factory" % baseModule.__name__ - - kwargs_tuple = tuple(kwargs.items()) - - try: - return moduleCache[name][args][kwargs_tuple] - except KeyError: - mod = ModuleType(name) - objs = factory(baseModule, *args, **kwargs) - mod.__dict__.update(objs) - if "name" not in moduleCache: - moduleCache[name] = {} - if "args" not in moduleCache[name]: - moduleCache[name][args] = {} - if "kwargs" not in moduleCache[name][args]: - moduleCache[name][args][kwargs_tuple] = {} - moduleCache[name][args][kwargs_tuple] = mod - return mod - - return moduleFactory - - -def memoize(func): - cache = {} - - def wrapped(*args, **kwargs): - key = (tuple(args), tuple(kwargs.items())) - if key not in cache: - cache[key] = func(*args, **kwargs) - return cache[key] - - return wrapped diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/constants.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/constants.py deleted file mode 100644 index fe3e237..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/constants.py +++ /dev/null @@ -1,2946 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import string - -EOF = None - -E = { - "null-character": - "Null character in input stream, replaced with U+FFFD.", - "invalid-codepoint": - "Invalid codepoint in stream.", - "incorrectly-placed-solidus": - "Solidus (/) incorrectly placed in tag.", - "incorrect-cr-newline-entity": - "Incorrect CR newline entity, replaced with LF.", - "illegal-windows-1252-entity": - "Entity used with illegal number (windows-1252 reference).", - "cant-convert-numeric-entity": - "Numeric entity couldn't be converted to character " - "(codepoint U+%(charAsInt)08x).", - "illegal-codepoint-for-numeric-entity": - "Numeric entity represents an illegal codepoint: " - "U+%(charAsInt)08x.", - "numeric-entity-without-semicolon": - "Numeric entity didn't end with ';'.", - "expected-numeric-entity-but-got-eof": - "Numeric entity expected. Got end of file instead.", - "expected-numeric-entity": - "Numeric entity expected but none found.", - "named-entity-without-semicolon": - "Named entity didn't end with ';'.", - "expected-named-entity": - "Named entity expected. Got none.", - "attributes-in-end-tag": - "End tag contains unexpected attributes.", - 'self-closing-flag-on-end-tag': - "End tag contains unexpected self-closing flag.", - "expected-tag-name-but-got-right-bracket": - "Expected tag name. Got '>' instead.", - "expected-tag-name-but-got-question-mark": - "Expected tag name. Got '?' instead. (HTML doesn't " - "support processing instructions.)", - "expected-tag-name": - "Expected tag name. Got something else instead", - "expected-closing-tag-but-got-right-bracket": - "Expected closing tag. Got '>' instead. Ignoring ''.", - "expected-closing-tag-but-got-eof": - "Expected closing tag. Unexpected end of file.", - "expected-closing-tag-but-got-char": - "Expected closing tag. Unexpected character '%(data)s' found.", - "eof-in-tag-name": - "Unexpected end of file in the tag name.", - "expected-attribute-name-but-got-eof": - "Unexpected end of file. Expected attribute name instead.", - "eof-in-attribute-name": - "Unexpected end of file in attribute name.", - "invalid-character-in-attribute-name": - "Invalid character in attribute name", - "duplicate-attribute": - "Dropped duplicate attribute on tag.", - "expected-end-of-tag-name-but-got-eof": - "Unexpected end of file. Expected = or end of tag.", - "expected-attribute-value-but-got-eof": - "Unexpected end of file. Expected attribute value.", - "expected-attribute-value-but-got-right-bracket": - "Expected attribute value. Got '>' instead.", - 'equals-in-unquoted-attribute-value': - "Unexpected = in unquoted attribute", - 'unexpected-character-in-unquoted-attribute-value': - "Unexpected character in unquoted attribute", - "invalid-character-after-attribute-name": - "Unexpected character after attribute name.", - "unexpected-character-after-attribute-value": - "Unexpected character after attribute value.", - "eof-in-attribute-value-double-quote": - "Unexpected end of file in attribute value (\").", - "eof-in-attribute-value-single-quote": - "Unexpected end of file in attribute value (').", - "eof-in-attribute-value-no-quotes": - "Unexpected end of file in attribute value.", - "unexpected-EOF-after-solidus-in-tag": - "Unexpected end of file in tag. Expected >", - "unexpected-character-after-solidus-in-tag": - "Unexpected character after / in tag. Expected >", - "expected-dashes-or-doctype": - "Expected '--' or 'DOCTYPE'. Not found.", - "unexpected-bang-after-double-dash-in-comment": - "Unexpected ! after -- in comment", - "unexpected-space-after-double-dash-in-comment": - "Unexpected space after -- in comment", - "incorrect-comment": - "Incorrect comment.", - "eof-in-comment": - "Unexpected end of file in comment.", - "eof-in-comment-end-dash": - "Unexpected end of file in comment (-)", - "unexpected-dash-after-double-dash-in-comment": - "Unexpected '-' after '--' found in comment.", - "eof-in-comment-double-dash": - "Unexpected end of file in comment (--).", - "eof-in-comment-end-space-state": - "Unexpected end of file in comment.", - "eof-in-comment-end-bang-state": - "Unexpected end of file in comment.", - "unexpected-char-in-comment": - "Unexpected character in comment found.", - "need-space-after-doctype": - "No space after literal string 'DOCTYPE'.", - "expected-doctype-name-but-got-right-bracket": - "Unexpected > character. Expected DOCTYPE name.", - "expected-doctype-name-but-got-eof": - "Unexpected end of file. Expected DOCTYPE name.", - "eof-in-doctype-name": - "Unexpected end of file in DOCTYPE name.", - "eof-in-doctype": - "Unexpected end of file in DOCTYPE.", - "expected-space-or-right-bracket-in-doctype": - "Expected space or '>'. Got '%(data)s'", - "unexpected-end-of-doctype": - "Unexpected end of DOCTYPE.", - "unexpected-char-in-doctype": - "Unexpected character in DOCTYPE.", - "eof-in-innerhtml": - "XXX innerHTML EOF", - "unexpected-doctype": - "Unexpected DOCTYPE. Ignored.", - "non-html-root": - "html needs to be the first start tag.", - "expected-doctype-but-got-eof": - "Unexpected End of file. Expected DOCTYPE.", - "unknown-doctype": - "Erroneous DOCTYPE.", - "expected-doctype-but-got-chars": - "Unexpected non-space characters. Expected DOCTYPE.", - "expected-doctype-but-got-start-tag": - "Unexpected start tag (%(name)s). Expected DOCTYPE.", - "expected-doctype-but-got-end-tag": - "Unexpected end tag (%(name)s). Expected DOCTYPE.", - "end-tag-after-implied-root": - "Unexpected end tag (%(name)s) after the (implied) root element.", - "expected-named-closing-tag-but-got-eof": - "Unexpected end of file. Expected end tag (%(name)s).", - "two-heads-are-not-better-than-one": - "Unexpected start tag head in existing head. Ignored.", - "unexpected-end-tag": - "Unexpected end tag (%(name)s). Ignored.", - "unexpected-start-tag-out-of-my-head": - "Unexpected start tag (%(name)s) that can be in head. Moved.", - "unexpected-start-tag": - "Unexpected start tag (%(name)s).", - "missing-end-tag": - "Missing end tag (%(name)s).", - "missing-end-tags": - "Missing end tags (%(name)s).", - "unexpected-start-tag-implies-end-tag": - "Unexpected start tag (%(startName)s) " - "implies end tag (%(endName)s).", - "unexpected-start-tag-treated-as": - "Unexpected start tag (%(originalName)s). Treated as %(newName)s.", - "deprecated-tag": - "Unexpected start tag %(name)s. Don't use it!", - "unexpected-start-tag-ignored": - "Unexpected start tag %(name)s. Ignored.", - "expected-one-end-tag-but-got-another": - "Unexpected end tag (%(gotName)s). " - "Missing end tag (%(expectedName)s).", - "end-tag-too-early": - "End tag (%(name)s) seen too early. Expected other end tag.", - "end-tag-too-early-named": - "Unexpected end tag (%(gotName)s). Expected end tag (%(expectedName)s).", - "end-tag-too-early-ignored": - "End tag (%(name)s) seen too early. Ignored.", - "adoption-agency-1.1": - "End tag (%(name)s) violates step 1, " - "paragraph 1 of the adoption agency algorithm.", - "adoption-agency-1.2": - "End tag (%(name)s) violates step 1, " - "paragraph 2 of the adoption agency algorithm.", - "adoption-agency-1.3": - "End tag (%(name)s) violates step 1, " - "paragraph 3 of the adoption agency algorithm.", - "adoption-agency-4.4": - "End tag (%(name)s) violates step 4, " - "paragraph 4 of the adoption agency algorithm.", - "unexpected-end-tag-treated-as": - "Unexpected end tag (%(originalName)s). Treated as %(newName)s.", - "no-end-tag": - "This element (%(name)s) has no end tag.", - "unexpected-implied-end-tag-in-table": - "Unexpected implied end tag (%(name)s) in the table phase.", - "unexpected-implied-end-tag-in-table-body": - "Unexpected implied end tag (%(name)s) in the table body phase.", - "unexpected-char-implies-table-voodoo": - "Unexpected non-space characters in " - "table context caused voodoo mode.", - "unexpected-hidden-input-in-table": - "Unexpected input with type hidden in table context.", - "unexpected-form-in-table": - "Unexpected form in table context.", - "unexpected-start-tag-implies-table-voodoo": - "Unexpected start tag (%(name)s) in " - "table context caused voodoo mode.", - "unexpected-end-tag-implies-table-voodoo": - "Unexpected end tag (%(name)s) in " - "table context caused voodoo mode.", - "unexpected-cell-in-table-body": - "Unexpected table cell start tag (%(name)s) " - "in the table body phase.", - "unexpected-cell-end-tag": - "Got table cell end tag (%(name)s) " - "while required end tags are missing.", - "unexpected-end-tag-in-table-body": - "Unexpected end tag (%(name)s) in the table body phase. Ignored.", - "unexpected-implied-end-tag-in-table-row": - "Unexpected implied end tag (%(name)s) in the table row phase.", - "unexpected-end-tag-in-table-row": - "Unexpected end tag (%(name)s) in the table row phase. Ignored.", - "unexpected-select-in-select": - "Unexpected select start tag in the select phase " - "treated as select end tag.", - "unexpected-input-in-select": - "Unexpected input start tag in the select phase.", - "unexpected-start-tag-in-select": - "Unexpected start tag token (%(name)s in the select phase. " - "Ignored.", - "unexpected-end-tag-in-select": - "Unexpected end tag (%(name)s) in the select phase. Ignored.", - "unexpected-table-element-start-tag-in-select-in-table": - "Unexpected table element start tag (%(name)s) in the select in table phase.", - "unexpected-table-element-end-tag-in-select-in-table": - "Unexpected table element end tag (%(name)s) in the select in table phase.", - "unexpected-char-after-body": - "Unexpected non-space characters in the after body phase.", - "unexpected-start-tag-after-body": - "Unexpected start tag token (%(name)s)" - " in the after body phase.", - "unexpected-end-tag-after-body": - "Unexpected end tag token (%(name)s)" - " in the after body phase.", - "unexpected-char-in-frameset": - "Unexpected characters in the frameset phase. Characters ignored.", - "unexpected-start-tag-in-frameset": - "Unexpected start tag token (%(name)s)" - " in the frameset phase. Ignored.", - "unexpected-frameset-in-frameset-innerhtml": - "Unexpected end tag token (frameset) " - "in the frameset phase (innerHTML).", - "unexpected-end-tag-in-frameset": - "Unexpected end tag token (%(name)s)" - " in the frameset phase. Ignored.", - "unexpected-char-after-frameset": - "Unexpected non-space characters in the " - "after frameset phase. Ignored.", - "unexpected-start-tag-after-frameset": - "Unexpected start tag (%(name)s)" - " in the after frameset phase. Ignored.", - "unexpected-end-tag-after-frameset": - "Unexpected end tag (%(name)s)" - " in the after frameset phase. Ignored.", - "unexpected-end-tag-after-body-innerhtml": - "Unexpected end tag after body(innerHtml)", - "expected-eof-but-got-char": - "Unexpected non-space characters. Expected end of file.", - "expected-eof-but-got-start-tag": - "Unexpected start tag (%(name)s)" - ". Expected end of file.", - "expected-eof-but-got-end-tag": - "Unexpected end tag (%(name)s)" - ". Expected end of file.", - "eof-in-table": - "Unexpected end of file. Expected table content.", - "eof-in-select": - "Unexpected end of file. Expected select content.", - "eof-in-frameset": - "Unexpected end of file. Expected frameset content.", - "eof-in-script-in-script": - "Unexpected end of file. Expected script content.", - "eof-in-foreign-lands": - "Unexpected end of file. Expected foreign content", - "non-void-element-with-trailing-solidus": - "Trailing solidus not allowed on element %(name)s", - "unexpected-html-element-in-foreign-content": - "Element %(name)s not allowed in a non-html context", - "unexpected-end-tag-before-html": - "Unexpected end tag (%(name)s) before html.", - "unexpected-inhead-noscript-tag": - "Element %(name)s not allowed in a inhead-noscript context", - "eof-in-head-noscript": - "Unexpected end of file. Expected inhead-noscript content", - "char-in-head-noscript": - "Unexpected non-space character. Expected inhead-noscript content", - "XXX-undefined-error": - "Undefined error (this sucks and should be fixed)", -} - -namespaces = { - "html": "http://www.w3.org/1999/xhtml", - "mathml": "http://www.w3.org/1998/Math/MathML", - "svg": "http://www.w3.org/2000/svg", - "xlink": "http://www.w3.org/1999/xlink", - "xml": "http://www.w3.org/XML/1998/namespace", - "xmlns": "http://www.w3.org/2000/xmlns/" -} - -scopingElements = frozenset([ - (namespaces["html"], "applet"), - (namespaces["html"], "caption"), - (namespaces["html"], "html"), - (namespaces["html"], "marquee"), - (namespaces["html"], "object"), - (namespaces["html"], "table"), - (namespaces["html"], "td"), - (namespaces["html"], "th"), - (namespaces["mathml"], "mi"), - (namespaces["mathml"], "mo"), - (namespaces["mathml"], "mn"), - (namespaces["mathml"], "ms"), - (namespaces["mathml"], "mtext"), - (namespaces["mathml"], "annotation-xml"), - (namespaces["svg"], "foreignObject"), - (namespaces["svg"], "desc"), - (namespaces["svg"], "title"), -]) - -formattingElements = frozenset([ - (namespaces["html"], "a"), - (namespaces["html"], "b"), - (namespaces["html"], "big"), - (namespaces["html"], "code"), - (namespaces["html"], "em"), - (namespaces["html"], "font"), - (namespaces["html"], "i"), - (namespaces["html"], "nobr"), - (namespaces["html"], "s"), - (namespaces["html"], "small"), - (namespaces["html"], "strike"), - (namespaces["html"], "strong"), - (namespaces["html"], "tt"), - (namespaces["html"], "u") -]) - -specialElements = frozenset([ - (namespaces["html"], "address"), - (namespaces["html"], "applet"), - (namespaces["html"], "area"), - (namespaces["html"], "article"), - (namespaces["html"], "aside"), - (namespaces["html"], "base"), - (namespaces["html"], "basefont"), - (namespaces["html"], "bgsound"), - (namespaces["html"], "blockquote"), - (namespaces["html"], "body"), - (namespaces["html"], "br"), - (namespaces["html"], "button"), - (namespaces["html"], "caption"), - (namespaces["html"], "center"), - (namespaces["html"], "col"), - (namespaces["html"], "colgroup"), - (namespaces["html"], "command"), - (namespaces["html"], "dd"), - (namespaces["html"], "details"), - (namespaces["html"], "dir"), - (namespaces["html"], "div"), - (namespaces["html"], "dl"), - (namespaces["html"], "dt"), - (namespaces["html"], "embed"), - (namespaces["html"], "fieldset"), - (namespaces["html"], "figure"), - (namespaces["html"], "footer"), - (namespaces["html"], "form"), - (namespaces["html"], "frame"), - (namespaces["html"], "frameset"), - (namespaces["html"], "h1"), - (namespaces["html"], "h2"), - (namespaces["html"], "h3"), - (namespaces["html"], "h4"), - (namespaces["html"], "h5"), - (namespaces["html"], "h6"), - (namespaces["html"], "head"), - (namespaces["html"], "header"), - (namespaces["html"], "hr"), - (namespaces["html"], "html"), - (namespaces["html"], "iframe"), - # Note that image is commented out in the spec as "this isn't an - # element that can end up on the stack, so it doesn't matter," - (namespaces["html"], "image"), - (namespaces["html"], "img"), - (namespaces["html"], "input"), - (namespaces["html"], "isindex"), - (namespaces["html"], "li"), - (namespaces["html"], "link"), - (namespaces["html"], "listing"), - (namespaces["html"], "marquee"), - (namespaces["html"], "menu"), - (namespaces["html"], "meta"), - (namespaces["html"], "nav"), - (namespaces["html"], "noembed"), - (namespaces["html"], "noframes"), - (namespaces["html"], "noscript"), - (namespaces["html"], "object"), - (namespaces["html"], "ol"), - (namespaces["html"], "p"), - (namespaces["html"], "param"), - (namespaces["html"], "plaintext"), - (namespaces["html"], "pre"), - (namespaces["html"], "script"), - (namespaces["html"], "section"), - (namespaces["html"], "select"), - (namespaces["html"], "style"), - (namespaces["html"], "table"), - (namespaces["html"], "tbody"), - (namespaces["html"], "td"), - (namespaces["html"], "textarea"), - (namespaces["html"], "tfoot"), - (namespaces["html"], "th"), - (namespaces["html"], "thead"), - (namespaces["html"], "title"), - (namespaces["html"], "tr"), - (namespaces["html"], "ul"), - (namespaces["html"], "wbr"), - (namespaces["html"], "xmp"), - (namespaces["svg"], "foreignObject") -]) - -htmlIntegrationPointElements = frozenset([ - (namespaces["mathml"], "annotation-xml"), - (namespaces["svg"], "foreignObject"), - (namespaces["svg"], "desc"), - (namespaces["svg"], "title") -]) - -mathmlTextIntegrationPointElements = frozenset([ - (namespaces["mathml"], "mi"), - (namespaces["mathml"], "mo"), - (namespaces["mathml"], "mn"), - (namespaces["mathml"], "ms"), - (namespaces["mathml"], "mtext") -]) - -adjustSVGAttributes = { - "attributename": "attributeName", - "attributetype": "attributeType", - "basefrequency": "baseFrequency", - "baseprofile": "baseProfile", - "calcmode": "calcMode", - "clippathunits": "clipPathUnits", - "contentscripttype": "contentScriptType", - "contentstyletype": "contentStyleType", - "diffuseconstant": "diffuseConstant", - "edgemode": "edgeMode", - "externalresourcesrequired": "externalResourcesRequired", - "filterres": "filterRes", - "filterunits": "filterUnits", - "glyphref": "glyphRef", - "gradienttransform": "gradientTransform", - "gradientunits": "gradientUnits", - "kernelmatrix": "kernelMatrix", - "kernelunitlength": "kernelUnitLength", - "keypoints": "keyPoints", - "keysplines": "keySplines", - "keytimes": "keyTimes", - "lengthadjust": "lengthAdjust", - "limitingconeangle": "limitingConeAngle", - "markerheight": "markerHeight", - "markerunits": "markerUnits", - "markerwidth": "markerWidth", - "maskcontentunits": "maskContentUnits", - "maskunits": "maskUnits", - "numoctaves": "numOctaves", - "pathlength": "pathLength", - "patterncontentunits": "patternContentUnits", - "patterntransform": "patternTransform", - "patternunits": "patternUnits", - "pointsatx": "pointsAtX", - "pointsaty": "pointsAtY", - "pointsatz": "pointsAtZ", - "preservealpha": "preserveAlpha", - "preserveaspectratio": "preserveAspectRatio", - "primitiveunits": "primitiveUnits", - "refx": "refX", - "refy": "refY", - "repeatcount": "repeatCount", - "repeatdur": "repeatDur", - "requiredextensions": "requiredExtensions", - "requiredfeatures": "requiredFeatures", - "specularconstant": "specularConstant", - "specularexponent": "specularExponent", - "spreadmethod": "spreadMethod", - "startoffset": "startOffset", - "stddeviation": "stdDeviation", - "stitchtiles": "stitchTiles", - "surfacescale": "surfaceScale", - "systemlanguage": "systemLanguage", - "tablevalues": "tableValues", - "targetx": "targetX", - "targety": "targetY", - "textlength": "textLength", - "viewbox": "viewBox", - "viewtarget": "viewTarget", - "xchannelselector": "xChannelSelector", - "ychannelselector": "yChannelSelector", - "zoomandpan": "zoomAndPan" -} - -adjustMathMLAttributes = {"definitionurl": "definitionURL"} - -adjustForeignAttributes = { - "xlink:actuate": ("xlink", "actuate", namespaces["xlink"]), - "xlink:arcrole": ("xlink", "arcrole", namespaces["xlink"]), - "xlink:href": ("xlink", "href", namespaces["xlink"]), - "xlink:role": ("xlink", "role", namespaces["xlink"]), - "xlink:show": ("xlink", "show", namespaces["xlink"]), - "xlink:title": ("xlink", "title", namespaces["xlink"]), - "xlink:type": ("xlink", "type", namespaces["xlink"]), - "xml:base": ("xml", "base", namespaces["xml"]), - "xml:lang": ("xml", "lang", namespaces["xml"]), - "xml:space": ("xml", "space", namespaces["xml"]), - "xmlns": (None, "xmlns", namespaces["xmlns"]), - "xmlns:xlink": ("xmlns", "xlink", namespaces["xmlns"]) -} - -unadjustForeignAttributes = {(ns, local): qname for qname, (prefix, local, ns) in - adjustForeignAttributes.items()} - -spaceCharacters = frozenset([ - "\t", - "\n", - "\u000C", - " ", - "\r" -]) - -tableInsertModeElements = frozenset([ - "table", - "tbody", - "tfoot", - "thead", - "tr" -]) - -asciiLowercase = frozenset(string.ascii_lowercase) -asciiUppercase = frozenset(string.ascii_uppercase) -asciiLetters = frozenset(string.ascii_letters) -digits = frozenset(string.digits) -hexDigits = frozenset(string.hexdigits) - -asciiUpper2Lower = {ord(c): ord(c.lower()) for c in string.ascii_uppercase} - -# Heading elements need to be ordered -headingElements = ( - "h1", - "h2", - "h3", - "h4", - "h5", - "h6" -) - -voidElements = frozenset([ - "base", - "command", - "event-source", - "link", - "meta", - "hr", - "br", - "img", - "embed", - "param", - "area", - "col", - "input", - "source", - "track" -]) - -cdataElements = frozenset(['title', 'textarea']) - -rcdataElements = frozenset([ - 'style', - 'script', - 'xmp', - 'iframe', - 'noembed', - 'noframes', - 'noscript' -]) - -booleanAttributes = { - "": frozenset(["irrelevant", "itemscope"]), - "style": frozenset(["scoped"]), - "img": frozenset(["ismap"]), - "audio": frozenset(["autoplay", "controls"]), - "video": frozenset(["autoplay", "controls"]), - "script": frozenset(["defer", "async"]), - "details": frozenset(["open"]), - "datagrid": frozenset(["multiple", "disabled"]), - "command": frozenset(["hidden", "disabled", "checked", "default"]), - "hr": frozenset(["noshade"]), - "menu": frozenset(["autosubmit"]), - "fieldset": frozenset(["disabled", "readonly"]), - "option": frozenset(["disabled", "readonly", "selected"]), - "optgroup": frozenset(["disabled", "readonly"]), - "button": frozenset(["disabled", "autofocus"]), - "input": frozenset(["disabled", "readonly", "required", "autofocus", "checked", "ismap"]), - "select": frozenset(["disabled", "readonly", "autofocus", "multiple"]), - "output": frozenset(["disabled", "readonly"]), - "iframe": frozenset(["seamless"]), -} - -# entitiesWindows1252 has to be _ordered_ and needs to have an index. It -# therefore can't be a frozenset. -entitiesWindows1252 = ( - 8364, # 0x80 0x20AC EURO SIGN - 65533, # 0x81 UNDEFINED - 8218, # 0x82 0x201A SINGLE LOW-9 QUOTATION MARK - 402, # 0x83 0x0192 LATIN SMALL LETTER F WITH HOOK - 8222, # 0x84 0x201E DOUBLE LOW-9 QUOTATION MARK - 8230, # 0x85 0x2026 HORIZONTAL ELLIPSIS - 8224, # 0x86 0x2020 DAGGER - 8225, # 0x87 0x2021 DOUBLE DAGGER - 710, # 0x88 0x02C6 MODIFIER LETTER CIRCUMFLEX ACCENT - 8240, # 0x89 0x2030 PER MILLE SIGN - 352, # 0x8A 0x0160 LATIN CAPITAL LETTER S WITH CARON - 8249, # 0x8B 0x2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK - 338, # 0x8C 0x0152 LATIN CAPITAL LIGATURE OE - 65533, # 0x8D UNDEFINED - 381, # 0x8E 0x017D LATIN CAPITAL LETTER Z WITH CARON - 65533, # 0x8F UNDEFINED - 65533, # 0x90 UNDEFINED - 8216, # 0x91 0x2018 LEFT SINGLE QUOTATION MARK - 8217, # 0x92 0x2019 RIGHT SINGLE QUOTATION MARK - 8220, # 0x93 0x201C LEFT DOUBLE QUOTATION MARK - 8221, # 0x94 0x201D RIGHT DOUBLE QUOTATION MARK - 8226, # 0x95 0x2022 BULLET - 8211, # 0x96 0x2013 EN DASH - 8212, # 0x97 0x2014 EM DASH - 732, # 0x98 0x02DC SMALL TILDE - 8482, # 0x99 0x2122 TRADE MARK SIGN - 353, # 0x9A 0x0161 LATIN SMALL LETTER S WITH CARON - 8250, # 0x9B 0x203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - 339, # 0x9C 0x0153 LATIN SMALL LIGATURE OE - 65533, # 0x9D UNDEFINED - 382, # 0x9E 0x017E LATIN SMALL LETTER Z WITH CARON - 376 # 0x9F 0x0178 LATIN CAPITAL LETTER Y WITH DIAERESIS -) - -xmlEntities = frozenset(['lt;', 'gt;', 'amp;', 'apos;', 'quot;']) - -entities = { - "AElig": "\xc6", - "AElig;": "\xc6", - "AMP": "&", - "AMP;": "&", - "Aacute": "\xc1", - "Aacute;": "\xc1", - "Abreve;": "\u0102", - "Acirc": "\xc2", - "Acirc;": "\xc2", - "Acy;": "\u0410", - "Afr;": "\U0001d504", - "Agrave": "\xc0", - "Agrave;": "\xc0", - "Alpha;": "\u0391", - "Amacr;": "\u0100", - "And;": "\u2a53", - "Aogon;": "\u0104", - "Aopf;": "\U0001d538", - "ApplyFunction;": "\u2061", - "Aring": "\xc5", - "Aring;": "\xc5", - "Ascr;": "\U0001d49c", - "Assign;": "\u2254", - "Atilde": "\xc3", - "Atilde;": "\xc3", - "Auml": "\xc4", - "Auml;": "\xc4", - "Backslash;": "\u2216", - "Barv;": "\u2ae7", - "Barwed;": "\u2306", - "Bcy;": "\u0411", - "Because;": "\u2235", - "Bernoullis;": "\u212c", - "Beta;": "\u0392", - "Bfr;": "\U0001d505", - "Bopf;": "\U0001d539", - "Breve;": "\u02d8", - "Bscr;": "\u212c", - "Bumpeq;": "\u224e", - "CHcy;": "\u0427", - "COPY": "\xa9", - "COPY;": "\xa9", - "Cacute;": "\u0106", - "Cap;": "\u22d2", - "CapitalDifferentialD;": "\u2145", - "Cayleys;": "\u212d", - "Ccaron;": "\u010c", - "Ccedil": "\xc7", - "Ccedil;": "\xc7", - "Ccirc;": "\u0108", - "Cconint;": "\u2230", - "Cdot;": "\u010a", - "Cedilla;": "\xb8", - "CenterDot;": "\xb7", - "Cfr;": "\u212d", - "Chi;": "\u03a7", - "CircleDot;": "\u2299", - "CircleMinus;": "\u2296", - "CirclePlus;": "\u2295", - "CircleTimes;": "\u2297", - "ClockwiseContourIntegral;": "\u2232", - "CloseCurlyDoubleQuote;": "\u201d", - "CloseCurlyQuote;": "\u2019", - "Colon;": "\u2237", - "Colone;": "\u2a74", - "Congruent;": "\u2261", - "Conint;": "\u222f", - "ContourIntegral;": "\u222e", - "Copf;": "\u2102", - "Coproduct;": "\u2210", - "CounterClockwiseContourIntegral;": "\u2233", - "Cross;": "\u2a2f", - "Cscr;": "\U0001d49e", - "Cup;": "\u22d3", - "CupCap;": "\u224d", - "DD;": "\u2145", - "DDotrahd;": "\u2911", - "DJcy;": "\u0402", - "DScy;": "\u0405", - "DZcy;": "\u040f", - "Dagger;": "\u2021", - "Darr;": "\u21a1", - "Dashv;": "\u2ae4", - "Dcaron;": "\u010e", - "Dcy;": "\u0414", - "Del;": "\u2207", - "Delta;": "\u0394", - "Dfr;": "\U0001d507", - "DiacriticalAcute;": "\xb4", - "DiacriticalDot;": "\u02d9", - "DiacriticalDoubleAcute;": "\u02dd", - "DiacriticalGrave;": "`", - "DiacriticalTilde;": "\u02dc", - "Diamond;": "\u22c4", - "DifferentialD;": "\u2146", - "Dopf;": "\U0001d53b", - "Dot;": "\xa8", - "DotDot;": "\u20dc", - "DotEqual;": "\u2250", - "DoubleContourIntegral;": "\u222f", - "DoubleDot;": "\xa8", - "DoubleDownArrow;": "\u21d3", - "DoubleLeftArrow;": "\u21d0", - "DoubleLeftRightArrow;": "\u21d4", - "DoubleLeftTee;": "\u2ae4", - "DoubleLongLeftArrow;": "\u27f8", - "DoubleLongLeftRightArrow;": "\u27fa", - "DoubleLongRightArrow;": "\u27f9", - "DoubleRightArrow;": "\u21d2", - "DoubleRightTee;": "\u22a8", - "DoubleUpArrow;": "\u21d1", - "DoubleUpDownArrow;": "\u21d5", - "DoubleVerticalBar;": "\u2225", - "DownArrow;": "\u2193", - "DownArrowBar;": "\u2913", - "DownArrowUpArrow;": "\u21f5", - "DownBreve;": "\u0311", - "DownLeftRightVector;": "\u2950", - "DownLeftTeeVector;": "\u295e", - "DownLeftVector;": "\u21bd", - "DownLeftVectorBar;": "\u2956", - "DownRightTeeVector;": "\u295f", - "DownRightVector;": "\u21c1", - "DownRightVectorBar;": "\u2957", - "DownTee;": "\u22a4", - "DownTeeArrow;": "\u21a7", - "Downarrow;": "\u21d3", - "Dscr;": "\U0001d49f", - "Dstrok;": "\u0110", - "ENG;": "\u014a", - "ETH": "\xd0", - "ETH;": "\xd0", - "Eacute": "\xc9", - "Eacute;": "\xc9", - "Ecaron;": "\u011a", - "Ecirc": "\xca", - "Ecirc;": "\xca", - "Ecy;": "\u042d", - "Edot;": "\u0116", - "Efr;": "\U0001d508", - "Egrave": "\xc8", - "Egrave;": "\xc8", - "Element;": "\u2208", - "Emacr;": "\u0112", - "EmptySmallSquare;": "\u25fb", - "EmptyVerySmallSquare;": "\u25ab", - "Eogon;": "\u0118", - "Eopf;": "\U0001d53c", - "Epsilon;": "\u0395", - "Equal;": "\u2a75", - "EqualTilde;": "\u2242", - "Equilibrium;": "\u21cc", - "Escr;": "\u2130", - "Esim;": "\u2a73", - "Eta;": "\u0397", - "Euml": "\xcb", - "Euml;": "\xcb", - "Exists;": "\u2203", - "ExponentialE;": "\u2147", - "Fcy;": "\u0424", - "Ffr;": "\U0001d509", - "FilledSmallSquare;": "\u25fc", - "FilledVerySmallSquare;": "\u25aa", - "Fopf;": "\U0001d53d", - "ForAll;": "\u2200", - "Fouriertrf;": "\u2131", - "Fscr;": "\u2131", - "GJcy;": "\u0403", - "GT": ">", - "GT;": ">", - "Gamma;": "\u0393", - "Gammad;": "\u03dc", - "Gbreve;": "\u011e", - "Gcedil;": "\u0122", - "Gcirc;": "\u011c", - "Gcy;": "\u0413", - "Gdot;": "\u0120", - "Gfr;": "\U0001d50a", - "Gg;": "\u22d9", - "Gopf;": "\U0001d53e", - "GreaterEqual;": "\u2265", - "GreaterEqualLess;": "\u22db", - "GreaterFullEqual;": "\u2267", - "GreaterGreater;": "\u2aa2", - "GreaterLess;": "\u2277", - "GreaterSlantEqual;": "\u2a7e", - "GreaterTilde;": "\u2273", - "Gscr;": "\U0001d4a2", - "Gt;": "\u226b", - "HARDcy;": "\u042a", - "Hacek;": "\u02c7", - "Hat;": "^", - "Hcirc;": "\u0124", - "Hfr;": "\u210c", - "HilbertSpace;": "\u210b", - "Hopf;": "\u210d", - "HorizontalLine;": "\u2500", - "Hscr;": "\u210b", - "Hstrok;": "\u0126", - "HumpDownHump;": "\u224e", - "HumpEqual;": "\u224f", - "IEcy;": "\u0415", - "IJlig;": "\u0132", - "IOcy;": "\u0401", - "Iacute": "\xcd", - "Iacute;": "\xcd", - "Icirc": "\xce", - "Icirc;": "\xce", - "Icy;": "\u0418", - "Idot;": "\u0130", - "Ifr;": "\u2111", - "Igrave": "\xcc", - "Igrave;": "\xcc", - "Im;": "\u2111", - "Imacr;": "\u012a", - "ImaginaryI;": "\u2148", - "Implies;": "\u21d2", - "Int;": "\u222c", - "Integral;": "\u222b", - "Intersection;": "\u22c2", - "InvisibleComma;": "\u2063", - "InvisibleTimes;": "\u2062", - "Iogon;": "\u012e", - "Iopf;": "\U0001d540", - "Iota;": "\u0399", - "Iscr;": "\u2110", - "Itilde;": "\u0128", - "Iukcy;": "\u0406", - "Iuml": "\xcf", - "Iuml;": "\xcf", - "Jcirc;": "\u0134", - "Jcy;": "\u0419", - "Jfr;": "\U0001d50d", - "Jopf;": "\U0001d541", - "Jscr;": "\U0001d4a5", - "Jsercy;": "\u0408", - "Jukcy;": "\u0404", - "KHcy;": "\u0425", - "KJcy;": "\u040c", - "Kappa;": "\u039a", - "Kcedil;": "\u0136", - "Kcy;": "\u041a", - "Kfr;": "\U0001d50e", - "Kopf;": "\U0001d542", - "Kscr;": "\U0001d4a6", - "LJcy;": "\u0409", - "LT": "<", - "LT;": "<", - "Lacute;": "\u0139", - "Lambda;": "\u039b", - "Lang;": "\u27ea", - "Laplacetrf;": "\u2112", - "Larr;": "\u219e", - "Lcaron;": "\u013d", - "Lcedil;": "\u013b", - "Lcy;": "\u041b", - "LeftAngleBracket;": "\u27e8", - "LeftArrow;": "\u2190", - "LeftArrowBar;": "\u21e4", - "LeftArrowRightArrow;": "\u21c6", - "LeftCeiling;": "\u2308", - "LeftDoubleBracket;": "\u27e6", - "LeftDownTeeVector;": "\u2961", - "LeftDownVector;": "\u21c3", - "LeftDownVectorBar;": "\u2959", - "LeftFloor;": "\u230a", - "LeftRightArrow;": "\u2194", - "LeftRightVector;": "\u294e", - "LeftTee;": "\u22a3", - "LeftTeeArrow;": "\u21a4", - "LeftTeeVector;": "\u295a", - "LeftTriangle;": "\u22b2", - "LeftTriangleBar;": "\u29cf", - "LeftTriangleEqual;": "\u22b4", - "LeftUpDownVector;": "\u2951", - "LeftUpTeeVector;": "\u2960", - "LeftUpVector;": "\u21bf", - "LeftUpVectorBar;": "\u2958", - "LeftVector;": "\u21bc", - "LeftVectorBar;": "\u2952", - "Leftarrow;": "\u21d0", - "Leftrightarrow;": "\u21d4", - "LessEqualGreater;": "\u22da", - "LessFullEqual;": "\u2266", - "LessGreater;": "\u2276", - "LessLess;": "\u2aa1", - "LessSlantEqual;": "\u2a7d", - "LessTilde;": "\u2272", - "Lfr;": "\U0001d50f", - "Ll;": "\u22d8", - "Lleftarrow;": "\u21da", - "Lmidot;": "\u013f", - "LongLeftArrow;": "\u27f5", - "LongLeftRightArrow;": "\u27f7", - "LongRightArrow;": "\u27f6", - "Longleftarrow;": "\u27f8", - "Longleftrightarrow;": "\u27fa", - "Longrightarrow;": "\u27f9", - "Lopf;": "\U0001d543", - "LowerLeftArrow;": "\u2199", - "LowerRightArrow;": "\u2198", - "Lscr;": "\u2112", - "Lsh;": "\u21b0", - "Lstrok;": "\u0141", - "Lt;": "\u226a", - "Map;": "\u2905", - "Mcy;": "\u041c", - "MediumSpace;": "\u205f", - "Mellintrf;": "\u2133", - "Mfr;": "\U0001d510", - "MinusPlus;": "\u2213", - "Mopf;": "\U0001d544", - "Mscr;": "\u2133", - "Mu;": "\u039c", - "NJcy;": "\u040a", - "Nacute;": "\u0143", - "Ncaron;": "\u0147", - "Ncedil;": "\u0145", - "Ncy;": "\u041d", - "NegativeMediumSpace;": "\u200b", - "NegativeThickSpace;": "\u200b", - "NegativeThinSpace;": "\u200b", - "NegativeVeryThinSpace;": "\u200b", - "NestedGreaterGreater;": "\u226b", - "NestedLessLess;": "\u226a", - "NewLine;": "\n", - "Nfr;": "\U0001d511", - "NoBreak;": "\u2060", - "NonBreakingSpace;": "\xa0", - "Nopf;": "\u2115", - "Not;": "\u2aec", - "NotCongruent;": "\u2262", - "NotCupCap;": "\u226d", - "NotDoubleVerticalBar;": "\u2226", - "NotElement;": "\u2209", - "NotEqual;": "\u2260", - "NotEqualTilde;": "\u2242\u0338", - "NotExists;": "\u2204", - "NotGreater;": "\u226f", - "NotGreaterEqual;": "\u2271", - "NotGreaterFullEqual;": "\u2267\u0338", - "NotGreaterGreater;": "\u226b\u0338", - "NotGreaterLess;": "\u2279", - "NotGreaterSlantEqual;": "\u2a7e\u0338", - "NotGreaterTilde;": "\u2275", - "NotHumpDownHump;": "\u224e\u0338", - "NotHumpEqual;": "\u224f\u0338", - "NotLeftTriangle;": "\u22ea", - "NotLeftTriangleBar;": "\u29cf\u0338", - "NotLeftTriangleEqual;": "\u22ec", - "NotLess;": "\u226e", - "NotLessEqual;": "\u2270", - "NotLessGreater;": "\u2278", - "NotLessLess;": "\u226a\u0338", - "NotLessSlantEqual;": "\u2a7d\u0338", - "NotLessTilde;": "\u2274", - "NotNestedGreaterGreater;": "\u2aa2\u0338", - "NotNestedLessLess;": "\u2aa1\u0338", - "NotPrecedes;": "\u2280", - "NotPrecedesEqual;": "\u2aaf\u0338", - "NotPrecedesSlantEqual;": "\u22e0", - "NotReverseElement;": "\u220c", - "NotRightTriangle;": "\u22eb", - "NotRightTriangleBar;": "\u29d0\u0338", - "NotRightTriangleEqual;": "\u22ed", - "NotSquareSubset;": "\u228f\u0338", - "NotSquareSubsetEqual;": "\u22e2", - "NotSquareSuperset;": "\u2290\u0338", - "NotSquareSupersetEqual;": "\u22e3", - "NotSubset;": "\u2282\u20d2", - "NotSubsetEqual;": "\u2288", - "NotSucceeds;": "\u2281", - "NotSucceedsEqual;": "\u2ab0\u0338", - "NotSucceedsSlantEqual;": "\u22e1", - "NotSucceedsTilde;": "\u227f\u0338", - "NotSuperset;": "\u2283\u20d2", - "NotSupersetEqual;": "\u2289", - "NotTilde;": "\u2241", - "NotTildeEqual;": "\u2244", - "NotTildeFullEqual;": "\u2247", - "NotTildeTilde;": "\u2249", - "NotVerticalBar;": "\u2224", - "Nscr;": "\U0001d4a9", - "Ntilde": "\xd1", - "Ntilde;": "\xd1", - "Nu;": "\u039d", - "OElig;": "\u0152", - "Oacute": "\xd3", - "Oacute;": "\xd3", - "Ocirc": "\xd4", - "Ocirc;": "\xd4", - "Ocy;": "\u041e", - "Odblac;": "\u0150", - "Ofr;": "\U0001d512", - "Ograve": "\xd2", - "Ograve;": "\xd2", - "Omacr;": "\u014c", - "Omega;": "\u03a9", - "Omicron;": "\u039f", - "Oopf;": "\U0001d546", - "OpenCurlyDoubleQuote;": "\u201c", - "OpenCurlyQuote;": "\u2018", - "Or;": "\u2a54", - "Oscr;": "\U0001d4aa", - "Oslash": "\xd8", - "Oslash;": "\xd8", - "Otilde": "\xd5", - "Otilde;": "\xd5", - "Otimes;": "\u2a37", - "Ouml": "\xd6", - "Ouml;": "\xd6", - "OverBar;": "\u203e", - "OverBrace;": "\u23de", - "OverBracket;": "\u23b4", - "OverParenthesis;": "\u23dc", - "PartialD;": "\u2202", - "Pcy;": "\u041f", - "Pfr;": "\U0001d513", - "Phi;": "\u03a6", - "Pi;": "\u03a0", - "PlusMinus;": "\xb1", - "Poincareplane;": "\u210c", - "Popf;": "\u2119", - "Pr;": "\u2abb", - "Precedes;": "\u227a", - "PrecedesEqual;": "\u2aaf", - "PrecedesSlantEqual;": "\u227c", - "PrecedesTilde;": "\u227e", - "Prime;": "\u2033", - "Product;": "\u220f", - "Proportion;": "\u2237", - "Proportional;": "\u221d", - "Pscr;": "\U0001d4ab", - "Psi;": "\u03a8", - "QUOT": "\"", - "QUOT;": "\"", - "Qfr;": "\U0001d514", - "Qopf;": "\u211a", - "Qscr;": "\U0001d4ac", - "RBarr;": "\u2910", - "REG": "\xae", - "REG;": "\xae", - "Racute;": "\u0154", - "Rang;": "\u27eb", - "Rarr;": "\u21a0", - "Rarrtl;": "\u2916", - "Rcaron;": "\u0158", - "Rcedil;": "\u0156", - "Rcy;": "\u0420", - "Re;": "\u211c", - "ReverseElement;": "\u220b", - "ReverseEquilibrium;": "\u21cb", - "ReverseUpEquilibrium;": "\u296f", - "Rfr;": "\u211c", - "Rho;": "\u03a1", - "RightAngleBracket;": "\u27e9", - "RightArrow;": "\u2192", - "RightArrowBar;": "\u21e5", - "RightArrowLeftArrow;": "\u21c4", - "RightCeiling;": "\u2309", - "RightDoubleBracket;": "\u27e7", - "RightDownTeeVector;": "\u295d", - "RightDownVector;": "\u21c2", - "RightDownVectorBar;": "\u2955", - "RightFloor;": "\u230b", - "RightTee;": "\u22a2", - "RightTeeArrow;": "\u21a6", - "RightTeeVector;": "\u295b", - "RightTriangle;": "\u22b3", - "RightTriangleBar;": "\u29d0", - "RightTriangleEqual;": "\u22b5", - "RightUpDownVector;": "\u294f", - "RightUpTeeVector;": "\u295c", - "RightUpVector;": "\u21be", - "RightUpVectorBar;": "\u2954", - "RightVector;": "\u21c0", - "RightVectorBar;": "\u2953", - "Rightarrow;": "\u21d2", - "Ropf;": "\u211d", - "RoundImplies;": "\u2970", - "Rrightarrow;": "\u21db", - "Rscr;": "\u211b", - "Rsh;": "\u21b1", - "RuleDelayed;": "\u29f4", - "SHCHcy;": "\u0429", - "SHcy;": "\u0428", - "SOFTcy;": "\u042c", - "Sacute;": "\u015a", - "Sc;": "\u2abc", - "Scaron;": "\u0160", - "Scedil;": "\u015e", - "Scirc;": "\u015c", - "Scy;": "\u0421", - "Sfr;": "\U0001d516", - "ShortDownArrow;": "\u2193", - "ShortLeftArrow;": "\u2190", - "ShortRightArrow;": "\u2192", - "ShortUpArrow;": "\u2191", - "Sigma;": "\u03a3", - "SmallCircle;": "\u2218", - "Sopf;": "\U0001d54a", - "Sqrt;": "\u221a", - "Square;": "\u25a1", - "SquareIntersection;": "\u2293", - "SquareSubset;": "\u228f", - "SquareSubsetEqual;": "\u2291", - "SquareSuperset;": "\u2290", - "SquareSupersetEqual;": "\u2292", - "SquareUnion;": "\u2294", - "Sscr;": "\U0001d4ae", - "Star;": "\u22c6", - "Sub;": "\u22d0", - "Subset;": "\u22d0", - "SubsetEqual;": "\u2286", - "Succeeds;": "\u227b", - "SucceedsEqual;": "\u2ab0", - "SucceedsSlantEqual;": "\u227d", - "SucceedsTilde;": "\u227f", - "SuchThat;": "\u220b", - "Sum;": "\u2211", - "Sup;": "\u22d1", - "Superset;": "\u2283", - "SupersetEqual;": "\u2287", - "Supset;": "\u22d1", - "THORN": "\xde", - "THORN;": "\xde", - "TRADE;": "\u2122", - "TSHcy;": "\u040b", - "TScy;": "\u0426", - "Tab;": "\t", - "Tau;": "\u03a4", - "Tcaron;": "\u0164", - "Tcedil;": "\u0162", - "Tcy;": "\u0422", - "Tfr;": "\U0001d517", - "Therefore;": "\u2234", - "Theta;": "\u0398", - "ThickSpace;": "\u205f\u200a", - "ThinSpace;": "\u2009", - "Tilde;": "\u223c", - "TildeEqual;": "\u2243", - "TildeFullEqual;": "\u2245", - "TildeTilde;": "\u2248", - "Topf;": "\U0001d54b", - "TripleDot;": "\u20db", - "Tscr;": "\U0001d4af", - "Tstrok;": "\u0166", - "Uacute": "\xda", - "Uacute;": "\xda", - "Uarr;": "\u219f", - "Uarrocir;": "\u2949", - "Ubrcy;": "\u040e", - "Ubreve;": "\u016c", - "Ucirc": "\xdb", - "Ucirc;": "\xdb", - "Ucy;": "\u0423", - "Udblac;": "\u0170", - "Ufr;": "\U0001d518", - "Ugrave": "\xd9", - "Ugrave;": "\xd9", - "Umacr;": "\u016a", - "UnderBar;": "_", - "UnderBrace;": "\u23df", - "UnderBracket;": "\u23b5", - "UnderParenthesis;": "\u23dd", - "Union;": "\u22c3", - "UnionPlus;": "\u228e", - "Uogon;": "\u0172", - "Uopf;": "\U0001d54c", - "UpArrow;": "\u2191", - "UpArrowBar;": "\u2912", - "UpArrowDownArrow;": "\u21c5", - "UpDownArrow;": "\u2195", - "UpEquilibrium;": "\u296e", - "UpTee;": "\u22a5", - "UpTeeArrow;": "\u21a5", - "Uparrow;": "\u21d1", - "Updownarrow;": "\u21d5", - "UpperLeftArrow;": "\u2196", - "UpperRightArrow;": "\u2197", - "Upsi;": "\u03d2", - "Upsilon;": "\u03a5", - "Uring;": "\u016e", - "Uscr;": "\U0001d4b0", - "Utilde;": "\u0168", - "Uuml": "\xdc", - "Uuml;": "\xdc", - "VDash;": "\u22ab", - "Vbar;": "\u2aeb", - "Vcy;": "\u0412", - "Vdash;": "\u22a9", - "Vdashl;": "\u2ae6", - "Vee;": "\u22c1", - "Verbar;": "\u2016", - "Vert;": "\u2016", - "VerticalBar;": "\u2223", - "VerticalLine;": "|", - "VerticalSeparator;": "\u2758", - "VerticalTilde;": "\u2240", - "VeryThinSpace;": "\u200a", - "Vfr;": "\U0001d519", - "Vopf;": "\U0001d54d", - "Vscr;": "\U0001d4b1", - "Vvdash;": "\u22aa", - "Wcirc;": "\u0174", - "Wedge;": "\u22c0", - "Wfr;": "\U0001d51a", - "Wopf;": "\U0001d54e", - "Wscr;": "\U0001d4b2", - "Xfr;": "\U0001d51b", - "Xi;": "\u039e", - "Xopf;": "\U0001d54f", - "Xscr;": "\U0001d4b3", - "YAcy;": "\u042f", - "YIcy;": "\u0407", - "YUcy;": "\u042e", - "Yacute": "\xdd", - "Yacute;": "\xdd", - "Ycirc;": "\u0176", - "Ycy;": "\u042b", - "Yfr;": "\U0001d51c", - "Yopf;": "\U0001d550", - "Yscr;": "\U0001d4b4", - "Yuml;": "\u0178", - "ZHcy;": "\u0416", - "Zacute;": "\u0179", - "Zcaron;": "\u017d", - "Zcy;": "\u0417", - "Zdot;": "\u017b", - "ZeroWidthSpace;": "\u200b", - "Zeta;": "\u0396", - "Zfr;": "\u2128", - "Zopf;": "\u2124", - "Zscr;": "\U0001d4b5", - "aacute": "\xe1", - "aacute;": "\xe1", - "abreve;": "\u0103", - "ac;": "\u223e", - "acE;": "\u223e\u0333", - "acd;": "\u223f", - "acirc": "\xe2", - "acirc;": "\xe2", - "acute": "\xb4", - "acute;": "\xb4", - "acy;": "\u0430", - "aelig": "\xe6", - "aelig;": "\xe6", - "af;": "\u2061", - "afr;": "\U0001d51e", - "agrave": "\xe0", - "agrave;": "\xe0", - "alefsym;": "\u2135", - "aleph;": "\u2135", - "alpha;": "\u03b1", - "amacr;": "\u0101", - "amalg;": "\u2a3f", - "amp": "&", - "amp;": "&", - "and;": "\u2227", - "andand;": "\u2a55", - "andd;": "\u2a5c", - "andslope;": "\u2a58", - "andv;": "\u2a5a", - "ang;": "\u2220", - "ange;": "\u29a4", - "angle;": "\u2220", - "angmsd;": "\u2221", - "angmsdaa;": "\u29a8", - "angmsdab;": "\u29a9", - "angmsdac;": "\u29aa", - "angmsdad;": "\u29ab", - "angmsdae;": "\u29ac", - "angmsdaf;": "\u29ad", - "angmsdag;": "\u29ae", - "angmsdah;": "\u29af", - "angrt;": "\u221f", - "angrtvb;": "\u22be", - "angrtvbd;": "\u299d", - "angsph;": "\u2222", - "angst;": "\xc5", - "angzarr;": "\u237c", - "aogon;": "\u0105", - "aopf;": "\U0001d552", - "ap;": "\u2248", - "apE;": "\u2a70", - "apacir;": "\u2a6f", - "ape;": "\u224a", - "apid;": "\u224b", - "apos;": "'", - "approx;": "\u2248", - "approxeq;": "\u224a", - "aring": "\xe5", - "aring;": "\xe5", - "ascr;": "\U0001d4b6", - "ast;": "*", - "asymp;": "\u2248", - "asympeq;": "\u224d", - "atilde": "\xe3", - "atilde;": "\xe3", - "auml": "\xe4", - "auml;": "\xe4", - "awconint;": "\u2233", - "awint;": "\u2a11", - "bNot;": "\u2aed", - "backcong;": "\u224c", - "backepsilon;": "\u03f6", - "backprime;": "\u2035", - "backsim;": "\u223d", - "backsimeq;": "\u22cd", - "barvee;": "\u22bd", - "barwed;": "\u2305", - "barwedge;": "\u2305", - "bbrk;": "\u23b5", - "bbrktbrk;": "\u23b6", - "bcong;": "\u224c", - "bcy;": "\u0431", - "bdquo;": "\u201e", - "becaus;": "\u2235", - "because;": "\u2235", - "bemptyv;": "\u29b0", - "bepsi;": "\u03f6", - "bernou;": "\u212c", - "beta;": "\u03b2", - "beth;": "\u2136", - "between;": "\u226c", - "bfr;": "\U0001d51f", - "bigcap;": "\u22c2", - "bigcirc;": "\u25ef", - "bigcup;": "\u22c3", - "bigodot;": "\u2a00", - "bigoplus;": "\u2a01", - "bigotimes;": "\u2a02", - "bigsqcup;": "\u2a06", - "bigstar;": "\u2605", - "bigtriangledown;": "\u25bd", - "bigtriangleup;": "\u25b3", - "biguplus;": "\u2a04", - "bigvee;": "\u22c1", - "bigwedge;": "\u22c0", - "bkarow;": "\u290d", - "blacklozenge;": "\u29eb", - "blacksquare;": "\u25aa", - "blacktriangle;": "\u25b4", - "blacktriangledown;": "\u25be", - "blacktriangleleft;": "\u25c2", - "blacktriangleright;": "\u25b8", - "blank;": "\u2423", - "blk12;": "\u2592", - "blk14;": "\u2591", - "blk34;": "\u2593", - "block;": "\u2588", - "bne;": "=\u20e5", - "bnequiv;": "\u2261\u20e5", - "bnot;": "\u2310", - "bopf;": "\U0001d553", - "bot;": "\u22a5", - "bottom;": "\u22a5", - "bowtie;": "\u22c8", - "boxDL;": "\u2557", - "boxDR;": "\u2554", - "boxDl;": "\u2556", - "boxDr;": "\u2553", - "boxH;": "\u2550", - "boxHD;": "\u2566", - "boxHU;": "\u2569", - "boxHd;": "\u2564", - "boxHu;": "\u2567", - "boxUL;": "\u255d", - "boxUR;": "\u255a", - "boxUl;": "\u255c", - "boxUr;": "\u2559", - "boxV;": "\u2551", - "boxVH;": "\u256c", - "boxVL;": "\u2563", - "boxVR;": "\u2560", - "boxVh;": "\u256b", - "boxVl;": "\u2562", - "boxVr;": "\u255f", - "boxbox;": "\u29c9", - "boxdL;": "\u2555", - "boxdR;": "\u2552", - "boxdl;": "\u2510", - "boxdr;": "\u250c", - "boxh;": "\u2500", - "boxhD;": "\u2565", - "boxhU;": "\u2568", - "boxhd;": "\u252c", - "boxhu;": "\u2534", - "boxminus;": "\u229f", - "boxplus;": "\u229e", - "boxtimes;": "\u22a0", - "boxuL;": "\u255b", - "boxuR;": "\u2558", - "boxul;": "\u2518", - "boxur;": "\u2514", - "boxv;": "\u2502", - "boxvH;": "\u256a", - "boxvL;": "\u2561", - "boxvR;": "\u255e", - "boxvh;": "\u253c", - "boxvl;": "\u2524", - "boxvr;": "\u251c", - "bprime;": "\u2035", - "breve;": "\u02d8", - "brvbar": "\xa6", - "brvbar;": "\xa6", - "bscr;": "\U0001d4b7", - "bsemi;": "\u204f", - "bsim;": "\u223d", - "bsime;": "\u22cd", - "bsol;": "\\", - "bsolb;": "\u29c5", - "bsolhsub;": "\u27c8", - "bull;": "\u2022", - "bullet;": "\u2022", - "bump;": "\u224e", - "bumpE;": "\u2aae", - "bumpe;": "\u224f", - "bumpeq;": "\u224f", - "cacute;": "\u0107", - "cap;": "\u2229", - "capand;": "\u2a44", - "capbrcup;": "\u2a49", - "capcap;": "\u2a4b", - "capcup;": "\u2a47", - "capdot;": "\u2a40", - "caps;": "\u2229\ufe00", - "caret;": "\u2041", - "caron;": "\u02c7", - "ccaps;": "\u2a4d", - "ccaron;": "\u010d", - "ccedil": "\xe7", - "ccedil;": "\xe7", - "ccirc;": "\u0109", - "ccups;": "\u2a4c", - "ccupssm;": "\u2a50", - "cdot;": "\u010b", - "cedil": "\xb8", - "cedil;": "\xb8", - "cemptyv;": "\u29b2", - "cent": "\xa2", - "cent;": "\xa2", - "centerdot;": "\xb7", - "cfr;": "\U0001d520", - "chcy;": "\u0447", - "check;": "\u2713", - "checkmark;": "\u2713", - "chi;": "\u03c7", - "cir;": "\u25cb", - "cirE;": "\u29c3", - "circ;": "\u02c6", - "circeq;": "\u2257", - "circlearrowleft;": "\u21ba", - "circlearrowright;": "\u21bb", - "circledR;": "\xae", - "circledS;": "\u24c8", - "circledast;": "\u229b", - "circledcirc;": "\u229a", - "circleddash;": "\u229d", - "cire;": "\u2257", - "cirfnint;": "\u2a10", - "cirmid;": "\u2aef", - "cirscir;": "\u29c2", - "clubs;": "\u2663", - "clubsuit;": "\u2663", - "colon;": ":", - "colone;": "\u2254", - "coloneq;": "\u2254", - "comma;": ",", - "commat;": "@", - "comp;": "\u2201", - "compfn;": "\u2218", - "complement;": "\u2201", - "complexes;": "\u2102", - "cong;": "\u2245", - "congdot;": "\u2a6d", - "conint;": "\u222e", - "copf;": "\U0001d554", - "coprod;": "\u2210", - "copy": "\xa9", - "copy;": "\xa9", - "copysr;": "\u2117", - "crarr;": "\u21b5", - "cross;": "\u2717", - "cscr;": "\U0001d4b8", - "csub;": "\u2acf", - "csube;": "\u2ad1", - "csup;": "\u2ad0", - "csupe;": "\u2ad2", - "ctdot;": "\u22ef", - "cudarrl;": "\u2938", - "cudarrr;": "\u2935", - "cuepr;": "\u22de", - "cuesc;": "\u22df", - "cularr;": "\u21b6", - "cularrp;": "\u293d", - "cup;": "\u222a", - "cupbrcap;": "\u2a48", - "cupcap;": "\u2a46", - "cupcup;": "\u2a4a", - "cupdot;": "\u228d", - "cupor;": "\u2a45", - "cups;": "\u222a\ufe00", - "curarr;": "\u21b7", - "curarrm;": "\u293c", - "curlyeqprec;": "\u22de", - "curlyeqsucc;": "\u22df", - "curlyvee;": "\u22ce", - "curlywedge;": "\u22cf", - "curren": "\xa4", - "curren;": "\xa4", - "curvearrowleft;": "\u21b6", - "curvearrowright;": "\u21b7", - "cuvee;": "\u22ce", - "cuwed;": "\u22cf", - "cwconint;": "\u2232", - "cwint;": "\u2231", - "cylcty;": "\u232d", - "dArr;": "\u21d3", - "dHar;": "\u2965", - "dagger;": "\u2020", - "daleth;": "\u2138", - "darr;": "\u2193", - "dash;": "\u2010", - "dashv;": "\u22a3", - "dbkarow;": "\u290f", - "dblac;": "\u02dd", - "dcaron;": "\u010f", - "dcy;": "\u0434", - "dd;": "\u2146", - "ddagger;": "\u2021", - "ddarr;": "\u21ca", - "ddotseq;": "\u2a77", - "deg": "\xb0", - "deg;": "\xb0", - "delta;": "\u03b4", - "demptyv;": "\u29b1", - "dfisht;": "\u297f", - "dfr;": "\U0001d521", - "dharl;": "\u21c3", - "dharr;": "\u21c2", - "diam;": "\u22c4", - "diamond;": "\u22c4", - "diamondsuit;": "\u2666", - "diams;": "\u2666", - "die;": "\xa8", - "digamma;": "\u03dd", - "disin;": "\u22f2", - "div;": "\xf7", - "divide": "\xf7", - "divide;": "\xf7", - "divideontimes;": "\u22c7", - "divonx;": "\u22c7", - "djcy;": "\u0452", - "dlcorn;": "\u231e", - "dlcrop;": "\u230d", - "dollar;": "$", - "dopf;": "\U0001d555", - "dot;": "\u02d9", - "doteq;": "\u2250", - "doteqdot;": "\u2251", - "dotminus;": "\u2238", - "dotplus;": "\u2214", - "dotsquare;": "\u22a1", - "doublebarwedge;": "\u2306", - "downarrow;": "\u2193", - "downdownarrows;": "\u21ca", - "downharpoonleft;": "\u21c3", - "downharpoonright;": "\u21c2", - "drbkarow;": "\u2910", - "drcorn;": "\u231f", - "drcrop;": "\u230c", - "dscr;": "\U0001d4b9", - "dscy;": "\u0455", - "dsol;": "\u29f6", - "dstrok;": "\u0111", - "dtdot;": "\u22f1", - "dtri;": "\u25bf", - "dtrif;": "\u25be", - "duarr;": "\u21f5", - "duhar;": "\u296f", - "dwangle;": "\u29a6", - "dzcy;": "\u045f", - "dzigrarr;": "\u27ff", - "eDDot;": "\u2a77", - "eDot;": "\u2251", - "eacute": "\xe9", - "eacute;": "\xe9", - "easter;": "\u2a6e", - "ecaron;": "\u011b", - "ecir;": "\u2256", - "ecirc": "\xea", - "ecirc;": "\xea", - "ecolon;": "\u2255", - "ecy;": "\u044d", - "edot;": "\u0117", - "ee;": "\u2147", - "efDot;": "\u2252", - "efr;": "\U0001d522", - "eg;": "\u2a9a", - "egrave": "\xe8", - "egrave;": "\xe8", - "egs;": "\u2a96", - "egsdot;": "\u2a98", - "el;": "\u2a99", - "elinters;": "\u23e7", - "ell;": "\u2113", - "els;": "\u2a95", - "elsdot;": "\u2a97", - "emacr;": "\u0113", - "empty;": "\u2205", - "emptyset;": "\u2205", - "emptyv;": "\u2205", - "emsp13;": "\u2004", - "emsp14;": "\u2005", - "emsp;": "\u2003", - "eng;": "\u014b", - "ensp;": "\u2002", - "eogon;": "\u0119", - "eopf;": "\U0001d556", - "epar;": "\u22d5", - "eparsl;": "\u29e3", - "eplus;": "\u2a71", - "epsi;": "\u03b5", - "epsilon;": "\u03b5", - "epsiv;": "\u03f5", - "eqcirc;": "\u2256", - "eqcolon;": "\u2255", - "eqsim;": "\u2242", - "eqslantgtr;": "\u2a96", - "eqslantless;": "\u2a95", - "equals;": "=", - "equest;": "\u225f", - "equiv;": "\u2261", - "equivDD;": "\u2a78", - "eqvparsl;": "\u29e5", - "erDot;": "\u2253", - "erarr;": "\u2971", - "escr;": "\u212f", - "esdot;": "\u2250", - "esim;": "\u2242", - "eta;": "\u03b7", - "eth": "\xf0", - "eth;": "\xf0", - "euml": "\xeb", - "euml;": "\xeb", - "euro;": "\u20ac", - "excl;": "!", - "exist;": "\u2203", - "expectation;": "\u2130", - "exponentiale;": "\u2147", - "fallingdotseq;": "\u2252", - "fcy;": "\u0444", - "female;": "\u2640", - "ffilig;": "\ufb03", - "fflig;": "\ufb00", - "ffllig;": "\ufb04", - "ffr;": "\U0001d523", - "filig;": "\ufb01", - "fjlig;": "fj", - "flat;": "\u266d", - "fllig;": "\ufb02", - "fltns;": "\u25b1", - "fnof;": "\u0192", - "fopf;": "\U0001d557", - "forall;": "\u2200", - "fork;": "\u22d4", - "forkv;": "\u2ad9", - "fpartint;": "\u2a0d", - "frac12": "\xbd", - "frac12;": "\xbd", - "frac13;": "\u2153", - "frac14": "\xbc", - "frac14;": "\xbc", - "frac15;": "\u2155", - "frac16;": "\u2159", - "frac18;": "\u215b", - "frac23;": "\u2154", - "frac25;": "\u2156", - "frac34": "\xbe", - "frac34;": "\xbe", - "frac35;": "\u2157", - "frac38;": "\u215c", - "frac45;": "\u2158", - "frac56;": "\u215a", - "frac58;": "\u215d", - "frac78;": "\u215e", - "frasl;": "\u2044", - "frown;": "\u2322", - "fscr;": "\U0001d4bb", - "gE;": "\u2267", - "gEl;": "\u2a8c", - "gacute;": "\u01f5", - "gamma;": "\u03b3", - "gammad;": "\u03dd", - "gap;": "\u2a86", - "gbreve;": "\u011f", - "gcirc;": "\u011d", - "gcy;": "\u0433", - "gdot;": "\u0121", - "ge;": "\u2265", - "gel;": "\u22db", - "geq;": "\u2265", - "geqq;": "\u2267", - "geqslant;": "\u2a7e", - "ges;": "\u2a7e", - "gescc;": "\u2aa9", - "gesdot;": "\u2a80", - "gesdoto;": "\u2a82", - "gesdotol;": "\u2a84", - "gesl;": "\u22db\ufe00", - "gesles;": "\u2a94", - "gfr;": "\U0001d524", - "gg;": "\u226b", - "ggg;": "\u22d9", - "gimel;": "\u2137", - "gjcy;": "\u0453", - "gl;": "\u2277", - "glE;": "\u2a92", - "gla;": "\u2aa5", - "glj;": "\u2aa4", - "gnE;": "\u2269", - "gnap;": "\u2a8a", - "gnapprox;": "\u2a8a", - "gne;": "\u2a88", - "gneq;": "\u2a88", - "gneqq;": "\u2269", - "gnsim;": "\u22e7", - "gopf;": "\U0001d558", - "grave;": "`", - "gscr;": "\u210a", - "gsim;": "\u2273", - "gsime;": "\u2a8e", - "gsiml;": "\u2a90", - "gt": ">", - "gt;": ">", - "gtcc;": "\u2aa7", - "gtcir;": "\u2a7a", - "gtdot;": "\u22d7", - "gtlPar;": "\u2995", - "gtquest;": "\u2a7c", - "gtrapprox;": "\u2a86", - "gtrarr;": "\u2978", - "gtrdot;": "\u22d7", - "gtreqless;": "\u22db", - "gtreqqless;": "\u2a8c", - "gtrless;": "\u2277", - "gtrsim;": "\u2273", - "gvertneqq;": "\u2269\ufe00", - "gvnE;": "\u2269\ufe00", - "hArr;": "\u21d4", - "hairsp;": "\u200a", - "half;": "\xbd", - "hamilt;": "\u210b", - "hardcy;": "\u044a", - "harr;": "\u2194", - "harrcir;": "\u2948", - "harrw;": "\u21ad", - "hbar;": "\u210f", - "hcirc;": "\u0125", - "hearts;": "\u2665", - "heartsuit;": "\u2665", - "hellip;": "\u2026", - "hercon;": "\u22b9", - "hfr;": "\U0001d525", - "hksearow;": "\u2925", - "hkswarow;": "\u2926", - "hoarr;": "\u21ff", - "homtht;": "\u223b", - "hookleftarrow;": "\u21a9", - "hookrightarrow;": "\u21aa", - "hopf;": "\U0001d559", - "horbar;": "\u2015", - "hscr;": "\U0001d4bd", - "hslash;": "\u210f", - "hstrok;": "\u0127", - "hybull;": "\u2043", - "hyphen;": "\u2010", - "iacute": "\xed", - "iacute;": "\xed", - "ic;": "\u2063", - "icirc": "\xee", - "icirc;": "\xee", - "icy;": "\u0438", - "iecy;": "\u0435", - "iexcl": "\xa1", - "iexcl;": "\xa1", - "iff;": "\u21d4", - "ifr;": "\U0001d526", - "igrave": "\xec", - "igrave;": "\xec", - "ii;": "\u2148", - "iiiint;": "\u2a0c", - "iiint;": "\u222d", - "iinfin;": "\u29dc", - "iiota;": "\u2129", - "ijlig;": "\u0133", - "imacr;": "\u012b", - "image;": "\u2111", - "imagline;": "\u2110", - "imagpart;": "\u2111", - "imath;": "\u0131", - "imof;": "\u22b7", - "imped;": "\u01b5", - "in;": "\u2208", - "incare;": "\u2105", - "infin;": "\u221e", - "infintie;": "\u29dd", - "inodot;": "\u0131", - "int;": "\u222b", - "intcal;": "\u22ba", - "integers;": "\u2124", - "intercal;": "\u22ba", - "intlarhk;": "\u2a17", - "intprod;": "\u2a3c", - "iocy;": "\u0451", - "iogon;": "\u012f", - "iopf;": "\U0001d55a", - "iota;": "\u03b9", - "iprod;": "\u2a3c", - "iquest": "\xbf", - "iquest;": "\xbf", - "iscr;": "\U0001d4be", - "isin;": "\u2208", - "isinE;": "\u22f9", - "isindot;": "\u22f5", - "isins;": "\u22f4", - "isinsv;": "\u22f3", - "isinv;": "\u2208", - "it;": "\u2062", - "itilde;": "\u0129", - "iukcy;": "\u0456", - "iuml": "\xef", - "iuml;": "\xef", - "jcirc;": "\u0135", - "jcy;": "\u0439", - "jfr;": "\U0001d527", - "jmath;": "\u0237", - "jopf;": "\U0001d55b", - "jscr;": "\U0001d4bf", - "jsercy;": "\u0458", - "jukcy;": "\u0454", - "kappa;": "\u03ba", - "kappav;": "\u03f0", - "kcedil;": "\u0137", - "kcy;": "\u043a", - "kfr;": "\U0001d528", - "kgreen;": "\u0138", - "khcy;": "\u0445", - "kjcy;": "\u045c", - "kopf;": "\U0001d55c", - "kscr;": "\U0001d4c0", - "lAarr;": "\u21da", - "lArr;": "\u21d0", - "lAtail;": "\u291b", - "lBarr;": "\u290e", - "lE;": "\u2266", - "lEg;": "\u2a8b", - "lHar;": "\u2962", - "lacute;": "\u013a", - "laemptyv;": "\u29b4", - "lagran;": "\u2112", - "lambda;": "\u03bb", - "lang;": "\u27e8", - "langd;": "\u2991", - "langle;": "\u27e8", - "lap;": "\u2a85", - "laquo": "\xab", - "laquo;": "\xab", - "larr;": "\u2190", - "larrb;": "\u21e4", - "larrbfs;": "\u291f", - "larrfs;": "\u291d", - "larrhk;": "\u21a9", - "larrlp;": "\u21ab", - "larrpl;": "\u2939", - "larrsim;": "\u2973", - "larrtl;": "\u21a2", - "lat;": "\u2aab", - "latail;": "\u2919", - "late;": "\u2aad", - "lates;": "\u2aad\ufe00", - "lbarr;": "\u290c", - "lbbrk;": "\u2772", - "lbrace;": "{", - "lbrack;": "[", - "lbrke;": "\u298b", - "lbrksld;": "\u298f", - "lbrkslu;": "\u298d", - "lcaron;": "\u013e", - "lcedil;": "\u013c", - "lceil;": "\u2308", - "lcub;": "{", - "lcy;": "\u043b", - "ldca;": "\u2936", - "ldquo;": "\u201c", - "ldquor;": "\u201e", - "ldrdhar;": "\u2967", - "ldrushar;": "\u294b", - "ldsh;": "\u21b2", - "le;": "\u2264", - "leftarrow;": "\u2190", - "leftarrowtail;": "\u21a2", - "leftharpoondown;": "\u21bd", - "leftharpoonup;": "\u21bc", - "leftleftarrows;": "\u21c7", - "leftrightarrow;": "\u2194", - "leftrightarrows;": "\u21c6", - "leftrightharpoons;": "\u21cb", - "leftrightsquigarrow;": "\u21ad", - "leftthreetimes;": "\u22cb", - "leg;": "\u22da", - "leq;": "\u2264", - "leqq;": "\u2266", - "leqslant;": "\u2a7d", - "les;": "\u2a7d", - "lescc;": "\u2aa8", - "lesdot;": "\u2a7f", - "lesdoto;": "\u2a81", - "lesdotor;": "\u2a83", - "lesg;": "\u22da\ufe00", - "lesges;": "\u2a93", - "lessapprox;": "\u2a85", - "lessdot;": "\u22d6", - "lesseqgtr;": "\u22da", - "lesseqqgtr;": "\u2a8b", - "lessgtr;": "\u2276", - "lesssim;": "\u2272", - "lfisht;": "\u297c", - "lfloor;": "\u230a", - "lfr;": "\U0001d529", - "lg;": "\u2276", - "lgE;": "\u2a91", - "lhard;": "\u21bd", - "lharu;": "\u21bc", - "lharul;": "\u296a", - "lhblk;": "\u2584", - "ljcy;": "\u0459", - "ll;": "\u226a", - "llarr;": "\u21c7", - "llcorner;": "\u231e", - "llhard;": "\u296b", - "lltri;": "\u25fa", - "lmidot;": "\u0140", - "lmoust;": "\u23b0", - "lmoustache;": "\u23b0", - "lnE;": "\u2268", - "lnap;": "\u2a89", - "lnapprox;": "\u2a89", - "lne;": "\u2a87", - "lneq;": "\u2a87", - "lneqq;": "\u2268", - "lnsim;": "\u22e6", - "loang;": "\u27ec", - "loarr;": "\u21fd", - "lobrk;": "\u27e6", - "longleftarrow;": "\u27f5", - "longleftrightarrow;": "\u27f7", - "longmapsto;": "\u27fc", - "longrightarrow;": "\u27f6", - "looparrowleft;": "\u21ab", - "looparrowright;": "\u21ac", - "lopar;": "\u2985", - "lopf;": "\U0001d55d", - "loplus;": "\u2a2d", - "lotimes;": "\u2a34", - "lowast;": "\u2217", - "lowbar;": "_", - "loz;": "\u25ca", - "lozenge;": "\u25ca", - "lozf;": "\u29eb", - "lpar;": "(", - "lparlt;": "\u2993", - "lrarr;": "\u21c6", - "lrcorner;": "\u231f", - "lrhar;": "\u21cb", - "lrhard;": "\u296d", - "lrm;": "\u200e", - "lrtri;": "\u22bf", - "lsaquo;": "\u2039", - "lscr;": "\U0001d4c1", - "lsh;": "\u21b0", - "lsim;": "\u2272", - "lsime;": "\u2a8d", - "lsimg;": "\u2a8f", - "lsqb;": "[", - "lsquo;": "\u2018", - "lsquor;": "\u201a", - "lstrok;": "\u0142", - "lt": "<", - "lt;": "<", - "ltcc;": "\u2aa6", - "ltcir;": "\u2a79", - "ltdot;": "\u22d6", - "lthree;": "\u22cb", - "ltimes;": "\u22c9", - "ltlarr;": "\u2976", - "ltquest;": "\u2a7b", - "ltrPar;": "\u2996", - "ltri;": "\u25c3", - "ltrie;": "\u22b4", - "ltrif;": "\u25c2", - "lurdshar;": "\u294a", - "luruhar;": "\u2966", - "lvertneqq;": "\u2268\ufe00", - "lvnE;": "\u2268\ufe00", - "mDDot;": "\u223a", - "macr": "\xaf", - "macr;": "\xaf", - "male;": "\u2642", - "malt;": "\u2720", - "maltese;": "\u2720", - "map;": "\u21a6", - "mapsto;": "\u21a6", - "mapstodown;": "\u21a7", - "mapstoleft;": "\u21a4", - "mapstoup;": "\u21a5", - "marker;": "\u25ae", - "mcomma;": "\u2a29", - "mcy;": "\u043c", - "mdash;": "\u2014", - "measuredangle;": "\u2221", - "mfr;": "\U0001d52a", - "mho;": "\u2127", - "micro": "\xb5", - "micro;": "\xb5", - "mid;": "\u2223", - "midast;": "*", - "midcir;": "\u2af0", - "middot": "\xb7", - "middot;": "\xb7", - "minus;": "\u2212", - "minusb;": "\u229f", - "minusd;": "\u2238", - "minusdu;": "\u2a2a", - "mlcp;": "\u2adb", - "mldr;": "\u2026", - "mnplus;": "\u2213", - "models;": "\u22a7", - "mopf;": "\U0001d55e", - "mp;": "\u2213", - "mscr;": "\U0001d4c2", - "mstpos;": "\u223e", - "mu;": "\u03bc", - "multimap;": "\u22b8", - "mumap;": "\u22b8", - "nGg;": "\u22d9\u0338", - "nGt;": "\u226b\u20d2", - "nGtv;": "\u226b\u0338", - "nLeftarrow;": "\u21cd", - "nLeftrightarrow;": "\u21ce", - "nLl;": "\u22d8\u0338", - "nLt;": "\u226a\u20d2", - "nLtv;": "\u226a\u0338", - "nRightarrow;": "\u21cf", - "nVDash;": "\u22af", - "nVdash;": "\u22ae", - "nabla;": "\u2207", - "nacute;": "\u0144", - "nang;": "\u2220\u20d2", - "nap;": "\u2249", - "napE;": "\u2a70\u0338", - "napid;": "\u224b\u0338", - "napos;": "\u0149", - "napprox;": "\u2249", - "natur;": "\u266e", - "natural;": "\u266e", - "naturals;": "\u2115", - "nbsp": "\xa0", - "nbsp;": "\xa0", - "nbump;": "\u224e\u0338", - "nbumpe;": "\u224f\u0338", - "ncap;": "\u2a43", - "ncaron;": "\u0148", - "ncedil;": "\u0146", - "ncong;": "\u2247", - "ncongdot;": "\u2a6d\u0338", - "ncup;": "\u2a42", - "ncy;": "\u043d", - "ndash;": "\u2013", - "ne;": "\u2260", - "neArr;": "\u21d7", - "nearhk;": "\u2924", - "nearr;": "\u2197", - "nearrow;": "\u2197", - "nedot;": "\u2250\u0338", - "nequiv;": "\u2262", - "nesear;": "\u2928", - "nesim;": "\u2242\u0338", - "nexist;": "\u2204", - "nexists;": "\u2204", - "nfr;": "\U0001d52b", - "ngE;": "\u2267\u0338", - "nge;": "\u2271", - "ngeq;": "\u2271", - "ngeqq;": "\u2267\u0338", - "ngeqslant;": "\u2a7e\u0338", - "nges;": "\u2a7e\u0338", - "ngsim;": "\u2275", - "ngt;": "\u226f", - "ngtr;": "\u226f", - "nhArr;": "\u21ce", - "nharr;": "\u21ae", - "nhpar;": "\u2af2", - "ni;": "\u220b", - "nis;": "\u22fc", - "nisd;": "\u22fa", - "niv;": "\u220b", - "njcy;": "\u045a", - "nlArr;": "\u21cd", - "nlE;": "\u2266\u0338", - "nlarr;": "\u219a", - "nldr;": "\u2025", - "nle;": "\u2270", - "nleftarrow;": "\u219a", - "nleftrightarrow;": "\u21ae", - "nleq;": "\u2270", - "nleqq;": "\u2266\u0338", - "nleqslant;": "\u2a7d\u0338", - "nles;": "\u2a7d\u0338", - "nless;": "\u226e", - "nlsim;": "\u2274", - "nlt;": "\u226e", - "nltri;": "\u22ea", - "nltrie;": "\u22ec", - "nmid;": "\u2224", - "nopf;": "\U0001d55f", - "not": "\xac", - "not;": "\xac", - "notin;": "\u2209", - "notinE;": "\u22f9\u0338", - "notindot;": "\u22f5\u0338", - "notinva;": "\u2209", - "notinvb;": "\u22f7", - "notinvc;": "\u22f6", - "notni;": "\u220c", - "notniva;": "\u220c", - "notnivb;": "\u22fe", - "notnivc;": "\u22fd", - "npar;": "\u2226", - "nparallel;": "\u2226", - "nparsl;": "\u2afd\u20e5", - "npart;": "\u2202\u0338", - "npolint;": "\u2a14", - "npr;": "\u2280", - "nprcue;": "\u22e0", - "npre;": "\u2aaf\u0338", - "nprec;": "\u2280", - "npreceq;": "\u2aaf\u0338", - "nrArr;": "\u21cf", - "nrarr;": "\u219b", - "nrarrc;": "\u2933\u0338", - "nrarrw;": "\u219d\u0338", - "nrightarrow;": "\u219b", - "nrtri;": "\u22eb", - "nrtrie;": "\u22ed", - "nsc;": "\u2281", - "nsccue;": "\u22e1", - "nsce;": "\u2ab0\u0338", - "nscr;": "\U0001d4c3", - "nshortmid;": "\u2224", - "nshortparallel;": "\u2226", - "nsim;": "\u2241", - "nsime;": "\u2244", - "nsimeq;": "\u2244", - "nsmid;": "\u2224", - "nspar;": "\u2226", - "nsqsube;": "\u22e2", - "nsqsupe;": "\u22e3", - "nsub;": "\u2284", - "nsubE;": "\u2ac5\u0338", - "nsube;": "\u2288", - "nsubset;": "\u2282\u20d2", - "nsubseteq;": "\u2288", - "nsubseteqq;": "\u2ac5\u0338", - "nsucc;": "\u2281", - "nsucceq;": "\u2ab0\u0338", - "nsup;": "\u2285", - "nsupE;": "\u2ac6\u0338", - "nsupe;": "\u2289", - "nsupset;": "\u2283\u20d2", - "nsupseteq;": "\u2289", - "nsupseteqq;": "\u2ac6\u0338", - "ntgl;": "\u2279", - "ntilde": "\xf1", - "ntilde;": "\xf1", - "ntlg;": "\u2278", - "ntriangleleft;": "\u22ea", - "ntrianglelefteq;": "\u22ec", - "ntriangleright;": "\u22eb", - "ntrianglerighteq;": "\u22ed", - "nu;": "\u03bd", - "num;": "#", - "numero;": "\u2116", - "numsp;": "\u2007", - "nvDash;": "\u22ad", - "nvHarr;": "\u2904", - "nvap;": "\u224d\u20d2", - "nvdash;": "\u22ac", - "nvge;": "\u2265\u20d2", - "nvgt;": ">\u20d2", - "nvinfin;": "\u29de", - "nvlArr;": "\u2902", - "nvle;": "\u2264\u20d2", - "nvlt;": "<\u20d2", - "nvltrie;": "\u22b4\u20d2", - "nvrArr;": "\u2903", - "nvrtrie;": "\u22b5\u20d2", - "nvsim;": "\u223c\u20d2", - "nwArr;": "\u21d6", - "nwarhk;": "\u2923", - "nwarr;": "\u2196", - "nwarrow;": "\u2196", - "nwnear;": "\u2927", - "oS;": "\u24c8", - "oacute": "\xf3", - "oacute;": "\xf3", - "oast;": "\u229b", - "ocir;": "\u229a", - "ocirc": "\xf4", - "ocirc;": "\xf4", - "ocy;": "\u043e", - "odash;": "\u229d", - "odblac;": "\u0151", - "odiv;": "\u2a38", - "odot;": "\u2299", - "odsold;": "\u29bc", - "oelig;": "\u0153", - "ofcir;": "\u29bf", - "ofr;": "\U0001d52c", - "ogon;": "\u02db", - "ograve": "\xf2", - "ograve;": "\xf2", - "ogt;": "\u29c1", - "ohbar;": "\u29b5", - "ohm;": "\u03a9", - "oint;": "\u222e", - "olarr;": "\u21ba", - "olcir;": "\u29be", - "olcross;": "\u29bb", - "oline;": "\u203e", - "olt;": "\u29c0", - "omacr;": "\u014d", - "omega;": "\u03c9", - "omicron;": "\u03bf", - "omid;": "\u29b6", - "ominus;": "\u2296", - "oopf;": "\U0001d560", - "opar;": "\u29b7", - "operp;": "\u29b9", - "oplus;": "\u2295", - "or;": "\u2228", - "orarr;": "\u21bb", - "ord;": "\u2a5d", - "order;": "\u2134", - "orderof;": "\u2134", - "ordf": "\xaa", - "ordf;": "\xaa", - "ordm": "\xba", - "ordm;": "\xba", - "origof;": "\u22b6", - "oror;": "\u2a56", - "orslope;": "\u2a57", - "orv;": "\u2a5b", - "oscr;": "\u2134", - "oslash": "\xf8", - "oslash;": "\xf8", - "osol;": "\u2298", - "otilde": "\xf5", - "otilde;": "\xf5", - "otimes;": "\u2297", - "otimesas;": "\u2a36", - "ouml": "\xf6", - "ouml;": "\xf6", - "ovbar;": "\u233d", - "par;": "\u2225", - "para": "\xb6", - "para;": "\xb6", - "parallel;": "\u2225", - "parsim;": "\u2af3", - "parsl;": "\u2afd", - "part;": "\u2202", - "pcy;": "\u043f", - "percnt;": "%", - "period;": ".", - "permil;": "\u2030", - "perp;": "\u22a5", - "pertenk;": "\u2031", - "pfr;": "\U0001d52d", - "phi;": "\u03c6", - "phiv;": "\u03d5", - "phmmat;": "\u2133", - "phone;": "\u260e", - "pi;": "\u03c0", - "pitchfork;": "\u22d4", - "piv;": "\u03d6", - "planck;": "\u210f", - "planckh;": "\u210e", - "plankv;": "\u210f", - "plus;": "+", - "plusacir;": "\u2a23", - "plusb;": "\u229e", - "pluscir;": "\u2a22", - "plusdo;": "\u2214", - "plusdu;": "\u2a25", - "pluse;": "\u2a72", - "plusmn": "\xb1", - "plusmn;": "\xb1", - "plussim;": "\u2a26", - "plustwo;": "\u2a27", - "pm;": "\xb1", - "pointint;": "\u2a15", - "popf;": "\U0001d561", - "pound": "\xa3", - "pound;": "\xa3", - "pr;": "\u227a", - "prE;": "\u2ab3", - "prap;": "\u2ab7", - "prcue;": "\u227c", - "pre;": "\u2aaf", - "prec;": "\u227a", - "precapprox;": "\u2ab7", - "preccurlyeq;": "\u227c", - "preceq;": "\u2aaf", - "precnapprox;": "\u2ab9", - "precneqq;": "\u2ab5", - "precnsim;": "\u22e8", - "precsim;": "\u227e", - "prime;": "\u2032", - "primes;": "\u2119", - "prnE;": "\u2ab5", - "prnap;": "\u2ab9", - "prnsim;": "\u22e8", - "prod;": "\u220f", - "profalar;": "\u232e", - "profline;": "\u2312", - "profsurf;": "\u2313", - "prop;": "\u221d", - "propto;": "\u221d", - "prsim;": "\u227e", - "prurel;": "\u22b0", - "pscr;": "\U0001d4c5", - "psi;": "\u03c8", - "puncsp;": "\u2008", - "qfr;": "\U0001d52e", - "qint;": "\u2a0c", - "qopf;": "\U0001d562", - "qprime;": "\u2057", - "qscr;": "\U0001d4c6", - "quaternions;": "\u210d", - "quatint;": "\u2a16", - "quest;": "?", - "questeq;": "\u225f", - "quot": "\"", - "quot;": "\"", - "rAarr;": "\u21db", - "rArr;": "\u21d2", - "rAtail;": "\u291c", - "rBarr;": "\u290f", - "rHar;": "\u2964", - "race;": "\u223d\u0331", - "racute;": "\u0155", - "radic;": "\u221a", - "raemptyv;": "\u29b3", - "rang;": "\u27e9", - "rangd;": "\u2992", - "range;": "\u29a5", - "rangle;": "\u27e9", - "raquo": "\xbb", - "raquo;": "\xbb", - "rarr;": "\u2192", - "rarrap;": "\u2975", - "rarrb;": "\u21e5", - "rarrbfs;": "\u2920", - "rarrc;": "\u2933", - "rarrfs;": "\u291e", - "rarrhk;": "\u21aa", - "rarrlp;": "\u21ac", - "rarrpl;": "\u2945", - "rarrsim;": "\u2974", - "rarrtl;": "\u21a3", - "rarrw;": "\u219d", - "ratail;": "\u291a", - "ratio;": "\u2236", - "rationals;": "\u211a", - "rbarr;": "\u290d", - "rbbrk;": "\u2773", - "rbrace;": "}", - "rbrack;": "]", - "rbrke;": "\u298c", - "rbrksld;": "\u298e", - "rbrkslu;": "\u2990", - "rcaron;": "\u0159", - "rcedil;": "\u0157", - "rceil;": "\u2309", - "rcub;": "}", - "rcy;": "\u0440", - "rdca;": "\u2937", - "rdldhar;": "\u2969", - "rdquo;": "\u201d", - "rdquor;": "\u201d", - "rdsh;": "\u21b3", - "real;": "\u211c", - "realine;": "\u211b", - "realpart;": "\u211c", - "reals;": "\u211d", - "rect;": "\u25ad", - "reg": "\xae", - "reg;": "\xae", - "rfisht;": "\u297d", - "rfloor;": "\u230b", - "rfr;": "\U0001d52f", - "rhard;": "\u21c1", - "rharu;": "\u21c0", - "rharul;": "\u296c", - "rho;": "\u03c1", - "rhov;": "\u03f1", - "rightarrow;": "\u2192", - "rightarrowtail;": "\u21a3", - "rightharpoondown;": "\u21c1", - "rightharpoonup;": "\u21c0", - "rightleftarrows;": "\u21c4", - "rightleftharpoons;": "\u21cc", - "rightrightarrows;": "\u21c9", - "rightsquigarrow;": "\u219d", - "rightthreetimes;": "\u22cc", - "ring;": "\u02da", - "risingdotseq;": "\u2253", - "rlarr;": "\u21c4", - "rlhar;": "\u21cc", - "rlm;": "\u200f", - "rmoust;": "\u23b1", - "rmoustache;": "\u23b1", - "rnmid;": "\u2aee", - "roang;": "\u27ed", - "roarr;": "\u21fe", - "robrk;": "\u27e7", - "ropar;": "\u2986", - "ropf;": "\U0001d563", - "roplus;": "\u2a2e", - "rotimes;": "\u2a35", - "rpar;": ")", - "rpargt;": "\u2994", - "rppolint;": "\u2a12", - "rrarr;": "\u21c9", - "rsaquo;": "\u203a", - "rscr;": "\U0001d4c7", - "rsh;": "\u21b1", - "rsqb;": "]", - "rsquo;": "\u2019", - "rsquor;": "\u2019", - "rthree;": "\u22cc", - "rtimes;": "\u22ca", - "rtri;": "\u25b9", - "rtrie;": "\u22b5", - "rtrif;": "\u25b8", - "rtriltri;": "\u29ce", - "ruluhar;": "\u2968", - "rx;": "\u211e", - "sacute;": "\u015b", - "sbquo;": "\u201a", - "sc;": "\u227b", - "scE;": "\u2ab4", - "scap;": "\u2ab8", - "scaron;": "\u0161", - "sccue;": "\u227d", - "sce;": "\u2ab0", - "scedil;": "\u015f", - "scirc;": "\u015d", - "scnE;": "\u2ab6", - "scnap;": "\u2aba", - "scnsim;": "\u22e9", - "scpolint;": "\u2a13", - "scsim;": "\u227f", - "scy;": "\u0441", - "sdot;": "\u22c5", - "sdotb;": "\u22a1", - "sdote;": "\u2a66", - "seArr;": "\u21d8", - "searhk;": "\u2925", - "searr;": "\u2198", - "searrow;": "\u2198", - "sect": "\xa7", - "sect;": "\xa7", - "semi;": ";", - "seswar;": "\u2929", - "setminus;": "\u2216", - "setmn;": "\u2216", - "sext;": "\u2736", - "sfr;": "\U0001d530", - "sfrown;": "\u2322", - "sharp;": "\u266f", - "shchcy;": "\u0449", - "shcy;": "\u0448", - "shortmid;": "\u2223", - "shortparallel;": "\u2225", - "shy": "\xad", - "shy;": "\xad", - "sigma;": "\u03c3", - "sigmaf;": "\u03c2", - "sigmav;": "\u03c2", - "sim;": "\u223c", - "simdot;": "\u2a6a", - "sime;": "\u2243", - "simeq;": "\u2243", - "simg;": "\u2a9e", - "simgE;": "\u2aa0", - "siml;": "\u2a9d", - "simlE;": "\u2a9f", - "simne;": "\u2246", - "simplus;": "\u2a24", - "simrarr;": "\u2972", - "slarr;": "\u2190", - "smallsetminus;": "\u2216", - "smashp;": "\u2a33", - "smeparsl;": "\u29e4", - "smid;": "\u2223", - "smile;": "\u2323", - "smt;": "\u2aaa", - "smte;": "\u2aac", - "smtes;": "\u2aac\ufe00", - "softcy;": "\u044c", - "sol;": "/", - "solb;": "\u29c4", - "solbar;": "\u233f", - "sopf;": "\U0001d564", - "spades;": "\u2660", - "spadesuit;": "\u2660", - "spar;": "\u2225", - "sqcap;": "\u2293", - "sqcaps;": "\u2293\ufe00", - "sqcup;": "\u2294", - "sqcups;": "\u2294\ufe00", - "sqsub;": "\u228f", - "sqsube;": "\u2291", - "sqsubset;": "\u228f", - "sqsubseteq;": "\u2291", - "sqsup;": "\u2290", - "sqsupe;": "\u2292", - "sqsupset;": "\u2290", - "sqsupseteq;": "\u2292", - "squ;": "\u25a1", - "square;": "\u25a1", - "squarf;": "\u25aa", - "squf;": "\u25aa", - "srarr;": "\u2192", - "sscr;": "\U0001d4c8", - "ssetmn;": "\u2216", - "ssmile;": "\u2323", - "sstarf;": "\u22c6", - "star;": "\u2606", - "starf;": "\u2605", - "straightepsilon;": "\u03f5", - "straightphi;": "\u03d5", - "strns;": "\xaf", - "sub;": "\u2282", - "subE;": "\u2ac5", - "subdot;": "\u2abd", - "sube;": "\u2286", - "subedot;": "\u2ac3", - "submult;": "\u2ac1", - "subnE;": "\u2acb", - "subne;": "\u228a", - "subplus;": "\u2abf", - "subrarr;": "\u2979", - "subset;": "\u2282", - "subseteq;": "\u2286", - "subseteqq;": "\u2ac5", - "subsetneq;": "\u228a", - "subsetneqq;": "\u2acb", - "subsim;": "\u2ac7", - "subsub;": "\u2ad5", - "subsup;": "\u2ad3", - "succ;": "\u227b", - "succapprox;": "\u2ab8", - "succcurlyeq;": "\u227d", - "succeq;": "\u2ab0", - "succnapprox;": "\u2aba", - "succneqq;": "\u2ab6", - "succnsim;": "\u22e9", - "succsim;": "\u227f", - "sum;": "\u2211", - "sung;": "\u266a", - "sup1": "\xb9", - "sup1;": "\xb9", - "sup2": "\xb2", - "sup2;": "\xb2", - "sup3": "\xb3", - "sup3;": "\xb3", - "sup;": "\u2283", - "supE;": "\u2ac6", - "supdot;": "\u2abe", - "supdsub;": "\u2ad8", - "supe;": "\u2287", - "supedot;": "\u2ac4", - "suphsol;": "\u27c9", - "suphsub;": "\u2ad7", - "suplarr;": "\u297b", - "supmult;": "\u2ac2", - "supnE;": "\u2acc", - "supne;": "\u228b", - "supplus;": "\u2ac0", - "supset;": "\u2283", - "supseteq;": "\u2287", - "supseteqq;": "\u2ac6", - "supsetneq;": "\u228b", - "supsetneqq;": "\u2acc", - "supsim;": "\u2ac8", - "supsub;": "\u2ad4", - "supsup;": "\u2ad6", - "swArr;": "\u21d9", - "swarhk;": "\u2926", - "swarr;": "\u2199", - "swarrow;": "\u2199", - "swnwar;": "\u292a", - "szlig": "\xdf", - "szlig;": "\xdf", - "target;": "\u2316", - "tau;": "\u03c4", - "tbrk;": "\u23b4", - "tcaron;": "\u0165", - "tcedil;": "\u0163", - "tcy;": "\u0442", - "tdot;": "\u20db", - "telrec;": "\u2315", - "tfr;": "\U0001d531", - "there4;": "\u2234", - "therefore;": "\u2234", - "theta;": "\u03b8", - "thetasym;": "\u03d1", - "thetav;": "\u03d1", - "thickapprox;": "\u2248", - "thicksim;": "\u223c", - "thinsp;": "\u2009", - "thkap;": "\u2248", - "thksim;": "\u223c", - "thorn": "\xfe", - "thorn;": "\xfe", - "tilde;": "\u02dc", - "times": "\xd7", - "times;": "\xd7", - "timesb;": "\u22a0", - "timesbar;": "\u2a31", - "timesd;": "\u2a30", - "tint;": "\u222d", - "toea;": "\u2928", - "top;": "\u22a4", - "topbot;": "\u2336", - "topcir;": "\u2af1", - "topf;": "\U0001d565", - "topfork;": "\u2ada", - "tosa;": "\u2929", - "tprime;": "\u2034", - "trade;": "\u2122", - "triangle;": "\u25b5", - "triangledown;": "\u25bf", - "triangleleft;": "\u25c3", - "trianglelefteq;": "\u22b4", - "triangleq;": "\u225c", - "triangleright;": "\u25b9", - "trianglerighteq;": "\u22b5", - "tridot;": "\u25ec", - "trie;": "\u225c", - "triminus;": "\u2a3a", - "triplus;": "\u2a39", - "trisb;": "\u29cd", - "tritime;": "\u2a3b", - "trpezium;": "\u23e2", - "tscr;": "\U0001d4c9", - "tscy;": "\u0446", - "tshcy;": "\u045b", - "tstrok;": "\u0167", - "twixt;": "\u226c", - "twoheadleftarrow;": "\u219e", - "twoheadrightarrow;": "\u21a0", - "uArr;": "\u21d1", - "uHar;": "\u2963", - "uacute": "\xfa", - "uacute;": "\xfa", - "uarr;": "\u2191", - "ubrcy;": "\u045e", - "ubreve;": "\u016d", - "ucirc": "\xfb", - "ucirc;": "\xfb", - "ucy;": "\u0443", - "udarr;": "\u21c5", - "udblac;": "\u0171", - "udhar;": "\u296e", - "ufisht;": "\u297e", - "ufr;": "\U0001d532", - "ugrave": "\xf9", - "ugrave;": "\xf9", - "uharl;": "\u21bf", - "uharr;": "\u21be", - "uhblk;": "\u2580", - "ulcorn;": "\u231c", - "ulcorner;": "\u231c", - "ulcrop;": "\u230f", - "ultri;": "\u25f8", - "umacr;": "\u016b", - "uml": "\xa8", - "uml;": "\xa8", - "uogon;": "\u0173", - "uopf;": "\U0001d566", - "uparrow;": "\u2191", - "updownarrow;": "\u2195", - "upharpoonleft;": "\u21bf", - "upharpoonright;": "\u21be", - "uplus;": "\u228e", - "upsi;": "\u03c5", - "upsih;": "\u03d2", - "upsilon;": "\u03c5", - "upuparrows;": "\u21c8", - "urcorn;": "\u231d", - "urcorner;": "\u231d", - "urcrop;": "\u230e", - "uring;": "\u016f", - "urtri;": "\u25f9", - "uscr;": "\U0001d4ca", - "utdot;": "\u22f0", - "utilde;": "\u0169", - "utri;": "\u25b5", - "utrif;": "\u25b4", - "uuarr;": "\u21c8", - "uuml": "\xfc", - "uuml;": "\xfc", - "uwangle;": "\u29a7", - "vArr;": "\u21d5", - "vBar;": "\u2ae8", - "vBarv;": "\u2ae9", - "vDash;": "\u22a8", - "vangrt;": "\u299c", - "varepsilon;": "\u03f5", - "varkappa;": "\u03f0", - "varnothing;": "\u2205", - "varphi;": "\u03d5", - "varpi;": "\u03d6", - "varpropto;": "\u221d", - "varr;": "\u2195", - "varrho;": "\u03f1", - "varsigma;": "\u03c2", - "varsubsetneq;": "\u228a\ufe00", - "varsubsetneqq;": "\u2acb\ufe00", - "varsupsetneq;": "\u228b\ufe00", - "varsupsetneqq;": "\u2acc\ufe00", - "vartheta;": "\u03d1", - "vartriangleleft;": "\u22b2", - "vartriangleright;": "\u22b3", - "vcy;": "\u0432", - "vdash;": "\u22a2", - "vee;": "\u2228", - "veebar;": "\u22bb", - "veeeq;": "\u225a", - "vellip;": "\u22ee", - "verbar;": "|", - "vert;": "|", - "vfr;": "\U0001d533", - "vltri;": "\u22b2", - "vnsub;": "\u2282\u20d2", - "vnsup;": "\u2283\u20d2", - "vopf;": "\U0001d567", - "vprop;": "\u221d", - "vrtri;": "\u22b3", - "vscr;": "\U0001d4cb", - "vsubnE;": "\u2acb\ufe00", - "vsubne;": "\u228a\ufe00", - "vsupnE;": "\u2acc\ufe00", - "vsupne;": "\u228b\ufe00", - "vzigzag;": "\u299a", - "wcirc;": "\u0175", - "wedbar;": "\u2a5f", - "wedge;": "\u2227", - "wedgeq;": "\u2259", - "weierp;": "\u2118", - "wfr;": "\U0001d534", - "wopf;": "\U0001d568", - "wp;": "\u2118", - "wr;": "\u2240", - "wreath;": "\u2240", - "wscr;": "\U0001d4cc", - "xcap;": "\u22c2", - "xcirc;": "\u25ef", - "xcup;": "\u22c3", - "xdtri;": "\u25bd", - "xfr;": "\U0001d535", - "xhArr;": "\u27fa", - "xharr;": "\u27f7", - "xi;": "\u03be", - "xlArr;": "\u27f8", - "xlarr;": "\u27f5", - "xmap;": "\u27fc", - "xnis;": "\u22fb", - "xodot;": "\u2a00", - "xopf;": "\U0001d569", - "xoplus;": "\u2a01", - "xotime;": "\u2a02", - "xrArr;": "\u27f9", - "xrarr;": "\u27f6", - "xscr;": "\U0001d4cd", - "xsqcup;": "\u2a06", - "xuplus;": "\u2a04", - "xutri;": "\u25b3", - "xvee;": "\u22c1", - "xwedge;": "\u22c0", - "yacute": "\xfd", - "yacute;": "\xfd", - "yacy;": "\u044f", - "ycirc;": "\u0177", - "ycy;": "\u044b", - "yen": "\xa5", - "yen;": "\xa5", - "yfr;": "\U0001d536", - "yicy;": "\u0457", - "yopf;": "\U0001d56a", - "yscr;": "\U0001d4ce", - "yucy;": "\u044e", - "yuml": "\xff", - "yuml;": "\xff", - "zacute;": "\u017a", - "zcaron;": "\u017e", - "zcy;": "\u0437", - "zdot;": "\u017c", - "zeetrf;": "\u2128", - "zeta;": "\u03b6", - "zfr;": "\U0001d537", - "zhcy;": "\u0436", - "zigrarr;": "\u21dd", - "zopf;": "\U0001d56b", - "zscr;": "\U0001d4cf", - "zwj;": "\u200d", - "zwnj;": "\u200c", -} - -replacementCharacters = { - 0x0: "\uFFFD", - 0x0d: "\u000D", - 0x80: "\u20AC", - 0x81: "\u0081", - 0x82: "\u201A", - 0x83: "\u0192", - 0x84: "\u201E", - 0x85: "\u2026", - 0x86: "\u2020", - 0x87: "\u2021", - 0x88: "\u02C6", - 0x89: "\u2030", - 0x8A: "\u0160", - 0x8B: "\u2039", - 0x8C: "\u0152", - 0x8D: "\u008D", - 0x8E: "\u017D", - 0x8F: "\u008F", - 0x90: "\u0090", - 0x91: "\u2018", - 0x92: "\u2019", - 0x93: "\u201C", - 0x94: "\u201D", - 0x95: "\u2022", - 0x96: "\u2013", - 0x97: "\u2014", - 0x98: "\u02DC", - 0x99: "\u2122", - 0x9A: "\u0161", - 0x9B: "\u203A", - 0x9C: "\u0153", - 0x9D: "\u009D", - 0x9E: "\u017E", - 0x9F: "\u0178", -} - -tokenTypes = { - "Doctype": 0, - "Characters": 1, - "SpaceCharacters": 2, - "StartTag": 3, - "EndTag": 4, - "EmptyTag": 5, - "Comment": 6, - "ParseError": 7 -} - -tagTokenTypes = frozenset([tokenTypes["StartTag"], tokenTypes["EndTag"], - tokenTypes["EmptyTag"]]) - - -prefixes = {v: k for k, v in namespaces.items()} -prefixes["http://www.w3.org/1998/Math/MathML"] = "math" - - -class DataLossWarning(UserWarning): - """Raised when the current tree is unable to represent the input data""" - pass - - -class _ReparseException(Exception): - pass diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__init__.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index c0efba7ee0699fa519d87b2ad3173713ddd0efb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmYk0u?@m75Jeq{0wHCP6yyp-frJnf&@h1IBp2e4*p}}I$taA#8jL~92y|4~6@2Nx z(|!Hot2AARpxYyB<9$W^D+$j&m}UW$IEpMe+=Y+v51$bl+ana3nyYFN85oJdV9k=y z59lS2MmldxB!YZEGeD;ca1%Gytnv+zW?VW|p4ABnoOU2XtFj&%?z?p?*Scf$1X60F US<2i^&-u2u)uqE-T=WhWUtt_OOaK4? diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-39.pyc deleted file mode 100644 index 59c5ced8e017d06d6550183d1ef9375798e13894..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1333 zcmZuxOOG5i5Vrd<(=$7ptawO7;@|^PG!jf75RoFSP$EK*a##>SAhm+Lo_5Vn@AhkL z&n&Z=JtfMGGvbyU`5XKUUpeI`zy+$jyJV5Dy2>s;>MMU$Zne8RX4roHeR}*$%-A1f z+-wON4^ZqARGMjCvxXPEiHfL+i9|gsv`BHxbW#tRVKKyUss}Gvk$uJVP-icg z&LBM=J&%i#9zA8#@f-BVrm?@R=C-R>4rJBzopCs_h$2 zXSh%1$^!N~UmFbu^rNbDC9PdI8slx)7bx~aR9lSvPLTeVj;^fu4qHSROLG3_x8PQ$ z6$-z;H(hTks>t1HN7%)8s)6R!=+l;U~lf?ysj1t zym#w_+w@>R7Pb>-fXCW37#AGzEOm zLH+eIUv>@T^U5yI)G>g|9axvQuyE3XK|tw#Y9*3Zg0=Z<4edIwt9jmU+_Gywo!!qZ zrtcG^<3t^S&HJj)CGOIl$(OFFKcmfys>T%CT-E(j&B0Zrswt2_xt;YJKayliOi6~Z z*$5TO%mj5w!<&uP9-!C{Pys8rW<{iV5mT*VO(r_QtfzkPIG~9ISW?8&VB5 zG|065Pkj+vBm`}rp>ph)zrwnD%^$HJpIq=Q5A_zUnfb=W&)G%f5}d<|dzHRsZlIH& zBiy<7EV_s%?jq8UYc;1f#pH1gR~r;Phf9r^4_N-2#J zt(?Nw5F zx>ofH-j;&dA56i5i2gaq9++oc(0WACk({9!u_ciL|6C3u8; z4IU#c6|X?WjB~dvKO=cO&U~Jk?{kXN(<6rV^;@=n${G7kheM0;aDmG`N2i$L6{~s9 z>nM+Ekqgc~Fcm3r%aqXZPUI66&sjG4foPVA;jCD=w(7kGQ+KWPL#oWiIMX)6dEc0_ zRT?VewJj=F(w#$#@Nj|4JwvBi&K1ie#Z`36a-oEZagWtRCAd%26#J$_^4?TfuB5vU zMlr2-xE#^l@+|{oGiP`FGUG$y+TNBri-y?gYH6p4xnuSbZa=+TwY8QD<5r)GwbovG z?YwOC(u31>qb>L^4Rp3GwR3W|(alCyW+A(4ziOM8v)9rg!53Xoek`uElbz`#AWF4X zu6$j+BJeUy?c}0xde&VJDS&B=2bj>zfegPn8@bIMawR_4-YEWqq-R^U<~u%THo+W` zBcTJijN25y1%{&|SwdHY08sKjT|@34X$69Vv?myhUAKG}{q8%x(!TKizI7B@4{=k} z`tJdb0q(H?#|JY!-ZS5)FSCT^r78f!5kTFlzM}X9;8R~zW5!Y$drIz{9KGp*BifcU zrvKcLPAN}CD#ABvfrXd7?=2R#B(Ej5me51eF4nsA0eVm}bQtA)GtTsu-X_TTMEn9R Cy~NA_ diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-39.pyc deleted file mode 100644 index 1b02dbf1f185b02fce861339f446742e46ddbd04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1887 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 J=U`UNe*l}xvsnND diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-39.pyc deleted file mode 100644 index 7ef135b2a44df90c9be0d07c7ce6078ab4edef80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2774 zcmZ`*&5I;O7LSO`%F3y!{+M1;xKW1pU3p%(jFvi-?ST@p~^` z{NlYA6|b#z7@mLqufKn*&)B#0vHJM$mHp~R8cZ3a$VX`CX2)*d1g1~Su)P0 ziqfQ1I!?`ZoOHPLN3l_3GO+pxd|X2_FQQXy$R!&J$%h`fbC(VM%8_A92C|LsK!)-R z-fh`|LuYMpBT2E&(R1&sS-w!Fmlq}6h|^vf@0s32=d)fpRlPDlP+8BETE(+5dDJ|_ z3pMi0yp2xc^OzrtCEI6jvcL9@y(OHQbN%#EEcw!#cpos%mW1$*`R(<3_D!0VteTY! z&hZ`WIxzWMk5%8dzESC9c&5;5k>qpp(yzlSw&mQr&-7V1@Z)kY&1Y&bO3d`5cweb< zP%2XnGBqh9qx3@QsJxR!h0e#yn8D?R$`*q(84ZfVa++r^Uw&g?K>iCwJU)o`lo=FB zF^GVYxgJc*S^6r0CyqEXXb2;|E*FRJI8CI|A@Q+^j`5Ip(7N2`0p3Sz73G&J+;7Ni z0Un?^G7Air>_6-t(KxyVvW^AF#OZFcV}I#OaUe8klioHnSApah``e&)>D}|p{!$Rp zw?iOXKuRD)jqvV?mH8UyNDp?bUmh09hP!2~%bW3@^<`Yf*3aUZvcX%KgskuBHF#&w zB_?Y29~n}x8>=Ev)^F)E1Pz;m)0Ag0r|y(`9Yc3!Ro8XED5A)ZqAh%x3+Nc%0&n!& z{85=qA1u8~ zY(f4CB`n5m$Sm~2ZKU*p*k#!XkY^yh<20H6kTMD5vykZ;*(Hl)AsYd`hM9lYcK=Z$ z*2xxWX4in&aH~`{zFZ3ZpgLu@I*n=dO?dUdtyOt*uCd@Ud27d!X?=>%`@*)b=d+p0 za2~q|V|9HR>v#-W4G=1p_l4d7DK>m-R+NW0(VLp+*5^p*k8*ikdMfy=%ica=n0iYkj z#N%kL(lWluLl0-}hsd9huk$c)Bfl$_+S;&bf5a`RBY zoCXPvKz+BO-USI&t|~~pUxNh4@E#74QtB$O0VNzA1!M@8;$6Ji9QEsjXa9wM2>jn_ zd|Kg2<^qnw=x(j|aid4a3Ecv^6jGl<-i3`%Yuz=cTdnn3qXRsJ5rRtp02%rARgK?R z!T)~+zX?1->V)fFrGXLc9s419v!4@QTxztkuc3pm1M((hp3{E44oR#D`A%)&+<}Mi z-a>eP3Y|wB@}H;clr`#n&BLQk_XP7`5G($@S&?jK6Ii(55D!i*d{$e4=8C6ZGTPtmxJ8=S5Eaj5fc_)RP#(Fw zaT$b!5fY&}a#9>Fg$Pi;`u^}f*W&<3BSJz#IB@In{*34Gqf z+*341sgE(e^wW*NjYy-EXw#|?`0g&y&k*Q$^Zz_%|AJ<2p*zk04sK9!-erH6ZUVXo z+K{zt8Rk0ej>B~P4r)cmqYBYE3mNX;EgA>)yu)qrqYDqI61cK<`k@V@h)Puy*-jMA zayd_F+>N5!^Ej<%+EFC)aTK|`P(KD|UG37eft6d0{*!3B+H@NoUGIjjKv%^&;ad2H ulkfD~wA5r?&NY_ORF^arD@|3(GEIsO`7qNqyjnT=C;D$@NaeifdcOdBxSvn} diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-39.pyc deleted file mode 100644 index 9685509ede229b86610e2d43c7b22ebabbdf825e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16897 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
  • >&ou)+I+u$70stP2}m)%bC=iLbt7vH3J` z5J5V!&G|c1n8h`tc^&#A%Wpzb)QU%-L z8qI236(K=j8cohXza6ZGEa~JBN7}C}&04+m*)@ zPrFeW_+r{_ptZiMp5(~F70UFDgS=(>P!)w$b%Eg>?XmxC&H^(0r%RA5KW98 z<)1+L&1`I-t-jf&tZ4LRH0^eUmC_P#g`jSMfa1S`&_g`;lY0t|<4LaO_%X4i?343+ z;TA-7~uooH(@uc~6|Gp4@YArg~nj zB=Ytd6citAqS7guYjQXL0Me^l#SvAkL*WNPvBpMXdW9avSuf7asl0&zSEJzLa{gYz zc{D6;+Qr3($?_keOF%f76=q(j<9I!}8THZb;#LlAPQ|G=ol@XaZKAZLzUE?q83ArJ z;QmQTN;!;GwJ@@(vSd{PvnY&w{PDWY>%=#gMB-L z$k@L#pzNpVt&Yfnc#J%S!!EwTctHVp-<+yRY~J@>Vc0S)^H<57zuU$Vi7up_cn>pHK<9!bmvu?bP|xQ>W%8v z8X3y1S{@cZ+L8*w#a3gDEYNx*60-2m0HK1JgJoZaEWpBRXH}$RNFr9WU^~;NDMyB7 zMSL&CAqN`LbY@T*%_hrZribQawd?+RM(yy%q-Mq76#X! zma22xM6^?9IRefEpeNKR$TnT*ONqz&xxcKPPL(icnh(_kzSy59IfM< z&xljKh}5c)tc4HKD8zL$4;Kq@v5tR?Qs^cVZO$)V5FUyy(Sjf^Rnay;f0E|ZHC^2V zM7ngVx*1LlG$&jfL)%IzTD0+E_l6YzRkSrCB@b`4Sg+$g6~2@Mm+E!8v5~&X)$7b} z*6aWNO@eUEg=@>n5#wYKI4x;T!-&Vz4FuivL-niH)WrYo-!jyb z_HVXIeEawGstmP8wO;<0>brEEmrh+j t%KP(=D~~HLPq>=MB=vZRP~z{6iDJ39p?FhqcX6!vykapwrhii}{|nq}_T&Hn diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-39.pyc b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-39.pyc deleted file mode 100644 index fbf4446e68d520519c85ff089cebccbcce7228d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1379 zcmZ8hOK;mo5Z+yq5-CfTP`F7Aq<{|1L8xmUiarq(30yTd!>Ed&U=a`$cVtoKE4wSj zHsq6oo^vhGgL~|s=%GJjuRZxM`9%-~xNcu{Aoznv z0k~IN(ud$4!&UbwlY#8KVzL9RMeovydU8v4U$JOgiU}L_uJKGZa%?}D>MCCvh_j-u zl(D|dR+-MK(hinomR1ttJTst@TpwO@GUC>qCK|2*ku>a+L6wQP>g-Q$_~#^@x=ZkbRA82ie!g z-SC%u!>+|M#@UO3WSEt$Lq*P8*PPWD(F9{QKPAW3Et3M2M^tNEN`m^6_lo3F4d3vg z?c7#w*P%F5td-|>tal`A8Yh4Zb%=(z$M%8+zI)PGc z<9>fK^#EUQ&ck_CKse3x{AIELFd^2^geA;O+!(3YoR)E|suZ*i_g7G^!aSRX^_iJh z<>&j~gc|+&48u7|jzNcYR);Za$x4NDQ{-Qe@~mkV9p1Lceto9yp#uY)dWeE?mk+p) zk9aG1_pJ~e(d8Yn)4T`byuazV{hK@-jsi*w`` tag into head of document""" - def __init__(self, source, encoding): - """Creates a Filter - - :arg source: the source token stream - - :arg encoding: the encoding to set - - """ - base.Filter.__init__(self, source) - self.encoding = encoding - - def __iter__(self): - state = "pre_head" - meta_found = (self.encoding is None) - pending = [] - - for token in base.Filter.__iter__(self): - type = token["type"] - if type == "StartTag": - if token["name"].lower() == "head": - state = "in_head" - - elif type == "EmptyTag": - if token["name"].lower() == "meta": - # replace charset with actual encoding - has_http_equiv_content_type = False - for (namespace, name), value in token["data"].items(): - if namespace is not None: - continue - elif name.lower() == 'charset': - token["data"][(namespace, name)] = self.encoding - meta_found = True - break - elif name == 'http-equiv' and value.lower() == 'content-type': - has_http_equiv_content_type = True - else: - if has_http_equiv_content_type and (None, "content") in token["data"]: - token["data"][(None, "content")] = 'text/html; charset=%s' % self.encoding - meta_found = True - - elif token["name"].lower() == "head" and not meta_found: - # insert meta into empty head - yield {"type": "StartTag", "name": "head", - "data": token["data"]} - yield {"type": "EmptyTag", "name": "meta", - "data": {(None, "charset"): self.encoding}} - yield {"type": "EndTag", "name": "head"} - meta_found = True - continue - - elif type == "EndTag": - if token["name"].lower() == "head" and pending: - # insert meta into head (if necessary) and flush pending queue - yield pending.pop(0) - if not meta_found: - yield {"type": "EmptyTag", "name": "meta", - "data": {(None, "charset"): self.encoding}} - while pending: - yield pending.pop(0) - meta_found = True - state = "post_head" - - if state == "in_head": - pending.append(token) - else: - yield token diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/lint.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/lint.py deleted file mode 100644 index fcc07ee..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/lint.py +++ /dev/null @@ -1,93 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from pip._vendor.six import text_type - -from . import base -from ..constants import namespaces, voidElements - -from ..constants import spaceCharacters -spaceCharacters = "".join(spaceCharacters) - - -class Filter(base.Filter): - """Lints the token stream for errors - - If it finds any errors, it'll raise an ``AssertionError``. - - """ - def __init__(self, source, require_matching_tags=True): - """Creates a Filter - - :arg source: the source token stream - - :arg require_matching_tags: whether or not to require matching tags - - """ - super(Filter, self).__init__(source) - self.require_matching_tags = require_matching_tags - - def __iter__(self): - open_elements = [] - for token in base.Filter.__iter__(self): - type = token["type"] - if type in ("StartTag", "EmptyTag"): - namespace = token["namespace"] - name = token["name"] - assert namespace is None or isinstance(namespace, text_type) - assert namespace != "" - assert isinstance(name, text_type) - assert name != "" - assert isinstance(token["data"], dict) - if (not namespace or namespace == namespaces["html"]) and name in voidElements: - assert type == "EmptyTag" - else: - assert type == "StartTag" - if type == "StartTag" and self.require_matching_tags: - open_elements.append((namespace, name)) - for (namespace, name), value in token["data"].items(): - assert namespace is None or isinstance(namespace, text_type) - assert namespace != "" - assert isinstance(name, text_type) - assert name != "" - assert isinstance(value, text_type) - - elif type == "EndTag": - namespace = token["namespace"] - name = token["name"] - assert namespace is None or isinstance(namespace, text_type) - assert namespace != "" - assert isinstance(name, text_type) - assert name != "" - if (not namespace or namespace == namespaces["html"]) and name in voidElements: - assert False, "Void element reported as EndTag token: %(tag)s" % {"tag": name} - elif self.require_matching_tags: - start = open_elements.pop() - assert start == (namespace, name) - - elif type == "Comment": - data = token["data"] - assert isinstance(data, text_type) - - elif type in ("Characters", "SpaceCharacters"): - data = token["data"] - assert isinstance(data, text_type) - assert data != "" - if type == "SpaceCharacters": - assert data.strip(spaceCharacters) == "" - - elif type == "Doctype": - name = token["name"] - assert name is None or isinstance(name, text_type) - assert token["publicId"] is None or isinstance(name, text_type) - assert token["systemId"] is None or isinstance(name, text_type) - - elif type == "Entity": - assert isinstance(token["name"], text_type) - - elif type == "SerializerError": - assert isinstance(token["data"], text_type) - - else: - assert False, "Unknown token type: %(type)s" % {"type": type} - - yield token diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/optionaltags.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/optionaltags.py deleted file mode 100644 index 4a86501..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/optionaltags.py +++ /dev/null @@ -1,207 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from . import base - - -class Filter(base.Filter): - """Removes optional tags from the token stream""" - def slider(self): - previous1 = previous2 = None - for token in self.source: - if previous1 is not None: - yield previous2, previous1, token - previous2 = previous1 - previous1 = token - if previous1 is not None: - yield previous2, previous1, None - - def __iter__(self): - for previous, token, next in self.slider(): - type = token["type"] - if type == "StartTag": - if (token["data"] or - not self.is_optional_start(token["name"], previous, next)): - yield token - elif type == "EndTag": - if not self.is_optional_end(token["name"], next): - yield token - else: - yield token - - def is_optional_start(self, tagname, previous, next): - type = next and next["type"] or None - if tagname in 'html': - # An html element's start tag may be omitted if the first thing - # inside the html element is not a space character or a comment. - return type not in ("Comment", "SpaceCharacters") - elif tagname == 'head': - # A head element's start tag may be omitted if the first thing - # inside the head element is an element. - # XXX: we also omit the start tag if the head element is empty - if type in ("StartTag", "EmptyTag"): - return True - elif type == "EndTag": - return next["name"] == "head" - elif tagname == 'body': - # A body element's start tag may be omitted if the first thing - # inside the body element is not a space character or a comment, - # except if the first thing inside the body element is a script - # or style element and the node immediately preceding the body - # element is a head element whose end tag has been omitted. - if type in ("Comment", "SpaceCharacters"): - return False - elif type == "StartTag": - # XXX: we do not look at the preceding event, so we never omit - # the body element's start tag if it's followed by a script or - # a style element. - return next["name"] not in ('script', 'style') - else: - return True - elif tagname == 'colgroup': - # A colgroup element's start tag may be omitted if the first thing - # inside the colgroup element is a col element, and if the element - # is not immediately preceded by another colgroup element whose - # end tag has been omitted. - if type in ("StartTag", "EmptyTag"): - # XXX: we do not look at the preceding event, so instead we never - # omit the colgroup element's end tag when it is immediately - # followed by another colgroup element. See is_optional_end. - return next["name"] == "col" - else: - return False - elif tagname == 'tbody': - # A tbody element's start tag may be omitted if the first thing - # inside the tbody element is a tr element, and if the element is - # not immediately preceded by a tbody, thead, or tfoot element - # whose end tag has been omitted. - if type == "StartTag": - # omit the thead and tfoot elements' end tag when they are - # immediately followed by a tbody element. See is_optional_end. - if previous and previous['type'] == 'EndTag' and \ - previous['name'] in ('tbody', 'thead', 'tfoot'): - return False - return next["name"] == 'tr' - else: - return False - return False - - def is_optional_end(self, tagname, next): - type = next and next["type"] or None - if tagname in ('html', 'head', 'body'): - # An html element's end tag may be omitted if the html element - # is not immediately followed by a space character or a comment. - return type not in ("Comment", "SpaceCharacters") - elif tagname in ('li', 'optgroup', 'tr'): - # A li element's end tag may be omitted if the li element is - # immediately followed by another li element or if there is - # no more content in the parent element. - # An optgroup element's end tag may be omitted if the optgroup - # element is immediately followed by another optgroup element, - # or if there is no more content in the parent element. - # A tr element's end tag may be omitted if the tr element is - # immediately followed by another tr element, or if there is - # no more content in the parent element. - if type == "StartTag": - return next["name"] == tagname - else: - return type == "EndTag" or type is None - elif tagname in ('dt', 'dd'): - # A dt element's end tag may be omitted if the dt element is - # immediately followed by another dt element or a dd element. - # A dd element's end tag may be omitted if the dd element is - # immediately followed by another dd element or a dt element, - # or if there is no more content in the parent element. - if type == "StartTag": - return next["name"] in ('dt', 'dd') - elif tagname == 'dd': - return type == "EndTag" or type is None - else: - return False - elif tagname == 'p': - # A p element's end tag may be omitted if the p element is - # immediately followed by an address, article, aside, - # blockquote, datagrid, dialog, dir, div, dl, fieldset, - # footer, form, h1, h2, h3, h4, h5, h6, header, hr, menu, - # nav, ol, p, pre, section, table, or ul, element, or if - # there is no more content in the parent element. - if type in ("StartTag", "EmptyTag"): - return next["name"] in ('address', 'article', 'aside', - 'blockquote', 'datagrid', 'dialog', - 'dir', 'div', 'dl', 'fieldset', 'footer', - 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', - 'header', 'hr', 'menu', 'nav', 'ol', - 'p', 'pre', 'section', 'table', 'ul') - else: - return type == "EndTag" or type is None - elif tagname == 'option': - # An option element's end tag may be omitted if the option - # element is immediately followed by another option element, - # or if it is immediately followed by an optgroup - # element, or if there is no more content in the parent - # element. - if type == "StartTag": - return next["name"] in ('option', 'optgroup') - else: - return type == "EndTag" or type is None - elif tagname in ('rt', 'rp'): - # An rt element's end tag may be omitted if the rt element is - # immediately followed by an rt or rp element, or if there is - # no more content in the parent element. - # An rp element's end tag may be omitted if the rp element is - # immediately followed by an rt or rp element, or if there is - # no more content in the parent element. - if type == "StartTag": - return next["name"] in ('rt', 'rp') - else: - return type == "EndTag" or type is None - elif tagname == 'colgroup': - # A colgroup element's end tag may be omitted if the colgroup - # element is not immediately followed by a space character or - # a comment. - if type in ("Comment", "SpaceCharacters"): - return False - elif type == "StartTag": - # XXX: we also look for an immediately following colgroup - # element. See is_optional_start. - return next["name"] != 'colgroup' - else: - return True - elif tagname in ('thead', 'tbody'): - # A thead element's end tag may be omitted if the thead element - # is immediately followed by a tbody or tfoot element. - # A tbody element's end tag may be omitted if the tbody element - # is immediately followed by a tbody or tfoot element, or if - # there is no more content in the parent element. - # A tfoot element's end tag may be omitted if the tfoot element - # is immediately followed by a tbody element, or if there is no - # more content in the parent element. - # XXX: we never omit the end tag when the following element is - # a tbody. See is_optional_start. - if type == "StartTag": - return next["name"] in ['tbody', 'tfoot'] - elif tagname == 'tbody': - return type == "EndTag" or type is None - else: - return False - elif tagname == 'tfoot': - # A tfoot element's end tag may be omitted if the tfoot element - # is immediately followed by a tbody element, or if there is no - # more content in the parent element. - # XXX: we never omit the end tag when the following element is - # a tbody. See is_optional_start. - if type == "StartTag": - return next["name"] == 'tbody' - else: - return type == "EndTag" or type is None - elif tagname in ('td', 'th'): - # A td element's end tag may be omitted if the td element is - # immediately followed by a td or th element, or if there is - # no more content in the parent element. - # A th element's end tag may be omitted if the th element is - # immediately followed by a td or th element, or if there is - # no more content in the parent element. - if type == "StartTag": - return next["name"] in ('td', 'th') - else: - return type == "EndTag" or type is None - return False diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/sanitizer.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/sanitizer.py deleted file mode 100644 index aa7431d..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/sanitizer.py +++ /dev/null @@ -1,916 +0,0 @@ -"""Deprecated from html5lib 1.1. - -See `here `_ for -information about its deprecation; `Bleach `_ -is recommended as a replacement. Please let us know in the aforementioned issue -if Bleach is unsuitable for your needs. - -""" -from __future__ import absolute_import, division, unicode_literals - -import re -import warnings -from xml.sax.saxutils import escape, unescape - -from pip._vendor.six.moves import urllib_parse as urlparse - -from . import base -from ..constants import namespaces, prefixes - -__all__ = ["Filter"] - - -_deprecation_msg = ( - "html5lib's sanitizer is deprecated; see " + - "https://github.com/html5lib/html5lib-python/issues/443 and please let " + - "us know if Bleach is unsuitable for your needs" -) - -warnings.warn(_deprecation_msg, DeprecationWarning) - -allowed_elements = frozenset(( - (namespaces['html'], 'a'), - (namespaces['html'], 'abbr'), - (namespaces['html'], 'acronym'), - (namespaces['html'], 'address'), - (namespaces['html'], 'area'), - (namespaces['html'], 'article'), - (namespaces['html'], 'aside'), - (namespaces['html'], 'audio'), - (namespaces['html'], 'b'), - (namespaces['html'], 'big'), - (namespaces['html'], 'blockquote'), - (namespaces['html'], 'br'), - (namespaces['html'], 'button'), - (namespaces['html'], 'canvas'), - (namespaces['html'], 'caption'), - (namespaces['html'], 'center'), - (namespaces['html'], 'cite'), - (namespaces['html'], 'code'), - (namespaces['html'], 'col'), - (namespaces['html'], 'colgroup'), - (namespaces['html'], 'command'), - (namespaces['html'], 'datagrid'), - (namespaces['html'], 'datalist'), - (namespaces['html'], 'dd'), - (namespaces['html'], 'del'), - (namespaces['html'], 'details'), - (namespaces['html'], 'dfn'), - (namespaces['html'], 'dialog'), - (namespaces['html'], 'dir'), - (namespaces['html'], 'div'), - (namespaces['html'], 'dl'), - (namespaces['html'], 'dt'), - (namespaces['html'], 'em'), - (namespaces['html'], 'event-source'), - (namespaces['html'], 'fieldset'), - (namespaces['html'], 'figcaption'), - (namespaces['html'], 'figure'), - (namespaces['html'], 'footer'), - (namespaces['html'], 'font'), - (namespaces['html'], 'form'), - (namespaces['html'], 'header'), - (namespaces['html'], 'h1'), - (namespaces['html'], 'h2'), - (namespaces['html'], 'h3'), - (namespaces['html'], 'h4'), - (namespaces['html'], 'h5'), - (namespaces['html'], 'h6'), - (namespaces['html'], 'hr'), - (namespaces['html'], 'i'), - (namespaces['html'], 'img'), - (namespaces['html'], 'input'), - (namespaces['html'], 'ins'), - (namespaces['html'], 'keygen'), - (namespaces['html'], 'kbd'), - (namespaces['html'], 'label'), - (namespaces['html'], 'legend'), - (namespaces['html'], 'li'), - (namespaces['html'], 'm'), - (namespaces['html'], 'map'), - (namespaces['html'], 'menu'), - (namespaces['html'], 'meter'), - (namespaces['html'], 'multicol'), - (namespaces['html'], 'nav'), - (namespaces['html'], 'nextid'), - (namespaces['html'], 'ol'), - (namespaces['html'], 'output'), - (namespaces['html'], 'optgroup'), - (namespaces['html'], 'option'), - (namespaces['html'], 'p'), - (namespaces['html'], 'pre'), - (namespaces['html'], 'progress'), - (namespaces['html'], 'q'), - (namespaces['html'], 's'), - (namespaces['html'], 'samp'), - (namespaces['html'], 'section'), - (namespaces['html'], 'select'), - (namespaces['html'], 'small'), - (namespaces['html'], 'sound'), - (namespaces['html'], 'source'), - (namespaces['html'], 'spacer'), - (namespaces['html'], 'span'), - (namespaces['html'], 'strike'), - (namespaces['html'], 'strong'), - (namespaces['html'], 'sub'), - (namespaces['html'], 'sup'), - (namespaces['html'], 'table'), - (namespaces['html'], 'tbody'), - (namespaces['html'], 'td'), - (namespaces['html'], 'textarea'), - (namespaces['html'], 'time'), - (namespaces['html'], 'tfoot'), - (namespaces['html'], 'th'), - (namespaces['html'], 'thead'), - (namespaces['html'], 'tr'), - (namespaces['html'], 'tt'), - (namespaces['html'], 'u'), - (namespaces['html'], 'ul'), - (namespaces['html'], 'var'), - (namespaces['html'], 'video'), - (namespaces['mathml'], 'maction'), - (namespaces['mathml'], 'math'), - (namespaces['mathml'], 'merror'), - (namespaces['mathml'], 'mfrac'), - (namespaces['mathml'], 'mi'), - (namespaces['mathml'], 'mmultiscripts'), - (namespaces['mathml'], 'mn'), - (namespaces['mathml'], 'mo'), - (namespaces['mathml'], 'mover'), - (namespaces['mathml'], 'mpadded'), - (namespaces['mathml'], 'mphantom'), - (namespaces['mathml'], 'mprescripts'), - (namespaces['mathml'], 'mroot'), - (namespaces['mathml'], 'mrow'), - (namespaces['mathml'], 'mspace'), - (namespaces['mathml'], 'msqrt'), - (namespaces['mathml'], 'mstyle'), - (namespaces['mathml'], 'msub'), - (namespaces['mathml'], 'msubsup'), - (namespaces['mathml'], 'msup'), - (namespaces['mathml'], 'mtable'), - (namespaces['mathml'], 'mtd'), - (namespaces['mathml'], 'mtext'), - (namespaces['mathml'], 'mtr'), - (namespaces['mathml'], 'munder'), - (namespaces['mathml'], 'munderover'), - (namespaces['mathml'], 'none'), - (namespaces['svg'], 'a'), - (namespaces['svg'], 'animate'), - (namespaces['svg'], 'animateColor'), - (namespaces['svg'], 'animateMotion'), - (namespaces['svg'], 'animateTransform'), - (namespaces['svg'], 'clipPath'), - (namespaces['svg'], 'circle'), - (namespaces['svg'], 'defs'), - (namespaces['svg'], 'desc'), - (namespaces['svg'], 'ellipse'), - (namespaces['svg'], 'font-face'), - (namespaces['svg'], 'font-face-name'), - (namespaces['svg'], 'font-face-src'), - (namespaces['svg'], 'g'), - (namespaces['svg'], 'glyph'), - (namespaces['svg'], 'hkern'), - (namespaces['svg'], 'linearGradient'), - (namespaces['svg'], 'line'), - (namespaces['svg'], 'marker'), - (namespaces['svg'], 'metadata'), - (namespaces['svg'], 'missing-glyph'), - (namespaces['svg'], 'mpath'), - (namespaces['svg'], 'path'), - (namespaces['svg'], 'polygon'), - (namespaces['svg'], 'polyline'), - (namespaces['svg'], 'radialGradient'), - (namespaces['svg'], 'rect'), - (namespaces['svg'], 'set'), - (namespaces['svg'], 'stop'), - (namespaces['svg'], 'svg'), - (namespaces['svg'], 'switch'), - (namespaces['svg'], 'text'), - (namespaces['svg'], 'title'), - (namespaces['svg'], 'tspan'), - (namespaces['svg'], 'use'), -)) - -allowed_attributes = frozenset(( - # HTML attributes - (None, 'abbr'), - (None, 'accept'), - (None, 'accept-charset'), - (None, 'accesskey'), - (None, 'action'), - (None, 'align'), - (None, 'alt'), - (None, 'autocomplete'), - (None, 'autofocus'), - (None, 'axis'), - (None, 'background'), - (None, 'balance'), - (None, 'bgcolor'), - (None, 'bgproperties'), - (None, 'border'), - (None, 'bordercolor'), - (None, 'bordercolordark'), - (None, 'bordercolorlight'), - (None, 'bottompadding'), - (None, 'cellpadding'), - (None, 'cellspacing'), - (None, 'ch'), - (None, 'challenge'), - (None, 'char'), - (None, 'charoff'), - (None, 'choff'), - (None, 'charset'), - (None, 'checked'), - (None, 'cite'), - (None, 'class'), - (None, 'clear'), - (None, 'color'), - (None, 'cols'), - (None, 'colspan'), - (None, 'compact'), - (None, 'contenteditable'), - (None, 'controls'), - (None, 'coords'), - (None, 'data'), - (None, 'datafld'), - (None, 'datapagesize'), - (None, 'datasrc'), - (None, 'datetime'), - (None, 'default'), - (None, 'delay'), - (None, 'dir'), - (None, 'disabled'), - (None, 'draggable'), - (None, 'dynsrc'), - (None, 'enctype'), - (None, 'end'), - (None, 'face'), - (None, 'for'), - (None, 'form'), - (None, 'frame'), - (None, 'galleryimg'), - (None, 'gutter'), - (None, 'headers'), - (None, 'height'), - (None, 'hidefocus'), - (None, 'hidden'), - (None, 'high'), - (None, 'href'), - (None, 'hreflang'), - (None, 'hspace'), - (None, 'icon'), - (None, 'id'), - (None, 'inputmode'), - (None, 'ismap'), - (None, 'keytype'), - (None, 'label'), - (None, 'leftspacing'), - (None, 'lang'), - (None, 'list'), - (None, 'longdesc'), - (None, 'loop'), - (None, 'loopcount'), - (None, 'loopend'), - (None, 'loopstart'), - (None, 'low'), - (None, 'lowsrc'), - (None, 'max'), - (None, 'maxlength'), - (None, 'media'), - (None, 'method'), - (None, 'min'), - (None, 'multiple'), - (None, 'name'), - (None, 'nohref'), - (None, 'noshade'), - (None, 'nowrap'), - (None, 'open'), - (None, 'optimum'), - (None, 'pattern'), - (None, 'ping'), - (None, 'point-size'), - (None, 'poster'), - (None, 'pqg'), - (None, 'preload'), - (None, 'prompt'), - (None, 'radiogroup'), - (None, 'readonly'), - (None, 'rel'), - (None, 'repeat-max'), - (None, 'repeat-min'), - (None, 'replace'), - (None, 'required'), - (None, 'rev'), - (None, 'rightspacing'), - (None, 'rows'), - (None, 'rowspan'), - (None, 'rules'), - (None, 'scope'), - (None, 'selected'), - (None, 'shape'), - (None, 'size'), - (None, 'span'), - (None, 'src'), - (None, 'start'), - (None, 'step'), - (None, 'style'), - (None, 'summary'), - (None, 'suppress'), - (None, 'tabindex'), - (None, 'target'), - (None, 'template'), - (None, 'title'), - (None, 'toppadding'), - (None, 'type'), - (None, 'unselectable'), - (None, 'usemap'), - (None, 'urn'), - (None, 'valign'), - (None, 'value'), - (None, 'variable'), - (None, 'volume'), - (None, 'vspace'), - (None, 'vrml'), - (None, 'width'), - (None, 'wrap'), - (namespaces['xml'], 'lang'), - # MathML attributes - (None, 'actiontype'), - (None, 'align'), - (None, 'columnalign'), - (None, 'columnalign'), - (None, 'columnalign'), - (None, 'columnlines'), - (None, 'columnspacing'), - (None, 'columnspan'), - (None, 'depth'), - (None, 'display'), - (None, 'displaystyle'), - (None, 'equalcolumns'), - (None, 'equalrows'), - (None, 'fence'), - (None, 'fontstyle'), - (None, 'fontweight'), - (None, 'frame'), - (None, 'height'), - (None, 'linethickness'), - (None, 'lspace'), - (None, 'mathbackground'), - (None, 'mathcolor'), - (None, 'mathvariant'), - (None, 'mathvariant'), - (None, 'maxsize'), - (None, 'minsize'), - (None, 'other'), - (None, 'rowalign'), - (None, 'rowalign'), - (None, 'rowalign'), - (None, 'rowlines'), - (None, 'rowspacing'), - (None, 'rowspan'), - (None, 'rspace'), - (None, 'scriptlevel'), - (None, 'selection'), - (None, 'separator'), - (None, 'stretchy'), - (None, 'width'), - (None, 'width'), - (namespaces['xlink'], 'href'), - (namespaces['xlink'], 'show'), - (namespaces['xlink'], 'type'), - # SVG attributes - (None, 'accent-height'), - (None, 'accumulate'), - (None, 'additive'), - (None, 'alphabetic'), - (None, 'arabic-form'), - (None, 'ascent'), - (None, 'attributeName'), - (None, 'attributeType'), - (None, 'baseProfile'), - (None, 'bbox'), - (None, 'begin'), - (None, 'by'), - (None, 'calcMode'), - (None, 'cap-height'), - (None, 'class'), - (None, 'clip-path'), - (None, 'color'), - (None, 'color-rendering'), - (None, 'content'), - (None, 'cx'), - (None, 'cy'), - (None, 'd'), - (None, 'dx'), - (None, 'dy'), - (None, 'descent'), - (None, 'display'), - (None, 'dur'), - (None, 'end'), - (None, 'fill'), - (None, 'fill-opacity'), - (None, 'fill-rule'), - (None, 'font-family'), - (None, 'font-size'), - (None, 'font-stretch'), - (None, 'font-style'), - (None, 'font-variant'), - (None, 'font-weight'), - (None, 'from'), - (None, 'fx'), - (None, 'fy'), - (None, 'g1'), - (None, 'g2'), - (None, 'glyph-name'), - (None, 'gradientUnits'), - (None, 'hanging'), - (None, 'height'), - (None, 'horiz-adv-x'), - (None, 'horiz-origin-x'), - (None, 'id'), - (None, 'ideographic'), - (None, 'k'), - (None, 'keyPoints'), - (None, 'keySplines'), - (None, 'keyTimes'), - (None, 'lang'), - (None, 'marker-end'), - (None, 'marker-mid'), - (None, 'marker-start'), - (None, 'markerHeight'), - (None, 'markerUnits'), - (None, 'markerWidth'), - (None, 'mathematical'), - (None, 'max'), - (None, 'min'), - (None, 'name'), - (None, 'offset'), - (None, 'opacity'), - (None, 'orient'), - (None, 'origin'), - (None, 'overline-position'), - (None, 'overline-thickness'), - (None, 'panose-1'), - (None, 'path'), - (None, 'pathLength'), - (None, 'points'), - (None, 'preserveAspectRatio'), - (None, 'r'), - (None, 'refX'), - (None, 'refY'), - (None, 'repeatCount'), - (None, 'repeatDur'), - (None, 'requiredExtensions'), - (None, 'requiredFeatures'), - (None, 'restart'), - (None, 'rotate'), - (None, 'rx'), - (None, 'ry'), - (None, 'slope'), - (None, 'stemh'), - (None, 'stemv'), - (None, 'stop-color'), - (None, 'stop-opacity'), - (None, 'strikethrough-position'), - (None, 'strikethrough-thickness'), - (None, 'stroke'), - (None, 'stroke-dasharray'), - (None, 'stroke-dashoffset'), - (None, 'stroke-linecap'), - (None, 'stroke-linejoin'), - (None, 'stroke-miterlimit'), - (None, 'stroke-opacity'), - (None, 'stroke-width'), - (None, 'systemLanguage'), - (None, 'target'), - (None, 'text-anchor'), - (None, 'to'), - (None, 'transform'), - (None, 'type'), - (None, 'u1'), - (None, 'u2'), - (None, 'underline-position'), - (None, 'underline-thickness'), - (None, 'unicode'), - (None, 'unicode-range'), - (None, 'units-per-em'), - (None, 'values'), - (None, 'version'), - (None, 'viewBox'), - (None, 'visibility'), - (None, 'width'), - (None, 'widths'), - (None, 'x'), - (None, 'x-height'), - (None, 'x1'), - (None, 'x2'), - (namespaces['xlink'], 'actuate'), - (namespaces['xlink'], 'arcrole'), - (namespaces['xlink'], 'href'), - (namespaces['xlink'], 'role'), - (namespaces['xlink'], 'show'), - (namespaces['xlink'], 'title'), - (namespaces['xlink'], 'type'), - (namespaces['xml'], 'base'), - (namespaces['xml'], 'lang'), - (namespaces['xml'], 'space'), - (None, 'y'), - (None, 'y1'), - (None, 'y2'), - (None, 'zoomAndPan'), -)) - -attr_val_is_uri = frozenset(( - (None, 'href'), - (None, 'src'), - (None, 'cite'), - (None, 'action'), - (None, 'longdesc'), - (None, 'poster'), - (None, 'background'), - (None, 'datasrc'), - (None, 'dynsrc'), - (None, 'lowsrc'), - (None, 'ping'), - (namespaces['xlink'], 'href'), - (namespaces['xml'], 'base'), -)) - -svg_attr_val_allows_ref = frozenset(( - (None, 'clip-path'), - (None, 'color-profile'), - (None, 'cursor'), - (None, 'fill'), - (None, 'filter'), - (None, 'marker'), - (None, 'marker-start'), - (None, 'marker-mid'), - (None, 'marker-end'), - (None, 'mask'), - (None, 'stroke'), -)) - -svg_allow_local_href = frozenset(( - (None, 'altGlyph'), - (None, 'animate'), - (None, 'animateColor'), - (None, 'animateMotion'), - (None, 'animateTransform'), - (None, 'cursor'), - (None, 'feImage'), - (None, 'filter'), - (None, 'linearGradient'), - (None, 'pattern'), - (None, 'radialGradient'), - (None, 'textpath'), - (None, 'tref'), - (None, 'set'), - (None, 'use') -)) - -allowed_css_properties = frozenset(( - 'azimuth', - 'background-color', - 'border-bottom-color', - 'border-collapse', - 'border-color', - 'border-left-color', - 'border-right-color', - 'border-top-color', - 'clear', - 'color', - 'cursor', - 'direction', - 'display', - 'elevation', - 'float', - 'font', - 'font-family', - 'font-size', - 'font-style', - 'font-variant', - 'font-weight', - 'height', - 'letter-spacing', - 'line-height', - 'overflow', - 'pause', - 'pause-after', - 'pause-before', - 'pitch', - 'pitch-range', - 'richness', - 'speak', - 'speak-header', - 'speak-numeral', - 'speak-punctuation', - 'speech-rate', - 'stress', - 'text-align', - 'text-decoration', - 'text-indent', - 'unicode-bidi', - 'vertical-align', - 'voice-family', - 'volume', - 'white-space', - 'width', -)) - -allowed_css_keywords = frozenset(( - 'auto', - 'aqua', - 'black', - 'block', - 'blue', - 'bold', - 'both', - 'bottom', - 'brown', - 'center', - 'collapse', - 'dashed', - 'dotted', - 'fuchsia', - 'gray', - 'green', - '!important', - 'italic', - 'left', - 'lime', - 'maroon', - 'medium', - 'none', - 'navy', - 'normal', - 'nowrap', - 'olive', - 'pointer', - 'purple', - 'red', - 'right', - 'solid', - 'silver', - 'teal', - 'top', - 'transparent', - 'underline', - 'white', - 'yellow', -)) - -allowed_svg_properties = frozenset(( - 'fill', - 'fill-opacity', - 'fill-rule', - 'stroke', - 'stroke-width', - 'stroke-linecap', - 'stroke-linejoin', - 'stroke-opacity', -)) - -allowed_protocols = frozenset(( - 'ed2k', - 'ftp', - 'http', - 'https', - 'irc', - 'mailto', - 'news', - 'gopher', - 'nntp', - 'telnet', - 'webcal', - 'xmpp', - 'callto', - 'feed', - 'urn', - 'aim', - 'rsync', - 'tag', - 'ssh', - 'sftp', - 'rtsp', - 'afs', - 'data', -)) - -allowed_content_types = frozenset(( - 'image/png', - 'image/jpeg', - 'image/gif', - 'image/webp', - 'image/bmp', - 'text/plain', -)) - - -data_content_type = re.compile(r''' - ^ - # Match a content type / - (?P[-a-zA-Z0-9.]+/[-a-zA-Z0-9.]+) - # Match any character set and encoding - (?:(?:;charset=(?:[-a-zA-Z0-9]+)(?:;(?:base64))?) - |(?:;(?:base64))?(?:;charset=(?:[-a-zA-Z0-9]+))?) - # Assume the rest is data - ,.* - $ - ''', - re.VERBOSE) - - -class Filter(base.Filter): - """Sanitizes token stream of XHTML+MathML+SVG and of inline style attributes""" - def __init__(self, - source, - allowed_elements=allowed_elements, - allowed_attributes=allowed_attributes, - allowed_css_properties=allowed_css_properties, - allowed_css_keywords=allowed_css_keywords, - allowed_svg_properties=allowed_svg_properties, - allowed_protocols=allowed_protocols, - allowed_content_types=allowed_content_types, - attr_val_is_uri=attr_val_is_uri, - svg_attr_val_allows_ref=svg_attr_val_allows_ref, - svg_allow_local_href=svg_allow_local_href): - """Creates a Filter - - :arg allowed_elements: set of elements to allow--everything else will - be escaped - - :arg allowed_attributes: set of attributes to allow in - elements--everything else will be stripped - - :arg allowed_css_properties: set of CSS properties to allow--everything - else will be stripped - - :arg allowed_css_keywords: set of CSS keywords to allow--everything - else will be stripped - - :arg allowed_svg_properties: set of SVG properties to allow--everything - else will be removed - - :arg allowed_protocols: set of allowed protocols for URIs - - :arg allowed_content_types: set of allowed content types for ``data`` URIs. - - :arg attr_val_is_uri: set of attributes that have URI values--values - that have a scheme not listed in ``allowed_protocols`` are removed - - :arg svg_attr_val_allows_ref: set of SVG attributes that can have - references - - :arg svg_allow_local_href: set of SVG elements that can have local - hrefs--these are removed - - """ - super(Filter, self).__init__(source) - - warnings.warn(_deprecation_msg, DeprecationWarning) - - self.allowed_elements = allowed_elements - self.allowed_attributes = allowed_attributes - self.allowed_css_properties = allowed_css_properties - self.allowed_css_keywords = allowed_css_keywords - self.allowed_svg_properties = allowed_svg_properties - self.allowed_protocols = allowed_protocols - self.allowed_content_types = allowed_content_types - self.attr_val_is_uri = attr_val_is_uri - self.svg_attr_val_allows_ref = svg_attr_val_allows_ref - self.svg_allow_local_href = svg_allow_local_href - - def __iter__(self): - for token in base.Filter.__iter__(self): - token = self.sanitize_token(token) - if token: - yield token - - # Sanitize the +html+, escaping all elements not in ALLOWED_ELEMENTS, and - # stripping out all attributes not in ALLOWED_ATTRIBUTES. Style attributes - # are parsed, and a restricted set, specified by ALLOWED_CSS_PROPERTIES and - # ALLOWED_CSS_KEYWORDS, are allowed through. attributes in ATTR_VAL_IS_URI - # are scanned, and only URI schemes specified in ALLOWED_PROTOCOLS are - # allowed. - # - # sanitize_html('') - # => <script> do_nasty_stuff() </script> - # sanitize_html('Click here for $100') - # => Click here for $100 - def sanitize_token(self, token): - - # accommodate filters which use token_type differently - token_type = token["type"] - if token_type in ("StartTag", "EndTag", "EmptyTag"): - name = token["name"] - namespace = token["namespace"] - if ((namespace, name) in self.allowed_elements or - (namespace is None and - (namespaces["html"], name) in self.allowed_elements)): - return self.allowed_token(token) - else: - return self.disallowed_token(token) - elif token_type == "Comment": - pass - else: - return token - - def allowed_token(self, token): - if "data" in token: - attrs = token["data"] - attr_names = set(attrs.keys()) - - # Remove forbidden attributes - for to_remove in (attr_names - self.allowed_attributes): - del token["data"][to_remove] - attr_names.remove(to_remove) - - # Remove attributes with disallowed URL values - for attr in (attr_names & self.attr_val_is_uri): - assert attr in attrs - # I don't have a clue where this regexp comes from or why it matches those - # characters, nor why we call unescape. I just know it's always been here. - # Should you be worried by this comment in a sanitizer? Yes. On the other hand, all - # this will do is remove *more* than it otherwise would. - val_unescaped = re.sub("[`\x00-\x20\x7f-\xa0\\s]+", '', - unescape(attrs[attr])).lower() - # remove replacement characters from unescaped characters - val_unescaped = val_unescaped.replace("\ufffd", "") - try: - uri = urlparse.urlparse(val_unescaped) - except ValueError: - uri = None - del attrs[attr] - if uri and uri.scheme: - if uri.scheme not in self.allowed_protocols: - del attrs[attr] - if uri.scheme == 'data': - m = data_content_type.match(uri.path) - if not m: - del attrs[attr] - elif m.group('content_type') not in self.allowed_content_types: - del attrs[attr] - - for attr in self.svg_attr_val_allows_ref: - if attr in attrs: - attrs[attr] = re.sub(r'url\s*\(\s*[^#\s][^)]+?\)', - ' ', - unescape(attrs[attr])) - if (token["name"] in self.svg_allow_local_href and - (namespaces['xlink'], 'href') in attrs and re.search(r'^\s*[^#\s].*', - attrs[(namespaces['xlink'], 'href')])): - del attrs[(namespaces['xlink'], 'href')] - if (None, 'style') in attrs: - attrs[(None, 'style')] = self.sanitize_css(attrs[(None, 'style')]) - token["data"] = attrs - return token - - def disallowed_token(self, token): - token_type = token["type"] - if token_type == "EndTag": - token["data"] = "" % token["name"] - elif token["data"]: - assert token_type in ("StartTag", "EmptyTag") - attrs = [] - for (ns, name), v in token["data"].items(): - attrs.append(' %s="%s"' % (name if ns is None else "%s:%s" % (prefixes[ns], name), escape(v))) - token["data"] = "<%s%s>" % (token["name"], ''.join(attrs)) - else: - token["data"] = "<%s>" % token["name"] - if token.get("selfClosing"): - token["data"] = token["data"][:-1] + "/>" - - token["type"] = "Characters" - - del token["name"] - return token - - def sanitize_css(self, style): - # disallow urls - style = re.compile(r'url\s*\(\s*[^\s)]+?\s*\)\s*').sub(' ', style) - - # gauntlet - if not re.match(r"""^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$""", style): - return '' - if not re.match(r"^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$", style): - return '' - - clean = [] - for prop, value in re.findall(r"([-\w]+)\s*:\s*([^:;]*)", style): - if not value: - continue - if prop.lower() in self.allowed_css_properties: - clean.append(prop + ': ' + value + ';') - elif prop.split('-')[0].lower() in ['background', 'border', 'margin', - 'padding']: - for keyword in value.split(): - if keyword not in self.allowed_css_keywords and \ - not re.match(r"^(#[0-9a-fA-F]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$", keyword): # noqa - break - else: - clean.append(prop + ': ' + value + ';') - elif prop.lower() in self.allowed_svg_properties: - clean.append(prop + ': ' + value + ';') - - return ' '.join(clean) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/whitespace.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/whitespace.py deleted file mode 100644 index 0d12584..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/whitespace.py +++ /dev/null @@ -1,38 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import re - -from . import base -from ..constants import rcdataElements, spaceCharacters -spaceCharacters = "".join(spaceCharacters) - -SPACES_REGEX = re.compile("[%s]+" % spaceCharacters) - - -class Filter(base.Filter): - """Collapses whitespace except in pre, textarea, and script elements""" - spacePreserveElements = frozenset(["pre", "textarea"] + list(rcdataElements)) - - def __iter__(self): - preserve = 0 - for token in base.Filter.__iter__(self): - type = token["type"] - if type == "StartTag" \ - and (preserve or token["name"] in self.spacePreserveElements): - preserve += 1 - - elif type == "EndTag" and preserve: - preserve -= 1 - - elif not preserve and type == "SpaceCharacters" and token["data"]: - # Test on token["data"] above to not introduce spaces where there were not - token["data"] = " " - - elif not preserve and type == "Characters": - token["data"] = collapse_spaces(token["data"]) - - yield token - - -def collapse_spaces(text): - return SPACES_REGEX.sub(' ', text) diff --git a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/html5parser.py b/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/html5parser.py deleted file mode 100644 index d06784f..0000000 --- a/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/html5parser.py +++ /dev/null @@ -1,2795 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals -from pip._vendor.six import with_metaclass, viewkeys - -import types - -from . import _inputstream -from . import _tokenizer - -from . import treebuilders -from .treebuilders.base import Marker - -from . import _utils -from .constants import ( - spaceCharacters, asciiUpper2Lower, - specialElements, headingElements, cdataElements, rcdataElements, - tokenTypes, tagTokenTypes, - namespaces, - htmlIntegrationPointElements, mathmlTextIntegrationPointElements, - adjustForeignAttributes as adjustForeignAttributesMap, - adjustMathMLAttributes, adjustSVGAttributes, - E, - _ReparseException -) - - -def parse(doc, treebuilder="etree", namespaceHTMLElements=True, **kwargs): - """Parse an HTML document as a string or file-like object into a tree - - :arg doc: the document to parse as a string or file-like object - - :arg treebuilder: the treebuilder to use when parsing - - :arg namespaceHTMLElements: whether or not to namespace HTML elements - - :returns: parsed tree - - Example: - - >>> from html5lib.html5parser import parse - >>> parse('

    This is a doc

    ') - - - """ - tb = treebuilders.getTreeBuilder(treebuilder) - p = HTMLParser(tb, namespaceHTMLElements=namespaceHTMLElements) - return p.parse(doc, **kwargs) - - -def parseFragment(doc, container="div", treebuilder="etree", namespaceHTMLElements=True, **kwargs): - """Parse an HTML fragment as a string or file-like object into a tree - - :arg doc: the fragment to parse as a string or file-like object - - :arg container: the container context to parse the fragment in - - :arg treebuilder: the treebuilder to use when parsing - - :arg namespaceHTMLElements: whether or not to namespace HTML elements - - :returns: parsed tree - - Example: - - >>> from html5lib.html5libparser import parseFragment - >>> parseFragment('this is a fragment') - - - """ - tb = treebuilders.getTreeBuilder(treebuilder) - p = HTMLParser(tb, namespaceHTMLElements=namespaceHTMLElements) - return p.parseFragment(doc, container=container, **kwargs) - - -def method_decorator_metaclass(function): - class Decorated(type): - def __new__(meta, classname, bases, classDict): - for attributeName, attribute in classDict.items(): - if isinstance(attribute, types.FunctionType): - attribute = function(attribute) - - classDict[attributeName] = attribute - return type.__new__(meta, classname, bases, classDict) - return Decorated - - -class HTMLParser(object): - """HTML parser - - Generates a tree structure from a stream of (possibly malformed) HTML. - - """ - - def __init__(self, tree=None, strict=False, namespaceHTMLElements=True, debug=False): - """ - :arg tree: a treebuilder class controlling the type of tree that will be - returned. Built in treebuilders can be accessed through - html5lib.treebuilders.getTreeBuilder(treeType) - - :arg strict: raise an exception when a parse error is encountered - - :arg namespaceHTMLElements: whether or not to namespace HTML elements - - :arg debug: whether or not to enable debug mode which logs things - - Example: - - >>> from html5lib.html5parser import HTMLParser - >>> parser = HTMLParser() # generates parser with etree builder - >>> parser = HTMLParser('lxml', strict=True) # generates parser with lxml builder which is strict - - """ - - # Raise an exception on the first error encountered - self.strict = strict - - if tree is None: - tree = treebuilders.getTreeBuilder("etree") - self.tree = tree(namespaceHTMLElements) - self.errors = [] - - self.phases = {name: cls(self, self.tree) for name, cls in - getPhases(debug).items()} - - def _parse(self, stream, innerHTML=False, container="div", scripting=False, **kwargs): - - self.innerHTMLMode = innerHTML - self.container = container - self.scripting = scripting - self.tokenizer = _tokenizer.HTMLTokenizer(stream, parser=self, **kwargs) - self.reset() - - try: - self.mainLoop() - except _ReparseException: - self.reset() - self.mainLoop() - - def reset(self): - self.tree.reset() - self.firstStartTag = False - self.errors = [] - self.log = [] # only used with debug mode - # "quirks" / "limited quirks" / "no quirks" - self.compatMode = "no quirks" - - if self.innerHTMLMode: - self.innerHTML = self.container.lower() - - if self.innerHTML in cdataElements: - self.tokenizer.state = self.tokenizer.rcdataState - elif self.innerHTML in rcdataElements: - self.tokenizer.state = self.tokenizer.rawtextState - elif self.innerHTML == 'plaintext': - self.tokenizer.state = self.tokenizer.plaintextState - else: - # state already is data state - # self.tokenizer.state = self.tokenizer.dataState - pass - self.phase = self.phases["beforeHtml"] - self.phase.insertHtmlElement() - self.resetInsertionMode() - else: - self.innerHTML = False # pylint:disable=redefined-variable-type - self.phase = self.phases["initial"] - - self.lastPhase = None - - self.beforeRCDataPhase = None - - self.framesetOK = True - - @property - def documentEncoding(self): - """Name of the character encoding that was used to decode the input stream, or - :obj:`None` if that is not determined yet - - """ - if not hasattr(self, 'tokenizer'): - return None - return self.tokenizer.stream.charEncoding[0].name - - def isHTMLIntegrationPoint(self, element): - if (element.name == "annotation-xml" and - element.namespace == namespaces["mathml"]): - return ("encoding" in element.attributes and - element.attributes["encoding"].translate( - asciiUpper2Lower) in - ("text/html", "application/xhtml+xml")) - else: - return (element.namespace, element.name) in htmlIntegrationPointElements - - def isMathMLTextIntegrationPoint(self, element): - return (element.namespace, element.name) in mathmlTextIntegrationPointElements - - def mainLoop(self): - CharactersToken = tokenTypes["Characters"] - SpaceCharactersToken = tokenTypes["SpaceCharacters"] - StartTagToken = tokenTypes["StartTag"] - EndTagToken = tokenTypes["EndTag"] - CommentToken = tokenTypes["Comment"] - DoctypeToken = tokenTypes["Doctype"] - ParseErrorToken = tokenTypes["ParseError"] - - for token in self.tokenizer: - prev_token = None - new_token = token - while new_token is not None: - prev_token = new_token - currentNode = self.tree.openElements[-1] if self.tree.openElements else None - currentNodeNamespace = currentNode.namespace if currentNode else None - currentNodeName = currentNode.name if currentNode else None - - type = new_token["type"] - - if type == ParseErrorToken: - self.parseError(new_token["data"], new_token.get("datavars", {})) - new_token = None - else: - if (len(self.tree.openElements) == 0 or - currentNodeNamespace == self.tree.defaultNamespace or - (self.isMathMLTextIntegrationPoint(currentNode) and - ((type == StartTagToken and - token["name"] not in frozenset(["mglyph", "malignmark"])) or - type in (CharactersToken, SpaceCharactersToken))) or - (currentNodeNamespace == namespaces["mathml"] and - currentNodeName == "annotation-xml" and - type == StartTagToken and - token["name"] == "svg") or - (self.isHTMLIntegrationPoint(currentNode) and - type in (StartTagToken, CharactersToken, SpaceCharactersToken))): - phase = self.phase - else: - phase = self.phases["inForeignContent"] - - if type == CharactersToken: - new_token = phase.processCharacters(new_token) - elif type == SpaceCharactersToken: - new_token = phase.processSpaceCharacters(new_token) - elif type == StartTagToken: - new_token = phase.processStartTag(new_token) - elif type == EndTagToken: - new_token = phase.processEndTag(new_token) - elif type == CommentToken: - new_token = phase.processComment(new_token) - elif type == DoctypeToken: - new_token = phase.processDoctype(new_token) - - if (type == StartTagToken and prev_token["selfClosing"] and - not prev_token["selfClosingAcknowledged"]): - self.parseError("non-void-element-with-trailing-solidus", - {"name": prev_token["name"]}) - - # When the loop finishes it's EOF - reprocess = True - phases = [] - while reprocess: - phases.append(self.phase) - reprocess = self.phase.processEOF() - if reprocess: - assert self.phase not in phases - - def parse(self, stream, *args, **kwargs): - """Parse a HTML document into a well-formed tree - - :arg stream: a file-like object or string containing the HTML to be parsed - - The optional encoding parameter must be a string that indicates - the encoding. If specified, that encoding will be used, - regardless of any BOM or later declaration (such as in a meta - element). - - :arg scripting: treat noscript elements as if JavaScript was turned on - - :returns: parsed tree - - Example: - - >>> from html5lib.html5parser import HTMLParser - >>> parser = HTMLParser() - >>> parser.parse('

    This is a doc

    ') - - - """ - self._parse(stream, False, None, *args, **kwargs) - return self.tree.getDocument() - - def parseFragment(self, stream, *args, **kwargs): - """Parse a HTML fragment into a well-formed tree fragment - - :arg container: name of the element we're setting the innerHTML - property if set to None, default to 'div' - - :arg stream: a file-like object or string containing the HTML to be parsed - - The optional encoding parameter must be a string that indicates - the encoding. If specified, that encoding will be used, - regardless of any BOM or later declaration (such as in a meta - element) - - :arg scripting: treat noscript elements as if JavaScript was turned on - - :returns: parsed tree - - Example: - - >>> from html5lib.html5libparser import HTMLParser - >>> parser = HTMLParser() - >>> parser.parseFragment('this is a fragment') - - - """ - self._parse(stream, True, *args, **kwargs) - return self.tree.getFragment() - - def parseError(self, errorcode="XXX-undefined-error", datavars=None): - # XXX The idea is to make errorcode mandatory. - if datavars is None: - datavars = {} - self.errors.append((self.tokenizer.stream.position(), errorcode, datavars)) - if self.strict: - raise ParseError(E[errorcode] % datavars) - - def adjustMathMLAttributes(self, token): - adjust_attributes(token, adjustMathMLAttributes) - - def adjustSVGAttributes(self, token): - adjust_attributes(token, adjustSVGAttributes) - - def adjustForeignAttributes(self, token): - adjust_attributes(token, adjustForeignAttributesMap) - - def reparseTokenNormal(self, token): - # pylint:disable=unused-argument - self.parser.phase() - - def resetInsertionMode(self): - # The name of this method is mostly historical. (It's also used in the - # specification.) - last = False - newModes = { - "select": "inSelect", - "td": "inCell", - "th": "inCell", - "tr": "inRow", - "tbody": "inTableBody", - "thead": "inTableBody", - "tfoot": "inTableBody", - "caption": "inCaption", - "colgroup": "inColumnGroup", - "table": "inTable", - "head": "inBody", - "body": "inBody", - "frameset": "inFrameset", - "html": "beforeHead" - } - for node in self.tree.openElements[::-1]: - nodeName = node.name - new_phase = None - if node == self.tree.openElements[0]: - assert self.innerHTML - last = True - nodeName = self.innerHTML - # Check for conditions that should only happen in the innerHTML - # case - if nodeName in ("select", "colgroup", "head", "html"): - assert self.innerHTML - - if not last and node.namespace != self.tree.defaultNamespace: - continue - - if nodeName in newModes: - new_phase = self.phases[newModes[nodeName]] - break - elif last: - new_phase = self.phases["inBody"] - break - - self.phase = new_phase - - def parseRCDataRawtext(self, token, contentType): - # Generic RCDATA/RAWTEXT Parsing algorithm - assert contentType in ("RAWTEXT", "RCDATA") - - self.tree.insertElement(token) - - if contentType == "RAWTEXT": - self.tokenizer.state = self.tokenizer.rawtextState - else: - self.tokenizer.state = self.tokenizer.rcdataState - - self.originalPhase = self.phase - - self.phase = self.phases["text"] - - -@_utils.memoize -def getPhases(debug): - def log(function): - """Logger that records which phase processes each token""" - type_names = {value: key for key, value in tokenTypes.items()} - - def wrapped(self, *args, **kwargs): - if function.__name__.startswith("process") and len(args) > 0: - token = args[0] - info = {"type": type_names[token['type']]} - if token['type'] in tagTokenTypes: - info["name"] = token['name'] - - self.parser.log.append((self.parser.tokenizer.state.__name__, - self.parser.phase.__class__.__name__, - self.__class__.__name__, - function.__name__, - info)) - return function(self, *args, **kwargs) - else: - return function(self, *args, **kwargs) - return wrapped - - def getMetaclass(use_metaclass, metaclass_func): - if use_metaclass: - return method_decorator_metaclass(metaclass_func) - else: - return type - - # pylint:disable=unused-argument - class Phase(with_metaclass(getMetaclass(debug, log))): - """Base class for helper object that implements each phase of processing - """ - __slots__ = ("parser", "tree", "__startTagCache", "__endTagCache") - - def __init__(self, parser, tree): - self.parser = parser - self.tree = tree - self.__startTagCache = {} - self.__endTagCache = {} - - def processEOF(self): - raise NotImplementedError - - def processComment(self, token): - # For most phases the following is correct. Where it's not it will be - # overridden. - self.tree.insertComment(token, self.tree.openElements[-1]) - - def processDoctype(self, token): - self.parser.parseError("unexpected-doctype") - - def processCharacters(self, token): - self.tree.insertText(token["data"]) - - def processSpaceCharacters(self, token): - self.tree.insertText(token["data"]) - - def processStartTag(self, token): - # Note the caching is done here rather than BoundMethodDispatcher as doing it there - # requires a circular reference to the Phase, and this ends up with a significant - # (CPython 2.7, 3.8) GC cost when parsing many short inputs - name = token["name"] - # In Py2, using `in` is quicker in general than try/except KeyError - # In Py3, `in` is quicker when there are few cache hits (typically short inputs) - if name in self.__startTagCache: - func = self.__startTagCache[name] - else: - func = self.__startTagCache[name] = self.startTagHandler[name] - # bound the cache size in case we get loads of unknown tags - while len(self.__startTagCache) > len(self.startTagHandler) * 1.1: - # this makes the eviction policy random on Py < 3.7 and FIFO >= 3.7 - self.__startTagCache.pop(next(iter(self.__startTagCache))) - return func(token) - - def startTagHtml(self, token): - if not self.parser.firstStartTag and token["name"] == "html": - self.parser.parseError("non-html-root") - # XXX Need a check here to see if the first start tag token emitted is - # this token... If it's not, invoke self.parser.parseError(). - for attr, value in token["data"].items(): - if attr not in self.tree.openElements[0].attributes: - self.tree.openElements[0].attributes[attr] = value - self.parser.firstStartTag = False - - def processEndTag(self, token): - # Note the caching is done here rather than BoundMethodDispatcher as doing it there - # requires a circular reference to the Phase, and this ends up with a significant - # (CPython 2.7, 3.8) GC cost when parsing many short inputs - name = token["name"] - # In Py2, using `in` is quicker in general than try/except KeyError - # In Py3, `in` is quicker when there are few cache hits (typically short inputs) - if name in self.__endTagCache: - func = self.__endTagCache[name] - else: - func = self.__endTagCache[name] = self.endTagHandler[name] - # bound the cache size in case we get loads of unknown tags - while len(self.__endTagCache) > len(self.endTagHandler) * 1.1: - # this makes the eviction policy random on Py < 3.7 and FIFO >= 3.7 - self.__endTagCache.pop(next(iter(self.__endTagCache))) - return func(token) - - class InitialPhase(Phase): - __slots__ = tuple() - - def processSpaceCharacters(self, token): - pass - - def processComment(self, token): - self.tree.insertComment(token, self.tree.document) - - def processDoctype(self, token): - name = token["name"] - publicId = token["publicId"] - systemId = token["systemId"] - correct = token["correct"] - - if (name != "html" or publicId is not None or - systemId is not None and systemId != "about:legacy-compat"): - self.parser.parseError("unknown-doctype") - - if publicId is None: - publicId = "" - - self.tree.insertDoctype(token) - - if publicId != "": - publicId = publicId.translate(asciiUpper2Lower) - - if (not correct or token["name"] != "html" or - publicId.startswith( - ("+//silmaril//dtd html pro v0r11 19970101//", - "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", - "-//as//dtd html 3.0 aswedit + extensions//", - "-//ietf//dtd html 2.0 level 1//", - "-//ietf//dtd html 2.0 level 2//", - "-//ietf//dtd html 2.0 strict level 1//", - "-//ietf//dtd html 2.0 strict level 2//", - "-//ietf//dtd html 2.0 strict//", - "-//ietf//dtd html 2.0//", - "-//ietf//dtd html 2.1e//", - "-//ietf//dtd html 3.0//", - "-//ietf//dtd html 3.2 final//", - "-//ietf//dtd html 3.2//", - "-//ietf//dtd html 3//", - "-//ietf//dtd html level 0//", - "-//ietf//dtd html level 1//", - "-//ietf//dtd html level 2//", - "-//ietf//dtd html level 3//", - "-//ietf//dtd html strict level 0//", - "-//ietf//dtd html strict level 1//", - "-//ietf//dtd html strict level 2//", - "-//ietf//dtd html strict level 3//", - "-//ietf//dtd html strict//", - "-//ietf//dtd html//", - "-//metrius//dtd metrius presentational//", - "-//microsoft//dtd internet explorer 2.0 html strict//", - "-//microsoft//dtd internet explorer 2.0 html//", - "-//microsoft//dtd internet explorer 2.0 tables//", - "-//microsoft//dtd internet explorer 3.0 html strict//", - "-//microsoft//dtd internet explorer 3.0 html//", - "-//microsoft//dtd internet explorer 3.0 tables//", - "-//netscape comm. corp.//dtd html//", - "-//netscape comm. corp.//dtd strict html//", - "-//o'reilly and associates//dtd html 2.0//", - "-//o'reilly and associates//dtd html extended 1.0//", - "-//o'reilly and associates//dtd html extended relaxed 1.0//", - "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", - "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", - "-//spyglass//dtd html 2.0 extended//", - "-//sq//dtd html 2.0 hotmetal + extensions//", - "-//sun microsystems corp.//dtd hotjava html//", - "-//sun microsystems corp.//dtd hotjava strict html//", - "-//w3c//dtd html 3 1995-03-24//", - "-//w3c//dtd html 3.2 draft//", - "-//w3c//dtd html 3.2 final//", - "-//w3c//dtd html 3.2//", - "-//w3c//dtd html 3.2s draft//", - "-//w3c//dtd html 4.0 frameset//", - "-//w3c//dtd html 4.0 transitional//", - "-//w3c//dtd html experimental 19960712//", - "-//w3c//dtd html experimental 970421//", - "-//w3c//dtd w3 html//", - "-//w3o//dtd w3 html 3.0//", - "-//webtechs//dtd mozilla html 2.0//", - "-//webtechs//dtd mozilla html//")) or - publicId in ("-//w3o//dtd w3 html strict 3.0//en//", - "-/w3c/dtd html 4.0 transitional/en", - "html") or - publicId.startswith( - ("-//w3c//dtd html 4.01 frameset//", - "-//w3c//dtd html 4.01 transitional//")) and - systemId is None or - systemId and systemId.lower() == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"): - self.parser.compatMode = "quirks" - elif (publicId.startswith( - ("-//w3c//dtd xhtml 1.0 frameset//", - "-//w3c//dtd xhtml 1.0 transitional//")) or - publicId.startswith( - ("-//w3c//dtd html 4.01 frameset//", - "-//w3c//dtd html 4.01 transitional//")) and - systemId is not None): - self.parser.compatMode = "limited quirks" - - self.parser.phase = self.parser.phases["beforeHtml"] - - def anythingElse(self): - self.parser.compatMode = "quirks" - self.parser.phase = self.parser.phases["beforeHtml"] - - def processCharacters(self, token): - self.parser.parseError("expected-doctype-but-got-chars") - self.anythingElse() - return token - - def processStartTag(self, token): - self.parser.parseError("expected-doctype-but-got-start-tag", - {"name": token["name"]}) - self.anythingElse() - return token - - def processEndTag(self, token): - self.parser.parseError("expected-doctype-but-got-end-tag", - {"name": token["name"]}) - self.anythingElse() - return token - - def processEOF(self): - self.parser.parseError("expected-doctype-but-got-eof") - self.anythingElse() - return True - - class BeforeHtmlPhase(Phase): - __slots__ = tuple() - - # helper methods - def insertHtmlElement(self): - self.tree.insertRoot(impliedTagToken("html", "StartTag")) - self.parser.phase = self.parser.phases["beforeHead"] - - # other - def processEOF(self): - self.insertHtmlElement() - return True - - def processComment(self, token): - self.tree.insertComment(token, self.tree.document) - - def processSpaceCharacters(self, token): - pass - - def processCharacters(self, token): - self.insertHtmlElement() - return token - - def processStartTag(self, token): - if token["name"] == "html": - self.parser.firstStartTag = True - self.insertHtmlElement() - return token - - def processEndTag(self, token): - if token["name"] not in ("head", "body", "html", "br"): - self.parser.parseError("unexpected-end-tag-before-html", - {"name": token["name"]}) - else: - self.insertHtmlElement() - return token - - class BeforeHeadPhase(Phase): - __slots__ = tuple() - - def processEOF(self): - self.startTagHead(impliedTagToken("head", "StartTag")) - return True - - def processSpaceCharacters(self, token): - pass - - def processCharacters(self, token): - self.startTagHead(impliedTagToken("head", "StartTag")) - return token - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagHead(self, token): - self.tree.insertElement(token) - self.tree.headPointer = self.tree.openElements[-1] - self.parser.phase = self.parser.phases["inHead"] - - def startTagOther(self, token): - self.startTagHead(impliedTagToken("head", "StartTag")) - return token - - def endTagImplyHead(self, token): - self.startTagHead(impliedTagToken("head", "StartTag")) - return token - - def endTagOther(self, token): - self.parser.parseError("end-tag-after-implied-root", - {"name": token["name"]}) - - startTagHandler = _utils.MethodDispatcher([ - ("html", startTagHtml), - ("head", startTagHead) - ]) - startTagHandler.default = startTagOther - - endTagHandler = _utils.MethodDispatcher([ - (("head", "body", "html", "br"), endTagImplyHead) - ]) - endTagHandler.default = endTagOther - - class InHeadPhase(Phase): - __slots__ = tuple() - - # the real thing - def processEOF(self): - self.anythingElse() - return True - - def processCharacters(self, token): - self.anythingElse() - return token - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagHead(self, token): - self.parser.parseError("two-heads-are-not-better-than-one") - - def startTagBaseLinkCommand(self, token): - self.tree.insertElement(token) - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - - def startTagMeta(self, token): - self.tree.insertElement(token) - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - - attributes = token["data"] - if self.parser.tokenizer.stream.charEncoding[1] == "tentative": - if "charset" in attributes: - self.parser.tokenizer.stream.changeEncoding(attributes["charset"]) - elif ("content" in attributes and - "http-equiv" in attributes and - attributes["http-equiv"].lower() == "content-type"): - # Encoding it as UTF-8 here is a hack, as really we should pass - # the abstract Unicode string, and just use the - # ContentAttrParser on that, but using UTF-8 allows all chars - # to be encoded and as a ASCII-superset works. - data = _inputstream.EncodingBytes(attributes["content"].encode("utf-8")) - parser = _inputstream.ContentAttrParser(data) - codec = parser.parse() - self.parser.tokenizer.stream.changeEncoding(codec) - - def startTagTitle(self, token): - self.parser.parseRCDataRawtext(token, "RCDATA") - - def startTagNoFramesStyle(self, token): - # Need to decide whether to implement the scripting-disabled case - self.parser.parseRCDataRawtext(token, "RAWTEXT") - - def startTagNoscript(self, token): - if self.parser.scripting: - self.parser.parseRCDataRawtext(token, "RAWTEXT") - else: - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inHeadNoscript"] - - def startTagScript(self, token): - self.tree.insertElement(token) - self.parser.tokenizer.state = self.parser.tokenizer.scriptDataState - self.parser.originalPhase = self.parser.phase - self.parser.phase = self.parser.phases["text"] - - def startTagOther(self, token): - self.anythingElse() - return token - - def endTagHead(self, token): - node = self.parser.tree.openElements.pop() - assert node.name == "head", "Expected head got %s" % node.name - self.parser.phase = self.parser.phases["afterHead"] - - def endTagHtmlBodyBr(self, token): - self.anythingElse() - return token - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - def anythingElse(self): - self.endTagHead(impliedTagToken("head")) - - startTagHandler = _utils.MethodDispatcher([ - ("html", startTagHtml), - ("title", startTagTitle), - (("noframes", "style"), startTagNoFramesStyle), - ("noscript", startTagNoscript), - ("script", startTagScript), - (("base", "basefont", "bgsound", "command", "link"), - startTagBaseLinkCommand), - ("meta", startTagMeta), - ("head", startTagHead) - ]) - startTagHandler.default = startTagOther - - endTagHandler = _utils.MethodDispatcher([ - ("head", endTagHead), - (("br", "html", "body"), endTagHtmlBodyBr) - ]) - endTagHandler.default = endTagOther - - class InHeadNoscriptPhase(Phase): - __slots__ = tuple() - - def processEOF(self): - self.parser.parseError("eof-in-head-noscript") - self.anythingElse() - return True - - def processComment(self, token): - return self.parser.phases["inHead"].processComment(token) - - def processCharacters(self, token): - self.parser.parseError("char-in-head-noscript") - self.anythingElse() - return token - - def processSpaceCharacters(self, token): - return self.parser.phases["inHead"].processSpaceCharacters(token) - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagBaseLinkCommand(self, token): - return self.parser.phases["inHead"].processStartTag(token) - - def startTagHeadNoscript(self, token): - self.parser.parseError("unexpected-start-tag", {"name": token["name"]}) - - def startTagOther(self, token): - self.parser.parseError("unexpected-inhead-noscript-tag", {"name": token["name"]}) - self.anythingElse() - return token - - def endTagNoscript(self, token): - node = self.parser.tree.openElements.pop() - assert node.name == "noscript", "Expected noscript got %s" % node.name - self.parser.phase = self.parser.phases["inHead"] - - def endTagBr(self, token): - self.parser.parseError("unexpected-inhead-noscript-tag", {"name": token["name"]}) - self.anythingElse() - return token - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - def anythingElse(self): - # Caller must raise parse error first! - self.endTagNoscript(impliedTagToken("noscript")) - - startTagHandler = _utils.MethodDispatcher([ - ("html", startTagHtml), - (("basefont", "bgsound", "link", "meta", "noframes", "style"), startTagBaseLinkCommand), - (("head", "noscript"), startTagHeadNoscript), - ]) - startTagHandler.default = startTagOther - - endTagHandler = _utils.MethodDispatcher([ - ("noscript", endTagNoscript), - ("br", endTagBr), - ]) - endTagHandler.default = endTagOther - - class AfterHeadPhase(Phase): - __slots__ = tuple() - - def processEOF(self): - self.anythingElse() - return True - - def processCharacters(self, token): - self.anythingElse() - return token - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagBody(self, token): - self.parser.framesetOK = False - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inBody"] - - def startTagFrameset(self, token): - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inFrameset"] - - def startTagFromHead(self, token): - self.parser.parseError("unexpected-start-tag-out-of-my-head", - {"name": token["name"]}) - self.tree.openElements.append(self.tree.headPointer) - self.parser.phases["inHead"].processStartTag(token) - for node in self.tree.openElements[::-1]: - if node.name == "head": - self.tree.openElements.remove(node) - break - - def startTagHead(self, token): - self.parser.parseError("unexpected-start-tag", {"name": token["name"]}) - - def startTagOther(self, token): - self.anythingElse() - return token - - def endTagHtmlBodyBr(self, token): - self.anythingElse() - return token - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - def anythingElse(self): - self.tree.insertElement(impliedTagToken("body", "StartTag")) - self.parser.phase = self.parser.phases["inBody"] - self.parser.framesetOK = True - - startTagHandler = _utils.MethodDispatcher([ - ("html", startTagHtml), - ("body", startTagBody), - ("frameset", startTagFrameset), - (("base", "basefont", "bgsound", "link", "meta", "noframes", "script", - "style", "title"), - startTagFromHead), - ("head", startTagHead) - ]) - startTagHandler.default = startTagOther - endTagHandler = _utils.MethodDispatcher([(("body", "html", "br"), - endTagHtmlBodyBr)]) - endTagHandler.default = endTagOther - - class InBodyPhase(Phase): - # http://www.whatwg.org/specs/web-apps/current-work/#parsing-main-inbody - # the really-really-really-very crazy mode - __slots__ = ("processSpaceCharacters",) - - def __init__(self, *args, **kwargs): - super(InBodyPhase, self).__init__(*args, **kwargs) - # Set this to the default handler - self.processSpaceCharacters = self.processSpaceCharactersNonPre - - def isMatchingFormattingElement(self, node1, node2): - return (node1.name == node2.name and - node1.namespace == node2.namespace and - node1.attributes == node2.attributes) - - # helper - def addFormattingElement(self, token): - self.tree.insertElement(token) - element = self.tree.openElements[-1] - - matchingElements = [] - for node in self.tree.activeFormattingElements[::-1]: - if node is Marker: - break - elif self.isMatchingFormattingElement(node, element): - matchingElements.append(node) - - assert len(matchingElements) <= 3 - if len(matchingElements) == 3: - self.tree.activeFormattingElements.remove(matchingElements[-1]) - self.tree.activeFormattingElements.append(element) - - # the real deal - def processEOF(self): - allowed_elements = frozenset(("dd", "dt", "li", "p", "tbody", "td", - "tfoot", "th", "thead", "tr", "body", - "html")) - for node in self.tree.openElements[::-1]: - if node.name not in allowed_elements: - self.parser.parseError("expected-closing-tag-but-got-eof") - break - # Stop parsing - - def processSpaceCharactersDropNewline(self, token): - # Sometimes (start of
    , , and 
  • 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�+0H@r6%Cb-fm>)_&5g^DmUjaYl(NuLO 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∈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

    &kpvgZS`F8s`mgo3HzPaF?%Z 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 z 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

  • ~VJeq$8DjMwR5|kkR#jy}6@e_ptG5QCGVj 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

    knL# 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

    - The Real First Universal Charset Detector
    -
    - - - - Download Count Total - - - - -