This is an automated email from the ASF dual-hosted git repository.

zrhoffman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/master by this push:
     new ff386e747b Bump send and express in /traffic_portal (#8076)
ff386e747b is described below

commit ff386e747bc32688a05d23aed733716329aae075
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Thu Oct 3 17:00:11 2024 -0600

    Bump send and express in /traffic_portal (#8076)
    
    Bumps [send](https://github.com/pillarjs/send) to 0.19.0 and updates 
ancestor dependency [express](https://github.com/expressjs/express). These 
dependencies need to be updated together.
    
    
    Updates `send` from 0.18.0 to 0.19.0
    - [Release notes](https://github.com/pillarjs/send/releases)
    - [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md)
    - [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0)
    
    Updates `express` from 4.19.2 to 4.21.0
    - [Release notes](https://github.com/expressjs/express/releases)
    - [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
    - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)
    
    ---
    updated-dependencies:
    - dependency-name: send
      dependency-type: indirect
    - dependency-name: express
      dependency-type: direct:development
    ...
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
---
 traffic_portal/package-lock.json | 1055 +++++++++++++++++---------------------
 traffic_portal/package.json      |    2 +-
 2 files changed, 472 insertions(+), 585 deletions(-)

diff --git a/traffic_portal/package-lock.json b/traffic_portal/package-lock.json
index 9501e6e076..c4bb669f3e 100644
--- a/traffic_portal/package-lock.json
+++ b/traffic_portal/package-lock.json
@@ -36,7 +36,7 @@
         "connect-livereload": "0.6.1",
         "connect-modrewrite": "0.10.2",
         "connect-timeout": "1.9.0",
-        "express": "4.19.2",
+        "express": "4.21.0",
         "grunt": "1.5.3",
         "grunt-browserify": "6.0.0",
         "grunt-contrib-clean": "2.0.1",
@@ -654,9 +654,9 @@
       "dev": true
     },
     "node_modules/body-parser": {
-      "version": "1.20.2",
-      "resolved": 
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz";,
-      "integrity": 
"sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
+      "version": "1.20.3",
+      "resolved": 
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz";,
+      "integrity": 
"sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
       "dev": true,
       "dependencies": {
         "bytes": "3.1.2",
@@ -667,7 +667,7 @@
         "http-errors": "2.0.0",
         "iconv-lite": "0.4.24",
         "on-finished": "2.4.1",
-        "qs": "6.11.0",
+        "qs": "6.13.0",
         "raw-body": "2.5.2",
         "type-is": "~1.6.18",
         "unpipe": "1.0.0"
@@ -677,22 +677,6 @@
         "npm": "1.2.8000 || >= 1.4.16"
       }
     },
-    "node_modules/body-parser/node_modules/destroy": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz";,
-      "integrity": 
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8",
-        "npm": "1.2.8000 || >= 1.4.16"
-      }
-    },
-    "node_modules/body-parser/node_modules/ee-first": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
-      "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
-      "dev": true
-    },
     "node_modules/body-parser/node_modules/http-errors": {
       "version": "2.0.0",
       "resolved": 
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz";,
@@ -1093,6 +1077,25 @@
       "integrity": 
"sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==",
       "dev": true
     },
+    "node_modules/call-bind": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz";,
+      "integrity": 
"sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+      "dev": true,
+      "dependencies": {
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.4",
+        "set-function-length": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
     "node_modules/chalk": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";,
@@ -1806,6 +1809,23 @@
         "ms": "2.0.0"
       }
     },
+    "node_modules/define-data-property": {
+      "version": "1.1.4",
+      "resolved": 
"https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz";,
+      "integrity": 
"sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+      "dev": true,
+      "dependencies": {
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
     "node_modules/defined": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz";,
@@ -1854,6 +1874,16 @@
         "fast-safe-stringify": "^2.0.7"
       }
     },
+    "node_modules/destroy": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz";,
+      "integrity": 
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8",
+        "npm": "1.2.8000 || >= 1.4.16"
+      }
+    },
     "node_modules/di": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz";,
@@ -1925,6 +1955,12 @@
         "readable-stream": "^2.0.2"
       }
     },
+    "node_modules/ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
+      "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+      "dev": true
+    },
     "node_modules/elliptic": {
       "version": "6.5.4",
       "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz";,
@@ -2017,6 +2053,27 @@
       "integrity": 
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
       "dev": true
     },
