git: 82d4e4419621 - main - deskutils/calibre: Update to 7.13.0

From: Guido Falsi <madpilot_at_FreeBSD.org>
Date: Sat, 29 Jun 2024 13:43:20 UTC
The branch main has been updated by madpilot:

URL: https://cgit.FreeBSD.org/ports/commit/?id=82d4e4419621e0db6e1945bc0e56e83f969218ce

commit 82d4e4419621e0db6e1945bc0e56e83f969218ce
Author:     Guido Falsi <madpilot@FreeBSD.org>
AuthorDate: 2024-06-29 13:42:11 +0000
Commit:     Guido Falsi <madpilot@FreeBSD.org>
CommitDate: 2024-06-29 13:42:11 +0000

    deskutils/calibre: Update to 7.13.0
---
 deskutils/calibre/Makefile                        |  13 +-
 deskutils/calibre/distinfo                        |  14 +-
 deskutils/calibre/files/patch-setup_install.py    |  26 +---
 deskutils/calibre/files/patch-setup_iso__codes.py | 111 ++++++++++-----
 deskutils/calibre/files/patch-setup_resources.py  |  35 -----
 deskutils/calibre/files/user-agent-data.json      | 160 +++++++++++-----------
 6 files changed, 170 insertions(+), 189 deletions(-)

diff --git a/deskutils/calibre/Makefile b/deskutils/calibre/Makefile
index 271657278cc4..5b79ec551497 100644
--- a/deskutils/calibre/Makefile
+++ b/deskutils/calibre/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	calibre
-PORTVERSION=	7.12.0
+PORTVERSION=	7.13.0
 CATEGORIES=	deskutils python
 MASTER_SITES=	http://download.calibre-ebook.com/${PORTVERSION}/
 DISTFILES=	${DISTNAME}${EXTRACT_SUFX}
@@ -71,8 +71,8 @@ USE_RC_SUBR=	calibre
 USE_XORG=	x11 xext xrender
 
 USE_GITHUB=	nodefault
-GH_TUPLE=	kovidgoyal:calibre-translations:ce2962b:translations \
-		LibreOffice:dictionaries:7272a82:hypenation
+GH_TUPLE=	kovidgoyal:calibre-translations:6b7abc0:translations \
+		LibreOffice:dictionaries:fc2dc38:hypenation
 
 SHEBANG_GLOB=	*.py *.recipe *.sh
 python_OLD_CMD=	"/usr/bin/env  python" ${LOCALBASE}/bin/python3
@@ -98,8 +98,6 @@ SUB_LIST=	PYTHON_VERSION=${PYTHON_VERSION}
 ISOCODESWRKSRC!=	${BSDMAKE} -C ${.CURDIR}/../../misc/iso-codes -V WRKSRC
 
 post-extract:
-	@${MV} ${WRKSRC_translations} ${WRKSRC}/src/translations
-	@${CP} ${LOCALBASE}/share/certs/ca-root-nss.crt ${WRKSRC}/resources/mozilla-ca-certs.pem
 	@${CP} ${FILESDIR}/user-agent-data.json ${WRKSRC}/resources
 
 post-patch:
@@ -108,8 +106,6 @@ post-patch:
 		${WRKSRC}/setup/install.py \
 		${WRKSRC}/src/calibre/gui2/dialogs/custom_recipes.py \
 		${WRKSRC}/src/calibre/gui2/preferences/tweaks.py
-	@${REINPLACE_CMD} -e "s|%%ISOCODESWRKSRC%%|${ISOCODESWRKSRC}|" \
-		${WRKSRC}/setup/iso_codes.py
 
 do-configure:
 	# do nothing
@@ -123,6 +119,9 @@ do-build:
 		--system-mathjax \
 		--path-to-mathjax=${LOCALBASE}/www/MathJax3 \
 		--path-to-hyphenation=${WRKSRC_hypenation} \
+		--path-to-translations=${WRKSRC_translations} \
+		--path-to-cacerts=${LOCALBASE}/share/certs/ca-root-nss.crt \
+		--path-to-isocodes=${ISOCODESWRKSRC} --isocodes-extracted \
 	)
 	@${RMDIR} ${LOCALBASE}/libexec/qt6/locales 2>/dev/null || ${TRUE}
 
