diff --git a/.next/build-manifest.json b/.next/build-manifest.json
deleted file mode 100644
index ef17f0554..000000000
--- a/.next/build-manifest.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "polyfillFiles": [
- "static/chunks/polyfills.js"
- ],
- "devFiles": [
- "static/chunks/react-refresh.js"
- ],
- "ampDevFiles": [],
- "lowPriorityFiles": [
- "static/development/_buildManifest.js",
- "static/development/_ssgManifest.js"
- ],
- "rootMainFiles": [],
- "pages": {
- "/": [
- "static/chunks/webpack.js",
- "static/chunks/main.js",
- "static/chunks/pages/index.js"
- ],
- "/_app": [
- "static/chunks/webpack.js",
- "static/chunks/main.js",
- "static/chunks/pages/_app.js"
- ],
- "/_error": [
- "static/chunks/webpack.js",
- "static/chunks/main.js",
- "static/chunks/pages/_error.js"
- ]
- },
- "ampFirstPages": []
-}
\ No newline at end of file
diff --git a/.next/cache/webpack/client-development-fallback/index.pack.gz.old b/.next/cache/webpack/client-development-fallback/index.pack.gz.old
deleted file mode 100644
index fc389ceca..000000000
Binary files a/.next/cache/webpack/client-development-fallback/index.pack.gz.old and /dev/null differ
diff --git a/.next/cache/webpack/client-development/index.pack.gz.old b/.next/cache/webpack/client-development/index.pack.gz.old
deleted file mode 100644
index 064c484a5..000000000
Binary files a/.next/cache/webpack/client-development/index.pack.gz.old and /dev/null differ
diff --git a/.next/cache/webpack/server-development/index.pack.gz.old b/.next/cache/webpack/server-development/index.pack.gz.old
deleted file mode 100644
index b6da4c1b7..000000000
Binary files a/.next/cache/webpack/server-development/index.pack.gz.old and /dev/null differ
diff --git a/.next/package.json b/.next/package.json
deleted file mode 100644
index 7156107e3..000000000
--- a/.next/package.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type": "commonjs"}
\ No newline at end of file
diff --git a/.next/react-loadable-manifest.json b/.next/react-loadable-manifest.json
deleted file mode 100644
index d84545f66..000000000
--- a/.next/react-loadable-manifest.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "pages\\index.js -> ../components/MapComponent": {
- "id": "pages\\index.js -> ../components/MapComponent",
- "files": [
- "static/chunks/components_MapComponent_js.js"
- ]
- }
-}
\ No newline at end of file
diff --git a/.next/server/components_MapComponent_js.js b/.next/server/components_MapComponent_js.js
deleted file mode 100644
index 9ff0ad5be..000000000
--- a/.next/server/components_MapComponent_js.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-exports.id = "components_MapComponent_js";
-exports.ids = ["components_MapComponent_js"];
-exports.modules = {
-
-/***/ "./components/MapComponent.js":
-/*!************************************!*\
- !*** ./components/MapComponent.js ***!
- \************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! leaflet */ \"leaflet\");\n/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(leaflet__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! leaflet/dist/leaflet.css */ \"./node_modules/leaflet/dist/leaflet.css\");\n/* harmony import */ var leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! leaflet-contextmenu/dist/leaflet.contextmenu.css */ \"./node_modules/leaflet-contextmenu/dist/leaflet.contextmenu.css\");\n/* harmony import */ var leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! leaflet-contextmenu */ \"leaflet-contextmenu\");\n/* harmony import */ var leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _config_config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../config/config.js */ \"./config/config.js\");\n// components/MapComponent.js\n\n\n\n\n\n\n\nconst MapComponent = ({ locations, onLocationUpdate })=>{\n const mapRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); // Referenz auf das DIV-Element der Karte\n const [map, setMap] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null); // Zustand der Karteninstanz\n const [online, setOnline] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(navigator.onLine); // Zustand der Internetverbindung\n const [GisStationsStaticDistrict, setGisStationsStaticDistrict] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für statische Daten\n const [dataStatus, setDataStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für Statusdaten\n const [dataIcons, setDataIcons] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für Icons\n const [dataSystem, setDataSystem] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für Systemdaten\n // Konstanten für die URLs\n const mapGisStationsStaticDistrictUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapGisStationsStaticDistrictUrl;\n const mapDataStatusUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStatusUrl;\n const mapDataIconUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataIconUrl;\n const mapDataSystemUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataSystemUrl;\n console.log(\"GisStationsStaticDistrict 1 :\", GisStationsStaticDistrict);\n console.log(\"map:\", map);\n //------------------------------------------\n // API-Daten laden für GisStationsStaticDistrict\n //http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsStaticDistrict?idMap=10&idUser=485\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const fetchData = async ()=>{\n try {\n console.log(\"Datenabruf gestartet...\");\n const response = await fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapGisStationsStaticDistrictUrl);\n const jsonResponse = await response.json();\n // Prüfen, ob die Antwort das erwartete Format hat und Daten enthält\n if (jsonResponse && jsonResponse.Points) {\n console.log(\"GisStationsStaticDistrict geladen:\", jsonResponse.Points);\n setGisStationsStaticDistrict(jsonResponse.Points); // Direkter Zugriff auf 'Points'\n } else {\n console.error('Erwartete Daten im \"Points\"-Array nicht gefunden', jsonResponse);\n setGisStationsStaticDistrict([]);\n }\n } catch (error) {\n console.error(\"Fehler beim Laden der Daten: \", error);\n setGisStationsStaticDistrict([]);\n }\n };\n fetchData();\n }, []); // Dependency-Array ist leer, um den Effekt nur beim Mount auszuführen\n //------------------------------------------\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Prüfen der Internetverbindung beim Start\n console.log(\"Pr\\xfcfen der Internetverbindung...\");\n checkInternet();\n // Asynchrones Laden der Kartendaten beim Initialisieren der Komponente\n const fetchData = async ()=>{\n try {\n console.log(\"Datenabruf gestartet...\");\n const responses = await Promise.all([\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapGisStationsStaticDistrictUrl).then((res)=>res.json()),\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStatusUrl).then((res)=>res.json()),\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataIconUrl).then((res)=>res.json()),\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataSystemUrl).then((res)=>res.json())\n ]);\n console.log(\"Daten erfolgreich geladen.\");\n setGisStationsStaticDistrict(responses[0].Points);\n setDataStatus(responses[1].Statis);\n setDataIcons(responses[2].List);\n setDataSystem(responses[3].Systems.filter((system)=>system.Allow === 1));\n } catch (error) {\n console.error(\"Fehler beim Laden der Daten: \", error);\n }\n };\n fetchData();\n }, []); // Leeres Abhängigkeitsarray, um nur beim ersten Mount zu laden\n const offlineTileLayer = \"../TileMap/mapTiles/{z}/{x}/{y}.png\";\n const onlineTileLayer = \"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\";\n // Create map layers\n const TALAS = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const ECI = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const ULAF = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const GSMModem = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const CiscoRouter = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const WAGO = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const Siemens = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const OTDR = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const WDM = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const GMA = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const Sonstige = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const TALASICL = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n let initialMap = [];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n console.log(\"Server URL from config:\", _config_config_js__WEBPACK_IMPORTED_MODULE_6__.serverURL);\n if (false) {}\n }, []);\n // Funktionen zur Überwachung der Internetverbindung\n const checkInternet = ()=>{\n console.log(\"Checking internet connectivity...\");\n fetch(\"https://tile.openstreetmap.org/1/1/1.png\", {\n method: \"HEAD\"\n }).then((response)=>setOnline(response.ok)).catch(()=>setOnline(false));\n };\n // Initialisiere die Karte\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (mapRef.current && !map) {\n initialMap = leaflet__WEBPACK_IMPORTED_MODULE_2___default().map(mapRef.current, {\n center: [\n 53.111111,\n 8.4625\n ],\n zoom: 10,\n layers: [\n TALAS,\n ECI,\n ULAF,\n GSMModem,\n CiscoRouter,\n WAGO,\n Siemens,\n OTDR,\n WDM,\n GMA,\n Sonstige,\n TALASICL\n ],\n zoomControl: false,\n contextmenu: true,\n contextmenuItems: [\n {\n text: \"Station hinzuf\\xfcgen\",\n callback: showAddStationPopup\n },\n {\n text: \"Station \\xf6ffnen (Tab)\",\n icon: \"img/screen_new.png\",\n callback: newLink\n },\n {\n text: \"Station \\xf6ffnen\",\n icon: \"img/screen_same.png\",\n callback: sameLink\n },\n {\n text: \"Koordinaten\",\n icon: \"img/screen_same.png\",\n callback: lata\n },\n \"-\",\n {\n text: \"Reinzoomen\",\n callback: zoomIn\n },\n {\n text: \"Rauszoomen\",\n callback: zoomOut\n },\n {\n text: \"Hier zentrieren\",\n callback: centerHere\n }\n ]\n });\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().tileLayer(online ? onlineTileLayer : offlineTileLayer, {\n attribution: '© OpenStreetMap contributors'\n }).addTo(initialMap);\n setMap(initialMap);\n }\n }, [\n mapRef,\n map\n ]);\n // Handle online/offline status\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n window.addEventListener(\"online\", checkInternet);\n window.addEventListener(\"offline\", checkInternet);\n return ()=>{\n window.removeEventListener(\"online\", checkInternet);\n window.removeEventListener(\"offline\", checkInternet);\n };\n }, []);\n // Update map layers based on online status\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (map) {\n const newLayer = leaflet__WEBPACK_IMPORTED_MODULE_2___default().tileLayer(online ? onlineTileLayer : offlineTileLayer, {\n minZoom: 7,\n maxZoom: online ? 19 : 14,\n attribution: 'Map data \\xa9 OpenStreetMap contributors'\n });\n map.eachLayer((layer)=>{\n if (layer instanceof (leaflet__WEBPACK_IMPORTED_MODULE_2___default().TileLayer)) {\n map.removeLayer(layer);\n }\n });\n newLayer.addTo(map);\n }\n }, [\n online,\n map\n ]);\n // Marker handling\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Remove old markers\n if (map) {\n map.eachLayer((layer)=>{\n if (layer instanceof (leaflet__WEBPACK_IMPORTED_MODULE_2___default().Marker)) {\n map.removeLayer(layer);\n }\n });\n // Add new markers\n locations.forEach((location)=>{\n const { latitude, longitude } = parsePoint(location.position);\n const marker = leaflet__WEBPACK_IMPORTED_MODULE_2___default().marker([\n latitude,\n longitude\n ], {\n icon: leaflet__WEBPACK_IMPORTED_MODULE_2___default().icon({\n iconUrl: \"/location.svg\",\n iconSize: [\n 34,\n 34\n ],\n iconAnchor: [\n 17,\n 34\n ],\n popupAnchor: [\n 0,\n -34\n ]\n }),\n draggable: true,\n id: location.idPoi\n });\n marker.bindPopup(`${location.description || \"Unbekannt\"}
Type: ${location.idPoiTyp || \"N/A\"}
Lat: ${latitude.toFixed(5)}, Lng: ${longitude.toFixed(5)}`);\n marker.on(\"dragend\", function(e) {\n const newLat = e.target.getLatLng().lat;\n const newLng = e.target.getLatLng().lng;\n const markerId = e.target.options.id;\n updateLocationInDatabase(markerId, newLat, newLng).then(()=>{\n onLocationUpdate(markerId, newLat, newLng);\n });\n });\n marker.addTo(map);\n });\n }\n }, [\n map,\n locations,\n onLocationUpdate\n ]);\n //------------------------------------------\n function parsePoint(pointString) {\n const match = pointString.match(/POINT\\s*\\((\\d+(\\.\\d+)?)\\s+(\\d+(\\.\\d+)?)\\)/);\n if (match) {\n return {\n longitude: parseFloat(match[1]),\n latitude: parseFloat(match[3])\n };\n } else {\n // Handle the error or return a default/fallback value\n console.error(\"Invalid POINT format:\", pointString);\n return null; // Oder eine sinnvolle Standardantwort\n }\n }\n //----------------------------------\n //-----Kontextmenu----------------\n const newLink = (e)=>{\n try {\n if (!e.relatedTarget || !e.relatedTarget.options) {\n throw new Error(\"relatedTarget or options not defined\");\n }\n alert(\"Neues Fenster: \" + e.relatedTarget.options.test);\n window.open(`../devices/${e.relatedTarget.options.test}`, \"_blank\").focus();\n } catch (error) {\n console.error(\"Failed in newLink function:\", error);\n }\n };\n const sameLink = (e)=>{\n alert(e.relatedTarget.options.test);\n window.open(\"../devices/\" + e.relatedTarget.options.test, \"_parent\").focus();\n };\n const lata = (e)=>{\n alert(\"Breitengrad: \" + e.latlng.lat);\n };\n const zoomIn = (e)=>{\n initialMap.flyTo(e.latlng, 12);\n };\n const zoomOut = (e)=>{\n fly();\n };\n const centerHere = (e)=>{\n initialMap.panTo(e.latlng);\n };\n const showCoordinates = (e)=>{\n alert(\"Breitengrad: \" + e.latlng.lat + \"\\nL\\xe4ngengrad: \" + e.latlng.lng);\n };\n const showData = (e)=>{\n console.log(e);\n };\n const showTalas = (e)=>{\n map.addLayer(TALAS);\n loadData();\n };\n const hideTalas = (e)=>{\n map.removeLayer(TALAS);\n loadData();\n };\n const showGSM = (e)=>{\n map.addLayer(GMA);\n loadData();\n };\n const hideGSM = (e)=>{\n map.removeLayer(GMA);\n loadData();\n };\n //-----Kontextmenu----ende------------\n // Ensure this function is only called when map is initialized and available\n const showAddStationPopup = (e)=>{\n if (!initialMap) {\n console.log(\"Map is not initialized.\");\n return;\n }\n const popupContent = leaflet__WEBPACK_IMPORTED_MODULE_2___default().DomUtil.create(\"div\");\n popupContent.innerHTML = `\r\n
\r\n `;\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().popup().setLatLng(e.latlng).setContent(popupContent).openOn(initialMap);\n // Attach event listener here\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().DomEvent.on(popupContent, \"submit\", handleSubmit);\n };\n /*\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n const form = event.target;\r\n const data = {\r\n name: form.name.value,\r\n type: form.type.value,\r\n latitude: form.lat.value,\r\n longitude: form.lng.value,\r\n };\r\n\r\n onAddLocation(name, type, lat, lng);\r\n console.log(\"Name: \", name, \"Type: \", type, \"Lat: \", lat, \"Lng: \", lng);\r\n map.closePopup();\r\n };\r\n*/ // Funktion zum Hinzufügen eines neuen Standorts\n async function handleSubmit(event) {\n event.preventDefault();\n const form = event.target;\n const data = {\n name: form.name.value,\n type: form.type.value,\n latitude: form.lat.value,\n longitude: form.lng.value\n };\n try {\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(data)\n });\n const result = await response.json();\n if (response.ok) {\n console.log(\"Standort hinzugef\\xfcgt:\", result);\n alert(\"Standort erfolgreich hinzugef\\xfcgt!\");\n form.reset(); // Formular zurücksetzen\n // Hier könntest du weitere Aktionen durchführen, wie das Schließen des Popups oder das Aktualisieren der Marker auf der Karte\n } else {\n throw new Error(result.error || \"Ein unbekannter Fehler ist aufgetreten.\");\n }\n } catch (error) {\n console.error(\"Fehler beim Hinzuf\\xfcgen des Standorts:\", error);\n alert(error.message);\n }\n }\n function fly(stationValue) {\n var x = 51.41321407879154;\n var y = 7.739617925303934;\n var zoom = 7;\n /* for (var i = 0; i < GisStationsStaticDistrictlength; i++) {\r\n var gisStatics = GisStationsStaticDistrict[i];\r\n if (stationValue === gisStatics.Area_Name) {\r\n //console.log(gisStatics.X+\",\"+gisStatics.Y);\r\n x = gisStatics.X;\r\n y = gisStatics.Y;\r\n }\r\n }\r\n if (y === 7.739617925303934) {\r\n zoom = 8;\r\n } */ initialMap.flyTo([\n x,\n y\n ], zoom);\n /* var popup = new L.Popup();\r\n oms.addListener(\"click\", function (marker) {\r\n popup.setContent(marker.desc);\r\n popup.setLatLng(marker.getLatLng());\r\n map.openPopup(popup);\r\n });\r\n\r\n for (var i = 0; i < window.mapData.length; i++) {\r\n var datum = window.mapData[i];\r\n var loc = new L.LatLng(datum.lat, datum.lon);\r\n var marker = new L.Marker(loc);\r\n marker.desc = datum.d;\r\n map.addLayer(marker);\r\n //oms.addMarker(marker); // <-- here\r\n } */ }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n id: \"map\",\n ref: mapRef,\n style: {\n height: \"100vh\",\n width: \"100vw\",\n overflow: \"hidden\"\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\components\\\\MapComponent.js\",\n lineNumber: 493,\n columnNumber: 5\n }, undefined);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MapComponent);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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dXJjZXNDb250ZW50IjpbIi8vIGNvbXBvbmVudHMvTWFwQ29tcG9uZW50LmpzXHJcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEwgZnJvbSBcImxlYWZsZXRcIjtcclxuaW1wb3J0IFwibGVhZmxldC9kaXN0L2xlYWZsZXQuY3NzXCI7XHJcbmltcG9ydCBcImxlYWZsZXQtY29udGV4dG1lbnUvZGlzdC9sZWFmbGV0LmNvbnRleHRtZW51LmNzc1wiO1xyXG5pbXBvcnQgXCJsZWFmbGV0LWNvbnRleHRtZW51XCI7XHJcbmltcG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi4vY29uZmlnL2NvbmZpZy5qc1wiO1xyXG5jb25zdCBNYXBDb21wb25lbnQgPSAoeyBsb2NhdGlvbnMsIG9uTG9jYXRpb25VcGRhdGUgfSkgPT4ge1xyXG4gIGNvbnN0IG1hcFJlZiA9IHVzZVJlZihudWxsKTsgLy8gUmVmZXJlbnogYXVmIGRhcyBESVYtRWxlbWVudCBkZXIgS2FydGVcclxuICBjb25zdCBbbWFwLCBzZXRNYXBdID0gdXNlU3RhdGUobnVsbCk7IC8vIFp1c3RhbmQgZGVyIEthcnRlbmluc3RhbnpcclxuICBjb25zdCBbb25saW5lLCBzZXRPbmxpbmVdID0gdXNlU3RhdGUobmF2aWdhdG9yLm9uTGluZSk7IC8vIFp1c3RhbmQgZGVyIEludGVybmV0dmVyYmluZHVuZ1xyXG4gIGNvbnN0IFtHaXNTdGF0aW9uc1N0YXRpY0Rpc3RyaWN0LCBzZXRHaXNTdGF0aW9uc1N0YXRpY0Rpc3RyaWN0XSA9IHVzZVN0YXRlKFxyXG4gICAgW11cclxuICApOyAvLyBadXN0YW5kIGbDvHIgc3RhdGlzY2hlIERhdGVuXHJcbiAgY29uc3QgW2RhdGFTdGF0dXMsIHNldERhdGFTdGF0dXNdID0gdXNlU3RhdGUoW10pOyAvLyBadXN0YW5kIGbDvHIgU3RhdHVzZGF0ZW5cclxuICBjb25zdCBbZGF0YUljb25zLCBzZXREYXRhSWNvbnNdID0gdXNlU3RhdGUoW10pOyAvLyBadXN0YW5kIGbDvHIgSWNvbnNcclxuICBjb25zdCBbZGF0YVN5c3RlbSwgc2V0RGF0YVN5c3RlbV0gPSB1c2VTdGF0ZShbXSk7IC8vIFp1c3RhbmQgZsO8ciBTeXN0ZW1kYXRlblxyXG5cclxuICAvLyBLb25zdGFudGVuIGbDvHIgZGllIFVSTHNcclxuICBjb25zdCBtYXBHaXNTdGF0aW9uc1N0YXRpY0Rpc3RyaWN0VXJsID1cclxuICAgIGNvbmZpZy5tYXBHaXNTdGF0aW9uc1N0YXRpY0Rpc3RyaWN0VXJsO1xyXG4gIGNvbnN0IG1hcERhdGFTdGF0dXNVcmwgPSBjb25maWcubWFwRGF0YVN0YXR1c1VybDtcclxuICBjb25zdCBtYXBEYXRhSWNvblVybCA9IGNvbmZpZy5tYXBEYXRhSWNvblVybDtcclxuICBjb25zdCBtYXBEYXRhU3lzdGVtVXJsID0gY29uZmlnLm1hcERhdGFTeXN0ZW1Vcmw7XHJcblxyXG4gIGNvbnNvbGUubG9nKFwiR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdCAxIDpcIiwgR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdCk7XHJcbiAgY29uc29sZS5sb2coXCJtYXA6XCIsIG1hcCk7XHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBBUEktRGF0ZW4gbGFkZW4gZsO8ciBHaXNTdGF0aW9uc1N0YXRpY0Rpc3RyaWN0XHJcbiAgLy9odHRwOi8vMTAuMTAuMC4xMy90YWxhczUvQ2xpZW50RGF0YS9XZWJTZXJ2aWNlTWFwLmFzbXgvR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdD9pZE1hcD0xMCZpZFVzZXI9NDg1XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICgpID0+IHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGVuYWJydWYgZ2VzdGFydGV0Li4uXCIpO1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goY29uZmlnLm1hcEdpc1N0YXRpb25zU3RhdGljRGlzdHJpY3RVcmwpO1xyXG4gICAgICAgIGNvbnN0IGpzb25SZXNwb25zZSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuXHJcbiAgICAgICAgLy8gUHLDvGZlbiwgb2IgZGllIEFudHdvcnQgZGFzIGVyd2FydGV0ZSBGb3JtYXQgaGF0IHVuZCBEYXRlbiBlbnRow6RsdFxyXG4gICAgICAgIGlmIChqc29uUmVzcG9uc2UgJiYganNvblJlc3BvbnNlLlBvaW50cykge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgIFwiR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdCBnZWxhZGVuOlwiLFxyXG4gICAgICAgICAgICBqc29uUmVzcG9uc2UuUG9pbnRzXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgc2V0R2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdChqc29uUmVzcG9uc2UuUG9pbnRzKTsgLy8gRGlyZWt0ZXIgWnVncmlmZiBhdWYgJ1BvaW50cydcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgICAgJ0Vyd2FydGV0ZSBEYXRlbiBpbSBcIlBvaW50c1wiLUFycmF5IG5pY2h0IGdlZnVuZGVuJyxcclxuICAgICAgICAgICAganNvblJlc3BvbnNlXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgc2V0R2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdChbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGZWhsZXIgYmVpbSBMYWRlbiBkZXIgRGF0ZW46IFwiLCBlcnJvcik7XHJcbiAgICAgICAgc2V0R2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdChbXSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgZmV0Y2hEYXRhKCk7XHJcbiAgfSwgW10pOyAvLyBEZXBlbmRlbmN5LUFycmF5IGlzdCBsZWVyLCB1bSBkZW4gRWZmZWt0IG51ciBiZWltIE1vdW50IGF1c3p1ZsO8aHJlblxyXG5cclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAvLyBQcsO8ZmVuIGRlciBJbnRlcm5ldHZlcmJpbmR1bmcgYmVpbSBTdGFydFxyXG4gICAgY29uc29sZS5sb2coXCJQcsO8ZmVuIGRlciBJbnRlcm5ldHZlcmJpbmR1bmcuLi5cIik7XHJcbiAgICBjaGVja0ludGVybmV0KCk7XHJcblxyXG4gICAgLy8gQXN5bmNocm9uZXMgTGFkZW4gZGVyIEthcnRlbmRhdGVuIGJlaW0gSW5pdGlhbGlzaWVyZW4gZGVyIEtvbXBvbmVudGVcclxuICAgIGNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICgpID0+IHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGVuYWJydWYgZ2VzdGFydGV0Li4uXCIpO1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlcyA9IGF3YWl0IFByb21pc2UuYWxsKFtcclxuICAgICAgICAgIGZldGNoKGNvbmZpZy5tYXBHaXNTdGF0aW9uc1N0YXRpY0Rpc3RyaWN0VXJsKS50aGVuKChyZXMpID0+XHJcbiAgICAgICAgICAgIHJlcy5qc29uKClcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICBmZXRjaChjb25maWcubWFwRGF0YVN0YXR1c1VybCkudGhlbigocmVzKSA9PiByZXMuanNvbigpKSxcclxuICAgICAgICAgIGZldGNoKGNvbmZpZy5tYXBEYXRhSWNvblVybCkudGhlbigocmVzKSA9PiByZXMuanNvbigpKSxcclxuICAgICAgICAgIGZldGNoKGNvbmZpZy5tYXBEYXRhU3lzdGVtVXJsKS50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpLFxyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRGF0ZW4gZXJmb2xncmVpY2ggZ2VsYWRlbi5cIik7XHJcbiAgICAgICAgc2V0R2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdChyZXNwb25zZXNbMF0uUG9pbnRzKTtcclxuICAgICAgICBzZXREYXRhU3RhdHVzKHJlc3BvbnNlc1sxXS5TdGF0aXMpO1xyXG4gICAgICAgIHNldERhdGFJY29ucyhyZXNwb25zZXNbMl0uTGlzdCk7XHJcbiAgICAgICAgc2V0RGF0YVN5c3RlbShcclxuICAgICAgICAgIHJlc3BvbnNlc1szXS5TeXN0ZW1zLmZpbHRlcigoc3lzdGVtKSA9PiBzeXN0ZW0uQWxsb3cgPT09IDEpXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiRmVobGVyIGJlaW0gTGFkZW4gZGVyIERhdGVuOiBcIiwgZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGZldGNoRGF0YSgpO1xyXG4gIH0sIFtdKTsgLy8gTGVlcmVzIEFiaMOkbmdpZ2tlaXRzYXJyYXksIHVtIG51ciBiZWltIGVyc3RlbiBNb3VudCB6dSBsYWRlblxyXG5cclxuICBjb25zdCBvZmZsaW5lVGlsZUxheWVyID0gXCIuLi9UaWxlTWFwL21hcFRpbGVzL3t6fS97eH0ve3l9LnBuZ1wiO1xyXG4gIGNvbnN0IG9ubGluZVRpbGVMYXllciA9IFwiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmdcIjtcclxuICAvLyBDcmVhdGUgbWFwIGxheWVyc1xyXG4gIGNvbnN0IFRBTEFTID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gIGNvbnN0IEVDSSA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICBjb25zdCBVTEFGID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gIGNvbnN0IEdTTU1vZGVtID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gIGNvbnN0IENpc2NvUm91dGVyID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gIGNvbnN0IFdBR08gPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcbiAgY29uc3QgU2llbWVucyA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICBjb25zdCBPVERSID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gIGNvbnN0IFdETSA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICBjb25zdCBHTUEgPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcbiAgY29uc3QgU29uc3RpZ2UgPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcbiAgY29uc3QgVEFMQVNJQ0wgPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcblxyXG4gIGxldCBpbml0aWFsTWFwID0gW107XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhcIlNlcnZlciBVUkwgZnJvbSBjb25maWc6XCIsIGNvbmZpZy5zZXJ2ZXJVUkwpO1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJXaW5kb3cgaGVpZ2h0IGZyb20gY29uZmlnOlwiLCBjb25maWcud2luZG93SGVpZ2h0KTtcclxuICAgIH1cclxuICB9LCBbXSk7XHJcblxyXG4gIC8vIEZ1bmt0aW9uZW4genVyIMOcYmVyd2FjaHVuZyBkZXIgSW50ZXJuZXR2ZXJiaW5kdW5nXHJcbiAgY29uc3QgY2hlY2tJbnRlcm5ldCA9ICgpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKFwiQ2hlY2tpbmcgaW50ZXJuZXQgY29ubmVjdGl2aXR5Li4uXCIpO1xyXG4gICAgZmV0Y2goXCJodHRwczovL3RpbGUub3BlbnN0cmVldG1hcC5vcmcvMS8xLzEucG5nXCIsIHsgbWV0aG9kOiBcIkhFQURcIiB9KVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHNldE9ubGluZShyZXNwb25zZS5vaykpXHJcbiAgICAgIC5jYXRjaCgoKSA9PiBzZXRPbmxpbmUoZmFsc2UpKTtcclxuICB9O1xyXG4gIC8vIEluaXRpYWxpc2llcmUgZGllIEthcnRlXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGlmIChtYXBSZWYuY3VycmVudCAmJiAhbWFwKSB7XHJcbiAgICAgIGluaXRpYWxNYXAgPSBMLm1hcChtYXBSZWYuY3VycmVudCwge1xyXG4gICAgICAgIGNlbnRlcjogWzUzLjExMTExMSwgOC40NjI1XSxcclxuICAgICAgICB6b29tOiAxMCxcclxuICAgICAgICBsYXllcnM6IFtcclxuICAgICAgICAgIFRBTEFTLFxyXG4gICAgICAgICAgRUNJLFxyXG4gICAgICAgICAgVUxBRixcclxuICAgICAgICAgIEdTTU1vZGVtLFxyXG4gICAgICAgICAgQ2lzY29Sb3V0ZXIsXHJcbiAgICAgICAgICBXQUdPLFxyXG4gICAgICAgICAgU2llbWVucyxcclxuICAgICAgICAgIE9URFIsXHJcbiAgICAgICAgICBXRE0sXHJcbiAgICAgICAgICBHTUEsXHJcbiAgICAgICAgICBTb25zdGlnZSxcclxuICAgICAgICAgIFRBTEFTSUNMLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgem9vbUNvbnRyb2w6IGZhbHNlLCAvLyBEZWFrdGl2aWVyZSBkaWUgU3RhbmRhcmQtWm9vbXN0ZXVlcnVuZ1xyXG4gICAgICAgIGNvbnRleHRtZW51OiB0cnVlLFxyXG4gICAgICAgIGNvbnRleHRtZW51SXRlbXM6IFtcclxuICAgICAgICAgIHsgdGV4dDogXCJTdGF0aW9uIGhpbnp1ZsO8Z2VuXCIsIGNhbGxiYWNrOiBzaG93QWRkU3RhdGlvblBvcHVwIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQ6IFwiU3RhdGlvbiDDtmZmbmVuIChUYWIpXCIsXHJcbiAgICAgICAgICAgIGljb246IFwiaW1nL3NjcmVlbl9uZXcucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBuZXdMaW5rLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogXCJTdGF0aW9uIMO2ZmZuZW5cIixcclxuICAgICAgICAgICAgaWNvbjogXCJpbWcvc2NyZWVuX3NhbWUucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBzYW1lTGluayxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQ6IFwiS29vcmRpbmF0ZW5cIixcclxuICAgICAgICAgICAgaWNvbjogXCJpbWcvc2NyZWVuX3NhbWUucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBsYXRhLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIFwiLVwiLCAvLyBEaXZpZGVyXHJcbiAgICAgICAgICB7IHRleHQ6IFwiUmVpbnpvb21lblwiLCBjYWxsYmFjazogem9vbUluIH0sXHJcbiAgICAgICAgICB7IHRleHQ6IFwiUmF1c3pvb21lblwiLCBjYWxsYmFjazogem9vbU91dCB9LFxyXG4gICAgICAgICAgeyB0ZXh0OiBcIkhpZXIgemVudHJpZXJlblwiLCBjYWxsYmFjazogY2VudGVySGVyZSB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgICBMLnRpbGVMYXllcihvbmxpbmUgPyBvbmxpbmVUaWxlTGF5ZXIgOiBvZmZsaW5lVGlsZUxheWVyLCB7XHJcbiAgICAgICAgYXR0cmlidXRpb246XHJcbiAgICAgICAgICAnJmNvcHk7IDxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMnLFxyXG4gICAgICB9KS5hZGRUbyhpbml0aWFsTWFwKTtcclxuXHJcbiAgICAgIHNldE1hcChpbml0aWFsTWFwKTtcclxuICAgIH1cclxuICB9LCBbbWFwUmVmLCBtYXBdKTtcclxuXHJcbiAgLy8gSGFuZGxlIG9ubGluZS9vZmZsaW5lIHN0YXR1c1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm9ubGluZVwiLCBjaGVja0ludGVybmV0KTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwib2ZmbGluZVwiLCBjaGVja0ludGVybmV0KTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwib25saW5lXCIsIGNoZWNrSW50ZXJuZXQpO1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm9mZmxpbmVcIiwgY2hlY2tJbnRlcm5ldCk7XHJcbiAgICB9O1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgLy8gVXBkYXRlIG1hcCBsYXllcnMgYmFzZWQgb24gb25saW5lIHN0YXR1c1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAobWFwKSB7XHJcbiAgICAgIGNvbnN0IG5ld0xheWVyID0gTC50aWxlTGF5ZXIoXHJcbiAgICAgICAgb25saW5lID8gb25saW5lVGlsZUxheWVyIDogb2ZmbGluZVRpbGVMYXllcixcclxuICAgICAgICB7XHJcbiAgICAgICAgICBtaW5ab29tOiA3LFxyXG4gICAgICAgICAgbWF4Wm9vbTogb25saW5lID8gMTkgOiAxNCxcclxuICAgICAgICAgIGF0dHJpYnV0aW9uOlxyXG4gICAgICAgICAgICAnTWFwIGRhdGEgwqkgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycycsXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgICAgbWFwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcclxuICAgICAgICBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLlRpbGVMYXllcikge1xyXG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbmV3TGF5ZXIuYWRkVG8obWFwKTtcclxuICAgIH1cclxuICB9LCBbb25saW5lLCBtYXBdKTtcclxuXHJcbiAgLy8gTWFya2VyIGhhbmRsaW5nXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIFJlbW92ZSBvbGQgbWFya2Vyc1xyXG4gICAgaWYgKG1hcCkge1xyXG4gICAgICBtYXAuZWFjaExheWVyKChsYXllcikgPT4ge1xyXG4gICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XHJcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBBZGQgbmV3IG1hcmtlcnNcclxuICAgICAgbG9jYXRpb25zLmZvckVhY2goKGxvY2F0aW9uKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBsYXRpdHVkZSwgbG9uZ2l0dWRlIH0gPSBwYXJzZVBvaW50KGxvY2F0aW9uLnBvc2l0aW9uKTtcclxuICAgICAgICBjb25zdCBtYXJrZXIgPSBMLm1hcmtlcihbbGF0aXR1ZGUsIGxvbmdpdHVkZV0sIHtcclxuICAgICAgICAgIGljb246IEwuaWNvbih7XHJcbiAgICAgICAgICAgIGljb25Vcmw6IFwiL2xvY2F0aW9uLnN2Z1wiLFxyXG4gICAgICAgICAgICBpY29uU2l6ZTogWzM0LCAzNF0sXHJcbiAgICAgICAgICAgIGljb25BbmNob3I6IFsxNywgMzRdLFxyXG4gICAgICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zNF0sXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGlkOiBsb2NhdGlvbi5pZFBvaSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgbWFya2VyLmJpbmRQb3B1cChcclxuICAgICAgICAgIGA8Yj4ke2xvY2F0aW9uLmRlc2NyaXB0aW9uIHx8IFwiVW5iZWthbm50XCJ9PC9iPjxicj5UeXBlOiAke2xvY2F0aW9uLmlkUG9pVHlwIHx8IFwiTi9BXCJ9PGJyPkxhdDogJHtsYXRpdHVkZS50b0ZpeGVkKDUpfSwgTG5nOiAke2xvbmdpdHVkZS50b0ZpeGVkKDUpfWBcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBtYXJrZXIub24oXCJkcmFnZW5kXCIsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICBjb25zdCBuZXdMYXQgPSBlLnRhcmdldC5nZXRMYXRMbmcoKS5sYXQ7XHJcbiAgICAgICAgICBjb25zdCBuZXdMbmcgPSBlLnRhcmdldC5nZXRMYXRMbmcoKS5sbmc7XHJcbiAgICAgICAgICBjb25zdCBtYXJrZXJJZCA9IGUudGFyZ2V0Lm9wdGlvbnMuaWQ7XHJcbiAgICAgICAgICB1cGRhdGVMb2NhdGlvbkluRGF0YWJhc2UobWFya2VySWQsIG5ld0xhdCwgbmV3TG5nKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgb25Mb2NhdGlvblVwZGF0ZShtYXJrZXJJZCwgbmV3TGF0LCBuZXdMbmcpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG1hcmtlci5hZGRUbyhtYXApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9LCBbbWFwLCBsb2NhdGlvbnMsIG9uTG9jYXRpb25VcGRhdGVdKTtcclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBmdW5jdGlvbiBwYXJzZVBvaW50KHBvaW50U3RyaW5nKSB7XHJcbiAgICBjb25zdCBtYXRjaCA9IHBvaW50U3RyaW5nLm1hdGNoKFxyXG4gICAgICAvUE9JTlRcXHMqXFwoKFxcZCsoXFwuXFxkKyk/KVxccysoXFxkKyhcXC5cXGQrKT8pXFwpL1xyXG4gICAgKTtcclxuICAgIGlmIChtYXRjaCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxvbmdpdHVkZTogcGFyc2VGbG9hdChtYXRjaFsxXSksXHJcbiAgICAgICAgbGF0aXR1ZGU6IHBhcnNlRmxvYXQobWF0Y2hbM10pLCAvLyBBY2h0dW5nOiBJbmRleCAzIGbDvHIgZGllIHp3ZWl0ZSBLb29yZGluYXRlLCB3ZWdlbiBkZXIgR3J1cHBlIChcXC5cXGQrKT9cclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIEhhbmRsZSB0aGUgZXJyb3Igb3IgcmV0dXJuIGEgZGVmYXVsdC9mYWxsYmFjayB2YWx1ZVxyXG4gICAgICBjb25zb2xlLmVycm9yKFwiSW52YWxpZCBQT0lOVCBmb3JtYXQ6XCIsIHBvaW50U3RyaW5nKTtcclxuICAgICAgcmV0dXJuIG51bGw7IC8vIE9kZXIgZWluZSBzaW5udm9sbGUgU3RhbmRhcmRhbnR3b3J0XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vLS0tLS1Lb250ZXh0bWVudS0tLS0tLS0tLS0tLS0tLS1cclxuICBjb25zdCBuZXdMaW5rID0gKGUpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICghZS5yZWxhdGVkVGFyZ2V0IHx8ICFlLnJlbGF0ZWRUYXJnZXQub3B0aW9ucykge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInJlbGF0ZWRUYXJnZXQgb3Igb3B0aW9ucyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgfVxyXG4gICAgICBhbGVydChcIk5ldWVzIEZlbnN0ZXI6IFwiICsgZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCk7XHJcbiAgICAgIHdpbmRvd1xyXG4gICAgICAgIC5vcGVuKGAuLi9kZXZpY2VzLyR7ZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdH1gLCBcIl9ibGFua1wiKVxyXG4gICAgICAgIC5mb2N1cygpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCBpbiBuZXdMaW5rIGZ1bmN0aW9uOlwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgc2FtZUxpbmsgPSAoZSkgPT4ge1xyXG4gICAgYWxlcnQoZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCk7XHJcbiAgICB3aW5kb3dcclxuICAgICAgLm9wZW4oXCIuLi9kZXZpY2VzL1wiICsgZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCwgXCJfcGFyZW50XCIpXHJcbiAgICAgIC5mb2N1cygpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGxhdGEgPSAoZSkgPT4ge1xyXG4gICAgYWxlcnQoXCJCcmVpdGVuZ3JhZDogXCIgKyBlLmxhdGxuZy5sYXQpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHpvb21JbiA9IChlKSA9PiB7XHJcbiAgICBpbml0aWFsTWFwLmZseVRvKGUubGF0bG5nLCAxMik7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgem9vbU91dCA9IChlKSA9PiB7XHJcbiAgICBmbHkoKTtcclxuICB9O1xyXG4gIGNvbnN0IGNlbnRlckhlcmUgPSAoZSkgPT4ge1xyXG4gICAgaW5pdGlhbE1hcC5wYW5UbyhlLmxhdGxuZyk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgc2hvd0Nvb3JkaW5hdGVzID0gKGUpID0+IHtcclxuICAgIGFsZXJ0KFwiQnJlaXRlbmdyYWQ6IFwiICsgZS5sYXRsbmcubGF0ICsgXCJcXG5Mw6RuZ2VuZ3JhZDogXCIgKyBlLmxhdGxuZy5sbmcpO1xyXG4gIH07XHJcbiAgY29uc3Qgc2hvd0RhdGEgPSAoZSkgPT4ge1xyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgfTtcclxuICBjb25zdCBzaG93VGFsYXMgPSAoZSkgPT4ge1xyXG4gICAgbWFwLmFkZExheWVyKFRBTEFTKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfTtcclxuICBjb25zdCBoaWRlVGFsYXMgPSAoZSkgPT4ge1xyXG4gICAgbWFwLnJlbW92ZUxheWVyKFRBTEFTKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfTtcclxuICBjb25zdCBzaG93R1NNID0gKGUpID0+IHtcclxuICAgIG1hcC5hZGRMYXllcihHTUEpO1xyXG4gICAgbG9hZERhdGEoKTtcclxuICB9O1xyXG4gIGNvbnN0IGhpZGVHU00gPSAoZSkgPT4ge1xyXG4gICAgbWFwLnJlbW92ZUxheWVyKEdNQSk7XHJcbiAgICBsb2FkRGF0YSgpO1xyXG4gIH07XHJcbiAgLy8tLS0tLUtvbnRleHRtZW51LS0tLWVuZGUtLS0tLS0tLS0tLS1cclxuICAvLyBFbnN1cmUgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCB3aGVuIG1hcCBpcyBpbml0aWFsaXplZCBhbmQgYXZhaWxhYmxlXHJcbiAgY29uc3Qgc2hvd0FkZFN0YXRpb25Qb3B1cCA9IChlKSA9PiB7XHJcbiAgICBpZiAoIWluaXRpYWxNYXApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJNYXAgaXMgbm90IGluaXRpYWxpemVkLlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBvcHVwQ29udGVudCA9IEwuRG9tVXRpbC5jcmVhdGUoXCJkaXZcIik7XHJcbiAgICBwb3B1cENvbnRlbnQuaW5uZXJIVE1MID0gYFxyXG4gIDxmb3JtIGlkPVwiYWRkU3RhdGlvbkZvcm1cIiBjbGFzcz1cIm0tMCBwLTIgdy1mdWxsXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj4gICAgICBcclxuICAgIDxsYWJlbCBmb3I9XCJuYW1lXCIgY2xhc3M9XCJibG9jayBtci0yIGZsZXgtbm9uZVwiPk5hbWU6PC9sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwibmFtZVwiXHJcbiAgICAgIG5hbWU9XCJuYW1lXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lIGRlciBTdGF0aW9uXCJcclxuICAgICAgY2xhc3M9XCJibG9jayBwLTIgZmxleC1ncm93IGJvcmRlci0yIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLW1kIHRleHQtc21cIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuICBcclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPiAgIFxyXG4gICAgPGxhYmVsIGZvcj1cInR5cGVcIiBjbGFzcz1cImJsb2NrIG1yLTMgZmxleC1ub25lXCI+VHlwZTo8L2xhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgaWQ9XCJ0eXBlXCJcclxuICAgICAgbmFtZT1cInR5cGVcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cIlR5cCBkZXIgU3RhdGlvblwiXHJcbiAgICAgIGNsYXNzPVwiYmxvY2sgcC0yIGZsZXgtZ3JvdyBib3JkZXItMiBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1tZCB0ZXh0LXNtXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj5cclxuICAgIDxsYWJlbCBmb3I9XCJsYXRcIiBjbGFzcz1cImJsb2NrIG1yLTIgZmxleC1ub25lXCI+QnJlaXRlbmdyYWQ6PC9sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwibGF0XCJcclxuICAgICAgbmFtZT1cImxhdFwiXHJcbiAgICAgIHZhbHVlPVwiJHtlLmxhdGxuZy5sYXQudG9GaXhlZCg1KX1cIlxyXG4gICAgICByZWFkb25seVxyXG4gICAgICBjbGFzcz1cImJsb2NrIHAtMiBmbGV4LWdyb3cgYm9yZGVyLTIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbWQgdGV4dC1zbVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4gICBcclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPiAgIFxyXG4gICAgPGxhYmVsIGZvcj1cImxuZ1wiIGNsYXNzPVwiYmxvY2sgbXItMiBmbGV4LW5vbmVcIj5Mw6RuZ2VuZ3JhZDo8L2xhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgaWQ9XCJsbmdcIlxyXG4gICAgICBuYW1lPVwibG5nXCJcclxuICAgICAgdmFsdWU9XCIke2UubGF0bG5nLmxuZy50b0ZpeGVkKDUpfVwiXHJcbiAgICAgIHJlYWRvbmx5XHJcbiAgICAgIGNsYXNzPVwiYmxvY2sgcC0yIGZsZXgtZ3JvdyBib3JkZXItMiBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1tZCB0ZXh0LXNtXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGJ1dHRvblxyXG4gICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICBjbGFzcz1cImJnLWJsdWUtNTAwIGhvdmVyOmJnLWJsdWUtNzAwIHRleHQtd2hpdGUgZm9udC1ib2xkIHB5LTIgcHgtNCByb3VuZGVkIHctZnVsbFwiXHJcbiAgPlxyXG4gICAgU3RhdGlvbiBoaW56dWbDvGdlblxyXG4gIDwvYnV0dG9uPlxyXG48L2Zvcm0+XHJcbiAgYDtcclxuXHJcbiAgICBMLnBvcHVwKCkuc2V0TGF0TG5nKGUubGF0bG5nKS5zZXRDb250ZW50KHBvcHVwQ29udGVudCkub3Blbk9uKGluaXRpYWxNYXApO1xyXG5cclxuICAgIC8vIEF0dGFjaCBldmVudCBsaXN0ZW5lciBoZXJlXHJcbiAgICBMLkRvbUV2ZW50Lm9uKHBvcHVwQ29udGVudCwgXCJzdWJtaXRcIiwgaGFuZGxlU3VibWl0KTtcclxuICB9O1xyXG5cclxuICAvKlxyXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChldmVudCkgPT4ge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGZvcm0gPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBuYW1lOiBmb3JtLm5hbWUudmFsdWUsXHJcbiAgICAgIHR5cGU6IGZvcm0udHlwZS52YWx1ZSxcclxuICAgICAgbGF0aXR1ZGU6IGZvcm0ubGF0LnZhbHVlLFxyXG4gICAgICBsb25naXR1ZGU6IGZvcm0ubG5nLnZhbHVlLFxyXG4gICAgfTtcclxuXHJcbiAgICBvbkFkZExvY2F0aW9uKG5hbWUsIHR5cGUsIGxhdCwgbG5nKTtcclxuICAgIGNvbnNvbGUubG9nKFwiTmFtZTogXCIsIG5hbWUsIFwiVHlwZTogXCIsIHR5cGUsIFwiTGF0OiBcIiwgbGF0LCBcIkxuZzogXCIsIGxuZyk7XHJcbiAgICBtYXAuY2xvc2VQb3B1cCgpO1xyXG4gIH07XHJcbiovXHJcbiAgLy8gRnVua3Rpb24genVtIEhpbnp1ZsO8Z2VuIGVpbmVzIG5ldWVuIFN0YW5kb3J0c1xyXG4gIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVN1Ym1pdChldmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGZvcm0gPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBuYW1lOiBmb3JtLm5hbWUudmFsdWUsXHJcbiAgICAgIHR5cGU6IGZvcm0udHlwZS52YWx1ZSxcclxuICAgICAgbGF0aXR1ZGU6IGZvcm0ubGF0LnZhbHVlLFxyXG4gICAgICBsb25naXR1ZGU6IGZvcm0ubG5nLnZhbHVlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuXHJcbiAgICAgIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiU3RhbmRvcnQgaGluenVnZWbDvGd0OlwiLCByZXN1bHQpO1xyXG4gICAgICAgIGFsZXJ0KFwiU3RhbmRvcnQgZXJmb2xncmVpY2ggaGluenVnZWbDvGd0IVwiKTtcclxuICAgICAgICBmb3JtLnJlc2V0KCk7IC8vIEZvcm11bGFyIHp1csO8Y2tzZXR6ZW5cclxuICAgICAgICAvLyBIaWVyIGvDtm5udGVzdCBkdSB3ZWl0ZXJlIEFrdGlvbmVuIGR1cmNoZsO8aHJlbiwgd2llIGRhcyBTY2hsaWXDn2VuIGRlcyBQb3B1cHMgb2RlciBkYXMgQWt0dWFsaXNpZXJlbiBkZXIgTWFya2VyIGF1ZiBkZXIgS2FydGVcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICByZXN1bHQuZXJyb3IgfHwgXCJFaW4gdW5iZWthbm50ZXIgRmVobGVyIGlzdCBhdWZnZXRyZXRlbi5cIlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJGZWhsZXIgYmVpbSBIaW56dWbDvGdlbiBkZXMgU3RhbmRvcnRzOlwiLCBlcnJvcik7XHJcbiAgICAgIGFsZXJ0KGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZmx5KHN0YXRpb25WYWx1ZSkge1xyXG4gICAgdmFyIHggPSA1MS40MTMyMTQwNzg3OTE1NDtcclxuICAgIHZhciB5ID0gNy43Mzk2MTc5MjUzMDM5MzQ7XHJcbiAgICB2YXIgem9vbSA9IDc7XHJcblxyXG4gICAgLyogIGZvciAodmFyIGkgPSAwOyBpIDwgR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBnaXNTdGF0aWNzID0gR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdFtpXTtcclxuICAgICAgaWYgKHN0YXRpb25WYWx1ZSA9PT0gZ2lzU3RhdGljcy5BcmVhX05hbWUpIHtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKGdpc1N0YXRpY3MuWCtcIixcIitnaXNTdGF0aWNzLlkpO1xyXG4gICAgICAgIHggPSBnaXNTdGF0aWNzLlg7XHJcbiAgICAgICAgeSA9IGdpc1N0YXRpY3MuWTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHkgPT09IDcuNzM5NjE3OTI1MzAzOTM0KSB7XHJcbiAgICAgIHpvb20gPSA4O1xyXG4gICAgfSAqL1xyXG4gICAgaW5pdGlhbE1hcC5mbHlUbyhbeCwgeV0sIHpvb20pO1xyXG5cclxuICAgIC8qIHZhciBwb3B1cCA9IG5ldyBMLlBvcHVwKCk7XHJcbiAgICBvbXMuYWRkTGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbiAobWFya2VyKSB7XHJcbiAgICAgIHBvcHVwLnNldENvbnRlbnQobWFya2VyLmRlc2MpO1xyXG4gICAgICBwb3B1cC5zZXRMYXRMbmcobWFya2VyLmdldExhdExuZygpKTtcclxuICAgICAgbWFwLm9wZW5Qb3B1cChwb3B1cCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdpbmRvdy5tYXBEYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBkYXR1bSA9IHdpbmRvdy5tYXBEYXRhW2ldO1xyXG4gICAgICB2YXIgbG9jID0gbmV3IEwuTGF0TG5nKGRhdHVtLmxhdCwgZGF0dW0ubG9uKTtcclxuICAgICAgdmFyIG1hcmtlciA9IG5ldyBMLk1hcmtlcihsb2MpO1xyXG4gICAgICBtYXJrZXIuZGVzYyA9IGRhdHVtLmQ7XHJcbiAgICAgIG1hcC5hZGRMYXllcihtYXJrZXIpO1xyXG4gICAgICAvL29tcy5hZGRNYXJrZXIobWFya2VyKTsgIC8vIDwtLSBoZXJlXHJcbiAgICB9ICovXHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICBpZD1cIm1hcFwiXHJcbiAgICAgIHJlZj17bWFwUmVmfVxyXG4gICAgICBzdHlsZT17eyBoZWlnaHQ6IFwiMTAwdmhcIiwgd2lkdGg6IFwiMTAwdndcIiwgb3ZlcmZsb3c6IFwiaGlkZGVuXCIgfX1cclxuICAgID48L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWFwQ29tcG9uZW50O1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkwiLCJjb25maWciLCJNYXBDb21wb25lbnQiLCJsb2NhdGlvbnMiLCJvbkxvY2F0aW9uVXBkYXRlIiwibWFwUmVmIiwibWFwIiwic2V0TWFwIiwib25saW5lIiwic2V0T25saW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwiR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdCIsInNldEdpc1N0YXRpb25zU3RhdGljRGlzdHJpY3QiLCJkYXRhU3RhdHVzIiwic2V0RGF0YVN0YXR1cyIsImRhdGFJY29ucyIsInNldERhdGFJY29ucyIsImRhdGFTeXN0ZW0iLCJzZXREYXRhU3lzdGVtIiwibWFwR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdFVybCIsIm1hcERhdGFTdGF0dXNVcmwiLCJtYXBEYXRhSWNvblVybCIsIm1hcERhdGFTeXN0ZW1VcmwiLCJjb25zb2xlIiwibG9nIiwiZmV0Y2hEYXRhIiwicmVzcG9uc2UiLCJmZXRjaCIsImpzb25SZXNwb25zZSIsImpzb24iLCJQb2ludHMiLCJlcnJvciIsImNoZWNrSW50ZXJuZXQiLCJyZXNwb25zZXMiLCJQcm9taXNlIiwiYWxsIiwidGhlbiIsInJlcyIsIlN0YXRpcyIsIkxpc3QiLCJTeXN0ZW1zIiwiZmlsdGVyIiwic3lzdGVtIiwiQWxsb3ciLCJvZmZsaW5lVGlsZUxheWVyIiwib25saW5lVGlsZUxheWVyIiwiVEFMQVMiLCJsYXllckdyb3VwIiwiRUNJIiwiVUxBRiIsIkdTTU1vZGVtIiwiQ2lzY29Sb3V0ZXIiLCJXQUdPIiwiU2llbWVucyIsIk9URFIiLCJXRE0iLCJHTUEiLCJTb25zdGlnZSIsIlRBTEFTSUNMIiwiaW5pdGlhbE1hcCIsInNlcnZlclVSTCIsIndpbmRvd0hlaWdodCIsIm1ldGhvZCIsIm9rIiwiY2F0Y2giLCJjdXJyZW50IiwiY2VudGVyIiwiem9vbSIsImxheWVycyIsInpvb21Db250cm9sIiwiY29udGV4dG1lbnUiLCJjb250ZXh0bWVudUl0ZW1zIiwidGV4dCIsImNhbGxiYWNrIiwic2hvd0FkZFN0YXRpb25Qb3B1cCIsImljb24iLCJuZXdMaW5rIiwic2FtZUxpbmsiLCJsYXRhIiwiem9vbUluIiwiem9vbU91dCIsImNlbnRlckhlcmUiLCJ0aWxlTGF5ZXIiLCJhdHRyaWJ1dGlvbiIsImFkZFRvIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJuZXdMYXllciIsIm1pblpvb20iLCJtYXhab29tIiwiZWFjaExheWVyIiwibGF5ZXIiLCJUaWxlTGF5ZXIiLCJyZW1vdmVMYXllciIsIk1hcmtlciIsImZvckVhY2giLCJsb2NhdGlvbiIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwicGFyc2VQb2ludCIsInBvc2l0aW9uIiwibWFya2VyIiwiaWNvblVybCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsInBvcHVwQW5jaG9yIiwiZHJhZ2dhYmxlIiwiaWQiLCJpZFBvaSIsImJpbmRQb3B1cCIsImRlc2NyaXB0aW9uIiwiaWRQb2lUeXAiLCJ0b0ZpeGVkIiwib24iLCJlIiwibmV3TGF0IiwidGFyZ2V0IiwiZ2V0TGF0TG5nIiwibGF0IiwibmV3TG5nIiwibG5nIiwibWFya2VySWQiLCJvcHRpb25zIiwidXBkYXRlTG9jYXRpb25JbkRhdGFiYXNlIiwicG9pbnRTdHJpbmciLCJtYXRjaCIsInBhcnNlRmxvYXQiLCJyZWxhdGVkVGFyZ2V0IiwiRXJyb3IiLCJhbGVydCIsInRlc3QiLCJvcGVuIiwiZm9jdXMiLCJsYXRsbmciLCJmbHlUbyIsImZseSIsInBhblRvIiwic2hvd0Nvb3JkaW5hdGVzIiwic2hvd0RhdGEiLCJzaG93VGFsYXMiLCJhZGRMYXllciIsImxvYWREYXRhIiwiaGlkZVRhbGFzIiwic2hvd0dTTSIsImhpZGVHU00iLCJwb3B1cENvbnRlbnQiLCJEb21VdGlsIiwiY3JlYXRlIiwiaW5uZXJIVE1MIiwicG9wdXAiLCJzZXRMYXRMbmciLCJzZXRDb250ZW50Iiwib3Blbk9uIiwiRG9tRXZlbnQiLCJoYW5kbGVTdWJtaXQiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiZm9ybSIsImRhdGEiLCJuYW1lIiwidmFsdWUiLCJ0eXBlIiwiaGVhZGVycyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwicmVzdWx0IiwicmVzZXQiLCJtZXNzYWdlIiwic3RhdGlvblZhbHVlIiwieCIsInkiLCJkaXYiLCJyZWYiLCJzdHlsZSIsImhlaWdodCIsIndpZHRoIiwib3ZlcmZsb3ciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./components/MapComponent.js\n");
-
-/***/ }),
-
-/***/ "./config/config.js":
-/*!**************************!*\
- !*** ./config/config.js ***!
- \**************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ c: () => (/* binding */ c),\n/* harmony export */ fullSideMenu: () => (/* binding */ fullSideMenu),\n/* harmony export */ mapDataIconUrl: () => (/* binding */ mapDataIconUrl),\n/* harmony export */ mapDataMeasures: () => (/* binding */ mapDataMeasures),\n/* harmony export */ mapDataStatusUrl: () => (/* binding */ mapDataStatusUrl),\n/* harmony export */ mapDataSystemUrl: () => (/* binding */ mapDataSystemUrl),\n/* harmony export */ mapGisStationsStaticDistrictUrl: () => (/* binding */ mapGisStationsStaticDistrictUrl),\n/* harmony export */ mapIconsOfflineURL: () => (/* binding */ mapIconsOfflineURL),\n/* harmony export */ mapMeasuresOfflineURL: () => (/* binding */ mapMeasuresOfflineURL),\n/* harmony export */ mapStaticOfflineURL: () => (/* binding */ mapStaticOfflineURL),\n/* harmony export */ mapStatusOfflineURL: () => (/* binding */ mapStatusOfflineURL),\n/* harmony export */ mapSystemOfflineURL: () => (/* binding */ mapSystemOfflineURL),\n/* harmony export */ mapVersion: () => (/* binding */ mapVersion),\n/* harmony export */ offlineData: () => (/* binding */ offlineData),\n/* harmony export */ serverURL: () => (/* binding */ serverURL),\n/* harmony export */ standardSideMenu: () => (/* binding */ standardSideMenu),\n/* harmony export */ url: () => (/* binding */ url),\n/* harmony export */ url_string: () => (/* binding */ url_string),\n/* harmony export */ user: () => (/* binding */ user),\n/* harmony export */ windowHeight: () => (/* binding */ windowHeight)\n/* harmony export */ });\n// Definieren der grundlegenden Umgebungseinstellungen und Konfigurationen der Karte\nconst mapVersion = \"0.5.3\"; // Die Version der verwendeten Karte\nconst standardSideMenu = true; // Einstellung, ob ein standardmäßiges Seitenmenü verwendet wird\nconst fullSideMenu = false; // Einstellung, ob ein vollständiges Seitenmenü verwendet wird\nconst offlineData = false; // Schalter, um anzugeben, ob Daten offline verfügbar gemacht werden sollen\nconst serverURL = \"/api\"; // Die Basis-URL des Servers, von dem Daten bezogen werden\n// Initialisieren von Variablen, die später im Browserkontext gesetzt werden\nlet windowHeight, url_string, url, c, user;\nlet mapGisStationsStaticDistrictUrl, mapDataStatusUrl, mapDataMeasures, mapDataIconUrl, mapDataSystemUrl;\nlet mapStaticOfflineURL, mapStatusOfflineURL, mapSystemOfflineURL, mapIconsOfflineURL, mapMeasuresOfflineURL;\n// Prüfen, ob das Code im Browser ausgeführt wird\nif (false) {}\n// Export der definierten Variablen und URLs, damit sie in anderen Teilen der Anwendung verwendet werden können\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb25maWcvY29uZmlnLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0ZBQW9GO0FBQ3BGLE1BQU1BLGFBQWEsU0FBUyxvQ0FBb0M7QUFDaEUsTUFBTUMsbUJBQW1CLE1BQU0sZ0VBQWdFO0FBQy9GLE1BQU1DLGVBQWUsT0FBTyw4REFBOEQ7QUFDMUYsTUFBTUMsY0FBYyxPQUFPLDJFQUEyRTtBQUN0RyxNQUFNQyxZQUFZLFFBQVEsMERBQTBEO0FBRXBGLDRFQUE0RTtBQUM1RSxJQUFJQyxjQUFjQyxZQUFZQyxLQUFLQyxHQUFHQztBQUN0QyxJQUFJQyxpQ0FDRkMsa0JBQ0FDLGlCQUNBQyxnQkFDQUM7QUFDRixJQUFJQyxxQkFDRkMscUJBQ0FDLHFCQUNBQyxvQkFDQUM7QUFFRixpREFBaUQ7QUFDakQsSUFBSSxLQUE2QixFQUFFLEVBMEJsQztBQUVELCtHQUErRztBQXNCN0ciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb25maWcvY29uZmlnLmpzP2FhMDQiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRGVmaW5pZXJlbiBkZXIgZ3J1bmRsZWdlbmRlbiBVbWdlYnVuZ3NlaW5zdGVsbHVuZ2VuIHVuZCBLb25maWd1cmF0aW9uZW4gZGVyIEthcnRlXHJcbmNvbnN0IG1hcFZlcnNpb24gPSBcIjAuNS4zXCI7IC8vIERpZSBWZXJzaW9uIGRlciB2ZXJ3ZW5kZXRlbiBLYXJ0ZVxyXG5jb25zdCBzdGFuZGFyZFNpZGVNZW51ID0gdHJ1ZTsgLy8gRWluc3RlbGx1bmcsIG9iIGVpbiBzdGFuZGFyZG3DpMOfaWdlcyBTZWl0ZW5tZW7DvCB2ZXJ3ZW5kZXQgd2lyZFxyXG5jb25zdCBmdWxsU2lkZU1lbnUgPSBmYWxzZTsgLy8gRWluc3RlbGx1bmcsIG9iIGVpbiB2b2xsc3TDpG5kaWdlcyBTZWl0ZW5tZW7DvCB2ZXJ3ZW5kZXQgd2lyZFxyXG5jb25zdCBvZmZsaW5lRGF0YSA9IGZhbHNlOyAvLyBTY2hhbHRlciwgdW0gYW56dWdlYmVuLCBvYiBEYXRlbiBvZmZsaW5lIHZlcmbDvGdiYXIgZ2VtYWNodCB3ZXJkZW4gc29sbGVuXHJcbmNvbnN0IHNlcnZlclVSTCA9IFwiL2FwaVwiOyAvLyBEaWUgQmFzaXMtVVJMIGRlcyBTZXJ2ZXJzLCB2b24gZGVtIERhdGVuIGJlem9nZW4gd2VyZGVuXHJcblxyXG4vLyBJbml0aWFsaXNpZXJlbiB2b24gVmFyaWFibGVuLCBkaWUgc3DDpHRlciBpbSBCcm93c2Vya29udGV4dCBnZXNldHp0IHdlcmRlblxyXG5sZXQgd2luZG93SGVpZ2h0LCB1cmxfc3RyaW5nLCB1cmwsIGMsIHVzZXI7XHJcbmxldCBtYXBHaXNTdGF0aW9uc1N0YXRpY0Rpc3RyaWN0VXJsLFxyXG4gIG1hcERhdGFTdGF0dXNVcmwsXHJcbiAgbWFwRGF0YU1lYXN1cmVzLFxyXG4gIG1hcERhdGFJY29uVXJsLFxyXG4gIG1hcERhdGFTeXN0ZW1Vcmw7XHJcbmxldCBtYXBTdGF0aWNPZmZsaW5lVVJMLFxyXG4gIG1hcFN0YXR1c09mZmxpbmVVUkwsXHJcbiAgbWFwU3lzdGVtT2ZmbGluZVVSTCxcclxuICBtYXBJY29uc09mZmxpbmVVUkwsXHJcbiAgbWFwTWVhc3VyZXNPZmZsaW5lVVJMO1xyXG5cclxuLy8gUHLDvGZlbiwgb2IgZGFzIENvZGUgaW0gQnJvd3NlciBhdXNnZWbDvGhydCB3aXJkXHJcbmlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgLy8gRGllc2UgVmFyaWFibGVuIHdlcmRlbiBudXIgaW0gQnJvd3Nlci1Lb250ZXh0IGluaXRpYWxpc2llcnRcclxuICB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7IC8vIERpZSBIw7ZoZSBkZXMgQnJvd3NlcmZlbnN0ZXJzXHJcbiAgdXJsX3N0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOyAvLyBEaWUgdm9sbHN0w6RuZGlnZSBVUkwgYWxzIFN0cmluZ1xyXG4gIHVybCA9IG5ldyBVUkwodXJsX3N0cmluZyk7IC8vIERpZSBVUkwgYWxzIFVSTC1PYmpla3QsIHVtIFRlaWxlIGRlciBVUkwgZWluZmFjaGVyIHp1IGhhbmRoYWJlblxyXG4gIGMgPSB1cmwuc2VhcmNoUGFyYW1zLmdldChcIm1cIikgfHwgXCIxMFwiOyAvLyBFaW4gUGFyYW1ldGVyIGF1cyBkZXIgVVJMLCBTdGFuZGFyZHdlcnQgaXN0ICcxMCdcclxuICB1c2VyID0gdXJsLnNlYXJjaFBhcmFtcy5nZXQoXCJ1XCIpIHx8IFwiNDg1XCI7IC8vIEVpbiB3ZWl0ZXJlciBQYXJhbWV0ZXIgYXVzIGRlciBVUkwsIFN0YW5kYXJkd2VydCBpc3QgJzQ4NyBvZGVyIDQ4NCBvZGVyIDQ4NSdcclxuXHJcbiAgLy8gS29uc3RydWt0aW9uIHZvbiBVUkxzLCBkaWUgYXVmIHNwZXppZmlzY2hlIFJlc3NvdXJjZW4gYXVmIGRlbSBTZXJ2ZXIgemVpZ2VuXHJcbiAgbWFwR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdFVybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zU3RhdGljRGlzdHJpY3Q/aWRNYXA9JHtjfSZpZFVzZXI9JHt1c2VyfWA7XHJcbiAgbWFwRGF0YVN0YXR1c1VybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zU3RhdHVzRGlzdHJpY3Q/aWRNYXA9JHtjfSZpZFVzZXI9JHt1c2VyfWA7XHJcbiAgbWFwRGF0YU1lYXN1cmVzID0gYCR7c2VydmVyVVJMfS90YWxhczUvQ2xpZW50RGF0YS9XZWJzZXJ2aWNlTWFwLmFzbXgvR2lzU3RhdGlvbnNNZWFzdXJlbWVudHM/aWRNYXA9JHtjfWA7XHJcbiAgbWFwRGF0YUljb25VcmwgPSBgJHtzZXJ2ZXJVUkx9L3RhbGFzNS9DbGllbnREYXRhL1dlYnNlcnZpY2VNYXAuYXNteC9HZXRJY29uc1N0YXRpY2A7XHJcbiAgbWFwRGF0YVN5c3RlbVVybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N5c3RlbVN0YXRpYz9pZE1hcD0ke2N9JmlkVXNlcj0ke3VzZXJ9YDtcclxuXHJcbiAgLyogICBtYXBHaXNTdGF0aW9uc1N0YXRpY0Rpc3RyaWN0VXJsID0gYCR7c2VydmVyVVJMfS90YWxhczUvQ2xpZW50RGF0YS9XZWJzZXJ2aWNlTWFwLmFzbXgvR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdGA7XHJcbiAgbWFwRGF0YVN0YXR1c1VybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zU3RhdHVzRGlzdHJpY3RgO1xyXG4gIG1hcERhdGFNZWFzdXJlcyA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zTWVhc3VyZW1lbnRzYDtcclxuICBtYXBEYXRhSWNvblVybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dldEljb25zU3RhdGljYDtcclxuICBtYXBEYXRhU3lzdGVtVXJsID0gYCR7c2VydmVyVVJMfS90YWxhczUvQ2xpZW50RGF0YS9XZWJzZXJ2aWNlTWFwLmFzbXgvR2lzU3lzdGVtU3RhdGljYDsgKi9cclxuICAvLyBVUkxzIHp1IE9mZmxpbmUtRGF0ZW4sIGZhbGxzIGJlbsO2dGlndFxyXG4gIG1hcFN0YXRpY09mZmxpbmVVUkwgPSBgb2ZmbGluZVRlc3REYXRhL2lkTWFwJHtjfUdpc1N0YXRpb25lblN0YXRpYy5qc29uYDtcclxuICBtYXBTdGF0dXNPZmZsaW5lVVJMID0gYG9mZmxpbmVUZXN0RGF0YS9pZE1hcCR7Y31HaXNTdGF0aW9uZW5TdGF0dXMuanNvbmA7XHJcbiAgbWFwU3lzdGVtT2ZmbGluZVVSTCA9IGBvZmZsaW5lVGVzdERhdGEvaWRNYXAke2N9R2lzU3lzdGVtU3RhdGljLmpzb25gO1xyXG4gIG1hcEljb25zT2ZmbGluZVVSTCA9IFwib2ZmbGluZVRlc3REYXRhL2ljb25zLmpzb25cIjtcclxuICBtYXBNZWFzdXJlc09mZmxpbmVVUkwgPSBgb2ZmbGluZVRlc3REYXRhL2lkTWFwJHtjfUdpc1N5c3RlbU1lYXN1cmVzLmpzb25gO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgZGVyIGRlZmluaWVydGVuIFZhcmlhYmxlbiB1bmQgVVJMcywgZGFtaXQgc2llIGluIGFuZGVyZW4gVGVpbGVuIGRlciBBbndlbmR1bmcgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXHJcbmV4cG9ydCB7XHJcbiAgbWFwVmVyc2lvbixcclxuICBzdGFuZGFyZFNpZGVNZW51LFxyXG4gIGZ1bGxTaWRlTWVudSxcclxuICBvZmZsaW5lRGF0YSxcclxuICBzZXJ2ZXJVUkwsXHJcbiAgd2luZG93SGVpZ2h0LFxyXG4gIHVybF9zdHJpbmcsXHJcbiAgdXJsLFxyXG4gIGMsXHJcbiAgdXNlcixcclxuICBtYXBHaXNTdGF0aW9uc1N0YXRpY0Rpc3RyaWN0VXJsLFxyXG4gIG1hcERhdGFTdGF0dXNVcmwsXHJcbiAgbWFwRGF0YU1lYXN1cmVzLFxyXG4gIG1hcERhdGFJY29uVXJsLFxyXG4gIG1hcERhdGFTeXN0ZW1VcmwsXHJcbiAgbWFwU3RhdGljT2ZmbGluZVVSTCxcclxuICBtYXBTdGF0dXNPZmZsaW5lVVJMLFxyXG4gIG1hcFN5c3RlbU9mZmxpbmVVUkwsXHJcbiAgbWFwSWNvbnNPZmZsaW5lVVJMLFxyXG4gIG1hcE1lYXN1cmVzT2ZmbGluZVVSTCxcclxufTtcclxuIl0sIm5hbWVzIjpbIm1hcFZlcnNpb24iLCJzdGFuZGFyZFNpZGVNZW51IiwiZnVsbFNpZGVNZW51Iiwib2ZmbGluZURhdGEiLCJzZXJ2ZXJVUkwiLCJ3aW5kb3dIZWlnaHQiLCJ1cmxfc3RyaW5nIiwidXJsIiwiYyIsInVzZXIiLCJtYXBHaXNTdGF0aW9uc1N0YXRpY0Rpc3RyaWN0VXJsIiwibWFwRGF0YVN0YXR1c1VybCIsIm1hcERhdGFNZWFzdXJlcyIsIm1hcERhdGFJY29uVXJsIiwibWFwRGF0YVN5c3RlbVVybCIsIm1hcFN0YXRpY09mZmxpbmVVUkwiLCJtYXBTdGF0dXNPZmZsaW5lVVJMIiwibWFwU3lzdGVtT2ZmbGluZVVSTCIsIm1hcEljb25zT2ZmbGluZVVSTCIsIm1hcE1lYXN1cmVzT2ZmbGluZVVSTCIsIndpbmRvdyIsImlubmVySGVpZ2h0IiwibG9jYXRpb24iLCJocmVmIiwiVVJMIiwic2VhcmNoUGFyYW1zIiwiZ2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./config/config.js\n");
-
-/***/ })
-
-};
-;
\ No newline at end of file
diff --git a/.next/server/interception-route-rewrite-manifest.js b/.next/server/interception-route-rewrite-manifest.js
deleted file mode 100644
index 82d3ab17d..000000000
--- a/.next/server/interception-route-rewrite-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST="[]"
\ No newline at end of file
diff --git a/.next/server/middleware-build-manifest.js b/.next/server/middleware-build-manifest.js
deleted file mode 100644
index 8b8a87b9e..000000000
--- a/.next/server/middleware-build-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__BUILD_MANIFEST={"polyfillFiles":["static/chunks/polyfills.js"],"devFiles":["static/chunks/react-refresh.js"],"ampDevFiles":[],"lowPriorityFiles":["static/development/_buildManifest.js","static/development/_ssgManifest.js"],"rootMainFiles":[],"pages":{"/":["static/chunks/webpack.js","static/chunks/main.js","static/chunks/pages/index.js"],"/_app":["static/chunks/webpack.js","static/chunks/main.js","static/chunks/pages/_app.js"],"/_error":["static/chunks/webpack.js","static/chunks/main.js","static/chunks/pages/_error.js"]},"ampFirstPages":[]}
\ No newline at end of file
diff --git a/.next/server/middleware-manifest.json b/.next/server/middleware-manifest.json
deleted file mode 100644
index 33872a3e6..000000000
--- a/.next/server/middleware-manifest.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "version": 3,
- "middleware": {},
- "functions": {},
- "sortedMiddleware": []
-}
\ No newline at end of file
diff --git a/.next/server/middleware-react-loadable-manifest.js b/.next/server/middleware-react-loadable-manifest.js
deleted file mode 100644
index cc2baaf70..000000000
--- a/.next/server/middleware-react-loadable-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__REACT_LOADABLE_MANIFEST="{\"pages\\\\index.js -> ../components/MapComponent\":{\"id\":\"pages\\\\index.js -> ../components/MapComponent\",\"files\":[\"static/chunks/components_MapComponent_js.js\"]}}"
\ No newline at end of file
diff --git a/.next/server/next-font-manifest.js b/.next/server/next-font-manifest.js
deleted file mode 100644
index 5cc97ebd0..000000000
--- a/.next/server/next-font-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__NEXT_FONT_MANIFEST="{\"pages\":{},\"app\":{},\"appUsingSizeAdjust\":false,\"pagesUsingSizeAdjust\":false}"
\ No newline at end of file
diff --git a/.next/server/next-font-manifest.json b/.next/server/next-font-manifest.json
deleted file mode 100644
index 25f78e72b..000000000
--- a/.next/server/next-font-manifest.json
+++ /dev/null
@@ -1 +0,0 @@
-{"pages":{},"app":{},"appUsingSizeAdjust":false,"pagesUsingSizeAdjust":false}
\ No newline at end of file
diff --git a/.next/server/pages-manifest.json b/.next/server/pages-manifest.json
deleted file mode 100644
index 5b835a93d..000000000
--- a/.next/server/pages-manifest.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "/_app": "pages/_app.js",
- "/_error": "pages/_error.js",
- "/_document": "pages/_document.js",
- "/": "pages/index.js",
- "/api/[...path]": "pages/api/[...path].js",
- "/api/locations": "pages/api/locations.js"
-}
\ No newline at end of file
diff --git a/.next/server/pages/_app.js b/.next/server/pages/_app.js
deleted file mode 100644
index e71a4b57e..000000000
--- a/.next/server/pages/_app.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(() => {
-var exports = {};
-exports.id = "pages/_app";
-exports.ids = ["pages/_app"];
-exports.modules = {
-
-/***/ "./pages/_app.js":
-/*!***********************!*\
- !*** ./pages/_app.js ***!
- \***********************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MyApp)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtJQUNwRCxxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wYWdlcy9fYXBwLmpzP2UwYWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc3R5bGVzL2dsb2JhbC5jc3NcIjsgLy8gUGZhZCB6dXIgZ2xvYmFsZW4gQ1NTLURhdGVpIGFucGFzc2VuXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE15QXBwKHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSkge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk15QXBwIiwiQ29tcG9uZW50IiwicGFnZVByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_app.js\n");
-
-/***/ }),
-
-/***/ "./styles/global.css":
-/*!***************************!*\
- !*** ./styles/global.css ***!
- \***************************/
-/***/ (() => {
-
-
-
-/***/ }),
-
-/***/ "react":
-/*!************************!*\
- !*** external "react" ***!
- \************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("react");
-
-/***/ }),
-
-/***/ "react/jsx-dev-runtime":
-/*!****************************************!*\
- !*** external "react/jsx-dev-runtime" ***!
- \****************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("react/jsx-dev-runtime");
-
-/***/ })
-
-};
-;
-
-// load runtime
-var __webpack_require__ = require("../webpack-runtime.js");
-__webpack_require__.C(exports);
-var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
-var __webpack_exports__ = (__webpack_exec__("./pages/_app.js"));
-module.exports = __webpack_exports__;
-
-})();
\ No newline at end of file
diff --git a/.next/server/pages/_document.js b/.next/server/pages/_document.js
deleted file mode 100644
index a0748c06c..000000000
--- a/.next/server/pages/_document.js
+++ /dev/null
@@ -1,66 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(() => {
-var exports = {};
-exports.id = "pages/_document";
-exports.ids = ["pages/_document"];
-exports.modules = {
-
-/***/ "next/dist/compiled/next-server/pages.runtime.dev.js":
-/*!**********************************************************************!*\
- !*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***!
- \**********************************************************************/
-/***/ ((module) => {
-
-module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js");
-
-/***/ }),
-
-/***/ "react":
-/*!************************!*\
- !*** external "react" ***!
- \************************/
-/***/ ((module) => {
-
-module.exports = require("react");
-
-/***/ }),
-
-/***/ "react/jsx-runtime":
-/*!************************************!*\
- !*** external "react/jsx-runtime" ***!
- \************************************/
-/***/ ((module) => {
-
-module.exports = require("react/jsx-runtime");
-
-/***/ }),
-
-/***/ "path":
-/*!***********************!*\
- !*** external "path" ***!
- \***********************/
-/***/ ((module) => {
-
-module.exports = require("path");
-
-/***/ })
-
-};
-;
-
-// load runtime
-var __webpack_require__ = require("../webpack-runtime.js");
-__webpack_require__.C(exports);
-var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
-var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("./node_modules/next/dist/pages/_document.js")));
-module.exports = __webpack_exports__;
-
-})();
\ No newline at end of file
diff --git a/.next/server/pages/_error.js b/.next/server/pages/_error.js
deleted file mode 100644
index a3e359415..000000000
--- a/.next/server/pages/_error.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(() => {
-var exports = {};
-exports.id = "pages/_error";
-exports.ids = ["pages/_error"];
-exports.modules = {
-
-/***/ "./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!":
-/*!******************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D! ***!
- \******************************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/pages/module.compiled */ \"./node_modules/next/dist/server/future/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! private-next-pages/_document */ \"./node_modules/next/dist/pages/_document.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! private-next-pages/_app */ \"./pages/_app.js\");\n/* harmony import */ var private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! private-next-pages/_error */ \"./node_modules/next/dist/pages/_error.js\");\n/* harmony import */ var private_next_pages_error__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"default\"));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"getStaticProps\");\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"getStaticPaths\");\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"getServerSideProps\");\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"config\");\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"reportWebVitals\");\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticProps\");\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticPaths\");\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticParams\");\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerProps\");\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerSideProps\");\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/_error\",\n pathname: \"/_error\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\"\n },\n components: {\n App: private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n Document: (private_next_pages_document__WEBPACK_IMPORTED_MODULE_3___default())\n },\n userland: private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__\n});\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTJnBhZ2U9JTJGX2Vycm9yJnByZWZlcnJlZFJlZ2lvbj0mYWJzb2x1dGVQYWdlUGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZXJyb3ImYWJzb2x1dGVBcHBQYXRoPXByaXZhdGUtbmV4dC1wYWdlcyUyRl9hcHAmYWJzb2x1dGVEb2N1bWVudFBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2RvY3VtZW50Jm1pZGRsZXdhcmVDb25maWdCYXNlNjQ9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBK0Y7QUFDaEM7QUFDTDtBQUMxRDtBQUNvRDtBQUNWO0FBQzFDO0FBQ3NEO0FBQ3REO0FBQ0EsaUVBQWUsd0VBQUssQ0FBQyxxREFBUSxZQUFZLEVBQUM7QUFDMUM7QUFDTyx1QkFBdUIsd0VBQUssQ0FBQyxxREFBUTtBQUNyQyx1QkFBdUIsd0VBQUssQ0FBQyxxREFBUTtBQUNyQywyQkFBMkIsd0VBQUssQ0FBQyxxREFBUTtBQUN6QyxlQUFlLHdFQUFLLENBQUMscURBQVE7QUFDN0Isd0JBQXdCLHdFQUFLLENBQUMscURBQVE7QUFDN0M7QUFDTyxnQ0FBZ0Msd0VBQUssQ0FBQyxxREFBUTtBQUM5QyxnQ0FBZ0Msd0VBQUssQ0FBQyxxREFBUTtBQUM5QyxpQ0FBaUMsd0VBQUssQ0FBQyxxREFBUTtBQUMvQyxnQ0FBZ0Msd0VBQUssQ0FBQyxxREFBUTtBQUM5QyxvQ0FBb0Msd0VBQUssQ0FBQyxxREFBUTtBQUN6RDtBQUNPLHdCQUF3Qix5R0FBZ0I7QUFDL0M7QUFDQSxjQUFjLHlFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxXQUFXO0FBQ1gsZ0JBQWdCO0FBQ2hCLEtBQUs7QUFDTCxZQUFZO0FBQ1osQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8/NDAwYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlc1JvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuaW1wb3J0IHsgaG9pc3QgfSBmcm9tIFwibmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzXCI7XG4vLyBJbXBvcnQgdGhlIGFwcCBhbmQgZG9jdW1lbnQgbW9kdWxlcy5cbmltcG9ydCBEb2N1bWVudCBmcm9tIFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19kb2N1bWVudFwiO1xuaW1wb3J0IEFwcCBmcm9tIFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19hcHBcIjtcbi8vIEltcG9ydCB0aGUgdXNlcmxhbmQgY29kZS5cbmltcG9ydCAqIGFzIHVzZXJsYW5kIGZyb20gXCJwcml2YXRlLW5leHQtcGFnZXMvX2Vycm9yXCI7XG4vLyBSZS1leHBvcnQgdGhlIGNvbXBvbmVudCAoc2hvdWxkIGJlIHRoZSBkZWZhdWx0IGV4cG9ydCkuXG5leHBvcnQgZGVmYXVsdCBob2lzdCh1c2VybGFuZCwgXCJkZWZhdWx0XCIpO1xuLy8gUmUtZXhwb3J0IG1ldGhvZHMuXG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJnZXRTdGF0aWNQcm9wc1wiKTtcbmV4cG9ydCBjb25zdCBnZXRTdGF0aWNQYXRocyA9IGhvaXN0KHVzZXJsYW5kLCBcImdldFN0YXRpY1BhdGhzXCIpO1xuZXhwb3J0IGNvbnN0IGdldFNlcnZlclNpZGVQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCBcImdldFNlcnZlclNpZGVQcm9wc1wiKTtcbmV4cG9ydCBjb25zdCBjb25maWcgPSBob2lzdCh1c2VybGFuZCwgXCJjb25maWdcIik7XG5leHBvcnQgY29uc3QgcmVwb3J0V2ViVml0YWxzID0gaG9pc3QodXNlcmxhbmQsIFwicmVwb3J0V2ViVml0YWxzXCIpO1xuLy8gUmUtZXhwb3J0IGxlZ2FjeSBtZXRob2RzLlxuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFN0YXRpY1Byb3BzID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U3RhdGljUHJvcHNcIik7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUGF0aHMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTdGF0aWNQYXRoc1wiKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQYXJhbXMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTdGF0aWNQYXJhbXNcIik7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U2VydmVyUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTZXJ2ZXJQcm9wc1wiKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTZXJ2ZXJTaWRlUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTZXJ2ZXJTaWRlUHJvcHNcIik7XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBQYWdlc1JvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgcGFnZTogXCIvX2Vycm9yXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9fZXJyb3JcIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiBcIlwiLFxuICAgICAgICBmaWxlbmFtZTogXCJcIlxuICAgIH0sXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBBcHAsXG4gICAgICAgIERvY3VtZW50XG4gICAgfSxcbiAgICB1c2VybGFuZFxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!\n");
-
-/***/ }),
-
-/***/ "./pages/_app.js":
-/*!***********************!*\
- !*** ./pages/_app.js ***!
- \***********************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MyApp)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtJQUNwRCxxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wYWdlcy9fYXBwLmpzP2UwYWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc3R5bGVzL2dsb2JhbC5jc3NcIjsgLy8gUGZhZCB6dXIgZ2xvYmFsZW4gQ1NTLURhdGVpIGFucGFzc2VuXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE15QXBwKHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSkge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk15QXBwIiwiQ29tcG9uZW50IiwicGFnZVByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_app.js\n");
-
-/***/ }),
-
-/***/ "./styles/global.css":
-/*!***************************!*\
- !*** ./styles/global.css ***!
- \***************************/
-/***/ (() => {
-
-
-
-/***/ }),
-
-/***/ "next/dist/compiled/next-server/pages.runtime.dev.js":
-/*!**********************************************************************!*\
- !*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***!
- \**********************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js");
-
-/***/ }),
-
-/***/ "react":
-/*!************************!*\
- !*** external "react" ***!
- \************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("react");
-
-/***/ }),
-
-/***/ "react/jsx-dev-runtime":
-/*!****************************************!*\
- !*** external "react/jsx-dev-runtime" ***!
- \****************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("react/jsx-dev-runtime");
-
-/***/ }),
-
-/***/ "react/jsx-runtime":
-/*!************************************!*\
- !*** external "react/jsx-runtime" ***!
- \************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("react/jsx-runtime");
-
-/***/ }),
-
-/***/ "path":
-/*!***********************!*\
- !*** external "path" ***!
- \***********************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("path");
-
-/***/ })
-
-};
-;
-
-// load runtime
-var __webpack_require__ = require("../webpack-runtime.js");
-__webpack_require__.C(exports);
-var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
-var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!")));
-module.exports = __webpack_exports__;
-
-})();
\ No newline at end of file
diff --git a/.next/server/pages/api/locations.js b/.next/server/pages/api/locations.js
deleted file mode 100644
index f50ebcc91..000000000
--- a/.next/server/pages/api/locations.js
+++ /dev/null
@@ -1,66 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(() => {
-var exports = {};
-exports.id = "pages/api/locations";
-exports.ids = ["pages/api/locations"];
-exports.modules = {
-
-/***/ "mysql":
-/*!************************!*\
- !*** external "mysql" ***!
- \************************/
-/***/ ((module) => {
-
-module.exports = require("mysql");
-
-/***/ }),
-
-/***/ "next/dist/compiled/next-server/pages-api.runtime.dev.js":
-/*!**************************************************************************!*\
- !*** external "next/dist/compiled/next-server/pages-api.runtime.dev.js" ***!
- \**************************************************************************/
-/***/ ((module) => {
-
-module.exports = require("next/dist/compiled/next-server/pages-api.runtime.dev.js");
-
-/***/ }),
-
-/***/ "(api)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Flocations&preferredRegion=&absolutePagePath=.%2Fpages%5Capi%5Clocations.js&middlewareConfigBase64=e30%3D!":
-/*!************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Flocations&preferredRegion=&absolutePagePath=.%2Fpages%5Capi%5Clocations.js&middlewareConfigBase64=e30%3D! ***!
- \************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ routeModule: () => (/* binding */ routeModule)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/pages-api/module.compiled */ \"(api)/./node_modules/next/dist/server/future/route-modules/pages-api/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(api)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"(api)/./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var _pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pages\\api\\locations.js */ \"(api)/./pages/api/locations.js\");\n\n\n\n// Import the userland code.\n\n// Re-export the handler (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__, \"default\"));\n// Re-export config.\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__, \"config\");\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesAPIRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES_API,\n page: \"/api/locations\",\n pathname: \"/api/locations\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\"\n },\n userland: _pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__\n});\n\n//# sourceMappingURL=pages-api.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTX0FQSSZwYWdlPSUyRmFwaSUyRmxvY2F0aW9ucyZwcmVmZXJyZWRSZWdpb249JmFic29sdXRlUGFnZVBhdGg9LiUyRnBhZ2VzJTVDYXBpJTVDbG9jYXRpb25zLmpzJm1pZGRsZXdhcmVDb25maWdCYXNlNjQ9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFzRztBQUN2QztBQUNMO0FBQzFEO0FBQ3VEO0FBQ3ZEO0FBQ0EsaUVBQWUsd0VBQUssQ0FBQyxvREFBUSxZQUFZLEVBQUM7QUFDMUM7QUFDTyxlQUFlLHdFQUFLLENBQUMsb0RBQVE7QUFDcEM7QUFDTyx3QkFBd0IsZ0hBQW1CO0FBQ2xEO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLFlBQVk7QUFDWixDQUFDOztBQUVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLz9mYWJhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VzQVBJUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9wYWdlcy1hcGkvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuaW1wb3J0IHsgaG9pc3QgfSBmcm9tIFwibmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzXCI7XG4vLyBJbXBvcnQgdGhlIHVzZXJsYW5kIGNvZGUuXG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiLi9wYWdlc1xcXFxhcGlcXFxcbG9jYXRpb25zLmpzXCI7XG4vLyBSZS1leHBvcnQgdGhlIGhhbmRsZXIgKHNob3VsZCBiZSB0aGUgZGVmYXVsdCBleHBvcnQpLlxuZXhwb3J0IGRlZmF1bHQgaG9pc3QodXNlcmxhbmQsIFwiZGVmYXVsdFwiKTtcbi8vIFJlLWV4cG9ydCBjb25maWcuXG5leHBvcnQgY29uc3QgY29uZmlnID0gaG9pc3QodXNlcmxhbmQsIFwiY29uZmlnXCIpO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgUGFnZXNBUElSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuUEFHRVNfQVBJLFxuICAgICAgICBwYWdlOiBcIi9hcGkvbG9jYXRpb25zXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9hcGkvbG9jYXRpb25zXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogXCJcIixcbiAgICAgICAgZmlsZW5hbWU6IFwiXCJcbiAgICB9LFxuICAgIHVzZXJsYW5kXG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMtYXBpLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(api)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Flocations&preferredRegion=&absolutePagePath=.%2Fpages%5Capi%5Clocations.js&middlewareConfigBase64=e30%3D!\n");
-
-/***/ }),
-
-/***/ "(api)/./pages/api/locations.js":
-/*!********************************!*\
- !*** ./pages/api/locations.js ***!
- \********************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ handler)\n/* harmony export */ });\n/* harmony import */ var mysql__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mysql */ \"mysql\");\n/* harmony import */ var mysql__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mysql__WEBPACK_IMPORTED_MODULE_0__);\n// pages/api/locations.js\n\nconst dbConfig = {\n host: process.env.DB_HOST,\n user: process.env.DB_USER,\n password: process.env.DB_PASSWORD,\n database: process.env.DB_NAME,\n port: process.env.DB_PORT\n};\nconsole.log(\"my dbconfig: \", dbConfig);\nfunction handler(req, res) {\n const connection = mysql__WEBPACK_IMPORTED_MODULE_0___default().createConnection(dbConfig);\n connection.connect((err)=>{\n if (err) {\n console.error(\"Fehler beim Verbinden:\", err.stack);\n res.status(500).json({\n error: \"Verbindungsfehler zur Datenbank\"\n });\n return;\n }\n console.log(\"Verbunden als ID\", connection.threadId);\n connection.query(\"SELECT idPoi, description, idPoiTyp, ST_AsText(position) AS position FROM poi\", (error, results)=>{\n if (error) {\n console.error(\"Fehler beim Abrufen der API\", error);\n res.status(500).json({\n error: \"Fehler bei der Abfrage\"\n });\n return;\n }\n // Wichtig: Senden Sie die Antwort zurück\n res.status(200).json(results);\n console.log(\"--------------- location.js ---------------\", \"results in location.js : \", results, \"---------------------- location.js end ---------------------------\");\n connection.end();\n });\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9wYWdlcy9hcGkvbG9jYXRpb25zLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlCQUF5QjtBQUNDO0FBRzFCLE1BQU1DLFdBQVc7SUFDZkMsTUFBTUMsUUFBUUMsR0FBRyxDQUFDQyxPQUFPO0lBQ3pCQyxNQUFNSCxRQUFRQyxHQUFHLENBQUNHLE9BQU87SUFDekJDLFVBQVVMLFFBQVFDLEdBQUcsQ0FBQ0ssV0FBVztJQUNqQ0MsVUFBVVAsUUFBUUMsR0FBRyxDQUFDTyxPQUFPO0lBQzdCQyxNQUFNVCxRQUFRQyxHQUFHLENBQUNTLE9BQU87QUFDM0I7QUFDQUMsUUFBUUMsR0FBRyxDQUFDLGlCQUFpQmQ7QUFDZCxTQUFTZSxRQUFRQyxHQUFHLEVBQUVDLEdBQUc7SUFFdEMsTUFBTUMsYUFBYW5CLDZEQUFzQixDQUFDQztJQUUxQ2tCLFdBQVdFLE9BQU8sQ0FBQyxDQUFDQztRQUNsQixJQUFJQSxLQUFLO1lBQ1BSLFFBQVFTLEtBQUssQ0FBQywwQkFBMEJELElBQUlFLEtBQUs7WUFDakROLElBQUlPLE1BQU0sQ0FBQyxLQUFLQyxJQUFJLENBQUM7Z0JBQUVILE9BQU87WUFBa0M7WUFDaEU7UUFDRjtRQUVBVCxRQUFRQyxHQUFHLENBQUMsb0JBQW9CSSxXQUFXUSxRQUFRO1FBRW5EUixXQUFXUyxLQUFLLENBQ2QsaUZBQ0EsQ0FBQ0wsT0FBT007WUFDTixJQUFJTixPQUFPO2dCQUNUVCxRQUFRUyxLQUFLLENBQUMsK0JBQThCQTtnQkFDNUNMLElBQUlPLE1BQU0sQ0FBQyxLQUFLQyxJQUFJLENBQUM7b0JBQUVILE9BQU87Z0JBQXlCO2dCQUN2RDtZQUNGO1lBRUEseUNBQXlDO1lBQzFDTCxJQUFJTyxNQUFNLENBQUMsS0FBS0MsSUFBSSxDQUFDRztZQUNyQmYsUUFBUUMsR0FBRyxDQUFFLGdEQUErQyw2QkFBNEJjLFNBQVM7WUFDaEdWLFdBQVdXLEdBQUc7UUFDaEI7SUFFSjtBQUdGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcGFnZXMvYXBpL2xvY2F0aW9ucy5qcz8wZjY5Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhZ2VzL2FwaS9sb2NhdGlvbnMuanNcclxuaW1wb3J0IG15c3FsIGZyb20gXCJteXNxbFwiO1xyXG5cclxuXHJcbmNvbnN0IGRiQ29uZmlnID0ge1xyXG4gIGhvc3Q6IHByb2Nlc3MuZW52LkRCX0hPU1QsXHJcbiAgdXNlcjogcHJvY2Vzcy5lbnYuREJfVVNFUixcclxuICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuREJfUEFTU1dPUkQsXHJcbiAgZGF0YWJhc2U6IHByb2Nlc3MuZW52LkRCX05BTUUsXHJcbiAgcG9ydDogcHJvY2Vzcy5lbnYuREJfUE9SVCxcclxufTtcclxuY29uc29sZS5sb2coXCJteSBkYmNvbmZpZzogXCIsIGRiQ29uZmlnKTtcclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaGFuZGxlcihyZXEsIHJlcykge1xyXG4gIFxyXG4gIGNvbnN0IGNvbm5lY3Rpb24gPSBteXNxbC5jcmVhdGVDb25uZWN0aW9uKGRiQ29uZmlnKTtcclxuXHJcbiAgY29ubmVjdGlvbi5jb25uZWN0KChlcnIpID0+IHtcclxuICAgIGlmIChlcnIpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkZlaGxlciBiZWltIFZlcmJpbmRlbjpcIiwgZXJyLnN0YWNrKTtcclxuICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBlcnJvcjogXCJWZXJiaW5kdW5nc2ZlaGxlciB6dXIgRGF0ZW5iYW5rXCIgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIlZlcmJ1bmRlbiBhbHMgSURcIiwgY29ubmVjdGlvbi50aHJlYWRJZCk7XHJcblxyXG4gICAgY29ubmVjdGlvbi5xdWVyeShcclxuICAgICAgXCJTRUxFQ1QgaWRQb2ksIGRlc2NyaXB0aW9uLCBpZFBvaVR5cCwgU1RfQXNUZXh0KHBvc2l0aW9uKSBBUyBwb3NpdGlvbiBGUk9NIHBvaVwiLFxyXG4gICAgICAoZXJyb3IsIHJlc3VsdHMpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGZWhsZXIgYmVpbSBBYnJ1ZmVuIGRlciBBUElcIixlcnJvcik7XHJcbiAgICAgICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IGVycm9yOiBcIkZlaGxlciBiZWkgZGVyIEFiZnJhZ2VcIiB9KTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFdpY2h0aWc6IFNlbmRlbiBTaWUgZGllIEFudHdvcnQgenVyw7xja1xyXG4gICAgICAgcmVzLnN0YXR1cygyMDApLmpzb24ocmVzdWx0cyApO1xyXG4gICAgICAgY29uc29sZS5sb2coIFwiLS0tLS0tLS0tLS0tLS0tIGxvY2F0aW9uLmpzICAtLS0tLS0tLS0tLS0tLS1cIixcInJlc3VsdHMgaW4gbG9jYXRpb24uanMgOiBcIixyZXN1bHRzLCBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gbG9jYXRpb24uanMgZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiKTtcclxuICAgICAgICBjb25uZWN0aW9uLmVuZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH0pO1xyXG5cclxuICBcclxufVxyXG4iXSwibmFtZXMiOlsibXlzcWwiLCJkYkNvbmZpZyIsImhvc3QiLCJwcm9jZXNzIiwiZW52IiwiREJfSE9TVCIsInVzZXIiLCJEQl9VU0VSIiwicGFzc3dvcmQiLCJEQl9QQVNTV09SRCIsImRhdGFiYXNlIiwiREJfTkFNRSIsInBvcnQiLCJEQl9QT1JUIiwiY29uc29sZSIsImxvZyIsImhhbmRsZXIiLCJyZXEiLCJyZXMiLCJjb25uZWN0aW9uIiwiY3JlYXRlQ29ubmVjdGlvbiIsImNvbm5lY3QiLCJlcnIiLCJlcnJvciIsInN0YWNrIiwic3RhdHVzIiwianNvbiIsInRocmVhZElkIiwicXVlcnkiLCJyZXN1bHRzIiwiZW5kIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(api)/./pages/api/locations.js\n");
-
-/***/ })
-
-};
-;
-
-// load runtime
-var __webpack_require__ = require("../../webpack-api-runtime.js");
-__webpack_require__.C(exports);
-var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
-var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next"], () => (__webpack_exec__("(api)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Flocations&preferredRegion=&absolutePagePath=.%2Fpages%5Capi%5Clocations.js&middlewareConfigBase64=e30%3D!")));
-module.exports = __webpack_exports__;
-
-})();
\ No newline at end of file
diff --git a/.next/server/pages/index.js b/.next/server/pages/index.js
deleted file mode 100644
index b17340713..000000000
--- a/.next/server/pages/index.js
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(() => {
-var exports = {};
-exports.id = "pages/index";
-exports.ids = ["pages/index"];
-exports.modules = {
-
-/***/ "./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.js&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!":
-/*!*****************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.js&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D! ***!
- \*****************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/pages/module.compiled */ \"./node_modules/next/dist/server/future/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! private-next-pages/_document */ \"./node_modules/next/dist/pages/_document.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! private-next-pages/_app */ \"./pages/_app.js\");\n/* harmony import */ var _pages_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pages\\index.js */ \"./pages/index.js\");\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"default\"));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"getStaticProps\");\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"getStaticPaths\");\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"getServerSideProps\");\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"config\");\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"reportWebVitals\");\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticProps\");\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticPaths\");\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticParams\");\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerProps\");\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerSideProps\");\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/index\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\"\n },\n components: {\n App: private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n Document: (private_next_pages_document__WEBPACK_IMPORTED_MODULE_3___default())\n },\n userland: _pages_index_js__WEBPACK_IMPORTED_MODULE_5__\n});\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTJnBhZ2U9JTJGJnByZWZlcnJlZFJlZ2lvbj0mYWJzb2x1dGVQYWdlUGF0aD0uJTJGcGFnZXMlNUNpbmRleC5qcyZhYnNvbHV0ZUFwcFBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2FwcCZhYnNvbHV0ZURvY3VtZW50UGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZG9jdW1lbnQmbWlkZGxld2FyZUNvbmZpZ0Jhc2U2ND1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQStGO0FBQ2hDO0FBQ0w7QUFDMUQ7QUFDb0Q7QUFDVjtBQUMxQztBQUM4QztBQUM5QztBQUNBLGlFQUFlLHdFQUFLLENBQUMsNENBQVEsWUFBWSxFQUFDO0FBQzFDO0FBQ08sdUJBQXVCLHdFQUFLLENBQUMsNENBQVE7QUFDckMsdUJBQXVCLHdFQUFLLENBQUMsNENBQVE7QUFDckMsMkJBQTJCLHdFQUFLLENBQUMsNENBQVE7QUFDekMsZUFBZSx3RUFBSyxDQUFDLDRDQUFRO0FBQzdCLHdCQUF3Qix3RUFBSyxDQUFDLDRDQUFRO0FBQzdDO0FBQ08sZ0NBQWdDLHdFQUFLLENBQUMsNENBQVE7QUFDOUMsZ0NBQWdDLHdFQUFLLENBQUMsNENBQVE7QUFDOUMsaUNBQWlDLHdFQUFLLENBQUMsNENBQVE7QUFDL0MsZ0NBQWdDLHdFQUFLLENBQUMsNENBQVE7QUFDOUMsb0NBQW9DLHdFQUFLLENBQUMsNENBQVE7QUFDekQ7QUFDTyx3QkFBd0IseUdBQWdCO0FBQy9DO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsV0FBVztBQUNYLGdCQUFnQjtBQUNoQixLQUFLO0FBQ0wsWUFBWTtBQUNaLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vPzJjZTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZXNSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmRcIjtcbmltcG9ydCB7IGhvaXN0IH0gZnJvbSBcIm5leHQvZGlzdC9idWlsZC90ZW1wbGF0ZXMvaGVscGVyc1wiO1xuLy8gSW1wb3J0IHRoZSBhcHAgYW5kIGRvY3VtZW50IG1vZHVsZXMuXG5pbXBvcnQgRG9jdW1lbnQgZnJvbSBcInByaXZhdGUtbmV4dC1wYWdlcy9fZG9jdW1lbnRcIjtcbmltcG9ydCBBcHAgZnJvbSBcInByaXZhdGUtbmV4dC1wYWdlcy9fYXBwXCI7XG4vLyBJbXBvcnQgdGhlIHVzZXJsYW5kIGNvZGUuXG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiLi9wYWdlc1xcXFxpbmRleC5qc1wiO1xuLy8gUmUtZXhwb3J0IHRoZSBjb21wb25lbnQgKHNob3VsZCBiZSB0aGUgZGVmYXVsdCBleHBvcnQpLlxuZXhwb3J0IGRlZmF1bHQgaG9pc3QodXNlcmxhbmQsIFwiZGVmYXVsdFwiKTtcbi8vIFJlLWV4cG9ydCBtZXRob2RzLlxuZXhwb3J0IGNvbnN0IGdldFN0YXRpY1Byb3BzID0gaG9pc3QodXNlcmxhbmQsIFwiZ2V0U3RhdGljUHJvcHNcIik7XG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUGF0aHMgPSBob2lzdCh1c2VybGFuZCwgXCJnZXRTdGF0aWNQYXRoc1wiKTtcbmV4cG9ydCBjb25zdCBnZXRTZXJ2ZXJTaWRlUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJnZXRTZXJ2ZXJTaWRlUHJvcHNcIik7XG5leHBvcnQgY29uc3QgY29uZmlnID0gaG9pc3QodXNlcmxhbmQsIFwiY29uZmlnXCIpO1xuZXhwb3J0IGNvbnN0IHJlcG9ydFdlYlZpdGFscyA9IGhvaXN0KHVzZXJsYW5kLCBcInJlcG9ydFdlYlZpdGFsc1wiKTtcbi8vIFJlLWV4cG9ydCBsZWdhY3kgbWV0aG9kcy5cbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCBcInVuc3RhYmxlX2dldFN0YXRpY1Byb3BzXCIpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFN0YXRpY1BhdGhzID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U3RhdGljUGF0aHNcIik7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUGFyYW1zID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U3RhdGljUGFyYW1zXCIpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFNlcnZlclByb3BzID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U2VydmVyUHJvcHNcIik7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U2VydmVyU2lkZVByb3BzID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U2VydmVyU2lkZVByb3BzXCIpO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgUGFnZXNSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgIHBhZ2U6IFwiL2luZGV4XCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9cIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiBcIlwiLFxuICAgICAgICBmaWxlbmFtZTogXCJcIlxuICAgIH0sXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBBcHAsXG4gICAgICAgIERvY3VtZW50XG4gICAgfSxcbiAgICB1c2VybGFuZFxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.js&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!\n");
-
-/***/ }),
-
-/***/ "./pages/_app.js":
-/*!***********************!*\
- !*** ./pages/_app.js ***!
- \***********************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MyApp)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtJQUNwRCxxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wYWdlcy9fYXBwLmpzP2UwYWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc3R5bGVzL2dsb2JhbC5jc3NcIjsgLy8gUGZhZCB6dXIgZ2xvYmFsZW4gQ1NTLURhdGVpIGFucGFzc2VuXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE15QXBwKHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSkge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk15QXBwIiwiQ29tcG9uZW50IiwicGFnZVByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_app.js\n");
-
-/***/ }),
-
-/***/ "./pages/index.js":
-/*!************************!*\
- !*** ./pages/index.js ***!
- \************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Home)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dynamic */ \"./node_modules/next/dynamic.js\");\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dynamic__WEBPACK_IMPORTED_MODULE_2__);\n// pages/index.js\n\n\n\nconst MapComponentWithNoSSR = next_dynamic__WEBPACK_IMPORTED_MODULE_2___default()(()=>Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/leaflet\"), __webpack_require__.e(\"vendor-chunks/leaflet-contextmenu\"), __webpack_require__.e(\"components_MapComponent_js\")]).then(__webpack_require__.bind(__webpack_require__, /*! ../components/MapComponent */ \"./components/MapComponent.js\")), {\n loadableGenerated: {\n modules: [\n \"pages\\\\index.js -> \" + \"../components/MapComponent\"\n ]\n },\n ssr: false\n});\nfunction Home() {\n const [mParam, setMParam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([\n \"\"\n ]);\n const [uParam, setUParam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([\n \"\"\n ]);\n const [locations, setLocations] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [formData, setFormData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n });\n const loadData = async ()=>{\n const response = await fetch(\"/api/locations\");\n const data = await response.json();\n setLocations(data);\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Funktion, um URL-Parameter zu holen\n function getURLParameter(name) {\n // Nutze URLSearchParams, eine Web API für die Arbeit mit Query-Strings\n const params = new URLSearchParams(window.location.search);\n return params.get(name); // Holt den Wert des Parameternamens\n }\n // Hole die Parameter 'm' und 'u'\n setMParam(getURLParameter(\"m\"));\n setUParam(getURLParameter(\"u\"));\n // Logge die Werte in der Konsole\n console.log(`Parameter m: ${mParam}, Parameter u: ${uParam}`);\n loadData();\n }, []);\n const handleAddLocation = async (name, type, lat, lng)=>{\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n name,\n type,\n latitude: lat,\n longitude: lng\n })\n });\n if (response.ok) {\n console.log(\"Standort erfolgreich hinzugef\\xfcgt\");\n setFormData({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n }); // Formular zurücksetzen\n loadData(); // Daten erneut laden\n } else {\n console.error(\"Fehler beim Hinzuf\\xfcgen des Standorts\");\n }\n };\n const handleSubmit = async (event)=>{\n event.preventDefault();\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(formData)\n });\n if (response.ok) {\n console.log(\"Erfolg\");\n setFormData({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n }); // Formular zurücksetzen\n loadData(); // Daten erneut laden\n } else {\n console.error(\"Fehler beim Speichern der Daten\");\n }\n };\n const handleChange = (event)=>{\n const { name, value } = event.target;\n setFormData((prevState)=>({\n ...prevState,\n [name]: value\n }));\n };\n const handleLocationUpdate = (id, newLatitude, newLongitude)=>{\n setLocations((prevLocations)=>{\n return prevLocations.map((location)=>{\n if (location.idPoi === id) {\n return {\n ...location,\n // Hier musst du ggf. die Formatierung anpassen, je nachdem wie du die Koordinaten speicherst\n position: `POINT(${newLongitude} ${newLatitude})`\n };\n }\n return location;\n });\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(MapComponentWithNoSSR, {\n locations: locations,\n onAddLocation: handleAddLocation,\n onLocationUpdate: handleLocationUpdate\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\index.js\",\n lineNumber: 104,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\index.js\",\n lineNumber: 102,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LGNBQWNDLEdBQUcsQ0FBQyxDQUFDM0I7Z0JBQ3hCLElBQUlBLFNBQVM0QixLQUFLLEtBQUtMLElBQUk7b0JBQ3pCLE9BQU87d0JBQ0wsR0FBR3ZCLFFBQVE7d0JBQ1gsNkZBQTZGO3dCQUM3RjZCLFVBQVUsQ0FBQyxNQUFNLEVBQUVKLGFBQWEsQ0FBQyxFQUFFRCxZQUFZLENBQUMsQ0FBQztvQkFDbkQ7Z0JBQ0Y7Z0JBQ0EsT0FBT3hCO1lBQ1Q7UUFDRjtJQUNGO0lBQ0EscUJBQ0UsOERBQUM4QjtrQkFFQyw0RUFBQ3REO1lBQ0NPLFdBQVdBO1lBQ1hnRCxlQUFlMUI7WUFDZjJCLGtCQUFrQlY7Ozs7Ozs7Ozs7O0FBSTFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcGFnZXMvaW5kZXguanM/YmVlNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWdlcy9pbmRleC5qc1xyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBkeW5hbWljIGZyb20gXCJuZXh0L2R5bmFtaWNcIjtcclxuXHJcblxyXG5jb25zdCBNYXBDb21wb25lbnRXaXRoTm9TU1IgPSBkeW5hbWljKFxyXG4gICgpID0+IGltcG9ydChcIi4uL2NvbXBvbmVudHMvTWFwQ29tcG9uZW50XCIpLFxyXG4gIHsgc3NyOiBmYWxzZSB9XHJcbik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb21lKCkge1xyXG5cclxuICBjb25zdCBbbVBhcmFtLHNldE1QYXJhbV0gPSB1c2VTdGF0ZShbXCJcIl0pO1xyXG4gIGNvbnN0IFt1UGFyYW0sc2V0VVBhcmFtXSA9IHVzZVN0YXRlKFtcIlwiXSk7XHJcblxyXG4gIGNvbnN0IFtsb2NhdGlvbnMsIHNldExvY2F0aW9uc10gPSB1c2VTdGF0ZShbXSk7XHJcbiAgY29uc3QgW2Zvcm1EYXRhLCBzZXRGb3JtRGF0YV0gPSB1c2VTdGF0ZSh7XHJcbiAgICBuYW1lOiBcIlwiLFxyXG4gICAgbG9uZ2l0dWRlOiBcIlwiLFxyXG4gICAgbGF0aXR1ZGU6IFwiXCIsXHJcbiAgICB0eXBlOiBcIlwiLFxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBsb2FkRGF0YSA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXCIvYXBpL2xvY2F0aW9uc1wiKTtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbiAgICBzZXRMb2NhdGlvbnMoZGF0YSk7XHJcbiAgfTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgIC8vIEZ1bmt0aW9uLCB1bSBVUkwtUGFyYW1ldGVyIHp1IGhvbGVuXHJcbiAgICAgICBmdW5jdGlvbiBnZXRVUkxQYXJhbWV0ZXIobmFtZSkge1xyXG4gICAgICAgIC8vIE51dHplIFVSTFNlYXJjaFBhcmFtcywgZWluZSBXZWIgQVBJIGbDvHIgZGllIEFyYmVpdCBtaXQgUXVlcnktU3RyaW5nc1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcy5nZXQobmFtZSk7IC8vIEhvbHQgZGVuIFdlcnQgZGVzIFBhcmFtZXRlcm5hbWVuc1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIC8vIEhvbGUgZGllIFBhcmFtZXRlciAnbScgdW5kICd1J1xyXG4gICAgICBzZXRNUGFyYW0oZ2V0VVJMUGFyYW1ldGVyKCdtJykpO1xyXG4gICAgICBzZXRVUGFyYW0oZ2V0VVJMUGFyYW1ldGVyKCd1JykpO1xyXG4gIFxyXG4gICAgICAvLyBMb2dnZSBkaWUgV2VydGUgaW4gZGVyIEtvbnNvbGVcclxuICAgICAgY29uc29sZS5sb2coYFBhcmFtZXRlciBtOiAke21QYXJhbX0sIFBhcmFtZXRlciB1OiAke3VQYXJhbX1gKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfSwgW10pO1xyXG4gIGNvbnN0IGhhbmRsZUFkZExvY2F0aW9uID0gYXN5bmMgKG5hbWUsIHR5cGUsIGxhdCwgbG5nKSA9PiB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgIG5hbWUsXHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgICBsYXRpdHVkZTogbGF0LFxyXG4gICAgICAgIGxvbmdpdHVkZTogbG5nLFxyXG4gICAgICB9KSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIlN0YW5kb3J0IGVyZm9sZ3JlaWNoIGhpbnp1Z2Vmw7xndFwiKTtcclxuICAgICAgc2V0Rm9ybURhdGEoeyBuYW1lOiBcIlwiLCBsb25naXR1ZGU6IFwiXCIsIGxhdGl0dWRlOiBcIlwiLCB0eXBlOiBcIlwiIH0pOyAvLyBGb3JtdWxhciB6dXLDvGNrc2V0emVuXHJcbiAgICAgIGxvYWREYXRhKCk7IC8vIERhdGVuIGVybmV1dCBsYWRlblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkZlaGxlciBiZWltIEhpbnp1ZsO8Z2VuIGRlcyBTdGFuZG9ydHNcIik7XHJcbiAgICB9XHJcbiAgfTtcclxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoZXZlbnQpID0+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRXJmb2xnXCIpO1xyXG4gICAgICBzZXRGb3JtRGF0YSh7IG5hbWU6IFwiXCIsIGxvbmdpdHVkZTogXCJcIiwgbGF0aXR1ZGU6IFwiXCIsIHR5cGU6IFwiXCIgfSk7IC8vIEZvcm11bGFyIHp1csO8Y2tzZXR6ZW5cclxuICAgICAgbG9hZERhdGEoKTsgLy8gRGF0ZW4gZXJuZXV0IGxhZGVuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiRmVobGVyIGJlaW0gU3BlaWNoZXJuIGRlciBEYXRlblwiKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoZXZlbnQpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgIHNldEZvcm1EYXRhKChwcmV2U3RhdGUpID0+ICh7IC4uLnByZXZTdGF0ZSwgW25hbWVdOiB2YWx1ZSB9KSk7XHJcbiAgfTtcclxuICBjb25zdCBoYW5kbGVMb2NhdGlvblVwZGF0ZSA9IChpZCwgbmV3TGF0aXR1ZGUsIG5ld0xvbmdpdHVkZSkgPT4ge1xyXG4gICAgc2V0TG9jYXRpb25zKChwcmV2TG9jYXRpb25zKSA9PiB7XHJcbiAgICAgIHJldHVybiBwcmV2TG9jYXRpb25zLm1hcCgobG9jYXRpb24pID0+IHtcclxuICAgICAgICBpZiAobG9jYXRpb24uaWRQb2kgPT09IGlkKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5sb2NhdGlvbixcclxuICAgICAgICAgICAgLy8gSGllciBtdXNzdCBkdSBnZ2YuIGRpZSBGb3JtYXRpZXJ1bmcgYW5wYXNzZW4sIGplIG5hY2hkZW0gd2llIGR1IGRpZSBLb29yZGluYXRlbiBzcGVpY2hlcnN0XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBgUE9JTlQoJHtuZXdMb25naXR1ZGV9ICR7bmV3TGF0aXR1ZGV9KWBcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsb2NhdGlvbjtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2PlxyXG4gICAgICB7LyogSWhyIEZvcm11bGFyICovfVxyXG4gICAgICA8TWFwQ29tcG9uZW50V2l0aE5vU1NSXHJcbiAgICAgICAgbG9jYXRpb25zPXtsb2NhdGlvbnN9XHJcbiAgICAgICAgb25BZGRMb2NhdGlvbj17aGFuZGxlQWRkTG9jYXRpb259XHJcbiAgICAgICAgb25Mb2NhdGlvblVwZGF0ZT17aGFuZGxlTG9jYXRpb25VcGRhdGV9XHJcbiAgICAgIC8+ICAgICBcclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJkeW5hbWljIiwiTWFwQ29tcG9uZW50V2l0aE5vU1NSIiwic3NyIiwiSG9tZSIsIm1QYXJhbSIsInNldE1QYXJhbSIsInVQYXJhbSIsInNldFVQYXJhbSIsImxvY2F0aW9ucyIsInNldExvY2F0aW9ucyIsImZvcm1EYXRhIiwic2V0Rm9ybURhdGEiLCJuYW1lIiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJ0eXBlIiwibG9hZERhdGEiLCJyZXNwb25zZSIsImZldGNoIiwiZGF0YSIsImpzb24iLCJnZXRVUkxQYXJhbWV0ZXIiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInNlYXJjaCIsImdldCIsImNvbnNvbGUiLCJsb2ciLCJoYW5kbGVBZGRMb2NhdGlvbiIsImxhdCIsImxuZyIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIm9rIiwiZXJyb3IiLCJoYW5kbGVTdWJtaXQiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlQ2hhbmdlIiwidmFsdWUiLCJ0YXJnZXQiLCJwcmV2U3RhdGUiLCJoYW5kbGVMb2NhdGlvblVwZGF0ZSIsImlkIiwibmV3TGF0aXR1ZGUiLCJuZXdMb25naXR1ZGUiLCJwcmV2TG9jYXRpb25zIiwibWFwIiwiaWRQb2kiLCJwb3NpdGlvbiIsImRpdiIsIm9uQWRkTG9jYXRpb24iLCJvbkxvY2F0aW9uVXBkYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/index.js\n");
-
-/***/ }),
-
-/***/ "./styles/global.css":
-/*!***************************!*\
- !*** ./styles/global.css ***!
- \***************************/
-/***/ (() => {
-
-
-
-/***/ }),
-
-/***/ "leaflet":
-/*!**************************!*\
- !*** external "leaflet" ***!
- \**************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("leaflet");
-
-/***/ }),
-
-/***/ "leaflet-contextmenu":
-/*!**************************************!*\
- !*** external "leaflet-contextmenu" ***!
- \**************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("leaflet-contextmenu");
-
-/***/ }),
-
-/***/ "next/dist/compiled/next-server/pages.runtime.dev.js":
-/*!**********************************************************************!*\
- !*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***!
- \**********************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js");
-
-/***/ }),
-
-/***/ "react":
-/*!************************!*\
- !*** external "react" ***!
- \************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("react");
-
-/***/ }),
-
-/***/ "react/jsx-dev-runtime":
-/*!****************************************!*\
- !*** external "react/jsx-dev-runtime" ***!
- \****************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("react/jsx-dev-runtime");
-
-/***/ }),
-
-/***/ "react/jsx-runtime":
-/*!************************************!*\
- !*** external "react/jsx-runtime" ***!
- \************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("react/jsx-runtime");
-
-/***/ }),
-
-/***/ "path":
-/*!***********************!*\
- !*** external "path" ***!
- \***********************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("path");
-
-/***/ })
-
-};
-;
-
-// load runtime
-var __webpack_require__ = require("../webpack-runtime.js");
-__webpack_require__.C(exports);
-var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
-var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.js&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!")));
-module.exports = __webpack_exports__;
-
-})();
\ No newline at end of file
diff --git a/.next/server/vendor-chunks/@swc.js b/.next/server/vendor-chunks/@swc.js
deleted file mode 100644
index 1e429d8dc..000000000
--- a/.next/server/vendor-chunks/@swc.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-exports.id = "vendor-chunks/@swc";
-exports.ids = ["vendor-chunks/@swc"];
-exports.modules = {
-
-/***/ "./node_modules/@swc/helpers/cjs/_interop_require_default.cjs":
-/*!********************************************************************!*\
- !*** ./node_modules/@swc/helpers/cjs/_interop_require_default.cjs ***!
- \********************************************************************/
-/***/ ((__unused_webpack_module, exports) => {
-
-eval("\n\nexports._ = exports._interop_require_default = _interop_require_default;\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuY2pzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFNBQVMsR0FBRyxnQ0FBZ0M7QUFDNUM7QUFDQSwyQ0FBMkM7QUFDM0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuY2pzPzliODgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuXyA9IGV4cG9ydHMuX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0O1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\n");
-
-/***/ }),
-
-/***/ "./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs":
-/*!*********************************************************************!*\
- !*** ./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs ***!
- \*********************************************************************/
-/***/ ((__unused_webpack_module, exports) => {
-
-eval("\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nexports._ = exports._interop_require_wildcard = _interop_require_wildcard;\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmNqcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFNBQVMsR0FBRyxpQ0FBaUM7QUFDN0M7QUFDQTtBQUNBLHVGQUF1Rjs7QUFFdkY7O0FBRUE7O0FBRUEsbUJBQW1CO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmNqcz8wYzVmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG5cbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmV4cG9ydHMuXyA9IGV4cG9ydHMuX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCA9IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQ7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkgcmV0dXJuIG9iajtcbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4geyBkZWZhdWx0OiBvYmogfTtcblxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG5cbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHJldHVybiBjYWNoZS5nZXQob2JqKTtcblxuICAgIHZhciBuZXdPYmogPSB7IF9fcHJvdG9fXzogbnVsbCB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgZWxzZSBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG5cbiAgICBpZiAoY2FjaGUpIGNhY2hlLnNldChvYmosIG5ld09iaik7XG5cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\n");
-
-/***/ })
-
-};
-;
\ No newline at end of file
diff --git a/.next/server/vendor-chunks/leaflet.js b/.next/server/vendor-chunks/leaflet.js
deleted file mode 100644
index 585509194..000000000
--- a/.next/server/vendor-chunks/leaflet.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-exports.id = "vendor-chunks/leaflet";
-exports.ids = ["vendor-chunks/leaflet"];
-exports.modules = {
-
-/***/ "./node_modules/leaflet/dist/leaflet.css":
-/*!***********************************************!*\
- !*** ./node_modules/leaflet/dist/leaflet.css ***!
- \***********************************************/
-/***/ (() => {
-
-
-
-/***/ })
-
-};
-;
\ No newline at end of file
diff --git a/.next/server/vendor-chunks/next.js b/.next/server/vendor-chunks/next.js
deleted file mode 100644
index 37c69df24..000000000
--- a/.next/server/vendor-chunks/next.js
+++ /dev/null
@@ -1,431 +0,0 @@
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-exports.id = "vendor-chunks/next";
-exports.ids = ["vendor-chunks/next"];
-exports.modules = {
-
-/***/ "./node_modules/next/dist/build/templates/helpers.js":
-/*!***********************************************************!*\
- !*** ./node_modules/next/dist/build/templates/helpers.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-eval("/**\n * Hoists a name from a module or promised module.\n *\n * @param module the module to hoist the name from\n * @param name the name to hoist\n * @returns the value on the module (or promised module)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hoist\", ({\n enumerable: true,\n get: function() {\n return hoist;\n }\n}));\nfunction hoist(module, name) {\n // If the name is available in the module, return it.\n if (name in module) {\n return module[name];\n }\n // If a property called `then` exists, assume it's a promise and\n // return a promise that resolves to the name.\n if (\"then\" in module && typeof module.then === \"function\") {\n return module.then((mod)=>hoist(mod, name));\n }\n // If we're trying to hoise the default export, and the module is a function,\n // return the module itself.\n if (typeof module === \"function\" && name === \"default\") {\n return module;\n }\n // Otherwise, return undefined.\n return undefined;\n}\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnMuanM/YjI4NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhvaXN0cyBhIG5hbWUgZnJvbSBhIG1vZHVsZSBvciBwcm9taXNlZCBtb2R1bGUuXG4gKlxuICogQHBhcmFtIG1vZHVsZSB0aGUgbW9kdWxlIHRvIGhvaXN0IHRoZSBuYW1lIGZyb21cbiAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIHRvIGhvaXN0XG4gKiBAcmV0dXJucyB0aGUgdmFsdWUgb24gdGhlIG1vZHVsZSAob3IgcHJvbWlzZWQgbW9kdWxlKVxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaG9pc3RcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGhvaXN0O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaG9pc3QobW9kdWxlLCBuYW1lKSB7XG4gICAgLy8gSWYgdGhlIG5hbWUgaXMgYXZhaWxhYmxlIGluIHRoZSBtb2R1bGUsIHJldHVybiBpdC5cbiAgICBpZiAobmFtZSBpbiBtb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG1vZHVsZVtuYW1lXTtcbiAgICB9XG4gICAgLy8gSWYgYSBwcm9wZXJ0eSBjYWxsZWQgYHRoZW5gIGV4aXN0cywgYXNzdW1lIGl0J3MgYSBwcm9taXNlIGFuZFxuICAgIC8vIHJldHVybiBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgbmFtZS5cbiAgICBpZiAoXCJ0aGVuXCIgaW4gbW9kdWxlICYmIHR5cGVvZiBtb2R1bGUudGhlbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGUudGhlbigobW9kKT0+aG9pc3QobW9kLCBuYW1lKSk7XG4gICAgfVxuICAgIC8vIElmIHdlJ3JlIHRyeWluZyB0byBob2lzZSB0aGUgZGVmYXVsdCBleHBvcnQsIGFuZCB0aGUgbW9kdWxlIGlzIGEgZnVuY3Rpb24sXG4gICAgLy8gcmV0dXJuIHRoZSBtb2R1bGUgaXRzZWxmLlxuICAgIGlmICh0eXBlb2YgbW9kdWxlID09PSBcImZ1bmN0aW9uXCIgJiYgbmFtZSA9PT0gXCJkZWZhdWx0XCIpIHtcbiAgICAgICAgcmV0dXJuIG1vZHVsZTtcbiAgICB9XG4gICAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdW5kZWZpbmVkLlxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/templates/helpers.js\n");
-
-/***/ }),
-
-/***/ "./node_modules/next/dist/pages/_document.js":
-/*!***************************************************!*\
- !*** ./node_modules/next/dist/pages/_document.js ***!
- \***************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Head: function() {\n return Head;\n },\n Html: function() {\n return Html;\n },\n Main: function() {\n return Main;\n },\n NextScript: function() {\n return NextScript;\n },\n /**\n * `Document` component handles the initial `document` markup and renders only on the server side.\n * Commonly used for implementing server side rendering for `css-in-js` libraries.\n */ default: function() {\n return Document;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"react\"));\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"./node_modules/next/dist/shared/lib/constants.js\");\nconst _getpagefiles = __webpack_require__(/*! ../server/get-page-files */ \"./node_modules/next/dist/server/get-page-files.js\");\nconst _htmlescape = __webpack_require__(/*! ../server/htmlescape */ \"./node_modules/next/dist/server/htmlescape.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst _htmlcontextsharedruntime = __webpack_require__(/*! ../shared/lib/html-context.shared-runtime */ \"./node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/html-context.js\");\nconst _encodeuripath = __webpack_require__(/*! ../shared/lib/encode-uri-path */ \"./node_modules/next/dist/shared/lib/encode-uri-path.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\n/** Set of pages that have triggered a large data warning on production mode. */ const largePageDataWarnings = new Set();\nfunction getDocumentFiles(buildManifest, pathname, inAmpMode) {\n const sharedFiles = (0, _getpagefiles.getPageFiles)(buildManifest, \"/_app\");\n const pageFiles = true && inAmpMode ? [] : (0, _getpagefiles.getPageFiles)(buildManifest, pathname);\n return {\n sharedFiles,\n pageFiles,\n allFiles: [\n ...new Set([\n ...sharedFiles,\n ...pageFiles\n ])\n ]\n };\n}\nfunction getPolyfillScripts(context, props) {\n // polyfills.js has to be rendered as nomodule without async\n // It also has to be the first script to load\n const { assetPrefix, buildManifest, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return buildManifest.polyfillFiles.filter((polyfill)=>polyfill.endsWith(\".js\") && !polyfill.endsWith(\".module.js\")).map((polyfill)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n defer: !disableOptimizedLoading,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin,\n noModule: true,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(polyfill)}${assetQueryString}`\n }, polyfill));\n}\nfunction hasComponentProps(child) {\n return !!child && !!child.props;\n}\nfunction AmpStyles({ styles }) {\n if (!styles) return null;\n // try to parse styles from fragment for backwards compat\n const curStyles = Array.isArray(styles) ? styles : [];\n if (styles.props && // @ts-ignore Property 'props' does not exist on type ReactElement\n Array.isArray(styles.props.children)) {\n const hasStyles = (el)=>{\n var _el_props_dangerouslySetInnerHTML, _el_props;\n return el == null ? void 0 : (_el_props = el.props) == null ? void 0 : (_el_props_dangerouslySetInnerHTML = _el_props.dangerouslySetInnerHTML) == null ? void 0 : _el_props_dangerouslySetInnerHTML.__html;\n };\n // @ts-ignore Property 'props' does not exist on type ReactElement\n styles.props.children.forEach((child)=>{\n if (Array.isArray(child)) {\n child.forEach((el)=>hasStyles(el) && curStyles.push(el));\n } else if (hasStyles(child)) {\n curStyles.push(child);\n }\n });\n }\n /* Add custom styles before AMP styles to prevent accidental overrides */ return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-custom\": \"\",\n dangerouslySetInnerHTML: {\n __html: curStyles.map((style)=>style.props.dangerouslySetInnerHTML.__html).join(\"\").replace(/\\/\\*# sourceMappingURL=.*\\*\\//g, \"\").replace(/\\/\\*@ sourceURL=.*?\\*\\//g, \"\")\n }\n });\n}\nfunction getDynamicChunks(context, props, files) {\n const { dynamicImports, assetPrefix, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith(\".js\") || files.allFiles.includes(file)) return null;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getScripts(context, props, files) {\n var _buildManifest_lowPriorityFiles;\n const { assetPrefix, buildManifest, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n const normalScripts = files.allFiles.filter((file)=>file.endsWith(\".js\"));\n const lowPriorityScripts = (_buildManifest_lowPriorityFiles = buildManifest.lowPriorityFiles) == null ? void 0 : _buildManifest_lowPriorityFiles.filter((file)=>file.endsWith(\".js\"));\n return [\n ...normalScripts,\n ...lowPriorityScripts\n ].map((file)=>{\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getPreNextWorkerScripts(context, props) {\n const { assetPrefix, scriptLoader, crossOrigin, nextScriptWorkers } = context;\n // disable `nextScriptWorkers` in edge runtime\n if (!nextScriptWorkers || \"nodejs\" === \"edge\") return null;\n try {\n let { partytownSnippet } = require(\"@builder.io/partytown/integration\");\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n // Check to see if the user has defined their own Partytown configuration\n const userDefinedConfig = children.find((child)=>{\n var _child_props_dangerouslySetInnerHTML, _child_props;\n return hasComponentProps(child) && (child == null ? void 0 : (_child_props = child.props) == null ? void 0 : (_child_props_dangerouslySetInnerHTML = _child_props.dangerouslySetInnerHTML) == null ? void 0 : _child_props_dangerouslySetInnerHTML.__html.length) && \"data-partytown-config\" in child.props;\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !userDefinedConfig && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown-config\": \"\",\n dangerouslySetInnerHTML: {\n __html: `\n partytown = {\n lib: \"${assetPrefix}/_next/static/~partytown/\"\n };\n `\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown\": \"\",\n dangerouslySetInnerHTML: {\n __html: partytownSnippet()\n }\n }),\n (scriptLoader.worker || []).map((file, index)=>{\n const { strategy, src, children: scriptChildren, dangerouslySetInnerHTML, ...scriptProps } = file;\n let srcProps = {};\n if (src) {\n // Use external src if provided\n srcProps.src = src;\n } else if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n // Embed inline script if provided with dangerouslySetInnerHTML\n srcProps.dangerouslySetInnerHTML = {\n __html: dangerouslySetInnerHTML.__html\n };\n } else if (scriptChildren) {\n // Embed inline script if provided with children\n srcProps.dangerouslySetInnerHTML = {\n __html: typeof scriptChildren === \"string\" ? scriptChildren : Array.isArray(scriptChildren) ? scriptChildren.join(\"\") : \"\"\n };\n } else {\n throw new Error(\"Invalid usage of next/script. Did you forget to include a src attribute or an inline script? https://nextjs.org/docs/messages/invalid-script\");\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...srcProps,\n ...scriptProps,\n type: \"text/partytown\",\n key: src || index,\n nonce: props.nonce,\n \"data-nscript\": \"worker\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n })\n ]\n });\n } catch (err) {\n if ((0, _iserror.default)(err) && err.code !== \"MODULE_NOT_FOUND\") {\n console.warn(`Warning: ${err.message}`);\n }\n return null;\n }\n}\nfunction getPreNextScripts(context, props) {\n const { scriptLoader, disableOptimizedLoading, crossOrigin } = context;\n const webWorkerScripts = getPreNextWorkerScripts(context, props);\n const beforeInteractiveScripts = (scriptLoader.beforeInteractive || []).filter((script)=>script.src).map((file, index)=>{\n const { strategy, ...scriptProps } = file;\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n key: scriptProps.src || index,\n defer: scriptProps.defer ?? !disableOptimizedLoading,\n nonce: props.nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n webWorkerScripts,\n beforeInteractiveScripts\n ]\n });\n}\nfunction getHeadHTMLProps(props) {\n const { crossOrigin, nonce, ...restProps } = props;\n // This assignment is necessary for additional type checking to avoid unsupported attributes in \n const headProps = restProps;\n return headProps;\n}\nfunction getAmpPath(ampPath, asPath) {\n return ampPath || `${asPath}${asPath.includes(\"?\") ? \"&\" : \"?\"}amp=1`;\n}\nfunction getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix = \"\") {\n if (!nextFontManifest) {\n return {\n preconnect: null,\n preload: null\n };\n }\n const appFontsEntry = nextFontManifest.pages[\"/_app\"];\n const pageFontsEntry = nextFontManifest.pages[dangerousAsPath];\n const preloadedFontFiles = Array.from(new Set([\n ...appFontsEntry ?? [],\n ...pageFontsEntry ?? []\n ]));\n // If no font files should preload but there's an entry for the path, add a preconnect tag.\n const preconnectToSelf = !!(preloadedFontFiles.length === 0 && (appFontsEntry || pageFontsEntry));\n return {\n preconnect: preconnectToSelf ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n \"data-next-font\": nextFontManifest.pagesUsingSizeAdjust ? \"size-adjust\" : \"\",\n rel: \"preconnect\",\n href: \"/\",\n crossOrigin: \"anonymous\"\n }) : null,\n preload: preloadedFontFiles ? preloadedFontFiles.map((fontFile)=>{\n const ext = /\\.(woff|woff2|eot|ttf|otf)$/.exec(fontFile)[1];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(fontFile)}`,\n as: \"font\",\n type: `font/${ext}`,\n crossOrigin: \"anonymous\",\n \"data-next-font\": fontFile.includes(\"-s\") ? \"size-adjust\" : \"\"\n }, fontFile);\n }) : null\n };\n}\nclass Head extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getCssLinks(files) {\n const { assetPrefix, assetQueryString, dynamicImports, crossOrigin, optimizeCss, optimizeFonts } = this.context;\n const cssFiles = files.allFiles.filter((f)=>f.endsWith(\".css\"));\n const sharedFiles = new Set(files.sharedFiles);\n // Unmanaged files are CSS files that will be handled directly by the\n // webpack runtime (`mini-css-extract-plugin`).\n let unmangedFiles = new Set([]);\n let dynamicCssFiles = Array.from(new Set(dynamicImports.filter((file)=>file.endsWith(\".css\"))));\n if (dynamicCssFiles.length) {\n const existing = new Set(cssFiles);\n dynamicCssFiles = dynamicCssFiles.filter((f)=>!(existing.has(f) || sharedFiles.has(f)));\n unmangedFiles = new Set(dynamicCssFiles);\n cssFiles.push(...dynamicCssFiles);\n }\n let cssLinkElements = [];\n cssFiles.forEach((file)=>{\n const isSharedFile = sharedFiles.has(file);\n if (!optimizeCss) {\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"style\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, `${file}-preload`));\n }\n const isUnmanagedFile = unmangedFiles.has(file);\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"stylesheet\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-n-g\": isUnmanagedFile ? undefined : isSharedFile ? \"\" : undefined,\n \"data-n-p\": isUnmanagedFile ? undefined : isSharedFile ? undefined : \"\"\n }, file));\n });\n if (false) {}\n return cssLinkElements.length === 0 ? null : cssLinkElements;\n }\n getPreloadDynamicChunks() {\n const { dynamicImports, assetPrefix, assetQueryString, crossOrigin } = this.context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith(\".js\")) {\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file);\n }) // Filter out nulled scripts\n .filter(Boolean);\n }\n getPreloadMainLinks(files) {\n const { assetPrefix, assetQueryString, scriptLoader, crossOrigin } = this.context;\n const preloadFiles = files.allFiles.filter((file)=>{\n return file.endsWith(\".js\");\n });\n return [\n ...(scriptLoader.beforeInteractive || []).map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: file.src,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file.src)),\n ...preloadFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file))\n ];\n }\n getBeforeInteractiveInlineScripts() {\n const { scriptLoader } = this.context;\n const { nonce, crossOrigin } = this.props;\n return (scriptLoader.beforeInteractive || []).filter((script)=>!script.src && (script.dangerouslySetInnerHTML || script.children)).map((file, index)=>{\n const { strategy, children, dangerouslySetInnerHTML, src, ...scriptProps } = file;\n let html = \"\";\n if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n html = dangerouslySetInnerHTML.__html;\n } else if (children) {\n html = typeof children === \"string\" ? children : Array.isArray(children) ? children.join(\"\") : \"\";\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n dangerouslySetInnerHTML: {\n __html: html\n },\n key: scriptProps.id || index,\n nonce: nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: crossOrigin || undefined\n });\n });\n }\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n makeStylesheetInert(node) {\n return _react.default.Children.map(node, (c)=>{\n var _c_props, _c_props1;\n if ((c == null ? void 0 : c.type) === \"link\" && (c == null ? void 0 : (_c_props = c.props) == null ? void 0 : _c_props.href) && _constants.OPTIMIZED_FONT_PROVIDERS.some(({ url })=>{\n var _c_props_href, _c_props;\n return c == null ? void 0 : (_c_props = c.props) == null ? void 0 : (_c_props_href = _c_props.href) == null ? void 0 : _c_props_href.startsWith(url);\n })) {\n const newProps = {\n ...c.props || {},\n \"data-href\": c.props.href,\n href: undefined\n };\n return /*#__PURE__*/ _react.default.cloneElement(c, newProps);\n } else if (c == null ? void 0 : (_c_props1 = c.props) == null ? void 0 : _c_props1.children) {\n const newProps = {\n ...c.props || {},\n children: this.makeStylesheetInert(c.props.children)\n };\n return /*#__PURE__*/ _react.default.cloneElement(c, newProps);\n }\n return c;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n }).filter(Boolean);\n }\n render() {\n const { styles, ampPath, inAmpMode, hybridAmp, canonicalBase, __NEXT_DATA__, dangerousAsPath, headTags, unstable_runtimeJS, unstable_JsPreload, disableOptimizedLoading, optimizeCss, optimizeFonts, assetPrefix, nextFontManifest } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n const disableJsPreload = unstable_JsPreload === false || !disableOptimizedLoading;\n this.context.docComponentsRendered.Head = true;\n let { head } = this.context;\n let cssPreloads = [];\n let otherHeadElements = [];\n if (head) {\n head.forEach((c)=>{\n let metaTag;\n if (this.context.strictNextHead) {\n metaTag = /*#__PURE__*/ _react.default.createElement(\"meta\", {\n name: \"next-head\",\n content: \"1\"\n });\n }\n if (c && c.type === \"link\" && c.props[\"rel\"] === \"preload\" && c.props[\"as\"] === \"style\") {\n metaTag && cssPreloads.push(metaTag);\n cssPreloads.push(c);\n } else {\n if (c) {\n if (metaTag && (c.type !== \"meta\" || !c.props[\"charSet\"])) {\n otherHeadElements.push(metaTag);\n }\n otherHeadElements.push(c);\n }\n }\n });\n head = cssPreloads.concat(otherHeadElements);\n }\n let children = _react.default.Children.toArray(this.props.children).filter(Boolean);\n // show a warning if Head contains (only in development)\n if (true) {\n children = _react.default.Children.map(children, (child)=>{\n var _child_props;\n const isReactHelmet = child == null ? void 0 : (_child_props = child.props) == null ? void 0 : _child_props[\"data-react-helmet\"];\n if (!isReactHelmet) {\n var _child_props1;\n if ((child == null ? void 0 : child.type) === \"title\") {\n console.warn(\"Warning: should not be used in _document.js's . https://nextjs.org/docs/messages/no-document-title\");\n } else if ((child == null ? void 0 : child.type) === \"meta\" && (child == null ? void 0 : (_child_props1 = child.props) == null ? void 0 : _child_props1.name) === \"viewport\") {\n console.warn(\"Warning: viewport meta tags should not be used in _document.js's . https://nextjs.org/docs/messages/no-document-viewport-meta\");\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n if (this.props.crossOrigin) console.warn(\"Warning: `Head` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated\");\n }\n if (false) {}\n let hasAmphtmlRel = false;\n let hasCanonicalRel = false;\n // show warning and remove conflicting amp head tags\n head = _react.default.Children.map(head || [], (child)=>{\n if (!child) return child;\n const { type, props } = child;\n if ( true && inAmpMode) {\n let badProp = \"\";\n if (type === \"meta\" && props.name === \"viewport\") {\n badProp = 'name=\"viewport\"';\n } else if (type === \"link\" && props.rel === \"canonical\") {\n hasCanonicalRel = true;\n } else if (type === \"script\") {\n // only block if\n // 1. it has a src and isn't pointing to ampproject's CDN\n // 2. it is using dangerouslySetInnerHTML without a type or\n // a type of text/javascript\n if (props.src && props.src.indexOf(\"ampproject\") < -1 || props.dangerouslySetInnerHTML && (!props.type || props.type === \"text/javascript\")) {\n badProp = \"