+    "node_modules/es-define-property": {
+      "version": "1.0.0",
+      "resolved": 
"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz";,
+      "integrity": 
"sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.2.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz";,
+      "integrity": 
"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/escape-html": {
       "version": "1.0.3",
       "resolved": 
"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";,
@@ -2076,37 +2133,37 @@
       }
     },
     "node_modules/express": {
-      "version": "4.19.2",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz";,
-      "integrity": 
"sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
+      "version": "4.21.0",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz";,
+      "integrity": 
"sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==",
       "dev": true,
       "dependencies": {
         "accepts": "~1.3.8",
         "array-flatten": "1.1.1",
-        "body-parser": "1.20.2",
+        "body-parser": "1.20.3",
         "content-disposition": "0.5.4",
         "content-type": "~1.0.4",
         "cookie": "0.6.0",
         "cookie-signature": "1.0.6",
         "debug": "2.6.9",
         "depd": "2.0.0",
-        "encodeurl": "~1.0.2",
+        "encodeurl": "~2.0.0",
         "escape-html": "~1.0.3",
         "etag": "~1.8.1",
-        "finalhandler": "1.2.0",
+        "finalhandler": "1.3.1",
         "fresh": "0.5.2",
         "http-errors": "2.0.0",
-        "merge-descriptors": "1.0.1",
+        "merge-descriptors": "1.0.3",
         "methods": "~1.1.2",
         "on-finished": "2.4.1",
         "parseurl": "~1.3.3",
-        "path-to-regexp": "0.1.7",
+        "path-to-regexp": "0.1.10",
         "proxy-addr": "~2.0.7",
-        "qs": "6.11.0",
+        "qs": "6.13.0",
         "range-parser": "~1.2.1",
         "safe-buffer": "5.2.1",
-        "send": "0.18.0",
-        "serve-static": "1.15.0",
+        "send": "0.19.0",
+        "serve-static": "1.16.2",
         "setprototypeof": "1.2.0",
         "statuses": "2.0.1",
         "type-is": "~1.6.18",
@@ -2117,11 +2174,14 @@
         "node": ">= 0.10.0"
       }
     },
-    "node_modules/express/node_modules/ee-first": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
-      "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
-      "dev": true
+    "node_modules/express/node_modules/encodeurl": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz";,
+      "integrity": 
"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8"
+      }
     },
     "node_modules/express/node_modules/http-errors": {
       "version": "2.0.0",
@@ -2272,13 +2332,13 @@
       }
     },
     "node_modules/finalhandler": {
-      "version": "1.2.0",
-      "resolved": 
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz";,
-      "integrity": 
"sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+      "version": "1.3.1",
+      "resolved": 
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz";,
+      "integrity": 
"sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
       "dev": true,
       "dependencies": {
         "debug": "2.6.9",
-        "encodeurl": "~1.0.2",
+        "encodeurl": "~2.0.0",
         "escape-html": "~1.0.3",
         "on-finished": "2.4.1",
         "parseurl": "~1.3.3",
@@ -2289,11 +2349,14 @@
         "node": ">= 0.8"
       }
     },
-    "node_modules/finalhandler/node_modules/ee-first": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
-      "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
-      "dev": true
+    "node_modules/finalhandler/node_modules/encodeurl": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz";,
+      "integrity": 
"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8"
+      }
     },
     "node_modules/finalhandler/node_modules/on-finished": {
       "version": "2.4.1",
@@ -2429,6 +2492,15 @@
         "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
       }
     },
+    "node_modules/function-bind": {
+      "version": "1.1.2",
+      "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz";,
+      "integrity": 
"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
     "node_modules/gaze": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz";,
@@ -2549,6 +2621,25 @@
       "integrity": 
"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
       "dev": true
     },
+    "node_modules/get-intrinsic": {
+      "version": "1.2.4",
+      "resolved": 
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz";,
+      "integrity": 
"sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+      "dev": true,
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "has-proto": "^1.0.1",
+        "has-symbols": "^1.0.3",
+        "hasown": "^2.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
     "node_modules/glob": {
       "version": "7.2.3",
       "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz";,
@@ -2618,6 +2709,18 @@
         "node": ">=4"
       }
     },
+    "node_modules/gopd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz";,
+      "integrity": 
"sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.1.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
     "node_modules/graceful-fs": {
       "version": "4.2.10",
       "resolved": 
"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz";,
@@ -2754,19 +2857,6 @@
         "node": ">= 0.8"
       }
     },
-    "node_modules/grunt-browserify/node_modules/call-bind": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";,
-      "integrity": 
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-      "dev": true,
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.0.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
     "node_modules/grunt-browserify/node_modules/events": {
       "version": "3.3.0",
       "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz";,
@@ -2791,50 +2881,6 @@
         "is-callable": "^1.1.3"
       }
     },
