#
tokens: 49019/50000 15/808 files (page 9/168)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 9 of 168. Use http://codebase.md/romanshablio/mcp_server?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .DS_Store
├── .venv
│   ├── __pycache__
│   │   └── hello.cpython-312.pyc
│   ├── bin
│   │   ├── activate
│   │   ├── activate.csh
│   │   ├── activate.fish
│   │   ├── Activate.ps1
│   │   ├── flask
│   │   ├── normalizer
│   │   ├── pip
│   │   ├── pip3
│   │   ├── pip3.12
│   │   ├── python
│   │   ├── python3
│   │   └── python3.12
│   ├── hello.py
│   ├── lib
│   │   └── python3.12
│   │       └── site-packages
│   │           ├── beautifulsoup4-4.12.3.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── licenses
│   │           │   │   ├── AUTHORS
│   │           │   │   └── LICENSE
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   └── WHEEL
│   │           ├── blinker
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _utilities.cpython-312.pyc
│   │           │   │   └── base.cpython-312.pyc
│   │           │   ├── _utilities.py
│   │           │   ├── base.py
│   │           │   └── py.typed
│   │           ├── blinker-1.8.2.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── bs4
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── css.cpython-312.pyc
│   │           │   │   ├── dammit.cpython-312.pyc
│   │           │   │   ├── diagnose.cpython-312.pyc
│   │           │   │   ├── element.cpython-312.pyc
│   │           │   │   └── formatter.cpython-312.pyc
│   │           │   ├── builder
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── _html5lib.cpython-312.pyc
│   │           │   │   │   ├── _htmlparser.cpython-312.pyc
│   │           │   │   │   └── _lxml.cpython-312.pyc
│   │           │   │   ├── _html5lib.py
│   │           │   │   ├── _htmlparser.py
│   │           │   │   └── _lxml.py
│   │           │   ├── css.py
│   │           │   ├── dammit.py
│   │           │   ├── diagnose.py
│   │           │   ├── element.py
│   │           │   ├── formatter.py
│   │           │   └── tests
│   │           │       ├── __init__.py
│   │           │       ├── __pycache__
│   │           │       │   ├── __init__.cpython-312.pyc
│   │           │       │   ├── test_builder_registry.cpython-312.pyc
│   │           │       │   ├── test_builder.cpython-312.pyc
│   │           │       │   ├── test_css.cpython-312.pyc
│   │           │       │   ├── test_dammit.cpython-312.pyc
│   │           │       │   ├── test_docs.cpython-312.pyc
│   │           │       │   ├── test_element.cpython-312.pyc
│   │           │       │   ├── test_formatter.cpython-312.pyc
│   │           │       │   ├── test_fuzz.cpython-312.pyc
│   │           │       │   ├── test_html5lib.cpython-312.pyc
│   │           │       │   ├── test_htmlparser.cpython-312.pyc
│   │           │       │   ├── test_lxml.cpython-312.pyc
│   │           │       │   ├── test_navigablestring.cpython-312.pyc
│   │           │       │   ├── test_pageelement.cpython-312.pyc
│   │           │       │   ├── test_soup.cpython-312.pyc
│   │           │       │   ├── test_tag.cpython-312.pyc
│   │           │       │   └── test_tree.cpython-312.pyc
│   │           │       ├── fuzz
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4670634698080256.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4818336571064320.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-4999465949331456.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5000587759190016.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5167584867909632.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5270998950477824.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5375146639360000.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5492400320282624.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5703933063462912.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5843991618256896.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-5984173902397440.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6124268085182464.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6241471367348224.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6306874195312640.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6450958476902400.testcase
│   │           │       │   ├── clusterfuzz-testcase-minimized-bs4_fuzzer-6600557255327744.testcase
│   │           │       │   ├── crash-0d306a50c8ed8bcd0785b67000fcd5dea1d33f08.testcase
│   │           │       │   └── crash-ffbdfa8a2b26f13537b68d3794b0478a4090ee4a.testcase
│   │           │       ├── test_builder_registry.py
│   │           │       ├── test_builder.py
│   │           │       ├── test_css.py
│   │           │       ├── test_dammit.py
│   │           │       ├── test_docs.py
│   │           │       ├── test_element.py
│   │           │       ├── test_formatter.py
│   │           │       ├── test_fuzz.py
│   │           │       ├── test_html5lib.py
│   │           │       ├── test_htmlparser.py
│   │           │       ├── test_lxml.py
│   │           │       ├── test_navigablestring.py
│   │           │       ├── test_pageelement.py
│   │           │       ├── test_soup.py
│   │           │       ├── test_tag.py
│   │           │       └── test_tree.py
│   │           ├── certifi
│   │           │   ├── __init__.py
│   │           │   ├── __main__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __main__.cpython-312.pyc
│   │           │   │   └── core.cpython-312.pyc
│   │           │   ├── cacert.pem
│   │           │   ├── core.py
│   │           │   └── py.typed
│   │           ├── certifi-2024.8.30.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── charset_normalizer
│   │           │   ├── __init__.py
│   │           │   ├── __main__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __main__.cpython-312.pyc
│   │           │   │   ├── api.cpython-312.pyc
│   │           │   │   ├── cd.cpython-312.pyc
│   │           │   │   ├── constant.cpython-312.pyc
│   │           │   │   ├── legacy.cpython-312.pyc
│   │           │   │   ├── md.cpython-312.pyc
│   │           │   │   ├── models.cpython-312.pyc
│   │           │   │   ├── utils.cpython-312.pyc
│   │           │   │   └── version.cpython-312.pyc
│   │           │   ├── api.py
│   │           │   ├── cd.py
│   │           │   ├── cli
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __main__.py
│   │           │   │   └── __pycache__
│   │           │   │       ├── __init__.cpython-312.pyc
│   │           │   │       └── __main__.cpython-312.pyc
│   │           │   ├── constant.py
│   │           │   ├── legacy.py
│   │           │   ├── md__mypyc.cpython-312-darwin.so
│   │           │   ├── md.cpython-312-darwin.so
│   │           │   ├── md.py
│   │           │   ├── models.py
│   │           │   ├── py.typed
│   │           │   ├── utils.py
│   │           │   └── version.py
│   │           ├── charset_normalizer-3.4.0.dist-info
│   │           │   ├── entry_points.txt
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── click
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _compat.cpython-312.pyc
│   │           │   │   ├── _termui_impl.cpython-312.pyc
│   │           │   │   ├── _textwrap.cpython-312.pyc
│   │           │   │   ├── _winconsole.cpython-312.pyc
│   │           │   │   ├── core.cpython-312.pyc
│   │           │   │   ├── decorators.cpython-312.pyc
│   │           │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   ├── formatting.cpython-312.pyc
│   │           │   │   ├── globals.cpython-312.pyc
│   │           │   │   ├── parser.cpython-312.pyc
│   │           │   │   ├── shell_completion.cpython-312.pyc
│   │           │   │   ├── termui.cpython-312.pyc
│   │           │   │   ├── testing.cpython-312.pyc
│   │           │   │   ├── types.cpython-312.pyc
│   │           │   │   └── utils.cpython-312.pyc
│   │           │   ├── _compat.py
│   │           │   ├── _termui_impl.py
│   │           │   ├── _textwrap.py
│   │           │   ├── _winconsole.py
│   │           │   ├── core.py
│   │           │   ├── decorators.py
│   │           │   ├── exceptions.py
│   │           │   ├── formatting.py
│   │           │   ├── globals.py
│   │           │   ├── parser.py
│   │           │   ├── py.typed
│   │           │   ├── shell_completion.py
│   │           │   ├── termui.py
│   │           │   ├── testing.py
│   │           │   ├── types.py
│   │           │   └── utils.py
│   │           ├── click-8.1.7.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.rst
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── fake_useragent
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── errors.cpython-312.pyc
│   │           │   │   ├── fake.cpython-312.pyc
│   │           │   │   ├── log.cpython-312.pyc
│   │           │   │   ├── settings.cpython-312.pyc
│   │           │   │   └── utils.cpython-312.pyc
│   │           │   ├── data
│   │           │   │   └── browsers.json
│   │           │   ├── errors.py
│   │           │   ├── fake.py
│   │           │   ├── log.py
│   │           │   ├── settings.py
│   │           │   └── utils.py
│   │           ├── fake_useragent-1.5.1.dist-info
│   │           │   ├── AUTHORS
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── flask
│   │           │   ├── __init__.py
│   │           │   ├── __main__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __main__.cpython-312.pyc
│   │           │   │   ├── app.cpython-312.pyc
│   │           │   │   ├── blueprints.cpython-312.pyc
│   │           │   │   ├── cli.cpython-312.pyc
│   │           │   │   ├── config.cpython-312.pyc
│   │           │   │   ├── ctx.cpython-312.pyc
│   │           │   │   ├── debughelpers.cpython-312.pyc
│   │           │   │   ├── globals.cpython-312.pyc
│   │           │   │   ├── helpers.cpython-312.pyc
│   │           │   │   ├── logging.cpython-312.pyc
│   │           │   │   ├── sessions.cpython-312.pyc
│   │           │   │   ├── signals.cpython-312.pyc
│   │           │   │   ├── templating.cpython-312.pyc
│   │           │   │   ├── testing.cpython-312.pyc
│   │           │   │   ├── typing.cpython-312.pyc
│   │           │   │   ├── views.cpython-312.pyc
│   │           │   │   └── wrappers.cpython-312.pyc
│   │           │   ├── app.py
│   │           │   ├── blueprints.py
│   │           │   ├── cli.py
│   │           │   ├── config.py
│   │           │   ├── ctx.py
│   │           │   ├── debughelpers.py
│   │           │   ├── globals.py
│   │           │   ├── helpers.py
│   │           │   ├── json
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── provider.cpython-312.pyc
│   │           │   │   │   └── tag.cpython-312.pyc
│   │           │   │   ├── provider.py
│   │           │   │   └── tag.py
│   │           │   ├── logging.py
│   │           │   ├── py.typed
│   │           │   ├── sansio
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── app.cpython-312.pyc
│   │           │   │   │   ├── blueprints.cpython-312.pyc
│   │           │   │   │   └── scaffold.cpython-312.pyc
│   │           │   │   ├── app.py
│   │           │   │   ├── blueprints.py
│   │           │   │   ├── README.md
│   │           │   │   └── scaffold.py
│   │           │   ├── sessions.py
│   │           │   ├── signals.py
│   │           │   ├── templating.py
│   │           │   ├── testing.py
│   │           │   ├── typing.py
│   │           │   ├── views.py
│   │           │   └── wrappers.py
│   │           ├── flask-3.0.3.dist-info
│   │           │   ├── entry_points.txt
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   └── WHEEL
│   │           ├── idna
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── codec.cpython-312.pyc
│   │           │   │   ├── compat.cpython-312.pyc
│   │           │   │   ├── core.cpython-312.pyc
│   │           │   │   ├── idnadata.cpython-312.pyc
│   │           │   │   ├── intranges.cpython-312.pyc
│   │           │   │   ├── package_data.cpython-312.pyc
│   │           │   │   └── uts46data.cpython-312.pyc
│   │           │   ├── codec.py
│   │           │   ├── compat.py
│   │           │   ├── core.py
│   │           │   ├── idnadata.py
│   │           │   ├── intranges.py
│   │           │   ├── package_data.py
│   │           │   ├── py.typed
│   │           │   └── uts46data.py
│   │           ├── idna-3.10.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.md
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── itsdangerous
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _json.cpython-312.pyc
│   │           │   │   ├── encoding.cpython-312.pyc
│   │           │   │   ├── exc.cpython-312.pyc
│   │           │   │   ├── serializer.cpython-312.pyc
│   │           │   │   ├── signer.cpython-312.pyc
│   │           │   │   ├── timed.cpython-312.pyc
│   │           │   │   └── url_safe.cpython-312.pyc
│   │           │   ├── _json.py
│   │           │   ├── encoding.py
│   │           │   ├── exc.py
│   │           │   ├── py.typed
│   │           │   ├── serializer.py
│   │           │   ├── signer.py
│   │           │   ├── timed.py
│   │           │   └── url_safe.py
│   │           ├── itsdangerous-2.2.0.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── jinja2
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _identifier.cpython-312.pyc
│   │           │   │   ├── async_utils.cpython-312.pyc
│   │           │   │   ├── bccache.cpython-312.pyc
│   │           │   │   ├── compiler.cpython-312.pyc
│   │           │   │   ├── constants.cpython-312.pyc
│   │           │   │   ├── debug.cpython-312.pyc
│   │           │   │   ├── defaults.cpython-312.pyc
│   │           │   │   ├── environment.cpython-312.pyc
│   │           │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   ├── ext.cpython-312.pyc
│   │           │   │   ├── filters.cpython-312.pyc
│   │           │   │   ├── idtracking.cpython-312.pyc
│   │           │   │   ├── lexer.cpython-312.pyc
│   │           │   │   ├── loaders.cpython-312.pyc
│   │           │   │   ├── meta.cpython-312.pyc
│   │           │   │   ├── nativetypes.cpython-312.pyc
│   │           │   │   ├── nodes.cpython-312.pyc
│   │           │   │   ├── optimizer.cpython-312.pyc
│   │           │   │   ├── parser.cpython-312.pyc
│   │           │   │   ├── runtime.cpython-312.pyc
│   │           │   │   ├── sandbox.cpython-312.pyc
│   │           │   │   ├── tests.cpython-312.pyc
│   │           │   │   ├── utils.cpython-312.pyc
│   │           │   │   └── visitor.cpython-312.pyc
│   │           │   ├── _identifier.py
│   │           │   ├── async_utils.py
│   │           │   ├── bccache.py
│   │           │   ├── compiler.py
│   │           │   ├── constants.py
│   │           │   ├── debug.py
│   │           │   ├── defaults.py
│   │           │   ├── environment.py
│   │           │   ├── exceptions.py
│   │           │   ├── ext.py
│   │           │   ├── filters.py
│   │           │   ├── idtracking.py
│   │           │   ├── lexer.py
│   │           │   ├── loaders.py
│   │           │   ├── meta.py
│   │           │   ├── nativetypes.py
│   │           │   ├── nodes.py
│   │           │   ├── optimizer.py
│   │           │   ├── parser.py
│   │           │   ├── py.typed
│   │           │   ├── runtime.py
│   │           │   ├── sandbox.py
│   │           │   ├── tests.py
│   │           │   ├── utils.py
│   │           │   └── visitor.py
│   │           ├── jinja2-3.1.4.dist-info
│   │           │   ├── entry_points.txt
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── lxml
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _elementpath.cpython-312.pyc
│   │           │   │   ├── builder.cpython-312.pyc
│   │           │   │   ├── cssselect.cpython-312.pyc
│   │           │   │   ├── doctestcompare.cpython-312.pyc
│   │           │   │   ├── ElementInclude.cpython-312.pyc
│   │           │   │   ├── pyclasslookup.cpython-312.pyc
│   │           │   │   ├── sax.cpython-312.pyc
│   │           │   │   └── usedoctest.cpython-312.pyc
│   │           │   ├── _elementpath.cpython-312-darwin.so
│   │           │   ├── _elementpath.py
│   │           │   ├── apihelpers.pxi
│   │           │   ├── builder.cpython-312-darwin.so
│   │           │   ├── builder.py
│   │           │   ├── classlookup.pxi
│   │           │   ├── cleanup.pxi
│   │           │   ├── cssselect.py
│   │           │   ├── debug.pxi
│   │           │   ├── docloader.pxi
│   │           │   ├── doctestcompare.py
│   │           │   ├── dtd.pxi
│   │           │   ├── ElementInclude.py
│   │           │   ├── etree_api.h
│   │           │   ├── etree.cpython-312-darwin.so
│   │           │   ├── etree.h
│   │           │   ├── etree.pyx
│   │           │   ├── extensions.pxi
│   │           │   ├── html
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── _diffcommand.cpython-312.pyc
│   │           │   │   │   ├── _html5builder.cpython-312.pyc
│   │           │   │   │   ├── _setmixin.cpython-312.pyc
│   │           │   │   │   ├── builder.cpython-312.pyc
│   │           │   │   │   ├── clean.cpython-312.pyc
│   │           │   │   │   ├── defs.cpython-312.pyc
│   │           │   │   │   ├── diff.cpython-312.pyc
│   │           │   │   │   ├── ElementSoup.cpython-312.pyc
│   │           │   │   │   ├── formfill.cpython-312.pyc
│   │           │   │   │   ├── html5parser.cpython-312.pyc
│   │           │   │   │   ├── soupparser.cpython-312.pyc
│   │           │   │   │   └── usedoctest.cpython-312.pyc
│   │           │   │   ├── _diffcommand.py
│   │           │   │   ├── _html5builder.py
│   │           │   │   ├── _setmixin.py
│   │           │   │   ├── builder.py
│   │           │   │   ├── clean.py
│   │           │   │   ├── defs.py
│   │           │   │   ├── diff.cpython-312-darwin.so
│   │           │   │   ├── diff.py
│   │           │   │   ├── ElementSoup.py
│   │           │   │   ├── formfill.py
│   │           │   │   ├── html5parser.py
│   │           │   │   ├── soupparser.py
│   │           │   │   └── usedoctest.py
│   │           │   ├── includes
│   │           │   │   ├── __init__.pxd
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   ├── c14n.pxd
│   │           │   │   ├── config.pxd
│   │           │   │   ├── dtdvalid.pxd
│   │           │   │   ├── etree_defs.h
│   │           │   │   ├── etreepublic.pxd
│   │           │   │   ├── extlibs
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   │   ├── libcharset.h
│   │           │   │   │   ├── localcharset.h
│   │           │   │   │   ├── zconf.h
│   │           │   │   │   └── zlib.h
│   │           │   │   ├── htmlparser.pxd
│   │           │   │   ├── libexslt
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   │   ├── exslt.h
│   │           │   │   │   ├── exsltconfig.h
│   │           │   │   │   └── exsltexports.h
│   │           │   │   ├── libxml
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   │   ├── c14n.h
│   │           │   │   │   ├── catalog.h
│   │           │   │   │   ├── chvalid.h
│   │           │   │   │   ├── debugXML.h
│   │           │   │   │   ├── dict.h
│   │           │   │   │   ├── encoding.h
│   │           │   │   │   ├── entities.h
│   │           │   │   │   ├── globals.h
│   │           │   │   │   ├── hash.h
│   │           │   │   │   ├── HTMLparser.h
│   │           │   │   │   ├── HTMLtree.h
│   │           │   │   │   ├── list.h
│   │           │   │   │   ├── nanoftp.h
│   │           │   │   │   ├── nanohttp.h
│   │           │   │   │   ├── parser.h
│   │           │   │   │   ├── parserInternals.h
│   │           │   │   │   ├── relaxng.h
│   │           │   │   │   ├── SAX.h
│   │           │   │   │   ├── SAX2.h
│   │           │   │   │   ├── schemasInternals.h
│   │           │   │   │   ├── schematron.h
│   │           │   │   │   ├── threads.h
│   │           │   │   │   ├── tree.h
│   │           │   │   │   ├── uri.h
│   │           │   │   │   ├── valid.h
│   │           │   │   │   ├── xinclude.h
│   │           │   │   │   ├── xlink.h
│   │           │   │   │   ├── xmlautomata.h
│   │           │   │   │   ├── xmlerror.h
│   │           │   │   │   ├── xmlexports.h
│   │           │   │   │   ├── xmlIO.h
│   │           │   │   │   ├── xmlmemory.h
│   │           │   │   │   ├── xmlmodule.h
│   │           │   │   │   ├── xmlreader.h
│   │           │   │   │   ├── xmlregexp.h
│   │           │   │   │   ├── xmlsave.h
│   │           │   │   │   ├── xmlschemas.h
│   │           │   │   │   ├── xmlschemastypes.h
│   │           │   │   │   ├── xmlstring.h
│   │           │   │   │   ├── xmlunicode.h
│   │           │   │   │   ├── xmlversion.h
│   │           │   │   │   ├── xmlwriter.h
│   │           │   │   │   ├── xpath.h
│   │           │   │   │   ├── xpathInternals.h
│   │           │   │   │   └── xpointer.h
│   │           │   │   ├── libxslt
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   │   ├── attributes.h
│   │           │   │   │   ├── documents.h
│   │           │   │   │   ├── extensions.h
│   │           │   │   │   ├── extra.h
│   │           │   │   │   ├── functions.h
│   │           │   │   │   ├── imports.h
│   │           │   │   │   ├── keys.h
│   │           │   │   │   ├── namespaces.h
│   │           │   │   │   ├── numbersInternals.h
│   │           │   │   │   ├── pattern.h
│   │           │   │   │   ├── preproc.h
│   │           │   │   │   ├── security.h
│   │           │   │   │   ├── templates.h
│   │           │   │   │   ├── transform.h
│   │           │   │   │   ├── variables.h
│   │           │   │   │   ├── xslt.h
│   │           │   │   │   ├── xsltconfig.h
│   │           │   │   │   ├── xsltexports.h
│   │           │   │   │   ├── xsltInternals.h
│   │           │   │   │   ├── xsltlocale.h
│   │           │   │   │   └── xsltutils.h
│   │           │   │   ├── lxml-version.h
│   │           │   │   ├── relaxng.pxd
│   │           │   │   ├── schematron.pxd
│   │           │   │   ├── tree.pxd
│   │           │   │   ├── uri.pxd
│   │           │   │   ├── xinclude.pxd
│   │           │   │   ├── xmlerror.pxd
│   │           │   │   ├── xmlparser.pxd
│   │           │   │   ├── xmlschema.pxd
│   │           │   │   ├── xpath.pxd
│   │           │   │   └── xslt.pxd
│   │           │   ├── isoschematron
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   └── __init__.cpython-312.pyc
│   │           │   │   └── resources
│   │           │   │       ├── rng
│   │           │   │       │   └── iso-schematron.rng
│   │           │   │       └── xsl
│   │           │   │           ├── iso-schematron-xslt1
│   │           │   │           │   ├── iso_abstract_expand.xsl
│   │           │   │           │   ├── iso_dsdl_include.xsl
│   │           │   │           │   ├── iso_schematron_message.xsl
│   │           │   │           │   ├── iso_schematron_skeleton_for_xslt1.xsl
│   │           │   │           │   ├── iso_svrl_for_xslt1.xsl
│   │           │   │           │   └── readme.txt
│   │           │   │           ├── RNG2Schtrn.xsl
│   │           │   │           └── XSD2Schtrn.xsl
│   │           │   ├── iterparse.pxi
│   │           │   ├── lxml.etree_api.h
│   │           │   ├── lxml.etree.h
│   │           │   ├── nsclasses.pxi
│   │           │   ├── objectify.cpython-312-darwin.so
│   │           │   ├── objectify.pyx
│   │           │   ├── objectpath.pxi
│   │           │   ├── parser.pxi
│   │           │   ├── parsertarget.pxi
│   │           │   ├── proxy.pxi
│   │           │   ├── public-api.pxi
│   │           │   ├── pyclasslookup.py
│   │           │   ├── readonlytree.pxi
│   │           │   ├── relaxng.pxi
│   │           │   ├── sax.cpython-312-darwin.so
│   │           │   ├── sax.py
│   │           │   ├── saxparser.pxi
│   │           │   ├── schematron.pxi
│   │           │   ├── serializer.pxi
│   │           │   ├── usedoctest.py
│   │           │   ├── xinclude.pxi
│   │           │   ├── xmlerror.pxi
│   │           │   ├── xmlid.pxi
│   │           │   ├── xmlschema.pxi
│   │           │   ├── xpath.pxi
│   │           │   ├── xslt.pxi
│   │           │   └── xsltext.pxi
│   │           ├── lxml-5.3.0.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── LICENSES.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── markupsafe
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   └── _native.cpython-312.pyc
│   │           │   ├── _native.py
│   │           │   ├── _speedups.c
│   │           │   ├── _speedups.cpython-312-darwin.so
│   │           │   ├── _speedups.pyi
│   │           │   └── py.typed
│   │           ├── MarkupSafe-3.0.1.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── pip
│   │           │   ├── __init__.py
│   │           │   ├── __main__.py
│   │           │   ├── __pip-runner__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __main__.cpython-312.pyc
│   │           │   │   └── __pip-runner__.cpython-312.pyc
│   │           │   ├── _internal
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── build_env.cpython-312.pyc
│   │           │   │   │   ├── cache.cpython-312.pyc
│   │           │   │   │   ├── configuration.cpython-312.pyc
│   │           │   │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   │   ├── main.cpython-312.pyc
│   │           │   │   │   ├── pyproject.cpython-312.pyc
│   │           │   │   │   ├── self_outdated_check.cpython-312.pyc
│   │           │   │   │   └── wheel_builder.cpython-312.pyc
│   │           │   │   ├── build_env.py
│   │           │   │   ├── cache.py
│   │           │   │   ├── cli
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── autocompletion.cpython-312.pyc
│   │           │   │   │   │   ├── base_command.cpython-312.pyc
│   │           │   │   │   │   ├── cmdoptions.cpython-312.pyc
│   │           │   │   │   │   ├── command_context.cpython-312.pyc
│   │           │   │   │   │   ├── index_command.cpython-312.pyc
│   │           │   │   │   │   ├── main_parser.cpython-312.pyc
│   │           │   │   │   │   ├── main.cpython-312.pyc
│   │           │   │   │   │   ├── parser.cpython-312.pyc
│   │           │   │   │   │   ├── progress_bars.cpython-312.pyc
│   │           │   │   │   │   ├── req_command.cpython-312.pyc
│   │           │   │   │   │   ├── spinners.cpython-312.pyc
│   │           │   │   │   │   └── status_codes.cpython-312.pyc
│   │           │   │   │   ├── autocompletion.py
│   │           │   │   │   ├── base_command.py
│   │           │   │   │   ├── cmdoptions.py
│   │           │   │   │   ├── command_context.py
│   │           │   │   │   ├── index_command.py
│   │           │   │   │   ├── main_parser.py
│   │           │   │   │   ├── main.py
│   │           │   │   │   ├── parser.py
│   │           │   │   │   ├── progress_bars.py
│   │           │   │   │   ├── req_command.py
│   │           │   │   │   ├── spinners.py
│   │           │   │   │   └── status_codes.py
│   │           │   │   ├── commands
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── cache.cpython-312.pyc
│   │           │   │   │   │   ├── check.cpython-312.pyc
│   │           │   │   │   │   ├── completion.cpython-312.pyc
│   │           │   │   │   │   ├── configuration.cpython-312.pyc
│   │           │   │   │   │   ├── debug.cpython-312.pyc
│   │           │   │   │   │   ├── download.cpython-312.pyc
│   │           │   │   │   │   ├── freeze.cpython-312.pyc
│   │           │   │   │   │   ├── hash.cpython-312.pyc
│   │           │   │   │   │   ├── help.cpython-312.pyc
│   │           │   │   │   │   ├── index.cpython-312.pyc
│   │           │   │   │   │   ├── inspect.cpython-312.pyc
│   │           │   │   │   │   ├── install.cpython-312.pyc
│   │           │   │   │   │   ├── list.cpython-312.pyc
│   │           │   │   │   │   ├── search.cpython-312.pyc
│   │           │   │   │   │   ├── show.cpython-312.pyc
│   │           │   │   │   │   ├── uninstall.cpython-312.pyc
│   │           │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   ├── cache.py
│   │           │   │   │   ├── check.py
│   │           │   │   │   ├── completion.py
│   │           │   │   │   ├── configuration.py
│   │           │   │   │   ├── debug.py
│   │           │   │   │   ├── download.py
│   │           │   │   │   ├── freeze.py
│   │           │   │   │   ├── hash.py
│   │           │   │   │   ├── help.py
│   │           │   │   │   ├── index.py
│   │           │   │   │   ├── inspect.py
│   │           │   │   │   ├── install.py
│   │           │   │   │   ├── list.py
│   │           │   │   │   ├── search.py
│   │           │   │   │   ├── show.py
│   │           │   │   │   ├── uninstall.py
│   │           │   │   │   └── wheel.py
│   │           │   │   ├── configuration.py
│   │           │   │   ├── distributions
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── base.cpython-312.pyc
│   │           │   │   │   │   ├── installed.cpython-312.pyc
│   │           │   │   │   │   ├── sdist.cpython-312.pyc
│   │           │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   ├── base.py
│   │           │   │   │   ├── installed.py
│   │           │   │   │   ├── sdist.py
│   │           │   │   │   └── wheel.py
│   │           │   │   ├── exceptions.py
│   │           │   │   ├── index
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── collector.cpython-312.pyc
│   │           │   │   │   │   ├── package_finder.cpython-312.pyc
│   │           │   │   │   │   └── sources.cpython-312.pyc
│   │           │   │   │   ├── collector.py
│   │           │   │   │   ├── package_finder.py
│   │           │   │   │   └── sources.py
│   │           │   │   ├── locations
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _distutils.cpython-312.pyc
│   │           │   │   │   │   ├── _sysconfig.cpython-312.pyc
│   │           │   │   │   │   └── base.cpython-312.pyc
│   │           │   │   │   ├── _distutils.py
│   │           │   │   │   ├── _sysconfig.py
│   │           │   │   │   └── base.py
│   │           │   │   ├── main.py
│   │           │   │   ├── metadata
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _json.cpython-312.pyc
│   │           │   │   │   │   ├── base.cpython-312.pyc
│   │           │   │   │   │   └── pkg_resources.cpython-312.pyc
│   │           │   │   │   ├── _json.py
│   │           │   │   │   ├── base.py
│   │           │   │   │   ├── importlib
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── _compat.cpython-312.pyc
│   │           │   │   │   │   │   ├── _dists.cpython-312.pyc
│   │           │   │   │   │   │   └── _envs.cpython-312.pyc
│   │           │   │   │   │   ├── _compat.py
│   │           │   │   │   │   ├── _dists.py
│   │           │   │   │   │   └── _envs.py
│   │           │   │   │   └── pkg_resources.py
│   │           │   │   ├── models
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── candidate.cpython-312.pyc
│   │           │   │   │   │   ├── direct_url.cpython-312.pyc
│   │           │   │   │   │   ├── format_control.cpython-312.pyc
│   │           │   │   │   │   ├── index.cpython-312.pyc
│   │           │   │   │   │   ├── installation_report.cpython-312.pyc
│   │           │   │   │   │   ├── link.cpython-312.pyc
│   │           │   │   │   │   ├── scheme.cpython-312.pyc
│   │           │   │   │   │   ├── search_scope.cpython-312.pyc
│   │           │   │   │   │   ├── selection_prefs.cpython-312.pyc
│   │           │   │   │   │   ├── target_python.cpython-312.pyc
│   │           │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   ├── candidate.py
│   │           │   │   │   ├── direct_url.py
│   │           │   │   │   ├── format_control.py
│   │           │   │   │   ├── index.py
│   │           │   │   │   ├── installation_report.py
│   │           │   │   │   ├── link.py
│   │           │   │   │   ├── scheme.py
│   │           │   │   │   ├── search_scope.py
│   │           │   │   │   ├── selection_prefs.py
│   │           │   │   │   ├── target_python.py
│   │           │   │   │   └── wheel.py
│   │           │   │   ├── network
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── auth.cpython-312.pyc
│   │           │   │   │   │   ├── cache.cpython-312.pyc
│   │           │   │   │   │   ├── download.cpython-312.pyc
│   │           │   │   │   │   ├── lazy_wheel.cpython-312.pyc
│   │           │   │   │   │   ├── session.cpython-312.pyc
│   │           │   │   │   │   ├── utils.cpython-312.pyc
│   │           │   │   │   │   └── xmlrpc.cpython-312.pyc
│   │           │   │   │   ├── auth.py
│   │           │   │   │   ├── cache.py
│   │           │   │   │   ├── download.py
│   │           │   │   │   ├── lazy_wheel.py
│   │           │   │   │   ├── session.py
│   │           │   │   │   ├── utils.py
│   │           │   │   │   └── xmlrpc.py
│   │           │   │   ├── operations
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── check.cpython-312.pyc
│   │           │   │   │   │   ├── freeze.cpython-312.pyc
│   │           │   │   │   │   └── prepare.cpython-312.pyc
│   │           │   │   │   ├── build
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── build_tracker.cpython-312.pyc
│   │           │   │   │   │   │   ├── metadata_editable.cpython-312.pyc
│   │           │   │   │   │   │   ├── metadata_legacy.cpython-312.pyc
│   │           │   │   │   │   │   ├── metadata.cpython-312.pyc
│   │           │   │   │   │   │   ├── wheel_editable.cpython-312.pyc
│   │           │   │   │   │   │   ├── wheel_legacy.cpython-312.pyc
│   │           │   │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   │   ├── build_tracker.py
│   │           │   │   │   │   ├── metadata_editable.py
│   │           │   │   │   │   ├── metadata_legacy.py
│   │           │   │   │   │   ├── metadata.py
│   │           │   │   │   │   ├── wheel_editable.py
│   │           │   │   │   │   ├── wheel_legacy.py
│   │           │   │   │   │   └── wheel.py
│   │           │   │   │   ├── check.py
│   │           │   │   │   ├── freeze.py
│   │           │   │   │   ├── install
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── editable_legacy.cpython-312.pyc
│   │           │   │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   │   ├── editable_legacy.py
│   │           │   │   │   │   └── wheel.py
│   │           │   │   │   └── prepare.py
│   │           │   │   ├── pyproject.py
│   │           │   │   ├── req
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── constructors.cpython-312.pyc
│   │           │   │   │   │   ├── req_file.cpython-312.pyc
│   │           │   │   │   │   ├── req_install.cpython-312.pyc
│   │           │   │   │   │   ├── req_set.cpython-312.pyc
│   │           │   │   │   │   └── req_uninstall.cpython-312.pyc
│   │           │   │   │   ├── constructors.py
│   │           │   │   │   ├── req_file.py
│   │           │   │   │   ├── req_install.py
│   │           │   │   │   ├── req_set.py
│   │           │   │   │   └── req_uninstall.py
│   │           │   │   ├── resolution
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   └── base.cpython-312.pyc
│   │           │   │   │   ├── base.py
│   │           │   │   │   ├── legacy
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   └── resolver.cpython-312.pyc
│   │           │   │   │   │   └── resolver.py
│   │           │   │   │   └── resolvelib
│   │           │   │   │       ├── __init__.py
│   │           │   │   │       ├── __pycache__
│   │           │   │   │       │   ├── __init__.cpython-312.pyc
│   │           │   │   │       │   ├── base.cpython-312.pyc
│   │           │   │   │       │   ├── candidates.cpython-312.pyc
│   │           │   │   │       │   ├── factory.cpython-312.pyc
│   │           │   │   │       │   ├── found_candidates.cpython-312.pyc
│   │           │   │   │       │   ├── provider.cpython-312.pyc
│   │           │   │   │       │   ├── reporter.cpython-312.pyc
│   │           │   │   │       │   ├── requirements.cpython-312.pyc
│   │           │   │   │       │   └── resolver.cpython-312.pyc
│   │           │   │   │       ├── base.py
│   │           │   │   │       ├── candidates.py
│   │           │   │   │       ├── factory.py
│   │           │   │   │       ├── found_candidates.py
│   │           │   │   │       ├── provider.py
│   │           │   │   │       ├── reporter.py
│   │           │   │   │       ├── requirements.py
│   │           │   │   │       └── resolver.py
│   │           │   │   ├── self_outdated_check.py
│   │           │   │   ├── utils
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _jaraco_text.cpython-312.pyc
│   │           │   │   │   │   ├── _log.cpython-312.pyc
│   │           │   │   │   │   ├── appdirs.cpython-312.pyc
│   │           │   │   │   │   ├── compat.cpython-312.pyc
│   │           │   │   │   │   ├── compatibility_tags.cpython-312.pyc
│   │           │   │   │   │   ├── datetime.cpython-312.pyc
│   │           │   │   │   │   ├── deprecation.cpython-312.pyc
│   │           │   │   │   │   ├── direct_url_helpers.cpython-312.pyc
│   │           │   │   │   │   ├── egg_link.cpython-312.pyc
│   │           │   │   │   │   ├── encoding.cpython-312.pyc
│   │           │   │   │   │   ├── entrypoints.cpython-312.pyc
│   │           │   │   │   │   ├── filesystem.cpython-312.pyc
│   │           │   │   │   │   ├── filetypes.cpython-312.pyc
│   │           │   │   │   │   ├── glibc.cpython-312.pyc
│   │           │   │   │   │   ├── hashes.cpython-312.pyc
│   │           │   │   │   │   ├── logging.cpython-312.pyc
│   │           │   │   │   │   ├── misc.cpython-312.pyc
│   │           │   │   │   │   ├── packaging.cpython-312.pyc
│   │           │   │   │   │   ├── retry.cpython-312.pyc
│   │           │   │   │   │   ├── setuptools_build.cpython-312.pyc
│   │           │   │   │   │   ├── subprocess.cpython-312.pyc
│   │           │   │   │   │   ├── temp_dir.cpython-312.pyc
│   │           │   │   │   │   ├── unpacking.cpython-312.pyc
│   │           │   │   │   │   ├── urls.cpython-312.pyc
│   │           │   │   │   │   ├── virtualenv.cpython-312.pyc
│   │           │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   ├── _jaraco_text.py
│   │           │   │   │   ├── _log.py
│   │           │   │   │   ├── appdirs.py
│   │           │   │   │   ├── compat.py
│   │           │   │   │   ├── compatibility_tags.py
│   │           │   │   │   ├── datetime.py
│   │           │   │   │   ├── deprecation.py
│   │           │   │   │   ├── direct_url_helpers.py
│   │           │   │   │   ├── egg_link.py
│   │           │   │   │   ├── encoding.py
│   │           │   │   │   ├── entrypoints.py
│   │           │   │   │   ├── filesystem.py
│   │           │   │   │   ├── filetypes.py
│   │           │   │   │   ├── glibc.py
│   │           │   │   │   ├── hashes.py
│   │           │   │   │   ├── logging.py
│   │           │   │   │   ├── misc.py
│   │           │   │   │   ├── packaging.py
│   │           │   │   │   ├── retry.py
│   │           │   │   │   ├── setuptools_build.py
│   │           │   │   │   ├── subprocess.py
│   │           │   │   │   ├── temp_dir.py
│   │           │   │   │   ├── unpacking.py
│   │           │   │   │   ├── urls.py
│   │           │   │   │   ├── virtualenv.py
│   │           │   │   │   └── wheel.py
│   │           │   │   ├── vcs
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── bazaar.cpython-312.pyc
│   │           │   │   │   │   ├── git.cpython-312.pyc
│   │           │   │   │   │   ├── mercurial.cpython-312.pyc
│   │           │   │   │   │   ├── subversion.cpython-312.pyc
│   │           │   │   │   │   └── versioncontrol.cpython-312.pyc
│   │           │   │   │   ├── bazaar.py
│   │           │   │   │   ├── git.py
│   │           │   │   │   ├── mercurial.py
│   │           │   │   │   ├── subversion.py
│   │           │   │   │   └── versioncontrol.py
│   │           │   │   └── wheel_builder.py
│   │           │   ├── _vendor
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   └── typing_extensions.cpython-312.pyc
│   │           │   │   ├── cachecontrol
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _cmd.cpython-312.pyc
│   │           │   │   │   │   ├── adapter.cpython-312.pyc
│   │           │   │   │   │   ├── cache.cpython-312.pyc
│   │           │   │   │   │   ├── controller.cpython-312.pyc
│   │           │   │   │   │   ├── filewrapper.cpython-312.pyc
│   │           │   │   │   │   ├── heuristics.cpython-312.pyc
│   │           │   │   │   │   ├── serialize.cpython-312.pyc
│   │           │   │   │   │   └── wrapper.cpython-312.pyc
│   │           │   │   │   ├── _cmd.py
│   │           │   │   │   ├── adapter.py
│   │           │   │   │   ├── cache.py
│   │           │   │   │   ├── caches
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── file_cache.cpython-312.pyc
│   │           │   │   │   │   │   └── redis_cache.cpython-312.pyc
│   │           │   │   │   │   ├── file_cache.py
│   │           │   │   │   │   └── redis_cache.py
│   │           │   │   │   ├── controller.py
│   │           │   │   │   ├── filewrapper.py
│   │           │   │   │   ├── heuristics.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   ├── serialize.py
│   │           │   │   │   └── wrapper.py
│   │           │   │   ├── certifi
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __main__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __main__.cpython-312.pyc
│   │           │   │   │   │   └── core.cpython-312.pyc
│   │           │   │   │   ├── cacert.pem
│   │           │   │   │   ├── core.py
│   │           │   │   │   └── py.typed
│   │           │   │   ├── distlib
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── compat.cpython-312.pyc
│   │           │   │   │   │   ├── database.cpython-312.pyc
│   │           │   │   │   │   ├── index.cpython-312.pyc
│   │           │   │   │   │   ├── locators.cpython-312.pyc
│   │           │   │   │   │   ├── manifest.cpython-312.pyc
│   │           │   │   │   │   ├── markers.cpython-312.pyc
│   │           │   │   │   │   ├── metadata.cpython-312.pyc
│   │           │   │   │   │   ├── resources.cpython-312.pyc
│   │           │   │   │   │   ├── scripts.cpython-312.pyc
│   │           │   │   │   │   ├── util.cpython-312.pyc
│   │           │   │   │   │   ├── version.cpython-312.pyc
│   │           │   │   │   │   └── wheel.cpython-312.pyc
│   │           │   │   │   ├── compat.py
│   │           │   │   │   ├── database.py
│   │           │   │   │   ├── index.py
│   │           │   │   │   ├── locators.py
│   │           │   │   │   ├── manifest.py
│   │           │   │   │   ├── markers.py
│   │           │   │   │   ├── metadata.py
│   │           │   │   │   ├── resources.py
│   │           │   │   │   ├── scripts.py
│   │           │   │   │   ├── t32.exe
│   │           │   │   │   ├── t64-arm.exe
│   │           │   │   │   ├── t64.exe
│   │           │   │   │   ├── util.py
│   │           │   │   │   ├── version.py
│   │           │   │   │   ├── w32.exe
│   │           │   │   │   ├── w64-arm.exe
│   │           │   │   │   ├── w64.exe
│   │           │   │   │   └── wheel.py
│   │           │   │   ├── distro
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __main__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __main__.cpython-312.pyc
│   │           │   │   │   │   └── distro.cpython-312.pyc
│   │           │   │   │   ├── distro.py
│   │           │   │   │   └── py.typed
│   │           │   │   ├── idna
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── codec.cpython-312.pyc
│   │           │   │   │   │   ├── compat.cpython-312.pyc
│   │           │   │   │   │   ├── core.cpython-312.pyc
│   │           │   │   │   │   ├── idnadata.cpython-312.pyc
│   │           │   │   │   │   ├── intranges.cpython-312.pyc
│   │           │   │   │   │   ├── package_data.cpython-312.pyc
│   │           │   │   │   │   └── uts46data.cpython-312.pyc
│   │           │   │   │   ├── codec.py
│   │           │   │   │   ├── compat.py
│   │           │   │   │   ├── core.py
│   │           │   │   │   ├── idnadata.py
│   │           │   │   │   ├── intranges.py
│   │           │   │   │   ├── package_data.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   └── uts46data.py
│   │           │   │   ├── msgpack
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   │   │   ├── ext.cpython-312.pyc
│   │           │   │   │   │   └── fallback.cpython-312.pyc
│   │           │   │   │   ├── exceptions.py
│   │           │   │   │   ├── ext.py
│   │           │   │   │   └── fallback.py
│   │           │   │   ├── packaging
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _elffile.cpython-312.pyc
│   │           │   │   │   │   ├── _manylinux.cpython-312.pyc
│   │           │   │   │   │   ├── _musllinux.cpython-312.pyc
│   │           │   │   │   │   ├── _parser.cpython-312.pyc
│   │           │   │   │   │   ├── _structures.cpython-312.pyc
│   │           │   │   │   │   ├── _tokenizer.cpython-312.pyc
│   │           │   │   │   │   ├── markers.cpython-312.pyc
│   │           │   │   │   │   ├── metadata.cpython-312.pyc
│   │           │   │   │   │   ├── requirements.cpython-312.pyc
│   │           │   │   │   │   ├── specifiers.cpython-312.pyc
│   │           │   │   │   │   ├── tags.cpython-312.pyc
│   │           │   │   │   │   ├── utils.cpython-312.pyc
│   │           │   │   │   │   └── version.cpython-312.pyc
│   │           │   │   │   ├── _elffile.py
│   │           │   │   │   ├── _manylinux.py
│   │           │   │   │   ├── _musllinux.py
│   │           │   │   │   ├── _parser.py
│   │           │   │   │   ├── _structures.py
│   │           │   │   │   ├── _tokenizer.py
│   │           │   │   │   ├── markers.py
│   │           │   │   │   ├── metadata.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   ├── requirements.py
│   │           │   │   │   ├── specifiers.py
│   │           │   │   │   ├── tags.py
│   │           │   │   │   ├── utils.py
│   │           │   │   │   └── version.py
│   │           │   │   ├── pkg_resources
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   └── __pycache__
│   │           │   │   │       └── __init__.cpython-312.pyc
│   │           │   │   ├── platformdirs
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __main__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __main__.cpython-312.pyc
│   │           │   │   │   │   ├── android.cpython-312.pyc
│   │           │   │   │   │   ├── api.cpython-312.pyc
│   │           │   │   │   │   ├── macos.cpython-312.pyc
│   │           │   │   │   │   ├── unix.cpython-312.pyc
│   │           │   │   │   │   ├── version.cpython-312.pyc
│   │           │   │   │   │   └── windows.cpython-312.pyc
│   │           │   │   │   ├── android.py
│   │           │   │   │   ├── api.py
│   │           │   │   │   ├── macos.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   ├── unix.py
│   │           │   │   │   ├── version.py
│   │           │   │   │   └── windows.py
│   │           │   │   ├── pygments
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __main__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __main__.cpython-312.pyc
│   │           │   │   │   │   ├── cmdline.cpython-312.pyc
│   │           │   │   │   │   ├── console.cpython-312.pyc
│   │           │   │   │   │   ├── filter.cpython-312.pyc
│   │           │   │   │   │   ├── formatter.cpython-312.pyc
│   │           │   │   │   │   ├── lexer.cpython-312.pyc
│   │           │   │   │   │   ├── modeline.cpython-312.pyc
│   │           │   │   │   │   ├── plugin.cpython-312.pyc
│   │           │   │   │   │   ├── regexopt.cpython-312.pyc
│   │           │   │   │   │   ├── scanner.cpython-312.pyc
│   │           │   │   │   │   ├── sphinxext.cpython-312.pyc
│   │           │   │   │   │   ├── style.cpython-312.pyc
│   │           │   │   │   │   ├── token.cpython-312.pyc
│   │           │   │   │   │   ├── unistring.cpython-312.pyc
│   │           │   │   │   │   └── util.cpython-312.pyc
│   │           │   │   │   ├── cmdline.py
│   │           │   │   │   ├── console.py
│   │           │   │   │   ├── filter.py
│   │           │   │   │   ├── filters
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   └── __pycache__
│   │           │   │   │   │       └── __init__.cpython-312.pyc
│   │           │   │   │   ├── formatter.py
│   │           │   │   │   ├── formatters
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── _mapping.cpython-312.pyc
│   │           │   │   │   │   │   ├── bbcode.cpython-312.pyc
│   │           │   │   │   │   │   ├── groff.cpython-312.pyc
│   │           │   │   │   │   │   ├── html.cpython-312.pyc
│   │           │   │   │   │   │   ├── img.cpython-312.pyc
│   │           │   │   │   │   │   ├── irc.cpython-312.pyc
│   │           │   │   │   │   │   ├── latex.cpython-312.pyc
│   │           │   │   │   │   │   ├── other.cpython-312.pyc
│   │           │   │   │   │   │   ├── pangomarkup.cpython-312.pyc
│   │           │   │   │   │   │   ├── rtf.cpython-312.pyc
│   │           │   │   │   │   │   ├── svg.cpython-312.pyc
│   │           │   │   │   │   │   ├── terminal.cpython-312.pyc
│   │           │   │   │   │   │   └── terminal256.cpython-312.pyc
│   │           │   │   │   │   ├── _mapping.py
│   │           │   │   │   │   ├── bbcode.py
│   │           │   │   │   │   ├── groff.py
│   │           │   │   │   │   ├── html.py
│   │           │   │   │   │   ├── img.py
│   │           │   │   │   │   ├── irc.py
│   │           │   │   │   │   ├── latex.py
│   │           │   │   │   │   ├── other.py
│   │           │   │   │   │   ├── pangomarkup.py
│   │           │   │   │   │   ├── rtf.py
│   │           │   │   │   │   ├── svg.py
│   │           │   │   │   │   ├── terminal.py
│   │           │   │   │   │   └── terminal256.py
│   │           │   │   │   ├── lexer.py
│   │           │   │   │   ├── lexers
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── _mapping.cpython-312.pyc
│   │           │   │   │   │   │   └── python.cpython-312.pyc
│   │           │   │   │   │   ├── _mapping.py
│   │           │   │   │   │   └── python.py
│   │           │   │   │   ├── modeline.py
│   │           │   │   │   ├── plugin.py
│   │           │   │   │   ├── regexopt.py
│   │           │   │   │   ├── scanner.py
│   │           │   │   │   ├── sphinxext.py
│   │           │   │   │   ├── style.py
│   │           │   │   │   ├── styles
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   └── _mapping.cpython-312.pyc
│   │           │   │   │   │   └── _mapping.py
│   │           │   │   │   ├── token.py
│   │           │   │   │   ├── unistring.py
│   │           │   │   │   └── util.py
│   │           │   │   ├── pyproject_hooks
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _compat.cpython-312.pyc
│   │           │   │   │   │   └── _impl.cpython-312.pyc
│   │           │   │   │   ├── _compat.py
│   │           │   │   │   ├── _impl.py
│   │           │   │   │   └── _in_process
│   │           │   │   │       ├── __init__.py
│   │           │   │   │       ├── __pycache__
│   │           │   │   │       │   ├── __init__.cpython-312.pyc
│   │           │   │   │       │   └── _in_process.cpython-312.pyc
│   │           │   │   │       └── _in_process.py
│   │           │   │   ├── requests
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __version__.cpython-312.pyc
│   │           │   │   │   │   ├── _internal_utils.cpython-312.pyc
│   │           │   │   │   │   ├── adapters.cpython-312.pyc
│   │           │   │   │   │   ├── api.cpython-312.pyc
│   │           │   │   │   │   ├── auth.cpython-312.pyc
│   │           │   │   │   │   ├── certs.cpython-312.pyc
│   │           │   │   │   │   ├── compat.cpython-312.pyc
│   │           │   │   │   │   ├── cookies.cpython-312.pyc
│   │           │   │   │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   │   │   ├── help.cpython-312.pyc
│   │           │   │   │   │   ├── hooks.cpython-312.pyc
│   │           │   │   │   │   ├── models.cpython-312.pyc
│   │           │   │   │   │   ├── packages.cpython-312.pyc
│   │           │   │   │   │   ├── sessions.cpython-312.pyc
│   │           │   │   │   │   ├── status_codes.cpython-312.pyc
│   │           │   │   │   │   ├── structures.cpython-312.pyc
│   │           │   │   │   │   └── utils.cpython-312.pyc
│   │           │   │   │   ├── __version__.py
│   │           │   │   │   ├── _internal_utils.py
│   │           │   │   │   ├── adapters.py
│   │           │   │   │   ├── api.py
│   │           │   │   │   ├── auth.py
│   │           │   │   │   ├── certs.py
│   │           │   │   │   ├── compat.py
│   │           │   │   │   ├── cookies.py
│   │           │   │   │   ├── exceptions.py
│   │           │   │   │   ├── help.py
│   │           │   │   │   ├── hooks.py
│   │           │   │   │   ├── models.py
│   │           │   │   │   ├── packages.py
│   │           │   │   │   ├── sessions.py
│   │           │   │   │   ├── status_codes.py
│   │           │   │   │   ├── structures.py
│   │           │   │   │   └── utils.py
│   │           │   │   ├── resolvelib
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── providers.cpython-312.pyc
│   │           │   │   │   │   ├── reporters.cpython-312.pyc
│   │           │   │   │   │   ├── resolvers.cpython-312.pyc
│   │           │   │   │   │   └── structs.cpython-312.pyc
│   │           │   │   │   ├── compat
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   └── collections_abc.cpython-312.pyc
│   │           │   │   │   │   └── collections_abc.py
│   │           │   │   │   ├── providers.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   ├── reporters.py
│   │           │   │   │   ├── resolvers.py
│   │           │   │   │   └── structs.py
│   │           │   │   ├── rich
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __main__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── __main__.cpython-312.pyc
│   │           │   │   │   │   ├── _cell_widths.cpython-312.pyc
│   │           │   │   │   │   ├── _emoji_codes.cpython-312.pyc
│   │           │   │   │   │   ├── _emoji_replace.cpython-312.pyc
│   │           │   │   │   │   ├── _export_format.cpython-312.pyc
│   │           │   │   │   │   ├── _extension.cpython-312.pyc
│   │           │   │   │   │   ├── _fileno.cpython-312.pyc
│   │           │   │   │   │   ├── _inspect.cpython-312.pyc
│   │           │   │   │   │   ├── _log_render.cpython-312.pyc
│   │           │   │   │   │   ├── _loop.cpython-312.pyc
│   │           │   │   │   │   ├── _null_file.cpython-312.pyc
│   │           │   │   │   │   ├── _palettes.cpython-312.pyc
│   │           │   │   │   │   ├── _pick.cpython-312.pyc
│   │           │   │   │   │   ├── _ratio.cpython-312.pyc
│   │           │   │   │   │   ├── _spinners.cpython-312.pyc
│   │           │   │   │   │   ├── _stack.cpython-312.pyc
│   │           │   │   │   │   ├── _timer.cpython-312.pyc
│   │           │   │   │   │   ├── _win32_console.cpython-312.pyc
│   │           │   │   │   │   ├── _windows_renderer.cpython-312.pyc
│   │           │   │   │   │   ├── _windows.cpython-312.pyc
│   │           │   │   │   │   ├── _wrap.cpython-312.pyc
│   │           │   │   │   │   ├── abc.cpython-312.pyc
│   │           │   │   │   │   ├── align.cpython-312.pyc
│   │           │   │   │   │   ├── ansi.cpython-312.pyc
│   │           │   │   │   │   ├── bar.cpython-312.pyc
│   │           │   │   │   │   ├── box.cpython-312.pyc
│   │           │   │   │   │   ├── cells.cpython-312.pyc
│   │           │   │   │   │   ├── color_triplet.cpython-312.pyc
│   │           │   │   │   │   ├── color.cpython-312.pyc
│   │           │   │   │   │   ├── columns.cpython-312.pyc
│   │           │   │   │   │   ├── console.cpython-312.pyc
│   │           │   │   │   │   ├── constrain.cpython-312.pyc
│   │           │   │   │   │   ├── containers.cpython-312.pyc
│   │           │   │   │   │   ├── control.cpython-312.pyc
│   │           │   │   │   │   ├── default_styles.cpython-312.pyc
│   │           │   │   │   │   ├── diagnose.cpython-312.pyc
│   │           │   │   │   │   ├── emoji.cpython-312.pyc
│   │           │   │   │   │   ├── errors.cpython-312.pyc
│   │           │   │   │   │   ├── file_proxy.cpython-312.pyc
│   │           │   │   │   │   ├── filesize.cpython-312.pyc
│   │           │   │   │   │   ├── highlighter.cpython-312.pyc
│   │           │   │   │   │   ├── json.cpython-312.pyc
│   │           │   │   │   │   ├── jupyter.cpython-312.pyc
│   │           │   │   │   │   ├── layout.cpython-312.pyc
│   │           │   │   │   │   ├── live_render.cpython-312.pyc
│   │           │   │   │   │   ├── live.cpython-312.pyc
│   │           │   │   │   │   ├── logging.cpython-312.pyc
│   │           │   │   │   │   ├── markup.cpython-312.pyc
│   │           │   │   │   │   ├── measure.cpython-312.pyc
│   │           │   │   │   │   ├── padding.cpython-312.pyc
│   │           │   │   │   │   ├── pager.cpython-312.pyc
│   │           │   │   │   │   ├── palette.cpython-312.pyc
│   │           │   │   │   │   ├── panel.cpython-312.pyc
│   │           │   │   │   │   ├── pretty.cpython-312.pyc
│   │           │   │   │   │   ├── progress_bar.cpython-312.pyc
│   │           │   │   │   │   ├── progress.cpython-312.pyc
│   │           │   │   │   │   ├── prompt.cpython-312.pyc
│   │           │   │   │   │   ├── protocol.cpython-312.pyc
│   │           │   │   │   │   ├── region.cpython-312.pyc
│   │           │   │   │   │   ├── repr.cpython-312.pyc
│   │           │   │   │   │   ├── rule.cpython-312.pyc
│   │           │   │   │   │   ├── scope.cpython-312.pyc
│   │           │   │   │   │   ├── screen.cpython-312.pyc
│   │           │   │   │   │   ├── segment.cpython-312.pyc
│   │           │   │   │   │   ├── spinner.cpython-312.pyc
│   │           │   │   │   │   ├── status.cpython-312.pyc
│   │           │   │   │   │   ├── style.cpython-312.pyc
│   │           │   │   │   │   ├── styled.cpython-312.pyc
│   │           │   │   │   │   ├── syntax.cpython-312.pyc
│   │           │   │   │   │   ├── table.cpython-312.pyc
│   │           │   │   │   │   ├── terminal_theme.cpython-312.pyc
│   │           │   │   │   │   ├── text.cpython-312.pyc
│   │           │   │   │   │   ├── theme.cpython-312.pyc
│   │           │   │   │   │   ├── themes.cpython-312.pyc
│   │           │   │   │   │   ├── traceback.cpython-312.pyc
│   │           │   │   │   │   └── tree.cpython-312.pyc
│   │           │   │   │   ├── _cell_widths.py
│   │           │   │   │   ├── _emoji_codes.py
│   │           │   │   │   ├── _emoji_replace.py
│   │           │   │   │   ├── _export_format.py
│   │           │   │   │   ├── _extension.py
│   │           │   │   │   ├── _fileno.py
│   │           │   │   │   ├── _inspect.py
│   │           │   │   │   ├── _log_render.py
│   │           │   │   │   ├── _loop.py
│   │           │   │   │   ├── _null_file.py
│   │           │   │   │   ├── _palettes.py
│   │           │   │   │   ├── _pick.py
│   │           │   │   │   ├── _ratio.py
│   │           │   │   │   ├── _spinners.py
│   │           │   │   │   ├── _stack.py
│   │           │   │   │   ├── _timer.py
│   │           │   │   │   ├── _win32_console.py
│   │           │   │   │   ├── _windows_renderer.py
│   │           │   │   │   ├── _windows.py
│   │           │   │   │   ├── _wrap.py
│   │           │   │   │   ├── abc.py
│   │           │   │   │   ├── align.py
│   │           │   │   │   ├── ansi.py
│   │           │   │   │   ├── bar.py
│   │           │   │   │   ├── box.py
│   │           │   │   │   ├── cells.py
│   │           │   │   │   ├── color_triplet.py
│   │           │   │   │   ├── color.py
│   │           │   │   │   ├── columns.py
│   │           │   │   │   ├── console.py
│   │           │   │   │   ├── constrain.py
│   │           │   │   │   ├── containers.py
│   │           │   │   │   ├── control.py
│   │           │   │   │   ├── default_styles.py
│   │           │   │   │   ├── diagnose.py
│   │           │   │   │   ├── emoji.py
│   │           │   │   │   ├── errors.py
│   │           │   │   │   ├── file_proxy.py
│   │           │   │   │   ├── filesize.py
│   │           │   │   │   ├── highlighter.py
│   │           │   │   │   ├── json.py
│   │           │   │   │   ├── jupyter.py
│   │           │   │   │   ├── layout.py
│   │           │   │   │   ├── live_render.py
│   │           │   │   │   ├── live.py
│   │           │   │   │   ├── logging.py
│   │           │   │   │   ├── markup.py
│   │           │   │   │   ├── measure.py
│   │           │   │   │   ├── padding.py
│   │           │   │   │   ├── pager.py
│   │           │   │   │   ├── palette.py
│   │           │   │   │   ├── panel.py
│   │           │   │   │   ├── pretty.py
│   │           │   │   │   ├── progress_bar.py
│   │           │   │   │   ├── progress.py
│   │           │   │   │   ├── prompt.py
│   │           │   │   │   ├── protocol.py
│   │           │   │   │   ├── py.typed
│   │           │   │   │   ├── region.py
│   │           │   │   │   ├── repr.py
│   │           │   │   │   ├── rule.py
│   │           │   │   │   ├── scope.py
│   │           │   │   │   ├── screen.py
│   │           │   │   │   ├── segment.py
│   │           │   │   │   ├── spinner.py
│   │           │   │   │   ├── status.py
│   │           │   │   │   ├── style.py
│   │           │   │   │   ├── styled.py
│   │           │   │   │   ├── syntax.py
│   │           │   │   │   ├── table.py
│   │           │   │   │   ├── terminal_theme.py
│   │           │   │   │   ├── text.py
│   │           │   │   │   ├── theme.py
│   │           │   │   │   ├── themes.py
│   │           │   │   │   ├── traceback.py
│   │           │   │   │   └── tree.py
│   │           │   │   ├── tomli
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _parser.cpython-312.pyc
│   │           │   │   │   │   ├── _re.cpython-312.pyc
│   │           │   │   │   │   └── _types.cpython-312.pyc
│   │           │   │   │   ├── _parser.py
│   │           │   │   │   ├── _re.py
│   │           │   │   │   ├── _types.py
│   │           │   │   │   └── py.typed
│   │           │   │   ├── truststore
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _api.cpython-312.pyc
│   │           │   │   │   │   ├── _macos.cpython-312.pyc
│   │           │   │   │   │   ├── _openssl.cpython-312.pyc
│   │           │   │   │   │   ├── _ssl_constants.cpython-312.pyc
│   │           │   │   │   │   └── _windows.cpython-312.pyc
│   │           │   │   │   ├── _api.py
│   │           │   │   │   ├── _macos.py
│   │           │   │   │   ├── _openssl.py
│   │           │   │   │   ├── _ssl_constants.py
│   │           │   │   │   ├── _windows.py
│   │           │   │   │   └── py.typed
│   │           │   │   ├── typing_extensions.py
│   │           │   │   ├── urllib3
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── _collections.cpython-312.pyc
│   │           │   │   │   │   ├── _version.cpython-312.pyc
│   │           │   │   │   │   ├── connection.cpython-312.pyc
│   │           │   │   │   │   ├── connectionpool.cpython-312.pyc
│   │           │   │   │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   │   │   ├── fields.cpython-312.pyc
│   │           │   │   │   │   ├── filepost.cpython-312.pyc
│   │           │   │   │   │   ├── poolmanager.cpython-312.pyc
│   │           │   │   │   │   ├── request.cpython-312.pyc
│   │           │   │   │   │   └── response.cpython-312.pyc
│   │           │   │   │   ├── _collections.py
│   │           │   │   │   ├── _version.py
│   │           │   │   │   ├── connection.py
│   │           │   │   │   ├── connectionpool.py
│   │           │   │   │   ├── contrib
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   ├── _appengine_environ.cpython-312.pyc
│   │           │   │   │   │   │   ├── appengine.cpython-312.pyc
│   │           │   │   │   │   │   ├── ntlmpool.cpython-312.pyc
│   │           │   │   │   │   │   ├── pyopenssl.cpython-312.pyc
│   │           │   │   │   │   │   ├── securetransport.cpython-312.pyc
│   │           │   │   │   │   │   └── socks.cpython-312.pyc
│   │           │   │   │   │   ├── _appengine_environ.py
│   │           │   │   │   │   ├── _securetransport
│   │           │   │   │   │   │   ├── __init__.py
│   │           │   │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   │   ├── bindings.cpython-312.pyc
│   │           │   │   │   │   │   │   └── low_level.cpython-312.pyc
│   │           │   │   │   │   │   ├── bindings.py
│   │           │   │   │   │   │   └── low_level.py
│   │           │   │   │   │   ├── appengine.py
│   │           │   │   │   │   ├── ntlmpool.py
│   │           │   │   │   │   ├── pyopenssl.py
│   │           │   │   │   │   ├── securetransport.py
│   │           │   │   │   │   └── socks.py
│   │           │   │   │   ├── exceptions.py
│   │           │   │   │   ├── fields.py
│   │           │   │   │   ├── filepost.py
│   │           │   │   │   ├── packages
│   │           │   │   │   │   ├── __init__.py
│   │           │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   └── six.cpython-312.pyc
│   │           │   │   │   │   ├── backports
│   │           │   │   │   │   │   ├── __init__.py
│   │           │   │   │   │   │   ├── __pycache__
│   │           │   │   │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   │   │   ├── makefile.cpython-312.pyc
│   │           │   │   │   │   │   │   └── weakref_finalize.cpython-312.pyc
│   │           │   │   │   │   │   ├── makefile.py
│   │           │   │   │   │   │   └── weakref_finalize.py
│   │           │   │   │   │   └── six.py
│   │           │   │   │   ├── poolmanager.py
│   │           │   │   │   ├── request.py
│   │           │   │   │   ├── response.py
│   │           │   │   │   └── util
│   │           │   │   │       ├── __init__.py
│   │           │   │   │       ├── __pycache__
│   │           │   │   │       │   ├── __init__.cpython-312.pyc
│   │           │   │   │       │   ├── connection.cpython-312.pyc
│   │           │   │   │       │   ├── proxy.cpython-312.pyc
│   │           │   │   │       │   ├── queue.cpython-312.pyc
│   │           │   │   │       │   ├── request.cpython-312.pyc
│   │           │   │   │       │   ├── response.cpython-312.pyc
│   │           │   │   │       │   ├── retry.cpython-312.pyc
│   │           │   │   │       │   ├── ssl_.cpython-312.pyc
│   │           │   │   │       │   ├── ssl_match_hostname.cpython-312.pyc
│   │           │   │   │       │   ├── ssltransport.cpython-312.pyc
│   │           │   │   │       │   ├── timeout.cpython-312.pyc
│   │           │   │   │       │   ├── url.cpython-312.pyc
│   │           │   │   │       │   └── wait.cpython-312.pyc
│   │           │   │   │       ├── connection.py
│   │           │   │   │       ├── proxy.py
│   │           │   │   │       ├── queue.py
│   │           │   │   │       ├── request.py
│   │           │   │   │       ├── response.py
│   │           │   │   │       ├── retry.py
│   │           │   │   │       ├── ssl_.py
│   │           │   │   │       ├── ssl_match_hostname.py
│   │           │   │   │       ├── ssltransport.py
│   │           │   │   │       ├── timeout.py
│   │           │   │   │       ├── url.py
│   │           │   │   │       └── wait.py
│   │           │   │   └── vendor.txt
│   │           │   └── py.typed
│   │           ├── pip-24.2.dist-info
│   │           │   ├── AUTHORS.txt
│   │           │   ├── entry_points.txt
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── requests
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __version__.cpython-312.pyc
│   │           │   │   ├── _internal_utils.cpython-312.pyc
│   │           │   │   ├── adapters.cpython-312.pyc
│   │           │   │   ├── api.cpython-312.pyc
│   │           │   │   ├── auth.cpython-312.pyc
│   │           │   │   ├── certs.cpython-312.pyc
│   │           │   │   ├── compat.cpython-312.pyc
│   │           │   │   ├── cookies.cpython-312.pyc
│   │           │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   ├── help.cpython-312.pyc
│   │           │   │   ├── hooks.cpython-312.pyc
│   │           │   │   ├── models.cpython-312.pyc
│   │           │   │   ├── packages.cpython-312.pyc
│   │           │   │   ├── sessions.cpython-312.pyc
│   │           │   │   ├── status_codes.cpython-312.pyc
│   │           │   │   ├── structures.cpython-312.pyc
│   │           │   │   └── utils.cpython-312.pyc
│   │           │   ├── __version__.py
│   │           │   ├── _internal_utils.py
│   │           │   ├── adapters.py
│   │           │   ├── api.py
│   │           │   ├── auth.py
│   │           │   ├── certs.py
│   │           │   ├── compat.py
│   │           │   ├── cookies.py
│   │           │   ├── exceptions.py
│   │           │   ├── help.py
│   │           │   ├── hooks.py
│   │           │   ├── models.py
│   │           │   ├── packages.py
│   │           │   ├── sessions.py
│   │           │   ├── status_codes.py
│   │           │   ├── structures.py
│   │           │   └── utils.py
│   │           ├── requests-2.32.3.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── soupsieve
│   │           │   ├── __init__.py
│   │           │   ├── __meta__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── __meta__.cpython-312.pyc
│   │           │   │   ├── css_match.cpython-312.pyc
│   │           │   │   ├── css_parser.cpython-312.pyc
│   │           │   │   ├── css_types.cpython-312.pyc
│   │           │   │   ├── pretty.cpython-312.pyc
│   │           │   │   └── util.cpython-312.pyc
│   │           │   ├── css_match.py
│   │           │   ├── css_parser.py
│   │           │   ├── css_types.py
│   │           │   ├── pretty.py
│   │           │   ├── py.typed
│   │           │   └── util.py
│   │           ├── soupsieve-2.6.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── licenses
│   │           │   │   └── LICENSE.md
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── urllib3
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _base_connection.cpython-312.pyc
│   │           │   │   ├── _collections.cpython-312.pyc
│   │           │   │   ├── _request_methods.cpython-312.pyc
│   │           │   │   ├── _version.cpython-312.pyc
│   │           │   │   ├── connection.cpython-312.pyc
│   │           │   │   ├── connectionpool.cpython-312.pyc
│   │           │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   ├── fields.cpython-312.pyc
│   │           │   │   ├── filepost.cpython-312.pyc
│   │           │   │   ├── poolmanager.cpython-312.pyc
│   │           │   │   └── response.cpython-312.pyc
│   │           │   ├── _base_connection.py
│   │           │   ├── _collections.py
│   │           │   ├── _request_methods.py
│   │           │   ├── _version.py
│   │           │   ├── connection.py
│   │           │   ├── connectionpool.py
│   │           │   ├── contrib
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── pyopenssl.cpython-312.pyc
│   │           │   │   │   └── socks.cpython-312.pyc
│   │           │   │   ├── emscripten
│   │           │   │   │   ├── __init__.py
│   │           │   │   │   ├── __pycache__
│   │           │   │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   │   ├── connection.cpython-312.pyc
│   │           │   │   │   │   ├── fetch.cpython-312.pyc
│   │           │   │   │   │   ├── request.cpython-312.pyc
│   │           │   │   │   │   └── response.cpython-312.pyc
│   │           │   │   │   ├── connection.py
│   │           │   │   │   ├── emscripten_fetch_worker.js
│   │           │   │   │   ├── fetch.py
│   │           │   │   │   ├── request.py
│   │           │   │   │   └── response.py
│   │           │   │   ├── pyopenssl.py
│   │           │   │   └── socks.py
│   │           │   ├── exceptions.py
│   │           │   ├── fields.py
│   │           │   ├── filepost.py
│   │           │   ├── http2
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── connection.cpython-312.pyc
│   │           │   │   │   └── probe.cpython-312.pyc
│   │           │   │   ├── connection.py
│   │           │   │   └── probe.py
│   │           │   ├── poolmanager.py
│   │           │   ├── py.typed
│   │           │   ├── response.py
│   │           │   └── util
│   │           │       ├── __init__.py
│   │           │       ├── __pycache__
│   │           │       │   ├── __init__.cpython-312.pyc
│   │           │       │   ├── connection.cpython-312.pyc
│   │           │       │   ├── proxy.cpython-312.pyc
│   │           │       │   ├── request.cpython-312.pyc
│   │           │       │   ├── response.cpython-312.pyc
│   │           │       │   ├── retry.cpython-312.pyc
│   │           │       │   ├── ssl_.cpython-312.pyc
│   │           │       │   ├── ssl_match_hostname.cpython-312.pyc
│   │           │       │   ├── ssltransport.cpython-312.pyc
│   │           │       │   ├── timeout.cpython-312.pyc
│   │           │       │   ├── url.cpython-312.pyc
│   │           │       │   ├── util.cpython-312.pyc
│   │           │       │   └── wait.cpython-312.pyc
│   │           │       ├── connection.py
│   │           │       ├── proxy.py
│   │           │       ├── request.py
│   │           │       ├── response.py
│   │           │       ├── retry.py
│   │           │       ├── ssl_.py
│   │           │       ├── ssl_match_hostname.py
│   │           │       ├── ssltransport.py
│   │           │       ├── timeout.py
│   │           │       ├── url.py
│   │           │       ├── util.py
│   │           │       └── wait.py
│   │           ├── urllib3-2.2.3.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── licenses
│   │           │   │   └── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   └── WHEEL
│   │           ├── useragent
│   │           │   ├── __init__.py
│   │           │   ├── __init__.pyc
│   │           │   ├── __pycache__
│   │           │   │   └── __init__.cpython-312.pyc
│   │           │   ├── resources
│   │           │   │   └── user_agent_data.json
│   │           │   └── test
│   │           │       ├── __init__.py
│   │           │       ├── __pycache__
│   │           │       │   └── __init__.cpython-312.pyc
│   │           │       ├── test_additional_os.json
│   │           │       ├── test_browser.json
│   │           │       ├── test_device.json
│   │           │       ├── test_firefox.json
│   │           │       ├── test_os.json
│   │           │       └── test_pgts_browser.json
│   │           ├── useragent-0.1.1.dist-info
│   │           │   ├── INSTALLER
│   │           │   ├── LICENSE.txt
│   │           │   ├── METADATA
│   │           │   ├── RECORD
│   │           │   ├── REQUESTED
│   │           │   ├── top_level.txt
│   │           │   └── WHEEL
│   │           ├── werkzeug
│   │           │   ├── __init__.py
│   │           │   ├── __pycache__
│   │           │   │   ├── __init__.cpython-312.pyc
│   │           │   │   ├── _internal.cpython-312.pyc
│   │           │   │   ├── _reloader.cpython-312.pyc
│   │           │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   ├── formparser.cpython-312.pyc
│   │           │   │   ├── http.cpython-312.pyc
│   │           │   │   ├── local.cpython-312.pyc
│   │           │   │   ├── security.cpython-312.pyc
│   │           │   │   ├── serving.cpython-312.pyc
│   │           │   │   ├── test.cpython-312.pyc
│   │           │   │   ├── testapp.cpython-312.pyc
│   │           │   │   ├── urls.cpython-312.pyc
│   │           │   │   ├── user_agent.cpython-312.pyc
│   │           │   │   ├── utils.cpython-312.pyc
│   │           │   │   └── wsgi.cpython-312.pyc
│   │           │   ├── _internal.py
│   │           │   ├── _reloader.py
│   │           │   ├── datastructures
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── accept.cpython-312.pyc
│   │           │   │   │   ├── auth.cpython-312.pyc
│   │           │   │   │   ├── cache_control.cpython-312.pyc
│   │           │   │   │   ├── csp.cpython-312.pyc
│   │           │   │   │   ├── etag.cpython-312.pyc
│   │           │   │   │   ├── file_storage.cpython-312.pyc
│   │           │   │   │   ├── headers.cpython-312.pyc
│   │           │   │   │   ├── mixins.cpython-312.pyc
│   │           │   │   │   ├── range.cpython-312.pyc
│   │           │   │   │   └── structures.cpython-312.pyc
│   │           │   │   ├── accept.py
│   │           │   │   ├── accept.pyi
│   │           │   │   ├── auth.py
│   │           │   │   ├── cache_control.py
│   │           │   │   ├── cache_control.pyi
│   │           │   │   ├── csp.py
│   │           │   │   ├── csp.pyi
│   │           │   │   ├── etag.py
│   │           │   │   ├── etag.pyi
│   │           │   │   ├── file_storage.py
│   │           │   │   ├── file_storage.pyi
│   │           │   │   ├── headers.py
│   │           │   │   ├── headers.pyi
│   │           │   │   ├── mixins.py
│   │           │   │   ├── mixins.pyi
│   │           │   │   ├── range.py
│   │           │   │   ├── range.pyi
│   │           │   │   ├── structures.py
│   │           │   │   └── structures.pyi
│   │           │   ├── debug
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── console.cpython-312.pyc
│   │           │   │   │   ├── repr.cpython-312.pyc
│   │           │   │   │   └── tbtools.cpython-312.pyc
│   │           │   │   ├── console.py
│   │           │   │   ├── repr.py
│   │           │   │   ├── shared
│   │           │   │   │   ├── console.png
│   │           │   │   │   ├── debugger.js
│   │           │   │   │   ├── ICON_LICENSE.md
│   │           │   │   │   ├── less.png
│   │           │   │   │   ├── more.png
│   │           │   │   │   └── style.css
│   │           │   │   └── tbtools.py
│   │           │   ├── exceptions.py
│   │           │   ├── formparser.py
│   │           │   ├── http.py
│   │           │   ├── local.py
│   │           │   ├── middleware
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── dispatcher.cpython-312.pyc
│   │           │   │   │   ├── http_proxy.cpython-312.pyc
│   │           │   │   │   ├── lint.cpython-312.pyc
│   │           │   │   │   ├── profiler.cpython-312.pyc
│   │           │   │   │   ├── proxy_fix.cpython-312.pyc
│   │           │   │   │   └── shared_data.cpython-312.pyc
│   │           │   │   ├── dispatcher.py
│   │           │   │   ├── http_proxy.py
│   │           │   │   ├── lint.py
│   │           │   │   ├── profiler.py
│   │           │   │   ├── proxy_fix.py
│   │           │   │   └── shared_data.py
│   │           │   ├── py.typed
│   │           │   ├── routing
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── converters.cpython-312.pyc
│   │           │   │   │   ├── exceptions.cpython-312.pyc
│   │           │   │   │   ├── map.cpython-312.pyc
│   │           │   │   │   ├── matcher.cpython-312.pyc
│   │           │   │   │   └── rules.cpython-312.pyc
│   │           │   │   ├── converters.py
│   │           │   │   ├── exceptions.py
│   │           │   │   ├── map.py
│   │           │   │   ├── matcher.py
│   │           │   │   └── rules.py
│   │           │   ├── sansio
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── http.cpython-312.pyc
│   │           │   │   │   ├── multipart.cpython-312.pyc
│   │           │   │   │   ├── request.cpython-312.pyc
│   │           │   │   │   ├── response.cpython-312.pyc
│   │           │   │   │   └── utils.cpython-312.pyc
│   │           │   │   ├── http.py
│   │           │   │   ├── multipart.py
│   │           │   │   ├── request.py
│   │           │   │   ├── response.py
│   │           │   │   └── utils.py
│   │           │   ├── security.py
│   │           │   ├── serving.py
│   │           │   ├── test.py
│   │           │   ├── testapp.py
│   │           │   ├── urls.py
│   │           │   ├── user_agent.py
│   │           │   ├── utils.py
│   │           │   ├── wrappers
│   │           │   │   ├── __init__.py
│   │           │   │   ├── __pycache__
│   │           │   │   │   ├── __init__.cpython-312.pyc
│   │           │   │   │   ├── request.cpython-312.pyc
│   │           │   │   │   └── response.cpython-312.pyc
│   │           │   │   ├── request.py
│   │           │   │   └── response.py
│   │           │   └── wsgi.py
│   │           └── werkzeug-3.0.4.dist-info
│   │               ├── INSTALLER
│   │               ├── LICENSE.txt
│   │               ├── METADATA
│   │               ├── RECORD
│   │               └── WHEEL
│   ├── pyvenv.cfg
│   ├── static
│   │   └── styles.css
│   ├── templates
│   │   └── index.html
│   └── test.py
├── cline_config.json
├── mcp_server.py
├── README.md
├── search_results.json
├── settings.json
└── test_files
    ├── text1.txt
    └── text2.txt