diff --git a/deskutils/calibre/distinfo b/deskutils/calibre/distinfo
index ea18a1476329..683f9bb8cc8c 100644
--- a/deskutils/calibre/distinfo
+++ b/deskutils/calibre/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1717176837
-SHA256 (calibre/calibre-7.12.0.tar.xz) = 5c790e453531dfe3be8b6bdb4e26401c8ff4858df13c85efbcd015b97cb8c339
-SIZE (calibre/calibre-7.12.0.tar.xz) = 44341928
-SHA256 (calibre/kovidgoyal-calibre-translations-ce2962b_GH0.tar.gz) = a327c1858bf2d0733046efacbd85cc1d9ce28bb064ed75579c1d96f617612f77
-SIZE (calibre/kovidgoyal-calibre-translations-ce2962b_GH0.tar.gz) = 73432710
-SHA256 (calibre/LibreOffice-dictionaries-7272a82_GH0.tar.gz) = 344675827ec1fd61dd960e1276a8a6d2cc81797acaf83d361cca36007e1ea38c
-SIZE (calibre/LibreOffice-dictionaries-7272a82_GH0.tar.gz) = 110177002
+TIMESTAMP = 1719557917
+SHA256 (calibre/calibre-7.13.0.tar.xz) = b749d22ec4f75f932860784b8db469ab229b57a35d02a36ead28db72293f9fb4
+SIZE (calibre/calibre-7.13.0.tar.xz) = 44331860
+SHA256 (calibre/kovidgoyal-calibre-translations-6b7abc0_GH0.tar.gz) = fa450afc5c39a55894463dcc6c74cf77bf98c7392a750a8b08c9a4b144f77be8
+SIZE (calibre/kovidgoyal-calibre-translations-6b7abc0_GH0.tar.gz) = 73443628
+SHA256 (calibre/LibreOffice-dictionaries-fc2dc38_GH0.tar.gz) = d3db2cff9bf7f4fcf6177e4dda08c9fa878ba027aa864e7187e7e217a6069d74
+SIZE (calibre/LibreOffice-dictionaries-fc2dc38_GH0.tar.gz) = 110192200
diff --git a/deskutils/calibre/files/patch-setup_install.py b/deskutils/calibre/files/patch-setup_install.py
index ae23e437a5f4..eba03a94c7c8 100644
--- a/deskutils/calibre/files/patch-setup_install.py
+++ b/deskutils/calibre/files/patch-setup_install.py
@@ -1,6 +1,6 @@
---- setup/install.py.orig	2023-12-15 00:57:56 UTC
+--- setup/install.py.orig	2024-06-28 03:34:16 UTC
 +++ setup/install.py
-@@ -358,29 +358,11 @@ class Bootstrap(Command):
+@@ -355,7 +355,7 @@ class Bootstrap(Command):
  
      description = 'Bootstrap a fresh checkout of calibre from git to a state where it can be installed. Requires various development tools/libraries/headers'
      TRANSLATIONS_REPO = 'kovidgoyal/calibre-translations'
@@ -9,25 +9,3 @@
  
      def add_options(self, parser):
          parser.add_option('--ephemeral', default=False, action='store_true',
-             help='Do not download all history for the translations. Speeds up first time download but subsequent downloads will be slower.')
--
--    def pre_sub_commands(self, opts):
--        tdir = self.j(self.d(self.SRC), 'translations')
--        clone_cmd = [
--            'git', 'clone', f'https://github.com/{self.TRANSLATIONS_REPO}.git', 'translations']
--        if opts.ephemeral:
--            if os.path.exists(tdir):
--                shutil.rmtree(tdir)
--
--            st = time.time()
--            clone_cmd.insert(2, '--depth=1')
--            subprocess.check_call(clone_cmd, cwd=self.d(self.SRC))
--            print('Downloaded translations in %d seconds' % int(time.time() - st))
--        else:
--            if os.path.exists(tdir):
--                subprocess.check_call(['git', 'pull'], cwd=tdir)
--            else:
--                subprocess.check_call(clone_cmd, cwd=self.d(self.SRC))
- 
-     def run(self, opts):
-         self.info('\n\nAll done! You should now be able to run "%s setup.py install" to install calibre' % sys.executable)
diff --git a/deskutils/calibre/files/patch-setup_iso__codes.py b/deskutils/calibre/files/patch-setup_iso__codes.py
index c30626bd5b2e..b14d5e28b464 100644
--- a/deskutils/calibre/files/patch-setup_iso__codes.py
+++ b/deskutils/calibre/files/patch-setup_iso__codes.py
@@ -1,56 +1,97 @@
---- setup/iso_codes.py.orig	2024-04-05 02:37:00 UTC
+--- setup/iso_codes.py.orig	2024-06-28 03:34:16 UTC
 +++ setup/iso_codes.py