-    "node_modules/grunt-browserify/node_modules/function-bind": {
-      "version": "1.1.1",
-      "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";,
-      "integrity": 
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-      "dev": true
-    },
-    "node_modules/grunt-browserify/node_modules/get-intrinsic": {
-      "version": "1.1.3",
-      "resolved": 
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz";,
-      "integrity": 
"sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
-      "dev": true,
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/grunt-browserify/node_modules/gopd": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz";,
-      "integrity": 
"sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
-      "dev": true,
-      "dependencies": {
-        "get-intrinsic": "^1.1.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/grunt-browserify/node_modules/has-symbols": {
-      "version": "1.0.3",
-      "resolved": 
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";,
-      "integrity": 
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
     "node_modules/grunt-browserify/node_modules/has-tostringtag": {
       "version": "1.0.0",
       "resolved": 
"https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz";,
@@ -4041,11 +4087,41 @@
         "node": ">=4"
       }
     },
-    "node_modules/has/node_modules/function-bind": {
-      "version": "1.1.1",
-      "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";,
-      "integrity": 
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-      "dev": true
+    "node_modules/has-property-descriptors": {
+      "version": "1.0.2",
+      "resolved": 
"https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz";,
+      "integrity": 
"sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+      "dev": true,
+      "dependencies": {
+        "es-define-property": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
+    "node_modules/has-proto": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz";,
+      "integrity": 
"sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
+    "node_modules/has-symbols": {
+      "version": "1.0.3",
+      "resolved": 
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";,
+      "integrity": 
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
     },
     "node_modules/hash-base": {
       "version": "3.1.0",
@@ -4085,6 +4161,18 @@
         "minimalistic-assert": "^1.0.1"
       }
     },
+    "node_modules/hasown": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz";,
+      "integrity": 
"sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "dev": true,
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/hat": {
       "version": "0.0.3",
       "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz";,
@@ -5771,10 +5859,13 @@
       }
     },
     "node_modules/merge-descriptors": {
-      "version": "1.0.1",
-      "resolved": 
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";,
-      "integrity": 
"sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
-      "dev": true
+      "version": "1.0.3",
+      "resolved": 
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz";,
+      "integrity": 
"sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
+      }
     },
     "node_modules/methods": {
       "version": "1.1.2",
@@ -6038,6 +6129,18 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/object-inspect": {
+      "version": "1.13.2",
+      "resolved": 
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz";,
+      "integrity": 
"sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
     "node_modules/on-finished": {
       "version": "2.3.0",
       "resolved": 
"https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";,
@@ -6050,12 +6153,6 @@
         "node": ">= 0.8"
       }
     },
-    "node_modules/on-finished/node_modules/ee-first": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
-      "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
-      "dev": true
-    },
     "node_modules/on-headers": {
       "version": "1.0.2",
       "resolved": 
"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";,
@@ -6137,9 +6234,9 @@
       "dev": true
     },
     "node_modules/path-to-regexp": {
-      "version": "0.1.7",
-      "resolved": 
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";,
-      "integrity": 
"sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
+      "version": "0.1.10",
+      "resolved": 
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz";,
+      "integrity": 
"sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
       "dev": true
     },
     "node_modules/pbkdf2": {
@@ -6322,20 +6419,6 @@
       "dev": true,
       "optional": true
     },
-    "node_modules/pug/node_modules/call-bind": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";,
-      "integrity": 
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-      "dev": true,
-      "optional": true,
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.0.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
     "node_modules/pug/node_modules/character-parser": {
       "version": "2.2.0",
       "resolved": 
"https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz";,
@@ -6346,41 +6429,6 @@
         "is-regex": "^1.0.3"
       }
     },
-    "node_modules/pug/node_modules/function-bind": {
-      "version": "1.1.1",
-      "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";,
-      "integrity": 
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-      "dev": true,
-      "optional": true
-    },
-    "node_modules/pug/node_modules/get-intrinsic": {
-      "version": "1.1.3",
-      "resolved": 
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz";,
-      "integrity": 
"sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
-      "dev": true,
-      "optional": true,
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/pug/node_modules/has-symbols": {
-      "version": "1.0.3",
-      "resolved": 
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";,
-      "integrity": 
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-      "dev": true,
-      "optional": true,
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
     "node_modules/pug/node_modules/has-tostringtag": {
       "version": "1.0.0",
       "resolved": 
"https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz";,
@@ -6552,12 +6600,12 @@
       }
     },
     "node_modules/qs": {
-      "version": "6.11.0",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz";,
-      "integrity": 
"sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+      "version": "6.13.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz";,
+      "integrity": 
"sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
       "dev": true,
       "dependencies": {
-        "side-channel": "^1.0.4"
+        "side-channel": "^1.0.6"
       },
       "engines": {
         "node": ">=0.6"
@@ -6566,74 +6614,6 @@
         "url": "https://github.com/sponsors/ljharb";
       }
     },
