PyWavelets, wavelet transform module
Project description
Service |
Master branch |
---|---|
GitHub |
|
Appveyor |
|
Read the Docs |
PyWavelets
What is PyWavelets
PyWavelets is a free Open Source library for wavelet transforms in Python. Wavelets are mathematical basis functions that are localized in both time and frequency. Wavelet transforms are time-frequency transforms employing wavelets. They are similar to Fourier transforms, the difference being that Fourier transforms are localized only in frequency instead of in time and frequency.
The main features of PyWavelets are:
1D, 2D and nD Forward and Inverse Discrete Wavelet Transform (DWT and IDWT)
1D, 2D and nD Multilevel DWT and IDWT
1D and 2D Stationary Wavelet Transform (Undecimated Wavelet Transform)
1D and 2D Wavelet Packet decomposition and reconstruction
1D Continuous Wavelet Transform
Computing Approximations of wavelet and scaling functions
Over 100 built-in wavelet filters and support for custom wavelets
Single and double precision calculations
Real and complex calculations
Results compatible with Matlab Wavelet Toolbox (TM)
Documentation
Documentation with detailed examples and links to more resources is available online at http://pywavelets.readthedocs.org.
For more usage examples see the demo directory in the source package.
Installation
PyWavelets supports Python >=3.7, and is only dependent on NumPy (supported versions are currently >= 1.14.6). To pass all of the tests, Matplotlib is also required. SciPy is also an optional dependency. When present, FFT-based continuous wavelet transforms will use FFTs from SciPy rather than NumPy.
There are binary wheels for Intel Linux, Windows and macOS / OSX on PyPi. If you are on one of these platforms, you should get a binary (precompiled) installation with:
pip install PyWavelets
Users of the Anaconda Python distribution may wish to obtain pre-built Windows, Intel Linux or macOS / OSX binaries from the conda-forge channel. This can be done via:
conda install -c conda-forge pywavelets
Several Linux distributions have their own packages for PyWavelets, but these tend to be moderately out of date. Query your Linux package manager tool for python-pywavelets, python-wavelets, python-pywt or a similar package name.
If you want or need to install from source, you will need a working C compiler (any common one will work) and a recent version of Cython. Navigate to the PyWavelets source code directory (containing pyproject.toml) and type:
pip install .
The most recent development version can be found on GitHub at https://github.com/PyWavelets/pywt.
The latest release, including source and binary packages for Intel Linux, macOS and Windows, is available for download from the Python Package Index. You can find source releases at the Releases Page.
State of development & Contributing
PyWavelets started in 2006 as an academic project for a master thesis on Analysis and Classification of Medical Signals using Wavelet Transforms and was maintained until 2012 by its original developer. In 2013 maintenance was taken over in a new repo) by a larger development team - a move supported by the original developer. The repo move doesn’t mean that this is a fork - the package continues to be developed under the name “PyWavelets”, and released on PyPi and Github (see this issue for the discussion where that was decided).
All contributions including bug reports, bug fixes, new feature implementations and documentation improvements are welcome. Moreover, developers with an interest in PyWavelets are very welcome to join the development team!
As of 2019, PyWavelets development is supported in part by Tidelift. Help support PyWavelets with the Tidelift Subscription
Contact
Use GitHub Issues or the mailing list to post your comments or questions.
Report a security vulnerability: https://tidelift.com/security
License
PyWavelets is a free Open Source software released under the MIT license.
If you wish to cite PyWavelets in a publication, please use the following JOSS publication.
Specific releases can also be cited via Zenodo. The DOI below will correspond to the most recent release. DOIs for past versions can be found by following the link in the badge below to Zenodo:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file pywavelets-1.5.0.tar.gz
.
File metadata
- Download URL: pywavelets-1.5.0.tar.gz
- Upload date:
- Size: 3.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9e25c7cabef7ccd53f5fead26ab22152fe4cb937bad7411b5d506e2b5de38f6 |
|
MD5 | 6af08b6f004d04d9ee3464a1ee7b7f39 |
|
BLAKE2b-256 | eececfce0d615746d9b9ccc698401599183d6edb6d1bb0ae234bd717a840711d |
File details
Details for the file pywavelets-1.5.0-cp312-cp312-win_amd64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7115439f0dff291b8f81b69caff1a240695566f17c483752a49de9576c7332a4 |
|
MD5 | a915e5520596d7a2eb6e60c2a34d11d0 |
|
BLAKE2b-256 | 37cc3aa33e99e1031227749711177d916ca3a4a1fa1b63d830776bc49991f7ff |
File details
Details for the file pywavelets-1.5.0-cp312-cp312-win32.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp312-cp312-win32.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.12, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb123f01315c0fa54e25780f3b0ce0b096bab35f6c11cacbcd4ac9915f26508a |
|
MD5 | bbe12342b483a442517fb426bcd828a8 |
|
BLAKE2b-256 | be62be65c92798269e8d89ffb87c539eda3f2e16a4d4ee4b7e4e4a10e1f814ca |
File details
Details for the file pywavelets-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 322995ea0a57c96086782f0391934f9f00123087a62ad7bef0e778491f121931 |
|
MD5 | 9d8e3abc567e5ddbe9ef2b5f1458fc68 |
|
BLAKE2b-256 | b2e178b783f360bd579e87abb2c58f675653c9072538f5071a6ff11f1830071a |
File details
Details for the file pywavelets-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7dc392c3d3d5415b25b5c6ab3b77bb2ac2b7ff6c4d2fb81bd4633b9ac4b66f3 |
|
MD5 | c90f3ea33a681184c34ac8ed10bffdde |
|
BLAKE2b-256 | 4ea84b00cc6b76a85554c6112057bb29ccc37f1a6e4d565029f547c0c2fcffe6 |
File details
Details for the file pywavelets-1.5.0-cp312-cp312-macosx_11_0_arm64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7da6c2acd7253e5d45f371bcd6c0f34d70b2f82694420afb0631130bc89e3288 |
|
MD5 | d616e19aa324e56e294f8061a90b00ae |
|
BLAKE2b-256 | 76e3c852c254b6d117fd788134154e45c6e2d0e824cc88c25b04204308db0fd4 |
File details
Details for the file pywavelets-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.12, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3eba7f581a723132beb213ce4b291a51306e3d2f79241a71063294a71cfa25d |
|
MD5 | 60b1fa6db881a40f2ef746ba87a0f24b |
|
BLAKE2b-256 | df1774de34e3f8e514c8e31adbecdd135ba3519f28fe33f3f17aa08a87bc2a85 |
File details
Details for the file pywavelets-1.5.0-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 526e874ba79ee3779245737a3b8540defc7e92f6cec8f13258719cc1669f8b42 |
|
MD5 | 0d7ae9cf028a97a24f9ec62ee6082551 |
|
BLAKE2b-256 | c1c6711bf969348053876b9d3f3826cd7a00d045178e1493ed844b630c876493 |
File details
Details for the file pywavelets-1.5.0-cp311-cp311-win32.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp311-cp311-win32.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca2e1faaea7f7ff42c771e180635e2fb165cf23c9805c4fe05f9458bcb97d093 |
|
MD5 | e37beec1c01fa1a048988b71db0b5321 |
|
BLAKE2b-256 | 32e6ed02a9e995e8251c463d3ae9352b082336d7e4f5a55febb6e0beeb0c55dd |
File details
Details for the file pywavelets-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c3b10f1e1b08df4d918fa238ef5e5c51c111c4f6abdfecb19c26c540cbd8187 |
|
MD5 | 9327d0b1505659ded7416f70056f7285 |
|
BLAKE2b-256 | 79a3c13a5a01035e67def78aed4378993dcdce25650dab2e5117c16e1b7beccd |
File details
Details for the file pywavelets-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa54e6c6f2d6953f5f962eb1d1de7f9fbc5bdf06141f58c05d0d87072a05b8be |
|
MD5 | 81fd21c4f5079af0b1455bb330956e93 |
|
BLAKE2b-256 | b2c7684e320f69876de0a248a5816c93eb35a62ba20c9ded7160c6ed7e182003 |
File details
Details for the file pywavelets-1.5.0-cp311-cp311-macosx_11_0_arm64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4aca65696341aa64b98bf852d6768dbb345516710a2912419d68e9d484ddd6cd |
|
MD5 | b0264dda7675d16dd67b9888aa92f47c |
|
BLAKE2b-256 | 28f82cb2ed4c4fa0273bd6ea93231afadda4b01ca3f797dcf43bbac324612962 |
File details
Details for the file pywavelets-1.5.0-cp311-cp311-macosx_10_13_x86_64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp311-cp311-macosx_10_13_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.11, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cae4a0151e443e915905c120435e69ad410b484ce8af4839220e43a494c7c53 |
|
MD5 | 7edbe4751a049e8f4282c9116a42147b |
|
BLAKE2b-256 | 166f3966af28e12dab6475907ccae7f8e46df6f845a90029006bf96a32058ccc |
File details
Details for the file pywavelets-1.5.0-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67b65da9ef6380a48b8b53de6d8a4f83747b84b217a37944a4dcf3a53cdf308d |
|
MD5 | e9ea870e068c540a60986588ae84d79c |
|
BLAKE2b-256 | 8e505863eba135e64ab164371b42fd455330d047988d7dc56fe6096d42e6aec0 |
File details
Details for the file pywavelets-1.5.0-cp310-cp310-win32.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp310-cp310-win32.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51c8e9e081af40f61d194960db0f3dc0434bbd979dafcbbd6463134b3f482f37 |
|
MD5 | 591fa85e84df2be10db4804383d74976 |
|
BLAKE2b-256 | b275ffd0d7c7ef0c9a1188b842a2dc9406776e7b1208d445b6d3908cd18c048c |
File details
Details for the file pywavelets-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a8b58eaf946fbee002cce460d32a0e932c6d9e158aad10eea984e7f26cda15e |
|
MD5 | bc57b17e38ea92149a2847784ae620ca |
|
BLAKE2b-256 | b9c27dffd331ac88c1776d8bba0fa77c73202a4ce79dc8d203fc99007b715866 |
File details
Details for the file pywavelets-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c857081c037552f174732d864b55d8db4845f5e2fdf0e7bfc2df675a417906f4 |
|
MD5 | a9c70208542ee98113f376e213758875 |
|
BLAKE2b-256 | f32b2a3b5ffd5d911a54ed69e8b178df293e48e66e0f8648677b2b1d8b4c6d31 |
File details
Details for the file pywavelets-1.5.0-cp310-cp310-macosx_11_0_arm64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e045ee612de58e3175ae863c34072b6bf5b45b61264c1adbd75506ce31cedbb2 |
|
MD5 | 95bef298ad8a9b86e1b875fae19a8a5a |
|
BLAKE2b-256 | 0f584774b343572146cc8a42db0cf7d2fd0b28fe9bd87ff033bbf93082946eaf |
File details
Details for the file pywavelets-1.5.0-cp310-cp310-macosx_10_13_x86_64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp310-cp310-macosx_10_13_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.10, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05723b35191ceb7d0c0bc2898a9ff391c0f20e8ed9b75d30211464872efcac95 |
|
MD5 | 4420768a1214819efcd470ddf3097d94 |
|
BLAKE2b-256 | a0d8ffd93aff7e46d8e4bb4bfd51e96d2540c4c4a0bcf965933602176fa00975 |
File details
Details for the file pywavelets-1.5.0-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91847ac1b658cf985a7f91ff638ba1d4a9a0544c5480ecbf8db427baf455725a |
|
MD5 | c01fed8564efee46283ebffae1aa1d02 |
|
BLAKE2b-256 | 1212ec2f306196477b1a4d770d681a12f73acf62ae23ac1ea9441c867fe186f1 |
File details
Details for the file pywavelets-1.5.0-cp39-cp39-win32.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp39-cp39-win32.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.9, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f457d9faee286bd542c8f1921e38b8f5f54bc1949c0e349c8f1e9f8eb6d251a6 |
|
MD5 | 84a06d48c3d879e89a95a69500069f28 |
|
BLAKE2b-256 | eb987d270caf0ce64172ccd1ec7515f96776bf5e2a3fa6eaae4b37d9eada864b |
File details
Details for the file pywavelets-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49aa6abf9ac941f47f7ea26a3c7dd5c8bfcf0e903dc5ec68ed105b52bfccd4e2 |
|
MD5 | 94f7c10a7175133790ee1f103f6e2850 |
|
BLAKE2b-256 | a7581724d6362becfa71eded2dffe145e795786b13c3a66f6523f3aff1b3f3cf |
File details
Details for the file pywavelets-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d9763987b4a79917f007c1d5df0adc81adabbad3c7c0a368f4a7f12034816f3 |
|
MD5 | 4c26d96a0b55d33f183b502a5a068c12 |
|
BLAKE2b-256 | c2e52ba4527a313750b628e95eaab05c36b8cf393f5e081d87ad1a90f87e6459 |
File details
Details for the file pywavelets-1.5.0-cp39-cp39-macosx_11_0_arm64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00d5c37775a2baa4e5e6e9df3f93e6fc700a76bd50acd3b234bb13467cc54b6b |
|
MD5 | f99e5878e767e5a3c305c118bd340d15 |
|
BLAKE2b-256 | 467683c185662c782b71807fe84fa92f74d0f930661457aaf180f7163b4d5e59 |
File details
Details for the file pywavelets-1.5.0-cp39-cp39-macosx_10_13_x86_64.whl
.
File metadata
- Download URL: pywavelets-1.5.0-cp39-cp39-macosx_10_13_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.9, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34d189aed544687500a2fba5b8970951a76f62f1d140cc5f9440d9b32b14b8f5 |
|
MD5 | 2cf2cf670b4f4b5b7176f321212e9f02 |
|
BLAKE2b-256 | b0a8787508e85d579d0990b344410acdba4b6f45f19284404d2895cc8a35769d |