diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
index 6f15b22..131c639 100644
--- a/.github/workflows/linting.yml
+++ b/.github/workflows/linting.yml
@@ -1,7 +1,7 @@
name: Linting
on: [push, pull_request]
jobs:
- lint:
+ lint:
# Run per push for internal contributers. This isn't possible for forked pull requests,
# so we'll need to run on PR events for external contributers.
# String comparison below is case insensitive.
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 70d7508..a04d1e6 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,11 +1,11 @@
repos:
- repo: https://github.com/phantomcyber/dev-cicd-tools
- rev: v1.16
+ rev: v1.20
hooks:
- id: org-hook
- id: package-app-dependencies
- repo: https://github.com/Yelp/detect-secrets
- rev: v1.4.0
+ rev: v1.5.0
hooks:
- id: detect-secrets
args: ['--no-verify']
diff --git a/LICENSE b/LICENSE
index 81a1474..817ffb1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright 2024 Splunk Inc.
+ Copyright (c) Varonis, 2024
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -198,4 +198,4 @@
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
- limitations under the License.
\ No newline at end of file
+ limitations under the License.
diff --git a/__init__.py b/__init__.py
index e69de29..c2c8098 100644
--- a/__init__.py
+++ b/__init__.py
@@ -0,0 +1,20 @@
+# File: __init__.py
+#
+# Copyright (c) Varonis, 2024
+#
+# This unpublished material is proprietary to Varonis SaaS. All
+# rights reserved. The methods and techniques described herein are
+# considered trade secrets and/or confidential. Reproduction or
+# distribution, in whole or in part, is forbidden except by express
+# written permission of Varonis SaaS.
+#
+# Licensed under the Apache License, Version 2.0 (the 'License');
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software distributed under
+# the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+# either express or implied. See the License for the specific language governing permissions
+# and limitations under the License.
diff --git a/manual_readme_content.md b/manual_readme_content.md
index 2472a64..d6b2a2d 100644
--- a/manual_readme_content.md
+++ b/manual_readme_content.md
@@ -1,3 +1,24 @@
+[comment]: # "File: README.md"
+[comment]: # "Copyright (c) Varonis, 2024"
+[comment]: # ""
+[comment]: # "This unpublished material is proprietary to Varonis SaaS. All"
+[comment]: # "rights reserved. The methods and techniques described herein are"
+[comment]: # "considered trade secrets and/or confidential. Reproduction or"
+[comment]: # "distribution, in whole or in part, is forbidden except by express"
+[comment]: # "written permission of Varonis SaaS."
+[comment]: # ""
+[comment]: # "Licensed under the Apache License, Version 2.0 (the 'License');"
+[comment]: # "you may not use this file except in compliance with the License."
+[comment]: # "You may obtain a copy of the License at"
+[comment]: # ""
+[comment]: # " http://www.apache.org/licenses/LICENSE-2.0"
+[comment]: # ""
+[comment]: # "Unless required by applicable law or agreed to in writing, software distributed under"
+[comment]: # "the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,"
+[comment]: # "either express or implied. See the License for the specific language governing permissions"
+[comment]: # "and limitations under the License."
+[comment]: # ""
+
Provide the following configuration settings for the integration setup to establish a successful connection:
* **Varonis FQDN** - Enter the Varonis Web Interface address. This is the Fully Qualified Domain Name (FQDN) or IP address of the Varonis server to which you want to connect.
diff --git a/pyproject.toml b/pyproject.toml
index 48f04b5..474efd9 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,4 +4,4 @@ target-version = ['py39']
verbose = true
[tool.isort]
-line_length = 145
\ No newline at end of file
+line_length = 145
diff --git a/readme.html b/readme.html
deleted file mode 100644
index cbbbd69..0000000
--- a/readme.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
Provide the following configuration settings for the integration setup to establish a successful connection:
-
-- Varonis FQDN - Enter the Varonis Web Interface address. This is the Fully Qualified Domain Name (FQDN) or IP address of the Varonis server to which you want to connect.
-- Varonis Api Key - API key generation.
-- Alert Retrieval Start Point - Enter the past number of days from which to start retrieving alerts. Up to 30 days and 1,000 alerts are supported.
-- Threat Detection Policies - To retrieve alerts related to specific threat detection policies, enter the relevant policy names. Recomended: Leave this blank to retrive all Alerts (default).
-- Alert Status - Specify the Varonis alert status.
-- Alert Severity - Specify the alert severity.
-
-For additional information, please check: Our General documentation.
Have a general inquiry or want to contact Varonis? Contact us.
\ No newline at end of file
diff --git a/release_notes/unreleased.md b/release_notes/unreleased.md
index fbcb2fd..3bdcd3d 100644
--- a/release_notes/unreleased.md
+++ b/release_notes/unreleased.md
@@ -1 +1,2 @@
**Unreleased**
+* Initial Release
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index c11a46f..7ac617a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1 @@
-beautifulsoup4==4.8.1
dateparser==1.1.7
-requests==2.25.1
diff --git a/test_data/get_varonissaas_alerted_events_result.json b/test_data/get_varonissaas_alerted_events_result.json
index 5b4c3a0..5a9472c 100644
--- a/test_data/get_varonissaas_alerted_events_result.json
+++ b/test_data/get_varonissaas_alerted_events_result.json
@@ -71,4 +71,4 @@
"OnAccountIsLockout": null,
"Path": "dev3cf41.com"
}
-]
\ No newline at end of file
+]
diff --git a/test_data/get_varonissaas_alerts_empty_param_result.json b/test_data/get_varonissaas_alerts_empty_param_result.json
index 0dd9309..ca7d4eb 100644
--- a/test_data/get_varonissaas_alerts_empty_param_result.json
+++ b/test_data/get_varonissaas_alerts_empty_param_result.json
@@ -59,4 +59,4 @@
"IngestTime": "2023-12-19T16:38:39.000000+0000",
"Url": null
}
-]
\ No newline at end of file
+]
diff --git a/test_data/get_varonissaas_alerts_result.json b/test_data/get_varonissaas_alerts_result.json
index 6e578a5..58cd8f5 100644
--- a/test_data/get_varonissaas_alerts_result.json
+++ b/test_data/get_varonissaas_alerts_result.json
@@ -1529,4 +1529,4 @@
"IngestTime": "2023-12-19T13:03:38.000000+0000",
"Url": null
}
-]
\ No newline at end of file
+]
diff --git a/tox.ini b/tox.ini
index c4644ad..2b96e78 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,7 +1,7 @@
[flake8]
max-line-length = 145
max-complexity = 28
-extend-ignore = F403,E128,E126,E111,E121,E127,E731,E201,E202,F405,E722,D,W292
+extend-ignore = F403,E128,E126,E121,E127,E731,E201,E202,E203,E701,F405,E722,D
[isort]
line_length = 145
diff --git a/varonissaas.json b/varonissaas.json
index 542f201..8b59a0d 100644
--- a/varonissaas.json
+++ b/varonissaas.json
@@ -11,7 +11,7 @@
"product_version_regex": ".*",
"publisher": "Varonis",
"license": "Copyright (c) Varonis, 2024",
- "app_version": "1.0.1",
+ "app_version": "1.0.0",
"utctime_updated": "2022-11-11T17:03:39.248366Z",
"package_name": "phantom_varonissaas",
"main_module": "varonissaas_connector.py",
@@ -26,7 +26,7 @@
"order": 0
},
"ingest_artifacts": {
- "description": "Should artifacts be ingested?",
+ "description": "Should artifacts be ingested",
"data_type": "boolean",
"required": true,
"order": 1
@@ -343,81 +343,66 @@
},
{
"data_path": "action_result.parameter.alert_severity",
- "data_type": "string",
- "column_order": 26
+ "data_type": "string"
},
{
"data_path": "action_result.parameter.alert_status",
- "data_type": "string",
- "column_order": 27
+ "data_type": "string"
},
{
"data_path": "action_result.parameter.descending_order",
- "data_type": "boolean",
- "column_order": 28
+ "data_type": "boolean"
},
{
"data_path": "action_result.parameter.device_name",
- "data_type": "string",
- "column_order": 29
+ "data_type": "string"
},
{
"data_path": "action_result.parameter.end_time",
- "data_type": "string",
- "column_order": 30
+ "data_type": "string"
},
{
"data_path": "action_result.parameter.last_days",
- "data_type": "numeric",
- "column_order": 31
+ "data_type": "numeric"
},
{
"data_path": "action_result.parameter.max_results",
- "data_type": "numeric",
- "column_order": 32
+ "data_type": "numeric"
},
{
"data_path": "action_result.parameter.page",
- "data_type": "numeric",
- "column_order": 33
+ "data_type": "numeric"
},
{
"data_path": "action_result.parameter.start_time",
- "data_type": "string",
- "column_order": 34
+ "data_type": "string"
},
{
"data_path": "action_result.parameter.threat_model_name",
- "data_type": "string",
- "column_order": 35
+ "data_type": "string"
},
{
"data_path": "action_result.parameter.user_name",
"contains": [
"user name"
],
- "data_type": "string",
- "column_order": 36
+ "data_type": "string"
},
{
"data_path": "action_result.summary",
- "data_type": "string",
- "column_order": 37
+ "data_type": "string"
},
{
"data_path": "action_result.message",
- "data_type": "string",
- "column_order": 38
+ "data_type": "string"
},
{
"data_path": "summary.total_objects",
- "data_type": "numeric",
- "column_order": 39
+ "data_type": "numeric"
},
{
"data_path": "summary.total_objects_successful",
- "data_type": "numeric",
- "column_order": 40
+ "data_type": "numeric"
}
],
"render": {
@@ -936,165 +921,41 @@
],
"pip_dependencies": {
"wheel": [
- {
- "module": "backports.zoneinfo",
- "input_file": "wheels/py36/backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
- },
- {
- "module": "beautifulsoup4",
- "input_file": "wheels/py3/beautifulsoup4-4.8.1-py3-none-any.whl"
- },
- {
- "module": "certifi",
- "input_file": "wheels/py3/certifi-2022.12.7-py3-none-any.whl"
- },
- {
- "module": "cffi",
- "input_file": "wheels/py36/cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
- },
- {
- "module": "chardet",
- "input_file": "wheels/shared/chardet-4.0.0-py2.py3-none-any.whl"
- },
- {
- "module": "cryptography",
- "input_file": "wheels/py36/cryptography-39.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
- },
{
"module": "dateparser",
- "input_file": "wheels/shared/dateparser-1.1.3-py2.py3-none-any.whl"
- },
- {
- "module": "idna",
- "input_file": "wheels/shared/idna-2.10-py2.py3-none-any.whl"
- },
- {
- "module": "importlib_resources",
- "input_file": "wheels/py3/importlib_resources-5.4.0-py3-none-any.whl"
- },
- {
- "module": "pycparser",
- "input_file": "wheels/shared/pycparser-2.21-py2.py3-none-any.whl"
- },
- {
- "module": "python_dateutil",
- "input_file": "wheels/shared/python_dateutil-2.8.2-py2.py3-none-any.whl"
+ "input_file": "wheels/shared/dateparser-1.1.7-py2.py3-none-any.whl"
},
{
"module": "pytz",
- "input_file": "wheels/shared/pytz-2022.7.1-py2.py3-none-any.whl"
- },
- {
- "module": "pytz_deprecation_shim",
- "input_file": "wheels/shared/pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl"
+ "input_file": "wheels/shared/pytz-2024.2-py2.py3-none-any.whl"
},
{
"module": "regex",
- "input_file": "wheels/py36/regex-2022.3.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
- },
- {
- "module": "requests",
- "input_file": "wheels/shared/requests-2.25.1-py2.py3-none-any.whl"
- },
- {
- "module": "six",
- "input_file": "wheels/shared/six-1.16.0-py2.py3-none-any.whl"
- },
- {
- "module": "soupsieve",
- "input_file": "wheels/py3/soupsieve-2.3.2.post1-py3-none-any.whl"
- },
- {
- "module": "tzdata",
- "input_file": "wheels/shared/tzdata-2022.7-py2.py3-none-any.whl"
+ "input_file": "wheels/py39/regex-2024.9.11-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl"
},
{
"module": "tzlocal",
- "input_file": "wheels/py3/tzlocal-4.2-py3-none-any.whl"
- },
- {
- "module": "urllib3",
- "input_file": "wheels/shared/urllib3-1.26.14-py2.py3-none-any.whl"
- },
- {
- "module": "zipp",
- "input_file": "wheels/py3/zipp-3.6.0-py3-none-any.whl"
+ "input_file": "wheels/py3/tzlocal-5.2-py3-none-any.whl"
}
]
},
"pip39_dependencies": {
"wheel": [
- {
- "module": "beautifulsoup4",
- "input_file": "wheels/py3/beautifulsoup4-4.8.1-py3-none-any.whl"
- },
- {
- "module": "certifi",
- "input_file": "wheels/py3/certifi-2022.12.7-py3-none-any.whl"
- },
- {
- "module": "cffi",
- "input_file": "wheels/py39/cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
- },
- {
- "module": "chardet",
- "input_file": "wheels/shared/chardet-4.0.0-py2.py3-none-any.whl"
- },
- {
- "module": "cryptography",
- "input_file": "wheels/py36/cryptography-39.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
- },
{
"module": "dateparser",
"input_file": "wheels/shared/dateparser-1.1.7-py2.py3-none-any.whl"
},
- {
- "module": "idna",
- "input_file": "wheels/shared/idna-2.10-py2.py3-none-any.whl"
- },
- {
- "module": "pycparser",
- "input_file": "wheels/shared/pycparser-2.21-py2.py3-none-any.whl"
- },
- {
- "module": "python_dateutil",
- "input_file": "wheels/shared/python_dateutil-2.8.2-py2.py3-none-any.whl"
- },
{
"module": "pytz",
- "input_file": "wheels/shared/pytz-2022.7.1-py2.py3-none-any.whl"
- },
- {
- "module": "pytz_deprecation_shim",
- "input_file": "wheels/shared/pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl"
+ "input_file": "wheels/shared/pytz-2024.2-py2.py3-none-any.whl"
},
{
"module": "regex",
- "input_file": "wheels/py39/regex-2022.10.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
- },
- {
- "module": "requests",
- "input_file": "wheels/shared/requests-2.25.1-py2.py3-none-any.whl"
- },
- {
- "module": "six",
- "input_file": "wheels/shared/six-1.16.0-py2.py3-none-any.whl"
- },
- {
- "module": "soupsieve",
- "input_file": "wheels/py3/soupsieve-2.4-py3-none-any.whl"
- },
- {
- "module": "tzdata",
- "input_file": "wheels/shared/tzdata-2022.7-py2.py3-none-any.whl"
+ "input_file": "wheels/py39/regex-2024.9.11-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl"
},
{
"module": "tzlocal",
- "input_file": "wheels/py3/tzlocal-4.2-py3-none-any.whl"
- },
- {
- "module": "urllib3",
- "input_file": "wheels/shared/urllib3-1.26.14-py2.py3-none-any.whl"
+ "input_file": "wheels/py3/tzlocal-5.2-py3-none-any.whl"
}
]
}
diff --git a/varonissaas_connector.py b/varonissaas_connector.py
index 976ce78..1d21d61 100644
--- a/varonissaas_connector.py
+++ b/varonissaas_connector.py
@@ -1,6 +1,6 @@
# File: varonissaas_connector.py
#
-# Copyright (c) Varonis, 2023
+# Copyright (c) Varonis, 2024
#
# This unpublished material is proprietary to Varonis SaaS. All
# rights reserved. The methods and techniques described herein are
diff --git a/varonissaas_consts.py b/varonissaas_consts.py
index 5c0b8b7..ed6e0f3 100644
--- a/varonissaas_consts.py
+++ b/varonissaas_consts.py
@@ -1,6 +1,6 @@
# File: varonissaas_consts.py
#
-# Copyright (c) Varonis, 2023
+# Copyright (c) Varonis, 2024
#
# This unpublished material is proprietary to Varonis SaaS. All
# rights reserved. The methods and techniques described herein are
diff --git a/varonissaas_search.py b/varonissaas_search.py
index 078531c..2e1db2e 100644
--- a/varonissaas_search.py
+++ b/varonissaas_search.py
@@ -1,3 +1,24 @@
+# File: varonissaas_search.py
+#
+# Copyright (c) Varonis, 2024
+#
+# This unpublished material is proprietary to Varonis SaaS. All
+# rights reserved. The methods and techniques described herein are
+# considered trade secrets and/or confidential. Reproduction or
+# distribution, in whole or in part, is forbidden except by express
+# written permission of Varonis SaaS.
+#
+# Licensed under the Apache License, Version 2.0 (the 'License');
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software distributed under
+# the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+# either express or implied. See the License for the specific language governing permissions
+# and limitations under the License.
+
from datetime import datetime, timedelta
from enum import Enum
from typing import Any, Dict, List, Optional, TypeVar
diff --git a/varonissaas_test.py b/varonissaas_test.py
index 7167546..860ee4d 100644
--- a/varonissaas_test.py
+++ b/varonissaas_test.py
@@ -1,3 +1,24 @@
+# File: varonissaas_test.py
+#
+# Copyright (c) Varonis, 2024
+#
+# This unpublished material is proprietary to Varonis SaaS. All
+# rights reserved. The methods and techniques described herein are
+# considered trade secrets and/or confidential. Reproduction or
+# distribution, in whole or in part, is forbidden except by express
+# written permission of Varonis SaaS.
+#
+# Licensed under the Apache License, Version 2.0 (the 'License');
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software distributed under
+# the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+# either express or implied. See the License for the specific language governing permissions
+# and limitations under the License.
+
import json
import unittest
from unittest.mock import MagicMock
diff --git a/varonissaas_tools.py b/varonissaas_tools.py
index 581aad8..1784cf5 100644
--- a/varonissaas_tools.py
+++ b/varonissaas_tools.py
@@ -1,3 +1,24 @@
+# File: varonissaas_test.py
+#
+# Copyright (c) Varonis, 2024
+#
+# This unpublished material is proprietary to Varonis SaaS. All
+# rights reserved. The methods and techniques described herein are
+# considered trade secrets and/or confidential. Reproduction or
+# distribution, in whole or in part, is forbidden except by express
+# written permission of Varonis SaaS.
+#
+# Licensed under the Apache License, Version 2.0 (the 'License');
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software distributed under
+# the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+# either express or implied. See the License for the specific language governing permissions
+# and limitations under the License.
+
from collections import deque
from datetime import datetime, timezone
from itertools import groupby, islice
diff --git a/wheels/py3/beautifulsoup4-4.8.1-py3-none-any.whl b/wheels/py3/beautifulsoup4-4.8.1-py3-none-any.whl
deleted file mode 100644
index 45886ac..0000000
Binary files a/wheels/py3/beautifulsoup4-4.8.1-py3-none-any.whl and /dev/null differ
diff --git a/wheels/py3/certifi-2022.12.7-py3-none-any.whl b/wheels/py3/certifi-2022.12.7-py3-none-any.whl
deleted file mode 100644
index a083056..0000000
Binary files a/wheels/py3/certifi-2022.12.7-py3-none-any.whl and /dev/null differ
diff --git a/wheels/py3/importlib_resources-5.4.0-py3-none-any.whl b/wheels/py3/importlib_resources-5.4.0-py3-none-any.whl
deleted file mode 100644
index 27369fe..0000000
Binary files a/wheels/py3/importlib_resources-5.4.0-py3-none-any.whl and /dev/null differ
diff --git a/wheels/py3/soupsieve-2.3.2.post1-py3-none-any.whl b/wheels/py3/soupsieve-2.3.2.post1-py3-none-any.whl
deleted file mode 100644
index b363a9b..0000000
Binary files a/wheels/py3/soupsieve-2.3.2.post1-py3-none-any.whl and /dev/null differ
diff --git a/wheels/py3/soupsieve-2.4-py3-none-any.whl b/wheels/py3/soupsieve-2.4-py3-none-any.whl
deleted file mode 100644
index c16c128..0000000
Binary files a/wheels/py3/soupsieve-2.4-py3-none-any.whl and /dev/null differ
diff --git a/wheels/py3/tzlocal-4.2-py3-none-any.whl b/wheels/py3/tzlocal-4.2-py3-none-any.whl
deleted file mode 100644
index ccd3718..0000000
Binary files a/wheels/py3/tzlocal-4.2-py3-none-any.whl and /dev/null differ
diff --git a/wheels/py3/tzlocal-5.2-py3-none-any.whl b/wheels/py3/tzlocal-5.2-py3-none-any.whl
new file mode 100644
index 0000000..fee6193
Binary files /dev/null and b/wheels/py3/tzlocal-5.2-py3-none-any.whl differ
diff --git a/wheels/py3/zipp-3.6.0-py3-none-any.whl b/wheels/py3/zipp-3.6.0-py3-none-any.whl
deleted file mode 100644
index bc23f25..0000000
Binary files a/wheels/py3/zipp-3.6.0-py3-none-any.whl and /dev/null differ
diff --git a/wheels/py36/backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl b/wheels/py36/backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
deleted file mode 100644
index 59f7622..0000000
Binary files a/wheels/py36/backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl and /dev/null differ
diff --git a/wheels/py36/cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl b/wheels/py36/cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
deleted file mode 100644
index c23f83c..0000000
Binary files a/wheels/py36/cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl and /dev/null differ
diff --git a/wheels/py36/cryptography-39.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl b/wheels/py36/cryptography-39.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
deleted file mode 100644
index 5698590..0000000
Binary files a/wheels/py36/cryptography-39.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl and /dev/null differ
diff --git a/wheels/py36/regex-2022.3.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl b/wheels/py36/regex-2022.3.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
deleted file mode 100644
index 131f09f..0000000
Binary files a/wheels/py36/regex-2022.3.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl and /dev/null differ
diff --git a/wheels/py39/cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl b/wheels/py39/cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
deleted file mode 100644
index 31c25fa..0000000
Binary files a/wheels/py39/cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl and /dev/null differ
diff --git a/wheels/py39/regex-2022.10.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl b/wheels/py39/regex-2022.10.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
deleted file mode 100644
index a88e773..0000000
Binary files a/wheels/py39/regex-2022.10.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl and /dev/null differ
diff --git a/wheels/py39/regex-2024.9.11-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl b/wheels/py39/regex-2024.9.11-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
new file mode 100644
index 0000000..031140f
Binary files /dev/null and b/wheels/py39/regex-2024.9.11-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl differ
diff --git a/wheels/shared/chardet-4.0.0-py2.py3-none-any.whl b/wheels/shared/chardet-4.0.0-py2.py3-none-any.whl
deleted file mode 100644
index b83344e..0000000
Binary files a/wheels/shared/chardet-4.0.0-py2.py3-none-any.whl and /dev/null differ
diff --git a/wheels/shared/dateparser-1.1.3-py2.py3-none-any.whl b/wheels/shared/dateparser-1.1.3-py2.py3-none-any.whl
deleted file mode 100644
index 3f3c139..0000000
Binary files a/wheels/shared/dateparser-1.1.3-py2.py3-none-any.whl and /dev/null differ
diff --git a/wheels/shared/idna-2.10-py2.py3-none-any.whl b/wheels/shared/idna-2.10-py2.py3-none-any.whl
deleted file mode 100644
index 41225cb..0000000
Binary files a/wheels/shared/idna-2.10-py2.py3-none-any.whl and /dev/null differ
diff --git a/wheels/shared/pycparser-2.21-py2.py3-none-any.whl b/wheels/shared/pycparser-2.21-py2.py3-none-any.whl
deleted file mode 100644
index fef6735..0000000
Binary files a/wheels/shared/pycparser-2.21-py2.py3-none-any.whl and /dev/null differ
diff --git a/wheels/shared/python_dateutil-2.8.2-py2.py3-none-any.whl b/wheels/shared/python_dateutil-2.8.2-py2.py3-none-any.whl
deleted file mode 100644
index 8ffb923..0000000
Binary files a/wheels/shared/python_dateutil-2.8.2-py2.py3-none-any.whl and /dev/null differ
diff --git a/wheels/shared/pytz-2022.7.1-py2.py3-none-any.whl b/wheels/shared/pytz-2024.2-py2.py3-none-any.whl
similarity index 53%
rename from wheels/shared/pytz-2022.7.1-py2.py3-none-any.whl
rename to wheels/shared/pytz-2024.2-py2.py3-none-any.whl
index ed7c492..b464456 100644
Binary files a/wheels/shared/pytz-2022.7.1-py2.py3-none-any.whl and b/wheels/shared/pytz-2024.2-py2.py3-none-any.whl differ
diff --git a/wheels/shared/pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl b/wheels/shared/pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl
deleted file mode 100644
index afca62c..0000000
Binary files a/wheels/shared/pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl and /dev/null differ
diff --git a/wheels/shared/requests-2.25.1-py2.py3-none-any.whl b/wheels/shared/requests-2.25.1-py2.py3-none-any.whl
deleted file mode 100644
index 8d70e97..0000000
Binary files a/wheels/shared/requests-2.25.1-py2.py3-none-any.whl and /dev/null differ
diff --git a/wheels/shared/six-1.16.0-py2.py3-none-any.whl b/wheels/shared/six-1.16.0-py2.py3-none-any.whl
deleted file mode 100644
index fd94265..0000000
Binary files a/wheels/shared/six-1.16.0-py2.py3-none-any.whl and /dev/null differ
diff --git a/wheels/shared/tzdata-2022.7-py2.py3-none-any.whl b/wheels/shared/tzdata-2022.7-py2.py3-none-any.whl
deleted file mode 100644
index aa3eef7..0000000
Binary files a/wheels/shared/tzdata-2022.7-py2.py3-none-any.whl and /dev/null differ
diff --git a/wheels/shared/urllib3-1.26.14-py2.py3-none-any.whl b/wheels/shared/urllib3-1.26.14-py2.py3-none-any.whl
deleted file mode 100644
index 2e969c0..0000000
Binary files a/wheels/shared/urllib3-1.26.14-py2.py3-none-any.whl and /dev/null differ