-    "node_modules/qs/node_modules/call-bind": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";,
-      "integrity": 
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-      "dev": true,
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.0.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/qs/node_modules/function-bind": {
-      "version": "1.1.1",
-      "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";,
-      "integrity": 
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-      "dev": true
-    },
-    "node_modules/qs/node_modules/get-intrinsic": {
-      "version": "1.1.3",
-      "resolved": 
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz";,
-      "integrity": 
"sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
-      "dev": true,
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/qs/node_modules/has-symbols": {
-      "version": "1.0.3",
-      "resolved": 
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";,
-      "integrity": 
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/qs/node_modules/object-inspect": {
-      "version": "1.12.2",
-      "resolved": 
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz";,
-      "integrity": 
"sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
-      "dev": true,
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/qs/node_modules/side-channel": {
-      "version": "1.0.4",
-      "resolved": 
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz";,
-      "integrity": 
"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.0",
-        "get-intrinsic": "^1.0.2",
-        "object-inspect": "^1.9.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
     "node_modules/querystring-es3": {
       "version": "0.2.1",
       "resolved": 
"https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz";,
@@ -6893,9 +6873,9 @@
       }
     },
     "node_modules/send": {
-      "version": "0.18.0",
-      "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz";,
-      "integrity": 
"sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+      "version": "0.19.0",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz";,
+      "integrity": 
"sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
       "dev": true,
       "dependencies": {
         "debug": "2.6.9",
@@ -6916,22 +6896,6 @@
         "node": ">= 0.8.0"
       }
     },
-    "node_modules/send/node_modules/destroy": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz";,
-      "integrity": 
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8",
-        "npm": "1.2.8000 || >= 1.4.16"
-      }
-    },
-    "node_modules/send/node_modules/ee-first": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
-      "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
-      "dev": true
-    },
     "node_modules/send/node_modules/http-errors": {
       "version": "2.0.0",
       "resolved": 
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz";,
@@ -6979,18 +6943,44 @@
       }
     },
     "node_modules/serve-static": {
-      "version": "1.15.0",
-      "resolved": 
"https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz";,
-      "integrity": 
"sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+      "version": "1.16.2",
+      "resolved": 
"https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz";,
+      "integrity": 
"sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+      "dev": true,
+      "dependencies": {
+        "encodeurl": "~2.0.0",
+        "escape-html": "~1.0.3",
+        "parseurl": "~1.3.3",
+        "send": "0.19.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/serve-static/node_modules/encodeurl": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz";,
+      "integrity": 
"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/set-function-length": {
+      "version": "1.2.2",
+      "resolved": 
"https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz";,
+      "integrity": 
"sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
       "dev": true,
       "dependencies": {
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "parseurl": "~1.3.3",
-        "send": "0.18.0"
+        "define-data-property": "^1.1.4",
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.4",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.2"
       },
       "engines": {
-        "node": ">= 0.8.0"
+        "node": ">= 0.4"
       }
     },
     "node_modules/setprototypeof": {
@@ -7049,6 +7039,24 @@
         "url": "https://github.com/sponsors/ljharb";
       }
     },
+    "node_modules/side-channel": {
+      "version": "1.0.6",
+      "resolved": 
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz";,
+      "integrity": 
"sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.4",
+        "object-inspect": "^1.13.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
     "node_modules/socket.io": {
       "version": "4.7.2",
       "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz";,
@@ -7804,19 +7812,6 @@
         "xtend": "~4.0.1"
       }
     },
-    "node_modules/watchify/node_modules/call-bind": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";,
-      "integrity": 
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-      "dev": true,
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.0.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
     "node_modules/watchify/node_modules/events": {
       "version": "3.3.0",
       "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz";,
@@ -7841,50 +7836,6 @@
         "is-callable": "^1.1.3"
       }
     },
