this is first one

This commit is contained in:
mohammadreza
2026-07-27 19:22:30 +03:30
commit ec22b78689
5866 changed files with 1511603 additions and 0 deletions
@@ -0,0 +1,127 @@
Metadata-Version: 2.4
Name: gunicorn
Version: 25.1.0
Summary: WSGI HTTP Server for UNIX
Author-email: Benoit Chesneau <benoitc@gunicorn.org>
License-Expression: MIT
Project-URL: Homepage, https://gunicorn.org
Project-URL: Documentation, https://gunicorn.org
Project-URL: Issue tracker, https://github.com/benoitc/gunicorn/issues
Project-URL: Source code, https://github.com/benoitc/gunicorn
Project-URL: Changelog, https://gunicorn.org/news/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Server
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: packaging
Provides-Extra: gevent
Requires-Dist: gevent>=24.10.1; extra == "gevent"
Provides-Extra: eventlet
Requires-Dist: eventlet>=0.40.3; extra == "eventlet"
Provides-Extra: tornado
Requires-Dist: tornado>=6.5.0; extra == "tornado"
Provides-Extra: gthread
Provides-Extra: setproctitle
Requires-Dist: setproctitle; extra == "setproctitle"
Provides-Extra: http2
Requires-Dist: h2>=4.1.0; extra == "http2"
Provides-Extra: testing
Requires-Dist: gevent>=24.10.1; extra == "testing"
Requires-Dist: eventlet>=0.40.3; extra == "testing"
Requires-Dist: h2>=4.1.0; extra == "testing"
Requires-Dist: coverage; extra == "testing"
Requires-Dist: pytest; extra == "testing"
Requires-Dist: pytest-cov; extra == "testing"
Requires-Dist: pytest-asyncio; extra == "testing"
Requires-Dist: uvloop>=0.19.0; extra == "testing"
Requires-Dist: httpx[http2]; extra == "testing"
Dynamic: license-file
# Gunicorn
<p align="center">
<strong>Gunicorn is maintained by volunteers. If it powers your production, please consider supporting us:</strong><br>
<a href="https://github.com/sponsors/benoitc"><img src="https://img.shields.io/badge/GitHub_Sponsors-❤-ea4aaa?style=for-the-badge&logo=github" alt="GitHub Sponsors"></a>
<a href="https://opencollective.com/gunicorn"><img src="https://img.shields.io/badge/Open_Collective-Support-7FADF2?style=for-the-badge&logo=opencollective" alt="Open Collective"></a>
<a href="https://checkout.revolut.com/pay/c934e028-3a71-44eb-b99c-491342df2044"><img src="https://img.shields.io/badge/Revolut-Donate-191c20?style=for-the-badge" alt="Revolut"></a>
</p>
[![PyPI version](https://img.shields.io/pypi/v/gunicorn.svg?style=flat)](https://pypi.python.org/pypi/gunicorn)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/gunicorn.svg)](https://pypi.python.org/pypi/gunicorn)
[![Build Status](https://github.com/benoitc/gunicorn/actions/workflows/tox.yml/badge.svg)](https://github.com/benoitc/gunicorn/actions/workflows/tox.yml)
Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for UNIX. It's a pre-fork
worker model ported from Ruby's [Unicorn](https://bogomips.org/unicorn/) project. The Gunicorn server is broadly
compatible with various web frameworks, simply implemented, light on server
resource usage, and fairly speedy.
**New in v25**: Per-app worker allocation for dirty arbiters, HTTP/2 support (beta)!
## Quick Start
```bash
pip install gunicorn
gunicorn myapp:app --workers 4
```
For ASGI applications (FastAPI, Starlette):
```bash
gunicorn myapp:app --worker-class asgi
```
## Features
- WSGI support for Django, Flask, Pyramid, and any WSGI framework
- **ASGI support** for FastAPI, Starlette, Quart
- **HTTP/2 support** (beta) with multiplexed streams
- **Dirty Arbiters** (beta) for heavy workloads (ML models, long-running tasks)
- uWSGI binary protocol for nginx integration
- Multiple worker types: sync, gthread, gevent, eventlet, asgi
- Graceful worker process management
- Compatible with Python 3.9+
## Documentation
Full documentation at https://gunicorn.org
- [Quickstart](https://gunicorn.org/quickstart/)
- [Configuration](https://gunicorn.org/configure/)
- [Deployment](https://gunicorn.org/deploy/)
- [Settings Reference](https://gunicorn.org/reference/settings/)
## Community
- Report bugs on [GitHub Issues](https://github.com/benoitc/gunicorn/issues)
- Chat in [#gunicorn](https://web.libera.chat/?channels=#gunicorn) on [Libera.chat](https://libera.chat/)
- See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines
## Support
Powering Python apps since 2010. Support continued development.
[![Become a Sponsor](https://img.shields.io/badge/Become_a_Sponsor-❤-ff69b4)](https://gunicorn.org/sponsor/)
## License
Gunicorn is released under the MIT License. See the [LICENSE](https://github.com/benoitc/gunicorn/blob/master/LICENSE) file for details.
@@ -0,0 +1,144 @@
../../../bin/gunicorn,sha256=fpa21eSQnITnQ8XFANX5eFDp7Q2ozECKhfhUJSp2jK8,241
../../../bin/gunicornc,sha256=N3ziuHuHqltTuFDZWmHsA_z3IggWtGFA5Ns-hpna8a0,239
gunicorn-25.1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
gunicorn-25.1.0.dist-info/METADATA,sha256=oZvq6IXcYExtbnp0WZ3AQNhu1tR1dd6ZghCqpjf_fao,5472
gunicorn-25.1.0.dist-info/RECORD,,
gunicorn-25.1.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
gunicorn-25.1.0.dist-info/WHEEL,sha256=YCfwYGOYMi5Jhw2fU4yNgwErybb2IX5PEwBKV4ZbdBo,91
gunicorn-25.1.0.dist-info/entry_points.txt,sha256=a82d7tohPJ0qraihJB39VR1fezRrmmfbIMGS3pkAsa8,147
gunicorn-25.1.0.dist-info/licenses/LICENSE,sha256=FFfjCo9xM0808kG58mfn9VVlRJN7wsF1G8WLUiUMBUM,1136
gunicorn-25.1.0.dist-info/top_level.txt,sha256=cdMaa2yhxb8do-WioY9qRHUCfwf55YztjwQCncaInoE,9
gunicorn/__init__.py,sha256=hDpfahQZxdZ8unGre9QmsObGTxfrQa0DyhNpByujZ90,257
gunicorn/__main__.py,sha256=tviepyuwKyB6SPV28t2eZy_5PcCpT56z7QZjzbMpkQw,338
gunicorn/__pycache__/__init__.cpython-312.pyc,,
gunicorn/__pycache__/__main__.cpython-312.pyc,,
gunicorn/__pycache__/arbiter.cpython-312.pyc,,
gunicorn/__pycache__/config.cpython-312.pyc,,
gunicorn/__pycache__/debug.cpython-312.pyc,,
gunicorn/__pycache__/errors.cpython-312.pyc,,
gunicorn/__pycache__/glogging.cpython-312.pyc,,
gunicorn/__pycache__/pidfile.cpython-312.pyc,,
gunicorn/__pycache__/reloader.cpython-312.pyc,,
gunicorn/__pycache__/sock.cpython-312.pyc,,
gunicorn/__pycache__/systemd.cpython-312.pyc,,
gunicorn/__pycache__/util.cpython-312.pyc,,
gunicorn/app/__init__.py,sha256=8m9lIbhRssnbGuBeQUA-vNSNbMeNju9Q_PUnnNfqOYU,105
gunicorn/app/__pycache__/__init__.cpython-312.pyc,,
gunicorn/app/__pycache__/base.cpython-312.pyc,,
gunicorn/app/__pycache__/pasterapp.cpython-312.pyc,,
gunicorn/app/__pycache__/wsgiapp.cpython-312.pyc,,
gunicorn/app/base.py,sha256=KV2aIO50JTlakHL82q9zu3LhCJrDmUmaViwSy14Gk6U,7370
gunicorn/app/pasterapp.py,sha256=BIa0mz_J86NuObUw2UIyjLYKUm8V3b034pJrTkvF-sA,2016
gunicorn/app/wsgiapp.py,sha256=gVBgUc_3uSK0QzXYQ1XbutacEGjf44CgxAaYkgwfucY,1924
gunicorn/arbiter.py,sha256=ivTy4mcsGomBihPPBUShIq4O066cYW3ity3Gjhr5eR0,33043
gunicorn/asgi/__init__.py,sha256=AgQCHdNrWGGnHGsjx6vXc2UG0hyoM8deGxF77wvaR9w,803
gunicorn/asgi/__pycache__/__init__.cpython-312.pyc,,
gunicorn/asgi/__pycache__/lifespan.cpython-312.pyc,,
gunicorn/asgi/__pycache__/message.cpython-312.pyc,,
gunicorn/asgi/__pycache__/protocol.cpython-312.pyc,,
gunicorn/asgi/__pycache__/unreader.cpython-312.pyc,,
gunicorn/asgi/__pycache__/uwsgi.cpython-312.pyc,,
gunicorn/asgi/__pycache__/websocket.cpython-312.pyc,,
gunicorn/asgi/lifespan.py,sha256=DWHTb5174YGvBwYFJYiOIBwJmpVMKJORJaNabjtuUvw,6275
gunicorn/asgi/message.py,sha256=UOjp7iOWki0AGxZFPEr4tc2asDDkuJsAOR5rHrgcI98,24904
gunicorn/asgi/protocol.py,sha256=M2J99A2SsMvhsgUEX8pnYSWdIZkzm8l768P_8ngPhns,35639
gunicorn/asgi/unreader.py,sha256=i8XBuoFGVi-sNoMNjTzl389s4maz7MFwwpJJ3SlP3qU,2881
gunicorn/asgi/uwsgi.py,sha256=Sro0z_fCXZ7EuC4UcI2rvKGQ_0EEsLNpjIRYXOT_XQ4,5523
gunicorn/asgi/websocket.py,sha256=PzsFXKoXRcTddsc6vTvRlLpYVM-a_mMjGZS0NCOlo0E,12081
gunicorn/config.py,sha256=anuvrQMjQAj9ThB4pv7O51toJbF7Ur1n_Gu8FRttNr8,92548
gunicorn/ctl/__init__.py,sha256=Z2lOTPMyTjTf9_sZ6PF3Hvqhv7Ye838vlp6_-pQuDxk,496
gunicorn/ctl/__pycache__/__init__.cpython-312.pyc,,
gunicorn/ctl/__pycache__/cli.cpython-312.pyc,,
gunicorn/ctl/__pycache__/client.cpython-312.pyc,,
gunicorn/ctl/__pycache__/handlers.cpython-312.pyc,,
gunicorn/ctl/__pycache__/protocol.cpython-312.pyc,,
gunicorn/ctl/__pycache__/server.cpython-312.pyc,,
gunicorn/ctl/cli.py,sha256=jFMIFJtlcjesioFprwbHKna810NvCYy_bkPMt6bB8Jo,13110
gunicorn/ctl/client.py,sha256=MjCSa-IMCezg9r2xvjcgAf5M6RVOB_69ZNOnWyO6zJg,3478
gunicorn/ctl/handlers.py,sha256=91wvhsYKh1YnJAZgHfJ3o6aH5Ir8A1KmHGwGtjrRx8c,18207
gunicorn/ctl/protocol.py,sha256=aKRk1c8blWJ3lxrt1FzCd2CfwwprZwG-wFK0kz17IiI,5705
gunicorn/ctl/server.py,sha256=Ttk6TJuTdmMkh6bF3V28DaTGJi11YtPR_1XLm_iQMdg,9409
gunicorn/debug.py,sha256=c8cQv_g3d22JE6A4hv7FNmMhm4wq6iB_E-toorpqJcw,2263
gunicorn/dirty/__init__.py,sha256=6c6MGPYQIEkAqhIpaf_TNcoImHVO5e4t2yuD3qskoUA,2017
gunicorn/dirty/__pycache__/__init__.cpython-312.pyc,,
gunicorn/dirty/__pycache__/app.cpython-312.pyc,,
gunicorn/dirty/__pycache__/arbiter.cpython-312.pyc,,
gunicorn/dirty/__pycache__/client.cpython-312.pyc,,
gunicorn/dirty/__pycache__/errors.cpython-312.pyc,,
gunicorn/dirty/__pycache__/protocol.cpython-312.pyc,,
gunicorn/dirty/__pycache__/stash.cpython-312.pyc,,
gunicorn/dirty/__pycache__/tlv.cpython-312.pyc,,
gunicorn/dirty/__pycache__/worker.cpython-312.pyc,,
gunicorn/dirty/app.py,sha256=gst70jJ5cdzDa3xoCF-gu1xEwjcSS7exkzMTrzj1WLQ,10716
gunicorn/dirty/arbiter.py,sha256=WgKiQ3XRMAf1kCaUdtW_VhcM7keu5TYimOXHMGDWRl4,41576
gunicorn/dirty/client.py,sha256=fkc7mE1sQxgngHxL0rziqvqr4uIJ8ox3qYTxul1EU1w,24310
gunicorn/dirty/errors.py,sha256=LCHOra5SvVCMxLHDIBmlaoslSzAH_HwYZXSqUPpReEI,6401
gunicorn/dirty/protocol.py,sha256=y4jVVKIvEz5d10SQwTRb577UVG3fM4k9DNsltJPQKiI,24862
gunicorn/dirty/stash.py,sha256=xHepgEQcgxtT56VtftXWEL6lA5MA9Q4FKrtwdG5ulnE,13582
gunicorn/dirty/tlv.py,sha256=P6z8O8IJEYy-5t2yZSCwEheaQ5ZIsDV1K8tiggS6fxs,10428
gunicorn/dirty/worker.py,sha256=0orR-054bfZiUbd6Wu9DYu8eiSrl6riG7Cg9Y0DcPoU,17476
gunicorn/errors.py,sha256=iLTJQC4SVSRoygIGGHXvEp0d8UdzpeqmMRqUcF0JI14,897
gunicorn/glogging.py,sha256=8MfGPNbA5cakvGkyQtr9YmcvZ-MeAwVKWFLx8PeEhsc,15307
gunicorn/http/__init__.py,sha256=dgv0hNXC4hTwAfXmoJHO5wWVggcGiwEtteFMnlCS7k8,1162
gunicorn/http/__pycache__/__init__.cpython-312.pyc,,
gunicorn/http/__pycache__/body.cpython-312.pyc,,
gunicorn/http/__pycache__/errors.cpython-312.pyc,,
gunicorn/http/__pycache__/message.cpython-312.pyc,,
gunicorn/http/__pycache__/parser.cpython-312.pyc,,
gunicorn/http/__pycache__/unreader.cpython-312.pyc,,
gunicorn/http/__pycache__/wsgi.cpython-312.pyc,,
gunicorn/http/body.py,sha256=sQgp_hJUjx8DK6LYzklMTl-xKcX8efsbreCKzowCGmo,7600
gunicorn/http/errors.py,sha256=LqU-Vt9tu2W0uFsosipxT9hZTFxFq5JwrGQlER3cSzY,3835
gunicorn/http/message.py,sha256=u7lr-CNIAlYX6D3IAW17daXPP7iJfMUJiYDdVMlwT5g,24440
gunicorn/http/parser.py,sha256=gEGllCulrz7Dvf3fE3eWw9H_qYuHn1S7e7F0eT3bmMM,1805
gunicorn/http/unreader.py,sha256=F3PlM4yeYsENsNyIl85kXmycjVHSGN1WT4mKnq8idRc,1971
gunicorn/http/wsgi.py,sha256=aDez-pyIAutWkJE0L_4DBtC9tJFC2PWSb-mD2Pb-YL8,15052
gunicorn/http2/__init__.py,sha256=4cxrWfVejZONOaw_j3TNn5EZpnGyHG_MrLWCe1I8X7c,2228
gunicorn/http2/__pycache__/__init__.cpython-312.pyc,,
gunicorn/http2/__pycache__/async_connection.cpython-312.pyc,,
gunicorn/http2/__pycache__/connection.cpython-312.pyc,,
gunicorn/http2/__pycache__/errors.cpython-312.pyc,,
gunicorn/http2/__pycache__/request.cpython-312.pyc,,
gunicorn/http2/__pycache__/stream.cpython-312.pyc,,
gunicorn/http2/async_connection.py,sha256=KX9xJqdQPZ8fKfKqwzErmjPsilknEbHyJJMP3conEXI,20641
gunicorn/http2/connection.py,sha256=eUmKOqkAQk2rEZJS8Vve7iRg03kQDv2NZwu5P9_DKZo,22321
gunicorn/http2/errors.py,sha256=Z5SGnGjabPRcj8DJonTo_oA10At-D3bieKb8TVwnakI,3825
gunicorn/http2/request.py,sha256=KSC346edKRB3uV-II_2u7NVZiGiu98QDpqhT0xRPd68,6488
gunicorn/http2/stream.py,sha256=tfFULqqLcbirCiXNqYd2j-vJeXkwdYHBlExYa0vvpLM,9437
gunicorn/instrument/__init__.py,sha256=8m9lIbhRssnbGuBeQUA-vNSNbMeNju9Q_PUnnNfqOYU,105
gunicorn/instrument/__pycache__/__init__.cpython-312.pyc,,
gunicorn/instrument/__pycache__/statsd.cpython-312.pyc,,
gunicorn/instrument/statsd.py,sha256=mLQ3b9-27r4QUxdRv6GyuXcrPB3HIyaxqnSl8-yW2vI,4969
gunicorn/pidfile.py,sha256=HntiveG8eJmwB8_D3o5cBXRuGKnC0cvWxg90MWh1hUc,2327
gunicorn/reloader.py,sha256=Dx3HJopxBn41aEOSjdHKm-fw9n_w7rX3z-H8YNMt3WE,3736
gunicorn/sock.py,sha256=QVUM6dB81Yx1AGv16Tn1DBxG2K1lG9HXbi8CxZFvY6w,9295
gunicorn/systemd.py,sha256=DmWbcqeRyHdAIy70UCEg2J93v6PpESp3EFTNm0Djgyg,2498
gunicorn/util.py,sha256=Jp4iw5id-BHlcrT_ifnXDS9oH80IMirZLpR419a9dBI,19412
gunicorn/uwsgi/__init__.py,sha256=ExWw2tRgxiVPiV7iHw1PngVegxhNHGJDFs6GvdJCr74,502
gunicorn/uwsgi/__pycache__/__init__.cpython-312.pyc,,
gunicorn/uwsgi/__pycache__/errors.cpython-312.pyc,,
gunicorn/uwsgi/__pycache__/message.cpython-312.pyc,,
gunicorn/uwsgi/__pycache__/parser.cpython-312.pyc,,
gunicorn/uwsgi/errors.py,sha256=6u_qwzZLBQADUpmT-RuTnqjZ11PxBnpNzGAmzgnQrK4,1318
gunicorn/uwsgi/message.py,sha256=Owv6oNcz44mxxsAeId5ggqpJ6akHtNeuuZa2aWv4MMY,8599
gunicorn/uwsgi/parser.py,sha256=VQ7_omgPWo5YifLbDLlZAi4hWXUjVhxYdEWBf0nOB1k,300
gunicorn/workers/__init__.py,sha256=9MiwmHmce-DsmeHnuy1bSK_obx5jv-C8-bm4EGHQn9I,660
gunicorn/workers/__pycache__/__init__.cpython-312.pyc,,
gunicorn/workers/__pycache__/base.cpython-312.pyc,,
gunicorn/workers/__pycache__/base_async.cpython-312.pyc,,
gunicorn/workers/__pycache__/gasgi.cpython-312.pyc,,
gunicorn/workers/__pycache__/geventlet.cpython-312.pyc,,
gunicorn/workers/__pycache__/ggevent.cpython-312.pyc,,
gunicorn/workers/__pycache__/gthread.cpython-312.pyc,,
gunicorn/workers/__pycache__/gtornado.cpython-312.pyc,,
gunicorn/workers/__pycache__/sync.cpython-312.pyc,,
gunicorn/workers/__pycache__/workertmp.cpython-312.pyc,,
gunicorn/workers/base.py,sha256=biYCabBN7PKLfGbevxuIYp8tiJAWmb5mzel1GsjhU-c,9746
gunicorn/workers/base_async.py,sha256=ZHBsZoXhgIFGm8qfHgB2pCK5juKmOCArQVXstKoEtRI,9763
gunicorn/workers/gasgi.py,sha256=qTXzhSVeVFA75ZRVIwzSLC-qZfLEERuMOUYkX5w-RIA,10697
gunicorn/workers/geventlet.py,sha256=ZDqzMtNKdLSXpCUiA9lW7B8S7EcrZWFLJ-g0TdcOfhk,7740
gunicorn/workers/ggevent.py,sha256=zYfqPp7J6hXkUDtRBFZCvVGWKloD7onATr6l_94OfXY,5885
gunicorn/workers/gthread.py,sha256=UY7icFbNY0fKexaj-B7ZrwtYGRBI9Xptc6WyQM4qdBY,22328
gunicorn/workers/gtornado.py,sha256=L5NvCfzbZ9FGsatn6bQuasC3KKEU79893Ff1Ypi55g8,3894
gunicorn/workers/sync.py,sha256=eJgL-q5L88mRfk9sFLYQx3tuaSRlW_eePjmY-t2bfmM,7559
gunicorn/workers/workertmp.py,sha256=bswGosCIDb_wBfdGaFqHopgxbmJ6rgVXYlVhJDWZKIc,1604
@@ -0,0 +1,5 @@
Wheel-Version: 1.0
Generator: setuptools (82.0.0)
Root-Is-Purelib: true
Tag: py3-none-any
@@ -0,0 +1,6 @@
[console_scripts]
gunicorn = gunicorn.app.wsgiapp:run
gunicornc = gunicorn.ctl.cli:main
[paste.server_runner]
main = gunicorn.app.pasterapp:serve
@@ -0,0 +1,23 @@
2009-2026 (c) Benoît Chesneau <benoitc@gunicorn.org>
2009-2015 (c) Paul J. Davis <paul.joseph.davis@gmail.com>
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1 @@
gunicorn