From 3d964c41c9400514fcec6b6ba4d2fd1174b333cd Mon Sep 17 00:00:00 2001
From: Lukas Karsch <lukas.karsch03@gmail.com>
Date: Tue, 31 Oct 2023 11:17:58 +0100
Subject: [PATCH] initial commit, frontend + backend prototype included

---
 .gitignore                                    |   34 +
 .mvn/wrapper/maven-wrapper.jar                |  Bin 0 -> 62547 bytes
 .mvn/wrapper/maven-wrapper.properties         |    2 +
 growbros-frontend/.eslintrc.cjs               |   18 +
 growbros-frontend/.gitignore                  |   24 +
 growbros-frontend/README.md                   |   31 +
 growbros-frontend/index.html                  |   13 +
 growbros-frontend/package-lock.json           | 2435 +++++++++++++++++
 growbros-frontend/package.json                |   28 +
 growbros-frontend/public/vite.svg             |   18 +
 growbros-frontend/src/App.css                 |   13 +
 growbros-frontend/src/App.tsx                 |   17 +
 growbros-frontend/src/assets/react.svg        |    5 +
 growbros-frontend/src/components/Header.tsx   |   14 +
 .../src/components/PlantCard.tsx              |   19 +
 .../src/components/PlantsOverview.tsx         |   28 +
 growbros-frontend/src/index.css               |   78 +
 growbros-frontend/src/main.tsx                |   10 +
 growbros-frontend/src/vite-env.d.ts           |    1 +
 growbros-frontend/tsconfig.json               |   33 +
 growbros-frontend/tsconfig.node.json          |   12 +
 growbros-frontend/vite.config.ts              |    7 +
 mvnw                                          |  308 +++
 mvnw.cmd                                      |  205 ++
 pom.xml                                       |   71 +
 requests.http                                 |   13 +
 .../GrowBrosApplication.java                  |   11 +
 .../controllers/PlantsController.java         |   28 +
 .../lukas/growbrosprototype/models/Plant.java |   48 +
 .../growbrosprototype/models/SoilType.java    |    7 +
 .../service/PlantsService.java                |   25 +
 src/main/resources/application.properties     |    1 +
 32 files changed, 3557 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 .mvn/wrapper/maven-wrapper.jar
 create mode 100644 .mvn/wrapper/maven-wrapper.properties
 create mode 100644 growbros-frontend/.eslintrc.cjs
 create mode 100644 growbros-frontend/.gitignore
 create mode 100644 growbros-frontend/README.md
 create mode 100644 growbros-frontend/index.html
 create mode 100644 growbros-frontend/package-lock.json
 create mode 100644 growbros-frontend/package.json
 create mode 100644 growbros-frontend/public/vite.svg
 create mode 100644 growbros-frontend/src/App.css
 create mode 100644 growbros-frontend/src/App.tsx
 create mode 100644 growbros-frontend/src/assets/react.svg
 create mode 100644 growbros-frontend/src/components/Header.tsx
 create mode 100644 growbros-frontend/src/components/PlantCard.tsx
 create mode 100644 growbros-frontend/src/components/PlantsOverview.tsx
 create mode 100644 growbros-frontend/src/index.css
 create mode 100644 growbros-frontend/src/main.tsx
 create mode 100644 growbros-frontend/src/vite-env.d.ts
 create mode 100644 growbros-frontend/tsconfig.json
 create mode 100644 growbros-frontend/tsconfig.node.json
 create mode 100644 growbros-frontend/vite.config.ts
 create mode 100644 mvnw
 create mode 100644 mvnw.cmd
 create mode 100644 pom.xml
 create mode 100644 requests.http
 create mode 100644 src/main/java/karsch/lukas/growbrosprototype/GrowBrosApplication.java
 create mode 100644 src/main/java/karsch/lukas/growbrosprototype/controllers/PlantsController.java
 create mode 100644 src/main/java/karsch/lukas/growbrosprototype/models/Plant.java
 create mode 100644 src/main/java/karsch/lukas/growbrosprototype/models/SoilType.java
 create mode 100644 src/main/java/karsch/lukas/growbrosprototype/service/PlantsService.java
 create mode 100644 src/main/resources/application.properties

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..39c6819
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,34 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..cb28b0e37c7d206feb564310fdeec0927af4123a
GIT binary patch
literal 62547
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
A?*IS*

literal 0
HcmV?d00001

diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..5f0536e
--- /dev/null
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.5/apache-maven-3.9.5-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
diff --git a/growbros-frontend/.eslintrc.cjs b/growbros-frontend/.eslintrc.cjs
new file mode 100644
index 0000000..3d504cb
--- /dev/null
+++ b/growbros-frontend/.eslintrc.cjs
@@ -0,0 +1,18 @@
+module.exports = {
+    root: true,
+    env: {browser: true, es2020: true},
+    extends: [
+        'eslint:recommended',
+        'plugin:@typescript-eslint/recommended',
+        'plugin:react-hooks/recommended',
+    ],
+    ignorePatterns: ['dist', '.eslintrc.cjs'],
+    parser: '@typescript-eslint/parser',
+    plugins: ['react-refresh'],
+    rules: {
+        'react-refresh/only-export-components': [
+            'warn',
+            {allowConstantExport: true},
+        ],
+    },
+}
diff --git a/growbros-frontend/.gitignore b/growbros-frontend/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/growbros-frontend/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/growbros-frontend/README.md b/growbros-frontend/README.md
new file mode 100644
index 0000000..c94aa53
--- /dev/null
+++ b/growbros-frontend/README.md
@@ -0,0 +1,31 @@
+# React + TypeScript + Vite
+
+This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
+
+Currently, two official plugins are available:
+
+- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md)
+  uses [Babel](https://babeljs.io/) for Fast Refresh
+- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast
+  Refresh
+
+## Expanding the ESLint configuration
+
+If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
+
+- Configure the top-level `parserOptions` property like this:
+
+```js
+   parserOptions: {
+    ecmaVersion: 'latest',
+    sourceType: 'module',
+    project: ['./tsconfig.json', './tsconfig.node.json'],
+    tsconfigRootDir: __dirname,
+   },
+```
+
+- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked`
+  or `plugin:@typescript-eslint/strict-type-checked`
+- Optionally add `plugin:@typescript-eslint/stylistic-type-checked`
+- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and
+  add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list
diff --git a/growbros-frontend/index.html b/growbros-frontend/index.html
new file mode 100644
index 0000000..f69a4c4
--- /dev/null
+++ b/growbros-frontend/index.html
@@ -0,0 +1,13 @@
+<!doctype html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8"/>
+    <link rel="icon" type="image/svg+xml" href="/vite.svg"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <title>Vite + React + TS</title>
+</head>
+<body>
+<div id="root"></div>
+<script type="module" src="/src/main.tsx"></script>
+</body>
+</html>
diff --git a/growbros-frontend/package-lock.json b/growbros-frontend/package-lock.json
new file mode 100644
index 0000000..f3a5c50
--- /dev/null
+++ b/growbros-frontend/package-lock.json
@@ -0,0 +1,2435 @@
+{
+  "name": "growbros-frontend",
+  "version": "0.0.0",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "growbros-frontend",
+      "version": "0.0.0",
+      "dependencies": {
+        "react": "^18.2.0",
+        "react-dom": "^18.2.0"
+      },
+      "devDependencies": {
+        "@types/react": "^18.2.15",
+        "@types/react-dom": "^18.2.7",
+        "@typescript-eslint/eslint-plugin": "^6.0.0",
+        "@typescript-eslint/parser": "^6.0.0",
+        "@vitejs/plugin-react-swc": "^3.3.2",
+        "eslint": "^8.45.0",
+        "eslint-plugin-react-hooks": "^4.6.0",
+        "eslint-plugin-react-refresh": "^0.4.3",
+        "typescript": "^5.0.2",
+        "vite": "^4.4.5"
+      }
+    },
+    "node_modules/@aashutoshrathi/word-wrap": {
+      "version": "1.2.6",
+      "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+      "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/@esbuild/android-arm": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
+      "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/android-arm64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
+      "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/android-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
+      "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/darwin-arm64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
+      "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/darwin-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
+      "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/freebsd-arm64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
+      "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/freebsd-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
+      "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-arm": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
+      "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-arm64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
+      "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-ia32": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
+      "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-loong64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
+      "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
+      "cpu": [
+        "loong64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-mips64el": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
+      "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
+      "cpu": [
+        "mips64el"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-ppc64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
+      "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-riscv64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
+      "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-s390x": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
+      "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
+      "cpu": [
+        "s390x"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
+      "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/netbsd-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
+      "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "netbsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/openbsd-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
+      "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "openbsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/sunos-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
+      "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "sunos"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-arm64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
+      "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-ia32": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
+      "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
+      "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@eslint-community/eslint-utils": {
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+      "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+      "dev": true,
+      "dependencies": {
+        "eslint-visitor-keys": "^3.3.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "peerDependencies": {
+        "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+      }
+    },
+    "node_modules/@eslint-community/regexpp": {
+      "version": "4.10.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+      "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+      "dev": true,
+      "engines": {
+        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@eslint/eslintrc": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
+      "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
+      "dev": true,
+      "dependencies": {
+        "ajv": "^6.12.4",
+        "debug": "^4.3.2",
+        "espree": "^9.6.0",
+        "globals": "^13.19.0",
+        "ignore": "^5.2.0",
+        "import-fresh": "^3.2.1",
+        "js-yaml": "^4.1.0",
+        "minimatch": "^3.1.2",
+        "strip-json-comments": "^3.1.1"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/@eslint/js": {
+      "version": "8.52.0",
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz",
+      "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@humanwhocodes/config-array": {
+      "version": "0.11.13",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
+      "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
+      "dev": true,
+      "dependencies": {
+        "@humanwhocodes/object-schema": "^2.0.1",
+        "debug": "^4.1.1",
+        "minimatch": "^3.0.5"
+      },
+      "engines": {
+        "node": ">=10.10.0"
+      }
+    },
+    "node_modules/@humanwhocodes/module-importer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+      "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12.22"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/nzakas"
+      }
+    },
+    "node_modules/@humanwhocodes/object-schema": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
+      "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
+      "dev": true
+    },
+    "node_modules/@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dev": true,
+      "dependencies": {
+        "@nodelib/fs.stat": "2.0.5",
+        "run-parallel": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.stat": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "dev": true,
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dev": true,
+      "dependencies": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@swc/core": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.95.tgz",
+      "integrity": "sha512-PMrNeuqIusq9DPDooV3FfNEbZuTu5jKAc04N3Hm6Uk2Fl49cqElLFQ4xvl4qDmVDz97n3n/C1RE0/f6WyGPEiA==",
+      "dev": true,
+      "hasInstallScript": true,
+      "dependencies": {
+        "@swc/counter": "^0.1.1",
+        "@swc/types": "^0.1.5"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/swc"
+      },
+      "optionalDependencies": {
+        "@swc/core-darwin-arm64": "1.3.95",
+        "@swc/core-darwin-x64": "1.3.95",
+        "@swc/core-linux-arm-gnueabihf": "1.3.95",
+        "@swc/core-linux-arm64-gnu": "1.3.95",
+        "@swc/core-linux-arm64-musl": "1.3.95",
+        "@swc/core-linux-x64-gnu": "1.3.95",
+        "@swc/core-linux-x64-musl": "1.3.95",
+        "@swc/core-win32-arm64-msvc": "1.3.95",
+        "@swc/core-win32-ia32-msvc": "1.3.95",
+        "@swc/core-win32-x64-msvc": "1.3.95"
+      },
+      "peerDependencies": {
+        "@swc/helpers": "^0.5.0"
+      },
+      "peerDependenciesMeta": {
+        "@swc/helpers": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@swc/core-darwin-arm64": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.95.tgz",
+      "integrity": "sha512-VAuBAP3MNetO/yBIBzvorUXq7lUBwhfpJxYViSxyluMwtoQDhE/XWN598TWMwMl1ZuImb56d7eUsuFdjgY7pJw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@swc/core-darwin-x64": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.95.tgz",
+      "integrity": "sha512-20vF2rvUsN98zGLZc+dsEdHvLoCuiYq/1B+TDeE4oolgTFDmI1jKO+m44PzWjYtKGU9QR95sZ6r/uec0QC5O4Q==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@swc/core-linux-arm-gnueabihf": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.95.tgz",
+      "integrity": "sha512-oEudEM8PST1MRNGs+zu0cx5i9uP8TsLE4/L9HHrS07Ck0RJ3DCj3O2fU832nmLe2QxnAGPwBpSO9FntLfOiWEQ==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@swc/core-linux-arm64-gnu": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.95.tgz",
+      "integrity": "sha512-pIhFI+cuC1aYg+0NAPxwT/VRb32f2ia8oGxUjQR6aJg65gLkUYQzdwuUmpMtFR2WVf7WVFYxUnjo4UyMuyh3ng==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@swc/core-linux-arm64-musl": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.95.tgz",
+      "integrity": "sha512-ZpbTr+QZDT4OPJfjPAmScqdKKaT+wGurvMU5AhxLaf85DuL8HwUwwlL0n1oLieLc47DwIJEMuKQkYhXMqmJHlg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@swc/core-linux-x64-gnu": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.95.tgz",
+      "integrity": "sha512-n9SuHEFtdfSJ+sHdNXNRuIOVprB8nbsz+08apKfdo4lEKq6IIPBBAk5kVhPhkjmg2dFVHVo4Tr/OHXM1tzWCCw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@swc/core-linux-x64-musl": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.95.tgz",
+      "integrity": "sha512-L1JrVlsXU3LC0WwmVnMK9HrOT2uhHahAoPNMJnZQpc18a0paO9fqifPG8M/HjNRffMUXR199G/phJsf326UvVg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@swc/core-win32-arm64-msvc": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.95.tgz",
+      "integrity": "sha512-YaP4x/aZbUyNdqCBpC2zL8b8n58MEpOUpmOIZK6G1SxGi+2ENht7gs7+iXpWPc0sy7X3YPKmSWMAuui0h8lgAA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@swc/core-win32-ia32-msvc": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.95.tgz",
+      "integrity": "sha512-w0u3HI916zT4BC/57gOd+AwAEjXeUlQbGJ9H4p/gzs1zkSHtoDQghVUNy3n/ZKp9KFod/95cA8mbVF9t1+6epQ==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@swc/core-win32-x64-msvc": {
+      "version": "1.3.95",
+      "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.95.tgz",
+      "integrity": "sha512-5RGnMt0S6gg4Gc6QtPUJ3Qs9Un4sKqccEzgH/tj7V/DVTJwKdnBKxFZfgQ34OR2Zpz7zGOn889xwsFVXspVWNA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@swc/counter": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz",
+      "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==",
+      "dev": true
+    },
+    "node_modules/@swc/types": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz",
+      "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==",
+      "dev": true
+    },
+    "node_modules/@types/json-schema": {
+      "version": "7.0.14",
+      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz",
+      "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==",
+      "dev": true
+    },
+    "node_modules/@types/prop-types": {
+      "version": "15.7.9",
+      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz",
+      "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==",
+      "dev": true
+    },
+    "node_modules/@types/react": {
+      "version": "18.2.33",
+      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.33.tgz",
+      "integrity": "sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==",
+      "dev": true,
+      "dependencies": {
+        "@types/prop-types": "*",
+        "@types/scheduler": "*",
+        "csstype": "^3.0.2"
+      }
+    },
+    "node_modules/@types/react-dom": {
+      "version": "18.2.14",
+      "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.14.tgz",
+      "integrity": "sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==",
+      "dev": true,
+      "dependencies": {
+        "@types/react": "*"
+      }
+    },
+    "node_modules/@types/scheduler": {
+      "version": "0.16.5",
+      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz",
+      "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==",
+      "dev": true
+    },
+    "node_modules/@types/semver": {
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==",
+      "dev": true
+    },
+    "node_modules/@typescript-eslint/eslint-plugin": {
+      "version": "6.9.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.0.tgz",
+      "integrity": "sha512-lgX7F0azQwRPB7t7WAyeHWVfW1YJ9NIgd9mvGhfQpRY56X6AVf8mwM8Wol+0z4liE7XX3QOt8MN1rUKCfSjRIA==",
+      "dev": true,
+      "dependencies": {
+        "@eslint-community/regexpp": "^4.5.1",
+        "@typescript-eslint/scope-manager": "6.9.0",
+        "@typescript-eslint/type-utils": "6.9.0",
+        "@typescript-eslint/utils": "6.9.0",
+        "@typescript-eslint/visitor-keys": "6.9.0",
+        "debug": "^4.3.4",
+        "graphemer": "^1.4.0",
+        "ignore": "^5.2.4",
+        "natural-compare": "^1.4.0",
+        "semver": "^7.5.4",
+        "ts-api-utils": "^1.0.1"
+      },
+      "engines": {
+        "node": "^16.0.0 || >=18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
+        "eslint": "^7.0.0 || ^8.0.0"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@typescript-eslint/parser": {
+      "version": "6.9.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.0.tgz",
+      "integrity": "sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==",
+      "dev": true,
+      "dependencies": {
+        "@typescript-eslint/scope-manager": "6.9.0",
+        "@typescript-eslint/types": "6.9.0",
+        "@typescript-eslint/typescript-estree": "6.9.0",
+        "@typescript-eslint/visitor-keys": "6.9.0",
+        "debug": "^4.3.4"
+      },
+      "engines": {
+        "node": "^16.0.0 || >=18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^7.0.0 || ^8.0.0"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@typescript-eslint/scope-manager": {
+      "version": "6.9.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.0.tgz",
+      "integrity": "sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==",
+      "dev": true,
+      "dependencies": {
+        "@typescript-eslint/types": "6.9.0",
+        "@typescript-eslint/visitor-keys": "6.9.0"
+      },
+      "engines": {
+        "node": "^16.0.0 || >=18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/type-utils": {
+      "version": "6.9.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.9.0.tgz",
+      "integrity": "sha512-XXeahmfbpuhVbhSOROIzJ+b13krFmgtc4GlEuu1WBT+RpyGPIA4Y/eGnXzjbDj5gZLzpAXO/sj+IF/x2GtTMjQ==",
+      "dev": true,
+      "dependencies": {
+        "@typescript-eslint/typescript-estree": "6.9.0",
+        "@typescript-eslint/utils": "6.9.0",
+        "debug": "^4.3.4",
+        "ts-api-utils": "^1.0.1"
+      },
+      "engines": {
+        "node": "^16.0.0 || >=18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^7.0.0 || ^8.0.0"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@typescript-eslint/types": {
+      "version": "6.9.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.0.tgz",
+      "integrity": "sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==",
+      "dev": true,
+      "engines": {
+        "node": "^16.0.0 || >=18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree": {
+      "version": "6.9.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.0.tgz",
+      "integrity": "sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==",
+      "dev": true,
+      "dependencies": {
+        "@typescript-eslint/types": "6.9.0",
+        "@typescript-eslint/visitor-keys": "6.9.0",
+        "debug": "^4.3.4",
+        "globby": "^11.1.0",
+        "is-glob": "^4.0.3",
+        "semver": "^7.5.4",
+        "ts-api-utils": "^1.0.1"
+      },
+      "engines": {
+        "node": "^16.0.0 || >=18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@typescript-eslint/utils": {
+      "version": "6.9.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.9.0.tgz",
+      "integrity": "sha512-5Wf+Jsqya7WcCO8me504FBigeQKVLAMPmUzYgDbWchINNh1KJbxCgVya3EQ2MjvJMVeXl3pofRmprqX6mfQkjQ==",
+      "dev": true,
+      "dependencies": {
+        "@eslint-community/eslint-utils": "^4.4.0",
+        "@types/json-schema": "^7.0.12",
+        "@types/semver": "^7.5.0",
+        "@typescript-eslint/scope-manager": "6.9.0",
+        "@typescript-eslint/types": "6.9.0",
+        "@typescript-eslint/typescript-estree": "6.9.0",
+        "semver": "^7.5.4"
+      },
+      "engines": {
+        "node": "^16.0.0 || >=18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^7.0.0 || ^8.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/visitor-keys": {
+      "version": "6.9.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.0.tgz",
+      "integrity": "sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==",
+      "dev": true,
+      "dependencies": {
+        "@typescript-eslint/types": "6.9.0",
+        "eslint-visitor-keys": "^3.4.1"
+      },
+      "engines": {
+        "node": "^16.0.0 || >=18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@ungap/structured-clone": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+      "dev": true
+    },
+    "node_modules/@vitejs/plugin-react-swc": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.4.1.tgz",
+      "integrity": "sha512-7YQOQcVV5x1luD8nkbCDdyYygFvn1hjqJk68UvNAzY2QG4o4N5EwAhLLFNOcd1HrdMwDl0VElP8VutoWf9IvJg==",
+      "dev": true,
+      "dependencies": {
+        "@swc/core": "^1.3.95"
+      },
+      "peerDependencies": {
+        "vite": "^4"
+      }
+    },
+    "node_modules/acorn": {
+      "version": "8.11.2",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
+      "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
+      "dev": true,
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/acorn-jsx": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+      "dev": true,
+      "peerDependencies": {
+        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+      }
+    },
+    "node_modules/ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "dev": true,
+      "dependencies": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
+    },
+    "node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "dev": true
+    },
+    "node_modules/array-union": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+      "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+      "dev": true
+    },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/braces": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "dev": true,
+      "dependencies": {
+        "fill-range": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/callsites": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+      "dev": true
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+      "dev": true
+    },
+    "node_modules/cross-spawn": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+      "dev": true,
+      "dependencies": {
+        "path-key": "^3.1.0",
+        "shebang-command": "^2.0.0",
+        "which": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/csstype": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+      "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==",
+      "dev": true
+    },
+    "node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/deep-is": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+      "dev": true
+    },
+    "node_modules/dir-glob": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+      "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+      "dev": true,
+      "dependencies": {
+        "path-type": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/doctrine": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+      "dev": true,
+      "dependencies": {
+        "esutils": "^2.0.2"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/esbuild": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
+      "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+      "dev": true,
+      "hasInstallScript": true,
+      "bin": {
+        "esbuild": "bin/esbuild"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "optionalDependencies": {
+        "@esbuild/android-arm": "0.18.20",
+        "@esbuild/android-arm64": "0.18.20",
+        "@esbuild/android-x64": "0.18.20",
+        "@esbuild/darwin-arm64": "0.18.20",
+        "@esbuild/darwin-x64": "0.18.20",
+        "@esbuild/freebsd-arm64": "0.18.20",
+        "@esbuild/freebsd-x64": "0.18.20",
+        "@esbuild/linux-arm": "0.18.20",
+        "@esbuild/linux-arm64": "0.18.20",
+        "@esbuild/linux-ia32": "0.18.20",
+        "@esbuild/linux-loong64": "0.18.20",
+        "@esbuild/linux-mips64el": "0.18.20",
+        "@esbuild/linux-ppc64": "0.18.20",
+        "@esbuild/linux-riscv64": "0.18.20",
+        "@esbuild/linux-s390x": "0.18.20",
+        "@esbuild/linux-x64": "0.18.20",
+        "@esbuild/netbsd-x64": "0.18.20",
+        "@esbuild/openbsd-x64": "0.18.20",
+        "@esbuild/sunos-x64": "0.18.20",
+        "@esbuild/win32-arm64": "0.18.20",
+        "@esbuild/win32-ia32": "0.18.20",
+        "@esbuild/win32-x64": "0.18.20"
+      }
+    },
+    "node_modules/escape-string-regexp": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/eslint": {
+      "version": "8.52.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz",
+      "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==",
+      "dev": true,
+      "dependencies": {
+        "@eslint-community/eslint-utils": "^4.2.0",
+        "@eslint-community/regexpp": "^4.6.1",
+        "@eslint/eslintrc": "^2.1.2",
+        "@eslint/js": "8.52.0",
+        "@humanwhocodes/config-array": "^0.11.13",
+        "@humanwhocodes/module-importer": "^1.0.1",
+        "@nodelib/fs.walk": "^1.2.8",
+        "@ungap/structured-clone": "^1.2.0",
+        "ajv": "^6.12.4",
+        "chalk": "^4.0.0",
+        "cross-spawn": "^7.0.2",
+        "debug": "^4.3.2",
+        "doctrine": "^3.0.0",
+        "escape-string-regexp": "^4.0.0",
+        "eslint-scope": "^7.2.2",
+        "eslint-visitor-keys": "^3.4.3",
+        "espree": "^9.6.1",
+        "esquery": "^1.4.2",
+        "esutils": "^2.0.2",
+        "fast-deep-equal": "^3.1.3",
+        "file-entry-cache": "^6.0.1",
+        "find-up": "^5.0.0",
+        "glob-parent": "^6.0.2",
+        "globals": "^13.19.0",
+        "graphemer": "^1.4.0",
+        "ignore": "^5.2.0",
+        "imurmurhash": "^0.1.4",
+        "is-glob": "^4.0.0",
+        "is-path-inside": "^3.0.3",
+        "js-yaml": "^4.1.0",
+        "json-stable-stringify-without-jsonify": "^1.0.1",
+        "levn": "^0.4.1",
+        "lodash.merge": "^4.6.2",
+        "minimatch": "^3.1.2",
+        "natural-compare": "^1.4.0",
+        "optionator": "^0.9.3",
+        "strip-ansi": "^6.0.1",
+        "text-table": "^0.2.0"
+      },
+      "bin": {
+        "eslint": "bin/eslint.js"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint-plugin-react-hooks": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
+      "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "peerDependencies": {
+        "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
+      }
+    },
+    "node_modules/eslint-plugin-react-refresh": {
+      "version": "0.4.4",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.4.tgz",
+      "integrity": "sha512-eD83+65e8YPVg6603Om2iCIwcQJf/y7++MWm4tACtEswFLYMwxwVWAfwN+e19f5Ad/FOyyNg9Dfi5lXhH3Y3rA==",
+      "dev": true,
+      "peerDependencies": {
+        "eslint": ">=7"
+      }
+    },
+    "node_modules/eslint-scope": {
+      "version": "7.2.2",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+      "dev": true,
+      "dependencies": {
+        "esrecurse": "^4.3.0",
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint-visitor-keys": {
+      "version": "3.4.3",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/espree": {
+      "version": "9.6.1",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+      "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+      "dev": true,
+      "dependencies": {
+        "acorn": "^8.9.0",
+        "acorn-jsx": "^5.3.2",
+        "eslint-visitor-keys": "^3.4.1"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/esquery": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+      "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+      "dev": true,
+      "dependencies": {
+        "estraverse": "^5.1.0"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/esrecurse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+      "dev": true,
+      "dependencies": {
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/estraverse": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/esutils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/fast-deep-equal": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+      "dev": true
+    },
+    "node_modules/fast-glob": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
+      "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+      "dev": true,
+      "dependencies": {
+        "@nodelib/fs.stat": "^2.0.2",
+        "@nodelib/fs.walk": "^1.2.3",
+        "glob-parent": "^5.1.2",
+        "merge2": "^1.3.0",
+        "micromatch": "^4.0.4"
+      },
+      "engines": {
+        "node": ">=8.6.0"
+      }
+    },
+    "node_modules/fast-glob/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dev": true,
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/fast-json-stable-stringify": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+      "dev": true
+    },
+    "node_modules/fast-levenshtein": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+      "dev": true
+    },
+    "node_modules/fastq": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+      "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+      "dev": true,
+      "dependencies": {
+        "reusify": "^1.0.4"
+      }
+    },
+    "node_modules/file-entry-cache": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+      "dev": true,
+      "dependencies": {
+        "flat-cache": "^3.0.4"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      }
+    },
+    "node_modules/fill-range": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+      "dev": true,
+      "dependencies": {
+        "to-regex-range": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/find-up": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+      "dev": true,
+      "dependencies": {
+        "locate-path": "^6.0.0",
+        "path-exists": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/flat-cache": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz",
+      "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==",
+      "dev": true,
+      "dependencies": {
+        "flatted": "^3.2.9",
+        "keyv": "^4.5.3",
+        "rimraf": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      }
+    },
+    "node_modules/flatted": {
+      "version": "3.2.9",
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
+      "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+      "dev": true
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+      "dev": true
+    },
+    "node_modules/fsevents": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+      "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+      "dev": true,
+      "hasInstallScript": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+      }
+    },
+    "node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/glob-parent": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+      "dev": true,
+      "dependencies": {
+        "is-glob": "^4.0.3"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/globals": {
+      "version": "13.23.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
+      "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
+      "dev": true,
+      "dependencies": {
+        "type-fest": "^0.20.2"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/globby": {
+      "version": "11.1.0",
+      "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+      "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+      "dev": true,
+      "dependencies": {
+        "array-union": "^2.1.0",
+        "dir-glob": "^3.0.1",
+        "fast-glob": "^3.2.9",
+        "ignore": "^5.2.0",
+        "merge2": "^1.4.1",
+        "slash": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/graphemer": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+      "dev": true
+    },
+    "node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ignore": {
+      "version": "5.2.4",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+      "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+      "dev": true,
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/import-fresh": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+      "dev": true,
+      "dependencies": {
+        "parent-module": "^1.0.0",
+        "resolve-from": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.8.19"
+      }
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "dev": true,
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "dev": true
+    },
+    "node_modules/is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "dev": true,
+      "dependencies": {
+        "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.12.0"
+      }
+    },
+    "node_modules/is-path-inside": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+      "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+      "dev": true
+    },
+    "node_modules/js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+    },
+    "node_modules/js-yaml": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+      "dev": true,
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/json-buffer": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+      "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+      "dev": true
+    },
+    "node_modules/json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true
+    },
+    "node_modules/json-stable-stringify-without-jsonify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+      "dev": true
+    },
+    "node_modules/keyv": {
+      "version": "4.5.4",
+      "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+      "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+      "dev": true,
+      "dependencies": {
+        "json-buffer": "3.0.1"
+      }
+    },
+    "node_modules/levn": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+      "dev": true,
+      "dependencies": {
+        "prelude-ls": "^1.2.1",
+        "type-check": "~0.4.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/locate-path": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+      "dev": true,
+      "dependencies": {
+        "p-locate": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/lodash.merge": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+      "dev": true
+    },
+    "node_modules/loose-envify": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+      "dependencies": {
+        "js-tokens": "^3.0.0 || ^4.0.0"
+      },
+      "bin": {
+        "loose-envify": "cli.js"
+      }
+    },
+    "node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dev": true,
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/micromatch": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+      "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+      "dev": true,
+      "dependencies": {
+        "braces": "^3.0.2",
+        "picomatch": "^2.3.1"
+      },
+      "engines": {
+        "node": ">=8.6"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "dev": true
+    },
+    "node_modules/nanoid": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+      "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "bin": {
+        "nanoid": "bin/nanoid.cjs"
+      },
+      "engines": {
+        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+      }
+    },
+    "node_modules/natural-compare": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+      "dev": true
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dev": true,
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/optionator": {
+      "version": "0.9.3",
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+      "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+      "dev": true,
+      "dependencies": {
+        "@aashutoshrathi/word-wrap": "^1.2.3",
+        "deep-is": "^0.1.3",
+        "fast-levenshtein": "^2.0.6",
+        "levn": "^0.4.1",
+        "prelude-ls": "^1.2.1",
+        "type-check": "^0.4.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/p-limit": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+      "dev": true,
+      "dependencies": {
+        "yocto-queue": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-locate": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+      "dev": true,
+      "dependencies": {
+        "p-limit": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/parent-module": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+      "dev": true,
+      "dependencies": {
+        "callsites": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/path-key": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-type": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+      "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/picocolors": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+      "dev": true
+    },
+    "node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "dev": true,
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/postcss": {
+      "version": "8.4.31",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+      "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/postcss/"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/postcss"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "dependencies": {
+        "nanoid": "^3.3.6",
+        "picocolors": "^1.0.0",
+        "source-map-js": "^1.0.2"
+      },
+      "engines": {
+        "node": "^10 || ^12 || >=14"
+      }
+    },
+    "node_modules/prelude-ls": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/punycode": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+      "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
+    "node_modules/react": {
+      "version": "18.2.0",
+      "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
+      "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+      "dependencies": {
+        "loose-envify": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/react-dom": {
+      "version": "18.2.0",
+      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
+      "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
+      "dependencies": {
+        "loose-envify": "^1.1.0",
+        "scheduler": "^0.23.0"
+      },
+      "peerDependencies": {
+        "react": "^18.2.0"
+      }
+    },
+    "node_modules/resolve-from": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/reusify": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "dev": true,
+      "engines": {
+        "iojs": ">=1.0.0",
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "dev": true,
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/rollup": {
+      "version": "3.29.4",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+      "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+      "dev": true,
+      "bin": {
+        "rollup": "dist/bin/rollup"
+      },
+      "engines": {
+        "node": ">=14.18.0",
+        "npm": ">=8.0.0"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "dependencies": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
+    "node_modules/scheduler": {
+      "version": "0.23.0",
+      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+      "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+      "dependencies": {
+        "loose-envify": "^1.1.0"
+      }
+    },
+    "node_modules/semver": {
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/shebang-command": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+      "dev": true,
+      "dependencies": {
+        "shebang-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/slash": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+      "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/source-map-js": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-json-comments": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/text-table": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+      "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+      "dev": true
+    },
+    "node_modules/to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "dev": true,
+      "dependencies": {
+        "is-number": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/ts-api-utils": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz",
+      "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==",
+      "dev": true,
+      "engines": {
+        "node": ">=16.13.0"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.2.0"
+      }
+    },
+    "node_modules/type-check": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+      "dev": true,
+      "dependencies": {
+        "prelude-ls": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/type-fest": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/typescript": {
+      "version": "5.2.2",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+      "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+      "dev": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=14.17"
+      }
+    },
+    "node_modules/uri-js": {
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+      "dev": true,
+      "dependencies": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "node_modules/vite": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz",
+      "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==",
+      "dev": true,
+      "dependencies": {
+        "esbuild": "^0.18.10",
+        "postcss": "^8.4.27",
+        "rollup": "^3.27.1"
+      },
+      "bin": {
+        "vite": "bin/vite.js"
+      },
+      "engines": {
+        "node": "^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/vitejs/vite?sponsor=1"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      },
+      "peerDependencies": {
+        "@types/node": ">= 14",
+        "less": "*",
+        "lightningcss": "^1.21.0",
+        "sass": "*",
+        "stylus": "*",
+        "sugarss": "*",
+        "terser": "^5.4.0"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        },
+        "less": {
+          "optional": true
+        },
+        "lightningcss": {
+          "optional": true
+        },
+        "sass": {
+          "optional": true
+        },
+        "stylus": {
+          "optional": true
+        },
+        "sugarss": {
+          "optional": true
+        },
+        "terser": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/which": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+      "dev": true,
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/node-which"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+      "dev": true
+    },
+    "node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+      "dev": true
+    },
+    "node_modules/yocto-queue": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    }
+  }
+}
diff --git a/growbros-frontend/package.json b/growbros-frontend/package.json
new file mode 100644
index 0000000..96e379d
--- /dev/null
+++ b/growbros-frontend/package.json
@@ -0,0 +1,28 @@
+{
+  "name": "growbros-frontend",
+  "private": true,
+  "version": "0.0.0",
+  "type": "module",
+  "scripts": {
+    "dev": "vite",
+    "build": "tsc && vite build",
+    "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
+    "preview": "vite preview"
+  },
+  "dependencies": {
+    "react": "^18.2.0",
+    "react-dom": "^18.2.0"
+  },
+  "devDependencies": {
+    "@types/react": "^18.2.15",
+    "@types/react-dom": "^18.2.7",
+    "@typescript-eslint/eslint-plugin": "^6.0.0",
+    "@typescript-eslint/parser": "^6.0.0",
+    "@vitejs/plugin-react-swc": "^3.3.2",
+    "eslint": "^8.45.0",
+    "eslint-plugin-react-hooks": "^4.6.0",
+    "eslint-plugin-react-refresh": "^0.4.3",
+    "typescript": "^5.0.2",
+    "vite": "^4.4.5"
+  }
+}
diff --git a/growbros-frontend/public/vite.svg b/growbros-frontend/public/vite.svg
new file mode 100644
index 0000000..d208b45
--- /dev/null
+++ b/growbros-frontend/public/vite.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img"
+     class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257">
+    <defs>
+        <linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%">
+            <stop offset="0%" stop-color="#41D1FF"></stop>
+            <stop offset="100%" stop-color="#BD34FE"></stop>
+        </linearGradient>
+        <linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%">
+            <stop offset="0%" stop-color="#FFEA83"></stop>
+            <stop offset="8.333%" stop-color="#FFDD35"></stop>
+            <stop offset="100%" stop-color="#FFA800"></stop>
+        </linearGradient>
+    </defs>
+    <path fill="url(#IconifyId1813088fe1fbc01fb466)"
+          d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path>
+    <path fill="url(#IconifyId1813088fe1fbc01fb467)"
+          d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path>
+</svg>
\ No newline at end of file
diff --git a/growbros-frontend/src/App.css b/growbros-frontend/src/App.css
new file mode 100644
index 0000000..5471117
--- /dev/null
+++ b/growbros-frontend/src/App.css
@@ -0,0 +1,13 @@
+.plantCard {
+    display: flex;
+    flex-direction: column;
+    width: 250px;
+    aspect-ratio: 2.2;
+    border: 2px solid #A0A0A0;
+    border-radius: 8px;
+    padding: 1rem;
+}
+
+.shadow-light {
+    box-shadow: 0px 12px 24px rgb(24 24 24 / 20%);
+}
\ No newline at end of file
diff --git a/growbros-frontend/src/App.tsx b/growbros-frontend/src/App.tsx
new file mode 100644
index 0000000..f02933b
--- /dev/null
+++ b/growbros-frontend/src/App.tsx
@@ -0,0 +1,17 @@
+import "./App.css";
+import Header from "./components/Header";
+import PlantsOverview from "./components/PlantsOverview";
+
+function App() {
+    return (
+        <>
+            <Header/>
+            <main style={{padding: "2rem", width: "100%"}}>
+                <h2>All plants</h2>
+                <PlantsOverview/>
+            </main>
+        </>
+    );
+}
+
+export default App;
diff --git a/growbros-frontend/src/assets/react.svg b/growbros-frontend/src/assets/react.svg
new file mode 100644
index 0000000..f4b5956
--- /dev/null
+++ b/growbros-frontend/src/assets/react.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img"
+     class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228">
+    <path fill="#00D8FF"
+          d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path>
+</svg>
\ No newline at end of file
diff --git a/growbros-frontend/src/components/Header.tsx b/growbros-frontend/src/components/Header.tsx
new file mode 100644
index 0000000..5e3b324
--- /dev/null
+++ b/growbros-frontend/src/components/Header.tsx
@@ -0,0 +1,14 @@
+export default function Header() {
+    return (
+        <header style={{
+            padding: "1rem 2rem",
+            display: "flex",
+            justifyContent: "space-between",
+            alignContent: "center",
+            background: "#D0D0D0"
+        }}>
+            <h1>GrowBros</h1>
+            <button>+</button>
+        </header>
+    );
+}
diff --git a/growbros-frontend/src/components/PlantCard.tsx b/growbros-frontend/src/components/PlantCard.tsx
new file mode 100644
index 0000000..c0f933d
--- /dev/null
+++ b/growbros-frontend/src/components/PlantCard.tsx
@@ -0,0 +1,19 @@
+import "../App.css";
+
+export default function PlantCard(props: any) {
+    const plant = props.plant;
+
+    return (
+        <li className="plantCard shadow-light">
+            <h2>{plant.name}</h2>
+            <h3>Family: {plant.family ?? "-"}</h3>
+            <p>Plant from {monthLookup(plant.plantMonthStart)} to {monthLookup(plant.plantMonthEnd)}</p>
+            <img src={plant.imageUrl}/>
+        </li>
+    );
+}
+
+function monthLookup(month: number) {
+    const months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dez"];
+    return months[month];
+}
diff --git a/growbros-frontend/src/components/PlantsOverview.tsx b/growbros-frontend/src/components/PlantsOverview.tsx
new file mode 100644
index 0000000..1e2aed3
--- /dev/null
+++ b/growbros-frontend/src/components/PlantsOverview.tsx
@@ -0,0 +1,28 @@
+import {useEffect, useState} from "react";
+import PlantCard from "./PlantCard";
+
+export default function PlantsOverview() {
+    const [plants, setPlants] = useState<any[]>([]);
+    const [error, setError] = useState();
+
+    useEffect(() => {
+        fetch("http://localhost:8080/api/v1/plants")
+            .then((res) => res.json())
+            .then((plants) => setPlants(plants))
+            .catch((err) => setError(err));
+    }, []);
+
+    return (
+        <>
+            {error ? (
+                <p>Error fetching data</p>
+            ) : (
+                <ul style={{display: "flex", gap: "1rem", width: "100%"}}>
+                    {plants?.map((plant) => (
+                        <PlantCard plant={plant} key={plant.id}/>
+                    ))}
+                </ul>
+            )}
+        </>
+    );
+}
diff --git a/growbros-frontend/src/index.css b/growbros-frontend/src/index.css
new file mode 100644
index 0000000..0629990
--- /dev/null
+++ b/growbros-frontend/src/index.css
@@ -0,0 +1,78 @@
+:root {
+    font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
+    line-height: 1.5;
+    font-weight: 400;
+
+    color-scheme: light dark;
+    color: rgba(255, 255, 255, 0.87);
+    background-color: #242424;
+
+    font-synthesis: none;
+    text-rendering: optimizeLegibility;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    -webkit-text-size-adjust: 100%;
+}
+
+*, *::after, *::before {
+    margin: 0;
+    padding: 0;
+}
+
+a {
+    font-weight: 500;
+    color: #646cff;
+    text-decoration: inherit;
+}
+
+a:hover {
+    color: #535bf2;
+}
+
+body {
+    margin: 0;
+    min-width: 320px;
+    min-height: 100vh;
+    overflow-x: hidden;
+}
+
+h1 {
+    font-size: 3.2em;
+    line-height: 1.1;
+}
+
+button {
+    border-radius: 8px;
+    border: 1px solid transparent;
+    padding: 0.6em 1.2em;
+    font-size: 1em;
+    font-weight: 500;
+    font-family: inherit;
+    background-color: #1a1a1a;
+    cursor: pointer;
+    transition: border-color 0.25s;
+}
+
+button:hover {
+    border-color: #646cff;
+}
+
+button:focus,
+button:focus-visible {
+    outline: 4px auto -webkit-focus-ring-color;
+}
+
+@media (prefers-color-scheme: light) {
+    :root {
+        color: #213547;
+        background-color: #ffffff;
+    }
+
+    a:hover {
+        color: #747bff;
+    }
+
+    button {
+        background-color: #f9f9f9;
+    }
+}
diff --git a/growbros-frontend/src/main.tsx b/growbros-frontend/src/main.tsx
new file mode 100644
index 0000000..0475b4a
--- /dev/null
+++ b/growbros-frontend/src/main.tsx
@@ -0,0 +1,10 @@
+import React from 'react'
+import ReactDOM from 'react-dom/client'
+import App from './App.tsx'
+import './index.css'
+
+ReactDOM.createRoot(document.getElementById('root')!).render(
+    <React.StrictMode>
+        <App/>
+    </React.StrictMode>,
+)
diff --git a/growbros-frontend/src/vite-env.d.ts b/growbros-frontend/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/growbros-frontend/src/vite-env.d.ts
@@ -0,0 +1 @@
+/// <reference types="vite/client" />
diff --git a/growbros-frontend/tsconfig.json b/growbros-frontend/tsconfig.json
new file mode 100644
index 0000000..9a5b64e
--- /dev/null
+++ b/growbros-frontend/tsconfig.json
@@ -0,0 +1,33 @@
+{
+  "compilerOptions": {
+    "target": "ES2020",
+    "useDefineForClassFields": true,
+    "lib": [
+      "ES2020",
+      "DOM",
+      "DOM.Iterable"
+    ],
+    "module": "ESNext",
+    "skipLibCheck": true,
+    /* Bundler mode */
+    "moduleResolution": "bundler",
+    "allowImportingTsExtensions": true,
+    "resolveJsonModule": true,
+    "isolatedModules": true,
+    "noEmit": true,
+    "jsx": "react-jsx",
+    /* Linting */
+    "strict": true,
+    "noUnusedLocals": true,
+    "noUnusedParameters": true,
+    "noFallthroughCasesInSwitch": true
+  },
+  "include": [
+    "src"
+  ],
+  "references": [
+    {
+      "path": "./tsconfig.node.json"
+    }
+  ]
+}
diff --git a/growbros-frontend/tsconfig.node.json b/growbros-frontend/tsconfig.node.json
new file mode 100644
index 0000000..b5a3431
--- /dev/null
+++ b/growbros-frontend/tsconfig.node.json
@@ -0,0 +1,12 @@
+{
+  "compilerOptions": {
+    "composite": true,
+    "skipLibCheck": true,
+    "module": "ESNext",
+    "moduleResolution": "bundler",
+    "allowSyntheticDefaultImports": true
+  },
+  "include": [
+    "vite.config.ts"
+  ]
+}
diff --git a/growbros-frontend/vite.config.ts b/growbros-frontend/vite.config.ts
new file mode 100644
index 0000000..4126959
--- /dev/null
+++ b/growbros-frontend/vite.config.ts
@@ -0,0 +1,7 @@
+import {defineConfig} from 'vite'
+import react from '@vitejs/plugin-react-swc'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+    plugins: [react()],
+})
diff --git a/mvnw b/mvnw
new file mode 100644
index 0000000..66df285
--- /dev/null
+++ b/mvnw
@@ -0,0 +1,308 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Apache Maven Wrapper startup batch script, version 3.2.0
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /usr/local/etc/mavenrc ] ; then
+    . /usr/local/etc/mavenrc
+  fi
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "$(uname)" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME
+      else
+        JAVA_HOME="/Library/Java/Home"; export JAVA_HOME
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=$(java-config --jre-home)
+  fi
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=$(cygpath --unix "$JAVA_HOME")
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=$(cygpath --path --unix "$CLASSPATH")
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] &&
+    JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="$(which javac)"
+  if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=$(which readlink)
+    if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then
+      if $darwin ; then
+        javaHome="$(dirname "\"$javaExecutable\"")"
+        javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac"
+      else
+        javaExecutable="$(readlink -f "\"$javaExecutable\"")"
+      fi
+      javaHome="$(dirname "\"$javaExecutable\"")"
+      javaHome=$(expr "$javaHome" : '\(.*\)/bin')
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=$(cd "$wdir/.." || exit 1; pwd)
+    fi
+    # end of workaround
+  done
+  printf '%s' "$(cd "$basedir" || exit 1; pwd)"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    # Remove \r in case we run on Windows within Git Bash
+    # and check out the repository with auto CRLF management
+    # enabled. Otherwise, we may read lines that are delimited with
+    # \r\n and produce $'-Xarg\r' rather than -Xarg due to word
+    # splitting rules.
+    tr -s '\r\n' ' ' < "$1"
+  fi
+}
+
+log() {
+  if [ "$MVNW_VERBOSE" = true ]; then
+    printf '%s\n' "$1"
+  fi
+}
+
+BASE_DIR=$(find_maven_basedir "$(dirname "$0")")
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR
+log "$MAVEN_PROJECTBASEDIR"
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar"
+if [ -r "$wrapperJarPath" ]; then
+    log "Found $wrapperJarPath"
+else
+    log "Couldn't find $wrapperJarPath, downloading it ..."
+
+    if [ -n "$MVNW_REPOURL" ]; then
+      wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+    else
+      wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+    fi
+    while IFS="=" read -r key value; do
+      # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' )
+      safeValue=$(echo "$value" | tr -d '\r')
+      case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;;
+      esac
+    done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+    log "Downloading from: $wrapperUrl"
+
+    if $cygwin; then
+      wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
+    fi
+
+    if command -v wget > /dev/null; then
+        log "Found wget ... using wget"
+        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+        else
+            wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        log "Found curl ... using curl"
+        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
+        else
+            curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
+        fi
+    else
+        log "Falling back to using Java to download"
+        javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaSource=$(cygpath --path --windows "$javaSource")
+          javaClass=$(cygpath --path --windows "$javaClass")
+        fi
+        if [ -e "$javaSource" ]; then
+            if [ ! -e "$javaClass" ]; then
+                log " - Compiling MavenWrapperDownloader.java ..."
+                ("$JAVA_HOME/bin/javac" "$javaSource")
+            fi
+            if [ -e "$javaClass" ]; then
+                log " - Running MavenWrapperDownloader.java ..."
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath"
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+# If specified, validate the SHA-256 sum of the Maven wrapper jar file
+wrapperSha256Sum=""
+while IFS="=" read -r key value; do
+  case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;;
+  esac
+done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+if [ -n "$wrapperSha256Sum" ]; then
+  wrapperSha256Result=false
+  if command -v sha256sum > /dev/null; then
+    if echo "$wrapperSha256Sum  $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then
+      wrapperSha256Result=true
+    fi
+  elif command -v shasum > /dev/null; then
+    if echo "$wrapperSha256Sum  $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then
+      wrapperSha256Result=true
+    fi
+  else
+    echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available."
+    echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties."
+    exit 1
+  fi
+  if [ $wrapperSha256Result = false ]; then
+    echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2
+    echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2
+    echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2
+    exit 1
+  fi
+fi
+
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME")
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=$(cygpath --path --windows "$CLASSPATH")
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR")
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+# shellcheck disable=SC2086 # safe args
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  $MAVEN_DEBUG_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
new file mode 100644
index 0000000..95ba6f5
--- /dev/null
+++ b/mvnw.cmd
@@ -0,0 +1,205 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Apache Maven Wrapper startup batch script, version 3.2.0
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %WRAPPER_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file
+SET WRAPPER_SHA_256_SUM=""
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B
+)
+IF NOT %WRAPPER_SHA_256_SUM%=="" (
+    powershell -Command "&{"^
+       "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^
+       "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^
+       "  Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^
+       "  Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^
+       "  Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^
+       "  exit 1;"^
+       "}"^
+       "}"
+    if ERRORLEVEL 1 goto error
+)
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% ^
+  %JVM_CONFIG_MAVEN_PROPS% ^
+  %MAVEN_OPTS% ^
+  %MAVEN_DEBUG_OPTS% ^
+  -classpath %WRAPPER_JAR% ^
+  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
+  %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%"=="on" pause
+
+if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
+
+cmd /C exit /B %ERROR_CODE%
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..386493e
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.1.5</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>karsch.lukas</groupId>
+    <artifactId>GrowBrosPrototype</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>GrowBrosPrototype</name>
+    <description>GrowBrosPrototype</description>
+    <properties>
+        <java.version>17</java.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jdbc</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <!--        <dependency>-->
+        <!--            <groupId>org.springframework.boot</groupId>-->
+        <!--            <artifactId>spring-boot-starter-security</artifactId>-->
+        <!--        </dependency>-->
+
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                        </exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/requests.http b/requests.http
new file mode 100644
index 0000000..5e981ad
--- /dev/null
+++ b/requests.http
@@ -0,0 +1,13 @@
+### Create plant
+POST http://localhost:8080/api/v1/plants
+content-type: application/json
+
+{
+  "name": "Beautiful flowers",
+  "plantMonthStart": 3,
+  "plantMonthEnd": 4,
+  "harvestMonthStart": 6,
+  "harvestMonthEnd": 8,
+  "soilType": "SANDY",
+  "imageUrl": "https://www.ediblearrangements.com/blog/wp-content/uploads/2021/11/Dahlia-min.jpg"
+}
diff --git a/src/main/java/karsch/lukas/growbrosprototype/GrowBrosApplication.java b/src/main/java/karsch/lukas/growbrosprototype/GrowBrosApplication.java
new file mode 100644
index 0000000..7602ba0
--- /dev/null
+++ b/src/main/java/karsch/lukas/growbrosprototype/GrowBrosApplication.java
@@ -0,0 +1,11 @@
+package karsch.lukas.growbrosprototype;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class GrowBrosApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(GrowBrosApplication.class, args);
+    }
+}
diff --git a/src/main/java/karsch/lukas/growbrosprototype/controllers/PlantsController.java b/src/main/java/karsch/lukas/growbrosprototype/controllers/PlantsController.java
new file mode 100644
index 0000000..ced4ca0
--- /dev/null
+++ b/src/main/java/karsch/lukas/growbrosprototype/controllers/PlantsController.java
@@ -0,0 +1,28 @@
+package karsch.lukas.growbrosprototype.controllers;
+
+import jakarta.validation.Valid;
+import karsch.lukas.growbrosprototype.models.Plant;
+import karsch.lukas.growbrosprototype.service.PlantsService;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Collection;
+
+@RestController
+@CrossOrigin
+public class PlantsController {
+    private final PlantsService plantsService;
+
+    public PlantsController(PlantsService plantsService) {
+        this.plantsService = plantsService;
+    }
+
+    @GetMapping("/api/v1/plants")
+    public Collection<Plant> getAllPlants() {
+        return plantsService.getPlants();
+    }
+
+    @PostMapping("/api/v1/plants")
+    public void createPlant(@RequestBody @Valid Plant plant) {
+        plantsService.create(plant);
+    }
+}
diff --git a/src/main/java/karsch/lukas/growbrosprototype/models/Plant.java b/src/main/java/karsch/lukas/growbrosprototype/models/Plant.java
new file mode 100644
index 0000000..e98dd94
--- /dev/null
+++ b/src/main/java/karsch/lukas/growbrosprototype/models/Plant.java
@@ -0,0 +1,48 @@
+package karsch.lukas.growbrosprototype.models;
+
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotBlank;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.URL;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Plant {
+    private String id;
+    @NotBlank
+    private String name;
+    private String family;
+    @Min(0)
+    @Max(11)
+    private int plantMonthStart;
+    @Min(0)
+    @Max(11)
+    private int plantMonthEnd;
+    @Min(0)
+    @Max(11)
+    private int harvestMonthStart;
+    @Min(0)
+    @Max(11)
+    private int harvestMonthEnd;
+    private SoilType soilType;
+    @URL
+    private String imageUrl;
+
+    @Override
+    public String toString() {
+        return "Plant: {" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", family='" + family + '\'' +
+                ", plantMonthStart=" + plantMonthStart +
+                ", plantMonthEnd=" + plantMonthEnd +
+                ", harvestMonthStart=" + harvestMonthStart +
+                ", harvestMonthEnd=" + harvestMonthEnd +
+                ", soilType=" + soilType +
+                '}';
+    }
+}
diff --git a/src/main/java/karsch/lukas/growbrosprototype/models/SoilType.java b/src/main/java/karsch/lukas/growbrosprototype/models/SoilType.java
new file mode 100644
index 0000000..e270a78
--- /dev/null
+++ b/src/main/java/karsch/lukas/growbrosprototype/models/SoilType.java
@@ -0,0 +1,7 @@
+package karsch.lukas.growbrosprototype.models;
+
+public enum SoilType {
+    SANDY,
+    WET,
+    CLAY
+}
diff --git a/src/main/java/karsch/lukas/growbrosprototype/service/PlantsService.java b/src/main/java/karsch/lukas/growbrosprototype/service/PlantsService.java
new file mode 100644
index 0000000..dd916ed
--- /dev/null
+++ b/src/main/java/karsch/lukas/growbrosprototype/service/PlantsService.java
@@ -0,0 +1,25 @@
+package karsch.lukas.growbrosprototype.service;
+
+import karsch.lukas.growbrosprototype.models.Plant;
+import karsch.lukas.growbrosprototype.models.SoilType;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.UUID;
+
+@Service
+public class PlantsService {
+    private final HashMap<String, Plant> db = new HashMap<>() {{
+        put("1", new Plant("1", "My plant", null, 2, 4, 6, 7, SoilType.SANDY, "https://media.istockphoto.com/id/1372896722/photo/potted-banana-plant-isolated-on-white-background.jpg?s=612x612&w=0&k=20&c=bioeNAo7zEqALK6jvyGlxeP_Y7h6j0QjuWbwY4E_eP8="));
+    }};
+
+    public Collection<Plant> getPlants() {
+        return db.values();
+    }
+
+    public void create(Plant plant) {
+        plant.setId(UUID.randomUUID().toString());
+        db.put(plant.getId(), plant);
+    }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/main/resources/application.properties
@@ -0,0 +1 @@
+
-- 
GitLab