-    "node_modules/watchify/node_modules/function-bind": {
-      "version": "1.1.1",
-      "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";,
-      "integrity": 
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-      "dev": true
-    },
-    "node_modules/watchify/node_modules/get-intrinsic": {
-      "version": "1.1.3",
-      "resolved": 
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz";,
-      "integrity": 
"sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
-      "dev": true,
-      "dependencies": {
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/watchify/node_modules/gopd": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz";,
-      "integrity": 
"sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
-      "dev": true,
-      "dependencies": {
-        "get-intrinsic": "^1.1.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/watchify/node_modules/has-symbols": {
-      "version": "1.0.3",
-      "resolved": 
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";,
-      "integrity": 
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
     "node_modules/watchify/node_modules/has-tostringtag": {
       "version": "1.0.0",
       "resolved": 
"https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz";,
@@ -8816,9 +8767,9 @@
       "dev": true
     },
     "body-parser": {
-      "version": "1.20.2",
-      "resolved": 
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz";,
-      "integrity": 
"sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
+      "version": "1.20.3",
+      "resolved": 
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz";,
+      "integrity": 
"sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
       "dev": true,
       "requires": {
         "bytes": "3.1.2",
@@ -8829,24 +8780,12 @@
         "http-errors": "2.0.0",
         "iconv-lite": "0.4.24",
         "on-finished": "2.4.1",
-        "qs": "6.11.0",
+        "qs": "6.13.0",
         "raw-body": "2.5.2",
         "type-is": "~1.6.18",
         "unpipe": "1.0.0"
       },
       "dependencies": {
-        "destroy": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz";,
-          "integrity": 
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
-          "dev": true
-        },
-        "ee-first": {
-          "version": "1.1.1",
-          "resolved": 
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
-          "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
-          "dev": true
-        },
         "http-errors": {
           "version": "2.0.0",
           "resolved": 
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz";,
@@ -9185,6 +9124,19 @@
       "integrity": 
"sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==",
       "dev": true
     },
+    "call-bind": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz";,
+      "integrity": 
"sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+      "dev": true,
+      "requires": {
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.4",
+        "set-function-length": "^1.2.1"
+      }
+    },
     "chalk": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";,
@@ -9766,6 +9718,17 @@
         "ms": "2.0.0"
       }
     },
+    "define-data-property": {
+      "version": "1.1.4",
+      "resolved": 
"https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz";,
+      "integrity": 
"sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+      "dev": true,
+      "requires": {
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.0.1"
+      }
+    },
     "defined": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz";,
@@ -9807,6 +9770,12 @@
         }
       }
     },
+    "destroy": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz";,
+      "integrity": 
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+      "dev": true
+    },
     "di": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz";,
@@ -9873,6 +9842,12 @@
         "readable-stream": "^2.0.2"
       }
     },
+    "ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
+      "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+      "dev": true
+    },
     "elliptic": {
       "version": "6.5.4",
       "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz";,
@@ -9949,6 +9924,21 @@
       "integrity": 
"sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==",
       "dev": true
     },
+    "es-define-property": {
+      "version": "1.0.0",
+      "resolved": 
"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz";,
+      "integrity": 
"sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+      "dev": true,
+      "requires": {
+        "get-intrinsic": "^1.2.4"
+      }
+    },
+    "es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz";,
+      "integrity": 
"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+      "dev": true
+    },
     "escape-html": {
       "version": "1.0.3",
       "resolved": 
"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";,
@@ -9996,37 +9986,37 @@
       "dev": true
     },
     "express": {
-      "version": "4.19.2",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz";,
-      "integrity": 
"sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
+      "version": "4.21.0",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz";,
+      "integrity": 
"sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==",
       "dev": true,
       "requires": {
         "accepts": "~1.3.8",
         "array-flatten": "1.1.1",
-        "body-parser": "1.20.2",
+        "body-parser": "1.20.3",
         "content-disposition": "0.5.4",
         "content-type": "~1.0.4",
         "cookie": "0.6.0",
         "cookie-signature": "1.0.6",
         "debug": "2.6.9",
         "depd": "2.0.0",
-        "encodeurl": "~1.0.2",
+        "encodeurl": "~2.0.0",
         "escape-html": "~1.0.3",
         "etag": "~1.8.1",
-        "finalhandler": "1.2.0",
+        "finalhandler": "1.3.1",
         "fresh": "0.5.2",
         "http-errors": "2.0.0",
-        "merge-descriptors": "1.0.1",
+        "merge-descriptors": "1.0.3",
         "methods": "~1.1.2",
         "on-finished": "2.4.1",
         "parseurl": "~1.3.3",
-        "path-to-regexp": "0.1.7",
+        "path-to-regexp": "0.1.10",
         "proxy-addr": "~2.0.7",
-        "qs": "6.11.0",
+        "qs": "6.13.0",
         "range-parser": "~1.2.1",
         "safe-buffer": "5.2.1",
-        "send": "0.18.0",
-        "serve-static": "1.15.0",
+        "send": "0.19.0",
+        "serve-static": "1.16.2",
         "setprototypeof": "1.2.0",
         "statuses": "2.0.1",
         "type-is": "~1.6.18",
@@ -10034,10 +10024,10 @@
         "vary": "~1.1.2"
       },
       "dependencies": {
-        "ee-first": {
-          "version": "1.1.1",
-          "resolved": 
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
-          "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+        "encodeurl": {
+          "version": "2.0.0",
+          "resolved": 
"https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz";,
+          "integrity": 
"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
           "dev": true
         },
         "http-errors": {
@@ -10168,13 +10158,13 @@
       }
     },
     "finalhandler": {
-      "version": "1.2.0",
-      "resolved": 
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz";,
-      "integrity": 
"sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+      "version": "1.3.1",
+      "resolved": 
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz";,
+      "integrity": 
"sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
       "dev": true,
       "requires": {
         "debug": "2.6.9",
-        "encodeurl": "~1.0.2",
+        "encodeurl": "~2.0.0",
         "escape-html": "~1.0.3",
         "on-finished": "2.4.1",
         "parseurl": "~1.3.3",
@@ -10182,10 +10172,10 @@
         "unpipe": "~1.0.0"
       },
       "dependencies": {
-        "ee-first": {
-          "version": "1.1.1",
-          "resolved": 
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
-          "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+        "encodeurl": {
+          "version": "2.0.0",
+          "resolved": 
"https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz";,
+          "integrity": 
"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
           "dev": true
         },
         "on-finished": {
@@ -10287,6 +10277,12 @@
       "dev": true,
       "optional": true
     },
+    "function-bind": {
+      "version": "1.1.2",
+      "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz";,
+      "integrity": 
"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "dev": true
+    },
     "gaze": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz";,
@@ -10391,6 +10387,19 @@
         }
       }
     },
