Web-MVP (M1): FastAPI-API, Testoberflaeche, tische.ini-Upload, zwei neue Beispiele
- web/main.py: Session-basierte REST-API um den GA-Kern (POST /sitzung, .../tische, .../tische-datei, .../personen, .../berechnen, GET .../ergebnis[.svg]); Sessions in-memory mit 24h-TTL - web/static/index.html: einfache Browser-Testoberflaeche (Tisch-Tabelle mit Presets, tische.ini-Upload, CSV-Gaesteliste, Kennzahlen, SVG) - bin/run_web.bat/.sh + run_web_helper.ps1: start/stop/status inkl. Aufraeumen verwaister uvicorn-Reload-Kindprozesse (Zombie-Sockets) - work/hochzeit: 120 Hochzeitsgaeste, Ehrentafel, Kindertisch/Teenager- Tisch fest gesetzt, Kinderalter normalverteilt, ~85% Auslastung - work/innenhoefe: 300 Gaeste in zwei trapezfoermigen Innenhoefen mit 4er-Tischen, 12 VIPs vor der Buehne, Umfeld.svg mit Tanzflaeche/Band - Roadmap: Konzeptentscheidungen 1-11 (Zielgruppe, Einmalzahlung, MoR, Hetzner, Zwei-Marken-Strategie Sitz&Platz/SeatWonder), Namensrecherche im Anhang, M1-Fortschritt und GA-Lasttest-Datenpunkt dokumentiert Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,3 +6,4 @@ work/ausgabe.txt
|
|||||||
out/
|
out/
|
||||||
.vscode/
|
.vscode/
|
||||||
*.swp
|
*.swp
|
||||||
|
/log/
|
||||||
|
|||||||
@@ -0,0 +1,76 @@
|
|||||||
|
@echo off
|
||||||
|
REM ================================================================
|
||||||
|
REM Verwaltet die lokale Web-Testinstanz (FastAPI/uvicorn, M1)
|
||||||
|
REM
|
||||||
|
REM run_web.bat start - startet den Server im Hintergrund
|
||||||
|
REM run_web.bat stop - beendet den Server (inkl. Reload-Kindprozesse)
|
||||||
|
REM run_web.bat status - zeigt ob und unter welcher PID er laeuft
|
||||||
|
REM run_web.bat - startet im Vordergrund (Strg+C zum Beenden)
|
||||||
|
REM
|
||||||
|
REM http://localhost:8000 Testoberflaeche
|
||||||
|
REM http://localhost:8000/docs interaktive API-Doku (Swagger)
|
||||||
|
REM
|
||||||
|
REM Die Prozess-/Portlogik liegt in run_web_helper.ps1 (cmd-Escaping
|
||||||
|
REM von mehrzeiligen PowerShell-Kommandos ist zu fehleranfaellig).
|
||||||
|
REM ================================================================
|
||||||
|
|
||||||
|
call "%~dp0setenv.bat" > nul
|
||||||
|
|
||||||
|
set WEB_PORT=8000
|
||||||
|
set HELFER=powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0run_web_helper.ps1"
|
||||||
|
|
||||||
|
if /I "%~1"=="start" goto :start
|
||||||
|
if /I "%~1"=="stop" goto :stop
|
||||||
|
if /I "%~1"=="status" goto :status
|
||||||
|
if "%~1"=="" goto :vordergrund
|
||||||
|
echo Unbekannter Parameter "%~1" - erlaubt: start ^| stop ^| status
|
||||||
|
exit /b 1
|
||||||
|
|
||||||
|
REM ----------------------------------------------------------------
|
||||||
|
:vordergrund
|
||||||
|
call :venv_pruefen || exit /b 1
|
||||||
|
echo Starte Web-Testinstanz im Vordergrund (Strg+C zum Beenden) ...
|
||||||
|
python -m uvicorn main:app --reload --app-dir "%PLATZ%\web" --port %WEB_PORT%
|
||||||
|
exit /b %errorlevel%
|
||||||
|
|
||||||
|
REM ----------------------------------------------------------------
|
||||||
|
:start
|
||||||
|
call :venv_pruefen || exit /b 1
|
||||||
|
%HELFER% check %WEB_PORT%
|
||||||
|
if not errorlevel 1 (
|
||||||
|
echo Server laeuft bereits auf Port %WEB_PORT% - erst "run_web.bat stop".
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
if not exist "%PLATZ%\log" mkdir "%PLATZ%\log"
|
||||||
|
echo Starte Web-Testinstanz im Hintergrund ...
|
||||||
|
start "platz-web" /MIN cmd /c "call "%~dp0setenv.bat" > nul && call "%PLATZ%\.venv\Scripts\activate.bat" && python -m uvicorn main:app --reload --app-dir "%PLATZ%\web" --port %WEB_PORT% > "%PLATZ%\log\run_web.log" 2>&1"
|
||||||
|
REM kurz warten und pruefen, ob der Server wirklich hochkommt
|
||||||
|
REM (ping statt timeout: funktioniert auch ohne interaktive Konsole)
|
||||||
|
ping -n 4 127.0.0.1 > nul
|
||||||
|
%HELFER% check %WEB_PORT%
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo FEHLER: Server ist nicht gestartet - siehe %PLATZ%\log\run_web.log
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
echo Server laeuft: http://localhost:%WEB_PORT% ^(Logdatei: log\run_web.log^)
|
||||||
|
exit /b 0
|
||||||
|
|
||||||
|
REM ----------------------------------------------------------------
|
||||||
|
:stop
|
||||||
|
echo Beende alle uvicorn-Prozesse dieses Projekts auf Port %WEB_PORT% ...
|
||||||
|
%HELFER% stop %WEB_PORT%
|
||||||
|
exit /b 0
|
||||||
|
|
||||||
|
REM ----------------------------------------------------------------
|
||||||
|
:status
|
||||||
|
%HELFER% status %WEB_PORT%
|
||||||
|
exit /b %errorlevel%
|
||||||
|
|
||||||
|
REM ----------------------------------------------------------------
|
||||||
|
:venv_pruefen
|
||||||
|
if exist "%PLATZ%\.venv\Scripts\activate.bat" (
|
||||||
|
call "%PLATZ%\.venv\Scripts\activate.bat"
|
||||||
|
exit /b 0
|
||||||
|
)
|
||||||
|
echo FEHLER: kein .venv gefunden - bitte zuerst bin\install_py.bat ausfuehren
|
||||||
|
exit /b 1
|
||||||
@@ -0,0 +1,95 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ================================================================
|
||||||
|
# Verwaltet die lokale Web-Testinstanz (FastAPI/uvicorn, M1)
|
||||||
|
#
|
||||||
|
# run_web.sh start - startet den Server im Hintergrund
|
||||||
|
# run_web.sh stop - beendet den Server (inkl. Reload-Kindprozesse)
|
||||||
|
# run_web.sh status - zeigt ob und unter welcher PID er laeuft
|
||||||
|
# run_web.sh - startet im Vordergrund (Strg+C zum Beenden)
|
||||||
|
#
|
||||||
|
# http://localhost:8000 Testoberflaeche
|
||||||
|
# http://localhost:8000/docs interaktive API-Doku (Swagger)
|
||||||
|
# ================================================================
|
||||||
|
|
||||||
|
source "$(dirname "${BASH_SOURCE[0]}")/setenv.sh" > /dev/null
|
||||||
|
|
||||||
|
WEB_PORT=8000
|
||||||
|
PIDDATEI="$PLATZ/log/run_web.pid"
|
||||||
|
LOGDATEI="$PLATZ/log/run_web.log"
|
||||||
|
|
||||||
|
venv_pruefen() {
|
||||||
|
if [ -f "$PLATZ/.venv/bin/activate" ]; then
|
||||||
|
source "$PLATZ/.venv/bin/activate"
|
||||||
|
else
|
||||||
|
echo "FEHLER: kein .venv gefunden - bitte zuerst bin/install_py.sh ausfuehren"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
lauft_pid() {
|
||||||
|
# gibt die PID des Servers aus, wenn er laeuft (Rueckgabe 0), sonst 1
|
||||||
|
if [ -f "$PIDDATEI" ]; then
|
||||||
|
local pid
|
||||||
|
pid=$(cat "$PIDDATEI")
|
||||||
|
if kill -0 "$pid" 2> /dev/null; then
|
||||||
|
echo "$pid"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
rm -f "$PIDDATEI"
|
||||||
|
fi
|
||||||
|
# Fallback: nach dem Prozess suchen (z.B. PID-Datei verloren)
|
||||||
|
pgrep -f "uvicorn main:app.*--port $WEB_PORT" | head -1 && return 0
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
case "${1:-}" in
|
||||||
|
start)
|
||||||
|
venv_pruefen || exit 1
|
||||||
|
if pid=$(lauft_pid); then
|
||||||
|
echo "Server laeuft bereits (PID $pid) - erst 'run_web.sh stop'."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
mkdir -p "$PLATZ/log"
|
||||||
|
echo "Starte Web-Testinstanz im Hintergrund ..."
|
||||||
|
nohup python -m uvicorn main:app --reload \
|
||||||
|
--app-dir "$PLATZ/web" --port "$WEB_PORT" \
|
||||||
|
> "$LOGDATEI" 2>&1 &
|
||||||
|
echo $! > "$PIDDATEI"
|
||||||
|
sleep 3
|
||||||
|
if pid=$(lauft_pid); then
|
||||||
|
echo "Server laeuft: http://localhost:$WEB_PORT (PID $pid, Log: log/run_web.log)"
|
||||||
|
else
|
||||||
|
echo "FEHLER: Server ist nicht gestartet - siehe $LOGDATEI"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
gestoppt=0
|
||||||
|
if pid=$(lauft_pid); then
|
||||||
|
# ganze Prozessgruppe beenden (uvicorn-Reloader + Kindprozesse)
|
||||||
|
pkill -TERM -P "$pid" 2> /dev/null && gestoppt=1
|
||||||
|
kill "$pid" 2> /dev/null && gestoppt=1
|
||||||
|
fi
|
||||||
|
# Nachzuegler, deren Elternprozess schon weg ist
|
||||||
|
pkill -f "uvicorn main:app.*--port $WEB_PORT" 2> /dev/null && gestoppt=1
|
||||||
|
rm -f "$PIDDATEI"
|
||||||
|
if [ "$gestoppt" = "1" ]; then echo "Beendet."; else echo "Es lief nichts."; fi
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
if pid=$(lauft_pid); then
|
||||||
|
echo "LAEUFT: http://localhost:$WEB_PORT (PID $pid)"
|
||||||
|
else
|
||||||
|
echo "GESTOPPT: kein Server auf Port $WEB_PORT"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"")
|
||||||
|
venv_pruefen || exit 1
|
||||||
|
echo "Starte Web-Testinstanz im Vordergrund (Strg+C zum Beenden) ..."
|
||||||
|
exec python -m uvicorn main:app --reload \
|
||||||
|
--app-dir "$PLATZ/web" --port "$WEB_PORT"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unbekannter Parameter '$1' - erlaubt: start | stop | status"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
# ================================================================
|
||||||
|
# PowerShell-Helfer fuer run_web.bat (start/stop/status)
|
||||||
|
# Aufruf: powershell -NoProfile -ExecutionPolicy Bypass
|
||||||
|
# -File run_web_helper.ps1 <status|stop|check> <port>
|
||||||
|
#
|
||||||
|
# "check" liefert nur den Exitcode (0 = Server lauscht, 1 = nicht)
|
||||||
|
# und keine Ausgabe - fuer die Pruefung nach dem Start.
|
||||||
|
#
|
||||||
|
# Verwaiste Socket-Eintraege (Listener, deren Prozess nicht mehr
|
||||||
|
# existiert - passiert nach abgestuerzten Reload-Kindprozessen)
|
||||||
|
# werden ueberall ignoriert.
|
||||||
|
# ================================================================
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true)][ValidateSet('status', 'stop', 'check')]
|
||||||
|
[string]$Aktion,
|
||||||
|
[int]$Port = 8000
|
||||||
|
)
|
||||||
|
|
||||||
|
function Lebende-Listener([int]$p) {
|
||||||
|
try {
|
||||||
|
Get-NetTCPConnection -LocalPort $p -State Listen -ErrorAction Stop |
|
||||||
|
Where-Object { Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue }
|
||||||
|
} catch { @() }
|
||||||
|
}
|
||||||
|
|
||||||
|
function Uvicorn-Prozesse {
|
||||||
|
Get-CimInstance Win32_Process -Filter "Name like 'python%'" |
|
||||||
|
Where-Object { $_.CommandLine -match 'uvicorn main:app' }
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($Aktion) {
|
||||||
|
|
||||||
|
'check' {
|
||||||
|
if (Lebende-Listener $Port) { exit 0 } else { exit 1 }
|
||||||
|
}
|
||||||
|
|
||||||
|
'status' {
|
||||||
|
$l = Lebende-Listener $Port | Select-Object -First 1
|
||||||
|
if ($l) {
|
||||||
|
"LAEUFT: http://localhost:$Port (Listener-PID $($l.OwningProcess))"
|
||||||
|
foreach ($e in Uvicorn-Prozesse) { " uvicorn-Prozess: PID $($e.ProcessId)" }
|
||||||
|
exit 0
|
||||||
|
} else {
|
||||||
|
"GESTOPPT: kein Server auf Port $Port"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
'stop' {
|
||||||
|
$gefunden = $false
|
||||||
|
$alle = Get-CimInstance Win32_Process -Filter "Name like 'python%'"
|
||||||
|
$reloaderPids = @()
|
||||||
|
foreach ($e in ($alle | Where-Object { $_.CommandLine -match 'uvicorn main:app' })) {
|
||||||
|
$gefunden = $true
|
||||||
|
$reloaderPids += $e.ProcessId
|
||||||
|
# erst die Kindprozesse (Reload-Worker), dann den Reloader selbst
|
||||||
|
$alle | Where-Object { $_.ParentProcessId -eq $e.ProcessId } | ForEach-Object {
|
||||||
|
Stop-Process -Id $_.ProcessId -Force -Confirm:$false -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
Stop-Process -Id $e.ProcessId -Force -Confirm:$false -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
# Zombie-Jagd: uvicorn-Reload-Worker sind multiprocessing-Spawn-Kinder
|
||||||
|
# ("spawn_main(parent_pid=N, ...)"). Stirbt ihr Reloader unsanft,
|
||||||
|
# ueberleben sie MIT geerbtem Server-Socket und bedienen den Port
|
||||||
|
# unsichtbar weiter (weder "uvicorn" in der Kommandozeile noch
|
||||||
|
# Eintrag als Socket-Besitzer!). Erkennung: spawn_main-Prozess,
|
||||||
|
# dessen parent_pid tot oder ein eben beendeter Reloader ist.
|
||||||
|
foreach ($k in ($alle | Where-Object { $_.CommandLine -match 'multiprocessing.spawn.*spawn_main' })) {
|
||||||
|
if ($k.CommandLine -match 'parent_pid=(\d+)') {
|
||||||
|
$eltern = [int]$Matches[1]
|
||||||
|
$elternTot = -not (Get-Process -Id $eltern -ErrorAction SilentlyContinue)
|
||||||
|
if ($elternTot -or ($reloaderPids -contains $eltern)) {
|
||||||
|
$gefunden = $true
|
||||||
|
Stop-Process -Id $k.ProcessId -Force -Confirm:$false -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Nachzuegler: alles Lebende, das den Port noch haelt
|
||||||
|
Lebende-Listener $Port | ForEach-Object {
|
||||||
|
$gefunden = $true
|
||||||
|
Stop-Process -Id $_.OwningProcess -Force -Confirm:$false -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
if ($gefunden) { 'Beendet.' } else { 'Es lief nichts.' }
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,8 +15,8 @@
|
|||||||
<circle cx="206" cy="138.8" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="206" cy="138.8" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="125.6" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="125.6" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="125.6" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 4</text>
|
<text x="125.6" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 4</text>
|
||||||
<circle cx="125.6" cy="32" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="125.6" cy="32" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="125.6" cy="58.4" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="125.6" cy="58.4" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="45.2" cy="125.6" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="45.2" cy="125.6" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="45.2" y="88.4" text-anchor="middle" font-size="10" fill="black">Tisch 5</text>
|
<text x="45.2" y="88.4" text-anchor="middle" font-size="10" fill="black">Tisch 5</text>
|
||||||
<circle cx="45.2" cy="112.4" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="45.2" cy="112.4" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
+20
-12
@@ -186,17 +186,21 @@ Die folgenden Grundsatzfragen sind entschieden und gelten für alle Meilensteine
|
|||||||
**Ziel:** Eine Person kann übers Web eine Hochzeit planen, ohne Login. Ergebnis: PDF/SVG-Export.
|
**Ziel:** Eine Person kann übers Web eine Hochzeit planen, ohne Login. Ergebnis: PDF/SVG-Export.
|
||||||
Session-basiert, nichts wird dauerhaft gespeichert (schont Datenschutz-Aufwand in dieser Phase).
|
Session-basiert, nichts wird dauerhaft gespeichert (schont Datenschutz-Aufwand in dieser Phase).
|
||||||
|
|
||||||
- [ ] REST-API um den bestehenden Kern (FastAPI empfohlen: async, OpenAPI-Doku gratis,
|
- [x] REST-API um den bestehenden Kern (FastAPI) — umgesetzt in `web/main.py`,
|
||||||
gut für Traffic-Spitzen an Wochenenden)
|
Start per `bin/run_web.bat`/`.sh` (uvicorn --reload, Port 8000), Swagger unter `/docs`
|
||||||
- `POST /sitzung` — legt eine Arbeits-Session an (Tische + Personen)
|
- `POST /sitzung` — legt eine Arbeits-Session an (in-memory, TTL 24h)
|
||||||
- `POST /sitzung/{id}/tische` — Tisch-Layout (Ersatz für `tische.ini`)
|
- `POST /sitzung/{id}/tische` — Tisch-Layout als JSON (Ersatz für `tische.ini`);
|
||||||
|
Nachbarliste wird aus räumlicher Nähe der Koordinaten abgeleitet
|
||||||
- `POST /sitzung/{id}/personen` — CSV-Upload (Ersatz für `bestellung.xml`)
|
- `POST /sitzung/{id}/personen` — CSV-Upload (Ersatz für `bestellung.xml`)
|
||||||
- `POST /sitzung/{id}/berechnen` — startet die GA-Optimierung
|
- `POST /sitzung/{id}/berechnen` — startet die GA-Optimierung (jeder Aufruf = neue Variante)
|
||||||
- `GET /sitzung/{id}/ergebnis.svg` — liefert `alsSVG()`-Resultat
|
- `GET /sitzung/{id}/ergebnis` + `GET /sitzung/{id}/ergebnis.svg` — Ergebnis als JSON/SVG
|
||||||
- [ ] **CSV-Format definieren und Parser bauen** (Analogon zu `XMLConfig`):
|
- [x] **CSV-Format definiert und Parser gebaut** — `libs/CSVConfig.py` (Adapter analog
|
||||||
Spalten z.B. `Vorname;Nachname;Titel;Gruppe;Tisch(optional=VIP)`
|
`XMLConfig`): Spalten `Vorname;Nachname;Titel;Gruppe;Tisch;Anzahl`; `Tisch` = VIP-
|
||||||
→ wird zu `Personen`/`Gruppen`/VIP-Map, exakt wie `XMLConfig.HandleBestellung()`
|
Fixplatz, `Anzahl` = Sammelbuchungs-Expansion, leere `Gruppe` = Einzelgast;
|
||||||
heute — reiner Adapter, kein Kernumbau.
|
`MagNicht`/`MagGern` werden akzeptiert aber noch ignoriert (Konzeptentscheidung Nr. 10)
|
||||||
|
- [x] Einfache Browser-Testoberfläche (`web/static/index.html`): Tisch-Tabelle mit
|
||||||
|
Presets, CSV-Textfeld/-Upload, Berechnen-Button, Kennzahlen + SVG-Anzeige —
|
||||||
|
Zwischenschritt, wird durch den Konva-Tisch-Editor (unten) abgelöst
|
||||||
- [ ] **Interaktiver Tisch-Editor** (Frontend, React/Vue + SVG):
|
- [ ] **Interaktiver Tisch-Editor** (Frontend, React/Vue + SVG):
|
||||||
Kreise per Drag & Drop platzieren, Kapazität einstellen, Nachbarschaft automatisch
|
Kreise per Drag & Drop platzieren, Kapazität einstellen, Nachbarschaft automatisch
|
||||||
aus räumlicher Nähe ableiten (statt manueller `Nachbarliste`-Pflege in `tische.ini`)
|
aus räumlicher Nähe ableiten (statt manueller `Nachbarliste`-Pflege in `tische.ini`)
|
||||||
@@ -314,8 +318,12 @@ parallel anlaufen — eher ~4–4,5 Monate bis M4-Abschluss.
|
|||||||
1. **Datenschutz wird unterschätzt** — sobald echte Gästelisten dauerhaft gespeichert
|
1. **Datenschutz wird unterschätzt** — sobald echte Gästelisten dauerhaft gespeichert
|
||||||
werden (ab M3), ist das kein Nebenthema mehr. Frühzeitig Rechtsberatung einholen,
|
werden (ab M3), ist das kein Nebenthema mehr. Frühzeitig Rechtsberatung einholen,
|
||||||
nicht erst kurz vor Launch.
|
nicht erst kurz vor Launch.
|
||||||
2. **GA-Performance bei großen Sälen** — noch nicht lastgetestet mit z.B. 300+ Personen
|
2. **GA-Performance bei großen Sälen** — erster Datenpunkt (2026-07-11): das Beispiel
|
||||||
und vielen Tischen; ggf. Optimierungsbedarf vor M2.
|
`work/innenhoefe` mit 300 Gästen an 88 Tischen rechnet mit dem Easy-Zyklus in ~0,4 s
|
||||||
|
durch — weit unter der 5-s-Schwelle, ab der M2 eine Job-Queue vorsieht. Offen bleibt
|
||||||
|
der Test mit größeren Zyklen (mehr Generationen für bessere Lösungsqualität bei
|
||||||
|
vielen Trennungen) — die Lösungsgüte bei 4er-Tischen mit großen Gruppen (Wertigkeit
|
||||||
|
−384) legt nahe, dass hier eher mehr GA-Iterationen nötig sind als bisher.
|
||||||
3. **Wettbewerb ist real und etabliert** — siehe Abschnitt "Marktübersicht" oben.
|
3. **Wettbewerb ist real und etabliert** — siehe Abschnitt "Marktübersicht" oben.
|
||||||
PerfectTablePlan verfolgt seit Jahren denselben GA-Ansatz, allerdings als Desktop-Tool.
|
PerfectTablePlan verfolgt seit Jahren denselben GA-Ansatz, allerdings als Desktop-Tool.
|
||||||
Differenzierung muss über Web-nativ + DSGVO-Hosting + detailliertere Regeln
|
Differenzierung muss über Web-nativ + DSGVO-Hosting + detailliertere Regeln
|
||||||
|
|||||||
+5
-6
@@ -1,8 +1,7 @@
|
|||||||
# Python-Abhaengigkeiten fuer platz
|
# Python-Abhaengigkeiten fuer platz
|
||||||
#
|
#
|
||||||
# Aktuell werden nur Module aus der Standardbibliothek verwendet
|
# Der Kern (libs/) verwendet nur die Standardbibliothek.
|
||||||
# (configparser, xml.dom.minidom, random, ...).
|
# Die folgenden Pakete braucht nur die Web-API (web/main.py, Roadmap M1):
|
||||||
# Keine externen Pakete erforderlich.
|
fastapi>=0.110
|
||||||
#
|
uvicorn[standard]>=0.29
|
||||||
# Beispiel:
|
python-multipart>=0.0.9
|
||||||
# requests==2.31.0
|
|
||||||
|
|||||||
+470
@@ -0,0 +1,470 @@
|
|||||||
|
"""
|
||||||
|
REST-API um den bestehenden Sitzplatz-Kern (Meilenstein 1 der Roadmap).
|
||||||
|
|
||||||
|
Session-basiert, nichts wird dauerhaft gespeichert: jede Sitzung lebt
|
||||||
|
im Speicher des Servers und verfaellt nach 24 Stunden (TTL) — bewusst
|
||||||
|
ohne Accounts/DB, siehe Roadmap M1 ("schont Datenschutz-Aufwand").
|
||||||
|
|
||||||
|
Endpunkte (siehe auch /docs — interaktive Swagger-UI von FastAPI):
|
||||||
|
POST /sitzung — legt eine Arbeits-Session an
|
||||||
|
GET /sitzung/{id} — Status der Session
|
||||||
|
POST /sitzung/{id}/tische — Tisch-Layout als JSON (Ersatz tische.ini)
|
||||||
|
POST /sitzung/{id}/personen — Gaesteliste als CSV-Upload (Ersatz bestellung.xml)
|
||||||
|
POST /sitzung/{id}/berechnen — startet die GA-Optimierung
|
||||||
|
GET /sitzung/{id}/ergebnis — Ergebnis als JSON (Tische -> Personen)
|
||||||
|
GET /sitzung/{id}/ergebnis.svg — Ergebnis als SVG (alsSVG aus dem Kern)
|
||||||
|
|
||||||
|
Start (lokale Testinstanz, siehe bin/run_web.bat / bin/run_web.sh):
|
||||||
|
python -m uvicorn main:app --reload --app-dir web
|
||||||
|
"""
|
||||||
|
|
||||||
|
import ast
|
||||||
|
import math
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import tempfile
|
||||||
|
import threading
|
||||||
|
import time
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
# Projektwurzel und Pfade robust aus der eigenen Lage ableiten, damit der
|
||||||
|
# Server auch ohne vorheriges setenv laeuft (PLATZ_* hat Vorrang, falls gesetzt)
|
||||||
|
BASISDIR = os.path.dirname( os.path.dirname( os.path.abspath( __file__ ) ) )
|
||||||
|
LIBSDIR = os.environ.get( 'PLATZ_LIBS', os.path.join( BASISDIR, 'libs' ) )
|
||||||
|
CFGDIR = os.environ.get( 'PLATZ_CFG', os.path.join( BASISDIR, 'cfg' ) )
|
||||||
|
if LIBSDIR not in sys.path:
|
||||||
|
sys.path.insert( 0, LIBSDIR )
|
||||||
|
|
||||||
|
from fastapi import FastAPI, File, HTTPException, UploadFile
|
||||||
|
from fastapi.responses import Response
|
||||||
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
from ga import Farm, Zyklus
|
||||||
|
from CSVConfig import CSVConfig
|
||||||
|
from Strukturdaten import Sitzplatzverteilung, Strafliste, Tisch, Tische
|
||||||
|
|
||||||
|
app = FastAPI(
|
||||||
|
title='Sitz & Platz — API',
|
||||||
|
description='Sitzplatz-Optimierung per genetischem Algorithmus '
|
||||||
|
'(Meilenstein 1: Session-basiert, ohne Accounts)',
|
||||||
|
version='0.1.0' )
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- GA-Konfig
|
||||||
|
# Zyklus und Strafliste einmal beim Start laden (wie in libs/platz.py)
|
||||||
|
import configparser
|
||||||
|
_PlatzCfg = configparser.ConfigParser()
|
||||||
|
_PlatzCfg.read( os.path.join( CFGDIR, 'platz.cfg' ) )
|
||||||
|
ZYKLUSDATEI = os.path.expandvars( os.path.normpath(
|
||||||
|
_PlatzCfg.get( 'Config', 'Zyklusdatei',
|
||||||
|
fallback=os.path.join( CFGDIR, 'zyklus.cfg' ) ) ) )
|
||||||
|
ZYKLUSART = _PlatzCfg.get( 'Config', 'Zyklusart', fallback='Easy' )
|
||||||
|
STRAFENDATEI = os.path.expandvars( os.path.normpath(
|
||||||
|
_PlatzCfg.get( 'Config', 'Strafendatei',
|
||||||
|
fallback=os.path.join( CFGDIR, 'strafen.cfg' ) ) ) )
|
||||||
|
if not os.path.isfile( ZYKLUSDATEI ):
|
||||||
|
ZYKLUSDATEI = os.path.join( CFGDIR, 'zyklus.cfg' )
|
||||||
|
if not os.path.isfile( STRAFENDATEI ):
|
||||||
|
STRAFENDATEI = os.path.join( CFGDIR, 'strafen.cfg' )
|
||||||
|
|
||||||
|
GAZyklus = Zyklus()
|
||||||
|
GAZyklus.laden( ZYKLUSDATEI, ZYKLUSART )
|
||||||
|
Strafen = Strafliste()
|
||||||
|
Strafen.laden( STRAFENDATEI )
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- Sessions
|
||||||
|
SESSION_TTL_SEKUNDEN = 24 * 3600
|
||||||
|
Sessions = {}
|
||||||
|
SessionsLock = threading.Lock()
|
||||||
|
|
||||||
|
|
||||||
|
def _SessionsAufraeumen():
|
||||||
|
"""Sessions loeschen, deren TTL abgelaufen ist (Datenschutz per Design)"""
|
||||||
|
Jetzt = time.time()
|
||||||
|
with SessionsLock:
|
||||||
|
Abgelaufen = [ Sid for Sid, S in Sessions.items()
|
||||||
|
if Jetzt - S['erzeugt'] > SESSION_TTL_SEKUNDEN ]
|
||||||
|
for Sid in Abgelaufen:
|
||||||
|
del Sessions[Sid]
|
||||||
|
|
||||||
|
|
||||||
|
def _GibSession(SitzungsId):
|
||||||
|
_SessionsAufraeumen()
|
||||||
|
with SessionsLock:
|
||||||
|
S = Sessions.get( SitzungsId )
|
||||||
|
if S is None:
|
||||||
|
raise HTTPException( status_code=404,
|
||||||
|
detail='Sitzung nicht gefunden oder abgelaufen (TTL 24h)' )
|
||||||
|
return S
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------ API-Modelle
|
||||||
|
class TischEingabe(BaseModel):
|
||||||
|
"""ein Tisch aus dem Frontend (Ersatz fuer eine tische.ini-Section)"""
|
||||||
|
id: int | None = Field( default=None, description='Tisch-Id; leer = fortlaufend' )
|
||||||
|
nummer: int | None = Field( default=None, description='Anzeigenummer; leer = wie Id' )
|
||||||
|
hof: int = Field( default=1, description='Hof/Raum-Nummer' )
|
||||||
|
plaetze: int = Field( gt=0, le=100, description='Anzahl Sitzplaetze' )
|
||||||
|
x: float = Field( description='X-Koordinate im Raster' )
|
||||||
|
y: float = Field( description='Y-Koordinate im Raster' )
|
||||||
|
nachbarn: list[int] | None = Field( default=None,
|
||||||
|
description='explizite Nachbar-Tisch-Ids; leer = aus Naehe ableiten' )
|
||||||
|
|
||||||
|
|
||||||
|
class TischLayout(BaseModel):
|
||||||
|
tische: list[TischEingabe] = Field( min_length=1 )
|
||||||
|
nachbarRadius: float = Field( default=1.5, gt=0,
|
||||||
|
description='max. Rasterabstand, bis zu dem zwei Tische als '
|
||||||
|
'Nachbarn gelten (nur fuer Tische ohne explizite Liste)' )
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------- Hilfen
|
||||||
|
def _NachbarnAbleiten(TischListe, Radius):
|
||||||
|
"""Nachbarliste aus raeumlicher Naehe der Koordinaten ableiten
|
||||||
|
(Roadmap M1: Ersatz fuer manuelle Nachbarliste-Pflege).
|
||||||
|
Explizit angegebene Nachbarn bleiben erhalten und werden
|
||||||
|
beidseitig ergaenzt."""
|
||||||
|
Nachbarn = { T.id: set( T.nachbarn or [] ) for T in TischListe }
|
||||||
|
for T1 in TischListe:
|
||||||
|
for T2 in TischListe:
|
||||||
|
if T1.id == T2.id:
|
||||||
|
continue
|
||||||
|
if T1.nachbarn is None or T2.nachbarn is None:
|
||||||
|
Abstand = math.dist( (T1.x, T1.y), (T2.x, T2.y) )
|
||||||
|
if Abstand <= Radius:
|
||||||
|
Nachbarn[T1.id].add( T2.id )
|
||||||
|
Nachbarn[T2.id].add( T1.id )
|
||||||
|
# expliziten Angaben beidseitig machen
|
||||||
|
for Tid, Menge in Nachbarn.items():
|
||||||
|
for NachbarId in Menge:
|
||||||
|
if NachbarId in Nachbarn:
|
||||||
|
Nachbarn[NachbarId].add( Tid )
|
||||||
|
return { Tid: sorted(Menge) for Tid, Menge in Nachbarn.items() }
|
||||||
|
|
||||||
|
|
||||||
|
def _TischeBauen(S):
|
||||||
|
"""baut aus dem gespeicherten Layout frische Tisch-Objekte
|
||||||
|
(pro Berechnung neu, damit keine Reste vorheriger Laeufe kleben)"""
|
||||||
|
TE = Tische( [] )
|
||||||
|
for T in S['tische']:
|
||||||
|
TE.Tisch_dazu( Tisch(
|
||||||
|
T['id'],
|
||||||
|
Plaetze=T['plaetze'],
|
||||||
|
Koordinaten=( T['x'], T['y'] ),
|
||||||
|
Nachbarliste=T['nachbarn'],
|
||||||
|
Hof=T['hof'],
|
||||||
|
Nummer=T['nummer'] ) )
|
||||||
|
return TE
|
||||||
|
|
||||||
|
|
||||||
|
def _ErgebnisJSON(S):
|
||||||
|
"""baut die JSON-Darstellung des besten Ergebnisses einer Session"""
|
||||||
|
SV = S['ergebnis']
|
||||||
|
GruppenNamen = S.get( 'gruppenNamen', {} )
|
||||||
|
|
||||||
|
def GruppeVonPerson(P):
|
||||||
|
try:
|
||||||
|
G = SV.Gruppen.GruppeVonPid( P.Id )
|
||||||
|
return GruppenNamen.get( G.Id, 'Gruppe %s' % G.Id )
|
||||||
|
except KeyError:
|
||||||
|
return 'VIP'
|
||||||
|
|
||||||
|
TischListe = []
|
||||||
|
for T in SV.Tische:
|
||||||
|
Personen = [ {
|
||||||
|
'titel': P._Titel,
|
||||||
|
'vorname': P._Vorname,
|
||||||
|
'nachname': P._Name,
|
||||||
|
'gruppe': GruppeVonPerson( P ),
|
||||||
|
} for P in T ]
|
||||||
|
Personen.sort( key=lambda p: (p['gruppe'], p['nachname'], p['vorname']) )
|
||||||
|
TischListe.append( {
|
||||||
|
'id': T.Id,
|
||||||
|
'nummer': T.Nummer,
|
||||||
|
'hof': T.Hof,
|
||||||
|
'plaetze': T.Plaetze,
|
||||||
|
'besetzt': T.besetztePlaetze(),
|
||||||
|
'frei': T.freiePlaetze(),
|
||||||
|
'wert': SV.TischWertGet( T ),
|
||||||
|
'personen': Personen,
|
||||||
|
} )
|
||||||
|
TischListe.sort( key=lambda t: t['id'] )
|
||||||
|
|
||||||
|
GruppenListe = []
|
||||||
|
for G in SV.Gruppen:
|
||||||
|
GruppenListe.append( {
|
||||||
|
'id': G.Id,
|
||||||
|
'name': GruppenNamen.get( G.Id, 'Gruppe %s' % G.Id ),
|
||||||
|
'anzahl': G.Anzahl(),
|
||||||
|
'teilungen': SV.GruppenTeilungGet( G ),
|
||||||
|
'wert': SV.GruppenWertGet( G ),
|
||||||
|
} )
|
||||||
|
GruppenListe.sort( key=lambda g: g['id'] )
|
||||||
|
|
||||||
|
return {
|
||||||
|
'wertigkeit': SV.value,
|
||||||
|
'variante': S['varianten'],
|
||||||
|
'tische': TischListe,
|
||||||
|
'gruppen': GruppenListe,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# --------------------------------------------------------------- Endpunkte
|
||||||
|
@app.post( '/sitzung', status_code=201 )
|
||||||
|
def SitzungAnlegen():
|
||||||
|
"""legt eine neue Arbeits-Session an (TTL 24h, nur im Speicher)"""
|
||||||
|
_SessionsAufraeumen()
|
||||||
|
SitzungsId = uuid.uuid4().hex
|
||||||
|
with SessionsLock:
|
||||||
|
Sessions[SitzungsId] = {
|
||||||
|
'erzeugt': time.time(),
|
||||||
|
'tische': None,
|
||||||
|
'personen': None,
|
||||||
|
'ergebnis': None,
|
||||||
|
'varianten': 0,
|
||||||
|
}
|
||||||
|
return { 'id': SitzungsId, 'ttlStunden': SESSION_TTL_SEKUNDEN // 3600 }
|
||||||
|
|
||||||
|
|
||||||
|
@app.get( '/sitzung/{SitzungsId}' )
|
||||||
|
def SitzungStatus(SitzungsId: str):
|
||||||
|
"""Status: was ist schon da, was fehlt noch"""
|
||||||
|
S = _GibSession( SitzungsId )
|
||||||
|
return {
|
||||||
|
'id': SitzungsId,
|
||||||
|
'tische': len( S['tische'] ) if S['tische'] else 0,
|
||||||
|
'personen': S['personen']['nLeute'] if S['personen'] else 0,
|
||||||
|
'vips': S['personen']['nVips'] if S['personen'] else 0,
|
||||||
|
'berechnet': S['ergebnis'] is not None,
|
||||||
|
'varianten': S['varianten'],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@app.post( '/sitzung/{SitzungsId}/tische' )
|
||||||
|
def TischeSetzen(SitzungsId: str, Layout: TischLayout):
|
||||||
|
"""Tisch-Layout uebernehmen (JSON-Ersatz fuer tische.ini);
|
||||||
|
Nachbarschaft wird aus raeumlicher Naehe abgeleitet"""
|
||||||
|
S = _GibSession( SitzungsId )
|
||||||
|
|
||||||
|
# Ids vergeben/pruefen
|
||||||
|
NaechsteId = 1
|
||||||
|
Vergeben = set()
|
||||||
|
for T in Layout.tische:
|
||||||
|
if T.id is None:
|
||||||
|
while NaechsteId in Vergeben:
|
||||||
|
NaechsteId = NaechsteId + 1
|
||||||
|
T.id = NaechsteId
|
||||||
|
if T.id in Vergeben:
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='Tisch-Id %d ist doppelt' % T.id )
|
||||||
|
Vergeben.add( T.id )
|
||||||
|
|
||||||
|
Nachbarn = _NachbarnAbleiten( Layout.tische, Layout.nachbarRadius )
|
||||||
|
|
||||||
|
S['tische'] = [ {
|
||||||
|
'id': T.id,
|
||||||
|
'nummer': T.nummer if T.nummer is not None else T.id,
|
||||||
|
'hof': T.hof,
|
||||||
|
'plaetze': T.plaetze,
|
||||||
|
'x': T.x,
|
||||||
|
'y': T.y,
|
||||||
|
'nachbarn': Nachbarn[T.id],
|
||||||
|
} for T in Layout.tische ]
|
||||||
|
S['ergebnis'] = None
|
||||||
|
S['varianten'] = 0
|
||||||
|
|
||||||
|
return {
|
||||||
|
'tische': S['tische'],
|
||||||
|
'plaetzeGesamt': sum( T['plaetze'] for T in S['tische'] ),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@app.post( '/sitzung/{SitzungsId}/tische-datei' )
|
||||||
|
def TischDateiHochladen(SitzungsId: str, datei: UploadFile = File(...)):
|
||||||
|
"""bestehende tische.ini hochladen (gleiches Format wie fuer die CLI,
|
||||||
|
z.B. work/hochzeit/tische.ini); die Nachbarliste aus der Datei
|
||||||
|
wird unveraendert uebernommen, nichts wird neu abgeleitet"""
|
||||||
|
S = _GibSession( SitzungsId )
|
||||||
|
Rohdaten = datei.file.read()
|
||||||
|
try:
|
||||||
|
Text = Rohdaten.decode( 'utf-8-sig' )
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
Text = Rohdaten.decode( 'cp1252' )
|
||||||
|
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
try:
|
||||||
|
config.read_string( Text )
|
||||||
|
except configparser.Error as Fehler:
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='tische.ini nicht lesbar: %s' % Fehler )
|
||||||
|
if not config.sections():
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='tische.ini enthaelt keine Tisch-Sektionen ([1], [2], ...)' )
|
||||||
|
|
||||||
|
# gleiche Feldsemantik wie Tische.laden() in Strukturdaten.py,
|
||||||
|
# aber mit ast.literal_eval statt eval (Upload = fremde Eingabe)
|
||||||
|
TischListe = []
|
||||||
|
for Sektion in config.sections():
|
||||||
|
try:
|
||||||
|
Tid = int( Sektion )
|
||||||
|
Plaetze = int( ast.literal_eval( config.get( Sektion, 'Plaetze' ) ) )
|
||||||
|
Koords = ast.literal_eval( config.get( Sektion, 'Koordinaten' ) )
|
||||||
|
Nachbarn = list( ast.literal_eval(
|
||||||
|
config.get( Sektion, 'Nachbarliste' ) ) )
|
||||||
|
Nummer = int( ast.literal_eval(
|
||||||
|
config.get( Sektion, 'Nummer', fallback=Sektion ) ) )
|
||||||
|
Hof = int( ast.literal_eval(
|
||||||
|
config.get( Sektion, 'Hof', fallback='1' ) ) )
|
||||||
|
except (ValueError, SyntaxError, configparser.Error) as Fehler:
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='tische.ini, Sektion [%s]: %s' % (Sektion, Fehler) )
|
||||||
|
if Plaetze < 1:
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='tische.ini, Sektion [%s]: Plaetze muss >= 1 sein'
|
||||||
|
% Sektion )
|
||||||
|
TischListe.append( {
|
||||||
|
'id': Tid,
|
||||||
|
'nummer': Nummer,
|
||||||
|
'hof': Hof,
|
||||||
|
'plaetze': Plaetze,
|
||||||
|
'x': float( Koords[0] ),
|
||||||
|
'y': float( Koords[1] ),
|
||||||
|
'nachbarn': sorted( int(N) for N in Nachbarn ),
|
||||||
|
} )
|
||||||
|
|
||||||
|
Ids = [ T['id'] for T in TischListe ]
|
||||||
|
if len( Ids ) != len( set( Ids ) ):
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='tische.ini enthaelt doppelte Tisch-Ids' )
|
||||||
|
|
||||||
|
S['tische'] = TischListe
|
||||||
|
S['ergebnis'] = None
|
||||||
|
S['varianten'] = 0
|
||||||
|
return {
|
||||||
|
'tische': S['tische'],
|
||||||
|
'plaetzeGesamt': sum( T['plaetze'] for T in S['tische'] ),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@app.post( '/sitzung/{SitzungsId}/personen' )
|
||||||
|
def PersonenHochladen(SitzungsId: str, datei: UploadFile = File(...)):
|
||||||
|
"""Gaesteliste als CSV hochladen (Ersatz fuer bestellung.xml);
|
||||||
|
Format siehe libs/CSVConfig.py"""
|
||||||
|
S = _GibSession( SitzungsId )
|
||||||
|
Rohdaten = datei.file.read()
|
||||||
|
try:
|
||||||
|
Text = Rohdaten.decode( 'utf-8-sig' )
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
Text = Rohdaten.decode( 'cp1252' ) # Excel/Windows-Fallback
|
||||||
|
|
||||||
|
try:
|
||||||
|
[ PN, GN, VIPGruppe, VipHash, GruppenNamen ] = \
|
||||||
|
CSVConfig().HandleGaesteliste( Text )
|
||||||
|
except ValueError as Fehler:
|
||||||
|
raise HTTPException( status_code=400, detail=str(Fehler) )
|
||||||
|
|
||||||
|
S['personen'] = {
|
||||||
|
'PN': PN,
|
||||||
|
'GN': GN,
|
||||||
|
'VIPGruppe': VIPGruppe,
|
||||||
|
'VipHash': VipHash,
|
||||||
|
'nLeute': GN.NLeute,
|
||||||
|
'nVips': VIPGruppe.Anzahl(),
|
||||||
|
}
|
||||||
|
S['gruppenNamen'] = GruppenNamen
|
||||||
|
S['ergebnis'] = None
|
||||||
|
S['varianten'] = 0
|
||||||
|
|
||||||
|
return {
|
||||||
|
'personen': GN.NLeute,
|
||||||
|
'vips': VIPGruppe.Anzahl(),
|
||||||
|
'gruppen': [ {
|
||||||
|
'id': G.Id,
|
||||||
|
'name': GruppenNamen.get( G.Id, 'Gruppe %s' % G.Id ),
|
||||||
|
'anzahl': G.Anzahl(),
|
||||||
|
} for G in GN ],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@app.post( '/sitzung/{SitzungsId}/berechnen' )
|
||||||
|
def Berechnen(SitzungsId: str):
|
||||||
|
"""startet die GA-Optimierung; jeder Aufruf erzeugt eine neue Variante"""
|
||||||
|
S = _GibSession( SitzungsId )
|
||||||
|
if S['tische'] is None:
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='Erst das Tisch-Layout setzen (POST .../tische)' )
|
||||||
|
if S['personen'] is None:
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='Erst die Gaesteliste hochladen (POST .../personen)' )
|
||||||
|
|
||||||
|
TE = _TischeBauen( S )
|
||||||
|
P = S['personen']
|
||||||
|
|
||||||
|
# Vorab-Pruefungen mit klaren Fehlermeldungen (der Kern wirft sonst
|
||||||
|
# nur IndexError/AttributeError tief aus der Platzierung heraus)
|
||||||
|
GesamtLeute = P['nLeute'] + P['nVips']
|
||||||
|
if GesamtLeute > TE.NStuehle:
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='Zu wenig Stuehle: %d Personen, aber nur %d Plaetze'
|
||||||
|
% (GesamtLeute, TE.NStuehle) )
|
||||||
|
VIPsProTisch = {}
|
||||||
|
for Pid, Tid in P['VipHash'].items():
|
||||||
|
VIPsProTisch[Tid] = VIPsProTisch.get( Tid, 0 ) + 1
|
||||||
|
for Tid, AnzahlVIPs in VIPsProTisch.items():
|
||||||
|
T = TE.vonId( Tid )
|
||||||
|
if T is None:
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='VIP-Tisch %d existiert nicht im Layout' % Tid )
|
||||||
|
if AnzahlVIPs > T.Plaetze:
|
||||||
|
raise HTTPException( status_code=400,
|
||||||
|
detail='Tisch %d hat %d Plaetze, aber %d VIPs sind '
|
||||||
|
'dort fest gesetzt' % (Tid, T.Plaetze, AnzahlVIPs) )
|
||||||
|
|
||||||
|
try:
|
||||||
|
GAFarm = Farm( GAZyklus, Sitzplatzverteilung,
|
||||||
|
Tische=TE, Gruppen=P['GN'], Strafen=Strafen,
|
||||||
|
VIPListe=P['VipHash'], VIPs=P['VIPGruppe'] )
|
||||||
|
except IndexError as Fehler:
|
||||||
|
raise HTTPException( status_code=400, detail=str(Fehler) )
|
||||||
|
|
||||||
|
S['ergebnis'] = GAFarm.Bester()
|
||||||
|
S['varianten'] = S['varianten'] + 1
|
||||||
|
return _ErgebnisJSON( S )
|
||||||
|
|
||||||
|
|
||||||
|
@app.get( '/sitzung/{SitzungsId}/ergebnis' )
|
||||||
|
def Ergebnis(SitzungsId: str):
|
||||||
|
"""das beste bisher berechnete Ergebnis als JSON"""
|
||||||
|
S = _GibSession( SitzungsId )
|
||||||
|
if S['ergebnis'] is None:
|
||||||
|
raise HTTPException( status_code=404,
|
||||||
|
detail='Noch nichts berechnet (POST .../berechnen)' )
|
||||||
|
return _ErgebnisJSON( S )
|
||||||
|
|
||||||
|
|
||||||
|
@app.get( '/sitzung/{SitzungsId}/ergebnis.svg' )
|
||||||
|
def ErgebnisSVG(SitzungsId: str):
|
||||||
|
"""das beste bisher berechnete Ergebnis als SVG (alsSVG aus dem Kern)"""
|
||||||
|
S = _GibSession( SitzungsId )
|
||||||
|
if S['ergebnis'] is None:
|
||||||
|
raise HTTPException( status_code=404,
|
||||||
|
detail='Noch nichts berechnet (POST .../berechnen)' )
|
||||||
|
|
||||||
|
# alsSVG schreibt in eine Datei -> Tempdatei schreiben, lesen, loeschen
|
||||||
|
Handle, TempPfad = tempfile.mkstemp( suffix='.svg' )
|
||||||
|
os.close( Handle )
|
||||||
|
try:
|
||||||
|
S['ergebnis'].alsSVG( TempPfad )
|
||||||
|
fsock = open( TempPfad, 'r' )
|
||||||
|
SVG = fsock.read()
|
||||||
|
fsock.close()
|
||||||
|
finally:
|
||||||
|
os.remove( TempPfad )
|
||||||
|
return Response( content=SVG, media_type='image/svg+xml' )
|
||||||
|
|
||||||
|
|
||||||
|
# statisches Test-Frontend unter / (muss nach den API-Routen gemountet sein)
|
||||||
|
app.mount( '/', StaticFiles(
|
||||||
|
directory=os.path.join( os.path.dirname( os.path.abspath( __file__ ) ),
|
||||||
|
'static' ),
|
||||||
|
html=True ), name='static' )
|
||||||
@@ -0,0 +1,329 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>Sitz & Platz — Testoberfläche (M1)</title>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--akzent: #2f6f4f;
|
||||||
|
--rand: #d9d4c8;
|
||||||
|
--hintergrund: #faf8f3;
|
||||||
|
}
|
||||||
|
* { box-sizing: border-box; }
|
||||||
|
body {
|
||||||
|
font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
|
||||||
|
margin: 0; background: var(--hintergrund); color: #2a2a24;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
background: var(--akzent); color: white;
|
||||||
|
padding: 1rem 1.5rem;
|
||||||
|
}
|
||||||
|
header h1 { margin: 0; font-size: 1.3rem; }
|
||||||
|
header p { margin: .2rem 0 0; opacity: .85; font-size: .85rem; }
|
||||||
|
main { max-width: 60rem; margin: 0 auto; padding: 1rem 1.5rem 4rem; }
|
||||||
|
section {
|
||||||
|
background: white; border: 1px solid var(--rand);
|
||||||
|
border-radius: 8px; padding: 1rem 1.25rem; margin-top: 1.25rem;
|
||||||
|
}
|
||||||
|
h2 { font-size: 1.05rem; margin: 0 0 .75rem; color: var(--akzent); }
|
||||||
|
table { border-collapse: collapse; width: 100%; font-size: .9rem; }
|
||||||
|
th, td { border: 1px solid var(--rand); padding: .3rem .5rem; text-align: left; }
|
||||||
|
th { background: #f1eee6; }
|
||||||
|
input[type=number] { width: 4.5rem; }
|
||||||
|
textarea {
|
||||||
|
width: 100%; min-height: 11rem; font-family: ui-monospace, monospace;
|
||||||
|
font-size: .85rem; border: 1px solid var(--rand); border-radius: 4px;
|
||||||
|
padding: .5rem;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
background: var(--akzent); color: white; border: 0;
|
||||||
|
border-radius: 4px; padding: .45rem .9rem; font-size: .9rem;
|
||||||
|
cursor: pointer; margin: .25rem .35rem .25rem 0;
|
||||||
|
}
|
||||||
|
button.sekundaer { background: #8b8577; }
|
||||||
|
button:disabled { background: #b9b4a6; cursor: not-allowed; }
|
||||||
|
.status { font-size: .85rem; margin-top: .5rem; min-height: 1.2rem; }
|
||||||
|
.status.ok { color: var(--akzent); }
|
||||||
|
.status.fehler { color: #a03030; white-space: pre-wrap; }
|
||||||
|
#svgBild { max-width: 100%; border: 1px solid var(--rand); border-radius: 4px;
|
||||||
|
margin-top: .75rem; background: white; }
|
||||||
|
.kennzahl { display: inline-block; background: #f1eee6; border-radius: 4px;
|
||||||
|
padding: .3rem .7rem; margin: .15rem .3rem .15rem 0; font-size: .9rem; }
|
||||||
|
.kennzahl b { color: var(--akzent); }
|
||||||
|
.hinweis { font-size: .8rem; color: #6b6557; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<h1>Sitz & Platz <small style="font-weight:normal">— Testoberfläche (Meilenstein 1)</small></h1>
|
||||||
|
<p>Session-basiert, nichts wird dauerhaft gespeichert (TTL 24 h). Sitzung: <code id="sitzungsId">wird angelegt…</code></p>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>1. Tische definieren</h2>
|
||||||
|
<p class="hinweis">Koordinaten sind Rasterpositionen (wie in tische.ini). Tische, die
|
||||||
|
näher als der Nachbar-Radius (1,5 Rastereinheiten) beieinander liegen, gelten
|
||||||
|
automatisch als Nachbarn — Gruppen, die geteilt werden müssen, kommen bevorzugt
|
||||||
|
an Nachbartische.</p>
|
||||||
|
<table id="tischTabelle">
|
||||||
|
<thead>
|
||||||
|
<tr><th>Tisch-Nr.</th><th>Plätze</th><th>X</th><th>Y</th><th></th></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
|
<button type="button" onclick="tischZeile()">+ Tisch hinzufügen</button>
|
||||||
|
<button type="button" class="sekundaer" onclick="presetReihe()">Preset: 4er-Reihe</button>
|
||||||
|
<button type="button" class="sekundaer" onclick="presetRaster()">Preset: 3×3-Raster</button>
|
||||||
|
<br>
|
||||||
|
<label class="hinweis">Oder eine bestehende <code>tische.ini</code> laden
|
||||||
|
(z. B. aus <code>work/hochzeit</code>):</label>
|
||||||
|
<input type="file" id="tischDatei" accept=".ini,text/plain">
|
||||||
|
<button type="button" class="sekundaer" onclick="tischDateiLaden()">tische.ini laden</button>
|
||||||
|
<br>
|
||||||
|
<button type="button" onclick="tischeSpeichern()">Tische speichern</button>
|
||||||
|
<div class="status" id="tischStatus"></div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>2. Gästeliste (CSV)</h2>
|
||||||
|
<p class="hinweis">Spalten: <code>Vorname;Nachname;Titel;Gruppe;Tisch;Anzahl</code> —
|
||||||
|
<code>Gruppe</code> hält Personen zusammen (leer = Einzelgast),
|
||||||
|
<code>Tisch</code> setzt VIPs fest (z. B. Brautpaar an Tisch 1),
|
||||||
|
<code>Anzahl</code> expandiert eine Zeile in mehrere Buchungen
|
||||||
|
(anonyme Sammelbuchung). Datei hochladen <em>oder</em> direkt hier bearbeiten:</p>
|
||||||
|
<textarea id="csvText"></textarea>
|
||||||
|
<br>
|
||||||
|
<input type="file" id="csvDatei" accept=".csv,text/csv">
|
||||||
|
<br>
|
||||||
|
<button type="button" onclick="gaesteHochladen()">Gästeliste übernehmen</button>
|
||||||
|
<div class="status" id="gaesteStatus"></div>
|
||||||
|
<div id="gruppenUebersicht"></div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>3. Sitzordnung berechnen</h2>
|
||||||
|
<p class="hinweis">Jeder Klick startet den genetischen Algorithmus neu und liefert
|
||||||
|
eine neue Variante — die Wertigkeit (0 = perfekt, negativer = schlechter)
|
||||||
|
macht Varianten vergleichbar.</p>
|
||||||
|
<button type="button" id="berechnenKnopf" onclick="berechnen()" disabled>Sitzordnung berechnen</button>
|
||||||
|
<div class="status" id="rechnenStatus"></div>
|
||||||
|
<div id="kennzahlen"></div>
|
||||||
|
<div id="ergebnisTabellen"></div>
|
||||||
|
<img id="svgBild" alt="" style="display:none">
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
<script>
|
||||||
|
'use strict';
|
||||||
|
let sitzung = null;
|
||||||
|
|
||||||
|
async function api(pfad, optionen) {
|
||||||
|
const antwort = await fetch(pfad, optionen);
|
||||||
|
const daten = await antwort.json().catch(() => null);
|
||||||
|
if (!antwort.ok) {
|
||||||
|
const detail = daten && daten.detail
|
||||||
|
? (typeof daten.detail === 'string' ? daten.detail : JSON.stringify(daten.detail, null, 2))
|
||||||
|
: antwort.statusText;
|
||||||
|
throw new Error(detail);
|
||||||
|
}
|
||||||
|
return daten;
|
||||||
|
}
|
||||||
|
|
||||||
|
function status(id, text, klasse) {
|
||||||
|
const el = document.getElementById(id);
|
||||||
|
el.textContent = text;
|
||||||
|
el.className = 'status ' + (klasse || '');
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------ 1. Tische */
|
||||||
|
function tischZeile(plaetze, x, y, tid) {
|
||||||
|
const tbody = document.querySelector('#tischTabelle tbody');
|
||||||
|
const nr = tid ?? tbody.children.length + 1;
|
||||||
|
const tr = document.createElement('tr');
|
||||||
|
if (tid !== undefined) tr.dataset.tid = tid; // echte Id aus tische.ini behalten
|
||||||
|
tr.innerHTML =
|
||||||
|
'<td class="tischNr">' + nr + '</td>' +
|
||||||
|
'<td><input type="number" min="1" max="100" value="' + (plaetze ?? 8) + '" class="plaetze"></td>' +
|
||||||
|
'<td><input type="number" step="1" value="' + (x ?? nr) + '" class="x"></td>' +
|
||||||
|
'<td><input type="number" step="1" value="' + (y ?? 1) + '" class="y"></td>' +
|
||||||
|
'<td><button type="button" class="sekundaer" onclick="this.closest(\'tr\').remove(); nummerieren()">✕</button></td>';
|
||||||
|
tbody.appendChild(tr);
|
||||||
|
}
|
||||||
|
function nummerieren() {
|
||||||
|
document.querySelectorAll('#tischTabelle tbody tr').forEach((tr, i) => {
|
||||||
|
if (tr.dataset.tid === undefined)
|
||||||
|
tr.querySelector('.tischNr').textContent = i + 1;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function tischeLeeren() {
|
||||||
|
document.querySelector('#tischTabelle tbody').innerHTML = '';
|
||||||
|
}
|
||||||
|
function presetReihe() {
|
||||||
|
tischeLeeren();
|
||||||
|
for (let i = 1; i <= 4; i++) tischZeile(5, i, 1);
|
||||||
|
}
|
||||||
|
function presetRaster() {
|
||||||
|
tischeLeeren();
|
||||||
|
for (let y = 1; y <= 3; y++)
|
||||||
|
for (let x = 1; x <= 3; x++)
|
||||||
|
tischZeile(8, x, y);
|
||||||
|
}
|
||||||
|
async function tischeSpeichern() {
|
||||||
|
const zeilen = [...document.querySelectorAll('#tischTabelle tbody tr')];
|
||||||
|
if (zeilen.length === 0) { status('tischStatus', 'Mindestens ein Tisch nötig.', 'fehler'); return; }
|
||||||
|
// Zeilen aus einer geladenen tische.ini behalten ihre echte Id
|
||||||
|
// (wichtig fuer VIP-Bindungen wie "Tisch 16"); neue Zeilen bekommen
|
||||||
|
// die naechste freie Id
|
||||||
|
const vergeben = new Set(zeilen.map(tr => parseInt(tr.dataset.tid, 10)).filter(n => !isNaN(n)));
|
||||||
|
let naechste = 1;
|
||||||
|
const freieId = () => { while (vergeben.has(naechste)) naechste++; vergeben.add(naechste); return naechste; };
|
||||||
|
const tische = zeilen.map(tr => ({
|
||||||
|
id: tr.dataset.tid !== undefined ? parseInt(tr.dataset.tid, 10) : freieId(),
|
||||||
|
plaetze: parseInt(tr.querySelector('.plaetze').value, 10),
|
||||||
|
x: parseFloat(tr.querySelector('.x').value),
|
||||||
|
y: parseFloat(tr.querySelector('.y').value),
|
||||||
|
}));
|
||||||
|
try {
|
||||||
|
const r = await api('/sitzung/' + sitzung + '/tische', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify({ tische }),
|
||||||
|
});
|
||||||
|
const nachbarn = r.tische.map(t => 'Tisch ' + t.id + ' ↔ [' + t.nachbarn.join(', ') + ']').join(' ');
|
||||||
|
status('tischStatus', '✓ ' + r.tische.length + ' Tische, ' + r.plaetzeGesamt +
|
||||||
|
' Plätze gesamt. Abgeleitete Nachbarn: ' + nachbarn, 'ok');
|
||||||
|
berechnenFreigeben();
|
||||||
|
} catch (e) { status('tischStatus', 'Fehler: ' + e.message, 'fehler'); }
|
||||||
|
}
|
||||||
|
|
||||||
|
async function tischDateiLaden() {
|
||||||
|
const eingabe = document.getElementById('tischDatei');
|
||||||
|
if (eingabe.files.length === 0) {
|
||||||
|
status('tischStatus', 'Bitte zuerst eine tische.ini auswählen.', 'fehler');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const form = new FormData();
|
||||||
|
form.append('datei', eingabe.files[0]);
|
||||||
|
try {
|
||||||
|
const r = await api('/sitzung/' + sitzung + '/tische-datei', { method: 'POST', body: form });
|
||||||
|
tischeLeeren();
|
||||||
|
for (const t of r.tische) tischZeile(t.plaetze, t.x, t.y, t.id);
|
||||||
|
status('tischStatus', '✓ ' + r.tische.length + ' Tische aus Datei übernommen (' +
|
||||||
|
r.plaetzeGesamt + ' Plätze) — Layout ist bereits gespeichert, ' +
|
||||||
|
'„Tische speichern“ ist nur nach Änderungen nötig.', 'ok');
|
||||||
|
berechnenFreigeben();
|
||||||
|
} catch (e) { status('tischStatus', 'Fehler: ' + e.message, 'fehler'); }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------ 2. Gäste */
|
||||||
|
const beispielCSV = `Vorname;Nachname;Titel;Gruppe;Tisch;Anzahl
|
||||||
|
Britta;Beispiel;;Brautpaar;1;
|
||||||
|
Bernd;Beispiel;Dr.;Brautpaar;1;
|
||||||
|
Anna;Huber;;Familie Huber;;
|
||||||
|
Berta;Huber;;Familie Huber;;
|
||||||
|
Carl;Huber;;Familie Huber;;
|
||||||
|
Doris;Huber;;Familie Huber;;
|
||||||
|
Emil;Meier;;Familie Meier;;
|
||||||
|
Frieda;Meier;;Familie Meier;;
|
||||||
|
Gustav;Meier;;Familie Meier;;
|
||||||
|
Hanna;Schmidt;;Studienfreunde;;
|
||||||
|
Igor;Petrov;;Studienfreunde;;
|
||||||
|
Julia;Weber;;Studienfreunde;;
|
||||||
|
Gast;Kollegium;;Kollegen;;4
|
||||||
|
Karl;Einzelgast;;;;
|
||||||
|
`;
|
||||||
|
|
||||||
|
async function gaesteHochladen() {
|
||||||
|
const dateiInput = document.getElementById('csvDatei');
|
||||||
|
let blob;
|
||||||
|
if (dateiInput.files.length > 0) {
|
||||||
|
blob = dateiInput.files[0];
|
||||||
|
} else {
|
||||||
|
blob = new Blob([document.getElementById('csvText').value], { type: 'text/csv' });
|
||||||
|
}
|
||||||
|
const form = new FormData();
|
||||||
|
form.append('datei', blob, 'gaeste.csv');
|
||||||
|
try {
|
||||||
|
const r = await api('/sitzung/' + sitzung + '/personen', { method: 'POST', body: form });
|
||||||
|
status('gaesteStatus', '✓ ' + r.personen + ' Personen in ' + r.gruppen.length +
|
||||||
|
' Gruppen, dazu ' + r.vips + ' VIPs mit festem Tisch.', 'ok');
|
||||||
|
const html = '<table><thead><tr><th>Gruppe</th><th>Personen</th></tr></thead><tbody>' +
|
||||||
|
r.gruppen.map(g => '<tr><td>' + g.name + '</td><td>' + g.anzahl + '</td></tr>').join('') +
|
||||||
|
'</tbody></table>';
|
||||||
|
document.getElementById('gruppenUebersicht').innerHTML = html;
|
||||||
|
berechnenFreigeben();
|
||||||
|
} catch (e) { status('gaesteStatus', 'Fehler: ' + e.message, 'fehler'); }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------ 3. Berechnen */
|
||||||
|
async function berechnenFreigeben() {
|
||||||
|
try {
|
||||||
|
const s = await api('/sitzung/' + sitzung);
|
||||||
|
document.getElementById('berechnenKnopf').disabled = !(s.tische > 0 && s.personen > 0);
|
||||||
|
} catch (e) { /* Session ggf. abgelaufen — beim Berechnen gemeldet */ }
|
||||||
|
}
|
||||||
|
|
||||||
|
async function berechnen() {
|
||||||
|
const knopf = document.getElementById('berechnenKnopf');
|
||||||
|
knopf.disabled = true;
|
||||||
|
status('rechnenStatus', 'Der genetische Algorithmus läuft…');
|
||||||
|
try {
|
||||||
|
const r = await api('/sitzung/' + sitzung + '/berechnen', { method: 'POST' });
|
||||||
|
status('rechnenStatus', '✓ Variante ' + r.variante + ' berechnet.', 'ok');
|
||||||
|
knopf.textContent = 'Neue Variante berechnen';
|
||||||
|
zeigeErgebnis(r);
|
||||||
|
const svg = await fetch('/sitzung/' + sitzung + '/ergebnis.svg');
|
||||||
|
const svgText = await svg.text();
|
||||||
|
const bild = document.getElementById('svgBild');
|
||||||
|
bild.src = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgText);
|
||||||
|
bild.style.display = 'block';
|
||||||
|
} catch (e) {
|
||||||
|
status('rechnenStatus', 'Fehler: ' + e.message, 'fehler');
|
||||||
|
} finally {
|
||||||
|
knopf.disabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function zeigeErgebnis(r) {
|
||||||
|
const getrennte = r.gruppen.filter(g => g.teilungen > 0).length;
|
||||||
|
document.getElementById('kennzahlen').innerHTML =
|
||||||
|
'<span class="kennzahl">Wertigkeit: <b>' + r.wertigkeit + '</b></span>' +
|
||||||
|
'<span class="kennzahl">Variante: <b>' + r.variante + '</b></span>' +
|
||||||
|
'<span class="kennzahl">getrennte Gruppen: <b>' + getrennte + '</b></span>';
|
||||||
|
|
||||||
|
let html = '<table><thead><tr><th>Tisch</th><th>Belegung</th><th>Gäste (Gruppe)</th></tr></thead><tbody>';
|
||||||
|
for (const t of r.tische) {
|
||||||
|
const gaeste = t.personen.map(p =>
|
||||||
|
((p.titel ? p.titel + ' ' : '') + p.vorname + ' ' + p.nachname +
|
||||||
|
' <span class="hinweis">(' + p.gruppe + ')</span>')).join(', ');
|
||||||
|
html += '<tr><td>Tisch ' + t.nummer + '</td><td>' + t.besetzt + '/' + t.plaetze +
|
||||||
|
'</td><td>' + gaeste + '</td></tr>';
|
||||||
|
}
|
||||||
|
html += '</tbody></table>';
|
||||||
|
|
||||||
|
html += '<h2 style="margin-top:1rem">Gruppen</h2>' +
|
||||||
|
'<table><thead><tr><th>Gruppe</th><th>Personen</th><th>Teilungen</th><th>Strafpunkte</th></tr></thead><tbody>' +
|
||||||
|
r.gruppen.map(g => '<tr><td>' + g.name + '</td><td>' + g.anzahl + '</td><td>' +
|
||||||
|
g.teilungen + '</td><td>' + g.wert + '</td></tr>').join('') +
|
||||||
|
'</tbody></table>';
|
||||||
|
document.getElementById('ergebnisTabellen').innerHTML = html;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------ Start */
|
||||||
|
window.addEventListener('DOMContentLoaded', async () => {
|
||||||
|
document.getElementById('csvText').value = beispielCSV;
|
||||||
|
presetReihe();
|
||||||
|
try {
|
||||||
|
const r = await api('/sitzung', { method: 'POST' });
|
||||||
|
sitzung = r.id;
|
||||||
|
document.getElementById('sitzungsId').textContent = sitzung;
|
||||||
|
} catch (e) {
|
||||||
|
document.getElementById('sitzungsId').textContent = 'Fehler: ' + e.message;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Aksoy, Rainer, = Hof 1, Tisch 13, Nummer 7
|
||||||
|
Aksoy, Renate, = Hof 1, Tisch 13, Nummer 2
|
||||||
|
Aydin, Horst, = Hof 1, Tisch 14, Nummer 6
|
||||||
|
Aydin, Ursula, = Hof 1, Tisch 14, Nummer 8
|
||||||
|
Barth, Hannelore, = Hof 1, Tisch 9, Nummer 7
|
||||||
|
Berger, Sergej, = Hof 1, Tisch 2, Nummer 5
|
||||||
|
Brandt, Andreas, = Hof 1, Tisch 15, Nummer 2
|
||||||
|
Brandt, Anja, = Hof 1, Tisch 15, Nummer 3
|
||||||
|
Brandt, Anton, = Hof 1, Tisch 16, Nummer 14
|
||||||
|
Brandt, Ben, = Hof 1, Tisch 17, Nummer 5
|
||||||
|
Brandt, Daniel, = Hof 1, Tisch 11, Nummer 7
|
||||||
|
Brandt, Felix, = Hof 1, Tisch 16, Nummer 13
|
||||||
|
Brandt, Frieda, = Hof 1, Tisch 16, Nummer 8
|
||||||
|
Brandt, Greta, = Hof 1, Tisch 16, Nummer 3
|
||||||
|
Brandt, Helga, = Hof 1, Tisch 1, Nummer 2
|
||||||
|
Brandt, Julia, = Hof 1, Tisch 1, Nummer 9
|
||||||
|
Brandt, Kathrin, = Hof 1, Tisch 11, Nummer 4
|
||||||
|
Brandt, Lena, = Hof 1, Tisch 15, Nummer 6
|
||||||
|
Brandt, Milan, = Hof 1, Tisch 15, Nummer 5
|
||||||
|
Brandt, Paul, = Hof 1, Tisch 17, Nummer 6
|
||||||
|
Brandt, Sofia, = Hof 1, Tisch 15, Nummer 8
|
||||||
|
Brandt, Theo, = Hof 1, Tisch 15, Nummer 4
|
||||||
|
Brandt, Werner, = Hof 1, Tisch 1, Nummer 6
|
||||||
|
Busch, Stefanie, = Hof 1, Tisch 2, Nummer 3
|
||||||
|
Demir, Elif, = Hof 1, Tisch 10, Nummer 2
|
||||||
|
Demir, Hannelore, = Hof 1, Tisch 14, Nummer 5
|
||||||
|
Demir, Ingrid, = Hof 1, Tisch 14, Nummer 2
|
||||||
|
Demir, Monika, = Hof 1, Tisch 14, Nummer 3
|
||||||
|
Dietrich, Jennifer, = Hof 1, Tisch 2, Nummer 6
|
||||||
|
Dietrich, Nicole, = Hof 1, Tisch 12, Nummer 2
|
||||||
|
Erdem, Erika, = Hof 1, Tisch 15, Nummer 9
|
||||||
|
Erdem, Gerhard, = Hof 1, Tisch 9, Nummer 2
|
||||||
|
Erdem, Rainer, = Hof 1, Tisch 9, Nummer 3
|
||||||
|
Esposito, Christian, = Hof 1, Tisch 12, Nummer 8
|
||||||
|
Esposito, Gisela, = Hof 1, Tisch 9, Nummer 6
|
||||||
|
Esposito, Julia, = Hof 1, Tisch 8, Nummer 4
|
||||||
|
Fischer, Heinz, = Hof 1, Tisch 14, Nummer 4
|
||||||
|
Fischer, Helga, = Hof 1, Tisch 14, Nummer 7
|
||||||
|
Fischer, Nicole, = Hof 1, Tisch 12, Nummer 4
|
||||||
|
Fischer, Sven, = Hof 1, Tisch 10, Nummer 3
|
||||||
|
Frank, Erika, = Hof 1, Tisch 9, Nummer 8
|
||||||
|
Frank, Nadine, = Hof 1, Tisch 11, Nummer 9
|
||||||
|
Frank, Timo, = Hof 1, Tisch 10, Nummer 4
|
||||||
|
Frank, Tobias, = Hof 1, Tisch 1, Nummer 11
|
||||||
|
Franke, Brigitte, = Hof 1, Tisch 9, Nummer 9
|
||||||
|
Hansen, Olga, = Hof 1, Tisch 11, Nummer 5
|
||||||
|
Hansen, Wolfgang, = Hof 1, Tisch 9, Nummer 5
|
||||||
|
Hoffmann, Lena, = Hof 1, Tisch 12, Nummer 7
|
||||||
|
Horn, Daniel, = Hof 1, Tisch 11, Nummer 3
|
||||||
|
Horn, Svenja, = Hof 1, Tisch 2, Nummer 2
|
||||||
|
Klein, Stefan, = Hof 1, Tisch 10, Nummer 5
|
||||||
|
Koch, Andreas, = Hof 1, Tisch 2, Nummer 7
|
||||||
|
Koch, Giovanna, = Hof 1, Tisch 8, Nummer 2
|
||||||
|
Kovac, Giovanna, = Hof 1, Tisch 8, Nummer 8
|
||||||
|
Kraus, Dennis, = Hof 1, Tisch 4, Nummer 4
|
||||||
|
Kraus, Matteo, = Hof 1, Tisch 16, Nummer 4
|
||||||
|
Kraus, Melanie, = Hof 1, Tisch 4, Nummer 2
|
||||||
|
Kuhn, Leni, = Hof 1, Tisch 16, Nummer 11
|
||||||
|
Kuhn, Sarah, = Hof 1, Tisch 1, Nummer 10
|
||||||
|
Kuhn, Stefan, = Hof 1, Tisch 2, Nummer 9
|
||||||
|
Kuhn, Timo, = Hof 1, Tisch 1, Nummer 7
|
||||||
|
Lange, Milan, = Hof 1, Tisch 11, Nummer 8
|
||||||
|
Meyer, Anton, = Hof 1, Tisch 17, Nummer 7
|
||||||
|
Meyer, Christian, = Hof 1, Tisch 2, Nummer 4
|
||||||
|
Meyer, Ida, = Hof 1, Tisch 17, Nummer 4
|
||||||
|
Meyer, Marco, = Hof 1, Tisch 12, Nummer 9
|
||||||
|
Meyer, Mila, = Hof 1, Tisch 16, Nummer 10
|
||||||
|
Meyer, Sandra, = Hof 1, Tisch 12, Nummer 6
|
||||||
|
Meyer, Wolfgang, = Hof 1, Tisch 9, Nummer 4
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 3
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 5
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 6
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 7
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 8
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 9
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 2
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 3
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 4
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 5
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 6
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 7
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 8
|
||||||
|
Peters, Melanie, = Hof 1, Tisch 8, Nummer 7
|
||||||
|
Peters, Yusuf, = Hof 1, Tisch 8, Nummer 9
|
||||||
|
Polat, Matthias, = Hof 1, Tisch 12, Nummer 3
|
||||||
|
Roth, Stefanie, = Hof 1, Tisch 2, Nummer 8
|
||||||
|
Schmidt, Dennis, = Hof 1, Tisch 8, Nummer 3
|
||||||
|
Schmitt, Markus, = Hof 1, Tisch 11, Nummer 6
|
||||||
|
Schwarz, Elias, = Hof 1, Tisch 16, Nummer 12
|
||||||
|
Schwarz, Guenter, = Hof 1, Tisch 13, Nummer 5
|
||||||
|
Schwarz, Liam, = Hof 1, Tisch 16, Nummer 6
|
||||||
|
Schwarz, Sarah, = Hof 1, Tisch 13, Nummer 9
|
||||||
|
Schwarz, Yusuf, = Hof 1, Tisch 13, Nummer 8
|
||||||
|
Simon, Jennifer, = Hof 1, Tisch 10, Nummer 6
|
||||||
|
Simon, Patrick, = Hof 1, Tisch 8, Nummer 6
|
||||||
|
Simon, Stefanie, = Hof 1, Tisch 10, Nummer 9
|
||||||
|
Sommer, Daniel, = Hof 1, Tisch 1, Nummer 12
|
||||||
|
Sommer, Dennis, = Hof 1, Tisch 13, Nummer 3
|
||||||
|
Sommer, Dennis, = Hof 1, Tisch 3, Nummer 4
|
||||||
|
Sommer, Dieter, = Hof 1, Tisch 1, Nummer 4
|
||||||
|
Sommer, Emil, = Hof 1, Tisch 16, Nummer 2
|
||||||
|
Sommer, Ida, = Hof 1, Tisch 16, Nummer 9
|
||||||
|
Sommer, Jennifer, = Hof 1, Tisch 13, Nummer 6
|
||||||
|
Sommer, Lina, = Hof 1, Tisch 3, Nummer 2
|
||||||
|
Sommer, Max, = Hof 1, Tisch 16, Nummer 7
|
||||||
|
Sommer, Nicole, = Hof 1, Tisch 3, Nummer 3
|
||||||
|
Sommer, Renate, = Hof 1, Tisch 1, Nummer 3
|
||||||
|
Sommer, Theo, = Hof 1, Tisch 16, Nummer 5
|
||||||
|
Stein, Andreas, = Hof 1, Tisch 10, Nummer 8
|
||||||
|
Stein, Werner, = Hof 1, Tisch 13, Nummer 4
|
||||||
|
Tran, Heinz, = Hof 1, Tisch 15, Nummer 7
|
||||||
|
Vogel, Anton, = Hof 1, Tisch 17, Nummer 3
|
||||||
|
Vogel, Max, = Hof 1, Tisch 17, Nummer 2
|
||||||
|
Vogel, Sandra, = Hof 1, Tisch 1, Nummer 8
|
||||||
|
Vogel, Svenja, = Hof 1, Tisch 8, Nummer 5
|
||||||
|
Vogel, Yusuf, = Hof 1, Tisch 1, Nummer 5
|
||||||
|
Wagner, Daniel, = Hof 1, Tisch 10, Nummer 7
|
||||||
|
Wagner, Timo, = Hof 1, Tisch 12, Nummer 5
|
||||||
|
Winkler, Sarah, = Hof 1, Tisch 1, Nummer 13
|
||||||
|
Yilmaz, Olga, = Hof 1, Tisch 11, Nummer 2
|
||||||
|
@@ -0,0 +1,158 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="995.887" height="667.258" viewBox="0 0 995.887 667.258">
|
||||||
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
|
<circle cx="744.415" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="744.415" y="192.979" text-anchor="middle" font-size="10" fill="black">Tisch 6</text>
|
||||||
|
<circle cx="87.1573" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="87.1573" y="357.293" text-anchor="middle" font-size="10" fill="black">Tisch 7</text>
|
||||||
|
<circle cx="251.472" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="251.472" y="192.979" text-anchor="middle" font-size="10" fill="black">Tisch 3</text>
|
||||||
|
<circle cx="251.472" cy="216.979" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="281.344" cy="268.718" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="221.6" cy="268.718" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="908.73" cy="415.786" r="48.4" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="908.73" y="365.386" text-anchor="middle" font-size="10" fill="black">Tisch 17</text>
|
||||||
|
<circle cx="908.73" cy="389.386" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="931.593" cy="402.586" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="931.593" cy="428.986" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="908.73" cy="442.186" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="885.867" cy="428.986" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="885.867" cy="402.586" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="580.101" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="580.101" y="192.979" text-anchor="middle" font-size="10" fill="black">Tisch 5</text>
|
||||||
|
<circle cx="580.101" cy="216.979" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="607.069" cy="229.966" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="613.729" cy="259.147" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="595.067" cy="282.549" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="565.135" cy="282.549" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="546.472" cy="259.147" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="553.133" cy="229.966" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="415.786" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="415.786" y="521.608" text-anchor="middle" font-size="10" fill="black">Tisch 14</text>
|
||||||
|
<circle cx="415.786" cy="545.608" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="442.754" cy="558.595" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="449.415" cy="587.776" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="430.752" cy="611.178" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="400.82" cy="611.178" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="382.158" cy="587.776" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="388.818" cy="558.595" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="87.1573" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="87.1573" y="192.979" text-anchor="middle" font-size="10" fill="black">Tisch 2</text>
|
||||||
|
<circle cx="87.1573" cy="216.979" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="111.548" cy="227.081" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="121.651" cy="251.472" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="111.548" cy="275.862" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="87.1573" cy="285.965" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="62.7669" cy="275.862" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="52.664" cy="251.472" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="62.7669" cy="227.081" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="415.786" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="415.786" y="192.979" text-anchor="middle" font-size="10" fill="black">Tisch 4</text>
|
||||||
|
<circle cx="415.786" cy="216.979" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="440.177" cy="227.081" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="450.28" cy="251.472" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="440.177" cy="275.862" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="415.786" cy="285.965" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="391.396" cy="275.862" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="381.293" cy="251.472" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="391.396" cy="227.081" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="251.472" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="251.472" y="357.293" text-anchor="middle" font-size="10" fill="black">Tisch 8</text>
|
||||||
|
<circle cx="251.472" cy="381.293" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="275.862" cy="391.396" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="285.965" cy="415.786" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="275.862" cy="440.177" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="251.472" cy="450.28" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="227.081" cy="440.177" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="216.979" cy="415.786" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="227.081" cy="391.396" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="415.786" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="415.786" y="357.293" text-anchor="middle" font-size="10" fill="black">Tisch 9</text>
|
||||||
|
<circle cx="415.786" cy="381.293" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="440.177" cy="391.396" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="450.28" cy="415.786" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="440.177" cy="440.177" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="415.786" cy="450.28" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="391.396" cy="440.177" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="381.293" cy="415.786" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="391.396" cy="391.396" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="580.101" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="580.101" y="357.293" text-anchor="middle" font-size="10" fill="black">Tisch 10</text>
|
||||||
|
<circle cx="580.101" cy="381.293" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="604.491" cy="391.396" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="614.594" cy="415.786" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="604.491" cy="440.177" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="580.101" cy="450.28" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="555.711" cy="440.177" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="545.608" cy="415.786" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="555.711" cy="391.396" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="744.415" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="744.415" y="357.293" text-anchor="middle" font-size="10" fill="black">Tisch 11</text>
|
||||||
|
<circle cx="744.415" cy="381.293" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="768.806" cy="391.396" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="778.909" cy="415.786" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="768.806" cy="440.177" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="744.415" cy="450.28" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="720.025" cy="440.177" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="709.922" cy="415.786" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="720.025" cy="391.396" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="87.1573" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="87.1573" y="521.608" text-anchor="middle" font-size="10" fill="black">Tisch 12</text>
|
||||||
|
<circle cx="87.1573" cy="545.608" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="111.548" cy="555.711" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="121.651" cy="580.101" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="111.548" cy="604.491" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="87.1573" cy="614.594" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="62.7669" cy="604.491" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="52.664" cy="580.101" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="62.7669" cy="555.711" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="251.472" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="251.472" y="521.608" text-anchor="middle" font-size="10" fill="black">Tisch 13</text>
|
||||||
|
<circle cx="251.472" cy="545.608" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="275.862" cy="555.711" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="285.965" cy="580.101" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="275.862" cy="604.491" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="251.472" cy="614.594" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="227.081" cy="604.491" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="216.979" cy="580.101" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="227.081" cy="555.711" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="580.101" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="580.101" y="521.608" text-anchor="middle" font-size="10" fill="black">Tisch 15</text>
|
||||||
|
<circle cx="580.101" cy="545.608" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="604.491" cy="555.711" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="614.594" cy="580.101" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="604.491" cy="604.491" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="580.101" cy="614.594" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="555.711" cy="604.491" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="545.608" cy="580.101" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="555.711" cy="555.711" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="415.786" cy="87.1573" r="73.0009" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="415.786" y="12.1564" text-anchor="middle" font-size="10" fill="black">Tisch 1</text>
|
||||||
|
<circle cx="415.786" cy="36.1564" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="441.287" cy="42.9892" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="459.954" cy="61.6568" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="466.787" cy="87.1573" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="459.954" cy="112.658" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="441.287" cy="131.325" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="415.786" cy="138.158" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="390.286" cy="131.325" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="371.618" cy="112.658" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="364.785" cy="87.1573" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="371.618" cy="61.6568" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="390.286" cy="42.9892" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="908.73" cy="251.472" r="77.1573" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="908.73" y="172.315" text-anchor="middle" font-size="10" fill="black">Tisch 16</text>
|
||||||
|
<circle cx="908.73" cy="196.315" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="934.363" cy="202.632" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="954.124" cy="220.139" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="963.485" cy="244.823" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="960.303" cy="271.031" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="945.306" cy="292.758" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="921.93" cy="305.026" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="895.53" cy="305.026" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="872.154" cy="292.758" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="857.157" cy="271.031" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="853.975" cy="244.823" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="863.336" cy="220.139" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="883.097" cy="202.632" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,154 @@
|
|||||||
|
[1]
|
||||||
|
Helga Brandt = Hof 1, Tisch 1, Nummer 1
|
||||||
|
Renate Sommer = Hof 1, Tisch 1, Nummer 2
|
||||||
|
Dieter Sommer = Hof 1, Tisch 1, Nummer 3
|
||||||
|
Yusuf Vogel = Hof 1, Tisch 1, Nummer 4
|
||||||
|
Werner Brandt = Hof 1, Tisch 1, Nummer 5
|
||||||
|
Timo Kuhn = Hof 1, Tisch 1, Nummer 6
|
||||||
|
Sandra Vogel = Hof 1, Tisch 1, Nummer 7
|
||||||
|
Julia Brandt = Hof 1, Tisch 1, Nummer 8
|
||||||
|
Sarah Kuhn = Hof 1, Tisch 1, Nummer 9
|
||||||
|
Tobias Frank = Hof 1, Tisch 1, Nummer 10
|
||||||
|
Daniel Sommer = Hof 1, Tisch 1, Nummer 11
|
||||||
|
Sarah Winkler = Hof 1, Tisch 1, Nummer 12
|
||||||
|
|
||||||
|
[2]
|
||||||
|
Svenja Horn = Hof 1, Tisch 2, Nummer 1
|
||||||
|
Stefanie Busch = Hof 1, Tisch 2, Nummer 2
|
||||||
|
Christian Meyer = Hof 1, Tisch 2, Nummer 3
|
||||||
|
Sergej Berger = Hof 1, Tisch 2, Nummer 4
|
||||||
|
Jennifer Dietrich = Hof 1, Tisch 2, Nummer 5
|
||||||
|
Andreas Koch = Hof 1, Tisch 2, Nummer 6
|
||||||
|
Stefanie Roth = Hof 1, Tisch 2, Nummer 7
|
||||||
|
Stefan Kuhn = Hof 1, Tisch 2, Nummer 8
|
||||||
|
|
||||||
|
[3]
|
||||||
|
Lina Sommer = Hof 1, Tisch 3, Nummer 1
|
||||||
|
Nicole Sommer = Hof 1, Tisch 3, Nummer 2
|
||||||
|
Dennis Sommer = Hof 1, Tisch 3, Nummer 3
|
||||||
|
|
||||||
|
[4]
|
||||||
|
Melanie Kraus = Hof 1, Tisch 4, Nummer 1
|
||||||
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 2
|
||||||
|
Dennis Kraus = Hof 1, Tisch 4, Nummer 3
|
||||||
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 4
|
||||||
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 5
|
||||||
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 6
|
||||||
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 7
|
||||||
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 8
|
||||||
|
|
||||||
|
[5]
|
||||||
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 1
|
||||||
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 2
|
||||||
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 3
|
||||||
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 4
|
||||||
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 5
|
||||||
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 6
|
||||||
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 7
|
||||||
|
|
||||||
|
[6]
|
||||||
|
|
||||||
|
[7]
|
||||||
|
|
||||||
|
[8]
|
||||||
|
Giovanna Koch = Hof 1, Tisch 8, Nummer 1
|
||||||
|
Dennis Schmidt = Hof 1, Tisch 8, Nummer 2
|
||||||
|
Julia Esposito = Hof 1, Tisch 8, Nummer 3
|
||||||
|
Svenja Vogel = Hof 1, Tisch 8, Nummer 4
|
||||||
|
Patrick Simon = Hof 1, Tisch 8, Nummer 5
|
||||||
|
Melanie Peters = Hof 1, Tisch 8, Nummer 6
|
||||||
|
Giovanna Kovac = Hof 1, Tisch 8, Nummer 7
|
||||||
|
Yusuf Peters = Hof 1, Tisch 8, Nummer 8
|
||||||
|
|
||||||
|
[9]
|
||||||
|
Gerhard Erdem = Hof 1, Tisch 9, Nummer 1
|
||||||
|
Rainer Erdem = Hof 1, Tisch 9, Nummer 2
|
||||||
|
Wolfgang Meyer = Hof 1, Tisch 9, Nummer 3
|
||||||
|
Wolfgang Hansen = Hof 1, Tisch 9, Nummer 4
|
||||||
|
Gisela Esposito = Hof 1, Tisch 9, Nummer 5
|
||||||
|
Hannelore Barth = Hof 1, Tisch 9, Nummer 6
|
||||||
|
Erika Frank = Hof 1, Tisch 9, Nummer 7
|
||||||
|
Brigitte Franke = Hof 1, Tisch 9, Nummer 8
|
||||||
|
|
||||||
|
[10]
|
||||||
|
Elif Demir = Hof 1, Tisch 10, Nummer 1
|
||||||
|
Sven Fischer = Hof 1, Tisch 10, Nummer 2
|
||||||
|
Timo Frank = Hof 1, Tisch 10, Nummer 3
|
||||||
|
Stefan Klein = Hof 1, Tisch 10, Nummer 4
|
||||||
|
Jennifer Simon = Hof 1, Tisch 10, Nummer 5
|
||||||
|
Daniel Wagner = Hof 1, Tisch 10, Nummer 6
|
||||||
|
Andreas Stein = Hof 1, Tisch 10, Nummer 7
|
||||||
|
Stefanie Simon = Hof 1, Tisch 10, Nummer 8
|
||||||
|
|
||||||
|
[11]
|
||||||
|
Olga Yilmaz = Hof 1, Tisch 11, Nummer 1
|
||||||
|
Daniel Horn = Hof 1, Tisch 11, Nummer 2
|
||||||
|
Kathrin Brandt = Hof 1, Tisch 11, Nummer 3
|
||||||
|
Olga Hansen = Hof 1, Tisch 11, Nummer 4
|
||||||
|
Markus Schmitt = Hof 1, Tisch 11, Nummer 5
|
||||||
|
Daniel Brandt = Hof 1, Tisch 11, Nummer 6
|
||||||
|
Milan Lange = Hof 1, Tisch 11, Nummer 7
|
||||||
|
Nadine Frank = Hof 1, Tisch 11, Nummer 8
|
||||||
|
|
||||||
|
[12]
|
||||||
|
Nicole Dietrich = Hof 1, Tisch 12, Nummer 1
|
||||||
|
Matthias Polat = Hof 1, Tisch 12, Nummer 2
|
||||||
|
Nicole Fischer = Hof 1, Tisch 12, Nummer 3
|
||||||
|
Timo Wagner = Hof 1, Tisch 12, Nummer 4
|
||||||
|
Sandra Meyer = Hof 1, Tisch 12, Nummer 5
|
||||||
|
Lena Hoffmann = Hof 1, Tisch 12, Nummer 6
|
||||||
|
Christian Esposito = Hof 1, Tisch 12, Nummer 7
|
||||||
|
Marco Meyer = Hof 1, Tisch 12, Nummer 8
|
||||||
|
|
||||||
|
[13]
|
||||||
|
Renate Aksoy = Hof 1, Tisch 13, Nummer 1
|
||||||
|
Dennis Sommer = Hof 1, Tisch 13, Nummer 2
|
||||||
|
Werner Stein = Hof 1, Tisch 13, Nummer 3
|
||||||
|
Guenter Schwarz = Hof 1, Tisch 13, Nummer 4
|
||||||
|
Jennifer Sommer = Hof 1, Tisch 13, Nummer 5
|
||||||
|
Rainer Aksoy = Hof 1, Tisch 13, Nummer 6
|
||||||
|
Yusuf Schwarz = Hof 1, Tisch 13, Nummer 7
|
||||||
|
Sarah Schwarz = Hof 1, Tisch 13, Nummer 8
|
||||||
|
|
||||||
|
[14]
|
||||||
|
Ingrid Demir = Hof 1, Tisch 14, Nummer 1
|
||||||
|
Monika Demir = Hof 1, Tisch 14, Nummer 2
|
||||||
|
Heinz Fischer = Hof 1, Tisch 14, Nummer 3
|
||||||
|
Hannelore Demir = Hof 1, Tisch 14, Nummer 4
|
||||||
|
Horst Aydin = Hof 1, Tisch 14, Nummer 5
|
||||||
|
Helga Fischer = Hof 1, Tisch 14, Nummer 6
|
||||||
|
Ursula Aydin = Hof 1, Tisch 14, Nummer 7
|
||||||
|
|
||||||
|
[15]
|
||||||
|
Andreas Brandt = Hof 1, Tisch 15, Nummer 1
|
||||||
|
Anja Brandt = Hof 1, Tisch 15, Nummer 2
|
||||||
|
Theo Brandt = Hof 1, Tisch 15, Nummer 3
|
||||||
|
Milan Brandt = Hof 1, Tisch 15, Nummer 4
|
||||||
|
Lena Brandt = Hof 1, Tisch 15, Nummer 5
|
||||||
|
Heinz Tran = Hof 1, Tisch 15, Nummer 6
|
||||||
|
Sofia Brandt = Hof 1, Tisch 15, Nummer 7
|
||||||
|
Erika Erdem = Hof 1, Tisch 15, Nummer 8
|
||||||
|
|
||||||
|
[16]
|
||||||
|
Emil Sommer = Hof 1, Tisch 16, Nummer 1
|
||||||
|
Greta Brandt = Hof 1, Tisch 16, Nummer 2
|
||||||
|
Matteo Kraus = Hof 1, Tisch 16, Nummer 3
|
||||||
|
Theo Sommer = Hof 1, Tisch 16, Nummer 4
|
||||||
|
Liam Schwarz = Hof 1, Tisch 16, Nummer 5
|
||||||
|
Max Sommer = Hof 1, Tisch 16, Nummer 6
|
||||||
|
Frieda Brandt = Hof 1, Tisch 16, Nummer 7
|
||||||
|
Ida Sommer = Hof 1, Tisch 16, Nummer 8
|
||||||
|
Mila Meyer = Hof 1, Tisch 16, Nummer 9
|
||||||
|
Leni Kuhn = Hof 1, Tisch 16, Nummer 10
|
||||||
|
Elias Schwarz = Hof 1, Tisch 16, Nummer 11
|
||||||
|
Felix Brandt = Hof 1, Tisch 16, Nummer 12
|
||||||
|
Anton Brandt = Hof 1, Tisch 16, Nummer 13
|
||||||
|
|
||||||
|
[17]
|
||||||
|
Max Vogel = Hof 1, Tisch 17, Nummer 1
|
||||||
|
Anton Vogel = Hof 1, Tisch 17, Nummer 2
|
||||||
|
Ida Meyer = Hof 1, Tisch 17, Nummer 3
|
||||||
|
Ben Brandt = Hof 1, Tisch 17, Nummer 4
|
||||||
|
Paul Brandt = Hof 1, Tisch 17, Nummer 5
|
||||||
|
Anton Meyer = Hof 1, Tisch 17, Nummer 6
|
||||||
|
|
||||||
@@ -0,0 +1,549 @@
|
|||||||
|
<Bestellung>
|
||||||
|
|
||||||
|
<!-- Hochzeit in der Gaststaette "Zum Goldenen Hirschen": 120 Gaeste, 143 Plaetze (84%% Auslastung). Ehrentafel = Tisch 1, Kindertisch = Tisch 16, Teenager-Tisch = Tisch 17. -->
|
||||||
|
|
||||||
|
<!-- Ehrentafel: Brautpaar, Brauteltern, Braeutigameltern, Trauzeugen (fest an Tisch 1) -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Julia</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Daniel</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Werner</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Helga</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Dieter</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Renate</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Sarah</Vorname>
|
||||||
|
<Nachname>Winkler</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Tobias</Vorname>
|
||||||
|
<Nachname>Frank</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Tisch>1</Tisch>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Peters (Braut-Seite, Geschwister Melanie) -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Yusuf</Vorname>
|
||||||
|
<Nachname>Peters</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Melanie</Vorname>
|
||||||
|
<Nachname>Peters</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Brandt (Braut-Seite, Geschwister Daniel): Felix (12 J.) am Kindertisch; Ben (13 J.) am Teenager-Tisch -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Daniel</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Kathrin</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Kraus (Braut-Seite, Geschwister Melanie): Matteo (9 J.) am Kindertisch -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Dennis</Vorname>
|
||||||
|
<Nachname>Kraus</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Melanie</Vorname>
|
||||||
|
<Nachname>Kraus</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Brandt (Braut-Seite, Geschwister Andreas): Theo (3 J.) sitzt bei den Eltern; Anton (10 J.) am Kindertisch; Frieda (12 J.) am Kindertisch; Paul (19 J.) am Teenager-Tisch -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Andreas</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Lena</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Theo</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Meyer (Braut-Seite, Geschwister Sandra): Mila (10 J.) am Kindertisch; Anton (16 J.) am Teenager-Tisch; Ida (16 J.) am Teenager-Tisch -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Marco</Vorname>
|
||||||
|
<Nachname>Meyer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Sandra</Vorname>
|
||||||
|
<Nachname>Meyer</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Brandt (Braut-Seite, Geschwister Milan): Sofia (2 J.) sitzt bei den Eltern; Greta (7 J.) am Kindertisch -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Milan</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Anja</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Sofia</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Vogel (Braut-Seite, Geschwister Sandra): Anton (14 J.) am Teenager-Tisch; Max (15 J.) am Teenager-Tisch -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Yusuf</Vorname>
|
||||||
|
<Nachname>Vogel</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Sandra</Vorname>
|
||||||
|
<Nachname>Vogel</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Sommer (Braeutigam-Seite, Geschwister Dennis): Lina (3 J.) sitzt bei den Eltern; Theo (8 J.) am Kindertisch; Max (12 J.) am Kindertisch -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Dennis</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Nicole</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Lina</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Kuhn (Braeutigam-Seite, Geschwister Sarah): Leni (10 J.) am Kindertisch -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Timo</Vorname>
|
||||||
|
<Nachname>Kuhn</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Sarah</Vorname>
|
||||||
|
<Nachname>Kuhn</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Sommer (Braeutigam-Seite, Geschwister Dennis): Emil (8 J.) am Kindertisch; Ida (8 J.) am Kindertisch -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Dennis</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Jennifer</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Familie Schwarz (Braeutigam-Seite, Geschwister Sarah): Liam (8 J.) am Kindertisch; Elias (8 J.) am Kindertisch -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Yusuf</Vorname>
|
||||||
|
<Nachname>Schwarz</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Sarah</Vorname>
|
||||||
|
<Nachname>Schwarz</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Onkel und Tante (Braut-Seite) -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Horst</Vorname>
|
||||||
|
<Nachname>Aydin</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Ursula</Vorname>
|
||||||
|
<Nachname>Aydin</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Onkel und Tante mit Cousine (Braut-Seite) -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Ingrid</Vorname>
|
||||||
|
<Nachname>Demir</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Monika</Vorname>
|
||||||
|
<Nachname>Demir</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Hannelore</Vorname>
|
||||||
|
<Nachname>Demir</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Onkel und Tante (Braeutigam-Seite) -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Heinz</Vorname>
|
||||||
|
<Nachname>Fischer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Helga</Vorname>
|
||||||
|
<Nachname>Fischer</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Grosstante mit Begleitung -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Heinz</Vorname>
|
||||||
|
<Nachname>Tran</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Erika</Vorname>
|
||||||
|
<Nachname>Erdem</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Studienfreunde der Braut -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Nicole</Vorname>
|
||||||
|
<Nachname>Fischer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Matthias</Vorname>
|
||||||
|
<Nachname>Polat</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Christian</Vorname>
|
||||||
|
<Nachname>Esposito</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Lena</Vorname>
|
||||||
|
<Nachname>Hoffmann</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Timo</Vorname>
|
||||||
|
<Nachname>Wagner</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Nicole</Vorname>
|
||||||
|
<Nachname>Dietrich</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Kegelclub des Brautvaters -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Wolfgang</Vorname>
|
||||||
|
<Nachname>Hansen</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Hannelore</Vorname>
|
||||||
|
<Nachname>Barth</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Erika</Vorname>
|
||||||
|
<Nachname>Frank</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Gerhard</Vorname>
|
||||||
|
<Nachname>Erdem</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Rainer</Vorname>
|
||||||
|
<Nachname>Erdem</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Gisela</Vorname>
|
||||||
|
<Nachname>Esposito</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Brigitte</Vorname>
|
||||||
|
<Nachname>Franke</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Wolfgang</Vorname>
|
||||||
|
<Nachname>Meyer</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Arbeitskolleginnen der Braut -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Elif</Vorname>
|
||||||
|
<Nachname>Demir</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Jennifer</Vorname>
|
||||||
|
<Nachname>Simon</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Andreas</Vorname>
|
||||||
|
<Nachname>Stein</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Stefan</Vorname>
|
||||||
|
<Nachname>Klein</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Timo</Vorname>
|
||||||
|
<Nachname>Frank</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Daniel</Vorname>
|
||||||
|
<Nachname>Wagner</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Stefanie</Vorname>
|
||||||
|
<Nachname>Simon</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Arbeitskollegen des Braeutigams -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Nadine</Vorname>
|
||||||
|
<Nachname>Frank</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Markus</Vorname>
|
||||||
|
<Nachname>Schmitt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Olga</Vorname>
|
||||||
|
<Nachname>Yilmaz</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Olga</Vorname>
|
||||||
|
<Nachname>Hansen</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Daniel</Vorname>
|
||||||
|
<Nachname>Horn</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Milan</Vorname>
|
||||||
|
<Nachname>Lange</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Nachbarn der Brauteltern -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Guenter</Vorname>
|
||||||
|
<Nachname>Schwarz</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Rainer</Vorname>
|
||||||
|
<Nachname>Aksoy</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Renate</Vorname>
|
||||||
|
<Nachname>Aksoy</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Werner</Vorname>
|
||||||
|
<Nachname>Stein</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Fussballverein des Braeutigams -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Sergej</Vorname>
|
||||||
|
<Nachname>Berger</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Giovanna</Vorname>
|
||||||
|
<Nachname>Kovac</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Dennis</Vorname>
|
||||||
|
<Nachname>Schmidt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Patrick</Vorname>
|
||||||
|
<Nachname>Simon</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Stefanie</Vorname>
|
||||||
|
<Nachname>Busch</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Andreas</Vorname>
|
||||||
|
<Nachname>Koch</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Svenja</Vorname>
|
||||||
|
<Nachname>Vogel</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Giovanna</Vorname>
|
||||||
|
<Nachname>Koch</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Julia</Vorname>
|
||||||
|
<Nachname>Esposito</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Freundinnen aus der Schulzeit -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Jennifer</Vorname>
|
||||||
|
<Nachname>Dietrich</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Christian</Vorname>
|
||||||
|
<Nachname>Meyer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Svenja</Vorname>
|
||||||
|
<Nachname>Horn</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Stefanie</Vorname>
|
||||||
|
<Nachname>Roth</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Stefan</Vorname>
|
||||||
|
<Nachname>Kuhn</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Kindertisch (5-12 Jahre, fest an Tisch 16) -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Felix</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Matteo</Vorname>
|
||||||
|
<Nachname>Kraus</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Anton</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Frieda</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Mila</Vorname>
|
||||||
|
<Nachname>Meyer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Greta</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Theo</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Max</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Leni</Vorname>
|
||||||
|
<Nachname>Kuhn</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Emil</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Ida</Vorname>
|
||||||
|
<Nachname>Sommer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Liam</Vorname>
|
||||||
|
<Nachname>Schwarz</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Elias</Vorname>
|
||||||
|
<Nachname>Schwarz</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Tisch>16</Tisch>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Teenager-Tisch (13-19 Jahre, fest an Tisch 17) -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Ben</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Paul</Vorname>
|
||||||
|
<Nachname>Brandt</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Anton</Vorname>
|
||||||
|
<Nachname>Meyer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Ida</Vorname>
|
||||||
|
<Nachname>Meyer</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Anton</Vorname>
|
||||||
|
<Nachname>Vogel</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Max</Vorname>
|
||||||
|
<Nachname>Vogel</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Tisch>17</Tisch>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- Musikverein (anonyme Sammelbuchung, 13 Karten) -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Gast</Vorname>
|
||||||
|
<Nachname>Musikverein</Nachname>
|
||||||
|
</Person>
|
||||||
|
<Anzahl>13</Anzahl>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
<!-- alleinreisender Gast -->
|
||||||
|
<Gruppe>
|
||||||
|
<Person>
|
||||||
|
<Vorname>Sven</Vorname>
|
||||||
|
<Nachname>Fischer</Nachname>
|
||||||
|
</Person>
|
||||||
|
</Gruppe>
|
||||||
|
|
||||||
|
</Bestellung>
|
||||||
@@ -0,0 +1,118 @@
|
|||||||
|
[1]
|
||||||
|
Nummer=1
|
||||||
|
Hof=1
|
||||||
|
Plaetze=12
|
||||||
|
Nachbarliste=[3, 4, 5]
|
||||||
|
Koordinaten=(2,0)
|
||||||
|
|
||||||
|
[2]
|
||||||
|
Nummer=2
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[3, 7, 8]
|
||||||
|
Koordinaten=(0,1)
|
||||||
|
|
||||||
|
[3]
|
||||||
|
Nummer=3
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[1, 2, 4, 7, 8, 9]
|
||||||
|
Koordinaten=(1,1)
|
||||||
|
|
||||||
|
[4]
|
||||||
|
Nummer=4
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[1, 3, 5, 8, 9, 10]
|
||||||
|
Koordinaten=(2,1)
|
||||||
|
|
||||||
|
[5]
|
||||||
|
Nummer=5
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[1, 4, 6, 9, 10, 11]
|
||||||
|
Koordinaten=(3,1)
|
||||||
|
|
||||||
|
[6]
|
||||||
|
Nummer=6
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[5, 10, 11, 16, 17]
|
||||||
|
Koordinaten=(4,1)
|
||||||
|
|
||||||
|
[7]
|
||||||
|
Nummer=7
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[2, 3, 8, 12, 13]
|
||||||
|
Koordinaten=(0,2)
|
||||||
|
|
||||||
|
[8]
|
||||||
|
Nummer=8
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[2, 3, 4, 7, 9, 12, 13, 14]
|
||||||
|
Koordinaten=(1,2)
|
||||||
|
|
||||||
|
[9]
|
||||||
|
Nummer=9
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[3, 4, 5, 8, 10, 13, 14, 15]
|
||||||
|
Koordinaten=(2,2)
|
||||||
|
|
||||||
|
[10]
|
||||||
|
Nummer=10
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[4, 5, 6, 9, 11, 14, 15]
|
||||||
|
Koordinaten=(3,2)
|
||||||
|
|
||||||
|
[11]
|
||||||
|
Nummer=11
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[5, 6, 10, 15, 16, 17]
|
||||||
|
Koordinaten=(4,2)
|
||||||
|
|
||||||
|
[12]
|
||||||
|
Nummer=12
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[7, 8, 13]
|
||||||
|
Koordinaten=(0,3)
|
||||||
|
|
||||||
|
[13]
|
||||||
|
Nummer=13
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[7, 8, 9, 12, 14]
|
||||||
|
Koordinaten=(1,3)
|
||||||
|
|
||||||
|
[14]
|
||||||
|
Nummer=14
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[8, 9, 10, 13, 15]
|
||||||
|
Koordinaten=(2,3)
|
||||||
|
|
||||||
|
[15]
|
||||||
|
Nummer=15
|
||||||
|
Hof=1
|
||||||
|
Plaetze=8
|
||||||
|
Nachbarliste=[9, 10, 11, 14]
|
||||||
|
Koordinaten=(3,3)
|
||||||
|
|
||||||
|
[16]
|
||||||
|
Nummer=16
|
||||||
|
Hof=1
|
||||||
|
Plaetze=13
|
||||||
|
Nachbarliste=[6, 11, 17]
|
||||||
|
Koordinaten=(5,1)
|
||||||
|
|
||||||
|
[17]
|
||||||
|
Nummer=17
|
||||||
|
Hof=1
|
||||||
|
Plaetze=6
|
||||||
|
Nachbarliste=[6, 11, 16]
|
||||||
|
Koordinaten=(5,2)
|
||||||
@@ -0,0 +1,300 @@
|
|||||||
|
Aksoy, Luca, = Hof 1, Tisch 14, Nummer 3
|
||||||
|
Aksoy, Marie, = Hof 1, Tisch 24, Nummer 5
|
||||||
|
Aksoy, Marija, = Hof 2, Tisch 54, Nummer 5
|
||||||
|
Aksoy, Michael, Dr. = Hof 2, Tisch 59, Nummer 4
|
||||||
|
Aksoy, Nadine, = Hof 1, Tisch 14, Nummer 4
|
||||||
|
Aksoy, Nicole, = Hof 1, Tisch 38, Nummer 5
|
||||||
|
Aksoy, Sergej, = Hof 1, Tisch 14, Nummer 2
|
||||||
|
Aksoy, Sofia, = Hof 1, Tisch 14, Nummer 5
|
||||||
|
Aksoy, Thomas, = Hof 1, Tisch 24, Nummer 2
|
||||||
|
Albrecht, Andreas, = Hof 1, Tisch 17, Nummer 5
|
||||||
|
Albrecht, Emre, Prof. Dr. = Hof 2, Tisch 67, Nummer 2
|
||||||
|
Albrecht, Sarah, = Hof 1, Tisch 17, Nummer 2
|
||||||
|
Albrecht, Yusuf, Prof. Dr. = Hof 1, Tisch 18, Nummer 3
|
||||||
|
Arnold, Christian, = Hof 2, Tisch 52, Nummer 3
|
||||||
|
Arnold, Jennifer, = Hof 2, Tisch 53, Nummer 5
|
||||||
|
Arnold, Jennifer, Dr. = Hof 2, Tisch 67, Nummer 4
|
||||||
|
Arnold, Leni, = Hof 2, Tisch 52, Nummer 4
|
||||||
|
Arnold, Mila, = Hof 2, Tisch 52, Nummer 2
|
||||||
|
Arnold, Nadine, = Hof 1, Tisch 40, Nummer 4
|
||||||
|
Arnold, Patrick, = Hof 2, Tisch 53, Nummer 4
|
||||||
|
Barth, Lina, = Hof 2, Tisch 66, Nummer 5
|
||||||
|
Barth, Markus, = Hof 1, Tisch 45, Nummer 2
|
||||||
|
Barth, Nadine, = Hof 2, Tisch 66, Nummer 3
|
||||||
|
Barth, Patrick, = Hof 2, Tisch 66, Nummer 2
|
||||||
|
Barth, Timo, = Hof 2, Tisch 66, Nummer 4
|
||||||
|
Bauer, Dragana, = Hof 1, Tisch 42, Nummer 2
|
||||||
|
Bauer, Yusuf, = Hof 1, Tisch 2, Nummer 3
|
||||||
|
Becker, Jan, = Hof 2, Tisch 50, Nummer 2
|
||||||
|
Becker, Marija, = Hof 1, Tisch 26, Nummer 2
|
||||||
|
Becker, Nicole, = Hof 2, Tisch 50, Nummer 4
|
||||||
|
Becker, Sandra, = Hof 2, Tisch 50, Nummer 3
|
||||||
|
Berger, Andreas, = Hof 1, Tisch 33, Nummer 2
|
||||||
|
Berger, Anton, = Hof 1, Tisch 25, Nummer 2
|
||||||
|
Berger, Jennifer, = Hof 1, Tisch 25, Nummer 3
|
||||||
|
Berger, Layla, = Hof 1, Tisch 25, Nummer 4
|
||||||
|
Berger, Nadine, Dr. = Hof 2, Tisch 77, Nummer 2
|
||||||
|
Berger, Stefan, = Hof 1, Tisch 33, Nummer 4
|
||||||
|
Berger, Svenja, = Hof 1, Tisch 33, Nummer 3
|
||||||
|
Bianchi, Jan, Dr. = Hof 1, Tisch 1, Nummer 4
|
||||||
|
Bianchi, Mia, = Hof 1, Tisch 21, Nummer 2
|
||||||
|
Bianchi, Sandra, = Hof 1, Tisch 21, Nummer 3
|
||||||
|
Bianchi, Thomas, = Hof 1, Tisch 21, Nummer 4
|
||||||
|
Bianchi, Thomas, = Hof 2, Tisch 67, Nummer 5
|
||||||
|
Braun, Christian, = Hof 1, Tisch 37, Nummer 2
|
||||||
|
Braun, Dragana, = Hof 1, Tisch 36, Nummer 5
|
||||||
|
Braun, Jan, = Hof 1, Tisch 36, Nummer 2
|
||||||
|
Braun, Julia, = Hof 1, Tisch 37, Nummer 3
|
||||||
|
Braun, Milan, = Hof 1, Tisch 37, Nummer 5
|
||||||
|
Braun, Nadine, = Hof 1, Tisch 37, Nummer 4
|
||||||
|
Busch, Emre, = Hof 1, Tisch 28, Nummer 2
|
||||||
|
Busch, Marie, = Hof 1, Tisch 28, Nummer 5
|
||||||
|
Busch, Michael, = Hof 1, Tisch 28, Nummer 4
|
||||||
|
Busch, Olga, = Hof 1, Tisch 28, Nummer 3
|
||||||
|
Busch, Patrick, = Hof 2, Tisch 49, Nummer 2
|
||||||
|
Celik, Elif, = Hof 1, Tisch 19, Nummer 5
|
||||||
|
Celik, Patrick, = Hof 1, Tisch 19, Nummer 4
|
||||||
|
Dallmann, Charlotte, = Hof 1, Tisch 7, Nummer 5
|
||||||
|
Dallmann, Heinrich, = Hof 1, Tisch 7, Nummer 4
|
||||||
|
Dallmann, Margarete, = Hof 1, Tisch 7, Nummer 3
|
||||||
|
Dallmann, Maximilian, = Hof 1, Tisch 7, Nummer 2
|
||||||
|
Demir, Sandra, Dr. = Hof 1, Tisch 19, Nummer 2
|
||||||
|
Dietrich, Dragana, Prof. Dr. = Hof 2, Tisch 59, Nummer 5
|
||||||
|
Dietrich, Jennifer, = Hof 2, Tisch 78, Nummer 2
|
||||||
|
Dietrich, Marco, = Hof 2, Tisch 78, Nummer 3
|
||||||
|
Dietrich, Sofia, = Hof 2, Tisch 78, Nummer 4
|
||||||
|
Engel, Anja, = Hof 1, Tisch 10, Nummer 4
|
||||||
|
Engel, Anton, = Hof 1, Tisch 11, Nummer 4
|
||||||
|
Engel, Julia, = Hof 1, Tisch 11, Nummer 2
|
||||||
|
Engel, Nicole, = Hof 1, Tisch 11, Nummer 3
|
||||||
|
Engel, Yusuf, = Hof 1, Tisch 10, Nummer 2
|
||||||
|
Esposito, Jan, Dr. = Hof 1, Tisch 12, Nummer 3
|
||||||
|
Esposito, Yusuf, Prof. Dr. = Hof 1, Tisch 26, Nummer 3
|
||||||
|
Frank, Dennis, = Hof 1, Tisch 10, Nummer 5
|
||||||
|
Frank, Finn, = Hof 1, Tisch 9, Nummer 4
|
||||||
|
Frank, Lena, = Hof 1, Tisch 9, Nummer 3
|
||||||
|
Frank, Marie, = Hof 1, Tisch 10, Nummer 3
|
||||||
|
Frank, Nadine, = Hof 1, Tisch 9, Nummer 2
|
||||||
|
Franke, Amira, = Hof 2, Tisch 73, Nummer 3
|
||||||
|
Franke, Julia, = Hof 2, Tisch 81, Nummer 2
|
||||||
|
Franke, Marco, = Hof 2, Tisch 81, Nummer 3
|
||||||
|
Franke, Michael, = Hof 2, Tisch 73, Nummer 2
|
||||||
|
Franke, Olga, = Hof 2, Tisch 81, Nummer 4
|
||||||
|
Freifrau von Waldeck, Antonia, = Hof 1, Tisch 6, Nummer 4
|
||||||
|
Freiherr von Waldeck, Konstantin, Dr. = Hof 1, Tisch 6, Nummer 2
|
||||||
|
Grothe, Alexander, Dr. h.c. = Hof 1, Tisch 5, Nummer 5
|
||||||
|
Grothe, Beate, = Hof 1, Tisch 5, Nummer 2
|
||||||
|
Haas, Jennifer, Dr. = Hof 1, Tisch 45, Nummer 4
|
||||||
|
Haas, Patrick, = Hof 1, Tisch 42, Nummer 4
|
||||||
|
Hansen, Giovanna, = Hof 1, Tisch 30, Nummer 4
|
||||||
|
Hansen, Markus, = Hof 1, Tisch 30, Nummer 3
|
||||||
|
Hansen, Nicole, Dr. = Hof 1, Tisch 42, Nummer 3
|
||||||
|
Hansen, Olga, = Hof 1, Tisch 30, Nummer 2
|
||||||
|
Hansen, Thomas, = Hof 1, Tisch 12, Nummer 5
|
||||||
|
Hartmann, Deniz, = Hof 2, Tisch 85, Nummer 4
|
||||||
|
Hartmann, Marija, = Hof 2, Tisch 86, Nummer 3
|
||||||
|
Hartmann, Nadine, = Hof 2, Tisch 86, Nummer 2
|
||||||
|
Hartmann, Olga, = Hof 2, Tisch 85, Nummer 3
|
||||||
|
Hartmann, Thomas, = Hof 2, Tisch 85, Nummer 2
|
||||||
|
Hoffmann, Emre, = Hof 2, Tisch 49, Nummer 3
|
||||||
|
Hoffmann, Patrick, Prof. Dr. = Hof 1, Tisch 40, Nummer 5
|
||||||
|
Hoffmann, Thomas, Dr. = Hof 1, Tisch 32, Nummer 4
|
||||||
|
Horn, Kathrin, = Hof 2, Tisch 84, Nummer 4
|
||||||
|
Horn, Layla, = Hof 2, Tisch 84, Nummer 3
|
||||||
|
Horn, Leon, = Hof 2, Tisch 84, Nummer 5
|
||||||
|
Horn, Michael, = Hof 2, Tisch 84, Nummer 2
|
||||||
|
Kaya, Christina, = Hof 1, Tisch 43, Nummer 4
|
||||||
|
Kaya, Luca, = Hof 1, Tisch 43, Nummer 3
|
||||||
|
Kaya, Nicole, = Hof 1, Tisch 43, Nummer 2
|
||||||
|
Kaya, Patrick, Dr. = Hof 1, Tisch 1, Nummer 2
|
||||||
|
Kaya, Timo, Prof. Dr. = Hof 1, Tisch 19, Nummer 3
|
||||||
|
Kessler, Ferdinand, Dr. = Hof 1, Tisch 5, Nummer 4
|
||||||
|
Kessler, Viktoria, = Hof 1, Tisch 5, Nummer 3
|
||||||
|
Klein, Emre, = Hof 1, Tisch 2, Nummer 4
|
||||||
|
Klein, Lina, = Hof 2, Tisch 63, Nummer 4
|
||||||
|
Klein, Markus, = Hof 1, Tisch 38, Nummer 4
|
||||||
|
Klein, Milan, = Hof 2, Tisch 63, Nummer 2
|
||||||
|
Klein, Olga, Dr. = Hof 2, Tisch 57, Nummer 2
|
||||||
|
Klein, Stefanie, = Hof 2, Tisch 63, Nummer 3
|
||||||
|
Koch, Emil, = Hof 2, Tisch 48, Nummer 2
|
||||||
|
Koch, Jan, = Hof 2, Tisch 48, Nummer 5
|
||||||
|
Koch, Kathrin, Dr. = Hof 2, Tisch 68, Nummer 3
|
||||||
|
Koch, Marie, = Hof 2, Tisch 48, Nummer 3
|
||||||
|
Koch, Michael, = Hof 2, Tisch 49, Nummer 4
|
||||||
|
Koch, Olga, = Hof 2, Tisch 48, Nummer 4
|
||||||
|
Koch, Sarah, = Hof 2, Tisch 49, Nummer 5
|
||||||
|
Kovac, Anja, = Hof 1, Tisch 15, Nummer 3
|
||||||
|
Kovac, Henry, = Hof 1, Tisch 15, Nummer 2
|
||||||
|
Kovac, Lena, = Hof 1, Tisch 15, Nummer 4
|
||||||
|
Kovac, Luca, = Hof 2, Tisch 71, Nummer 2
|
||||||
|
Kovac, Marco, = Hof 1, Tisch 15, Nummer 5
|
||||||
|
Kovac, Marija, = Hof 1, Tisch 24, Nummer 4
|
||||||
|
Kovac, Matthias, = Hof 1, Tisch 26, Nummer 4
|
||||||
|
Kovac, Tobias, = Hof 1, Tisch 24, Nummer 3
|
||||||
|
Kraus, Markus, = Hof 1, Tisch 3, Nummer 5
|
||||||
|
Kraus, Patrick, Dr. = Hof 2, Tisch 57, Nummer 5
|
||||||
|
Krause, Andreas, = Hof 2, Tisch 74, Nummer 5
|
||||||
|
Krause, Arda, = Hof 2, Tisch 74, Nummer 4
|
||||||
|
Krause, Christina, Dr. = Hof 1, Tisch 1, Nummer 3
|
||||||
|
Krause, Daniel, = Hof 1, Tisch 38, Nummer 3
|
||||||
|
Krause, Dragana, Dr. = Hof 2, Tisch 71, Nummer 3
|
||||||
|
Krause, Emma, = Hof 2, Tisch 74, Nummer 2
|
||||||
|
Krause, Julia, = Hof 2, Tisch 74, Nummer 3
|
||||||
|
Krause, Matthias, = Hof 2, Tisch 58, Nummer 4
|
||||||
|
Krause, Thomas, = Hof 1, Tisch 41, Nummer 2
|
||||||
|
Kuhn, Julia, Dr. = Hof 2, Tisch 68, Nummer 4
|
||||||
|
Lange, Dragana, = Hof 2, Tisch 72, Nummer 2
|
||||||
|
Lange, Jan, = Hof 2, Tisch 73, Nummer 5
|
||||||
|
Lange, Michael, = Hof 2, Tisch 72, Nummer 3
|
||||||
|
Lange, Sergej, = Hof 2, Tisch 59, Nummer 3
|
||||||
|
Lange, Sofia, = Hof 2, Tisch 72, Nummer 4
|
||||||
|
Lange, Svenja, = Hof 2, Tisch 73, Nummer 4
|
||||||
|
Lehmann, Giovanna, = Hof 1, Tisch 16, Nummer 2
|
||||||
|
Lehmann, Layla, = Hof 1, Tisch 16, Nummer 5
|
||||||
|
Lehmann, Markus, = Hof 1, Tisch 16, Nummer 4
|
||||||
|
Lehmann, Milan, = Hof 1, Tisch 16, Nummer 3
|
||||||
|
Lehmann, Nicole, = Hof 1, Tisch 17, Nummer 3
|
||||||
|
Lehmann, Patrick, = Hof 2, Tisch 77, Nummer 4
|
||||||
|
Lehmann, Thomas, = Hof 1, Tisch 17, Nummer 4
|
||||||
|
Ludwig, Aylin, Dr. = Hof 2, Tisch 57, Nummer 4
|
||||||
|
Ludwig, Elias, = Hof 2, Tisch 56, Nummer 3
|
||||||
|
Ludwig, Elif, = Hof 2, Tisch 56, Nummer 4
|
||||||
|
Ludwig, Emre, = Hof 2, Tisch 56, Nummer 2
|
||||||
|
Ludwig, Emre, Prof. Dr. = Hof 1, Tisch 38, Nummer 2
|
||||||
|
Ludwig, Giovanna, = Hof 2, Tisch 56, Nummer 5
|
||||||
|
Maier, Arda, = Hof 2, Tisch 60, Nummer 2
|
||||||
|
Maier, Christian, = Hof 2, Tisch 60, Nummer 4
|
||||||
|
Maier, Olga, = Hof 2, Tisch 60, Nummer 3
|
||||||
|
Maier, Sarah, = Hof 2, Tisch 60, Nummer 5
|
||||||
|
Neumann, Jennifer, = Hof 2, Tisch 83, Nummer 4
|
||||||
|
Neumann, Lina, = Hof 2, Tisch 83, Nummer 3
|
||||||
|
Neumann, Matteo, = Hof 2, Tisch 83, Nummer 2
|
||||||
|
Neumann, Thomas, = Hof 2, Tisch 83, Nummer 5
|
||||||
|
Nguyen, Anja, = Hof 2, Tisch 51, Nummer 3
|
||||||
|
Nguyen, Daniel, = Hof 2, Tisch 51, Nummer 4
|
||||||
|
Nguyen, Julia, = Hof 1, Tisch 13, Nummer 4
|
||||||
|
Nguyen, Sofia, = Hof 2, Tisch 51, Nummer 2
|
||||||
|
Nowak, Aylin, = Hof 1, Tisch 36, Nummer 3
|
||||||
|
Nowak, Felix, = Hof 1, Tisch 35, Nummer 2
|
||||||
|
Nowak, Kathrin, = Hof 1, Tisch 36, Nummer 4
|
||||||
|
Nowak, Lina, = Hof 1, Tisch 35, Nummer 4
|
||||||
|
Nowak, Markus, = Hof 1, Tisch 35, Nummer 5
|
||||||
|
Nowak, Noah, = Hof 1, Tisch 35, Nummer 3
|
||||||
|
Ott, Daniel, = Hof 2, Tisch 86, Nummer 5
|
||||||
|
Ott, Hannah, = Hof 2, Tisch 80, Nummer 3
|
||||||
|
Ott, Luca, = Hof 2, Tisch 71, Nummer 4
|
||||||
|
Ott, Matthias, = Hof 2, Tisch 80, Nummer 2
|
||||||
|
Ott, Melanie, = Hof 2, Tisch 80, Nummer 4
|
||||||
|
Ott, Olga, = Hof 2, Tisch 86, Nummer 4
|
||||||
|
Ott, Sergej, Prof. Dr. = Hof 1, Tisch 42, Nummer 5
|
||||||
|
Ott, Yusuf, Prof. Dr. = Hof 2, Tisch 77, Nummer 3
|
||||||
|
Peters, Christian, = Hof 1, Tisch 3, Nummer 4
|
||||||
|
Peters, Nicole, = Hof 1, Tisch 41, Nummer 3
|
||||||
|
Petrov, Giovanna, = Hof 1, Tisch 3, Nummer 3
|
||||||
|
Petrov, Kathrin, = Hof 1, Tisch 20, Nummer 4
|
||||||
|
Petrov, Kathrin, Prof. Dr. = Hof 1, Tisch 4, Nummer 2
|
||||||
|
Petrov, Matthias, = Hof 1, Tisch 45, Nummer 5
|
||||||
|
Petrov, Milan, = Hof 1, Tisch 20, Nummer 5
|
||||||
|
Petrov, Sergej, = Hof 2, Tisch 54, Nummer 3
|
||||||
|
Pohl, Dragana, = Hof 2, Tisch 75, Nummer 4
|
||||||
|
Pohl, Emre, = Hof 2, Tisch 75, Nummer 5
|
||||||
|
Pohl, Mia, = Hof 2, Tisch 75, Nummer 2
|
||||||
|
Pohl, Theo, = Hof 2, Tisch 75, Nummer 3
|
||||||
|
Polat, Kathrin, = Hof 2, Tisch 54, Nummer 2
|
||||||
|
Polat, Katrin, = Hof 2, Tisch 88, Nummer 3
|
||||||
|
Polat, Marija, = Hof 1, Tisch 40, Nummer 2
|
||||||
|
Polat, Markus, = Hof 2, Tisch 88, Nummer 2
|
||||||
|
Polat, Sarah, = Hof 2, Tisch 53, Nummer 2
|
||||||
|
Polat, Stefan, = Hof 2, Tisch 53, Nummer 3
|
||||||
|
Polat, Stefanie, = Hof 2, Tisch 88, Nummer 4
|
||||||
|
Popescu, Matthias, = Hof 1, Tisch 18, Nummer 5
|
||||||
|
Richter, Anja, = Hof 1, Tisch 31, Nummer 5
|
||||||
|
Richter, Anja, Prof. Dr. = Hof 2, Tisch 65, Nummer 3
|
||||||
|
Richter, Anton, = Hof 1, Tisch 31, Nummer 4
|
||||||
|
Richter, Greta, = Hof 1, Tisch 31, Nummer 3
|
||||||
|
Richter, Julia, Prof. Dr. = Hof 1, Tisch 45, Nummer 3
|
||||||
|
Richter, Marco, = Hof 1, Tisch 40, Nummer 3
|
||||||
|
Richter, Matthias, = Hof 1, Tisch 31, Nummer 2
|
||||||
|
Richter, Stefan, = Hof 2, Tisch 62, Nummer 3
|
||||||
|
Rossi, Emilia, = Hof 1, Tisch 29, Nummer 4
|
||||||
|
Rossi, Luca, = Hof 1, Tisch 29, Nummer 3
|
||||||
|
Rossi, Melanie, = Hof 1, Tisch 29, Nummer 2
|
||||||
|
Roth, Christian, = Hof 2, Tisch 64, Nummer 3
|
||||||
|
Roth, Julia, Prof. Dr. = Hof 1, Tisch 13, Nummer 3
|
||||||
|
Roth, Olga, = Hof 2, Tisch 67, Nummer 3
|
||||||
|
Roth, Sarah, = Hof 2, Tisch 64, Nummer 2
|
||||||
|
Roth, Sofia, = Hof 2, Tisch 64, Nummer 4
|
||||||
|
Sahin, Kathrin, = Hof 2, Tisch 55, Nummer 2
|
||||||
|
Sahin, Markus, = Hof 2, Tisch 55, Nummer 4
|
||||||
|
Sahin, Nicole, = Hof 2, Tisch 55, Nummer 5
|
||||||
|
Sahin, Patrick, = Hof 2, Tisch 55, Nummer 3
|
||||||
|
Sahin, Thomas, = Hof 2, Tisch 65, Nummer 2
|
||||||
|
Schmidt, Giovanna, = Hof 1, Tisch 44, Nummer 3
|
||||||
|
Schmidt, Marie, = Hof 1, Tisch 44, Nummer 2
|
||||||
|
Schmidt, Matthias, = Hof 1, Tisch 44, Nummer 5
|
||||||
|
Schmidt, Nicole, = Hof 1, Tisch 12, Nummer 4
|
||||||
|
Schmitt, Dennis, Prof. Dr. = Hof 2, Tisch 62, Nummer 4
|
||||||
|
Schmitt, Markus, = Hof 1, Tisch 22, Nummer 5
|
||||||
|
Schmitt, Markus, = Hof 1, Tisch 4, Nummer 3
|
||||||
|
Schmitt, Sarah, = Hof 1, Tisch 22, Nummer 4
|
||||||
|
Schmitt, Sofia, = Hof 1, Tisch 22, Nummer 2
|
||||||
|
Schmitt, Stefan, Prof. Dr. = Hof 2, Tisch 69, Nummer 4
|
||||||
|
Schwarz, Giovanna, = Hof 2, Tisch 58, Nummer 3
|
||||||
|
Seidel, Anja, Dr. = Hof 1, Tisch 32, Nummer 5
|
||||||
|
Seidel, Markus, Dr. = Hof 1, Tisch 3, Nummer 2
|
||||||
|
Seidel, Yusuf, Prof. Dr. = Hof 1, Tisch 2, Nummer 5
|
||||||
|
Seifert, Elif, = Hof 1, Tisch 23, Nummer 4
|
||||||
|
Seifert, Leni, = Hof 1, Tisch 23, Nummer 3
|
||||||
|
Seifert, Marco, Prof. Dr. = Hof 2, Tisch 57, Nummer 3
|
||||||
|
Seifert, Nicole, = Hof 1, Tisch 22, Nummer 3
|
||||||
|
Seifert, Stefanie, Dr. = Hof 1, Tisch 13, Nummer 2
|
||||||
|
Seifert, Timo, = Hof 1, Tisch 23, Nummer 5
|
||||||
|
Seifert, Yusuf, = Hof 1, Tisch 23, Nummer 2
|
||||||
|
Simon, Andreas, = Hof 2, Tisch 61, Nummer 2
|
||||||
|
Simon, Emma, = Hof 2, Tisch 61, Nummer 4
|
||||||
|
Simon, Lena, = Hof 2, Tisch 61, Nummer 5
|
||||||
|
Simon, Markus, = Hof 2, Tisch 61, Nummer 3
|
||||||
|
Simon, Svenja, = Hof 1, Tisch 18, Nummer 2
|
||||||
|
Stein, Ben, = Hof 2, Tisch 76, Nummer 5
|
||||||
|
Stein, Emilia, = Hof 2, Tisch 76, Nummer 4
|
||||||
|
Stein, Giovanna, = Hof 2, Tisch 76, Nummer 2
|
||||||
|
Stein, Markus, Prof. Dr. = Hof 1, Tisch 18, Nummer 4
|
||||||
|
Stein, Nadine, Dr. = Hof 1, Tisch 4, Nummer 4
|
||||||
|
Stein, Thomas, = Hof 2, Tisch 76, Nummer 3
|
||||||
|
Steinbach, Elisabeth, = Hof 1, Tisch 6, Nummer 3
|
||||||
|
Steinbach, Georg, = Hof 1, Tisch 6, Nummer 5
|
||||||
|
Thiel, Christina, = Hof 2, Tisch 82, Nummer 2
|
||||||
|
Thiel, Jan, Dr. = Hof 2, Tisch 65, Nummer 4
|
||||||
|
Thiel, Julia, = Hof 2, Tisch 82, Nummer 3
|
||||||
|
Thiel, Yusuf, = Hof 2, Tisch 82, Nummer 4
|
||||||
|
Tran, Marija, = Hof 2, Tisch 69, Nummer 2
|
||||||
|
Tran, Olga, = Hof 1, Tisch 32, Nummer 2
|
||||||
|
Tran, Thomas, Prof. Dr. = Hof 2, Tisch 54, Nummer 4
|
||||||
|
Wagner, Henry, = Hof 2, Tisch 46, Nummer 3
|
||||||
|
Wagner, Marco, = Hof 2, Tisch 46, Nummer 5
|
||||||
|
Wagner, Nicole, = Hof 2, Tisch 46, Nummer 4
|
||||||
|
Wagner, Sarah, = Hof 2, Tisch 46, Nummer 2
|
||||||
|
Weber, Andreas, = Hof 1, Tisch 44, Nummer 4
|
||||||
|
Weber, Julia, = Hof 1, Tisch 2, Nummer 2
|
||||||
|
Weber, Katrin, = Hof 2, Tisch 68, Nummer 2
|
||||||
|
Weber, Yusuf, = Hof 2, Tisch 58, Nummer 2
|
||||||
|
Werner, Andreas, = Hof 1, Tisch 39, Nummer 4
|
||||||
|
Werner, Dennis, Prof. Dr. = Hof 1, Tisch 32, Nummer 3
|
||||||
|
Werner, Katrin, = Hof 2, Tisch 59, Nummer 2
|
||||||
|
Werner, Luca, = Hof 2, Tisch 69, Nummer 3
|
||||||
|
Werner, Marco, = Hof 1, Tisch 39, Nummer 3
|
||||||
|
Werner, Nadine, = Hof 1, Tisch 39, Nummer 5
|
||||||
|
Werner, Sandra, = Hof 1, Tisch 39, Nummer 2
|
||||||
|
Winkler, Lena, = Hof 1, Tisch 20, Nummer 2
|
||||||
|
Winkler, Marco, = Hof 1, Tisch 1, Nummer 5
|
||||||
|
Winkler, Patrick, = Hof 1, Tisch 20, Nummer 3
|
||||||
|
Winkler, Thomas, = Hof 1, Tisch 12, Nummer 2
|
||||||
|
Wolf, Ben, = Hof 2, Tisch 79, Nummer 5
|
||||||
|
Wolf, Emma, = Hof 2, Tisch 79, Nummer 4
|
||||||
|
Wolf, Julia, = Hof 2, Tisch 79, Nummer 3
|
||||||
|
Wolf, Thomas, = Hof 2, Tisch 79, Nummer 2
|
||||||
|
Zimmermann, Jan, = Hof 2, Tisch 70, Nummer 2
|
||||||
|
Zimmermann, Markus, = Hof 2, Tisch 70, Nummer 3
|
||||||
|
Zimmermann, Mia, = Hof 2, Tisch 70, Nummer 4
|
||||||
|
Zimmermann, Patrick, = Hof 2, Tisch 62, Nummer 2
|
||||||
|
Zimmermann, Svenja, = Hof 2, Tisch 70, Nummer 5
|
||||||
|
@@ -0,0 +1,480 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="2476.05" height="466.676" viewBox="0 0 2476.05 466.676">
|
||||||
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
|
<circle cx="690.014" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="690.014" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 8</text>
|
||||||
|
<circle cx="598.679" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="598.679" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 27</text>
|
||||||
|
<circle cx="461.676" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="461.676" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 34</text>
|
||||||
|
<circle cx="1603.37" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1603.37" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 47</text>
|
||||||
|
<circle cx="2060.04" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2060.04" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 87</text>
|
||||||
|
<circle cx="416.009" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="416.009" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 41</text>
|
||||||
|
<circle cx="416.009" cy="397.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="416.009" cy="434.676" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="324.673" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="324.673" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 4</text>
|
||||||
|
<circle cx="324.673" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="340.84" cy="60.0014" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="308.507" cy="60.0014" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="781.35" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="781.35" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 9</text>
|
||||||
|
<circle cx="781.35" cy="32" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="797.516" cy="60.0014" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="765.183" cy="60.0014" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="964.02" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="964.02" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 11</text>
|
||||||
|
<circle cx="964.02" cy="32" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="980.187" cy="60.0014" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="947.853" cy="60.0014" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="187.67" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="187.67" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 13</text>
|
||||||
|
<circle cx="187.67" cy="123.335" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="203.837" cy="151.337" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="171.504" cy="151.337" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="918.352" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="918.352" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 21</text>
|
||||||
|
<circle cx="918.352" cy="123.335" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="934.519" cy="151.337" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="902.186" cy="151.337" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="416.009" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="416.009" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 25</text>
|
||||||
|
<circle cx="416.009" cy="214.67" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="432.175" cy="242.672" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="399.842" cy="242.672" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="507.344" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="507.344" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 26</text>
|
||||||
|
<circle cx="507.344" cy="214.67" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="523.51" cy="242.672" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="491.177" cy="242.672" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="781.35" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="781.35" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 29</text>
|
||||||
|
<circle cx="781.35" cy="214.67" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="797.516" cy="242.672" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="765.183" cy="242.672" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="872.685" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="872.685" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 30</text>
|
||||||
|
<circle cx="872.685" cy="214.67" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="888.851" cy="242.672" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="856.518" cy="242.672" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="370.341" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="370.341" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 33</text>
|
||||||
|
<circle cx="370.341" cy="306.006" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="386.508" cy="334.007" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="354.174" cy="334.007" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="598.679" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="598.679" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 43</text>
|
||||||
|
<circle cx="598.679" cy="397.341" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="614.846" cy="425.342" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="582.512" cy="425.342" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1877.37" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1877.37" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 50</text>
|
||||||
|
<circle cx="1877.37" cy="32" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1893.54" cy="60.0014" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1861.21" cy="60.0014" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1968.71" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1968.71" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 51</text>
|
||||||
|
<circle cx="1968.71" cy="32" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1984.87" cy="60.0014" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1952.54" cy="60.0014" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2060.04" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2060.04" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 52</text>
|
||||||
|
<circle cx="2060.04" cy="32" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2076.21" cy="60.0014" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2043.88" cy="60.0014" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1649.03" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1649.03" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 58</text>
|
||||||
|
<circle cx="1649.03" cy="123.335" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1665.2" cy="151.337" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1632.87" cy="151.337" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2014.38" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2014.38" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 62</text>
|
||||||
|
<circle cx="2014.38" cy="123.335" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2030.54" cy="151.337" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1998.21" cy="151.337" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2105.71" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2105.71" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 63</text>
|
||||||
|
<circle cx="2105.71" cy="123.335" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2121.88" cy="151.337" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2089.54" cy="151.337" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2197.05" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2197.05" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 64</text>
|
||||||
|
<circle cx="2197.05" cy="123.335" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2213.21" cy="151.337" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2180.88" cy="151.337" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2288.38" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2288.38" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 65</text>
|
||||||
|
<circle cx="2288.38" cy="123.335" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2304.55" cy="151.337" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2272.21" cy="151.337" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1694.7" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1694.7" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 68</text>
|
||||||
|
<circle cx="1694.7" cy="214.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1710.87" cy="242.672" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1678.54" cy="242.672" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1786.04" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1786.04" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 69</text>
|
||||||
|
<circle cx="1786.04" cy="214.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1802.2" cy="242.672" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1769.87" cy="242.672" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1968.71" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1968.71" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 71</text>
|
||||||
|
<circle cx="1968.71" cy="214.67" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1984.87" cy="242.672" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1952.54" cy="242.672" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2060.04" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2060.04" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 72</text>
|
||||||
|
<circle cx="2060.04" cy="214.67" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2076.21" cy="242.672" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2043.88" cy="242.672" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1740.37" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1740.37" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 77</text>
|
||||||
|
<circle cx="1740.37" cy="306.006" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1756.54" cy="334.007" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1724.2" cy="334.007" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1831.7" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1831.7" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 78</text>
|
||||||
|
<circle cx="1831.7" cy="306.006" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1847.87" cy="334.007" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1815.54" cy="334.007" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2014.38" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2014.38" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 80</text>
|
||||||
|
<circle cx="2014.38" cy="306.006" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2030.54" cy="334.007" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1998.21" cy="334.007" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2105.71" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2105.71" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 81</text>
|
||||||
|
<circle cx="2105.71" cy="306.006" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2121.88" cy="334.007" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2089.54" cy="334.007" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2197.05" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2197.05" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 82</text>
|
||||||
|
<circle cx="2197.05" cy="306.006" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2213.21" cy="334.007" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2180.88" cy="334.007" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1877.37" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1877.37" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 85</text>
|
||||||
|
<circle cx="1877.37" cy="397.341" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1893.54" cy="425.342" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1861.21" cy="425.342" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2151.38" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2151.38" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 88</text>
|
||||||
|
<circle cx="2151.38" cy="397.341" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2167.54" cy="425.342" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2135.21" cy="425.342" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="50.6676" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="50.6676" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 1</text>
|
||||||
|
<circle cx="50.6676" cy="32" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="69.3352" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="50.6676" cy="69.3352" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="32" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="142.003" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="142.003" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 2</text>
|
||||||
|
<circle cx="142.003" cy="32" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="160.67" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="142.003" cy="69.3352" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="123.335" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="233.338" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="233.338" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 3</text>
|
||||||
|
<circle cx="233.338" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="252.006" cy="50.6676" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="233.338" cy="69.3352" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="214.67" cy="50.6676" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="416.009" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="416.009" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 5</text>
|
||||||
|
<circle cx="416.009" cy="32" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="434.676" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="416.009" cy="69.3352" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="397.341" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="507.344" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="507.344" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 6</text>
|
||||||
|
<circle cx="507.344" cy="32" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="526.011" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="507.344" cy="69.3352" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="488.676" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="598.679" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="598.679" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 7</text>
|
||||||
|
<circle cx="598.679" cy="32" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="617.347" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="598.679" cy="69.3352" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="580.011" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="872.685" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="872.685" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 10</text>
|
||||||
|
<circle cx="872.685" cy="32" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="891.352" cy="50.6676" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="872.685" cy="69.3352" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="854.017" cy="50.6676" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="96.3352" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="96.3352" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 12</text>
|
||||||
|
<circle cx="96.3352" cy="123.335" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="115.003" cy="142.003" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="96.3352" cy="160.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="77.6676" cy="142.003" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="279.006" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="279.006" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 14</text>
|
||||||
|
<circle cx="279.006" cy="123.335" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="297.673" cy="142.003" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="279.006" cy="160.67" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="260.338" cy="142.003" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="370.341" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="370.341" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 15</text>
|
||||||
|
<circle cx="370.341" cy="123.335" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="389.009" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="370.341" cy="160.67" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="351.673" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="461.676" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="461.676" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 16</text>
|
||||||
|
<circle cx="461.676" cy="123.335" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="480.344" cy="142.003" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="461.676" cy="160.67" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="443.009" cy="142.003" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="553.011" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="553.011" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 17</text>
|
||||||
|
<circle cx="553.011" cy="123.335" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="571.679" cy="142.003" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="553.011" cy="160.67" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="534.344" cy="142.003" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="644.347" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="644.347" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 18</text>
|
||||||
|
<circle cx="644.347" cy="123.335" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="663.014" cy="142.003" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="644.347" cy="160.67" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="625.679" cy="142.003" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="735.682" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="735.682" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 19</text>
|
||||||
|
<circle cx="735.682" cy="123.335" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="754.35" cy="142.003" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="735.682" cy="160.67" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="717.014" cy="142.003" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="827.017" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="827.017" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 20</text>
|
||||||
|
<circle cx="827.017" cy="123.335" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="845.685" cy="142.003" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="827.017" cy="160.67" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="808.35" cy="142.003" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="142.003" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="142.003" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 22</text>
|
||||||
|
<circle cx="142.003" cy="214.67" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="160.67" cy="233.338" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="142.003" cy="252.006" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="123.335" cy="233.338" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="233.338" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="233.338" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 23</text>
|
||||||
|
<circle cx="233.338" cy="214.67" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="252.006" cy="233.338" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="233.338" cy="252.006" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="214.67" cy="233.338" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="324.673" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="324.673" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 24</text>
|
||||||
|
<circle cx="324.673" cy="214.67" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="343.341" cy="233.338" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="324.673" cy="252.006" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="306.006" cy="233.338" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="690.014" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="690.014" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 28</text>
|
||||||
|
<circle cx="690.014" cy="214.67" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="708.682" cy="233.338" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="690.014" cy="252.006" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="671.347" cy="233.338" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="187.67" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="187.67" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 31</text>
|
||||||
|
<circle cx="187.67" cy="306.006" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="206.338" cy="324.673" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="187.67" cy="343.341" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="169.003" cy="324.673" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="279.006" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="279.006" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 32</text>
|
||||||
|
<circle cx="279.006" cy="306.006" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="297.673" cy="324.673" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="279.006" cy="343.341" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="260.338" cy="324.673" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="553.011" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="553.011" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 35</text>
|
||||||
|
<circle cx="553.011" cy="306.006" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="571.679" cy="324.673" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="553.011" cy="343.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="534.344" cy="324.673" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="644.347" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="644.347" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 36</text>
|
||||||
|
<circle cx="644.347" cy="306.006" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="663.014" cy="324.673" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="644.347" cy="343.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="625.679" cy="324.673" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="735.682" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="735.682" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 37</text>
|
||||||
|
<circle cx="735.682" cy="306.006" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="754.35" cy="324.673" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="735.682" cy="343.341" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="717.014" cy="324.673" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="827.017" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="827.017" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 38</text>
|
||||||
|
<circle cx="827.017" cy="306.006" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="845.685" cy="324.673" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="827.017" cy="343.341" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="808.35" cy="324.673" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="233.338" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="233.338" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 39</text>
|
||||||
|
<circle cx="233.338" cy="397.341" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="252.006" cy="416.009" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="233.338" cy="434.676" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="214.67" cy="416.009" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="324.673" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="324.673" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 40</text>
|
||||||
|
<circle cx="324.673" cy="397.341" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="343.341" cy="416.009" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="324.673" cy="434.676" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="306.006" cy="416.009" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="507.344" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="507.344" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 42</text>
|
||||||
|
<circle cx="507.344" cy="397.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="526.011" cy="416.009" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="507.344" cy="434.676" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="488.676" cy="416.009" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="690.014" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="690.014" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 44</text>
|
||||||
|
<circle cx="690.014" cy="397.341" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="708.682" cy="416.009" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="690.014" cy="434.676" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="671.347" cy="416.009" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="781.35" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="781.35" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 45</text>
|
||||||
|
<circle cx="781.35" cy="397.341" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="800.017" cy="416.009" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="781.35" cy="434.676" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="762.682" cy="416.009" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1512.03" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1512.03" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 46</text>
|
||||||
|
<circle cx="1512.03" cy="32" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1530.7" cy="50.6676" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1512.03" cy="69.3352" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1493.36" cy="50.6676" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1694.7" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1694.7" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 48</text>
|
||||||
|
<circle cx="1694.7" cy="32" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1713.37" cy="50.6676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1694.7" cy="69.3352" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1676.03" cy="50.6676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1786.04" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1786.04" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 49</text>
|
||||||
|
<circle cx="1786.04" cy="32" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1804.7" cy="50.6676" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1786.04" cy="69.3352" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1767.37" cy="50.6676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2151.38" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2151.38" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 53</text>
|
||||||
|
<circle cx="2151.38" cy="32" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2170.05" cy="50.6676" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2151.38" cy="69.3352" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2132.71" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2242.71" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2242.71" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 54</text>
|
||||||
|
<circle cx="2242.71" cy="32" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2261.38" cy="50.6676" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2242.71" cy="69.3352" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2224.05" cy="50.6676" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2334.05" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2334.05" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 55</text>
|
||||||
|
<circle cx="2334.05" cy="32" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2352.72" cy="50.6676" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2334.05" cy="69.3352" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2315.38" cy="50.6676" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2425.38" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2425.38" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 56</text>
|
||||||
|
<circle cx="2425.38" cy="32" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2444.05" cy="50.6676" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2425.38" cy="69.3352" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2406.72" cy="50.6676" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1557.7" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1557.7" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 57</text>
|
||||||
|
<circle cx="1557.7" cy="123.335" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1576.37" cy="142.003" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1557.7" cy="160.67" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1539.03" cy="142.003" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1740.37" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1740.37" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 59</text>
|
||||||
|
<circle cx="1740.37" cy="123.335" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1759.04" cy="142.003" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1740.37" cy="160.67" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1721.7" cy="142.003" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1831.7" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1831.7" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 60</text>
|
||||||
|
<circle cx="1831.7" cy="123.335" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1850.37" cy="142.003" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1831.7" cy="160.67" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1813.04" cy="142.003" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1923.04" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1923.04" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 61</text>
|
||||||
|
<circle cx="1923.04" cy="123.335" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1941.71" cy="142.003" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1923.04" cy="160.67" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1904.37" cy="142.003" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2379.72" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2379.72" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 66</text>
|
||||||
|
<circle cx="2379.72" cy="123.335" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2398.38" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2379.72" cy="160.67" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2361.05" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1603.37" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1603.37" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 67</text>
|
||||||
|
<circle cx="1603.37" cy="214.67" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1622.03" cy="233.338" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1603.37" cy="252.006" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1584.7" cy="233.338" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1877.37" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1877.37" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 70</text>
|
||||||
|
<circle cx="1877.37" cy="214.67" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1896.04" cy="233.338" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1877.37" cy="252.006" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1858.7" cy="233.338" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2151.38" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2151.38" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 73</text>
|
||||||
|
<circle cx="2151.38" cy="214.67" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2170.05" cy="233.338" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2151.38" cy="252.006" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2132.71" cy="233.338" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2242.71" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2242.71" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 74</text>
|
||||||
|
<circle cx="2242.71" cy="214.67" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2261.38" cy="233.338" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2242.71" cy="252.006" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2224.05" cy="233.338" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2334.05" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2334.05" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 75</text>
|
||||||
|
<circle cx="2334.05" cy="214.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2352.72" cy="233.338" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2334.05" cy="252.006" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2315.38" cy="233.338" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1649.03" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1649.03" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 76</text>
|
||||||
|
<circle cx="1649.03" cy="306.006" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1667.7" cy="324.673" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1649.03" cy="343.341" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1630.37" cy="324.673" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1923.04" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1923.04" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 79</text>
|
||||||
|
<circle cx="1923.04" cy="306.006" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1941.71" cy="324.673" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1923.04" cy="343.341" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1904.37" cy="324.673" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2288.38" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="2288.38" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 83</text>
|
||||||
|
<circle cx="2288.38" cy="306.006" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2307.05" cy="324.673" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2288.38" cy="343.341" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2269.71" cy="324.673" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1786.04" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1786.04" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 84</text>
|
||||||
|
<circle cx="1786.04" cy="397.341" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1804.7" cy="416.009" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1786.04" cy="434.676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1767.37" cy="416.009" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1968.71" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<text x="1968.71" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 86</text>
|
||||||
|
<circle cx="1968.71" cy="397.341" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1987.38" cy="416.009" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1968.71" cy="434.676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1950.04" cy="416.009" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 42 KiB |
@@ -0,0 +1,476 @@
|
|||||||
|
[1]
|
||||||
|
Dr. Patrick Kaya = Hof 1, Tisch 1, Nummer 1
|
||||||
|
Dr. Christina Krause = Hof 1, Tisch 1, Nummer 2
|
||||||
|
Dr. Jan Bianchi = Hof 1, Tisch 1, Nummer 3
|
||||||
|
Marco Winkler = Hof 1, Tisch 1, Nummer 4
|
||||||
|
|
||||||
|
[2]
|
||||||
|
Julia Weber = Hof 1, Tisch 2, Nummer 1
|
||||||
|
Yusuf Bauer = Hof 1, Tisch 2, Nummer 2
|
||||||
|
Emre Klein = Hof 1, Tisch 2, Nummer 3
|
||||||
|
Prof. Dr. Yusuf Seidel = Hof 1, Tisch 2, Nummer 4
|
||||||
|
|
||||||
|
[3]
|
||||||
|
Dr. Markus Seidel = Hof 1, Tisch 3, Nummer 1
|
||||||
|
Giovanna Petrov = Hof 1, Tisch 3, Nummer 2
|
||||||
|
Christian Peters = Hof 1, Tisch 3, Nummer 3
|
||||||
|
Markus Kraus = Hof 1, Tisch 3, Nummer 4
|
||||||
|
|
||||||
|
[4]
|
||||||
|
Prof. Dr. Kathrin Petrov = Hof 1, Tisch 4, Nummer 1
|
||||||
|
Markus Schmitt = Hof 1, Tisch 4, Nummer 2
|
||||||
|
Dr. Nadine Stein = Hof 1, Tisch 4, Nummer 3
|
||||||
|
|
||||||
|
[5]
|
||||||
|
Beate Grothe = Hof 1, Tisch 5, Nummer 1
|
||||||
|
Viktoria Kessler = Hof 1, Tisch 5, Nummer 2
|
||||||
|
Dr. Ferdinand Kessler = Hof 1, Tisch 5, Nummer 3
|
||||||
|
Dr. h.c. Alexander Grothe = Hof 1, Tisch 5, Nummer 4
|
||||||
|
|
||||||
|
[6]
|
||||||
|
Dr. Konstantin Freiherr von Waldeck = Hof 1, Tisch 6, Nummer 1
|
||||||
|
Elisabeth Steinbach = Hof 1, Tisch 6, Nummer 2
|
||||||
|
Antonia Freifrau von Waldeck = Hof 1, Tisch 6, Nummer 3
|
||||||
|
Georg Steinbach = Hof 1, Tisch 6, Nummer 4
|
||||||
|
|
||||||
|
[7]
|
||||||
|
Maximilian Dallmann = Hof 1, Tisch 7, Nummer 1
|
||||||
|
Margarete Dallmann = Hof 1, Tisch 7, Nummer 2
|
||||||
|
Heinrich Dallmann = Hof 1, Tisch 7, Nummer 3
|
||||||
|
Charlotte Dallmann = Hof 1, Tisch 7, Nummer 4
|
||||||
|
|
||||||
|
[8]
|
||||||
|
|
||||||
|
[9]
|
||||||
|
Nadine Frank = Hof 1, Tisch 9, Nummer 1
|
||||||
|
Lena Frank = Hof 1, Tisch 9, Nummer 2
|
||||||
|
Finn Frank = Hof 1, Tisch 9, Nummer 3
|
||||||
|
|
||||||
|
[10]
|
||||||
|
Yusuf Engel = Hof 1, Tisch 10, Nummer 1
|
||||||
|
Marie Frank = Hof 1, Tisch 10, Nummer 2
|
||||||
|
Anja Engel = Hof 1, Tisch 10, Nummer 3
|
||||||
|
Dennis Frank = Hof 1, Tisch 10, Nummer 4
|
||||||
|
|
||||||
|
[11]
|
||||||
|
Julia Engel = Hof 1, Tisch 11, Nummer 1
|
||||||
|
Nicole Engel = Hof 1, Tisch 11, Nummer 2
|
||||||
|
Anton Engel = Hof 1, Tisch 11, Nummer 3
|
||||||
|
|
||||||
|
[12]
|
||||||
|
Thomas Winkler = Hof 1, Tisch 12, Nummer 1
|
||||||
|
Dr. Jan Esposito = Hof 1, Tisch 12, Nummer 2
|
||||||
|
Nicole Schmidt = Hof 1, Tisch 12, Nummer 3
|
||||||
|
Thomas Hansen = Hof 1, Tisch 12, Nummer 4
|
||||||
|
|
||||||
|
[13]
|
||||||
|
Dr. Stefanie Seifert = Hof 1, Tisch 13, Nummer 1
|
||||||
|
Prof. Dr. Julia Roth = Hof 1, Tisch 13, Nummer 2
|
||||||
|
Julia Nguyen = Hof 1, Tisch 13, Nummer 3
|
||||||
|
|
||||||
|
[14]
|
||||||
|
Sergej Aksoy = Hof 1, Tisch 14, Nummer 1
|
||||||
|
Luca Aksoy = Hof 1, Tisch 14, Nummer 2
|
||||||
|
Nadine Aksoy = Hof 1, Tisch 14, Nummer 3
|
||||||
|
Sofia Aksoy = Hof 1, Tisch 14, Nummer 4
|
||||||
|
|
||||||
|
[15]
|
||||||
|
Henry Kovac = Hof 1, Tisch 15, Nummer 1
|
||||||
|
Anja Kovac = Hof 1, Tisch 15, Nummer 2
|
||||||
|
Lena Kovac = Hof 1, Tisch 15, Nummer 3
|
||||||
|
Marco Kovac = Hof 1, Tisch 15, Nummer 4
|
||||||
|
|
||||||
|
[16]
|
||||||
|
Giovanna Lehmann = Hof 1, Tisch 16, Nummer 1
|
||||||
|
Milan Lehmann = Hof 1, Tisch 16, Nummer 2
|
||||||
|
Markus Lehmann = Hof 1, Tisch 16, Nummer 3
|
||||||
|
Layla Lehmann = Hof 1, Tisch 16, Nummer 4
|
||||||
|
|
||||||
|
[17]
|
||||||
|
Sarah Albrecht = Hof 1, Tisch 17, Nummer 1
|
||||||
|
Nicole Lehmann = Hof 1, Tisch 17, Nummer 2
|
||||||
|
Thomas Lehmann = Hof 1, Tisch 17, Nummer 3
|
||||||
|
Andreas Albrecht = Hof 1, Tisch 17, Nummer 4
|
||||||
|
|
||||||
|
[18]
|
||||||
|
Svenja Simon = Hof 1, Tisch 18, Nummer 1
|
||||||
|
Prof. Dr. Yusuf Albrecht = Hof 1, Tisch 18, Nummer 2
|
||||||
|
Prof. Dr. Markus Stein = Hof 1, Tisch 18, Nummer 3
|
||||||
|
Matthias Popescu = Hof 1, Tisch 18, Nummer 4
|
||||||
|
|
||||||
|
[19]
|
||||||
|
Dr. Sandra Demir = Hof 1, Tisch 19, Nummer 1
|
||||||
|
Prof. Dr. Timo Kaya = Hof 1, Tisch 19, Nummer 2
|
||||||
|
Patrick Celik = Hof 1, Tisch 19, Nummer 3
|
||||||
|
Elif Celik = Hof 1, Tisch 19, Nummer 4
|
||||||
|
|
||||||
|
[20]
|
||||||
|
Lena Winkler = Hof 1, Tisch 20, Nummer 1
|
||||||
|
Patrick Winkler = Hof 1, Tisch 20, Nummer 2
|
||||||
|
Kathrin Petrov = Hof 1, Tisch 20, Nummer 3
|
||||||
|
Milan Petrov = Hof 1, Tisch 20, Nummer 4
|
||||||
|
|
||||||
|
[21]
|
||||||
|
Mia Bianchi = Hof 1, Tisch 21, Nummer 1
|
||||||
|
Sandra Bianchi = Hof 1, Tisch 21, Nummer 2
|
||||||
|
Thomas Bianchi = Hof 1, Tisch 21, Nummer 3
|
||||||
|
|
||||||
|
[22]
|
||||||
|
Sofia Schmitt = Hof 1, Tisch 22, Nummer 1
|
||||||
|
Nicole Seifert = Hof 1, Tisch 22, Nummer 2
|
||||||
|
Sarah Schmitt = Hof 1, Tisch 22, Nummer 3
|
||||||
|
Markus Schmitt = Hof 1, Tisch 22, Nummer 4
|
||||||
|
|
||||||
|
[23]
|
||||||
|
Yusuf Seifert = Hof 1, Tisch 23, Nummer 1
|
||||||
|
Leni Seifert = Hof 1, Tisch 23, Nummer 2
|
||||||
|
Elif Seifert = Hof 1, Tisch 23, Nummer 3
|
||||||
|
Timo Seifert = Hof 1, Tisch 23, Nummer 4
|
||||||
|
|
||||||
|
[24]
|
||||||
|
Thomas Aksoy = Hof 1, Tisch 24, Nummer 1
|
||||||
|
Tobias Kovac = Hof 1, Tisch 24, Nummer 2
|
||||||
|
Marija Kovac = Hof 1, Tisch 24, Nummer 3
|
||||||
|
Marie Aksoy = Hof 1, Tisch 24, Nummer 4
|
||||||
|
|
||||||
|
[25]
|
||||||
|
Anton Berger = Hof 1, Tisch 25, Nummer 1
|
||||||
|
Jennifer Berger = Hof 1, Tisch 25, Nummer 2
|
||||||
|
Layla Berger = Hof 1, Tisch 25, Nummer 3
|
||||||
|
|
||||||
|
[26]
|
||||||
|
Marija Becker = Hof 1, Tisch 26, Nummer 1
|
||||||
|
Prof. Dr. Yusuf Esposito = Hof 1, Tisch 26, Nummer 2
|
||||||
|
Matthias Kovac = Hof 1, Tisch 26, Nummer 3
|
||||||
|
|
||||||
|
[27]
|
||||||
|
|
||||||
|
[28]
|
||||||
|
Emre Busch = Hof 1, Tisch 28, Nummer 1
|
||||||
|
Olga Busch = Hof 1, Tisch 28, Nummer 2
|
||||||
|
Michael Busch = Hof 1, Tisch 28, Nummer 3
|
||||||
|
Marie Busch = Hof 1, Tisch 28, Nummer 4
|
||||||
|
|
||||||
|
[29]
|
||||||
|
Melanie Rossi = Hof 1, Tisch 29, Nummer 1
|
||||||
|
Luca Rossi = Hof 1, Tisch 29, Nummer 2
|
||||||
|
Emilia Rossi = Hof 1, Tisch 29, Nummer 3
|
||||||
|
|
||||||
|
[30]
|
||||||
|
Olga Hansen = Hof 1, Tisch 30, Nummer 1
|
||||||
|
Markus Hansen = Hof 1, Tisch 30, Nummer 2
|
||||||
|
Giovanna Hansen = Hof 1, Tisch 30, Nummer 3
|
||||||
|
|
||||||
|
[31]
|
||||||
|
Matthias Richter = Hof 1, Tisch 31, Nummer 1
|
||||||
|
Greta Richter = Hof 1, Tisch 31, Nummer 2
|
||||||
|
Anton Richter = Hof 1, Tisch 31, Nummer 3
|
||||||
|
Anja Richter = Hof 1, Tisch 31, Nummer 4
|
||||||
|
|
||||||
|
[32]
|
||||||
|
Olga Tran = Hof 1, Tisch 32, Nummer 1
|
||||||
|
Prof. Dr. Dennis Werner = Hof 1, Tisch 32, Nummer 2
|
||||||
|
Dr. Thomas Hoffmann = Hof 1, Tisch 32, Nummer 3
|
||||||
|
Dr. Anja Seidel = Hof 1, Tisch 32, Nummer 4
|
||||||
|
|
||||||
|
[33]
|
||||||
|
Andreas Berger = Hof 1, Tisch 33, Nummer 1
|
||||||
|
Svenja Berger = Hof 1, Tisch 33, Nummer 2
|
||||||
|
Stefan Berger = Hof 1, Tisch 33, Nummer 3
|
||||||
|
|
||||||
|
[34]
|
||||||
|
|
||||||
|
[35]
|
||||||
|
Felix Nowak = Hof 1, Tisch 35, Nummer 1
|
||||||
|
Noah Nowak = Hof 1, Tisch 35, Nummer 2
|
||||||
|
Lina Nowak = Hof 1, Tisch 35, Nummer 3
|
||||||
|
Markus Nowak = Hof 1, Tisch 35, Nummer 4
|
||||||
|
|
||||||
|
[36]
|
||||||
|
Jan Braun = Hof 1, Tisch 36, Nummer 1
|
||||||
|
Aylin Nowak = Hof 1, Tisch 36, Nummer 2
|
||||||
|
Kathrin Nowak = Hof 1, Tisch 36, Nummer 3
|
||||||
|
Dragana Braun = Hof 1, Tisch 36, Nummer 4
|
||||||
|
|
||||||
|
[37]
|
||||||
|
Christian Braun = Hof 1, Tisch 37, Nummer 1
|
||||||
|
Julia Braun = Hof 1, Tisch 37, Nummer 2
|
||||||
|
Nadine Braun = Hof 1, Tisch 37, Nummer 3
|
||||||
|
Milan Braun = Hof 1, Tisch 37, Nummer 4
|
||||||
|
|
||||||
|
[38]
|
||||||
|
Prof. Dr. Emre Ludwig = Hof 1, Tisch 38, Nummer 1
|
||||||
|
Daniel Krause = Hof 1, Tisch 38, Nummer 2
|
||||||
|
Markus Klein = Hof 1, Tisch 38, Nummer 3
|
||||||
|
Nicole Aksoy = Hof 1, Tisch 38, Nummer 4
|
||||||
|
|
||||||
|
[39]
|
||||||
|
Sandra Werner = Hof 1, Tisch 39, Nummer 1
|
||||||
|
Marco Werner = Hof 1, Tisch 39, Nummer 2
|
||||||
|
Andreas Werner = Hof 1, Tisch 39, Nummer 3
|
||||||
|
Nadine Werner = Hof 1, Tisch 39, Nummer 4
|
||||||
|
|
||||||
|
[40]
|
||||||
|
Marija Polat = Hof 1, Tisch 40, Nummer 1
|
||||||
|
Marco Richter = Hof 1, Tisch 40, Nummer 2
|
||||||
|
Nadine Arnold = Hof 1, Tisch 40, Nummer 3
|
||||||
|
Prof. Dr. Patrick Hoffmann = Hof 1, Tisch 40, Nummer 4
|
||||||
|
|
||||||
|
[41]
|
||||||
|
Thomas Krause = Hof 1, Tisch 41, Nummer 1
|
||||||
|
Nicole Peters = Hof 1, Tisch 41, Nummer 2
|
||||||
|
|
||||||
|
[42]
|
||||||
|
Dragana Bauer = Hof 1, Tisch 42, Nummer 1
|
||||||
|
Dr. Nicole Hansen = Hof 1, Tisch 42, Nummer 2
|
||||||
|
Patrick Haas = Hof 1, Tisch 42, Nummer 3
|
||||||
|
Prof. Dr. Sergej Ott = Hof 1, Tisch 42, Nummer 4
|
||||||
|
|
||||||
|
[43]
|
||||||
|
Nicole Kaya = Hof 1, Tisch 43, Nummer 1
|
||||||
|
Luca Kaya = Hof 1, Tisch 43, Nummer 2
|
||||||
|
Christina Kaya = Hof 1, Tisch 43, Nummer 3
|
||||||
|
|
||||||
|
[44]
|
||||||
|
Marie Schmidt = Hof 1, Tisch 44, Nummer 1
|
||||||
|
Giovanna Schmidt = Hof 1, Tisch 44, Nummer 2
|
||||||
|
Andreas Weber = Hof 1, Tisch 44, Nummer 3
|
||||||
|
Matthias Schmidt = Hof 1, Tisch 44, Nummer 4
|
||||||
|
|
||||||
|
[45]
|
||||||
|
Markus Barth = Hof 1, Tisch 45, Nummer 1
|
||||||
|
Prof. Dr. Julia Richter = Hof 1, Tisch 45, Nummer 2
|
||||||
|
Dr. Jennifer Haas = Hof 1, Tisch 45, Nummer 3
|
||||||
|
Matthias Petrov = Hof 1, Tisch 45, Nummer 4
|
||||||
|
|
||||||
|
[46]
|
||||||
|
Sarah Wagner = Hof 2, Tisch 46, Nummer 1
|
||||||
|
Henry Wagner = Hof 2, Tisch 46, Nummer 2
|
||||||
|
Nicole Wagner = Hof 2, Tisch 46, Nummer 3
|
||||||
|
Marco Wagner = Hof 2, Tisch 46, Nummer 4
|
||||||
|
|
||||||
|
[47]
|
||||||
|
|
||||||
|
[48]
|
||||||
|
Emil Koch = Hof 2, Tisch 48, Nummer 1
|
||||||
|
Marie Koch = Hof 2, Tisch 48, Nummer 2
|
||||||
|
Olga Koch = Hof 2, Tisch 48, Nummer 3
|
||||||
|
Jan Koch = Hof 2, Tisch 48, Nummer 4
|
||||||
|
|
||||||
|
[49]
|
||||||
|
Patrick Busch = Hof 2, Tisch 49, Nummer 1
|
||||||
|
Emre Hoffmann = Hof 2, Tisch 49, Nummer 2
|
||||||
|
Michael Koch = Hof 2, Tisch 49, Nummer 3
|
||||||
|
Sarah Koch = Hof 2, Tisch 49, Nummer 4
|
||||||
|
|
||||||
|
[50]
|
||||||
|
Jan Becker = Hof 2, Tisch 50, Nummer 1
|
||||||
|
Sandra Becker = Hof 2, Tisch 50, Nummer 2
|
||||||
|
Nicole Becker = Hof 2, Tisch 50, Nummer 3
|
||||||
|
|
||||||
|
[51]
|
||||||
|
Sofia Nguyen = Hof 2, Tisch 51, Nummer 1
|
||||||
|
Anja Nguyen = Hof 2, Tisch 51, Nummer 2
|
||||||
|
Daniel Nguyen = Hof 2, Tisch 51, Nummer 3
|
||||||
|
|
||||||
|
[52]
|
||||||
|
Mila Arnold = Hof 2, Tisch 52, Nummer 1
|
||||||
|
Christian Arnold = Hof 2, Tisch 52, Nummer 2
|
||||||
|
Leni Arnold = Hof 2, Tisch 52, Nummer 3
|
||||||
|
|
||||||
|
[53]
|
||||||
|
Sarah Polat = Hof 2, Tisch 53, Nummer 1
|
||||||
|
Stefan Polat = Hof 2, Tisch 53, Nummer 2
|
||||||
|
Patrick Arnold = Hof 2, Tisch 53, Nummer 3
|
||||||
|
Jennifer Arnold = Hof 2, Tisch 53, Nummer 4
|
||||||
|
|
||||||
|
[54]
|
||||||
|
Kathrin Polat = Hof 2, Tisch 54, Nummer 1
|
||||||
|
Sergej Petrov = Hof 2, Tisch 54, Nummer 2
|
||||||
|
Prof. Dr. Thomas Tran = Hof 2, Tisch 54, Nummer 3
|
||||||
|
Marija Aksoy = Hof 2, Tisch 54, Nummer 4
|
||||||
|
|
||||||
|
[55]
|
||||||
|
Kathrin Sahin = Hof 2, Tisch 55, Nummer 1
|
||||||
|
Patrick Sahin = Hof 2, Tisch 55, Nummer 2
|
||||||
|
Markus Sahin = Hof 2, Tisch 55, Nummer 3
|
||||||
|
Nicole Sahin = Hof 2, Tisch 55, Nummer 4
|
||||||
|
|
||||||
|
[56]
|
||||||
|
Emre Ludwig = Hof 2, Tisch 56, Nummer 1
|
||||||
|
Elias Ludwig = Hof 2, Tisch 56, Nummer 2
|
||||||
|
Elif Ludwig = Hof 2, Tisch 56, Nummer 3
|
||||||
|
Giovanna Ludwig = Hof 2, Tisch 56, Nummer 4
|
||||||
|
|
||||||
|
[57]
|
||||||
|
Dr. Olga Klein = Hof 2, Tisch 57, Nummer 1
|
||||||
|
Prof. Dr. Marco Seifert = Hof 2, Tisch 57, Nummer 2
|
||||||
|
Dr. Aylin Ludwig = Hof 2, Tisch 57, Nummer 3
|
||||||
|
Dr. Patrick Kraus = Hof 2, Tisch 57, Nummer 4
|
||||||
|
|
||||||
|
[58]
|
||||||
|
Yusuf Weber = Hof 2, Tisch 58, Nummer 1
|
||||||
|
Giovanna Schwarz = Hof 2, Tisch 58, Nummer 2
|
||||||
|
Matthias Krause = Hof 2, Tisch 58, Nummer 3
|
||||||
|
|
||||||
|
[59]
|
||||||
|
Katrin Werner = Hof 2, Tisch 59, Nummer 1
|
||||||
|
Sergej Lange = Hof 2, Tisch 59, Nummer 2
|
||||||
|
Dr. Michael Aksoy = Hof 2, Tisch 59, Nummer 3
|
||||||
|
Prof. Dr. Dragana Dietrich = Hof 2, Tisch 59, Nummer 4
|
||||||
|
|
||||||
|
[60]
|
||||||
|
Arda Maier = Hof 2, Tisch 60, Nummer 1
|
||||||
|
Olga Maier = Hof 2, Tisch 60, Nummer 2
|
||||||
|
Christian Maier = Hof 2, Tisch 60, Nummer 3
|
||||||
|
Sarah Maier = Hof 2, Tisch 60, Nummer 4
|
||||||
|
|
||||||
|
[61]
|
||||||
|
Andreas Simon = Hof 2, Tisch 61, Nummer 1
|
||||||
|
Markus Simon = Hof 2, Tisch 61, Nummer 2
|
||||||
|
Emma Simon = Hof 2, Tisch 61, Nummer 3
|
||||||
|
Lena Simon = Hof 2, Tisch 61, Nummer 4
|
||||||
|
|
||||||
|
[62]
|
||||||
|
Patrick Zimmermann = Hof 2, Tisch 62, Nummer 1
|
||||||
|
Stefan Richter = Hof 2, Tisch 62, Nummer 2
|
||||||
|
Prof. Dr. Dennis Schmitt = Hof 2, Tisch 62, Nummer 3
|
||||||
|
|
||||||
|
[63]
|
||||||
|
Milan Klein = Hof 2, Tisch 63, Nummer 1
|
||||||
|
Stefanie Klein = Hof 2, Tisch 63, Nummer 2
|
||||||
|
Lina Klein = Hof 2, Tisch 63, Nummer 3
|
||||||
|
|
||||||
|
[64]
|
||||||
|
Sarah Roth = Hof 2, Tisch 64, Nummer 1
|
||||||
|
Christian Roth = Hof 2, Tisch 64, Nummer 2
|
||||||
|
Sofia Roth = Hof 2, Tisch 64, Nummer 3
|
||||||
|
|
||||||
|
[65]
|
||||||
|
Thomas Sahin = Hof 2, Tisch 65, Nummer 1
|
||||||
|
Prof. Dr. Anja Richter = Hof 2, Tisch 65, Nummer 2
|
||||||
|
Dr. Jan Thiel = Hof 2, Tisch 65, Nummer 3
|
||||||
|
|
||||||
|
[66]
|
||||||
|
Patrick Barth = Hof 2, Tisch 66, Nummer 1
|
||||||
|
Nadine Barth = Hof 2, Tisch 66, Nummer 2
|
||||||
|
Timo Barth = Hof 2, Tisch 66, Nummer 3
|
||||||
|
Lina Barth = Hof 2, Tisch 66, Nummer 4
|
||||||
|
|
||||||
|
[67]
|
||||||
|
Prof. Dr. Emre Albrecht = Hof 2, Tisch 67, Nummer 1
|
||||||
|
Olga Roth = Hof 2, Tisch 67, Nummer 2
|
||||||
|
Dr. Jennifer Arnold = Hof 2, Tisch 67, Nummer 3
|
||||||
|
Thomas Bianchi = Hof 2, Tisch 67, Nummer 4
|
||||||
|
|
||||||
|
[68]
|
||||||
|
Katrin Weber = Hof 2, Tisch 68, Nummer 1
|
||||||
|
Dr. Kathrin Koch = Hof 2, Tisch 68, Nummer 2
|
||||||
|
Dr. Julia Kuhn = Hof 2, Tisch 68, Nummer 3
|
||||||
|
|
||||||
|
[69]
|
||||||
|
Marija Tran = Hof 2, Tisch 69, Nummer 1
|
||||||
|
Luca Werner = Hof 2, Tisch 69, Nummer 2
|
||||||
|
Prof. Dr. Stefan Schmitt = Hof 2, Tisch 69, Nummer 3
|
||||||
|
|
||||||
|
[70]
|
||||||
|
Jan Zimmermann = Hof 2, Tisch 70, Nummer 1
|
||||||
|
Markus Zimmermann = Hof 2, Tisch 70, Nummer 2
|
||||||
|
Mia Zimmermann = Hof 2, Tisch 70, Nummer 3
|
||||||
|
Svenja Zimmermann = Hof 2, Tisch 70, Nummer 4
|
||||||
|
|
||||||
|
[71]
|
||||||
|
Luca Kovac = Hof 2, Tisch 71, Nummer 1
|
||||||
|
Dr. Dragana Krause = Hof 2, Tisch 71, Nummer 2
|
||||||
|
Luca Ott = Hof 2, Tisch 71, Nummer 3
|
||||||
|
|
||||||
|
[72]
|
||||||
|
Dragana Lange = Hof 2, Tisch 72, Nummer 1
|
||||||
|
Michael Lange = Hof 2, Tisch 72, Nummer 2
|
||||||
|
Sofia Lange = Hof 2, Tisch 72, Nummer 3
|
||||||
|
|
||||||
|
[73]
|
||||||
|
Michael Franke = Hof 2, Tisch 73, Nummer 1
|
||||||
|
Amira Franke = Hof 2, Tisch 73, Nummer 2
|
||||||
|
Svenja Lange = Hof 2, Tisch 73, Nummer 3
|
||||||
|
Jan Lange = Hof 2, Tisch 73, Nummer 4
|
||||||
|
|
||||||
|
[74]
|
||||||
|
Emma Krause = Hof 2, Tisch 74, Nummer 1
|
||||||
|
Julia Krause = Hof 2, Tisch 74, Nummer 2
|
||||||
|
Arda Krause = Hof 2, Tisch 74, Nummer 3
|
||||||
|
Andreas Krause = Hof 2, Tisch 74, Nummer 4
|
||||||
|
|
||||||
|
[75]
|
||||||
|
Mia Pohl = Hof 2, Tisch 75, Nummer 1
|
||||||
|
Theo Pohl = Hof 2, Tisch 75, Nummer 2
|
||||||
|
Dragana Pohl = Hof 2, Tisch 75, Nummer 3
|
||||||
|
Emre Pohl = Hof 2, Tisch 75, Nummer 4
|
||||||
|
|
||||||
|
[76]
|
||||||
|
Giovanna Stein = Hof 2, Tisch 76, Nummer 1
|
||||||
|
Thomas Stein = Hof 2, Tisch 76, Nummer 2
|
||||||
|
Emilia Stein = Hof 2, Tisch 76, Nummer 3
|
||||||
|
Ben Stein = Hof 2, Tisch 76, Nummer 4
|
||||||
|
|
||||||
|
[77]
|
||||||
|
Dr. Nadine Berger = Hof 2, Tisch 77, Nummer 1
|
||||||
|
Prof. Dr. Yusuf Ott = Hof 2, Tisch 77, Nummer 2
|
||||||
|
Patrick Lehmann = Hof 2, Tisch 77, Nummer 3
|
||||||
|
|
||||||
|
[78]
|
||||||
|
Jennifer Dietrich = Hof 2, Tisch 78, Nummer 1
|
||||||
|
Marco Dietrich = Hof 2, Tisch 78, Nummer 2
|
||||||
|
Sofia Dietrich = Hof 2, Tisch 78, Nummer 3
|
||||||
|
|
||||||
|
[79]
|
||||||
|
Thomas Wolf = Hof 2, Tisch 79, Nummer 1
|
||||||
|
Julia Wolf = Hof 2, Tisch 79, Nummer 2
|
||||||
|
Emma Wolf = Hof 2, Tisch 79, Nummer 3
|
||||||
|
Ben Wolf = Hof 2, Tisch 79, Nummer 4
|
||||||
|
|
||||||
|
[80]
|
||||||
|
Matthias Ott = Hof 2, Tisch 80, Nummer 1
|
||||||
|
Hannah Ott = Hof 2, Tisch 80, Nummer 2
|
||||||
|
Melanie Ott = Hof 2, Tisch 80, Nummer 3
|
||||||
|
|
||||||
|
[81]
|
||||||
|
Julia Franke = Hof 2, Tisch 81, Nummer 1
|
||||||
|
Marco Franke = Hof 2, Tisch 81, Nummer 2
|
||||||
|
Olga Franke = Hof 2, Tisch 81, Nummer 3
|
||||||
|
|
||||||
|
[82]
|
||||||
|
Christina Thiel = Hof 2, Tisch 82, Nummer 1
|
||||||
|
Julia Thiel = Hof 2, Tisch 82, Nummer 2
|
||||||
|
Yusuf Thiel = Hof 2, Tisch 82, Nummer 3
|
||||||
|
|
||||||
|
[83]
|
||||||
|
Matteo Neumann = Hof 2, Tisch 83, Nummer 1
|
||||||
|
Lina Neumann = Hof 2, Tisch 83, Nummer 2
|
||||||
|
Jennifer Neumann = Hof 2, Tisch 83, Nummer 3
|
||||||
|
Thomas Neumann = Hof 2, Tisch 83, Nummer 4
|
||||||
|
|
||||||
|
[84]
|
||||||
|
Michael Horn = Hof 2, Tisch 84, Nummer 1
|
||||||
|
Layla Horn = Hof 2, Tisch 84, Nummer 2
|
||||||
|
Kathrin Horn = Hof 2, Tisch 84, Nummer 3
|
||||||
|
Leon Horn = Hof 2, Tisch 84, Nummer 4
|
||||||
|
|
||||||
|
[85]
|
||||||
|
Thomas Hartmann = Hof 2, Tisch 85, Nummer 1
|
||||||
|
Olga Hartmann = Hof 2, Tisch 85, Nummer 2
|
||||||
|
Deniz Hartmann = Hof 2, Tisch 85, Nummer 3
|
||||||
|
|
||||||
|
[86]
|
||||||
|
Nadine Hartmann = Hof 2, Tisch 86, Nummer 1
|
||||||
|
Marija Hartmann = Hof 2, Tisch 86, Nummer 2
|
||||||
|
Olga Ott = Hof 2, Tisch 86, Nummer 3
|
||||||
|
Daniel Ott = Hof 2, Tisch 86, Nummer 4
|
||||||
|
|
||||||
|
[87]
|
||||||
|
|
||||||
|
[88]
|
||||||
|
Markus Polat = Hof 2, Tisch 88, Nummer 1
|
||||||
|
Katrin Polat = Hof 2, Tisch 88, Nummer 2
|
||||||
|
Stefanie Polat = Hof 2, Tisch 88, Nummer 3
|
||||||
|
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1240" height="420" viewBox="0 0 1240 420" font-family="sans-serif">
|
||||||
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
|
<text x="620" y="26" text-anchor="middle" font-size="18" fill="#333">Sommerfest — Umfeld/Grundriss: zwei trapezfoermige Innenhoefe (88 Vierertische, 300 Gaeste)</text>
|
||||||
|
<polygon points="48,96 512,96 432,320 128,320" fill="#f5f0e6" stroke="#7a6a50" stroke-width="2"/>
|
||||||
|
<text x="280" y="342" text-anchor="middle" font-size="14" fill="#7a6a50">Hof 1 (Tische 1-45)</text>
|
||||||
|
<polygon points="688,96 1152,96 1032,320 808,320" fill="#f5f0e6" stroke="#7a6a50" stroke-width="2"/>
|
||||||
|
<text x="920" y="342" text-anchor="middle" font-size="14" fill="#7a6a50">Hof 2 (Tische 46-88)</text>
|
||||||
|
<rect x="536" y="24" width="168" height="48" fill="#d9c9e8" stroke="#6b4d8a" stroke-width="2"/>
|
||||||
|
<text x="620" y="50" text-anchor="middle" font-size="13" fill="#4a3465">Buehne — Band</text>
|
||||||
|
<rect x="536" y="92" width="168" height="176" fill="#cfe3f0" stroke="#4a7ba0" stroke-width="2" stroke-dasharray="8 4"/>
|
||||||
|
<text x="620" y="180" text-anchor="middle" font-size="13" fill="#2d566f">Tanzflaeche</text>
|
||||||
|
<text x="16" y="208" text-anchor="start" font-size="12" fill="#a03030">Eingang West</text>
|
||||||
|
<text x="1184" y="208" text-anchor="end" font-size="12" fill="#a03030">Eingang Ost</text>
|
||||||
|
<text x="620" y="328" text-anchor="middle" font-size="12" fill="#a03030">Eingang Sued</text>
|
||||||
|
<polygon points="42,192 42,224 66,208" fill="#a03030"/>
|
||||||
|
<polygon points="1158,192 1158,224 1134,208" fill="#a03030"/>
|
||||||
|
<polygon points="604,318 636,318 620,294" fill="#a03030"/>
|
||||||
|
<circle cx="80" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="120" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="160" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="200" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="240" cy="128" r="12" fill="white" stroke="#c0392b" stroke-width="2.5"/>
|
||||||
|
<text x="240" y="131" text-anchor="middle" font-size="9" fill="#c0392b">VIP</text>
|
||||||
|
<circle cx="280" cy="128" r="12" fill="white" stroke="#c0392b" stroke-width="2.5"/>
|
||||||
|
<text x="280" y="131" text-anchor="middle" font-size="9" fill="#c0392b">VIP</text>
|
||||||
|
<circle cx="320" cy="128" r="12" fill="white" stroke="#c0392b" stroke-width="2.5"/>
|
||||||
|
<text x="320" y="131" text-anchor="middle" font-size="9" fill="#c0392b">VIP</text>
|
||||||
|
<circle cx="360" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="400" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="440" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="480" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="100" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="140" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="180" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="220" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="260" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="300" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="340" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="380" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="420" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="460" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="120" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="160" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="200" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="240" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="280" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="320" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="360" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="400" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="440" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="140" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="180" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="220" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="260" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="300" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="340" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="380" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="420" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="160" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="200" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="240" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="280" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="320" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="360" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="400" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="720" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="760" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="800" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="840" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="880" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="920" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="960" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1000" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1040" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1080" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1120" cy="128" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="740" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="780" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="820" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="860" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="900" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="940" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="980" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1020" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1060" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1100" cy="168" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="760" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="800" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="840" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="880" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="920" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="960" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1000" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1040" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1080" cy="208" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="780" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="820" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="860" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="900" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="940" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="980" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1020" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1060" cy="248" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="840" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="880" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="920" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="960" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<circle cx="1000" cy="288" r="12" fill="white" stroke="#999999" stroke-width="1"/>
|
||||||
|
<text x="620" y="408" text-anchor="middle" font-size="11" fill="#888">Umfeld.svg — Grundriss-Elemente (Buehne, Band, Tanzflaeche, Eingaenge) werden nicht mitoptimiert; VIP-Tische 5/6/7 vor der Buehne</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 9.1 KiB |
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,615 @@
|
|||||||
|
[1]
|
||||||
|
Nummer=1
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[2, 12]
|
||||||
|
Koordinaten=(0,0)
|
||||||
|
|
||||||
|
[2]
|
||||||
|
Nummer=2
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[1, 3, 12, 13]
|
||||||
|
Koordinaten=(1,0)
|
||||||
|
|
||||||
|
[3]
|
||||||
|
Nummer=3
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[2, 4, 13, 14]
|
||||||
|
Koordinaten=(2,0)
|
||||||
|
|
||||||
|
[4]
|
||||||
|
Nummer=4
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[3, 5, 14, 15]
|
||||||
|
Koordinaten=(3,0)
|
||||||
|
|
||||||
|
[5]
|
||||||
|
Nummer=5
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[4, 6, 15, 16]
|
||||||
|
Koordinaten=(4,0)
|
||||||
|
|
||||||
|
[6]
|
||||||
|
Nummer=6
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[5, 7, 16, 17]
|
||||||
|
Koordinaten=(5,0)
|
||||||
|
|
||||||
|
[7]
|
||||||
|
Nummer=7
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[6, 8, 17, 18]
|
||||||
|
Koordinaten=(6,0)
|
||||||
|
|
||||||
|
[8]
|
||||||
|
Nummer=8
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[7, 9, 18, 19]
|
||||||
|
Koordinaten=(7,0)
|
||||||
|
|
||||||
|
[9]
|
||||||
|
Nummer=9
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[8, 10, 19, 20]
|
||||||
|
Koordinaten=(8,0)
|
||||||
|
|
||||||
|
[10]
|
||||||
|
Nummer=10
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[9, 11, 20, 21]
|
||||||
|
Koordinaten=(9,0)
|
||||||
|
|
||||||
|
[11]
|
||||||
|
Nummer=11
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[10, 21]
|
||||||
|
Koordinaten=(10,0)
|
||||||
|
|
||||||
|
[12]
|
||||||
|
Nummer=12
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[1, 2, 13, 22]
|
||||||
|
Koordinaten=(0.5,1)
|
||||||
|
|
||||||
|
[13]
|
||||||
|
Nummer=13
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[2, 3, 12, 14, 22, 23]
|
||||||
|
Koordinaten=(1.5,1)
|
||||||
|
|
||||||
|
[14]
|
||||||
|
Nummer=14
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[3, 4, 13, 15, 23, 24]
|
||||||
|
Koordinaten=(2.5,1)
|
||||||
|
|
||||||
|
[15]
|
||||||
|
Nummer=15
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[4, 5, 14, 16, 24, 25]
|
||||||
|
Koordinaten=(3.5,1)
|
||||||
|
|
||||||
|
[16]
|
||||||
|
Nummer=16
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[5, 6, 15, 17, 25, 26]
|
||||||
|
Koordinaten=(4.5,1)
|
||||||
|
|
||||||
|
[17]
|
||||||
|
Nummer=17
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[6, 7, 16, 18, 26, 27]
|
||||||
|
Koordinaten=(5.5,1)
|
||||||
|
|
||||||
|
[18]
|
||||||
|
Nummer=18
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[7, 8, 17, 19, 27, 28]
|
||||||
|
Koordinaten=(6.5,1)
|
||||||
|
|
||||||
|
[19]
|
||||||
|
Nummer=19
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[8, 9, 18, 20, 28, 29]
|
||||||
|
Koordinaten=(7.5,1)
|
||||||
|
|
||||||
|
[20]
|
||||||
|
Nummer=20
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[9, 10, 19, 21, 29, 30]
|
||||||
|
Koordinaten=(8.5,1)
|
||||||
|
|
||||||
|
[21]
|
||||||
|
Nummer=21
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[10, 11, 20, 30]
|
||||||
|
Koordinaten=(9.5,1)
|
||||||
|
|
||||||
|
[22]
|
||||||
|
Nummer=22
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[12, 13, 23, 31]
|
||||||
|
Koordinaten=(1,2)
|
||||||
|
|
||||||
|
[23]
|
||||||
|
Nummer=23
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[13, 14, 22, 24, 31, 32]
|
||||||
|
Koordinaten=(2,2)
|
||||||
|
|
||||||
|
[24]
|
||||||
|
Nummer=24
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[14, 15, 23, 25, 32, 33]
|
||||||
|
Koordinaten=(3,2)
|
||||||
|
|
||||||
|
[25]
|
||||||
|
Nummer=25
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[15, 16, 24, 26, 33, 34]
|
||||||
|
Koordinaten=(4,2)
|
||||||
|
|
||||||
|
[26]
|
||||||
|
Nummer=26
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[16, 17, 25, 27, 34, 35]
|
||||||
|
Koordinaten=(5,2)
|
||||||
|
|
||||||
|
[27]
|
||||||
|
Nummer=27
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[17, 18, 26, 28, 35, 36]
|
||||||
|
Koordinaten=(6,2)
|
||||||
|
|
||||||
|
[28]
|
||||||
|
Nummer=28
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[18, 19, 27, 29, 36, 37]
|
||||||
|
Koordinaten=(7,2)
|
||||||
|
|
||||||
|
[29]
|
||||||
|
Nummer=29
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[19, 20, 28, 30, 37, 38]
|
||||||
|
Koordinaten=(8,2)
|
||||||
|
|
||||||
|
[30]
|
||||||
|
Nummer=30
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[20, 21, 29, 38]
|
||||||
|
Koordinaten=(9,2)
|
||||||
|
|
||||||
|
[31]
|
||||||
|
Nummer=31
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[22, 23, 32, 39]
|
||||||
|
Koordinaten=(1.5,3)
|
||||||
|
|
||||||
|
[32]
|
||||||
|
Nummer=32
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[23, 24, 31, 33, 39, 40]
|
||||||
|
Koordinaten=(2.5,3)
|
||||||
|
|
||||||
|
[33]
|
||||||
|
Nummer=33
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[24, 25, 32, 34, 40, 41]
|
||||||
|
Koordinaten=(3.5,3)
|
||||||
|
|
||||||
|
[34]
|
||||||
|
Nummer=34
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[25, 26, 33, 35, 41, 42]
|
||||||
|
Koordinaten=(4.5,3)
|
||||||
|
|
||||||
|
[35]
|
||||||
|
Nummer=35
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[26, 27, 34, 36, 42, 43]
|
||||||
|
Koordinaten=(5.5,3)
|
||||||
|
|
||||||
|
[36]
|
||||||
|
Nummer=36
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[27, 28, 35, 37, 43, 44]
|
||||||
|
Koordinaten=(6.5,3)
|
||||||
|
|
||||||
|
[37]
|
||||||
|
Nummer=37
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[28, 29, 36, 38, 44, 45]
|
||||||
|
Koordinaten=(7.5,3)
|
||||||
|
|
||||||
|
[38]
|
||||||
|
Nummer=38
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[29, 30, 37, 45]
|
||||||
|
Koordinaten=(8.5,3)
|
||||||
|
|
||||||
|
[39]
|
||||||
|
Nummer=39
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[31, 32, 40]
|
||||||
|
Koordinaten=(2,4)
|
||||||
|
|
||||||
|
[40]
|
||||||
|
Nummer=40
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[32, 33, 39, 41]
|
||||||
|
Koordinaten=(3,4)
|
||||||
|
|
||||||
|
[41]
|
||||||
|
Nummer=41
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[33, 34, 40, 42]
|
||||||
|
Koordinaten=(4,4)
|
||||||
|
|
||||||
|
[42]
|
||||||
|
Nummer=42
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[34, 35, 41, 43]
|
||||||
|
Koordinaten=(5,4)
|
||||||
|
|
||||||
|
[43]
|
||||||
|
Nummer=43
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[35, 36, 42, 44]
|
||||||
|
Koordinaten=(6,4)
|
||||||
|
|
||||||
|
[44]
|
||||||
|
Nummer=44
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[36, 37, 43, 45]
|
||||||
|
Koordinaten=(7,4)
|
||||||
|
|
||||||
|
[45]
|
||||||
|
Nummer=45
|
||||||
|
Hof=1
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[37, 38, 44]
|
||||||
|
Koordinaten=(8,4)
|
||||||
|
|
||||||
|
[46]
|
||||||
|
Nummer=46
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[47, 57]
|
||||||
|
Koordinaten=(16,0)
|
||||||
|
|
||||||
|
[47]
|
||||||
|
Nummer=47
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[46, 48, 57, 58]
|
||||||
|
Koordinaten=(17,0)
|
||||||
|
|
||||||
|
[48]
|
||||||
|
Nummer=48
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[47, 49, 58, 59]
|
||||||
|
Koordinaten=(18,0)
|
||||||
|
|
||||||
|
[49]
|
||||||
|
Nummer=49
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[48, 50, 59, 60]
|
||||||
|
Koordinaten=(19,0)
|
||||||
|
|
||||||
|
[50]
|
||||||
|
Nummer=50
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[49, 51, 60, 61]
|
||||||
|
Koordinaten=(20,0)
|
||||||
|
|
||||||
|
[51]
|
||||||
|
Nummer=51
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[50, 52, 61, 62]
|
||||||
|
Koordinaten=(21,0)
|
||||||
|
|
||||||
|
[52]
|
||||||
|
Nummer=52
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[51, 53, 62, 63]
|
||||||
|
Koordinaten=(22,0)
|
||||||
|
|
||||||
|
[53]
|
||||||
|
Nummer=53
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[52, 54, 63, 64]
|
||||||
|
Koordinaten=(23,0)
|
||||||
|
|
||||||
|
[54]
|
||||||
|
Nummer=54
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[53, 55, 64, 65]
|
||||||
|
Koordinaten=(24,0)
|
||||||
|
|
||||||
|
[55]
|
||||||
|
Nummer=55
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[54, 56, 65, 66]
|
||||||
|
Koordinaten=(25,0)
|
||||||
|
|
||||||
|
[56]
|
||||||
|
Nummer=56
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[55, 66]
|
||||||
|
Koordinaten=(26,0)
|
||||||
|
|
||||||
|
[57]
|
||||||
|
Nummer=57
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[46, 47, 58, 67]
|
||||||
|
Koordinaten=(16.5,1)
|
||||||
|
|
||||||
|
[58]
|
||||||
|
Nummer=58
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[47, 48, 57, 59, 67, 68]
|
||||||
|
Koordinaten=(17.5,1)
|
||||||
|
|
||||||
|
[59]
|
||||||
|
Nummer=59
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[48, 49, 58, 60, 68, 69]
|
||||||
|
Koordinaten=(18.5,1)
|
||||||
|
|
||||||
|
[60]
|
||||||
|
Nummer=60
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[49, 50, 59, 61, 69, 70]
|
||||||
|
Koordinaten=(19.5,1)
|
||||||
|
|
||||||
|
[61]
|
||||||
|
Nummer=61
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[50, 51, 60, 62, 70, 71]
|
||||||
|
Koordinaten=(20.5,1)
|
||||||
|
|
||||||
|
[62]
|
||||||
|
Nummer=62
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[51, 52, 61, 63, 71, 72]
|
||||||
|
Koordinaten=(21.5,1)
|
||||||
|
|
||||||
|
[63]
|
||||||
|
Nummer=63
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[52, 53, 62, 64, 72, 73]
|
||||||
|
Koordinaten=(22.5,1)
|
||||||
|
|
||||||
|
[64]
|
||||||
|
Nummer=64
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[53, 54, 63, 65, 73, 74]
|
||||||
|
Koordinaten=(23.5,1)
|
||||||
|
|
||||||
|
[65]
|
||||||
|
Nummer=65
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[54, 55, 64, 66, 74, 75]
|
||||||
|
Koordinaten=(24.5,1)
|
||||||
|
|
||||||
|
[66]
|
||||||
|
Nummer=66
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[55, 56, 65, 75]
|
||||||
|
Koordinaten=(25.5,1)
|
||||||
|
|
||||||
|
[67]
|
||||||
|
Nummer=67
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[57, 58, 68, 76]
|
||||||
|
Koordinaten=(17,2)
|
||||||
|
|
||||||
|
[68]
|
||||||
|
Nummer=68
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[58, 59, 67, 69, 76, 77]
|
||||||
|
Koordinaten=(18,2)
|
||||||
|
|
||||||
|
[69]
|
||||||
|
Nummer=69
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[59, 60, 68, 70, 77, 78]
|
||||||
|
Koordinaten=(19,2)
|
||||||
|
|
||||||
|
[70]
|
||||||
|
Nummer=70
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[60, 61, 69, 71, 78, 79]
|
||||||
|
Koordinaten=(20,2)
|
||||||
|
|
||||||
|
[71]
|
||||||
|
Nummer=71
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[61, 62, 70, 72, 79, 80]
|
||||||
|
Koordinaten=(21,2)
|
||||||
|
|
||||||
|
[72]
|
||||||
|
Nummer=72
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[62, 63, 71, 73, 80, 81]
|
||||||
|
Koordinaten=(22,2)
|
||||||
|
|
||||||
|
[73]
|
||||||
|
Nummer=73
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[63, 64, 72, 74, 81, 82]
|
||||||
|
Koordinaten=(23,2)
|
||||||
|
|
||||||
|
[74]
|
||||||
|
Nummer=74
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[64, 65, 73, 75, 82, 83]
|
||||||
|
Koordinaten=(24,2)
|
||||||
|
|
||||||
|
[75]
|
||||||
|
Nummer=75
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[65, 66, 74, 83]
|
||||||
|
Koordinaten=(25,2)
|
||||||
|
|
||||||
|
[76]
|
||||||
|
Nummer=76
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[67, 68, 77]
|
||||||
|
Koordinaten=(17.5,3)
|
||||||
|
|
||||||
|
[77]
|
||||||
|
Nummer=77
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[68, 69, 76, 78, 84]
|
||||||
|
Koordinaten=(18.5,3)
|
||||||
|
|
||||||
|
[78]
|
||||||
|
Nummer=78
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[69, 70, 77, 79, 84, 85]
|
||||||
|
Koordinaten=(19.5,3)
|
||||||
|
|
||||||
|
[79]
|
||||||
|
Nummer=79
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[70, 71, 78, 80, 85, 86]
|
||||||
|
Koordinaten=(20.5,3)
|
||||||
|
|
||||||
|
[80]
|
||||||
|
Nummer=80
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[71, 72, 79, 81, 86, 87]
|
||||||
|
Koordinaten=(21.5,3)
|
||||||
|
|
||||||
|
[81]
|
||||||
|
Nummer=81
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[72, 73, 80, 82, 87, 88]
|
||||||
|
Koordinaten=(22.5,3)
|
||||||
|
|
||||||
|
[82]
|
||||||
|
Nummer=82
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[73, 74, 81, 83, 88]
|
||||||
|
Koordinaten=(23.5,3)
|
||||||
|
|
||||||
|
[83]
|
||||||
|
Nummer=83
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[74, 75, 82]
|
||||||
|
Koordinaten=(24.5,3)
|
||||||
|
|
||||||
|
[84]
|
||||||
|
Nummer=84
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[77, 78, 85]
|
||||||
|
Koordinaten=(19,4)
|
||||||
|
|
||||||
|
[85]
|
||||||
|
Nummer=85
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[78, 79, 84, 86]
|
||||||
|
Koordinaten=(20,4)
|
||||||
|
|
||||||
|
[86]
|
||||||
|
Nummer=86
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[79, 80, 85, 87]
|
||||||
|
Koordinaten=(21,4)
|
||||||
|
|
||||||
|
[87]
|
||||||
|
Nummer=87
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[80, 81, 86, 88]
|
||||||
|
Koordinaten=(22,4)
|
||||||
|
|
||||||
|
[88]
|
||||||
|
Nummer=88
|
||||||
|
Hof=2
|
||||||
|
Plaetze=4
|
||||||
|
Nachbarliste=[81, 82, 87]
|
||||||
|
Koordinaten=(23,4)
|
||||||
Reference in New Issue
Block a user