```

# Files

--------------------------------------------------------------------------------
/test_files/text2.txt:
--------------------------------------------------------------------------------

```
 1 | Aliquip nostrud fugiat nostrud laborum commodo sunt in eu ea veniam. Ipsum aliqua minim nulla sunt fugiat id. Veniam id do elit eu incididunt ullamco. Elit sint adipisicing proident labore consequat. Laboris adipisicing do ipsum id tempor non eiusmod adipisicing occaecat deserunt irure nostrud non. Ad excepteur do in aliqua eiusmod laboris exercitation mollit exercitation. Excepteur consequat reprehenderit cupidatat consequat sit culpa pariatur minim anim et dolor.
 2 | 
 3 | Deserunt culpa dolore mollit fugiat velit aute non sint. Nulla amet ea deserunt consequat et eiusmod magna irure labore. Qui amet fugiat labore et nisi sit fugiat dolor.
 4 | 
 5 | Pariatur velit ea laborum adipisicing ad labore enim deserunt id fugiat laboris amet fugiat. Mollit ex quis cupidatat et ut aute laborum anim esse voluptate. Proident voluptate minim aute qui eiusmod nostrud do elit cupidatat consequat voluptate fugiat adipisicing veniam. Nulla qui non dolore incididunt commodo. Incididunt sit mollit laborum voluptate. Enim aute incididunt adipisicing magna. Duis nisi culpa dolore sunt in dolor consectetur.
 6 | 
 7 | Sit pariatur reprehenderit aliqua esse pariatur ea non ut sunt minim aliquip. Ex magna ex ut duis in labore enim. Minim magna exercitation ex laborum ea esse eu sit ipsum. Deserunt Lorem reprehenderit occaecat pariatur dolore aute aliqua sint consequat proident adipisicing commodo.
 8 | 
 9 | Eu mollit reprehenderit cillum cupidatat excepteur magna. Labore laboris incididunt amet amet sint enim enim proident quis proident consectetur aute. Anim ea pariatur tempor fugiat proident.