+    "get-intrinsic": {
+      "version": "1.2.4",
+      "resolved": 
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz";,
+      "integrity": 
"sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+      "dev": true,
+      "requires": {
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "has-proto": "^1.0.1",
+        "has-symbols": "^1.0.3",
+        "hasown": "^2.0.0"
+      }
+    },
     "glob": {
       "version": "7.2.3",
       "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz";,
@@ -10450,6 +10459,15 @@
       "integrity": 
"sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
       "dev": true
     },
+    "gopd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz";,
+      "integrity": 
"sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+      "dev": true,
+      "requires": {
+        "get-intrinsic": "^1.1.3"
+      }
+    },
     "graceful-fs": {
       "version": "4.2.10",
       "resolved": 
"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz";,
@@ -10649,16 +10667,6 @@
             "xtend": "^4.0.0"
           }
         },
-        "call-bind": {
-          "version": "1.0.2",
-          "resolved": 
"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";,
-          "integrity": 
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-          "dev": true,
-          "requires": {
-            "function-bind": "^1.1.1",
-            "get-intrinsic": "^1.0.2"
-          }
-        },
         "events": {
           "version": "3.3.0",
           "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz";,
@@ -10680,38 +10688,6 @@
             "is-callable": "^1.1.3"
           }
         },
-        "function-bind": {
-          "version": "1.1.1",
-          "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";,
-          "integrity": 
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-          "dev": true
-        },
-        "get-intrinsic": {
-          "version": "1.1.3",
-          "resolved": 
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz";,
-          "integrity": 
"sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
-          "dev": true,
-          "requires": {
-            "function-bind": "^1.1.1",
-            "has": "^1.0.3",
-            "has-symbols": "^1.0.3"
-          }
-        },
-        "gopd": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz";,
-          "integrity": 
"sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
-          "dev": true,
-          "requires": {
-            "get-intrinsic": "^1.1.3"
-          }
-        },
-        "has-symbols": {
-          "version": "1.0.3",
-          "resolved": 
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";,
-          "integrity": 
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-          "dev": true
-        },
         "has-tostringtag": {
           "version": "1.0.0",
           "resolved": 
"https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz";,
@@ -11544,14 +11520,6 @@
       "dev": true,
       "requires": {
         "function-bind": "^1.1.1"
-      },
-      "dependencies": {
-        "function-bind": {
-          "version": "1.1.1",
-          "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";,
-          "integrity": 
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-          "dev": true
-        }
       }
     },
     "has-flag": {
@@ -11560,6 +11528,27 @@
       "integrity": 
"sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
       "dev": true
     },