-@@ -1,43 +1,24 @@
- #!/usr/bin/env python
+@@ -2,6 +2,7 @@ import fnmatch
  # License: GPLv3 Copyright: 2023, Kovid Goyal <kovid at kovidgoyal.net>
  
--import fnmatch
+ import fnmatch
 +import glob
+ import optparse
  import os
  import shutil
--import time
--import zipfile
--from io import BytesIO
- 
--from setup import download_securely
- 
--
- class ISOData:
--    URL = 'https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/main/iso-codes-main.zip'
--
--    def __init__(self):
--        self._zip_data = None
--
--    @property
--    def zip_data(self):
+@@ -20,22 +21,29 @@ class ISOData(Command):
+     def add_options(self, parser):
+         with suppress(optparse.OptionConflictError):  # ignore if option already added
+             parser.add_option('--path-to-isocodes', help='Path to previously downloaded iso-codes-main.zip')
++            parser.add_option('--isocodes-extracted', default=False, action='store_true',
++                    help='Isocodes is a directory')
+ 
+     def run(self, opts):
 -        if self._zip_data is None:
--            self._zip_data = BytesIO(download_securely(self.URL))
--        return self._zip_data
--
+-            if opts.path_to_isocodes:
+-                with open(opts.path_to_isocodes, 'rb') as f:
+-                    self._zip_data = BytesIO(f.read())
+-                # get top level directory
+-                top = {item.split('/')[0] for item in zipfile.ZipFile(self.zip_data).namelist()}
+-                assert len(top) == 1
+-                self.top_level = top.pop()
+-            else:
+-                self._zip_data = BytesIO(download_securely(self.URL))
++        if (opts.isocodes_extracted):
++            self.top_level = opts.path_to_isocodes
++            self.extracted = True
++        else:
++            if self._zip_data is None:
++                if opts.path_to_isocodes:
++                    with open(opts.path_to_isocodes, 'rb') as f:
++                        self._zip_data = BytesIO(f.read())
++                    # get top level directory
++                    top = {item.split('/')[0] for item in zipfile.ZipFile(self.zip_data).namelist()}
++                    assert len(top) == 1
++                    self.top_level = top.pop()
++                else:
++                    self._zip_data = BytesIO(download_securely(self.URL))
+ 
+     def __init__(self):
+         super().__init__()
+         self._zip_data = None
++        self.extracted = False
+         self.top_level = 'iso-codes-main'
+ 
+     @property
+@@ -43,23 +51,35 @@ class ISOData(Command):
+         return self._zip_data
+ 
      def db_data(self, name: str) -> bytes:
 -        with zipfile.ZipFile(self.zip_data) as zf:
--            with zf.open(f'iso-codes-main/data/{name}') as f:
--                return f.read()
-+        src = f'%%ISOCODESWRKSRC%%/data/{name}'
-+        if not os.path.exists(src):
-+            raise Exception(src + ' does not exist')
-+        with open(src, 'rb') as f:
-+            return f.read()
+-            with zf.open(f'{self.top_level}/data/{name}') as f:
++        if self.extracted:
++            src = f'{self.top_level}/data/{name}'
++            if not os.path.exists(src):
++                raise Exception(src + ' does not exist')
++            with open(src, 'rb') as f:
+                 return f.read()
++        else:
++            with zipfile.ZipFile(self.zip_data) as zf:
++                with zf.open(f'{self.top_level}/data/{name}') as f:
++                    return f.read()
  
      def extract_po_files(self, name: str, output_dir: str) -> None:
          name = name.split('.', 1)[0]
--        pat = f'iso-codes-main/{name}/*.po'
+         pat = f'{self.top_level}/{name}/*.po'
+-        if self.zip_data is None:
+-            self._zip_data = BytesIO(download_securely(self.URL))
 -        with zipfile.ZipFile(self.zip_data) as zf:
 -            for name in fnmatch.filter(zf.namelist(), pat):
--                dest = os.path.join(output_dir, name.split('/')[-1])
++        if self.extracted:
++            for name in glob.glob(pat):
+                 dest = os.path.join(output_dir, name.split('/')[-1])
 -                zi = zf.getinfo(name)
 -                with zf.open(zi) as src, open(dest, 'wb') as d:
 -                    shutil.copyfileobj(src, d)
 -                date_time = time.mktime(zi.date_time + (0, 0, -1))
 -                os.utime(dest, (date_time, date_time))