10 | 
11 | Eu eu ad duis cupidatat. Sunt Lorem commodo deserunt enim exercitation anim nostrud aute nisi ad reprehenderit excepteur. Mollit mollit culpa anim magna in deserunt proident voluptate consectetur officia ullamco ex dolore mollit. Nisi ea magna officia tempor ad fugiat do ipsum fugiat amet sunt ea. Enim amet dolor aliquip incididunt et in. Excepteur commodo quis non mollit non reprehenderit incididunt nostrud. Tempor nostrud amet proident in ad ut mollit occaecat quis officia ullamco deserunt dolor ut.
12 | 
13 | Mollit est reprehenderit excepteur consectetur. Ex voluptate qui ullamco ea. Do magna ea laborum id aliquip labore et nulla magna aute amet qui Lorem tempor. Officia sunt qui dolore cillum do ea amet do ad ullamco sit labore irure. Esse minim cupidatat do commodo est culpa voluptate. Deserunt minim aliqua amet cillum cupidatat est. Veniam esse labore labore consequat voluptate ipsum Lorem cillum deserunt adipisicing do quis magna.
14 | 
15 | Tempor anim labore cupidatat laboris qui sint in eiusmod velit pariatur tempor duis pariatur magna. Non culpa minim laborum pariatur pariatur et sunt velit dolore consectetur deserunt sit sint. Duis enim anim laborum proident ut amet.
16 | 
17 | Id mollit et eiusmod ut veniam culpa commodo mollit proident voluptate consequat magna labore. Ea magna laboris aute incididunt cillum magna. Dolor incididunt pariatur excepteur ullamco proident consectetur sunt aliqua.
18 | 
19 | Culpa pariatur quis occaecat Lorem nisi deserunt velit commodo aliqua ullamco laborum do. Adipisicing quis duis excepteur officia ea proident aliquip. Do in aliqua do deserunt. Ex aliquip laboris non do cillum irure excepteur est commodo ea. Laboris sunt laborum exercitation et fugiat laborum in mollit est incididunt qui duis quis consectetur. Enim sunt consectetur est sit ullamco aliquip ullamco sint laborum ad nulla.
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/rich/palette.py:
--------------------------------------------------------------------------------