+    "has-property-descriptors": {
+      "version": "1.0.2",
+      "resolved": 
"https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz";,
+      "integrity": 
"sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+      "dev": true,
+      "requires": {
+        "es-define-property": "^1.0.0"
+      }
+    },
+    "has-proto": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz";,
+      "integrity": 
"sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+      "dev": true
+    },
+    "has-symbols": {
+      "version": "1.0.3",
+      "resolved": 
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";,
+      "integrity": 
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+      "dev": true
+    },
     "hash-base": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz";,
@@ -11594,6 +11583,15 @@
         "minimalistic-assert": "^1.0.1"
       }
     },
+    "hasown": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz";,
+      "integrity": 
"sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "dev": true,
+      "requires": {
+        "function-bind": "^1.1.2"
+      }
+    },
     "hat": {
       "version": "0.0.3",
       "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz";,
@@ -12918,9 +12916,9 @@
       }
     },
     "merge-descriptors": {
-      "version": "1.0.1",
-      "resolved": 
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";,
-      "integrity": 
"sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
+      "version": "1.0.3",
+      "resolved": 
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz";,
+      "integrity": 
"sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
       "dev": true
     },
     "methods": {
@@ -13131,6 +13129,12 @@
       "integrity": 
"sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
       "dev": true
     },
+    "object-inspect": {
+      "version": "1.13.2",
+      "resolved": 
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz";,
+      "integrity": 
"sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+      "dev": true
+    },
     "on-finished": {
       "version": "2.3.0",
       "resolved": 
"https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";,
@@ -13138,14 +13142,6 @@
       "dev": true,
       "requires": {
         "ee-first": "1.1.1"
-      },
-      "dependencies": {
-        "ee-first": {
-          "version": "1.1.1",
-          "resolved": 
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
-          "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
-          "dev": true
-        }
       }
     },
     "on-headers": {
@@ -13219,9 +13215,9 @@
       "dev": true
     },
     "path-to-regexp": {
-      "version": "0.1.7",
-      "resolved": 
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";,
-      "integrity": 
"sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
+      "version": "0.1.10",
+      "resolved": 
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz";,
+      "integrity": 
"sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
       "dev": true
     },
     "pbkdf2": {
@@ -13329,17 +13325,6 @@
           "dev": true,
           "optional": true
         },
-        "call-bind": {
-          "version": "1.0.2",
-          "resolved": 
"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";,
-          "integrity": 
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "function-bind": "^1.1.1",
-            "get-intrinsic": "^1.0.2"
-          }
-        },
         "character-parser": {
           "version": "2.2.0",
           "resolved": 
"https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz";,
@@ -13350,32 +13335,6 @@
             "is-regex": "^1.0.3"
           }
         },
