gitextract_4qwyzu2o/ ├── .dockerignore ├── .git-blame-ignore-revs ├── .gitattributes ├── .github/ │ ├── dependabot.yaml │ └── workflows/ │ ├── ci.yaml │ ├── gh-pages.yaml │ └── release.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── .readthedocs.yaml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── LICENSE ├── MANIFEST.in ├── Makefile ├── README.md ├── build.py ├── docs/ │ ├── api/ │ │ ├── benchmarking.rst │ │ ├── hashers.rst │ │ ├── index.rst │ │ └── tools.rst │ ├── conf.py │ ├── examples/ │ │ ├── benchmarking.rst │ │ ├── deduplication.rst │ │ ├── detecting_csam.rst │ │ └── index.rst │ ├── index.rst │ └── requirements.txt ├── perception/ │ ├── __init__.py │ ├── approximate_deduplication/ │ │ ├── __init__.py │ │ ├── _graph_backend.py │ │ ├── debug.py │ │ ├── index.py │ │ └── serve.py │ ├── benchmarking/ │ │ ├── __init__.py │ │ ├── common.py │ │ ├── extensions.pyx │ │ ├── image.py │ │ ├── image_transforms.py │ │ ├── video.py │ │ └── video_transforms.py │ ├── extensions.pyx │ ├── hashers/ │ │ ├── __init__.py │ │ ├── hasher.py │ │ ├── image/ │ │ │ ├── __init__.py │ │ │ ├── average.py │ │ │ ├── dhash.py │ │ │ ├── opencv.py │ │ │ ├── pdq.py │ │ │ ├── phash.py │ │ │ └── wavelet.py │ │ ├── tools.py │ │ └── video/ │ │ ├── __init__.py │ │ ├── framewise.py │ │ └── tmk.py │ ├── local_descriptor_deduplication.py │ ├── py.typed │ ├── testing/ │ │ ├── __init__.py │ │ ├── images/ │ │ │ └── README.md │ │ ├── logos/ │ │ │ └── README.md │ │ └── videos/ │ │ ├── README.md │ │ ├── rgb.m4v │ │ ├── v1.m4v │ │ └── v2.m4v │ ├── tools.py │ └── utils.py ├── poetry.toml ├── pyproject.toml ├── setup.py └── tests/ ├── test_approximate_deduplication.py ├── test_benchmarking.py ├── test_hashers.py ├── test_local_descriptor_deduplication.py ├── test_tmk.py └── test_tools.py