```python
  1 | from math import sqrt
  2 | from functools import lru_cache
  3 | from typing import Sequence, Tuple, TYPE_CHECKING
  4 | 
  5 | from .color_triplet import ColorTriplet
  6 | 
  7 | if TYPE_CHECKING:
  8 |     from pip._vendor.rich.table import Table
  9 | 
 10 | 
 11 | class Palette:
 12 |     """A palette of available colors."""
 13 | 
 14 |     def __init__(self, colors: Sequence[Tuple[int, int, int]]):
 15 |         self._colors = colors
 16 | 
 17 |     def __getitem__(self, number: int) -> ColorTriplet:
 18 |         return ColorTriplet(*self._colors[number])
 19 | 
 20 |     def __rich__(self) -> "Table":
 21 |         from pip._vendor.rich.color import Color
 22 |         from pip._vendor.rich.style import Style
 23 |         from pip._vendor.rich.text import Text
 24 |         from pip._vendor.rich.table import Table
 25 | 
 26 |         table = Table(
 27 |             "index",
 28 |             "RGB",
 29 |             "Color",
 30 |             title="Palette",
 31 |             caption=f"{len(self._colors)} colors",
 32 |             highlight=True,
 33 |             caption_justify="right",
 34 |         )
 35 |         for index, color in enumerate(self._colors):
 36 |             table.add_row(
 37 |                 str(index),
 38 |                 repr(color),
 39 |                 Text(" " * 16, style=Style(bgcolor=Color.from_rgb(*color))),
 40 |             )
 41 |         return table
 42 | 
 43 |     # This is somewhat inefficient and needs caching
 44 |     @lru_cache(maxsize=1024)
 45 |     def match(self, color: Tuple[int, int, int]) -> int:
 46 |         """Find a color from a palette that most closely matches a given color.
 47 | 
 48 |         Args:
 49 |             color (Tuple[int, int, int]): RGB components in range 0 > 255.
 50 | 
 51 |         Returns:
 52 |             int: Index of closes matching color.
 53 |         """
 54 |         red1, green1, blue1 = color
 55 |         _sqrt = sqrt
 56 |         get_color = self._colors.__getitem__
 57 | 
 58 |         def get_color_distance(index: int) -> float:
 59 |             """Get the distance to a color."""
 60 |             red2, green2, blue2 = get_color(index)
 61 |             red_mean = (red1 + red2) // 2
 62 |             red = red1 - red2
 63 |             green = green1 - green2
 64 |             blue = blue1 - blue2
 65 |             return _sqrt(
 66 |                 (((512 + red_mean) * red * red) >> 8)
 67 |                 + 4 * green * green
 68 |                 + (((767 - red_mean) * blue * blue) >> 8)
 69 |             )
 70 | 
 71 |         min_index = min(range(len(self._colors)), key=get_color_distance)
 72 |         return min_index
 73 | 
 74 | 
 75 | if __name__ == "__main__":  # pragma: no cover
 76 |     import colorsys
 77 |     from typing import Iterable
 78 |     from pip._vendor.rich.color import Color
 79 |     from pip._vendor.rich.console import Console, ConsoleOptions
 80 |     from pip._vendor.rich.segment import Segment
 81 |     from pip._vendor.rich.style import Style
 82 | 
 83 |     class ColorBox:
 84 |         def __rich_console__(
 85 |             self, console: Console, options: ConsoleOptions
 86 |         ) -> Iterable[Segment]:
 87 |             height = console.size.height - 3
 88 |             for y in range(0, height):
 89 |                 for x in range(options.max_width):
 90 |                     h = x / options.max_width
 91 |                     l = y / (height + 1)
 92 |                     r1, g1, b1 = colorsys.hls_to_rgb(h, l, 1.0)
 93 |                     r2, g2, b2 = colorsys.hls_to_rgb(h, l + (1 / height / 2), 1.0)
 94 |                     bgcolor = Color.from_rgb(r1 * 255, g1 * 255, b1 * 255)
 95 |                     color = Color.from_rgb(r2 * 255, g2 * 255, b2 * 255)
 96 |                     yield Segment("▄", Style(color=color, bgcolor=bgcolor))
 97 |                 yield Segment.line()
 98 | 
 99 |     console = Console()
100 |     console.print(ColorBox())
101 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/idna/codec.py:
--------------------------------------------------------------------------------

```python
  1 | import codecs
  2 | import re
  3 | from typing import Any, Optional, Tuple
  4 | 
  5 | from .core import IDNAError, alabel, decode, encode, ulabel
  6 | 
  7 | _unicode_dots_re = re.compile("[\u002e\u3002\uff0e\uff61]")
  8 | 
  9 | 
 10 | class Codec(codecs.Codec):
 11 |     def encode(self, data: str, errors: str = "strict") -> Tuple[bytes, int]:
 12 |         if errors != "strict":
 13 |             raise IDNAError('Unsupported error handling "{}"'.format(errors))
 14 | 
 15 |         if not data:
 16 |             return b"", 0
 17 | 
 18 |         return encode(data), len(data)
 19 | 
 20 |     def decode(self, data: bytes, errors: str = "strict") -> Tuple[str, int]:
 21 |         if errors != "strict":
 22 |             raise IDNAError('Unsupported error handling "{}"'.format(errors))
 23 | 
 24 |         if not data:
 25 |             return "", 0
 26 | 
 27 |         return decode(data), len(data)
 28 | 
 29 | 
 30 | class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
 31 |     def _buffer_encode(self, data: str, errors: str, final: bool) -> Tuple[bytes, int]:
 32 |         if errors != "strict":
 33 |             raise IDNAError('Unsupported error handling "{}"'.format(errors))
 34 | 
 35 |         if not data:
 36 |             return b"", 0
 37 | 
 38 |         labels = _unicode_dots_re.split(data)
 39 |         trailing_dot = b""
 40 |         if labels:
 41 |             if not labels[-1]:
 42 |                 trailing_dot = b"."
 43 |                 del labels[-1]
 44 |             elif not final:
 45 |                 # Keep potentially unfinished label until the next call
 46 |                 del labels[-1]
 47 |                 if labels:
 48 |                     trailing_dot = b"."
 49 | 
 50 |         result = []
 51 |         size = 0
 52 |         for label in labels:
 53 |             result.append(alabel(label))
 54 |             if size:
 55 |                 size += 1
 56 |             size += len(label)
 57 | 
 58 |         # Join with U+002E
 59 |         result_bytes = b".".join(result) + trailing_dot
 60 |         size += len(trailing_dot)
 61 |         return result_bytes, size
 62 | 
 63 | 
 64 | class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
 65 |     def _buffer_decode(self, data: Any, errors: str, final: bool) -> Tuple[str, int]:
 66 |         if errors != "strict":
 67 |             raise IDNAError('Unsupported error handling "{}"'.format(errors))
 68 | 
 69 |         if not data:
 70 |             return ("", 0)
 71 | 
 72 |         if not isinstance(data, str):
 73 |             data = str(data, "ascii")
 74 | 
 75 |         labels = _unicode_dots_re.split(data)
 76 |         trailing_dot = ""
 77 |         if labels:
 78 |             if not labels[-1]:
 79 |                 trailing_dot = "."
 80 |                 del labels[-1]
 81 |             elif not final:
 82 |                 # Keep potentially unfinished label until the next call
 83 |                 del labels[-1]
 84 |                 if labels:
 85 |                     trailing_dot = "."
 86 | 
 87 |         result = []
 88 |         size = 0
 89 |         for label in labels:
 90 |             result.append(ulabel(label))
 91 |             if size:
 92 |                 size += 1
 93 |             size += len(label)
 94 | 
 95 |         result_str = ".".join(result) + trailing_dot
 96 |         size += len(trailing_dot)
 97 |         return (result_str, size)
 98 | 
 99 | 