-+        pat = f'%%ISOCODESWRKSRC%%/{name}/*.po'
-+        for name in glob.glob(pat):
-+            dest = os.path.join(output_dir, name.split('/')[-1])
-+            shutil.copy2(name, dest)
++                shutil.copy2(name, dest)
++        else:
++            if self.zip_data is None:
++                self._zip_data = BytesIO(download_securely(self.URL))
++            with zipfile.ZipFile(self.zip_data) as zf:
++                for name in fnmatch.filter(zf.namelist(), pat):
++                    dest = os.path.join(output_dir, name.split('/')[-1])
++                    zi = zf.getinfo(name)
++                    with zf.open(zi) as src, open(dest, 'wb') as d:
++                        shutil.copyfileobj(src, d)
++                    date_time = time.mktime(zi.date_time + (0, 0, -1))
++                    os.utime(dest, (date_time, date_time))
+ 
  
  iso_data = ISOData()
diff --git a/deskutils/calibre/files/patch-setup_resources.py b/deskutils/calibre/files/patch-setup_resources.py
deleted file mode 100644
index de06cd017327..000000000000
--- a/deskutils/calibre/files/patch-setup_resources.py
+++ /dev/null
@@ -1,35 +0,0 @@
---- setup/resources.py.orig	2023-02-03 02:11:49 UTC
-+++ setup/resources.py
-@@ -142,19 +142,19 @@ class CACerts(Command):  # {{{
-         except OSError as err:
-             if err.errno != errno.ENOENT:
-                 raise
--            raw = b''
--        nraw = download_securely('https://curl.haxx.se/ca/cacert.pem')
--        if not nraw:
--            raise RuntimeError('Failed to download CA cert bundle')
--        if nraw != raw:
--            self.info('Updating Mozilla CA certificates')
--            with open(self.CA_PATH, 'wb') as f:
--                f.write(nraw)
--            self.verify_ca_certs()
--
--    def verify_ca_certs(self):
--        from calibre.utils.https import get_https_resource_securely
--        get_https_resource_securely('https://calibre-ebook.com', cacerts=self.b(self.CA_PATH))
-+#            raw = b''
-+#        nraw = download_securely('https://curl.haxx.se/ca/cacert.pem')
-+#        if not nraw:
-+#            raise RuntimeError('Failed to download CA cert bundle')
-+#        if nraw != raw:
-+#            self.info('Updating Mozilla CA certificates')
-+#            with open(self.CA_PATH, 'wb') as f:
-+#                f.write(nraw)
-+#            self.verify_ca_certs()
-+#
-+#    def verify_ca_certs(self):
-+#        from calibre.utils.https import get_https_resource_securely
-+#        get_https_resource_securely('https://calibre-ebook.com', cacerts=self.b(self.CA_PATH))
- # }}}
- 
- 
diff --git a/deskutils/calibre/files/user-agent-data.json b/deskutils/calibre/files/user-agent-data.json
index 12d2d192289c..24553d39d732 100644
--- a/deskutils/calibre/files/user-agent-data.json
+++ b/deskutils/calibre/files/user-agent-data.json
@@ -1,117 +1,115 @@
 {
   "common_user_agents": [
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0",
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:127.0) Gecko/20100101 Firefox/127.0",
     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15",
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15",
     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0",
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 OPR/109.0.0.0",
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15",
     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:126.0) Gecko/20100101 Firefox/126.0",
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 OPR/110.0.0.0",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:125.0) Gecko/20100101 Firefox/125.0",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 YaBrowser/24.4.0.0 Safari/537.36",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0",
+    "Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19044; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 (compatible; Liquit-SetupStore; +https://www.liquit.com/products/release-patch-management/)",
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:125.0) Gecko/20100101 Firefox/125.0",
     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0",
-    "Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19044; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 (compatible; Liquit-SetupStore; +https://www.liquit.com/products/release-patch-management/)",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0",
     "Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0",
-    "Wget/1.20.3 F-SecureSoftwareUpdater (PSB, 24.3.300.0) Windows/10.0.19045 WinHTTP",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
+    "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15",
-    "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0",
     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.15",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15",