-        "function-bind": {
-          "version": "1.1.1",
-          "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";,
-          "integrity": 
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-          "dev": true,
-          "optional": true
-        },
-        "get-intrinsic": {
-          "version": "1.1.3",
-          "resolved": 
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz";,
-          "integrity": 
"sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "function-bind": "^1.1.1",
-            "has": "^1.0.3",
-            "has-symbols": "^1.0.3"
-          }
-        },
-        "has-symbols": {
-          "version": "1.0.3",
-          "resolved": 
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";,
-          "integrity": 
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-          "dev": true,
-          "optional": true
-        },
         "has-tostringtag": {
           "version": "1.0.0",
           "resolved": 
"https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz";,
@@ -13577,64 +13536,12 @@
       "dev": true
     },
     "qs": {
-      "version": "6.11.0",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz";,
-      "integrity": 
"sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+      "version": "6.13.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz";,
+      "integrity": 
"sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
       "dev": true,
       "requires": {
-        "side-channel": "^1.0.4"
-      },
-      "dependencies": {
-        "call-bind": {
-          "version": "1.0.2",
-          "resolved": 
"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";,
-          "integrity": 
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-          "dev": true,
-          "requires": {
-            "function-bind": "^1.1.1",
-            "get-intrinsic": "^1.0.2"
-          }
-        },
-        "function-bind": {
-          "version": "1.1.1",
-          "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";,
-          "integrity": 
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-          "dev": true
-        },
-        "get-intrinsic": {
-          "version": "1.1.3",
-          "resolved": 
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz";,
-          "integrity": 
"sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
-          "dev": true,
-          "requires": {
-            "function-bind": "^1.1.1",
-            "has": "^1.0.3",
-            "has-symbols": "^1.0.3"
-          }
-        },
-        "has-symbols": {
-          "version": "1.0.3",
-          "resolved": 
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";,
-          "integrity": 
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-          "dev": true
-        },
-        "object-inspect": {
-          "version": "1.12.2",
-          "resolved": 
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz";,
-          "integrity": 
"sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
-          "dev": true
-        },
-        "side-channel": {
-          "version": "1.0.4",
-          "resolved": 
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz";,
-          "integrity": 
"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
-          "dev": true,
-          "requires": {
-            "call-bind": "^1.0.0",
-            "get-intrinsic": "^1.0.2",
-            "object-inspect": "^1.9.0"
-          }
-        }
+        "side-channel": "^1.0.6"
       }
     },
     "querystring-es3": {
@@ -13841,9 +13748,9 @@
       }
     },
     "send": {
-      "version": "0.18.0",
-      "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz";,
-      "integrity": 
"sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+      "version": "0.19.0",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz";,
+      "integrity": 
"sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
       "dev": true,
       "requires": {
         "debug": "2.6.9",
@@ -13861,18 +13768,6 @@
         "statuses": "2.0.1"
       },
       "dependencies": {
-        "destroy": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz";,
-          "integrity": 
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
-          "dev": true
-        },
-        "ee-first": {
-          "version": "1.1.1",
-          "resolved": 
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";,
-          "integrity": 
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
-          "dev": true
-        },
         "http-errors": {
           "version": "2.0.0",
           "resolved": 
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz";,
@@ -13910,15 +13805,37 @@
       }
     },
     "serve-static": {
-      "version": "1.15.0",
-      "resolved": 
"https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz";,
-      "integrity": 
"sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+      "version": "1.16.2",
+      "resolved": 
"https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz";,
+      "integrity": 
"sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
       "dev": true,
       "requires": {
-        "encodeurl": "~1.0.2",
+        "encodeurl": "~2.0.0",
         "escape-html": "~1.0.3",
         "parseurl": "~1.3.3",
-        "send": "0.18.0"
+        "send": "0.19.0"
+      },
+      "dependencies": {
+        "encodeurl": {
+          "version": "2.0.0",
+          "resolved": 
"https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz";,
+          "integrity": 
"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+          "dev": true
+        }
+      }
+    },
+    "set-function-length": {
+      "version": "1.2.2",
+      "resolved": 
"https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz";,
+      "integrity": 
"sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+      "dev": true,
+      "requires": {
+        "define-data-property": "^1.1.4",
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.4",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.2"
       }
     },
     "setprototypeof": {
@@ -13970,6 +13887,18 @@
       "integrity": 
"sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==",
       "dev": true
     },
+    "side-channel": {
+      "version": "1.0.6",
+      "resolved": 
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz";,
+      "integrity": 
"sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+      "dev": true,
+      "requires": {
+        "call-bind": "^1.0.7",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.4",
+        "object-inspect": "^1.13.1"
+      }
+    },
     "socket.io": {
       "version": "4.7.2",
       "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz";,
@@ -14604,16 +14533,6 @@
             }
           }
         },
-        "call-bind": {
-          "version": "1.0.2",
-          "resolved": 
"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";,
-          "integrity": 
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-          "dev": true,
-          "requires": {
-            "function-bind": "^1.1.1",
-            "get-intrinsic": "^1.0.2"
-          }
-        },
         "events": {
           "version": "3.3.0",
           "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz";,
@@ -14635,38 +14554,6 @@
             "is-callable": "^1.1.3"
           }
         },
-        "function-bind": {
-          "version": "1.1.1",
-          "resolved": 
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";,
-          "integrity": 
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-          "dev": true
-        },
-        "get-intrinsic": {
-          "version": "1.1.3",
-          "resolved": 
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz";,
-          "integrity": 
"sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
-          "dev": true,
-          "requires": {
-            "function-bind": "^1.1.1",
-            "has": "^1.0.3",
-            "has-symbols": "^1.0.3"
-          }
-        },
-        "gopd": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz";,
-          "integrity": 
"sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
-          "dev": true,
-          "requires": {
-            "get-intrinsic": "^1.1.3"
-          }
-        },
-        "has-symbols": {
-          "version": "1.0.3",
-          "resolved": 
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";,
-          "integrity": 
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-          "dev": true
-        },
         "has-tostringtag": {
           "version": "1.0.0",
           "resolved": 
"https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz";,
diff --git a/traffic_portal/package.json b/traffic_portal/package.json
index 607348f6d7..4c20470272 100644
--- a/traffic_portal/package.json
+++ b/traffic_portal/package.json
@@ -24,7 +24,7 @@
     "connect-livereload": "0.6.1",
     "connect-modrewrite": "0.10.2",
     "connect-timeout": "1.9.0",
-    "express": "4.19.2",
+    "express": "4.21.0",
     "grunt": "1.5.3",
     "grunt-browserify": "6.0.0",
     "grunt-contrib-clean": "2.0.1",

Reply via email to