100 | class StreamWriter(Codec, codecs.StreamWriter):
101 |     pass
102 | 
103 | 
104 | class StreamReader(Codec, codecs.StreamReader):
105 |     pass
106 | 
107 | 
108 | def search_function(name: str) -> Optional[codecs.CodecInfo]:
109 |     if name != "idna2008":
110 |         return None
111 |     return codecs.CodecInfo(
112 |         name=name,
113 |         encode=Codec().encode,
114 |         decode=Codec().decode,
115 |         incrementalencoder=IncrementalEncoder,
116 |         incrementaldecoder=IncrementalDecoder,
117 |         streamwriter=StreamWriter,
118 |         streamreader=StreamReader,
119 |     )
120 | 
121 | 
122 | codecs.register(search_function)
123 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/idna/codec.py:
--------------------------------------------------------------------------------

```python
  1 | from .core import encode, decode, alabel, ulabel, IDNAError
  2 | import codecs
  3 | import re
  4 | from typing import Any, Tuple, Optional
  5 | 
  6 | _unicode_dots_re = re.compile('[\u002e\u3002\uff0e\uff61]')
  7 | 
  8 | class Codec(codecs.Codec):
  9 | 
 10 |     def encode(self, data: str, errors: str = 'strict') -> Tuple[bytes, int]:
 11 |         if errors != 'strict':
 12 |             raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
 13 | 
 14 |         if not data:
 15 |             return b"", 0
 16 | 
 17 |         return encode(data), len(data)
 18 | 
 19 |     def decode(self, data: bytes, errors: str = 'strict') -> Tuple[str, int]:
 20 |         if errors != 'strict':
 21 |             raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
 22 | 
 23 |         if not data:
 24 |             return '', 0
 25 | 
 26 |         return decode(data), len(data)
 27 | 
 28 | class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
 29 |     def _buffer_encode(self, data: str, errors: str, final: bool) -> Tuple[bytes, int]:
 30 |         if errors != 'strict':
 31 |             raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
 32 | 
 33 |         if not data:
 34 |             return b'', 0
 35 | 
 36 |         labels = _unicode_dots_re.split(data)
 37 |         trailing_dot = b''
 38 |         if labels:
 39 |             if not labels[-1]:
 40 |                 trailing_dot = b'.'
 41 |                 del labels[-1]
 42 |             elif not final:
 43 |                 # Keep potentially unfinished label until the next call
 44 |                 del labels[-1]
 45 |                 if labels:
 46 |                     trailing_dot = b'.'
 47 | 
 48 |         result = []
 49 |         size = 0
 50 |         for label in labels:
 51 |             result.append(alabel(label))
 52 |             if size:
 53 |                 size += 1
 54 |             size += len(label)
 55 | 
 56 |         # Join with U+002E
 57 |         result_bytes = b'.'.join(result) + trailing_dot
 58 |         size += len(trailing_dot)
 59 |         return result_bytes, size
 60 | 
 61 | class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
 62 |     def _buffer_decode(self, data: Any, errors: str, final: bool) -> Tuple[str, int]:
 63 |         if errors != 'strict':
 64 |             raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
 65 | 
 66 |         if not data:
 67 |             return ('', 0)
 68 | 
 69 |         if not isinstance(data, str):
 70 |             data = str(data, 'ascii')
 71 | 
 72 |         labels = _unicode_dots_re.split(data)
 73 |         trailing_dot = ''
 74 |         if labels:
 75 |             if not labels[-1]:
 76 |                 trailing_dot = '.'
 77 |                 del labels[-1]
 78 |             elif not final:
 79 |                 # Keep potentially unfinished label until the next call
 80 |                 del labels[-1]
 81 |                 if labels:
 82 |                     trailing_dot = '.'
 83 | 
 84 |         result = []
 85 |         size = 0
 86 |         for label in labels:
 87 |             result.append(ulabel(label))
 88 |             if size:
 89 |                 size += 1
 90 |             size += len(label)
 91 | 
 92 |         result_str = '.'.join(result) + trailing_dot
 93 |         size += len(trailing_dot)
 94 |         return (result_str, size)
 95 | 
 96 | 
 97 | class StreamWriter(Codec, codecs.StreamWriter):
 98 |     pass
 99 | 
100 | 
101 | class StreamReader(Codec, codecs.StreamReader):
102 |     pass
103 | 
104 | 
105 | def search_function(name: str) -> Optional[codecs.CodecInfo]:
106 |     if name != 'idna2008':
107 |         return None
108 |     return codecs.CodecInfo(
109 |         name=name,
110 |         encode=Codec().encode,
111 |         decode=Codec().decode,
112 |         incrementalencoder=IncrementalEncoder,
113 |         incrementaldecoder=IncrementalDecoder,
114 |         streamwriter=StreamWriter,
115 |         streamreader=StreamReader,
116 |     )
117 | 
118 | codecs.register(search_function)
119 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/utils/virtualenv.py:
--------------------------------------------------------------------------------

```python
  1 | import logging
  2 | import os
  3 | import re
  4 | import site
  5 | import sys
  6 | from typing import List, Optional
  7 | 
  8 | logger = logging.getLogger(__name__)
  9 | _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX = re.compile(
 10 |     r"include-system-site-packages\s*=\s*(?P<value>true|false)"
 11 | )
 12 | 
 13 | 
 14 | def _running_under_venv() -> bool:
 15 |     """Checks if sys.base_prefix and sys.prefix match.
 16 | 
 17 |     This handles PEP 405 compliant virtual environments.
 18 |     """
 19 |     return sys.prefix != getattr(sys, "base_prefix", sys.prefix)
 20 | 
 21 | 
 22 | def _running_under_legacy_virtualenv() -> bool:
 23 |     """Checks if sys.real_prefix is set.
 24 | 
 25 |     This handles virtual environments created with pypa's virtualenv.
 26 |     """
 27 |     # pypa/virtualenv case
 28 |     return hasattr(sys, "real_prefix")
 29 | 
 30 | 
 31 | def running_under_virtualenv() -> bool:
 32 |     """True if we're running inside a virtual environment, False otherwise."""
 33 |     return _running_under_venv() or _running_under_legacy_virtualenv()
 34 | 
 35 | 
 36 | def _get_pyvenv_cfg_lines() -> Optional[List[str]]:
 37 |     """Reads {sys.prefix}/pyvenv.cfg and returns its contents as list of lines
 38 | 
 39 |     Returns None, if it could not read/access the file.
 40 |     """
 41 |     pyvenv_cfg_file = os.path.join(sys.prefix, "pyvenv.cfg")
 42 |     try:
 43 |         # Although PEP 405 does not specify, the built-in venv module always
 44 |         # writes with UTF-8. (pypa/pip#8717)
 45 |         with open(pyvenv_cfg_file, encoding="utf-8") as f:
 46 |             return f.read().splitlines()  # avoids trailing newlines
 47 |     except OSError:
 48 |         return None
 49 | 
 50 | 
 51 | def _no_global_under_venv() -> bool:
 52 |     """Check `{sys.prefix}/pyvenv.cfg` for system site-packages inclusion
 53 | 
 54 |     PEP 405 specifies that when system site-packages are not supposed to be
 55 |     visible from a virtual environment, `pyvenv.cfg` must contain the following
 56 |     line:
 57 | 
 58 |         include-system-site-packages = false
 59 | 
 60 |     Additionally, log a warning if accessing the file fails.
 61 |     """
 62 |     cfg_lines = _get_pyvenv_cfg_lines()
 63 |     if cfg_lines is None:
 64 |         # We're not in a "sane" venv, so assume there is no system
 65 |         # site-packages access (since that's PEP 405's default state).
 66 |         logger.warning(
 67 |             "Could not access 'pyvenv.cfg' despite a virtual environment "
 68 |             "being active. Assuming global site-packages is not accessible "
 69 |             "in this environment."
 70 |         )
 71 |         return True
 72 | 
 73 |     for line in cfg_lines:
 74 |         match = _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match(line)
 75 |         if match is not None and match.group("value") == "false":
 76 |             return True
 77 |     return False
 78 | 
 79 | 
 80 | def _no_global_under_legacy_virtualenv() -> bool:
 81 |     """Check if "no-global-site-packages.txt" exists beside site.py
 82 | 
 83 |     This mirrors logic in pypa/virtualenv for determining whether system
 84 |     site-packages are visible in the virtual environment.
 85 |     """
 86 |     site_mod_dir = os.path.dirname(os.path.abspath(site.__file__))
 87 |     no_global_site_packages_file = os.path.join(
 88 |         site_mod_dir,
 89 |         "no-global-site-packages.txt",
 90 |     )
 91 |     return os.path.exists(no_global_site_packages_file)
 92 | 
 93 | 
 94 | def virtualenv_no_global() -> bool:
 95 |     """Returns a boolean, whether running in venv with no system site-packages."""
 96 |     # PEP 405 compliance needs to be checked first since virtualenv >=20 would
 97 |     # return True for both checks, but is only able to use the PEP 405 config.
 98 |     if _running_under_venv():
 99 |         return _no_global_under_venv()