-    "Mozilla/5.0 (Windows NT 10.0; rv:125.0) Gecko/20100101 Firefox/125.0",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36",
-    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36",
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15",
+    "Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 OPR/110.0.0.0",
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15",
     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
+    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0",
     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15",
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0",
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3.1 Safari/605.1.15",
     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1 Safari/605.1.15",
-    "Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0",
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 OPR/107.0.0.0",
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15",
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15",
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3.1 Safari/605.1.15",
+    "Wget/1.20.3 F-SecureSoftwareUpdater (PSB, 24.3.300.0) Windows/10.0.19045 WinHTTP"
   ],
   "desktop_platforms": [
-    "Windows NT 6.1; WOW64",
-    "Macintosh; Intel Mac OS X 10.15",
     "Windows NT 10.0; Microsoft Windows 10.0.19044; en-US",
-    "Macintosh; Intel Mac OS X 10_15_7",
+    "Windows NT 6.1; WOW64",
     "Windows NT 11.0; Win64; x64",
+    "Macintosh; Intel Mac OS X 10_15_7",
+    "Macintosh; Intel Mac OS X 10.15",
     "Windows NT 10.0",
     "Windows NT 6.1; Win64; x64",
     "Windows NT 10.0; Win64; x64"
   ],
-  "timestamp": "2024-05-31T17:35:18.713368+00:00",
+  "timestamp": "2024-06-28T15:45:54.243160+00:00",
   "user_agents_popularity": {
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:125.0) Gecko/20100101 Firefox/125.0": 2619,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:126.0) Gecko/20100101 Firefox/126.0": 5274,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36": 5203,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36": 552,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36": 1666,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36": 16669,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0": 642,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36": 11968,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15": 823,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.15": 907,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15": 573,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15": 576,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1 Safari/605.1.15": 639,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15": 987,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3.1 Safari/605.1.15": 640,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15": 652,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15": 12083,
-    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15": 14808,
-    "Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19044; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 (compatible; Liquit-SetupStore; +https://www.liquit.com/products/release-patch-management/)": 1489,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36": 3785,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36": 689,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36": 884,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36": 1028,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0": 653,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36": 838,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 OPR/107.0.0.0": 600,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36": 2498,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0": 1346,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 YaBrowser/24.4.0.0 Safari/537.36": 2277,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36": 805,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36": 3834,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0": 1590,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 OPR/109.0.0.0": 11245,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36": 97510,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0": 41457,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 OPR/110.0.0.0": 663,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36": 101943,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0": 66639,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0": 1551,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0": 1848,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0": 1434,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0": 23415,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0": 73248,
-    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0": 617,
-    "Mozilla/5.0 (Windows NT 10.0; rv:125.0) Gecko/20100101 Firefox/125.0": 817,
-    "Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0": 1244,
-    "Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36": 618,
-    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0": 699,
-    "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0": 915,
-    "Wget/1.20.3 F-SecureSoftwareUpdater (PSB, 24.3.300.0) Windows/10.0.19045 WinHTTP": 1156
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:125.0) Gecko/20100101 Firefox/125.0": 2938,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:126.0) Gecko/20100101 Firefox/126.0": 11606,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36": 17352,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36": 1273,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36": 2687,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36": 20382,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36": 36632,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15": 1823,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15": 1589,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.15": 1898,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15": 1350,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1 Safari/605.1.15": 1278,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15": 1932,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3.1 Safari/605.1.15": 1270,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15": 1313,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15": 16180,
+    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15": 43184,
+    "Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19044; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 (compatible; Liquit-SetupStore; +https://www.liquit.com/products/release-patch-management/)": 3569,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36": 8592,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36": 1433,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36": 1679,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36": 1985,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0": 1344,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36": 2026,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36": 4785,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0": 2643,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 YaBrowser/24.4.0.0 Safari/537.36": 4251,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36": 2587,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36": 5694,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0": 2677,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 OPR/109.0.0.0": 16902,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36": 108986,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0": 46026,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 OPR/110.0.0.0": 10414,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36": 255034,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0": 145171,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36": 80644,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0": 52294,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0": 3954,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0": 2199,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0": 25306,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0": 253644,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:127.0) Gecko/20100101 Firefox/127.0": 44280,
+    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0": 1454,
+    "Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0": 2665,
+    "Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36": 1559,
+    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0": 1332,
+    "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0": 2009,
+    "Wget/1.20.3 F-SecureSoftwareUpdater (PSB, 24.3.300.0) Windows/10.0.19045 WinHTTP": 1212
   }
 }