100 | 
101 |     if _running_under_legacy_virtualenv():
102 |         return _no_global_under_legacy_virtualenv()
103 | 
104 |     return False
105 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxml/HTMLtree.h:
--------------------------------------------------------------------------------

```
  1 | /*
  2 |  * Summary: specific APIs to process HTML tree, especially serialization
  3 |  * Description: this module implements a few function needed to process
  4 |  *              tree in an HTML specific way.
  5 |  *
  6 |  * Copy: See Copyright for the status of this software.
  7 |  *
  8 |  * Author: Daniel Veillard
  9 |  */
 10 | 
 11 | #ifndef __HTML_TREE_H__
 12 | #define __HTML_TREE_H__
 13 | 
 14 | #include <stdio.h>
 15 | #include <libxml/xmlversion.h>
 16 | #include <libxml/tree.h>
 17 | #include <libxml/HTMLparser.h>
 18 | 
 19 | #ifdef LIBXML_HTML_ENABLED
 20 | 
 21 | #ifdef __cplusplus
 22 | extern "C" {
 23 | #endif
 24 | 
 25 | 
 26 | /**
 27 |  * HTML_TEXT_NODE:
 28 |  *
 29 |  * Macro. A text node in a HTML document is really implemented
 30 |  * the same way as a text node in an XML document.
 31 |  */
 32 | #define HTML_TEXT_NODE		XML_TEXT_NODE
 33 | /**
 34 |  * HTML_ENTITY_REF_NODE:
 35 |  *
 36 |  * Macro. An entity reference in a HTML document is really implemented
 37 |  * the same way as an entity reference in an XML document.
 38 |  */
 39 | #define HTML_ENTITY_REF_NODE	XML_ENTITY_REF_NODE
 40 | /**
 41 |  * HTML_COMMENT_NODE:
 42 |  *
 43 |  * Macro. A comment in a HTML document is really implemented
 44 |  * the same way as a comment in an XML document.
 45 |  */
 46 | #define HTML_COMMENT_NODE	XML_COMMENT_NODE
 47 | /**
 48 |  * HTML_PRESERVE_NODE:
 49 |  *
 50 |  * Macro. A preserved node in a HTML document is really implemented
 51 |  * the same way as a CDATA section in an XML document.
 52 |  */
 53 | #define HTML_PRESERVE_NODE	XML_CDATA_SECTION_NODE
 54 | /**
 55 |  * HTML_PI_NODE:
 56 |  *
 57 |  * Macro. A processing instruction in a HTML document is really implemented
 58 |  * the same way as a processing instruction in an XML document.
 59 |  */
 60 | #define HTML_PI_NODE		XML_PI_NODE
 61 | 
 62 | XMLPUBFUN htmlDocPtr
 63 | 		htmlNewDoc		(const xmlChar *URI,
 64 | 					 const xmlChar *ExternalID);
 65 | XMLPUBFUN htmlDocPtr
 66 | 		htmlNewDocNoDtD		(const xmlChar *URI,
 67 | 					 const xmlChar *ExternalID);
 68 | XMLPUBFUN const xmlChar *
 69 | 		htmlGetMetaEncoding	(htmlDocPtr doc);
 70 | XMLPUBFUN int
 71 | 		htmlSetMetaEncoding	(htmlDocPtr doc,
 72 | 					 const xmlChar *encoding);
 73 | #ifdef LIBXML_OUTPUT_ENABLED
 74 | XMLPUBFUN void
 75 | 		htmlDocDumpMemory	(xmlDocPtr cur,
 76 | 					 xmlChar **mem,
 77 | 					 int *size);
 78 | XMLPUBFUN void
 79 | 		htmlDocDumpMemoryFormat	(xmlDocPtr cur,
 80 | 					 xmlChar **mem,
 81 | 					 int *size,
 82 | 					 int format);
 83 | XMLPUBFUN int
 84 | 		htmlDocDump		(FILE *f,
 85 | 					 xmlDocPtr cur);
 86 | XMLPUBFUN int
 87 | 		htmlSaveFile		(const char *filename,
 88 | 					 xmlDocPtr cur);
 89 | XMLPUBFUN int
 90 | 		htmlNodeDump		(xmlBufferPtr buf,
 91 | 					 xmlDocPtr doc,
 92 | 					 xmlNodePtr cur);
 93 | XMLPUBFUN void
 94 | 		htmlNodeDumpFile	(FILE *out,
 95 | 					 xmlDocPtr doc,
 96 | 					 xmlNodePtr cur);
 97 | XMLPUBFUN int
 98 | 		htmlNodeDumpFileFormat	(FILE *out,
 99 | 					 xmlDocPtr doc,
100 | 					 xmlNodePtr cur,
101 | 					 const char *encoding,
102 | 					 int format);
103 | XMLPUBFUN int
104 | 		htmlSaveFileEnc		(const char *filename,
105 | 					 xmlDocPtr cur,
106 | 					 const char *encoding);
107 | XMLPUBFUN int
108 | 		htmlSaveFileFormat	(const char *filename,
109 | 					 xmlDocPtr cur,
110 | 					 const char *encoding,
111 | 					 int format);
112 | 
113 | XMLPUBFUN void
114 | 		htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf,
115 | 					 xmlDocPtr doc,
116 | 					 xmlNodePtr cur,
117 | 					 const char *encoding,
118 | 					 int format);
119 | XMLPUBFUN void
120 | 		htmlDocContentDumpOutput(xmlOutputBufferPtr buf,
121 | 					 xmlDocPtr cur,
122 | 					 const char *encoding);
123 | XMLPUBFUN void
124 | 		htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf,
125 | 					 xmlDocPtr cur,
126 | 					 const char *encoding,
127 | 					 int format);
128 | XMLPUBFUN void
129 | 		htmlNodeDumpOutput	(xmlOutputBufferPtr buf,
130 | 					 xmlDocPtr doc,
131 | 					 xmlNodePtr cur,
132 | 					 const char *encoding);
133 | 
134 | #endif /* LIBXML_OUTPUT_ENABLED */
135 | 
136 | XMLPUBFUN int
137 | 		htmlIsBooleanAttr	(const xmlChar *name);
138 | 
139 | 
140 | #ifdef __cplusplus
141 | }
142 | #endif
143 | 
144 | #endif /* LIBXML_HTML_ENABLED */
145 | 
146 | #endif /* __HTML_TREE_H__ */
147 | 
148 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/response.py:
--------------------------------------------------------------------------------

```python
  1 | from __future__ import absolute_import
  2 | 
  3 | from email.errors import MultipartInvariantViolationDefect, StartBoundaryNotFoundDefect
  4 | 
  5 | from ..exceptions import HeaderParsingError
  6 | from ..packages.six.moves import http_client as httplib
  7 | 
  8 | 
  9 | def is_fp_closed(obj):
 10 |     """
 11 |     Checks whether a given file-like object is closed.
 12 | 
 13 |     :param obj:
 14 |         The file-like object to check.
 15 |     """
 16 | 
 17 |     try:
 18 |         # Check `isclosed()` first, in case Python3 doesn't set `closed`.
 19 |         # GH Issue #928
 20 |         return obj.isclosed()
 21 |     except AttributeError:
 22 |         pass
 23 | 
 24 |     try:
 25 |         # Check via the official file-like-object way.
 26 |         return obj.closed
 27 |     except AttributeError:
 28 |         pass
 29 | 
 30 |     try:
 31 |         # Check if the object is a container for another file-like object that
 32 |         # gets released on exhaustion (e.g. HTTPResponse).
 33 |         return obj.fp is None
 34 |     except AttributeError:
 35 |         pass
 36 | 
 37 |     raise ValueError("Unable to determine whether fp is closed.")
 38 | 
 39 | 
 40 | def assert_header_parsing(headers):
 41 |     """
 42 |     Asserts whether all headers have been successfully parsed.
 43 |     Extracts encountered errors from the result of parsing headers.
 44 | 
 45 |     Only works on Python 3.
 46 | 
 47 |     :param http.client.HTTPMessage headers: Headers to verify.
 48 | 
 49 |     :raises urllib3.exceptions.HeaderParsingError:
 50 |         If parsing errors are found.
 51 |     """
 52 | 
 53 |     # This will fail silently if we pass in the wrong kind of parameter.
 54 |     # To make debugging easier add an explicit check.
 55 |     if not isinstance(headers, httplib.HTTPMessage):
 56 |         raise TypeError("expected httplib.Message, got {0}.".format(type(headers)))
 57 | 
 58 |     defects = getattr(headers, "defects", None)
 59 |     get_payload = getattr(headers, "get_payload", None)
 60 | 
 61 |     unparsed_data = None
 62 |     if get_payload:
 63 |         # get_payload is actually email.message.Message.get_payload;
 64 |         # we're only interested in the result if it's not a multipart message
 65 |         if not headers.is_multipart():
 66 |             payload = get_payload()
 67 | 
 68 |             if isinstance(payload, (bytes, str)):
 69 |                 unparsed_data = payload
 70 |     if defects:
 71 |         # httplib is assuming a response body is available
 72 |         # when parsing headers even when httplib only sends
 73 |         # header data to parse_headers() This results in
 74 |         # defects on multipart responses in particular.
 75 |         # See: https://github.com/urllib3/urllib3/issues/800
 76 | 
 77 |         # So we ignore the following defects:
 78 |         # - StartBoundaryNotFoundDefect:
 79 |         #     The claimed start boundary was never found.
 80 |         # - MultipartInvariantViolationDefect:
 81 |         #     A message claimed to be a multipart but no subparts were found.
 82 |         defects = [
 83 |             defect
 84 |             for defect in defects
 85 |             if not isinstance(
 86 |                 defect, (StartBoundaryNotFoundDefect, MultipartInvariantViolationDefect)
 87 |             )
 88 |         ]
 89 | 
 90 |     if defects or unparsed_data:
 91 |         raise HeaderParsingError(defects=defects, unparsed_data=unparsed_data)
 92 | 
 93 | 
 94 | def is_response_to_head(response):
 95 |     """
 96 |     Checks whether the request of a response has been a HEAD-request.
 97 |     Handles the quirks of AppEngine.
 98 | 
 99 |     :param http.client.HTTPResponse response:
100 |         Response to check if the originating request
101 |         used 'HEAD' as a method.
102 |     """
103 |     # FIXME: Can we do this somehow without accessing private httplib _method?
104 |     method = response._method
105 |     if isinstance(method, int):  # Platform-specific: Appengine
106 |         return method == 3
107 |     return method.upper() == "HEAD"
108 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/vcs/bazaar.py:
--------------------------------------------------------------------------------

```python
  1 | import logging
  2 | from typing import List, Optional, Tuple
  3 | 
  4 | from pip._internal.utils.misc import HiddenText, display_path
  5 | from pip._internal.utils.subprocess import make_command
  6 | from pip._internal.utils.urls import path_to_url
  7 | from pip._internal.vcs.versioncontrol import (
  8 |     AuthInfo,
  9 |     RemoteNotFoundError,
 10 |     RevOptions,
 11 |     VersionControl,
 12 |     vcs,
 13 | )
 14 | 
 15 | logger = logging.getLogger(__name__)
 16 | 
 17 | 
 18 | class Bazaar(VersionControl):
 19 |     name = "bzr"
 20 |     dirname = ".bzr"
 21 |     repo_name = "branch"
 22 |     schemes = (
 23 |         "bzr+http",
 24 |         "bzr+https",
 25 |         "bzr+ssh",
 26 |         "bzr+sftp",
 27 |         "bzr+ftp",
 28 |         "bzr+lp",
 29 |         "bzr+file",
 30 |     )
 31 | 
 32 |     @staticmethod
 33 |     def get_base_rev_args(rev: str) -> List[str]:
 34 |         return ["-r", rev]
 35 | 
 36 |     def fetch_new(
 37 |         self, dest: str, url: HiddenText, rev_options: RevOptions, verbosity: int
 38 |     ) -> None:
 39 |         rev_display = rev_options.to_display()
 40 |         logger.info(
 41 |             "Checking out %s%s to %s",
 42 |             url,
 43 |             rev_display,
 44 |             display_path(dest),
 45 |         )
 46 |         if verbosity <= 0:
 47 |             flags = ["--quiet"]
 48 |         elif verbosity == 1:
 49 |             flags = []
 50 |         else:
 51 |             flags = [f"-{'v'*verbosity}"]
 52 |         cmd_args = make_command(
 53 |             "checkout", "--lightweight", *flags, rev_options.to_args(), url, dest
 54 |         )
 55 |         self.run_command(cmd_args)
 56 | 
 57 |     def switch(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None:
 58 |         self.run_command(make_command("switch", url), cwd=dest)
 59 | 
 60 |     def update(self, dest: str, url: HiddenText, rev_options: RevOptions) -> None:
 61 |         output = self.run_command(
 62 |             make_command("info"), show_stdout=False, stdout_only=True, cwd=dest
 63 |         )
 64 |         if output.startswith("Standalone "):
 65 |             # Older versions of pip used to create standalone branches.
 66 |             # Convert the standalone branch to a checkout by calling "bzr bind".
 67 |             cmd_args = make_command("bind", "-q", url)
 68 |             self.run_command(cmd_args, cwd=dest)
 69 | 
 70 |         cmd_args = make_command("update", "-q", rev_options.to_args())
 71 |         self.run_command(cmd_args, cwd=dest)
 72 | 
 73 |     @classmethod
 74 |     def get_url_rev_and_auth(cls, url: str) -> Tuple[str, Optional[str], AuthInfo]:
 75 |         # hotfix the URL scheme after removing bzr+ from bzr+ssh:// re-add it
 76 |         url, rev, user_pass = super().get_url_rev_and_auth(url)
 77 |         if url.startswith("ssh://"):
 78 |             url = "bzr+" + url
 79 |         return url, rev, user_pass
 80 | 
 81 |     @classmethod
 82 |     def get_remote_url(cls, location: str) -> str:
 83 |         urls = cls.run_command(
 84 |             ["info"], show_stdout=False, stdout_only=True, cwd=location
 85 |         )
 86 |         for line in urls.splitlines():
 87 |             line = line.strip()
 88 |             for x in ("checkout of branch: ", "parent branch: "):
 89 |                 if line.startswith(x):
 90 |                     repo = line.split(x)[1]
 91 |                     if cls._is_local_repository(repo):
 92 |                         return path_to_url(repo)
 93 |                     return repo
 94 |         raise RemoteNotFoundError
 95 | 
 96 |     @classmethod
 97 |     def get_revision(cls, location: str) -> str:
 98 |         revision = cls.run_command(
 99 |             ["revno"],
100 |             show_stdout=False,
101 |             stdout_only=True,
102 |             cwd=location,
103 |         )
104 |         return revision.splitlines()[-1]
105 | 
106 |     @classmethod
107 |     def is_commit_id_equal(cls, dest: str, name: Optional[str]) -> bool:
108 |         """Always assume the versions don't match"""
109 |         return False
110 | 
111 | 
112 | vcs.register(Bazaar)
113 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/jinja2/visitor.py:
--------------------------------------------------------------------------------

```python
 1 | """API for traversing the AST nodes. Implemented by the compiler and
 2 | meta introspection.
 3 | """
 4 | 
 5 | import typing as t
 6 | 
 7 | from .nodes import Node
 8 | 
 9 | if t.TYPE_CHECKING:
10 |     import typing_extensions as te
11 | 
12 |     class VisitCallable(te.Protocol):
13 |         def __call__(self, node: Node, *args: t.Any, **kwargs: t.Any) -> t.Any: ...
14 | 
15 | 
16 | class NodeVisitor:
17 |     """Walks the abstract syntax tree and call visitor functions for every
18 |     node found.  The visitor functions may return values which will be
19 |     forwarded by the `visit` method.
20 | 
21 |     Per default the visitor functions for the nodes are ``'visit_'`` +
22 |     class name of the node.  So a `TryFinally` node visit function would
23 |     be `visit_TryFinally`.  This behavior can be changed by overriding
24 |     the `get_visitor` function.  If no visitor function exists for a node
25 |     (return value `None`) the `generic_visit` visitor is used instead.
26 |     """
27 | 
28 |     def get_visitor(self, node: Node) -> "t.Optional[VisitCallable]":
29 |         """Return the visitor function for this node or `None` if no visitor
30 |         exists for this node.  In that case the generic visit function is
31 |         used instead.
32 |         """
33 |         return getattr(self, f"visit_{type(node).__name__}", None)
34 | 
35 |     def visit(self, node: Node, *args: t.Any, **kwargs: t.Any) -> t.Any:
36 |         """Visit a node."""
37 |         f = self.get_visitor(node)
38 | 
39 |         if f is not None:
40 |             return f(node, *args, **kwargs)
41 | 
42 |         return self.generic_visit(node, *args, **kwargs)
43 | 
44 |     def generic_visit(self, node: Node, *args: t.Any, **kwargs: t.Any) -> t.Any:
45 |         """Called if no explicit visitor function exists for a node."""
46 |         for child_node in node.iter_child_nodes():
47 |             self.visit(child_node, *args, **kwargs)
48 | 
49 | 
50 | class NodeTransformer(NodeVisitor):
51 |     """Walks the abstract syntax tree and allows modifications of nodes.
52 | 
53 |     The `NodeTransformer` will walk the AST and use the return value of the
54 |     visitor functions to replace or remove the old node.  If the return
55 |     value of the visitor function is `None` the node will be removed
56 |     from the previous location otherwise it's replaced with the return
57 |     value.  The return value may be the original node in which case no
58 |     replacement takes place.
59 |     """
60 | 
61 |     def generic_visit(self, node: Node, *args: t.Any, **kwargs: t.Any) -> Node:
62 |         for field, old_value in node.iter_fields():
63 |             if isinstance(old_value, list):
64 |                 new_values = []
65 |                 for value in old_value:
66 |                     if isinstance(value, Node):
67 |                         value = self.visit(value, *args, **kwargs)
68 |                         if value is None:
69 |                             continue
70 |                         elif not isinstance(value, Node):
71 |                             new_values.extend(value)
72 |                             continue
73 |                     new_values.append(value)
74 |                 old_value[:] = new_values
75 |             elif isinstance(old_value, Node):
76 |                 new_node = self.visit(old_value, *args, **kwargs)
77 |                 if new_node is None:
78 |                     delattr(node, field)
79 |                 else:
80 |                     setattr(node, field, new_node)
81 |         return node
82 | 
83 |     def visit_list(self, node: Node, *args: t.Any, **kwargs: t.Any) -> t.List[Node]:
84 |         """As transformers may return lists in some places this method
85 |         can be used to enforce a list as return value.
86 |         """
87 |         rv = self.visit(node, *args, **kwargs)
88 | 
89 |         if not isinstance(rv, list):
90 |             return [rv]
91 | 
92 |         return rv
93 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/models/wheel.py:
--------------------------------------------------------------------------------

```python
 1 | """Represents a wheel file and provides access to the various parts of the
 2 | name that have meaning.
 3 | """
 4 | 
 5 | import re
 6 | from typing import Dict, Iterable, List
 7 | 
 8 | from pip._vendor.packaging.tags import Tag
 9 | 
10 | from pip._internal.exceptions import InvalidWheelFilename
11 | 
12 | 
13 | class Wheel:
14 |     """A wheel file"""
15 | 
16 |     wheel_file_re = re.compile(
17 |         r"""^(?P<namever>(?P<name>[^\s-]+?)-(?P<ver>[^\s-]*?))
18 |         ((-(?P<build>\d[^-]*?))?-(?P<pyver>[^\s-]+?)-(?P<abi>[^\s-]+?)-(?P<plat>[^\s-]+?)
19 |         \.whl|\.dist-info)$""",
20 |         re.VERBOSE,
21 |     )
22 | 
23 |     def __init__(self, filename: str) -> None:
24 |         """
25 |         :raises InvalidWheelFilename: when the filename is invalid for a wheel
26 |         """
27 |         wheel_info = self.wheel_file_re.match(filename)
28 |         if not wheel_info:
29 |             raise InvalidWheelFilename(f"{filename} is not a valid wheel filename.")
30 |         self.filename = filename
31 |         self.name = wheel_info.group("name").replace("_", "-")
32 |         # we'll assume "_" means "-" due to wheel naming scheme
33 |         # (https://github.com/pypa/pip/issues/1150)
34 |         self.version = wheel_info.group("ver").replace("_", "-")
35 |         self.build_tag = wheel_info.group("build")
36 |         self.pyversions = wheel_info.group("pyver").split(".")
37 |         self.abis = wheel_info.group("abi").split(".")
38 |         self.plats = wheel_info.group("plat").split(".")
39 | 
40 |         # All the tag combinations from this file
41 |         self.file_tags = {
42 |             Tag(x, y, z) for x in self.pyversions for y in self.abis for z in self.plats
43 |         }
44 | 
45 |     def get_formatted_file_tags(self) -> List[str]:
46 |         """Return the wheel's tags as a sorted list of strings."""
47 |         return sorted(str(tag) for tag in self.file_tags)
48 | 
49 |     def support_index_min(self, tags: List[Tag]) -> int:
50 |         """Return the lowest index that one of the wheel's file_tag combinations
51 |         achieves in the given list of supported tags.
52 | 
53 |         For example, if there are 8 supported tags and one of the file tags
54 |         is first in the list, then return 0.
55 | 
56 |         :param tags: the PEP 425 tags to check the wheel against, in order
57 |             with most preferred first.
58 | 
59 |         :raises ValueError: If none of the wheel's file tags match one of
60 |             the supported tags.
61 |         """
62 |         try:
63 |             return next(i for i, t in enumerate(tags) if t in self.file_tags)
64 |         except StopIteration:
65 |             raise ValueError()
66 | 
67 |     def find_most_preferred_tag(
68 |         self, tags: List[Tag], tag_to_priority: Dict[Tag, int]
69 |     ) -> int:
70 |         """Return the priority of the most preferred tag that one of the wheel's file
71 |         tag combinations achieves in the given list of supported tags using the given
72 |         tag_to_priority mapping, where lower priorities are more-preferred.
73 | 
74 |         This is used in place of support_index_min in some cases in order to avoid
75 |         an expensive linear scan of a large list of tags.
76 | 
77 |         :param tags: the PEP 425 tags to check the wheel against.
78 |         :param tag_to_priority: a mapping from tag to priority of that tag, where
79 |             lower is more preferred.
80 | 
81 |         :raises ValueError: If none of the wheel's file tags match one of
82 |             the supported tags.
83 |         """
84 |         return min(
85 |             tag_to_priority[tag] for tag in self.file_tags if tag in tag_to_priority
86 |         )
87 | 
88 |     def supported(self, tags: Iterable[Tag]) -> bool:
89 |         """Return whether the wheel is compatible with one of the given tags.
90 | 
91 |         :param tags: the PEP 425 tags to check the wheel against.
92 |         """
93 |         return not self.file_tags.isdisjoint(tags)
94 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/lxml/includes/libxml/xpointer.h:
--------------------------------------------------------------------------------

```
  1 | /*
  2 |  * Summary: API to handle XML Pointers
  3 |  * Description: API to handle XML Pointers
  4 |  * Base implementation was made accordingly to
  5 |  * W3C Candidate Recommendation 7 June 2000
  6 |  * http://www.w3.org/TR/2000/CR-xptr-20000607
  7 |  *
  8 |  * Added support for the element() scheme described in:
  9 |  * W3C Proposed Recommendation 13 November 2002
 10 |  * http://www.w3.org/TR/2002/PR-xptr-element-20021113/
 11 |  *
 12 |  * Copy: See Copyright for the status of this software.
 13 |  *
 14 |  * Author: Daniel Veillard
 15 |  */
 16 | 
 17 | #ifndef __XML_XPTR_H__
 18 | #define __XML_XPTR_H__
 19 | 
 20 | #include <libxml/xmlversion.h>
 21 | 
 22 | #ifdef LIBXML_XPTR_ENABLED
 23 | 
 24 | #include <libxml/tree.h>
 25 | #include <libxml/xpath.h>
 26 | 
 27 | #ifdef __cplusplus
 28 | extern "C" {
 29 | #endif
 30 | 
 31 | #if defined(LIBXML_XPTR_LOCS_ENABLED)
 32 | /*
 33 |  * A Location Set
 34 |  */
 35 | typedef struct _xmlLocationSet xmlLocationSet;
 36 | typedef xmlLocationSet *xmlLocationSetPtr;
 37 | struct _xmlLocationSet {
 38 |     int locNr;		      /* number of locations in the set */
 39 |     int locMax;		      /* size of the array as allocated */
 40 |     xmlXPathObjectPtr *locTab;/* array of locations */
 41 | };
 42 | 
 43 | /*
 44 |  * Handling of location sets.
 45 |  */
 46 | 
 47 | XML_DEPRECATED
 48 | XMLPUBFUN xmlLocationSetPtr
 49 | 		    xmlXPtrLocationSetCreate	(xmlXPathObjectPtr val);
 50 | XML_DEPRECATED
 51 | XMLPUBFUN void
 52 | 		    xmlXPtrFreeLocationSet	(xmlLocationSetPtr obj);
 53 | XML_DEPRECATED
 54 | XMLPUBFUN xmlLocationSetPtr
 55 | 		    xmlXPtrLocationSetMerge	(xmlLocationSetPtr val1,
 56 | 						 xmlLocationSetPtr val2);
 57 | XML_DEPRECATED
 58 | XMLPUBFUN xmlXPathObjectPtr
 59 | 		    xmlXPtrNewRange		(xmlNodePtr start,
 60 | 						 int startindex,
 61 | 						 xmlNodePtr end,
 62 | 						 int endindex);
 63 | XML_DEPRECATED
 64 | XMLPUBFUN xmlXPathObjectPtr
 65 | 		    xmlXPtrNewRangePoints	(xmlXPathObjectPtr start,
 66 | 						 xmlXPathObjectPtr end);
 67 | XML_DEPRECATED
 68 | XMLPUBFUN xmlXPathObjectPtr
 69 | 		    xmlXPtrNewRangeNodePoint	(xmlNodePtr start,
 70 | 						 xmlXPathObjectPtr end);
 71 | XML_DEPRECATED
 72 | XMLPUBFUN xmlXPathObjectPtr
 73 | 		    xmlXPtrNewRangePointNode	(xmlXPathObjectPtr start,
 74 | 						 xmlNodePtr end);
 75 | XML_DEPRECATED
 76 | XMLPUBFUN xmlXPathObjectPtr
 77 | 		    xmlXPtrNewRangeNodes	(xmlNodePtr start,
 78 | 						 xmlNodePtr end);
 79 | XML_DEPRECATED
 80 | XMLPUBFUN xmlXPathObjectPtr
 81 | 		    xmlXPtrNewLocationSetNodes	(xmlNodePtr start,
 82 | 						 xmlNodePtr end);
 83 | XML_DEPRECATED
 84 | XMLPUBFUN xmlXPathObjectPtr
 85 | 		    xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set);
 86 | XML_DEPRECATED
 87 | XMLPUBFUN xmlXPathObjectPtr
 88 | 		    xmlXPtrNewRangeNodeObject	(xmlNodePtr start,
 89 | 						 xmlXPathObjectPtr end);
 90 | XML_DEPRECATED
 91 | XMLPUBFUN xmlXPathObjectPtr
 92 | 		    xmlXPtrNewCollapsedRange	(xmlNodePtr start);
 93 | XML_DEPRECATED
 94 | XMLPUBFUN void
 95 | 		    xmlXPtrLocationSetAdd	(xmlLocationSetPtr cur,
 96 | 						 xmlXPathObjectPtr val);
 97 | XML_DEPRECATED
 98 | XMLPUBFUN xmlXPathObjectPtr
 99 | 		    xmlXPtrWrapLocationSet	(xmlLocationSetPtr val);
100 | XML_DEPRECATED
101 | XMLPUBFUN void
102 | 		    xmlXPtrLocationSetDel	(xmlLocationSetPtr cur,
103 | 						 xmlXPathObjectPtr val);
104 | XML_DEPRECATED
105 | XMLPUBFUN void
106 | 		    xmlXPtrLocationSetRemove	(xmlLocationSetPtr cur,
107 | 						 int val);
108 | #endif /* defined(LIBXML_XPTR_LOCS_ENABLED) */
109 | 
110 | /*
111 |  * Functions.
112 |  */
113 | XMLPUBFUN xmlXPathContextPtr
114 | 		    xmlXPtrNewContext		(xmlDocPtr doc,
115 | 						 xmlNodePtr here,
116 | 						 xmlNodePtr origin);
117 | XMLPUBFUN xmlXPathObjectPtr
118 | 		    xmlXPtrEval			(const xmlChar *str,
119 | 						 xmlXPathContextPtr ctx);
120 | 
121 | #if defined(LIBXML_XPTR_LOCS_ENABLED)
122 | XML_DEPRECATED
123 | XMLPUBFUN void
124 | 		    xmlXPtrRangeToFunction	(xmlXPathParserContextPtr ctxt,
125 | 						 int nargs);
126 | XML_DEPRECATED
127 | XMLPUBFUN xmlNodePtr
128 | 		    xmlXPtrBuildNodeList	(xmlXPathObjectPtr obj);
129 | XML_DEPRECATED
130 | XMLPUBFUN void
131 | 		    xmlXPtrEvalRangePredicate	(xmlXPathParserContextPtr ctxt);
132 | #endif /* defined(LIBXML_XPTR_LOCS_ENABLED) */
133 | #ifdef __cplusplus
134 | }
135 | #endif
136 | 
137 | #endif /* LIBXML_XPTR_ENABLED */
138 | #endif /* __XML_XPTR_H__ */
139 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js:
--------------------------------------------------------------------------------

```javascript
  1 | let Status = {
  2 |   SUCCESS_HEADER: -1,
  3 |   SUCCESS_EOF: -2,
  4 |   ERROR_TIMEOUT: -3,
  5 |   ERROR_EXCEPTION: -4,
  6 | };
  7 | 
  8 | let connections = {};
  9 | let nextConnectionID = 1;
 10 | const encoder = new TextEncoder();
 11 | 
 12 | self.addEventListener("message", async function (event) {
 13 |   if (event.data.close) {
 14 |     let connectionID = event.data.close;
 15 |     delete connections[connectionID];
 16 |     return;
 17 |   } else if (event.data.getMore) {
 18 |     let connectionID = event.data.getMore;
 19 |     let { curOffset, value, reader, intBuffer, byteBuffer } =
 20 |       connections[connectionID];
 21 |     // if we still have some in buffer, then just send it back straight away
 22 |     if (!value || curOffset >= value.length) {
 23 |       // read another buffer if required
 24 |       try {
 25 |         let readResponse = await reader.read();
 26 | 
 27 |         if (readResponse.done) {
 28 |           // read everything - clear connection and return
 29 |           delete connections[connectionID];
 30 |           Atomics.store(intBuffer, 0, Status.SUCCESS_EOF);
 31 |           Atomics.notify(intBuffer, 0);
 32 |           // finished reading successfully
 33 |           // return from event handler
 34 |           return;
 35 |         }
 36 |         curOffset = 0;
 37 |         connections[connectionID].value = readResponse.value;
 38 |         value = readResponse.value;
 39 |       } catch (error) {
 40 |         console.log("Request exception:", error);
 41 |         let errorBytes = encoder.encode(error.message);
 42 |         let written = errorBytes.length;
 43 |         byteBuffer.set(errorBytes);
 44 |         intBuffer[1] = written;
 45 |         Atomics.store(intBuffer, 0, Status.ERROR_EXCEPTION);
 46 |         Atomics.notify(intBuffer, 0);
 47 |       }
 48 |     }
 49 | 
 50 |     // send as much buffer as we can
 51 |     let curLen = value.length - curOffset;
 52 |     if (curLen > byteBuffer.length) {
 53 |       curLen = byteBuffer.length;
 54 |     }
 55 |     byteBuffer.set(value.subarray(curOffset, curOffset + curLen), 0);
 56 | 
 57 |     Atomics.store(intBuffer, 0, curLen); // store current length in bytes
 58 |     Atomics.notify(intBuffer, 0);
 59 |     curOffset += curLen;
 60 |     connections[connectionID].curOffset = curOffset;
 61 | 
 62 |     return;
 63 |   } else {
 64 |     // start fetch
 65 |     let connectionID = nextConnectionID;
 66 |     nextConnectionID += 1;
 67 |     const intBuffer = new Int32Array(event.data.buffer);
 68 |     const byteBuffer = new Uint8Array(event.data.buffer, 8);
 69 |     try {
 70 |       const response = await fetch(event.data.url, event.data.fetchParams);
 71 |       // return the headers first via textencoder
 72 |       var headers = [];
 73 |       for (const pair of response.headers.entries()) {
 74 |         headers.push([pair[0], pair[1]]);
 75 |       }
 76 |       let headerObj = {
 77 |         headers: headers,
 78 |         status: response.status,
 79 |         connectionID,
 80 |       };
 81 |       const headerText = JSON.stringify(headerObj);
 82 |       let headerBytes = encoder.encode(headerText);
 83 |       let written = headerBytes.length;
 84 |       byteBuffer.set(headerBytes);
 85 |       intBuffer[1] = written;
 86 |       // make a connection
 87 |       connections[connectionID] = {
 88 |         reader: response.body.getReader(),
 89 |         intBuffer: intBuffer,
 90 |         byteBuffer: byteBuffer,
 91 |         value: undefined,
 92 |         curOffset: 0,
 93 |       };
 94 |       // set header ready
 95 |       Atomics.store(intBuffer, 0, Status.SUCCESS_HEADER);
 96 |       Atomics.notify(intBuffer, 0);
 97 |       // all fetching after this goes through a new postmessage call with getMore
 98 |       // this allows for parallel requests
 99 |     } catch (error) {
100 |       console.log("Request exception:", error);
101 |       let errorBytes = encoder.encode(error.message);
102 |       let written = errorBytes.length;
103 |       byteBuffer.set(errorBytes);
104 |       intBuffer[1] = written;
105 |       Atomics.store(intBuffer, 0, Status.ERROR_EXCEPTION);
106 |       Atomics.notify(intBuffer, 0);
107 |     }
108 |   }
109 | });
110 | self.postMessage({ inited: true });
111 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_vendor/rich/live_render.py:
--------------------------------------------------------------------------------

```python
  1 | import sys
  2 | from typing import Optional, Tuple
  3 | 
  4 | if sys.version_info >= (3, 8):
  5 |     from typing import Literal
  6 | else:
  7 |     from pip._vendor.typing_extensions import Literal  # pragma: no cover
  8 | 
  9 | 
 10 | from ._loop import loop_last
 11 | from .console import Console, ConsoleOptions, RenderableType, RenderResult
 12 | from .control import Control
 13 | from .segment import ControlType, Segment
 14 | from .style import StyleType
 15 | from .text import Text
 16 | 
 17 | VerticalOverflowMethod = Literal["crop", "ellipsis", "visible"]
 18 | 
 19 | 
 20 | class LiveRender:
 21 |     """Creates a renderable that may be updated.
 22 | 
 23 |     Args:
 24 |         renderable (RenderableType): Any renderable object.
 25 |         style (StyleType, optional): An optional style to apply to the renderable. Defaults to "".
 26 |     """
 27 | 
 28 |     def __init__(
 29 |         self,
 30 |         renderable: RenderableType,
 31 |         style: StyleType = "",
 32 |         vertical_overflow: VerticalOverflowMethod = "ellipsis",
 33 |     ) -> None:
 34 |         self.renderable = renderable
 35 |         self.style = style
 36 |         self.vertical_overflow = vertical_overflow
 37 |         self._shape: Optional[Tuple[int, int]] = None
 38 | 
 39 |     def set_renderable(self, renderable: RenderableType) -> None:
 40 |         """Set a new renderable.
 41 | 
 42 |         Args:
 43 |             renderable (RenderableType): Any renderable object, including str.
 44 |         """
 45 |         self.renderable = renderable
 46 | 
 47 |     def position_cursor(self) -> Control:
 48 |         """Get control codes to move cursor to beginning of live render.
 49 | 
 50 |         Returns:
 51 |             Control: A control instance that may be printed.
 52 |         """
 53 |         if self._shape is not None:
 54 |             _, height = self._shape
 55 |             return Control(
 56 |                 ControlType.CARRIAGE_RETURN,
 57 |                 (ControlType.ERASE_IN_LINE, 2),
 58 |                 *(
 59 |                     (
 60 |                         (ControlType.CURSOR_UP, 1),
 61 |                         (ControlType.ERASE_IN_LINE, 2),
 62 |                     )
 63 |                     * (height - 1)
 64 |                 )
 65 |             )
 66 |         return Control()
 67 | 
 68 |     def restore_cursor(self) -> Control:
 69 |         """Get control codes to clear the render and restore the cursor to its previous position.
 70 | 
 71 |         Returns:
 72 |             Control: A Control instance that may be printed.
 73 |         """
 74 |         if self._shape is not None:
 75 |             _, height = self._shape
 76 |             return Control(
 77 |                 ControlType.CARRIAGE_RETURN,
 78 |                 *((ControlType.CURSOR_UP, 1), (ControlType.ERASE_IN_LINE, 2)) * height
 79 |             )
 80 |         return Control()
 81 | 
 82 |     def __rich_console__(
 83 |         self, console: Console, options: ConsoleOptions
 84 |     ) -> RenderResult:
 85 |         renderable = self.renderable
 86 |         style = console.get_style(self.style)
 87 |         lines = console.render_lines(renderable, options, style=style, pad=False)
 88 |         shape = Segment.get_shape(lines)
 89 | 
 90 |         _, height = shape
 91 |         if height > options.size.height:
 92 |             if self.vertical_overflow == "crop":
 93 |                 lines = lines[: options.size.height]
 94 |                 shape = Segment.get_shape(lines)
 95 |             elif self.vertical_overflow == "ellipsis":
 96 |                 lines = lines[: (options.size.height - 1)]
 97 |                 overflow_text = Text(
 98 |                     "...",
 99 |                     overflow="crop",
100 |                     justify="center",
101 |                     end="",
102 |                     style="live.ellipsis",
103 |                 )
104 |                 lines.append(list(console.render(overflow_text)))
105 |                 shape = Segment.get_shape(lines)
106 |         self._shape = shape
107 | 
108 |         new_line = Segment.line()
109 |         for last, line in loop_last(lines):
110 |             yield from line
111 |             if not last:
112 |                 yield new_line
113 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/utils/deprecation.py:
--------------------------------------------------------------------------------

```python
  1 | """
  2 | A module that implements tooling to enable easy warnings about deprecations.
  3 | """
  4 | 
  5 | import logging
  6 | import warnings
  7 | from typing import Any, Optional, TextIO, Type, Union
  8 | 
  9 | from pip._vendor.packaging.version import parse
 10 | 
 11 | from pip import __version__ as current_version  # NOTE: tests patch this name.
 12 | 
 13 | DEPRECATION_MSG_PREFIX = "DEPRECATION: "
 14 | 
 15 | 
 16 | class PipDeprecationWarning(Warning):
 17 |     pass
 18 | 
 19 | 
 20 | _original_showwarning: Any = None
 21 | 
 22 | 
 23 | # Warnings <-> Logging Integration
 24 | def _showwarning(
 25 |     message: Union[Warning, str],
 26 |     category: Type[Warning],
 27 |     filename: str,
 28 |     lineno: int,
 29 |     file: Optional[TextIO] = None,
 30 |     line: Optional[str] = None,
 31 | ) -> None:
 32 |     if file is not None:
 33 |         if _original_showwarning is not None:
 34 |             _original_showwarning(message, category, filename, lineno, file, line)
 35 |     elif issubclass(category, PipDeprecationWarning):
 36 |         # We use a specially named logger which will handle all of the
 37 |         # deprecation messages for pip.
 38 |         logger = logging.getLogger("pip._internal.deprecations")
 39 |         logger.warning(message)
 40 |     else:
 41 |         _original_showwarning(message, category, filename, lineno, file, line)
 42 | 
 43 | 
 44 | def install_warning_logger() -> None:
 45 |     # Enable our Deprecation Warnings
 46 |     warnings.simplefilter("default", PipDeprecationWarning, append=True)
 47 | 
 48 |     global _original_showwarning
 49 | 
 50 |     if _original_showwarning is None:
 51 |         _original_showwarning = warnings.showwarning
 52 |         warnings.showwarning = _showwarning
 53 | 
 54 | 
 55 | def deprecated(
 56 |     *,
 57 |     reason: str,
 58 |     replacement: Optional[str],
 59 |     gone_in: Optional[str],
 60 |     feature_flag: Optional[str] = None,
 61 |     issue: Optional[int] = None,
 62 | ) -> None:
 63 |     """Helper to deprecate existing functionality.
 64 | 
 65 |     reason:
 66 |         Textual reason shown to the user about why this functionality has
 67 |         been deprecated. Should be a complete sentence.
 68 |     replacement:
 69 |         Textual suggestion shown to the user about what alternative
 70 |         functionality they can use.
 71 |     gone_in:
 72 |         The version of pip does this functionality should get removed in.
 73 |         Raises an error if pip's current version is greater than or equal to
 74 |         this.
 75 |     feature_flag:
 76 |         Command-line flag of the form --use-feature={feature_flag} for testing
 77 |         upcoming functionality.
 78 |     issue:
 79 |         Issue number on the tracker that would serve as a useful place for
 80 |         users to find related discussion and provide feedback.
 81 |     """
 82 | 
 83 |     # Determine whether or not the feature is already gone in this version.
 84 |     is_gone = gone_in is not None and parse(current_version) >= parse(gone_in)
 85 | 
 86 |     message_parts = [
 87 |         (reason, f"{DEPRECATION_MSG_PREFIX}{{}}"),
 88 |         (
 89 |             gone_in,
 90 |             (
 91 |                 "pip {} will enforce this behaviour change."
 92 |                 if not is_gone
 93 |                 else "Since pip {}, this is no longer supported."
 94 |             ),
 95 |         ),
 96 |         (
 97 |             replacement,
 98 |             "A possible replacement is {}.",
 99 |         ),
100 |         (
101 |             feature_flag,
102 |             (
103 |                 "You can use the flag --use-feature={} to test the upcoming behaviour."
104 |                 if not is_gone
105 |                 else None
106 |             ),
107 |         ),
108 |         (
109 |             issue,
110 |             "Discussion can be found at https://github.com/pypa/pip/issues/{}",
111 |         ),
112 |     ]
113 | 
114 |     message = " ".join(
115 |         format_str.format(value)
116 |         for value, format_str in message_parts
117 |         if format_str is not None and value is not None
118 |     )
119 | 
120 |     # Raise as an error if this behaviour is deprecated.
121 |     if is_gone:
122 |         raise PipDeprecationWarning(message)
123 | 
124 |     warnings.warn(message, category=PipDeprecationWarning, stacklevel=2)
125 | 
```

--------------------------------------------------------------------------------
/.venv/lib/python3.12/site-packages/pip/_internal/utils/glibc.py:
--------------------------------------------------------------------------------

```python
  1 | import os
  2 | import sys
  3 | from typing import Optional, Tuple
  4 | 
  5 | 
  6 | def glibc_version_string() -> Optional[str]:
  7 |     "Returns glibc version string, or None if not using glibc."
  8 |     return glibc_version_string_confstr() or glibc_version_string_ctypes()
  9 | 
 10 | 
 11 | def glibc_version_string_confstr() -> Optional[str]:
 12 |     "Primary implementation of glibc_version_string using os.confstr."
 13 |     # os.confstr is quite a bit faster than ctypes.DLL. It's also less likely
 14 |     # to be broken or missing. This strategy is used in the standard library
 15 |     # platform module:
 16 |     # https://github.com/python/cpython/blob/fcf1d003bf4f0100c9d0921ff3d70e1127ca1b71/Lib/platform.py#L175-L183
 17 |     if sys.platform == "win32":
 18 |         return None
 19 |     try:
 20 |         gnu_libc_version = os.confstr("CS_GNU_LIBC_VERSION")
 21 |         if gnu_libc_version is None:
 22 |             return None
 23 |         # os.confstr("CS_GNU_LIBC_VERSION") returns a string like "glibc 2.17":
 24 |         _, version = gnu_libc_version.split()
 25 |     except (AttributeError, OSError, ValueError):
 26 |         # os.confstr() or CS_GNU_LIBC_VERSION not available (or a bad value)...
 27 |         return None
 28 |     return version
 29 | 
 30 | 
 31 | def glibc_version_string_ctypes() -> Optional[str]:
 32 |     "Fallback implementation of glibc_version_string using ctypes."
 33 | 
 34 |     try:
 35 |         import ctypes
 36 |     except ImportError:
 37 |         return None
 38 | 
 39 |     # ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen
 40 |     # manpage says, "If filename is NULL, then the returned handle is for the
 41 |     # main program". This way we can let the linker do the work to figure out
 42 |     # which libc our process is actually using.
 43 |     #
 44 |     # We must also handle the special case where the executable is not a
 45 |     # dynamically linked executable. This can occur when using musl libc,
 46 |     # for example. In this situation, dlopen() will error, leading to an
 47 |     # OSError. Interestingly, at least in the case of musl, there is no
 48 |     # errno set on the OSError. The single string argument used to construct
 49 |     # OSError comes from libc itself and is therefore not portable to
 50 |     # hard code here. In any case, failure to call dlopen() means we
 51 |     # can't proceed, so we bail on our attempt.
 52 |     try:
 53 |         process_namespace = ctypes.CDLL(None)
 54 |     except OSError:
 55 |         return None
 56 | 
 57 |     try:
 58 |         gnu_get_libc_version = process_namespace.gnu_get_libc_version
 59 |     except AttributeError:
 60 |         # Symbol doesn't exist -> therefore, we are not linked to
 61 |         # glibc.
 62 |         return None
 63 | 
 64 |     # Call gnu_get_libc_version, which returns a string like "2.5"
 65 |     gnu_get_libc_version.restype = ctypes.c_char_p
 66 |     version_str: str = gnu_get_libc_version()
 67 |     # py2 / py3 compatibility:
 68 |     if not isinstance(version_str, str):
 69 |         version_str = version_str.decode("ascii")
 70 | 
 71 |     return version_str
 72 | 
 73 | 
 74 | # platform.libc_ver regularly returns completely nonsensical glibc
 75 | # versions. E.g. on my computer, platform says:
 76 | #
 77 | #   ~$ python2.7 -c 'import platform; print(platform.libc_ver())'
 78 | #   ('glibc', '2.7')
 79 | #   ~$ python3.5 -c 'import platform; print(platform.libc_ver())'
 80 | #   ('glibc', '2.9')
 81 | #
 82 | # But the truth is:
 83 | #
 84 | #   ~$ ldd --version
 85 | #   ldd (Debian GLIBC 2.22-11) 2.22
 86 | #
 87 | # This is unfortunate, because it means that the linehaul data on libc
 88 | # versions that was generated by pip 8.1.2 and earlier is useless and
 89 | # misleading. Solution: instead of using platform, use our code that actually
 90 | # works.
 91 | def libc_ver() -> Tuple[str, str]:
 92 |     """Try to determine the glibc version
 93 | 
 94 |     Returns a tuple of strings (lib, version) which default to empty strings
 95 |     in case the lookup fails.
 96 |     """
 97 |     glibc_version = glibc_version_string()
 98 |     if glibc_version is None:
 99 |         return ("", "")
100 |     else:
101 |         return ("glibc", glibc_version)
102 | 
```
Page 9/168FirstPrevNextLast